Commit Graph

199 Commits

Author SHA1 Message Date
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
Azri Kahar
420e85c2b2 change computed endpoint to getEndpoint utility (#8185) 2021-09-21 11:26:39 -04:00
Rijk van Zanten
213c5ddae0 Fix saving issue on invalid conditional rule (#8091)
Fixes #8083
2021-09-16 17:17:27 -04:00
Nitwel
ce8401b940 Move some compositons, utils and types to shared (#8059)
* move composables, types and utils to shared

* move composables, utils and types to shared

* expose utils and composables in extensionsSDK

* fix missing dependencies

* Sort index.ts exports

* Do the thing

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-09-15 16:41:08 -04:00
Nicola Krumschmidt
f99b97720e Rework layout extension component management (#7489)
* Rework layout extension component management

* Move cards layout to new system

* Move calendar layout to new system

* Move map layout to new system

* Use new useLayout everywhere

* Remove useLayoutState composable
2021-08-31 10:55:46 -04:00
Nitwel
607e32ea36 Resolve editor/type warnings (#7687)
* resolve editor/type warnings

* dont rename props
2021-08-30 16:54:17 -04:00
Nicola Krumschmidt
2569724ce8 Replace system provide with composables (#7668) 2021-08-27 11:18:39 -04:00
Nicola Krumschmidt
d64ca14348 Explicitly set catch parameters to any type (#7654)
This fixes not being able to build the repo due to type issues
introduced by the Typescript 4.4 option "useUnknownInCatchVariables",
which is enabled by default in strict mode.
2021-08-27 10:33:30 -04:00
Nitwel
b36df28603 fix running useFieldTree to often (#7543) 2021-08-23 08:31:34 -04:00
Nitwel
9b437ca98b don't sort filters alphabetical (#7525) 2021-08-20 10:50:34 -04:00
Rijk van Zanten
ef3d618d6c Add support for app-required field state (#7166)
* Add "required" option to fields

* Move some exceptions to shared

* Do client side validation for required

* Add conditional required support
2021-08-03 23:04:24 +02:00
Rijk van Zanten
92e1ee77bd Add support for Conditional Fields (#6864)
* Add conditions field to directus_fields

* Add conditions configuration

* Apply conditional overrides

* Handle conditions in nested groups

* Fix reverse mutating conditions

* Start on filter setup interface

* Move field types/constants to shared

* [WIP] Updated client side filter validation

* Support logical operators in client validation step

* Use new validation util in conditions check

* Add nesting in filter seutp

* Add filter rule setup configurator

* Fixes that should've been done in the merge

* Strip out filter-settings interface

TBD in a new PR

* Move browser to index
2021-07-26 18:02:24 -04:00
Rijk van Zanten
62df29a650 Fix form field sort order (#6943) 2021-07-23 21:16:17 +00:00
Nicola Krumschmidt
32972f4c01 Move define extension functions to shared and expose them through extension-sdk (#6880)
* Move defineInterface to shared

* Split up utils into node and browser utils

* Move defineDisplay to shared

* Move defineLayout to shared

* Move defineModule to shared

* Add defineEndpoint and defineHook to define-extensions

* Expose define extension functions through extension-sdk

* Make route type of defineEndpoint more specific

* Simplify define extension functions

* Deduplicate types and local types definition

* Do not allow functional components in display handler

* Make interface options nullable

* Deduplicate extension types definition

* Fix utils/node exports
2021-07-22 17:02:29 +02:00
Adrian Dimitrov
efe7b076a3 Add default-folder option (#3209)
* Allow set folder for imported files

* Allow passing folder in file/files component; Allow pick folder for file/files/image interfaces.

* Added folder system component for picking folders; Move folder picker the field from data to interface (file, files, image).

* Add custom folder interface; use props for interfaces file/files/image in upload component

* Allow set folder for imported files

* Allow passing folder in file/files component; Allow pick folder for file/files/image interfaces.

* Added folder system component for picking folders; Move folder picker the field from data to interface (file, files, image).

* Add custom folder interface; use props for interfaces file/files/image in upload component

* Update after rebase

* Add storage_default_folder setting, use folder when deploy file

* Fix files options; Add default label option for folder interface.

* Fix set folder for file

* UX

* Add migration for column, undo seed change

* Update nomanclature

* Make sure file library always submits folder, cleanup setting retrieval

* Use indexName on down migrate

* Fix import default folder, rename customPresets->folderPreset

* Rename interface import

* Use undefined as default folder

* Remove deprecated lang file

* Fix display of folder interface, treat null as value

* Move shared composable

* Remove unused ref

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-07-21 17:29:21 -04:00
Rijk van Zanten
0a20b90691 Add support for field grouping (#6553)
* Update icon font, add group type to field setup

* Add group type, start on group-raw interface

* Add style for group

* Finish nested groups

* Finish field group setup

* Add type check

* Work on group raw group

* Various

* Fix support for nested groups

* Add group-divider interface

* Remove unused file

* Fix linter warning
2021-06-28 19:17:55 -04:00