* `list-m2m` make layout optional
* Silence a few more warnings
* Properly type v-button `to`
* Make search prop in field-detail-simple not required
* Set undefined as default value for text in v-text-overflow
* Change initial search value to undefined in field-detail
* Rework field-detail and field-detail-simple to use script setup
* One less ctrl+z
* Remove unnecessary new line
---------
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Step 1
* Step 2
* False sense of confidence
* Couple more before dinner
* Update schema package
* Update format-title
* Upgrade specs file
* Close
* Replace ts-node-dev with tsx, and various others
* Replace lodash with lodash-es
* Add lodash-es types
* Update knex import
* More fun is had
* FSE
* Consolidate repos
* Various tweaks and fixes
* Fix specs
* Remove dependency on knex-schema-inspector
* Fix wrong imports of inspector
* Move shared exceptions to new package
* Move constants to separate module
* Move types to new types package
* Use directus/types
* I believe this is no longer needed
* [WIP] Start moving utils to esm
* ESMify Shared
* Move shared utils to @directus/utils
* Use @directus/utils instead of @directus/shared/utils
* It runs!
* Use correct schemaoverview type
* Fix imports
* Fix the thing
* Start on new update-checker lib
* Use new update-check package
* Swap out directus/shared in app
* Pushing through the last bits now
* Dangerously make extensions SDK ESM
* Use @directus/types in tests
* Copy util function to test
* Fix linter config
* Add missing import
* Hot takes
* Fix build
* Curse these default exports
* No tests in constants
* Add tests
* Remove tests from types
* Add tests for exceptions
* Fix test
* Fix app tests
* Fix import in test
* Fix various tests
* Fix specs export
* Some more tests
* Remove broken integration tests
These were broken beyond repair.. They were also written before we really knew what we we're doing with tests, so I think it's better to say goodbye and start over with these
* Regenerate lockfile
* Fix imports from merge
* I create my own problems
* Make sharp play nice
* Add vitest config
* Install missing blackbox dep
* Consts shouldn't be in types
tsk tsk tsk tsk
* Fix type/const usage in extensions-sdk
* cursed.default
* Reduce circular deps
* Fix circular dep in items service
* vvv
* Trigger testing for all vendors
* Add workaround for rollup
* Prepend the file protocol for the ESM loader to be compatible with Windows
"WARN: Only URLs with a scheme in: file and data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'"
* Fix postgres
* Schema package updates
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* Resolve cjs/mjs extensions
* Clean-up eslint config
* fixed extension concatination
* using string interpolation for consistency
* Revert MySQL optimisation
* Revert testing for all vendors
* Replace tsx with esbuild-kit/esm-loader
Is a bit faster and we can rely on the built-in `watch` and `inspect`
functionalities of Node.js
Note: The possibility to watch other files (.env in our case) might be
added in the future, see https://github.com/nodejs/node/issues/45467
* Use exact version for esbuild-kit/esm-loader
* Fix import
---------
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Brainslug <tim@brainslug.nl>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* remove related O2M fields without read permissions
* Added basic test for usePermissions composable
* updated test
---------
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Fix field configuration view not updating when navigating between different fields in New Field drawer
* Used Vue toRef instead of computed as per the feedback
* Make type reactive too
Co-authored-by: rijkvanzanten <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>
* check for auto increment when saving as copy
* updated check to cover uuid generated IDs
* attempt to test use-item composable
* updated test objects
* do not rely on is_generated
* fix readonly regression
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* implements server sort when dealing with multple relational pages
* always use server sort
* fixed unsetting sort
* removed frontend sorting
* make loading total count more accurate
* remove removed prop
Co-authored-by: Nitwel <mail@nitwel.de>
* 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>
* Fix key combinations being prevented in v-input
* should normalize accented characters first
* add tests for processValue and emitValue
* export keyMap from use-shortcut to keep things DRY
* try to add test for use-shortcut composable
* move systemKeys to use-shortcut
* add "capslock" & "enter" to systemKeys
* 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>
* save sidebarOpen state in local storage
* handle errors while setting value to local storage
* use useLocalStorage to keep sidebarOpen state, add default value to useLocalStorage, cleanup
* move logic to useLocalStorage, remove LocalStorageObject
* use parseJSON utility
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Fix sort field assignment in relationships
* fixed a merge error
* add sort logic to API
* using isNil for a more concise condition expression
* Removed the custom getSortMax function in favor of Math.max
* increment sort value accordingly for bulk creates
* make reordering sort start with 1 instead of 0
* account for bulk create in API side
* removed the redundant frontend sorting code
* reverted change from pr #14987
* updated selectedOnPage to support both item duplication and sorting
* Revert "account for bulk create in API side"
This reverts commit b37ed207f3.
* re-add bulk create increment sort logic
* prevent sending "+" as primary key for newly created relational items (#15353)
* re-add the removed new line as it felt odd
* ensure sql query fires once only
* fix return value
* use `.max()`
Co-authored-by: André Gaul <andre@gaul.io>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.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
* Fix lint issues
Merge in main
* Add support for resizing columns.
Disable sorting on json columns
* Replaced static text with translations
* remove unused variables
* add no collection/fields states to system-fields
* turn columns to notice when creating list-m2m
* tweak system-fields no fields background color
* add danger styling for deselect in table layout
* add tooltips
* prevent linking to items without ID yet
* fix launch icon for list layout
* tweak padding for per page
* Update missing types
* resolve ::v-deep to :deep warning
* minor style tweaks
* fix search
* fix destructuring crashing when no permissions
* remove unused variables
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>