Commit Graph

511 Commits

Author SHA1 Message Date
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
Nicola Krumschmidt
b61543c0e9 Move DeepPartial to shared (#6886)
Also cleans it up and adds support for readonly arrays.
2021-07-20 11:40:59 -04:00
Rijk van Zanten
ac414877a6 Auto-open groups on search in tree-select (#6838) 2021-07-15 22:18:06 +02:00
Rijk van Zanten
d38681c2ee Add v-md directive (#6835)
* Use stricter Vue eslint setting

* Implement v-md directive

Replaces old uses of v-html + md util

* Fix typo
2021-07-15 18:01:30 +00:00
Rijk van Zanten
5f7dce54e2 Use stricter Vue eslint setting (#6833) 2021-07-15 13:49:59 -04:00
Rijk van Zanten
003d1fe20f Fetch all languages in the translations interface (#6800)
Fixes #6698
2021-07-15 01:03:21 +02:00
Nicola Krumschmidt
2d63a411f1 Fix md editor being empty when editing existing value (#6733)
Fixes #6730
2021-07-14 11:24:12 -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
Nicola Krumschmidt
8823434046 Fix translations interface options crashing the App (#6530) 2021-06-28 11:04:11 -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
b77285f3c3 Fixed issue that would prevent source code editing from staging values in wysiwyg (#6455)
Fixes #6306
2021-06-22 19:56:46 -04:00
Rijk van Zanten
7c562ec000 Fixed color option of the notice presentation interface (#6454)
Fixes #6353
2021-06-22 19:52:08 -04:00
Rijk van Zanten
7122b5d3b9 Fixed issue that would throw error in console when creating a new item in a collection w/ translations (#6453)
Fixes #6370
2021-06-22 19:48:45 -04:00
Johann Rekowski
bd5ca64db3 Fix spacings and icons on presentation link buttons (#6361)
* Fixed spacings between presentation-link buttons

* Fixed cut off icons on persentation-link buttons

* Use flex gap instead of margin

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-22 19:45:06 -04:00
Rijk van Zanten
e45a3e0570 Don't try rendering w/h when dont exist (#6450)
Fixes #6384
2021-06-22 19:16:47 -04:00
rijkvanzanten
9a2304a182 Clean up markdown value staging 2021-06-22 19:12:14 -04:00
Rijk van Zanten
aff2cebf2a Pass active codemirror instance to edit action (#6449)
Fixes #6373
2021-06-22 19:06:59 -04:00
rijkvanzanten
8eeac67e61 Don't overwrite preview with updated structure
Fixes #6407
2021-06-22 18:59:46 -04:00
Rijk van Zanten
5e5d0a0e41 Fix display template on collection detail page (#6442)
* Tweak spacing of checkboxes tree

* Fix scoping of attrs on v-field-template

Fixes #6422
2021-06-22 17:26:11 -04:00
rijkvanzanten
f53572335a Tweak spacing of checkboxes tree 2021-06-22 17:21:41 -04:00
Rijk van Zanten
bdbd63bb5c Add checkboxes-tree interface (#6441)
* Add checkboxes-tree interface

* Fix nested disabled state
2021-06-22 17:21:19 -04:00
Rijk van Zanten
0d899f097d Add ability to specify what fields to clone on "Save as Copy" (#6379)
* Start on tree-select component

* Stop propagation on label click as well

* Setup temp debug route

* Add value-combining=all

* Add branch mode

* Add leaf mode

* Add indeterminate state

* Add search

* Keep group state alive during search

* Fetch existing item based on clone fields data

* Add interface for setup

* Tweak field structure of m2a items

* Use collection name in checkbox

* Remove temp test
2021-06-18 16:37:27 -04:00
Rijk van Zanten
74799990be Fix emitter on input options (#6318)
Fixes #6312
2021-06-16 11:31:34 -04:00
rijkvanzanten
95f4b1c521 Fix console log usages in linter 2021-06-14 15:10:50 -04:00
Rijk van Zanten
706f4af68b Fixed issue that could cause the HTML interface to emit a change on first load (#6264)
* Don't emit changes on first content setter

Fixes #6218

* Fix type issues
2021-06-14 14:45:54 -04:00
Rijk van Zanten
35a304fd0a Fixed issue that would prevent the m2o from working on foreign keys with no meta row (#6263)
* Fix m2o reading from optional value

Fixes #6207

* Use optional chaining
2021-06-14 14:32:25 -04:00
Nicola Krumschmidt
0ca7f8c6eb Fix collection selection in system-collections interface (#6258) 2021-06-14 10:41:19 -04:00
masterwendu
2174d9e971 #6217 fix missing styling of tinymce (#6236)
* #6217 fix missing styling of tinymce

* #6217 remove unused css imports
2021-06-14 10:24:17 -04:00
dependabot[bot]
cd2e24d82c Bump vuedraggable from 4.0.1 to 4.0.3 (#6197)
* Bump vuedraggable from 4.0.1 to 4.0.3

Bumps [vuedraggable](https://github.com/SortableJS/Vue.Draggable) from 4.0.1 to 4.0.3.
- [Release notes](https://github.com/SortableJS/Vue.Draggable/releases)
- [Commits](https://github.com/SortableJS/Vue.Draggable/commits)

---
updated-dependencies:
- dependency-name: vuedraggable
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update vite as well

* Update vite, fix imports

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-06-11 09:43:31 -04:00
Rijk van Zanten
4cb8d1f814 Add additional check to Two-Factor Authentication (by @masterwendu) (#6187)
* 6113 add tfa generate endpoint

* 6113 implement tfa otp check in user settings

* 6113 add autfocus for otp field on login form

* update package-lock

* improve TFA uri with user email

* fix vue 3 compatibility

* reduce code duplication for enableTFA

* Remove unnecessary parameters

* Use project name in otp url when available

* Update docs/reference/api/system/users.md

Co-authored-by: Wendelin Peleska <wendu@pm.me>
2021-06-10 15:36:34 -04:00
Nicola Krumschmidt
f55a2072e1 Refactor bookmark query navigation (#6170)
* Revert back to using query params for bookmarks

Aka "this hurts so much"

* Fix collection navigation active state

* Add active and query props to v-button

Also unify active and activated state.

* Remove not needed exact prop from collections navigation
2021-06-10 15:11:01 -04:00
Rijk van Zanten
1f2bce9fd2 Prevent translation rows from being edited before existing values are loaded (#6173)
Fixes #6094
2021-06-09 19:13:03 -04:00
Rijk van Zanten
e20ad6c6b5 Use JSON editor for JSON field type default value (#6171)
Fixes #6088
2021-06-09 18:52:48 -04:00
rijkvanzanten
8ac6c44c95 Align styling of list-m2m list-o2m 2021-06-09 17:48:54 -04:00
Nicola Krumschmidt
12a3b22aa1 App type improvements (#6151)
* Fix v-table interalItems type

* Fix useGroupable return type

* Fix useCollection return type

* Fix useCustomSelection return type

* Fix useElementSize return type

* Fix useFormFields return type

* Fix useItem return type

* Fix useItems return type

* Prepend composable return type name with "Usable"

* Fix usePreset return type

* Fix useScrollDistance return type

* Fix useTitle return type

* Fix useWindowSize return type

* Fix usePermissions return type

* Fix useTemplateData return type

* Fix a few type issues in field store

* Fix extension getter return types

* Fix hydrate store type issue and double-hydrating users store

* Fix code interface type issue

* Fix m2m composables return types

* Fix html editor composables return types

* Fix collections module composables return types

* Fix files module composable return type

* Fix settings module composable return type

* Fix settings module roles composables return types

* Fix settings module users composable return type

* Fix return type issues in utils and a nasty parameter overwrite

* Fix modelValue casing in template
2021-06-09 11:18:21 -04:00
rijkvanzanten
9349f2e9b8 Fix options for input interface 2021-06-08 17:57:49 -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
4b35f97cfa Make mfa output code selectable (#6112)
h/t @masterwendu for the suggestion
2021-06-07 15:38:25 +00:00
Rijk van Zanten
f2180b1650 Fixed issue that would cause the whole row to be draggable in the list-type interfaces (#6056)
Fixes #5940
2021-06-03 22:43:28 -04:00
rijkvanzanten
c000c8a613 Revert dependency upgrades
Vue apparently had a small breaking change included in the patch release.

Squashed commit of the following:

commit f1e2635c20d4acef1752b8c2a357bbcfbb30a097
Author: rijkvanzanten <rijkvanzanten@me.com>
Date:   Thu Jun 3 19:07:54 2021 -0400

    Revert dep upgrades
2021-06-03 19:12:01 -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
nickluger
979bf87921 Improve disabled state on the file interface (#6025)
* See discussion: https://github.com/directus/directus/discussions/5105

* Still allow downloading the file if the file interface is disabled.

* Allow editing the underlying file (as this is possible anyway via the
  files collection), but do not allow disassociating the current file
  or setting another file, which is the actual semantic meaning of
  `disabled` in this context.
2021-06-03 12:42:52 -04:00
Rijk van Zanten
32b714208b Upgrade dependencies (#6032)
* Apply minors/patches

* Apply (safe) major upgrades
2021-06-03 12:10:04 -04:00
rijkvanzanten
dfab7b3911 Remove unused import 2021-05-25 08:23:49 -04:00
rijkvanzanten
9f015312ce Fix type error 2021-05-25 08:17:24 -04:00
Rijk van Zanten
5c66c53478 Enhance translations interface previews (#5860)
* Delete what was previously added

The reasons of which are beyond me

* Don't default to having the first nested field opened

* Add options for translations / language templates

* Pull previews and render based on secondary display template

* Add changeset
2021-05-24 20:56:29 -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
rijkvanzanten
a0512f8b5e Sanitize all user inputted md 2021-05-14 16:04:36 -04:00
José Varela
1a60d0036f app: fix sort creating items (#5484)
* app: fix sort creating items
Problem: When sorting, the relations were assigned to
another fresh created items on the related collection

Why: It was missing the primary key on nested relation.
When the primary key is missing, new item is created.

How to fix: Iterate over all fields to request and when nested field
is found, append the nested primary key.

* Make function name more descriptive, add comment, fix linter warning

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2021-05-14 12:51:09 -04:00
rijkvanzanten
58030ed0ef Add create/select toggles to m2a options
Fixes #5475
2021-05-12 16:46:23 -04:00