* 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>
* Install / bootstrap vitest
* Install c8
* Add tests for add-query-to-path
* Don't set global maplibre token on individual style
This feels wrong to me. We have a single global access token that should be used for these things. Overriding that with a token that's found for individual styles on top of the same global object in order of configured maps feels weird, as the latter tokens will override the earlier ones. Needs more research though
* Install testing libraries
* Use happy-dom as env in vitest
* Enable ts checking in tests
* Remove unused jest config
* Organize store imports
* Remove types from TSDoc in add-query-to-path
* Improve check in add-related-primary-key-to-fields
* Add reusable stub for anything touching nanoid
* Add tests for add-related-primary-key-to-fields
* Move adjust date to shared
* Remove arraysAreEqual util in favor of relying on lodash
* Fix add-related-primary-key-to-fields test
* Add test coverage for capitlize-first
* Add TSDoc/tests for extract-field-from-function
* Add test coverage for formatFieldFunction
* Add test coverage for format-filesize
* Add test coverage for get-groups
* Add tests for get-root-path
* cleanup imports
* Move tests to live next to source files
* Add tests for user-name
* Update type to match function behavior
* Add test coverage for point-on-line
* Add tests for is-empty
* Add test coverage for is-hex
* Remove getSetting util
Bit pointless to have a util function to just read a value from a store
* Add test coverage for get-related-collection
* Add test coverage for get-theme
* Add test coverage for get-with-arrays
* Add test coverage for hide-drag-image
* Add test coverage for is-permission-empty
* Remove unused import
* Add test for jwt-payload
* Add snapshot rendering test for v-sheet
* Add whitespace
* Rename __test_utils__ -> __utils__
* Add composable test
* Update app/tsconfig.json
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* Update saveAsCopy function to fix the issue when there are relation items update
* add checking on junctionrelatedkey handler
* Update app/src/composables/use-item/use-item.ts
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* fix syntax error by auto resolve
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* fix for o2m displaying item count
* fixes value structure for multi relations
* removed debugging code and comments and improved data mapping
* fix aliased fields for single relations
* removed unneeded fixes
* Replace attachment with correct icon
* Use standardized options formatting
* Improve preview styling, fix names
* Format IDs of DB read operation as csv
* Remove flow active state from header
* Don't return null for unknown flows
* Fix webhook trigger not showing id
* Fix alignment of attachment
* Make heading secondary if it's the reject handler
* Use flow name in subtitle of operation drawer
* Rename "Create new Operation" -> "Create Operation"
* Make name/key required
* Give name autofocus
* Add "uncaught exception" log message
* Various improvements on operations
* default status to "active"
* Add status dropdown at the bottom of trigger
* put status dot to the right of flow name header
* add toggle status option in context menu
* fix trigger options staging
* fix flow deletion
* show configured operation key on name hover
* prevent block pushing status toggle down
* ensure key is unique between operations in a flow
* allow add new panel when previous one is deleted
* fix staged panels temporarily disappear
The deletion of newTree.id causes it to "disconnect" when saving, thus causing it seemingly disappear. Using a cloneDeep prevents it from mutating the current stagedPanels
* hide key input when in query mode
* add write operation
* undo previous route props change
* include staged panel keys in key validation
* fix key validation logic
* add color to flow & insights
* ensure trigger does not have reject button
* prevent operation key error showing up when saving
* change context menu to Delete Operation
* fix add operation when removed operation is staged
* Hide ID in read preview when in query mode
* fix reject button showing without edit mode
* fix status toggle in flow overview
* simplify request operation methods & allow other
* fix preview function type
* simplify slot syntax
* add manual trigger
* simplify manual trigger handler
* prevent drawer closing on esc
* allow filter config without selecting collection
* improve affordance of add operation button
* fix loner reject button color
* Added emitEvents option to write operation (#13121)
* added emitEvent option toggle to write operation
* Re-gen package-lock
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Clean up active/inactive toggle
* Align arrow to grid
* Visually align border radius of glow
* Tweak padding of footer in panels
* Remove init event
* Combine event triggers into single "Hook" trigger
* Fix mail operation
* Cleanup imports, return undefined for webhook executino flows
* Add border to panel footer
* Upgrade preview of hook trigger
* Don't warn on uncaught flow executions
* Clean up types
* Fix typing of reload
* Default to correct icon
* Add migrations to remove webhooks table
* Remove webhooks
* Update icons for triggers
* Reorganize triggers
* Merge flows and webhooks migrations
* Add permissions option to database read operatoin
* Add permissions configuration to database write
* Remove flow logs in favor of using directus_activity
* Upgrade webhook configuration, fix create operatoin
* Rename validation->condition
* Subdue everything when inactive
* Tweak tests
* Fix the test for real
* Remove circular FK trigger, please MSSQL
* Make things worse to please MSFT
* Add input
* Drop input scope from condition operation
* naming and description changes
* Default flow overview icon color to primary
* add danger styling to delete flow button
* fix hint buttons subdued style
* Hide trigger unlinked resolve btn when not editing
Don't show "check mark icon" or "operation arrow" on empty trigger when NOT in edit mode
* show email "to" value as CSV
* remove unused webhook.preview translation
* Default sort order of overview table to `name`
* Track activity / revisions in flows
* Extract w/ the intent to reuse revisions fetching
* Move Action type to shared to facilitate app use
* [WIP] Start rendering logs drawer from sidebar
* Fix type error (sorry Eron)
* add update operation
* add delete operation
* use parseJSON util in operations
* Add missing fields to flows system data
* Await promise in sleep operation
* fix e2e test missing flows & operations tables
* Add fallback title to flow logs drawer
* Add default value to flow prop for flow-dialog
* Hydrate flows store before moving to details page when creating flow
* Rename CRUD operations to item-*
* Change trigger options subtitle to Trigger Options
* Remove trigger name option
* Fix typescript complaining
* Remove two lines
* Fix notification operation
* Log error when executing a schedule flow
* Fix schedule flow activity tracking
* Fix notification operation when there is no user
* Make permissions for notifications configurable
* Do not drop non null constraint from column that is nullable
* Remove invalid option from activity seed
* Show resolve/reject dot when operation has successor
* Improve flow arrow placement
* Prevent arrow color from flickering
* Fix arrow being stuck when hovered while saving
* Fix arrows not being subdued on lone leaf operations
* Add tooltips to operation handles
* Remove option to trigger flow on init
* Move operation handle tooltip to icon
* Disconnect duplicated operation
* Fix deleting connected operations
* Make delete action name generic in v-workspace-panel
* Use flow-specific wording in flow edit tooltip
* Simplify hint handle check
* Fix deleting first operation
* Use useEditsGuard composable in flow component
* Add asynchronous option to webhook trigger
* Add option to make preview elements copyable
* Add hover transition to panels
* Register operation preview components as operation-preview-*
* Remove selectability of panel header and operation body
* Add return option to filter and operation triggers
* Add missing key
* Remove unnecessary ampersand from URLs in filter tests (#13523)
* Remove unused prop
* New translations en-US.yaml (Polish) (#13524)
* My favorite
* v9.11.1
* v9.11.1
* New translations en-US.yaml (Polish) (#13528)
* New translations en-US.yaml (Czech) (#13541)
* New translations en-US.yaml (Czech) (#13545)
* fix metadata for directus_folders (#13527)
* add `meta` to list responses for OAS (#13531)
* remove existing pasting check on slug values (#13532)
* Add copy button to user id on user info page (#13540)
* New translations en-US.yaml (Czech) (#13547)
* New translations en-US.yaml (Czech) (#13548)
* Added missing "DB_SSL_*_FILE" to the "_FILE" allow list. (#13539)
* Remove workaround in release flow (#13455)
This forces the release workflow to use `node@16.15` which includes `npm@8.5`.
* Remove npmrc files which prevent lockfile creation in workspaces (#13444)
* Remove npmrc files which prevent lockfile creation in workspaces
Since `v8.5.0` npm will detect that it is running inside a workspace and issue commands at the root package.
* Require a minimum npm version of 8.5.0
* Package-lock 🖤
* Don't consider SIGN_OUT an SSO error (#13389)
* Don't consider SIGN_OUT an SSO error
* Add SESSION_EXPIRED as valid reason
* Improve translation for require_value_to_be_set (#13363)
English + Dutch
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Fix field conditions optionDefaults computed property (#13563)
* fix: remove .value from options
* additional ref fix & type/null errors
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* `last_page` type was `date` instead of `str` (#13577)
* `last_page` type was `date` instead of `str`
* Update docs/reference/system/users.md
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* New Crowdin updates (#13557)
* New translations en-US.yaml (Romanian)
* New translations en-US.yaml (Indonesian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Slovenian)
* New translations en-US.yaml (Ukrainian)
* New translations en-US.yaml (English, United Kingdom)
* New translations en-US.yaml (English, Canada)
* New translations en-US.yaml (French, Canada)
* New translations en-US.yaml (Croatian)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Czech)
* Fix validate query number comparison
Ref https://github.com/directus/directus/pull/13492#issuecomment-1138770254
* New translations en-US.yaml (Polish) (#13580)
* add to project (#13581)
* Allow authentication using MSSQL azure-active-directory-service-principal-secret (#11141)
* Extract ignored settings requires by azure authentication
* Change the way to extract initial database settings
* Fix invalid names after extracting from env util
* Replace missing var after solving conflicts
* Add default value to poolconfig
* This should unbreak it
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Create pull_request_template.md
* Update pull_request_template.md
* Add System token interface (#13549)
* Add system token interface
* use system token interface in users token field
* Update placeholder
* move notice below input
* fix clear value interaction
* update placeholder and notice text
* remove unused translation key
* rename class to match current naming
* fix bugs in disabled state and it's UX
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: jaycammarano <jay.cammarano@gmail.com>
* New Crowdin updates (#13586)
* New translations en-US.yaml (Romanian)
* New translations en-US.yaml (Indonesian)
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Serbian (Latin))
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Russian)
* New translations en-US.yaml (Polish)
* New translations en-US.yaml (Portuguese)
* New translations en-US.yaml (Swedish)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Estonian)
* New translations en-US.yaml (Portuguese, Brazilian)
* New translations en-US.yaml (French)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Bulgarian)
* New translations en-US.yaml (Catalan)
* New translations en-US.yaml (Czech)
* New translations en-US.yaml (Danish)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Finnish)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Japanese)
* New translations en-US.yaml (Dutch)
* New translations en-US.yaml (Slovenian)
* New translations en-US.yaml (Ukrainian)
* New translations en-US.yaml (English, United Kingdom)
* New translations en-US.yaml (English, Canada)
* New translations en-US.yaml (French, Canada)
* New translations en-US.yaml (Croatian)
* Add project_url to defaultTemplateData (#12033)
Might be useful in template footers.
* Update items.md
* Rename panel to tile
* Rename preview->overview
* Style flow log detail
* Log all parsed options
* Show used options in revision
* Finish log detail drawer
* new create flow flow
* fix firstOpen for new create flow flow
* update field layout for create flow form
* Fix TS typing
* Fix missing import
* Append random hash to key when duplicating operations
* Revert "Remove webhooks"
This reverts commit 044d3d8b66.
* Don't delete webhooks
* Make option preview selectable
* Prevent invalid linking when duplicating operations after creating operations
* Prevent sending of malformed query filter when deleting flow
* implement new manual trigger
* simplify payload for manual trigger
* use buttons instead of dropdown + run button
* add async option & loading state
* add collection check to manual trigger
* emit refresh after running flow in sidebar
* Add cross-instance messenger for reloading
* Use flow drawer for both create and edit
* Add manual trigger flow permissions to app recommended
Ensures that non-admin users can actually see the flows sidebar detail
* Add basic logs redaction
* Remove endpoint to trigger an operation
* Allow configuring location for manual trigger
* Rename "hook" trigger to "event"
* Tweak icon size
* Fix create flow button in info notice
* Make activity tracking full width
* Tweak descriptions
* Too long for comfort
* Remove mode option from item-* operations
* fix manual trigger empty collections option
* Add no-logs-yet message in sidebar detail
* Reset trigger options on change of trigger
* Rename `data`->`payload`
* Remove mode from preview of item-* operations
* Return operation options with "{{key}}" as raw value
* Show flow name in delete confirmation
* Add default generated name/key to new operations
* shorten arrows WIP
still needs icons moved
* rename note to description
* fix hint button icons
* update event hook type labels
* Animate resolve/reject arrow hints
* reorder event types
* Use x+4 instead of x+6 for new operation panels
* compress options to fit 6 lines in operation
* update hook labels
* animate trigger box shadow
sorry, rijk!
* update (global) disabled button color 1 shade
* Format times nicer
* Add placeholder for query
* add a note
* Fix formatting for curly brackets in translations
* Add item Create/update payload placeholder
* Add placeholder to user uuid
* Accept either null or undefined for nullable operation options
* Allow any string as request body
* Add more placeholders
* Consolidate filterScope and actionScope, filterCollections and actionCollections
* Rename flow note to description in types
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Aiden Foxx <aiden.foxx.mail@gmail.com>
Co-authored-by: Jan-Willem <jan-willem@qdentity.nl>
Co-authored-by: Yasser Lahbibi <yasser.lahbibi@apenhet.com>
Co-authored-by: Louis <32719150+louisgavalda@users.noreply.github.com>
Co-authored-by: Jay Cammarano <67079013+jaycammarano@users.noreply.github.com>
Co-authored-by: Erick Torres <ericktorresh@gmail.com>
Co-authored-by: jaycammarano <jay.cammarano@gmail.com>
Co-authored-by: Yuriy Belenko <yura-bely@mail.ru>
Co-authored-by: ian <licitdev@gmail.com>
* add basic util function for later use
* sketch up useRelationMultiple implementation
* update relation util and start reworking relational interfaces
* support filter in m2o
* start working on useRelationMultiple
* continue working on relational foundation
* finish basic use-relation-multiple composable
* get o2m pretty close to being finished
* finish up list-o2m
* replace old interfaces
* copy existing interface
* rewrite vue file
* highlight deleted items
* use Search instead of Get
* support selection on m2m
* finish up m2m
* replace old files
* update files interface
* fix permission checks
* fix styling
* add sketches to explain relations
* rewrite m2a interface
* add usage hint to use-relation-multiple
* update file interface to use new composable
* update file-image interface
* fix image not being shown
* revert names
* fix selection of existing items
* fix loading selected items
* in between commit
* update translations interface
* try using composable recursive
* try linear approach on value modeling
* finish rewriting list-o2m-tree-view interface
* revert api changes
* fix sorting for list-o2m-tree-view
* fix selected items in created array
* Add direct download option to files interface
* Fix linter warnings
* Weird that it's being difficult, but ok
* Cast existingItemCount to number at all times
* fix page gets set below 1
* align pagination to the right
* highlight deselecting row
* show min 1 skeleton loader
* only filter selected when item exists
* fix working on new items
* Fix linter warning
* fix deselecting selected items
* show different icon depending if icon is local
* add changes from #12611
* Add _some vs _none support to o2m
* finish filtering out selected items
* Use get instead of search request
* fix save and stay
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix adding items to m2o
* Fix linter warning
* Handle no-type better
* Clean up axios usage
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* Rename date functions to fn, add json_array_length for pg
* Add json count to mssql
* Add json array count support to other vendors
* Add UI for selecting API functions
* Make it not break
* Render functions in filter preview better
* Include functions in field altering
* Add schema access to database helper
* Allow filtering against o2m/m2m/m2a count
* Add data function execution helpers in utils
* Fix type issue
* Inject function results in validate step
* Render field keys with function names translated
* Allow selecting nested/functions in field validation step
* Make sure number comparisons are treated as numbers
* Add check if instanceof date when casting to a Number
* Prevent selecting foreign keys for junction sort (#12463)
* [SDK] Add further request options to `items` functions (#12503)
* add possibility to set further options to the request
* fix options type
* add typings to interface
* add test if headers are passed thourght
* create reusable options param
* set higher priority to options param
* Small stylistic cleanup
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Jürg Hunziker <juerg.hunziker@gmail.com>
* add icon & color to bookmarks
* update current bookmark title on edit
* clean up edit bookmark dialog on cancel
* remove unused bookmark-edit component
* interaction improvements
* sort based on scope and alphabetically
* prevent hover when locked & use tooltip
* Reduce size of right hand icon in bookmark
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* add migration for translation strings
* add to navigation
* WIP
* fix dialog overflow
* update translation keys
* Update logic
* add placeholder to system-language
* fix translation
* remove unused import
* reset dialog on create new
* ensure search input is visible when searching
* merge translation strings on set language
* merge translation strings on update
* hydrate
* make sure null translation do not get merged
* change dialog to drawer
* update placeholder text
* fix form value
* revert dialog style change
* rename drawer component
* Force safe key name
* Move interface to system interfaces
The saved values are Directus app proprietary, so to prevent confusion in what it's supposed to do, we'll move it to system.
* Move composable to root composables
* Use new languages input in interface/display options
* hide translation strings field in project settings
* set system true to system-input-translated-string
* use this in field detail notes
* use in list options
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>