Commit Graph

57 Commits

Author SHA1 Message Date
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
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
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
Nicola Krumschmidt
051df415df Fix extensions (#6377)
* Add support for npm extensions

* Allow extensions to import vue from the main app

* Bundle app extensions on server startup

* Fix return type of useLayoutState

* Add shared package

* Add extension-sdk package

* Add type declaration files to allow deep import of shared package

* Add extension loading to shared

* Refactor extension loading to use shared package

* Remove app bundle newline replacement

* Fix extension loading in development

* Rename extension entrypoints

* Update extension build instructions

* Remove vite auto-replacement workaround

* Update package-lock.json

* Remove newline from generated extension entrypoint

* Update package-lock.json

* Build shared package as cjs and esm

* Move useLayoutState composable to shared

* Reverse vite base env check

* Share useLayoutState composable through extension-sdk

* Update layout docs

* Update package versions

* Small cleanup

* Fix layout docs

* Fix imports

* Add nickrum to codeowners

* Fix typo

* Add 'em to vite config too

* Fix email

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-23 12:43:06 -04:00
Rijk van Zanten
bc8370d084 Add item duplicate fields configuration option to directus_collections (#6140)
* Add item_duplication_fields field

* Add types for item duplicate fields
2021-06-08 17:57:28 -04:00
Nicola Krumschmidt
1961dc188b Port the app to Vue 3 (#5339)
* Fix linting errors

* Fix remaining catch all routes

* Fix directive registration regression

* Replace $router global with composition function

* Fix v-bind overwrite order in nested-draggable

* Migrate vuedraggable

* Fix building with empty translation files

* Add comment regarding array equality check

* Fix markdown-it plugins import

* Fix newly introduced wrong store usage

* Fix v-button-group model

* Fix v-fancy-select model

* Fix v-field-template model

* Fix v-input model

* Fix v-item-group model

* Fix v-menu model

* Fix v-select model

* Fix v-tabs model

* Fix v-tabs-items model

* Fix v-textarea model

* Fix v-checkbox model

* Fix v-dialog model

* Fix v-drawer model

* Fix v-form model

* Fix v-list model

* Fix v-table model

* Fix v-detail model

* Fix v-radio model

* Fix v-switch model

* Fix files-navigation model

* Fix replace-file model

* Fix bookmark-add model

* Fix bookmark-edit model

* Fix drawer-batch model

* Fix drawer-item model

* Fix file-lightbox model

* Fix image-editor model

* Fix notifications-preview model

* Fix users-invite model

* Lowercase editor component name

* Fix collections-filter model

* Fix filter-input model

* Fix filter-sidebar-detail model

* Fix folder-picker model

* Fix interface-checkboxes model

* Fix interface-code model

* Fix interface-icon model

* Fix interface-repeater model

* Fix refresh-sidebar-detail model

* Fix search-input model

* Fix interface/display component option v-model usage

* Replace calling listener through $attrs with $emit and add emits option

* Add comment regarding useCustomSelection emits

* Fix context menu activation

* Fix collectionsStore access

* Fix popperjs

* Hotfix useGroupable

* Fix notifications-preview old prop name

* Fix module bar tooltip translation

* Fix useSync type signature

* Fix update:layoutOptions emit name

* Fix usePermissions missing imports regression

* Revert changes to docs vuepress instance

* Fix module-relative-resolve vite plugin when serving

* Fix docs

* Fix refresh on first load

* Fix creating new collection

* Fix loading of collection route

* Fix v-dialog/v-menu appear transition

* Access props directly

* Fix v-table clickable

* Fix v-drawer cancelable

* Fix v-icon clickable

* Fix v-input clickable

* Fix v-list-group clickable

* Fix v-list-item clickable

* Fix v-overlay clickable

* Fix header-bar primary button

* Fix v-table item.* slot

* Fix vue warning regarding exposed variables starting with _ or $

* Fix usePermissions

* Add package-lock.json

* Fix v-form unset regression

* Fix vue shims

* Fix useCustomSelection emit

* Make extensions arrays shallow

* Move teleport targets out of the vue app

* Fix v-field-select model

* Fix v-slider model

* Fix v-pagination model

* Fix card model

* Fix v-select item-value prop usage

* Fix layout-sidebar-detail model

* Fix form-field model

* Fix form-field-menu model

* Fix form-field-interface model

* Fix v-form model

* Use kebab-case for modelValue

* Update package-lock.json

* Add missing dependency

* Replace $t with i18n composable

* Replace remaining usages of $t

* Replace $te with i18n composable

* Replace $n with i18n composable

* Disable global injection in vue-i18n

* Replace i18n.global.t usage where composable is already imported

* Replace remaining i18n.global.t usage with composable

* Replace remaining i18n.global usages with composable

* Fix uploadFile emitter regression

* Remove inheritAttrs: false from file-info-sidebar-detail

* Hotfix v-input

* Update .eslintrc.js

* Fix use-preview

* Fix eslint issues

* Remove unused imports

* Fix extension getter type

* Refactor layout structure and fix tabular layout

* Fix build

* Fix cards layout

* Hotfix vuedraggable

* Dev is true again

* Register export-sidebar-detail globally

* Deconstruct layout state

* Fix calendar layout

* Fix cards/calendar layouts

* Fix layout options when switching layout

* Replace marked usage with md util

* Use useLayout everywhere

* Fix type issue

* Fix codemirror dynamic imports

* Fix data-fns dynamic import

* Fix useLayout selection

* Fix v-avatar scoped styling

* Remove unused v-button-group component

* Remove v-deep from v-card-actions

* Replace v-deep in v-dialog

* Use correct pseudoclasses for vue3

* Fix v-deep in v-field-template

* Replace v-deep in v-list-item-content

* Replace v-deep in v-list-item

* v-deep in v-list

* v-deep in v-notice

* Replace breakpoint mixin

* Replace v-deep in v-button

* Enforce empty line before block

* v-deep in v-pagination

* No white lines on the inner brackets of a block please

* Replace v-deep in v-select

* Fix stylelint rule

* Replace v-deep in v-table

* Replace v-deep in v-tabs

* Replace v-deep in rich text input

* Replace v-deep

* Replace v-deep elsewhere

* Needs more stylelint tweaks, but v-deep is done

* Fix translations interface

* Fix date layout

* Fix npm install

* Fix router catch all routes

* Fix layout options

* Remove call to next in router guards

* Remove vue router in-component guards

* Refactor module route registration

* Fix collections module navigation

* Fix settings module navigation

* Fix router-passthrough in devtools

* Refactor docs export and docs route registration

* Import docs routes using exported function

* Remove moduleRelativeResolve vite hack

* Re-add dev scripts

* Fix deprecated hljs usage

* Use activateContextMenu without parens

* Re-add readme/license/editorconfig

* Fix groupable

* Fix initial docs navigation

* Move global app css to app component

* Fix collection navigation icon color

* Fix field setup style

* Fix divider icon style

* Fix optional v-input slots

* Use $slots direct property access

* Fix docs font style

* Fix docs v-deep

* Fix docs add missing styles

* Remove docs style margin

* Fix save options color

* Fix nested v-slotted usage

* Fix v-button exact prop

* Fix v-list-item exact prop

* Fix package-lock.json

* Improve useSync type

* Fix route type error

* Fix bookmark router links

* Add redirect to route with bookmark

* Fix files module folder route

* Fix users module role route

* Add redirect routes to files and roles sub-routes

* Fix users module role active state

* Replace routerPassthrough function with object

* Nest file routes

* Improve module bar hidden check

* Remove slash from module router link

* Fix files and folder navigation

* Revert users route nesting

* Fix buttons in list

* Don't make nav item mandatory in left sidebar

* Fix infinite loop in box open

* Fix interactivity in v-list items

* Fix docs menu jumps

* Fix right click positioning

* Fix missing translations

* Fix close/open alignment of color interface

* Fix code editor interfaces

* Fix relation access in cards layout

* Remove template ref from collection-or-item

* Revert jest-environment-jsdom package update

* Fix package-lock.json

* Resolve vue3 TODO comments

* Fix layout presets

* Remove reactivity fix

* Remove Todo3 comment

* Fix icon color override

* Add error message to useLayoutState

* Add composable to properly transition dialog routes

* Fix new collection transition

* Fix add new role transition

* Fix add new file transition

* Fix activity item transition

* Fix error type in useItems

* Fix collection error dialog transition

* Fix field detail transition

* Fix permissions detail transition

* Fix store getters types

* Update package-lock

* Fix preview icon color

* Fix reference to selections

* Fix linter warnings

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-08 15:59:55 -04:00
Rijk van Zanten
85d33d9ffc Fixed an issue that would cause "text" fields to show up as varchar with length -1 in MS SQL (#6055)
Fixes #5944
2021-06-03 22:35:07 -04:00
Rijk van Zanten
58e38b68ae Fixed issue in collection color reading for tables that weren't configured in directus yet (#6052)
Fixes #6050
2021-06-03 21:16:38 -04:00
Oreille
22f2e4662f Add support for adding a collection accent color (#5818)
* Added icon_color to directus_collections
Added migrations
Added color property to select-icon
Fixed select-icon placeholder

* Use icon color in collection header bar.

* Set `collection` and `note` fields to hald witdh

* Rename icon_color->color

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-03 13:04:19 -04:00
Rijk van Zanten
9335372400 Foreign Key Constraints (#5615)
* Bump knex-schema-inspector

* Fix cli role name attr

* Update relation type

* Restructure relations

* Restructure relations table

* Update api type for relation record

* Fetch relations in new structure

* Update schema-inspector

* Use new relations schema structure in api

* Update relations GETters

* Add default value to one deselect

* Add create relationship on existing field

* Add updating existing relationship

* Add delete relations

* Add relations query resolver

* Add graphql mutations for relations

* Fix reading from wrong name

* Fix wrong method name

* No idea why this flip flops every install

* Update relation type

* Accept null in use-collection composable

* Use new relations structure in translations

* Use new relations structure in new-collection

* Start updating field detail store

* Renames for new relations structure

* Silently ignore passed collection/field in relation update

* Fix setting pk field in m2o relational setup

* Small tweaks in o2m setup

* Fix m2m setup

* Tweak m2o setup

* Fix m2a setup

* Allow null for related collection (m2a)

* Fix languages code name

* Fix migration default value

* Fix relational cleanup in collections/fields

* Fix transaction problem in field delete

* Fix inserting relational o2m items

* Don't execute updateByQuery on empty item set

Fixes #5710, fixes #5070

* Show referential action input on m2o

* Finish language for m2o

* Show triggers config on o2m

* Delete items on one_deselect_item delete

* Fix naming, show relational trigger config on m2m

* Tweak language, add setup to m2a

* Fix linter warnings

* Add trigger setup for translations

* fix Edit non-schema relationship issue

* Sync existing on_delete triggers in o2m setup

* Add migration to setup foreign key constraints

* Update illegal FK values before setting constraint

* Fix MySQL unsigned vs not-unsigned in FK creation

* Use pretty names for labels in relational triggers

* Prefix auto-junction when system table

Fixes #5493

* Add system foreign key triggers

Fixes #5749

* Update docs
2021-05-19 12:29:16 -04:00
Rijk van Zanten
d1de1f0d58 Add calendar layout (#2893)
* Setup layout boilerplate

* Install calendar

* Render events based on date filter

* Style calendar toolbar

* Add layout options

* Start adding timeGrid, add todo list

* Persist viewInfo to preset

* Add dnd

* Fix linter warnings
2021-05-04 16:51:35 -04:00
rijkvanzanten
801e868554 Fix remaining eslint errors
h/t @paescuj
2021-04-29 15:55:12 -04:00
Rijk van Zanten
84f4a1da01 Add singular/plural collection name translations (#5302)
* Add singular/plural options to collection translations

* Use singular/plural item names in related values

* Use singular / plural names on item detail

* Use singular/plural for drawer item

* Fix translation
2021-04-27 16:22:52 -04:00
Rijk van Zanten
40b9fb0fe6 Allow disabling activity/revisions (#5112)
* Add accountability column

* Add field info for accountability

* Add accountability to collection type

* Fetch accountability info from collection meta

* Add field name translation for accountability field

* Hide revisions drawer detail if revisions aren't available

* Only save activity where accountability flag matches

* Disable revisions for directus_presets

Fixes #3767

* Tweak field option naming
2021-04-16 16:26:18 -04:00
Nitwel
44091e6f41 Add option to auto refresh collections (#4777)
* add auto refresh

* add refresh_interval to DB

* remove refresh_interval template

* set refresh interval default to null

* Fix typo in filename

* Rename sidebar-auto-refresh to refresh-sidebar-detail

* Rename import

* Add badge on active refresh, change options

* Fix refresh not working on refresh

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-04-09 17:24:40 -04:00
rijkvanzanten
1e89c25872 Remove "locked" field from directus_fields
Closes #3925
2021-03-04 18:41:59 -05:00
Rijk van Zanten
db30acbb8a Move sortField to relationship setup (#4304)
* Add migration

* Add sort field to relation types

* Remove sortfield options in favor of relationship

* Add sort field configuration to relational setup

* Save m2a sortfield on the correct row

* Add default sort field to system data
2021-02-25 19:13:36 -05:00
Nitwel
bdec23c796 Fix bookmarks not updating properly (#4134)
* first try on fixing bookmarks

* fix bookmarks and search not updating on single word

* Fix double inject on paste

Fixes #3792

* Remove unused import

* Set bookmark saved state on clear local value

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-02-18 11:21:49 -05:00
rijkvanzanten
05f0bc967e Turn hash into type
Fixes #3542
2021-01-12 17:08:19 -05:00
Igor Savin
7cddb458cb Run prettier across app and api 2020-12-08 02:22:00 +02:00
rijkvanzanten
a17c3ce6db Start on m2a-builder interface 2020-11-16 15:38:59 -05:00
rijkvanzanten
528112314d Remove outdated tests, fix imports 2020-11-09 12:29:01 -05:00
rijkvanzanten
44f926e911 Update/fix unexpected error dialog 2020-11-05 17:02:01 -05:00
rijkvanzanten
4130337f7a Merge branch 'main' into error-handling 2020-11-05 16:16:44 -05:00
rijkvanzanten
f1289a66dc Use csv of strings for permissions fields 2020-11-04 11:31:04 -05:00
rijkvanzanten
dca7df6fb2 Fix v-field-select dropdown
Ref #852
2020-11-03 15:16:07 -05:00
rijkvanzanten
3b97a408b4 Disable locked fields on field setup 2020-10-29 15:14:05 -04:00
Nitwel
c8653589b1 Merge branch 'main' into error-handling 2020-10-24 11:21:33 +02:00
Nitwel
72cf8af575 remove error option 2020-10-24 11:16:49 +02:00
Nicola Krumschmidt
3052b850ef Remove field.meta.required property 2020-10-22 18:52:45 +02:00
Nitwel
2dd509e48a add proper error handling 2020-10-22 17:26:37 +02:00
Nitwel
8857ac54fb improve related values display 2020-10-15 17:04:07 +02:00
maartenvn
716784a1c8 Replace 'locale' with 'language'
- Update fields translations use 'language' instead of 'locale'
- Replace all translation files from locale to language
- Update the docs with locale to language
2020-10-10 00:59:10 +02:00
maartenvn
97de8af2c8 Remove unused 'locale_options' 2020-10-10 00:43:39 +02:00
maartenvn
07c33720c8 Use 'language' instead of 'locale' in the app 2020-10-10 00:43:00 +02:00
rijkvanzanten
bf76244ba7 Various system schema name changes
Fixes #482
2020-10-02 17:43:58 -04:00
rijkvanzanten
aa014542a4 Rename roles.admin to roles.admin_access
Closes #142
2020-09-18 12:16:09 -04:00
rijkvanzanten
b8eff4c788 Use CSV for special, add on create / on update for fields 2020-09-15 17:31:37 -04:00
rijkvanzanten
9a4016ef86 Add export drawer detail, fix search 2020-09-15 15:19:05 -04:00
rijkvanzanten
14d4a480bf v9.0.0-alpha.35 2020-09-14 18:20:51 -04:00
rijkvanzanten
f63da70257 Fix module / collections list 2020-09-14 18:05:45 -04:00
rijkvanzanten
6f201e72b0 Add webhooks browse 2020-09-10 14:44:55 -04:00
rijkvanzanten
29cee06685 Show validation errors in app
Closes #206
2020-09-09 15:49:18 -04:00
rijkvanzanten
72e99084a1 Rename presets title->bookmark 2020-09-08 11:33:19 -04:00
rijkvanzanten
d0e897d735 Rename view -> layout in db 2020-09-08 11:22:18 -04:00
rijkvanzanten
15e86a4efb Update bookmark editing flow 2020-09-04 16:56:57 -04:00
rijkvanzanten
c985fbbfb8 Use regular dropdown for default status field, make form work without field meta 2020-09-02 15:50:43 -04:00
rijkvanzanten
1b71dd294e Add hide-archived default filter based on app toggle 2020-09-02 13:27:34 -04:00
rijkvanzanten
0e886f4db0 Replace soft delete with archive, add unarchive 2020-09-02 13:17:11 -04:00
rijkvanzanten
1149e58345 Add soft delete field/value button 2020-08-31 11:29:55 -04:00