* 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>
* Adds x-directus-cache response header with HIT value
* Added ENV var for cache header and MISS, UNCACHEABLE
* Rename CACHE_HEADER_KEY -> CACHE_STATUS_HEADER
Tad opinionated, but I feel like it describes the functionality slightly better
* Return miss consistently
Uncacheable doesn't quite describe what's happening. The user actively requests the cache to be skipped, which should result in an expected miss. The value isn't un-cacheable, the cache is skipped on purpose
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* add `Last-Modified` header to `/assets/*` responses
only affects assets with a valid `modified_on` DB field
* update docs about `Last-Modified`
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* .gitignored package-lock.json that was created in the docs subfolder
* added cloud section structure
* set initial article outlines
* drafter accts-teams and shifted cloud docs in navbar
* added overview and projects draft
* added tiers and billing outline and basics
* added image to drafts and polished text. needs one more pass. added css for dngr on icons
* Added photos to overview
* minor tweak on images
* imrpoved copy and expanded CSS for inline icons
* expnaded CSS and, added images and finished copy on acct-n-team
* more copy touchups
* Add divider between cloud and regular docs
* Fix capitalization of Github -> GitHub
* fixed overview images and tweaked copy
* recructured pages. Added writing tasks on appropriate pages
* added accts, options, and teams pages
* Overview intro (re)written)
* overview initial copy
* Overview first draft complete, links not added, media not added
* accounts initial draft complete, no media
* teams redrafted, projects and options partial refactoring
* projects redrafted
* finalized 5th page as glossay and reformatted
* refactored glossary structure
* glossary terms p1
* glossary copy 80% complete
* more glossary copy
* cloud glossary basic copy probably 100% done
* checked hyperlinks
* initial proofread on overview
* initial accounts proofread
* re-edited billing sections
* re-editec projects section and glossary
* re-edited teams
* small edits
* edited accounts, teams, projects
* re-edited glossary
* added screenshot-based media, still need graphic illustrations
* small, tiny edits
* fixed GitHub capitalization and other small type error
* applied ben's edit suggestions on overview, accounts, and 1/2 of projects
* applied the rest of Ben's edits
* added missing screenshots
* proof-read
* Fixed Team proejcts title
* tweaked copy after my ~10 questions to ben
* reworked 'projects > create a project' sections and 'glossary > data-processing' section
* final copy touchup, link check, still missing Rijk's review
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Eron Powell <eronpowell@Erons-MBP-2.local>
Co-authored-by: Eron Powell <eronpowell@Erons-MBP-2.hitronhub.home>
* Remove UTC conversion from date, time and datetime fields
* Fix mysql / maria timestamps when not in UTC timezone
* Add sequential tests with node timezone change
* Increase connection attempt check
* Add error catching in tests flow setup
* Check for server connectivity
* Fix promises
* Fix timestamp inconsistencies
* Revert to previously used parseISO
* Ensure database and directus connection
* Add another timezone to test positive and negative GMT
* Set local server hostname to localhost
* Add tests for SQLite
* Use notNullable primary key
* Revert connection testing sleep duration
* Fix nested transactions on SQLite
* Increase MSSQL request timeout
* Add type override flag for SQLite
* Remove commented code
* Add type override flags for Oracle
* Updated test file path
* Increase test servers launch timeout
* Increase test servers launch timeout
* Update format of tests
* Fix typo
* Increase test timeout for CockroachDB
* Add type overrides when creating fields through collections service
* Remove time field type conversion for Oracle
* Update collections list in test
* Remove check for time field in Oracle
* Add missing continue...
* Remove database override
* Add note for SQLite
* Rename flags and extract shared util
* Abstract remaining DB specific checks
* Revert flags renaming except renaming of test files
* Use date helper to add field flag
* Move field date typecasting upstream
* Use timestamp helper for date-created and date-updated
* Fix tests
* Remove unused vars
* Add tests for date-created
* Increase connection attempt count
* Fix test for mariadb
* Increase allowable difference to account for delays
* Add tests for date-updated
* Fix tests again for mariadb
* Add date helpers post merge
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* [Related to #11292] Safe Metadata Upload
- Created FILE_METADATA_ALLOWLIST
- Added test library for `FilesService`
* Rename ALLOWLIST->ALLOW_LIST to be consistent with other env vars
* Make sure it still works for files without Exif
* Prevent breaking changes in metadata formatting
* Allow * for all
* Fix md sup
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* docs dark mode color to match app
* not sure if needed
* Revert "not sure if needed"
This reverts commit f8a71198d5.
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Use script setup
* Start on export dialog
* Use new system field interface, replace limit with numeric input
* Set placeholder
* Add sort config
* Use folder picker, correct layoutQuery use
* Add local download button
* Allow writing exports to file
* Add notification after export
* Fix sort config, use new export endpoint
* Setup notification hints
* Add information notice
* Fix local limit, cancel button
* Add (basic) docs for export functionality
* Fix json export file format
* Implement xml batch stitching
* Resolve review points
* restructured file-library outline
* completed 3 sections, added action btn to CSS
* finished upload file and replace file sections
* completed full documentation refactor. media and proofreading remain
* updated media, except rename and delete folder vids
* copy ready. Links tested
* last second tweaks to copy and media
* stated multiple files can be uploaded
* Rijk's suggestions added and one final pass on copy edits
Co-authored-by: Eron Powell <eronpowell@Erons-MBP-2.local>
Co-authored-by: Eron Powell <eronpowell@Erons-MBP-2.hitronhub.home>
* Update hooks.md
* Delete event does not contains the whole payload but the payload keys
* files filter and hooks exist except for create/update
* Update docs/extensions/hooks.md
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* .gitignored package-lock.json that was created in the docs subfolder
* First User Directory Rough Draft Complete
* added footer
* restructured outline
* 2nd Rough Draft Complete, no pics and not proofread
* added photos
* added all media and polished copy
* Finished admin options section
* Applied Rijk's copy suggestions
* fixed date in information bar media issue
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: Eron Powell <eronpowell@Erons-MBP-2.local>
* added package-lock.json into gitignore
* added filters.md draft doc
* added header intro and section headers
* full outline and 60% of copy
* more fitlers doc copy
* copy 95% complete
* Filters doc as good as done
* small copy tweaks
* Decrease size of dividers in nav, add section with filters
* fixed dynamic var vid
* fixed filter-rules type-o
Co-authored-by: Eron Powell <eronpowell@Erons-MBP-2.local>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Adds the 'sort_updated' event emit after items are sorted
Signed-off-by: Mihovil Ilakovac <mihovil.ilakovac@gmail.com>
* Updates the event name to 'sort_update'. Docs.
Signed-off-by: Mihovil Ilakovac <mihovil.ilakovac@gmail.com>
* Updates the event name to `sort`
* Add item/to to hook, fix docs
Co-authored-by: Mihovil Ilakovac <mihovil.ilakovac@gmail.com>
* Add migration to remove default value from project_color
* Upgrade the default theme
* Do a pass over the header buttons
* Do another pass over --warning uses
* Little things
* Tweak smoke
* Use updated map
* Use dark system elements in dark mode
* Remove outdated files, update toasts
* Use correct delete button style for role
* Use primary for created point
* Tweak spacing in revisions section
* Use primary for sidebar sections
* Various color tweaks and changes
* Update base color palette
* Update "css reset" code
* Remove splashscreens, add default favicon
* Add primary highlight to datamodel page
* dark mode color update
* fix sign out hover color
* Does this help?!
* This fixes some loading issues
Fixes https://github.com/directus/directus/issues/10707
* Calculate default pretty background?
* Fix public view with logo
* Fix responsiveness of login page
* adjust notification group width to be equal
* Do an absolute pointless task that doesn't do anything
It was suggested that it could fix the stylelint error in tests, but alas
* Remove stylelint
Doesn't seem to play nice with script setup and other changes
Co-authored-by: Ben Haynes <ben@rngr.org>
* Add "authenticate" filter hook that allows custom auth check
* Start on test
* Update Jest, restructure API tests, start implementing authenticate test
* Move access token verify to util function
* Ensure jest can show inline warnings on correct lines
* Update is-directus-jwt to use jsonwebtoken decode + add tests
* Remove unused package
* Tweak and finish + test authenticate
* Tweak test
* Add authenticate filter to docs
* Don't scan tests for codeql
* No seriously, ignore tests
* Start by stripping out the previous Union attempt
* Then set limit to -1, causing massive memory issues on big data sets
* Now fix the memory problem by batching the responses
* Use env var for max relational batch size
* Rename env var, add to docs
* Support listen option for allowing server to listen on wanted IP address or host
* Change default listen value from localhost to 0.0.0.0
* Update LISTEN variable to HOST
* fix formatting
* Update docs/configuration/config-options.md
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Update plesk docs: Create / apply snapshots
Add a script wrapper to support snapshots on plesk servers.
Not sure if the example script should stay here or be added next to the other wrapper on the cli-page.
* Update docs/getting-started/installation/plesk.md
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* fix docs dark mode
* tweak code token color
* dynamic color for homepage elements
* swap primary/secondary for dark mode
* add dark variant of header background
* .gitignored package-lock.json that was created in the docs subfolder
* tweaked color names, except the ones in in vue files
* converted terminal screencaps into markdown
* updated images in 'Content'
* updated user-directory images
* updated media in file-library
* moved picsto cloud in reference>files
* updated images in config > datamodels > relationships
* updated primary colors in app-overview.svg
* updated insights images
* swapped quickstart-guide media and touched up copy
* Update last colors, remove linting from docs temporarily
* Fix theme color
* Update homepage header image
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>