Commit Graph

214 Commits

Author SHA1 Message Date
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
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
Rijk van Zanten
716e02f21f Fix groups in v-field-template (#12284)
* Fix groups in v-field-template

* Remove unused param
2022-03-21 14:39:48 -04:00
Gerard Lamusse
7561648f1b Fix being able to export a relational field that is within a group (#12260) 2022-03-21 09:35:50 -04:00
rijkvanzanten
bdfa50d9cb Fix nested group key path for m2o fields 2022-03-16 11:38:51 -04:00
Rijk van Zanten
5a77ac2f30 Group groups in field select, add search when number of fields exceeds 20 (#12157)
* Group groups in field select

* Fix selecting nested o2m

* Add search to field-list

* Only show search if fields > 20

* Fix default value for v-input

* Add search to field selection

* Make search work on nested subset

* Make search work nested+insensitive

* Fix sorting in field select

* Fix relational fields nested in groups
2022-03-16 10:47:24 -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
c51ca2e67b Fix "Save as Copy" for relational fields (#10418)
* fix "save as copy" for relational fields

* use router replace instead of push
2022-03-04 19:50:35 -05:00
Azri Kahar
e6055c8bf8 Resizable navigation panel (#11944)
* WIP for resizable nav panel

* tweak handle width & hover delay

* further tweaks based on vscode's implementation

* add useLocalStorage

* tweak responsiveness & limits

* prefix localstorage key

* rename key

* add context menu for resetting width

* snap into place when within 10 pixels range

* fix stylelint

* Tweak styling, reduce folder complexity

* Remove context menu

* Organize imports

* Rework private-view to script setup

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-03-04 19:15:10 -05:00
Rijk van Zanten
6a3eb823c3 Update base theme of the App (#11952)
* 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>
2022-03-04 18:53:39 -05:00
Azri Kahar
9f0c272976 Hide save options when no create permission (#11762) 2022-02-21 11:12:01 -05:00
Azri Kahar
8a85e2adc1 Show errors for Save as Copy action (#11761)
* show errors for Save as Copy action

* extract error handler for both save & saveAsCopy
2022-02-21 11:11:17 -05:00
Azri Kahar
b74891217f Fix alias fields not showing up in permissions (#11685) 2022-02-17 09:17:40 -05:00
Azri Kahar
d7e45f4708 fix fields validation to include field presets (#10882) 2022-02-04 08:44:06 -05:00
Azri Kahar
bd39b1b546 Fix fields order in Fields Permissions (#11265)
* fix fields ordering in Fields Permissions

* extract logic into reusable function

* refine comment
2022-01-25 15:23:25 +00:00
Nicola Krumschmidt
ad8e09c96f Only trigger edits guard if there are edits (#11170)
We should only show a warning if the user actually made changes to the item.

Fixes #11088
2022-01-19 18:50:34 +00:00
José Varela
dc393ed9ba Create composable use-edits-guard (#11018) 2022-01-13 16:49:01 +00:00
José Varela
1c2848aadc has-edits as part of use-item (#11016) 2022-01-13 09:00:48 -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
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
Azri Kahar
4d97597e8f Add Archive sidebar component (#10513)
* move archive to dedicated sidebar component

* fix unarchive dialog & notification

* update docs on viewing archived items

* remove commented code

* use radio btns, update options text & query string

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-16 22:30:00 +00:00
Azri Kahar
31bb890496 Unify & translate initial role/user detail in init & bootstrap command (#10493)
* Unify initial role/user detail in init & bootstrap

* translate role descriptions

* translate data from system collections
2021-12-14 09:33:44 -05:00
Azri Kahar
a33f0a63c0 fix advanced filter fields order with field groups (#10123)
* fix advanced filter fields order with field groups

* revert divider changes

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-10 15:04:17 -05:00
Oreille
8c468ced31 Small optimization in getNodeAtPath (#10316) 2021-12-06 00:35:37 +00: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
rijkvanzanten
bbc46d4b3d Fix regression in layout options 2021-12-02 15:32:17 -05:00
Oreille
81ccf499df Fix updatePreset behavior (#10212)
* Use `merge` for `layout_query` and `layout_options`

* Fixed typo

* Don't use merge for layout_query and layout_options

* Removed unused import

* Fixed copypaste typo

* Make sure we don't accidentally break nested referenced objects

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-02 15:08:27 -05:00
Pascal Jufer
d4ec4a9672 Fixing some type errors in app #2 (#9637)
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 17:36:56 -05:00
Oreille
9c9e2eff5b Fix ability to change M2O field type and prevent incompatible interfaces in advanced mode (#10096)
* Fix ability to change M2O field type and prevent incompatible interfaces in advanced mode

* Removed unused imports

* Rename interface variable
2021-12-01 16:16:37 -05:00
Oreille
6e609ea82e Use lodash.assign in use-preset.ts (#9212)
* Use lodash.merge in use-preset.ts

* Use `assign` instead of `merge`

* Remove commented out code

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-12-01 15:47:51 -05:00
José Varela
485c984231 Fix reuse same M2M junction fields (#9789)
* reuse one_field if same m2m junction collection

* remove condition preventing 'create new'
2021-11-24 16:04:00 -05:00
José Varela
3968faa71f Fixup #9756 (#9760) 2021-11-12 14:39:59 +00:00
José Varela
076e28ff64 Improvement: DRY on applyConditions (#9756) 2021-11-12 14:08:10 +00:00
Oreille
ef3da32ab3 Properly handle M2A fields in fieldStore and useFieldTree (#9432)
* Properly handle M2A fields in fieldStore and useFieldTree

* Fix addNode

* Rewrote use-field-tree

* Remember visited paths

* Fix error whith undefined relation.meta
2021-11-04 20:35:05 -04:00
Pascal Jufer
942d7d39fe Fixing some type errors in app (#9466)
* Fixing some type errors in app

* Remove unused import

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-11-04 13:32:47 -04:00
Pascal Jufer
bdbb604ff6 Fix condition to translate directus collections (#9353)
* Fix condition to translate directus collections

* Check whether collection belongs to 'directus_collections'

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-11-02 20:16:09 +00:00
Oreille
b8e54442cb Fix field tree not updating appropriately. (#9118)
* Fix field tree not updating appropriately.

* Reset visitedRelations on collection change.
2021-10-25 11:48:54 -04:00
ian
20ec941fa8 Fix click on relational filters with children (#9007) 2021-10-21 12:35:48 -04:00
Sam Milledge
18d99a875a Fix settings page freeze when custom fields have a sort value (#8876) 2021-10-18 12:39:01 -04:00
Rijk van Zanten
8f00e37daf Add improved collection organization setup (#8623)
* Add migrations, start on service

* Dont track TODO files

* Update collection types, add collection type

* Allow drag and drop sorting of collections

* Add tooltip

* Add grouping + collapsed state

* Fix nested closed state

* Tweak active drag styling

* Remove collapsed state

* Add folder creation/editing

* Render collections as nested tree in nav

* Fix open active state

* Add dense when collection count > 5

* Add visible toggle

* Add show-hidden toggle

* Fix css specificity

* Add support for query in v-list-group

* Add missing cascade

* Remove collapsed state

* Finish three-way toggle

* Add custom lock icon

* Fix icon size in non-dense

* Redirect to first & open tree on load

* Dont make prop required

* Fix search

* Only apply archive filter when enabled in settings

* Add archive view

* Add translations

* Hide organization fields

* Show system collections
2021-10-15 21:19:00 +00:00
Pascal Jufer
e3bfe69de3 Translation fixes (#8695)
* Implement translation for activity items

Fixes #8415

Also fixes issue with "Open item" link for system collection

* Fix 'Create New' btn translation in list interface

Fixes #8427
Default values needs to return a function to be dynamic
Same for "Empty item" translation

Also use field.name instead of field.field value for field title

* Fix translation of default values in boolean & dropdown interfaces

* Translate note field of system collections in edit mode

* Translate remaining "hard-coded" values

* Add dedicated translation for open folder

* Update app/src/interfaces/list/list.vue

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>

* Use translate-object-values and check if collection starts with
'directus_'

* Use already existing translation keys for activity items

As discussed

* Translate whole data object if system collection

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2021-10-14 11:29:48 -04:00
Nitwel
55e3b342ec Add translations display (#8264)
* add translations display

* add progress and lang preview

* format changes

* remove unused

* remove unused

* fix errors and clean up style

* make lang title bold

* Fix imports

* 🧹 Little cleanup

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-10-13 23:31:15 +00:00
Oreille
475f6349f0 Map layout and interface improvements (#8628)
* Map layout and interface improvements:
* Disable drag to rotate
* Add keyboard shortcut to delete items
* Hide unselect button when selection is empty
* Add display template setting
* Fixed fitData button behaviour

* Removed unused hoveredFeatureId

* Added translations

* Expose clearFilters to the layout.
2021-10-12 09:50:18 -04:00
Pascal Jufer
23a126b026 Fix eslint warnings and cleanup unused disable-directives (#8718)
* Fix eslint warnings

* Remove unused eslint disable-directives
2021-10-12 09:49:01 -04:00
Rijk van Zanten
f64a5bef7e Add new advanced filters experience (#8570)
* Remove advanced filter sidebar detail

So long, and thanks for all the fish.

* Remove filter conversion logic

* Start replacing/removing old skool filters

* Add inline mode for usages in search bar

* Make filter work in header bar

* Emit empty string as null in filter

* Move shared filter types to shared

* Upgrade use-items

* Fix manual sort on tabular

* Cleanup styling in search bar usage

* Tweak styling

* Fix filtering issues

* Update cards

* Remove activeFilterCount from tabular

* Update maps to work with new filters

* Update calendar to new filter/sort structure

* Fix activity module nav/search

* Fix no-results message

* Update file library filtering

* Finalize user search

* Allow filtering in drawer-collection

* Handle cancelled responses semi-gracefully

* Add loading start state timeout

* Replace sort type in api

* Last commit before redoing a bunch

* Finish new visual style

* Remove unused rounded prop from v-menu

* Tweak sizing

* Enough size tweaking for now

* Count all filter operators instead of top

* Fix archive casting

* Fix api build

* Add merge filters util

* Split filter in user vs system

* Fix export sidebar detail

* Show field label on permissions configuration

* Add migration for filter/sort

* Use filters in insights
2021-10-07 18:06:03 -04:00
Nitwel
4fd9f4c31c Add Filter interface (#7492)
* initial tests and preparation for filter interface

* get basic structure down

* improve visuals and interaction

* stop modifying props 🙃

* update logic blocks style

* clean up filter interface

* lint css

* support m2a and simplify visited relations

* allow for recursive loading of fields

* use filter interface on conditions

* Use dynamic useFilterTree instead of old one (#7569)

* use advanced field tree on field template

* update to advanced field tree

* remove old useFieldTree

* update to new design

* add border on nested nodes

* tweak styling

* Fix linter warnings

* Fix field-setup

* clean up interface

* clean up interface

* clean up and rename files

* clean up code

* use default filter structure

* fix changing fields

* Add monospace style option to tooltips

* Various small stylistic tweaks

* Add menu placement

* Cleanup "big interface" usage

* Remove seamless

* Add dropdown on add filter

* Cleanup import/export, add v-select-placeholder-co

* Fix staging issue

* Allow overriding preview slow, fix padding

* Show field path inline

* Cleanup empty state

* Use new filter-interface in permissions setup

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-09-30 17:17:29 -04:00
Azri Kahar
bc816ceaeb Fix sorting for alias fields (#8278) 2021-09-24 11:26:29 -04:00
Rijk van Zanten
5498e25aad Only apply conditional variables in use (#8248)
Fixes #7894
2021-09-22 15:41:03 -04:00