206 Commits

Author SHA1 Message Date
rijkvanzanten
fb252ca4ce v9.9.0 2022-04-15 14:26:54 -04:00
ian
28fe1b243f Cast to number for joi between (#12666)
* Cast to number for joi between

* Fix between range as inclusive

* Update unit test
2022-04-11 09:50:07 -04:00
ian
68066eccb7 Remove UTC conversion from date, time and datetime fields (#10956)
* 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>
2022-04-06 16:15:22 -04:00
rijkvanzanten
2a6db01c42 v9.8.0 2022-04-01 14:41:08 -04:00
Rijk van Zanten
90f5b0a471 Add functions support to the app + add count function (#12488)
* 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>
2022-03-31 16:56:26 -04:00
Azri Kahar
31cfb8266f Bookmark improvements (#12031)
* 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>
2022-03-28 11:23:00 -04:00
Rijk van Zanten
175fb849c4 Add field-level validation (#12363)
* Add field validation column

* Add frontend config for validation

* Make it work

* Add regex to filter configuration

* Fix const/let

* Add custom validation message support

* Add custom validation message tooltip inline

* Fix custom names in validation errors up top

* Fix type error

* Nog eentje om het af te leren

* resolve unused import warnings
2022-03-25 18:03:36 -04:00
rijkvanzanten
7b15947276 v9.7.1 2022-03-23 14:50:51 -04:00
Azri Kahar
37cbaa0be5 Add App Translation Strings in Settings (#12170)
* 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>
2022-03-22 09:39:04 -04:00
ian
d0aa61e94a Prevent errors when using string filters with empty values (#11836)
* Prevent errors when using string filters with empty values

* Add tests

* String schema validation forced to false for null values
2022-03-21 14:03:42 -04:00
rijkvanzanten
c1da41d671 v9.7.0 2022-03-18 16:34:35 -04:00
Rijk van Zanten
1c3e94d830 Add new export experience (#12201)
* 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
2022-03-17 15:43:45 -04:00
Azri Kahar
76f463c608 Form error validation improvements (#12001)
* expand groups on save when they contain error(s)

* bubble to top & scroll top

* fix groups validation errors watcher

* fix group acordion's first error field selection

* update global error notice

* WIP - field validation

* tweak validation errors list styling

* more validation-errors-list tweaks

* click and scroll to field

* move validation error notice to a component

* tweak use-item validate

* validate drawer item

* extract validateItem function

* Revert "WIP - field validation"

This reverts commit f6ffd836c4.
2022-03-09 16:48:10 -05:00
Azri Kahar
13bae1f0c2 Add Edit Role context menu in User Directory (#12048)
* add Edit Role context menu in User DIrectory

* reuse Role type

* ensure hiding delete button for last admin works
2022-03-09 12:53:43 -05:00
rijkvanzanten
eba2576227 v9.6.0 2022-03-04 20:25:43 -05:00
Rijk van Zanten
962af79dbc Replace union query approach with updated table scan (#11246)
* 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
2022-03-01 18:20:00 -05:00
rijkvanzanten
47a5da78fb v9.5.2 2022-02-18 11:45:07 -05:00
rijkvanzanten
c0c412d30b v9.5.1 2022-02-03 20:41:49 -05:00
Rijk van Zanten
79ce3c8765 Add parsePreset helper function (#11423) 2022-02-04 00:29:28 +00:00
Jay Cammarano
f40a3e94a0 Add strings to accepted fields for Insights Panel "Metrics" (#10828)
* extension takes context object

* v-model with options object

* removed comments

* added typing

* fixed typing

* state is saved on field-configuration

* extension-options uses object for objectOptions

* removed unnecessary context

* more props instead of context object

* remove unused import

* move Panel type to shared

* passing edits.options => whole edit object

* alterOptions check => edits watch

* props on extension types have defaults

* returning the whole panel not just .options

* panels without functions load

* only displaying first, last, and count

* first last count working

* string values displayed!

* removed unused vars

* choices disabled not removed

* options.function resets to count

* fills in values when editing a panel

* field resets when collection changes

* doesn't wipe collection on edit

* panel cleared when panel type changes

* removed resolved comment

* package.json

* Advanced Field Detail working

* divider on type of function

* divider option removed unneeded values

* removed unneeded v-if

* Don't check against function type in panel options

* Tweaks to resolve my own commentary

* 🧹 Cleanup tweaks

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-02-03 16:55:15 -05:00
Nicola Krumschmidt
b8a627d0a2 Mark shared as side effects free (#11329)
Since #11099 the extensions-sdk isn't externalized anymore when bundling API extensions.
This causes rollup to pull in a lot of unnecessary dependencies that aren't automatically tree-shaken.

Fixes #11275
2022-02-02 03:48:20 +01:00
rijkvanzanten
78a25fe953 v9.5.0 2022-01-24 15:53:29 -05:00
Nicola Krumschmidt
4eed883329 Add DefinitelyTyped deps to shared (#11231)
This also moves type-only deps to "peerDependencies".

Fixes #10658
2022-01-24 10:18:36 -05:00
Nicola Krumschmidt
889668f972 Remove API extension types from the API (#11191)
There is little value in keeping these types inside the API package.
We should instead focus on improving the types in shared.
2022-01-20 22:19:52 +00:00
John Huffsmith
e7ada1f173 Moving schema and relation types into shared package (#11179)
* moving schema and relation types into shared package

* updating SchemaOverview imports

* removing duplicate import
2022-01-20 13:36:19 -05:00
Nicola Krumschmidt
9237a6452a Remove extensions-sdk and axios from the list of shared deps (#11099)
This ensures that extensions work with an out-of-root extensions folder.
Instead of leaving the list of API shared deps empty, this adds `directus` as the only shared dep
because it is never a good idea to bundle the Directus API into an extension.
2022-01-17 10:22:52 -05:00
rijkvanzanten
65bfe68b0c v9.4.3 2022-01-07 16:11:24 -05:00
Nicola Krumschmidt
9ee6e97cd9 Move useLayout composable to shared and expose it through extensions-sdk (#10850)
* Move useLayout composable to shared

* Expose useLayout through extensions-sdk
2022-01-05 15:38:48 -05:00
Nicola Krumschmidt
af0a197a99 Make registered extensions accessible from extensions (#10849)
* Add extensions system provide and useExtensions composable

* Expose useExtensions through extensions-sdk
2022-01-05 10:33:52 -05:00
rijkvanzanten
1a5a9180ee v9.4.2 2021-12-30 21:11:32 -05:00
rijkvanzanten
4991ba858b v9.4.1 2021-12-28 20:17:21 -05:00
rijkvanzanten
a47b9cec0f v9.4.0 2021-12-23 22:46:18 -05:00
Rijk van Zanten
dbf35a1736 Add ability to share items with people outside the platform (#10663)
* Add directus_shares

* Don't check for usage limit on refresh

* Add all endpoints to the shares controller

* Move route `/auth/shared` to `/shared/auth`

* Add password protection

* Add `share` action in permissions

* Add `shares/:pk/info`

* Start on shared-view

* Add basic styling for full shared view

* Fixed migrations

* Add inline style for shared view

* Allow title override

* Finish /info endpoint for shares

* Add basic UUID validation to share/info endpont

* Add UUID validation to other routes

* Add not found state

* Cleanup /extract/finish share login endpoint

* Cleanup auth

* Added `share_start` and `share_end`

* Add share sidebar details.

* Allow share permissions configuration

* Hide the `new_share` button for unauthorized users

* Fix uses_left displayed value

* Show expired / upcoming shares

* Improved expired/upcoming styling

* Fixed share login query

* Fix check-ip and get-permissions middlewares behaviour when role is null

* Simplify cache key

* Fix typescript linting issues

* Handle app auth flow for shared page

* Fixed /users/me response

* Show when user is authenticated

* Try showing item drawer in shared page

* Improved shared card styling

* Add shares permissions and change share card styling

* Pull in schema/permissions on share

* Create getPermissionForShare file

* Change getPermissionsForShare signature

* Render form + item on share after auth

* Finalize public front end

* Handle fake o2m field in applyQuery

* [WIP]

* New translations en-US.yaml (Bulgarian) (#10585)

* smaller label height (#10587)

* Update to the latest Material Icons (#10573)

The icons are based on https://fonts.google.com/icons

* New translations en-US.yaml (Arabic) (#10593)

* New translations en-US.yaml (Arabic) (#10594)

* New translations en-US.yaml (Portuguese, Brazilian) (#10604)

* New translations en-US.yaml (French) (#10605)

* New translations en-US.yaml (Italian) (#10613)

* fix M2A list not updating (#10617)

* Fix filters

* Add admin filter on m2o role selection

* Add admin filter on m2o role selection

* Add o2m permissions traversing

* Finish relational tree permissions generation

* Handle implicit a2o relation

* Update implicit relation regex

* Fix regex

* Fix implicitRelation unnesting for new regex

* Fix implicitRelation length check

* Rename m2a to a2o internally

* Add auto-gen permissions for a2o

* [WIP] Improve share UX

* Add ctx menu options

* Add share dialog

* Add email notifications

* Tweak endpoint

* Tweak file interface disabled state

* Add nicer invalid state to password input

* Dont return info for expired/upcoming shares

* Tweak disabled state for relational interfaces

* Fix share button for non admin roles

* Show/hide edit/delete based on permissions to shares

* Fix imports of mutationtype

* Resolve (my own) suggestions

* Fix migration for ms sql

* Resolve last suggestion

Co-authored-by: Oreilles <oreilles.github@nitoref.io>
Co-authored-by: Oreilles <33065839+oreilles@users.noreply.github.com>
Co-authored-by: Ben Haynes <ben@rngr.org>
Co-authored-by: Thien Nguyen <72242664+tatthien@users.noreply.github.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
2021-12-23 18:51:59 -05:00
rijkvanzanten
4b444baf5b v9.3.0 2021-12-16 18:48:10 -05:00
Sam Milledge
5a30fa4f40 Fix missing operators in field filter type (#9582) 2021-12-16 18:40:15 -05:00
Nicola Krumschmidt
ee3e9b59f9 Pass a custom emitter to API extensions (#10531) 2021-12-15 18:49:55 -05:00
Nicola Krumschmidt
23951e5a02 Align display options type with interface options type (#10524)
* Align display options type with interface options type

* Fix linter warnings

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-15 20:25:46 +00:00
rijkvanzanten
546d525175 v9.2.2 2021-12-10 15:53:08 -05:00
rijkvanzanten
1d4e9c425c v9.2.1 2021-12-06 14:31:01 -05:00
Rijk van Zanten
5d80038a8a Fix permissions merging on null check (#10336)
Fixes #10305
2021-12-06 15:12:20 +00:00
Nicola Krumschmidt
ad4a13f93b Share pinia with extensions (#10335)
Pinia is stable and also the recommended state management lib for Vue 3 🔥
2021-12-06 09:58:48 -05:00
rijkvanzanten
776c105aac v9.2.0 2021-12-03 16:16:38 -05:00
José Varela
eb68f85e54 Support 'selectionMode' on tabular and cards (#8010)
* showSelect as 'none', 'one' or 'multiple' on table

* showSelect on cards

* showSelect and fix on calendar

* showSelect and fix on map

* fix layout selection prop type

* fix tabular row click on select mode

* remove unused import

* minor strict equality changes

* hide checkbox for activity table

* Update app/src/modules/notifications/routes/collection.vue

Co-authored-by: ian <licitdev@gmail.com>

* Make preset item reactive

* Add comment clarifying ref wrapper

* Fix type signature of layout props

Co-authored-by: Azri Kahar <azrikahar@outlook.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-02 16:02:13 -05:00
Oreille
b4557056a0 Don't go back to page 1 when navigating back from an item (#10235) 2021-12-02 19:33:18 +00:00
Oreille
525e2548b4 Fix compatibility with Postgres <= 10 (#10139)
* Use indnatts instead of indnkeyatts in postgres dialect

* Update knex-schema-inspector

* Add PG10 for debugging

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 20:36:46 +00:00
Alejandro Castaño González
022b867a23 Add status field in the directus_notifications collection (#10064)
* Add status field

* Update notification type
2021-12-01 14:19:48 -05:00
Oreille
0425809db1 Fix string filter unexpectedly being casted to number (#10138)
* Fix string unexpectedly being casted to numbers

* Parse filter with multiple keys into `_and` block.

* Fixed filter structure in tests
2021-12-01 13:55:54 -05:00
Azri Kahar
8dec148ca2 refresh edited insights panel on change (#10180)
* refresh edited insights panel on change

* move api simpleHash to shared utils getSimpleHash

* Simply reactivity fix for time-series

* Remove unused import

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 17:26:55 +00:00
Azri Kahar
648b2d0e36 fix filter breaking instead of defaulting to _eq (#10194) 2021-12-01 14:42:09 +00:00
rijkvanzanten
9bf033c18d v9.1.2 2021-11-25 12:36:24 -05:00