* prevent 500 error when limit=0
* short circuit parser instead
* removed unneeded comment
* setting a sensible minimum and step for export limit
* fixed notif message when exporting limit=-1
* re-added !exportSettings.limit fallback behavior
* guard against negative limit values lower than -1
* add unit test for sanitizeQuery
* remove unnecessary test cases
because offset and page are validated in validateQuery
* delegate validation to validateQuery instead
* use sanitizeQuery util for export
* Added check for integers
Co-authored-by: ian <licitdev@gmail.com>
* validate instead of sanitize
* removed obsolete test
* added integer checks for limit, offset, page and sensible minimums
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Fix paths of imports
* Process not-found.vue as ts
To prevent the following error from 'vue-tsc':
error TS6504: File '/Users/pascal/Development/directus/app/src/modules/insights/routes/not-found.vue.js' is a JavaScript file. Did you mean to enable the 'allowJs' option?
Note: We could also enable 'allowJS' but since this is the only js file
this seems to be a more fitting fix
* Drop hljs language definition for GraphQL (now in core)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* applied the same role fix too users invite
* added same fix when saving permissions
* Prevent loading users unecessarily on the permission page
* Added proper `deep` query typing
* fixed typing for tests
* apply similar fix for navigation folder
* translate fields during hydration
* patch untranslated raw values on field edit
* simplify/remove existing translate usages
* minor codestyle
* translate field note and validation_message
* stub api call in fleld-detail store test
* skip fields translation before user locale sets in
* optimize hydration calls
* use translateLiteral for note & validation_message
* cherry pick field meta properties to patch
* reduce setLanguage calls & settings requests
* settings store test & type update
* tweak variable casing
* test server store & fix existing type/ref issues
* update fields store test for skipTranslation
* fix render-display merge
* await field update before opening drawer
* fetch meta at the end to load relationships first
* add loading state to prevent editing some fields
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Add bundle type to constants and types
* Add support for API bundle extensions
* Rename generateExtensionsEntry to generateExtensionsEntrypoint
* Add support for App bundle extensions
* Refactor App extension registration
* Replace extensions inject with useExtensions()
* Replace getInterfaces() with useExtensions()
* Replace getDisplays() with useExtensions()
* Replace getLayouts() with useExtensions()
* Replace getModules() with useExtensions()
* Replace getPanels() with useExtensions()
* Replace getOperations() with useExtensions()
* Add useExtension() composable
* Replace useExtensions() with useExtension() where applicable
* Remove interface getters
* Remove display getters
* Remove layout getters
* Remove module getter
* Remove panel getters
* Remove operation getters
* Rename extension register.ts files to index.ts
* Perform module pre register check in parallel
* Remove Refs from AppExtensionConfigs type
* Remove old extension shims
* Ensure registration of modules is awaited when hydrating
* Add support for scaffolding package extensions
* Add support for building bundle extensions
* Add JsonValue type
* Use json for complex command line flags
* Load internal extensions if custom ones are not available
* Fix extension manifest validation for pack extensions
* Fix tests in shared
* Add SplitEntrypoint type
* Move command specific utils to helpers
* Add SDK version getter
* Move extension dev deps generation to helpers
* Move template path to getter util
* Move template copying to a helper
* Only rename copied template files
* Add directus-extension add command
* Convert provided extension source path to url
* Replace deprecated import.meta.globEager
* Mock URL.createObjectURL to make App unit tests pass
* Update rollup-plugin-typescript2
* indentation
* sort vite glob imported modules
* fix unintentional wrong commit
* Simplify app extension import logic
* reinstall @rollup/plugin-virtual
* add test for getInterfaces() expected sort order
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* treat empty array as null on relational field
* Run prettier
* add unit test
* Fix linter warnings
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fix thumbs displaying in Files interface
* Use default field value if field exists but its value is undefined
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Add fallback page when no fields are visible in a form
* fixed spacing for the linter
* properly show empty form message for relational drawer items
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix form divider when opened from drawer item
* remove redundant functions
* change back the form order to what is was
* add the option to swap between relation fields and junction fields
* fix language
* added m2m options as dropdown with more abilities
* remove the hide options and put off instead
* remove the off option from m2m junctionFieldLocation
Co-authored-by: Gabriel Shtenberg <gabriels@brainpop.com>
Co-authored-by: dev name <devn@brainpop.com>
* move components without dependencies to packages
* make every components use vue script setup
* move components and utils from shared to @directus/components
* fix imports
* move over some more components
* get rid of unnecessary isEmpty and notEmpty
* move pagination
* fix missing !
* move groupable components
* move text-overflow and useElementSize
* fix icons not being shown
* add first unit tests
* remove capitalizeFirst
* simple cleanup
* add css-var unit test
* move over most other components
* make every component use script setup
* add some more unit tests
* add more tests and burn v-switch to the ground. 🔥
* add checkbox tests
* start with next test
* add storybook
* add more pages to storybook
* add final stories
* fix stories actions
* improve action fix
* cleaning props and adding tests
* unit tests -.-
* add some documentation to components
* Add docs to each prop
* clean storybook paths
* add more unit tests
* apply v-select fix
* update lock file
* small tweaks
* move back to shared
* fix imports
* fix imports
* cleaning
* stories to typescript
* Fix version number
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* added default values when validating items
* abstracted default value parsing to its own util
* Added a basic test
* updated tests
* fixed import
* implementing the same fix for conditions on the drawer-item
* fix thumbnail overflow in render-template
* new fix for render-template thumbnail in table
* fix thumbnail not working in page titles
* prevent thumbnail overflow in page title
* Prevent duplicate rootPath for image in file-preview
* Add rootPath to file and file-image for downloading
* Revert change to v-image
* Patch rootPaths accordingly
* Fix missing file name on download
* first draft for translations rtl implementation
* make direction field dybamic
* Fixed default direction field
* added directionality to: tags, input-multiline, repeater (list)
* added directionality for wysiwyg, input-autocomplete, groups
* reverted directionality in wysiwyg-editor
* removed hardcoded rtl, ltr buttons from wysiwyg toolbar
* working directionality in wysiwyg editor
* also add v-if to await language for second language (split-view) in translations.vue
* added watcher for changing wysiwyg directionality on language change
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Martijn de Voogd <devoogd@kissthefrog.nl>
Co-authored-by: Martijn <73393707+martijn-dev@users.noreply.github.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Don't hide but set as readonly
* Update app/src/views/private/components/drawer-item.vue
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Add missing import
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* removing getrootpath
* removed redundant getRootPath from components
* We use leading / everywhere else in api usage
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* fix audio player not showing up
* Center horizontally for small width videos
* add letterbox to videos
* fix calendar list view styling
* Revert "fix calendar list view styling"
This reverts commit 030585d01b.
* v-image and "lazy load" working
* fixed vars
* all the other img uses
* No longer require access token in url for files
* Add lazy loading and size limits
* Rename map-component source prop
* Fix lint warning
* Update app/src/views/public/public-view.vue
Co-authored-by: ian <licitdev@gmail.com>
* Fix lint
* Fix missing file type icon
* Fix null imageInfo error
* Use video.js for media playback
* Fix .js file display
* Update package-lock.json
* Update package-lock.json
* update package.json
* Update pnpm-lock.yaml
* Remove unrelated addition on VDatePicker
* Remove folder abstraction
* Use image data based aspect ratio on preview
* Base app rate throttle on API rate limit config
* Configure app rate limit throttle based on api config
* Convert v-image to script[setup]
* Convert v-media to script[setup]
* Cleanup v-media
* Remove unneeded addTokenToUrl usages
* Remove video.js
It doesn't do authorization headers for mp4/mp3, so it's pointless
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>