Commit Graph

853 Commits

Author SHA1 Message Date
Lukas Schätzle
a803331b4a Unify download icon (#15132) 2022-08-17 16:44:41 -04:00
ian
122f8cfed0 Fix URL for subfolder assets (#15126)
* Prevent duplicate rootPath for image in file-preview

* Add rootPath to file and file-image for downloading

* Revert change to v-image

* Patch rootPaths accordingly

* Fix missing file name on download
2022-08-17 14:03:29 -04:00
Azri Kahar
5297c56422 Fix translations interface and use-relation-multiple empty edits (#15111)
* fix translations interface empty edits

* fix use-relation-multiple empty edits
2022-08-17 11:35:09 -04:00
Azri Kahar
608596f382 Fix margin for tree view buttons (#15117) 2022-08-17 10:14:26 -04:00
Anh Le
9c0f806ed8 Add allow duplicates option to M2A and M2M interfaces (#14987)
* Add allow duplicates option to M2A and M2M interfaces

* add allow duplicates translation

Co-authored-by: Anh Le <anh.le@hybridheroes.de>
2022-08-16 21:19:55 +08:00
Brainslug
bd55ebcc83 Workaround preventing the drawer to render with an empty collection (#14824) 2022-08-15 09:40:15 -04:00
Azri Kahar
edc431764e fix filter by folder for file and files interface (#15073) 2022-08-15 09:38:41 -04:00
Azri Kahar
50963747f1 fix map interface for non-native geometry types (#15008) 2022-08-10 10:20:09 -04:00
Ramon van Bezouw
df054f294d RTL support in translation interface (#14665)
* first draft for translations rtl implementation

* make direction field dybamic

* Fixed default direction field

* added directionality to: tags, input-multiline, repeater (list)

* added directionality for wysiwyg, input-autocomplete, groups

* reverted directionality in wysiwyg-editor

* removed hardcoded rtl, ltr buttons from wysiwyg toolbar

* working directionality in wysiwyg editor

* also add v-if to await language for second language (split-view) in translations.vue

* added watcher for changing wysiwyg directionality on language change

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Martijn de Voogd <devoogd@kissthefrog.nl>
Co-authored-by: Martijn <73393707+martijn-dev@users.noreply.github.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
2022-08-09 15:23:05 +02:00
Azri Kahar
f611bfe3a8 fix checkboxes and radio buttons overflow (#14841) 2022-08-05 16:49:21 -04:00
Jonathan Schneider
479b65526c Remove disabled propertie from presentation links #14735 (#14867) 2022-08-05 14:53:13 -04:00
Gerard Lamusse
0f64c76d0d Only show search if there are more than 10 choices (#14663) 2022-08-03 17:02:58 -04:00
Gerard Lamusse
9508ed4f7a Exclude relationship fields on field validation (#14818)
* Exclude relationship fields on field validation

* Refactor to includeRelations. Also add to conditions
2022-08-03 15:20:13 -04:00
Rijk van Zanten
628dae7d2e Add configuration for "Add New"/"Select Existing" buttons in M2O interface (#14745)
Co-authored-by: Patrik Szkandera <patrik@laposa.ie>
2022-07-29 11:14:34 -04:00
Brainslug
8740f5e044 fixes interface "trim" defaults (#14709) 2022-07-28 17:41:33 -04:00
Azri Kahar
0f394d90d8 fix files interface's drawer download button (#14688) 2022-07-27 12:35:37 -04:00
Brainslug
ef397e97b1 broken assets paths when serving Directus from a subfolder (#14650)
* removing getrootpath

* removed redundant getRootPath from components

* We use leading / everywhere else in api usage

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-07-26 11:29:14 -04:00
Rijk van Zanten
88c5edf7a3 Add app unit tests using vitest (#14583)
* Install / bootstrap vitest

* Install c8

* Add tests for add-query-to-path

* Don't set global maplibre token on individual style

This feels wrong to me. We have a single global access token that should be used for these things. Overriding that with a token that's found for individual styles on top of the same global object in order of configured maps feels weird, as the latter tokens will override the earlier ones. Needs more research though

* Install testing libraries

* Use happy-dom as env in vitest

* Enable ts checking in tests

* Remove unused jest config

* Organize store imports

* Remove types from TSDoc in add-query-to-path

* Improve check in add-related-primary-key-to-fields

* Add reusable stub for anything touching nanoid

* Add tests for add-related-primary-key-to-fields

* Move adjust date to shared

* Remove arraysAreEqual util in favor of relying on lodash

* Fix add-related-primary-key-to-fields test

* Add test coverage for capitlize-first

* Add TSDoc/tests for extract-field-from-function

* Add test coverage for formatFieldFunction

* Add test coverage for format-filesize

* Add test coverage for get-groups

* Add tests for get-root-path

* cleanup imports

* Move tests to live next to source files

* Add tests for user-name

* Update type to match function behavior

* Add test coverage for point-on-line

* Add tests for is-empty

* Add test coverage for is-hex

* Remove getSetting util

Bit pointless to have a util function to just read a value from a store

* Add test coverage for get-related-collection

* Add test coverage for get-theme

* Add test coverage for get-with-arrays

* Add test coverage for hide-drag-image

* Add test coverage for is-permission-empty

* Remove unused import

* Add test for jwt-payload

* Add snapshot rendering test for v-sheet

* Add whitespace

* Rename __test_utils__ -> __utils__

* Add composable test

* Update app/tsconfig.json

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2022-07-25 16:23:45 -04:00
Rijk van Zanten
d6846d74eb Refactor unnecessary nested app folders (#14580)
* Remove unused nested folders from components

* Remove nested folders

* Standardize composables output

* Fix import inconsistencies

* Same trick for directives

* Same for routes

* Replace reliance root grouped export in favor of explicit imports

* Replace reliance on implicit imports

* Remove nested folder structure

* Consistent use of non-default exports in utils

* Remove nested folder structure from private components

* Fix test mock

* Remove extraneous component registration for valuenull

* Fix stores provider

* Fix logo sprite
2022-07-22 15:10:28 -04:00
Rijk van Zanten
600f55e4a2 Resolve lintw arnings (#14555) 2022-07-21 12:44:16 -04:00
Boris
572952b605 Fix the preview not being updated after editing the image (#14511)
* Fetch latest changes and make the refresh function async

* Make the image-editor refresh call cleaner

* add missing await
2022-07-21 11:58:49 -04:00
Rijk van Zanten
5719d1dceb Select multiple dropdown preview threshold (#14541)
* Allow specify custom preview threshold for select-multiple-dropdown

* Move to advanced options

Co-authored-by: Tien Tran <tien@transfamily.info>
2022-07-20 16:54:03 -04:00
Rijk van Zanten
bccb4db791 Don't render explicit null values in md custom blocks (#14539)
Fixes #14383
2022-07-20 16:37:45 -04:00
Jay Cammarano
820457690f Optimize media loading across app (#10592)
* v-image and "lazy load" working

* fixed vars

* all the other img uses

* No longer require access token in url for files

* Add lazy loading and size limits

* Rename map-component source prop

* Fix lint warning

* Update app/src/views/public/public-view.vue

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

* Fix lint

* Fix missing file type icon

* Fix null imageInfo error

* Use video.js for media playback

* Fix .js file display

* Update package-lock.json

* Update package-lock.json

* update package.json

* Update pnpm-lock.yaml

* Remove unrelated addition on VDatePicker

* Remove folder abstraction

* Use image data based aspect ratio on preview

* Base app rate throttle on API rate limit config

* Configure app rate limit throttle based on api config

* Convert v-image to script[setup]

* Convert v-media to script[setup]

* Cleanup v-media

* Remove unneeded addTokenToUrl usages

* Remove video.js

It doesn't do authorization headers for mp4/mp3, so it's pointless

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
2022-07-20 15:52:38 -04:00
Rijk van Zanten
e63747daf8 Fix M2A filter scope on select existing (#14530)
* Fix list animation in m2a

* Add missing collection scope to m2a selection filter

Fixes #13598
2022-07-20 11:27:01 -04:00
Azri Kahar
9015667d02 Add raw editor toggle for using variables in flows operations (#14021)
* add raw editor for flows operation options

* add comment to explain reasoning for watcher

* add simple raw editor with syntax highlighting

* Add multiline to text fields & hide in json fields

* update input icon for toggle

* do not unset value for text fields

* fix mustache tag value checking

* enable raw editor for Insights

* remove lint warning

* Reduce size + inline icons

* add background-highlight when active toggle

* change multiline prop to type prop

* show toggle for all field types (including json)

* remove watcher to toggle rawEditor on load

* fix raw editor emit

* fix request operation headers field type json

* fix raw editor value passed to codemirror

* prevent tags from crashing

* do not unset values anymore when toggling raw

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-07-15 11:38:23 -04:00
Juan Carlos Blanco Delgado
69b231c547 Adding editor to image component (#10488)
* Adding editor to image component

* lint cleanup

* Fix missing import, modelvalue usage

* Use different translation key for edit image operation

Co-authored-by: Azri Kahar <azrikahar@outlook.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
2022-07-14 20:51:06 +00:00
ian
71e01e2ac2 Enable spellcheck on wysiwyg and markdown interfaces (#14412)
* Enable spellcheck for rich text md interface

* Enable spellcheck for rich text html interface

* Fix typings

* Disable fenced code block highlighting in markdown

* Revert syntax highlighting disabling

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2022-07-14 16:08:43 +00:00
ian
7b32fbbd46 Fix/wysiwyg context menu (#14404) 2022-07-12 18:32:35 +02:00
Brainslug
de28475e06 Fixes nested groups in accordions not rendering fields (#14369)
* initial fix for nested groups in accordions

* removed debug code
2022-07-12 15:24:11 +02:00
Azri Kahar
3d2dd5520c Fix disabled state for markdown interface (#14358)
* fix disabled state for markdown interface

* fix markdown interface focused style

* more fixes for disabled state styling
2022-07-11 14:40:04 +02:00
Azri Kahar
c87eb8141f Prevent empty title attribute in WYSIWYG links (#14322) 2022-07-08 14:38:08 +02:00
Brainslug
e3643a2c5d Performance improvements for groups within v-form (#14188)
* added explicit change check before updating the internal value

* bunch of attempted fixes

* Revert "bunch of attempted fixes"

This reverts commit 17b7a5340f.

* nested v-form performance improvements
preventing re-rendering of some groups

* tries to fix accordion always re-rendering

* abnstracted the fix to its own functions

* abstracted the fix to its own functions

* fixes bug with rendering and saving data in accordion groups

* removed unneeded if statement

Co-authored-by: ian <licitdev@gmail.com>
2022-07-07 21:55:35 +08:00
Brainslug
309bc10c20 adding related primary keys to data for m2a interface (#14300) 2022-07-06 14:15:27 +02:00
Jan-Willem
4a95fb96d2 Don't show language selector when it's not needed (#14244) 2022-07-01 10:55:27 -04:00
Rijk van Zanten
3008d64c7c Fix conditions crash when custom options component is used (#14233)
Fixes #14189
2022-06-30 18:56:17 -04:00
Rijk van Zanten
2c84239c31 Fix vertical alignment of render-template in tabular (#14231)
Fixes #13010
2022-06-30 18:07:40 -04:00
ian
449e87ab27 Only emit value if updated for wysiwyg interface (#14216)
* Only emit value if updated for wysiwyg interface

* Update app/src/interfaces/input-rich-text-html/input-rich-text-html.vue

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2022-06-30 09:51:43 -04:00
Gerard Lamusse
de9dc8ac4f Use native api with access_token when defineing url as relative (#14193) 2022-06-29 14:42:23 -04:00
younky-yang
4bf69cb318 Fix saving error with custom permissions in O2M fields (#13998)
* fix 13765: saving error with rbac role on relation collections

* simplify the implementation
2022-06-28 15:43:51 -04:00
Azri Kahar
ad7d39203f Fix v-select search & selection of groups (#14154)
* fix search not matching parent items

* make group selectable in v-select

* fix wrong prop name

* set selected group to active for highlighted style

* Fix typings

Co-authored-by: ian <licitdev@gmail.com>
2022-06-28 15:06:18 -04:00
Rijk van Zanten
32dd709778 Insights 2.0 (#14096)
* query function added to list

* dashboard reading query, adding to object

* typecasting of filter vals needed still

* numbers accepting strings too

* json-to-graphql-query => devD

* fixed unneeded return in list index.ts

* stitching and calling but not actually calling

* calls on panel change

* query object += new panel before dashboard save

* uuid generated in app not api

* fixed panel ids in query

* fixed the tests I just wrote

* passing the query data down!

* list showing data

* objDiff test moved to test

* metric bug fixes + data

* dashboard logic

* time series conversion started

* timeseries GQL query almost there

* query querying

* chart loading

* aggregate handling improved

* error handling for aggregate+filter errors

* removed query on empty queryObj

* maybe more error handling

* more error handling working

* improvements to erorr handling

* stitchGQL() error return type corrected

* added string fields to COUNT

* pushing up but needs work

* not an endless recursion

* its not pretty but it works.

* throws an error

* system collections supported

* refactor to solve some errors

* loading correct

* metric function fixed

* data loading but not blocking rendering

* removed redundant code.

* relational fields

* deep nesting relations

* options.precision has a default

* relational fields fix. (thanks azri)

* the limit

* limit and time series

* range has a default

* datat to workspace

* v-if

* panels loading

* workspaces dont get data anymore

* package.json

* requested changes

* loading

* get groups util

* timeseries => script setup

* list => script setup

* metric => script setup

* label => script setup

* declare optional props

* loadingPanels: only loading spinner on loading panels

* remove unneeded parseDate!!

* applyDataToPanels tests

* -.only

* remove unneeded steps

* processQuery tests

* tests

* removed unused var

* jest.config and some queryCaller tests

* one more test

* query tests

* typo

* clean up

* fix some but not all bugs

* bugs from merge fixed

* Start cleaning up 🧹

* Refactor custom input type

* Small tweaks in list index

* Cleanup imports

* Require Query object to be returned from query prop

* Tweak return statement

* Fix imports

* Cleanup metric watch effect

* Tweaks tweaks tweaks

* Don't rely on options, simplify fetch logic

* Add paths to validation errors

* [WIP] Start handling things in the store

* Rework query fetching logic into store

* Clean up data passing

* Use composition setup for insights store

* Remove outdated

* Fix missing return

* Allow batch updating in REST API

Allows sending an array of partial items to the endpoints, updating all to their own values

* Add batch update to graphql

* Start integrating edits

* Readd clear

* Add deletion

* Add duplication

* Finish create flow

* Resolve cache refresh on panel config

* Prevent warnings about component name

* Improve loading state

* Finalize dashboard overhaul

* Add auto-refresh sidebar detail

* Add efficient panel reloading

* Set/remove errors on succeeded requests

* Move options rendering to shared

* Fix wrong imports, render options in app

* Selectively reload panels with changed variables

* Ensure newly added panels don't lose data

* Only refresh panel if data query changed

* Never use empty filter object in metric query

* Add default value support to variable panel

* Centralize no-data state

* Only reload data on var change when query is altered

* Fix build

* Fix time series order

* Remove unused utils

* Remove no-longer-used logic

* Mark batch update result as non-nullable in GraphQL schema

* Interim flows fix

* Skip parsing undefined keys

* Refresh insights dashboard when discarding changes

* Don't submit primary key when updating batch

* Handle null prop field better

* Tweak panel padding

Co-authored-by: jaycammarano <jay.cammarano@gmail.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
2022-06-27 15:26:42 -04:00
Azri Kahar
9e04d067e6 fix autocomplete field options not selectable (#14043) 2022-06-22 11:31:51 -04:00
Gerard Lamusse
69bf521101 Allow setting default language for translations interface or choosing user's language (#13576)
* Added the same options as on the translations display.
This now allows us to set the default interface option instead of always defaulting to the user's language or using the first language.

* Refactored i18n to useI18n
2022-06-17 12:01:10 +02:00
Azri Kahar
662a476236 Translation Strings Improvements (#13920)
* fix translations string being null

* clean up watcher a bit

* add sort prop to list interface

* use sort for list interface in translation strings
2022-06-16 15:30:34 +00:00
Nitwel
37762358fc Add tfa enforce flow (#7805)
* add tfa enforce flow

* add 'tfa-secret' to recommended permissions

* fix if theme if user has dark mode

* oas: rename 'enable-2fa' to 'enable-tfa'

* Add required user fields

* Uniformize styling

* Fix direct and invalid routing

* Add required permission docs

* Fix typescript warnings

* Fix typescript warnings 2

* Allow auto theme

* Nest duplicate condition check

* Fix routing for users without role

* Follow page redirects

* Reduce the use of redirect query

* Improve error UX

* Allow admins to disable 2FA

* Improve autofocus UX

* Override update permission for 'tfa_secret' when role enforces TFA

* Remove permission requirements from docs

Co-authored-by: Jose Varela <joselcvarela@gmail.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
2022-06-16 01:27:59 +08:00
ian
e0730af281 Trigger focus event to ensure observable exists in WYSIWYG (#13829)
* Trigger focus event to ensure observable exists in WYSIWYG

* Remove unused init event
2022-06-13 11:11:43 -04:00
ian
50e1993bb8 Emit input whenever WYSIWYG content is updated (#13802)
* Emit input whenever WYSIWYG content is updated

* Update value when initialized for direct page loads

* Remove emit value on init

* Emit only when the observer exists

* Set count before observer check

* Remove extraneous init call

Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
2022-06-09 15:43:33 -04:00
Rijk van Zanten
008e9d50e0 Set count on fresh init of defered tinymce (#13789)
Fixes #13235 a little more
2022-06-09 15:32:24 -04:00
ian
6c1b43b716 Allow selection of image transformation in the WYSIWYG interface (#13777)
* Allow selection of image transformation in the WYSIWYG interface

* Fix warnings

* Disable width & height fields instead of hiding

* Cast to boolean

* Display preset width and height
2022-06-08 12:25:20 -04:00