* Add Swahili (Kenya/Tanzania), Esperanto, Tajik to Language List and Alphabatize List
* Update app/src/lang/available-languages.yaml
* Sort languagesby name
---------
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Expose schema endpoints
* respond with 204
* fix payload for export flag
* allow export as YAML
* use SchemaService
* move getStringFromStream to utils
* clearer exceptions with logs
* check empty request body
* specs
* add bypassCache flag and remove flushCaches calls
* Identify integer typed fields in Oracle
* Fix uuid foreign keys type for Oracle
* Detect autoincrement for CockroachDB
* Bypass cache for fields and relations services
* Add same DB tests
* Test if working for all vendors
* Add schema snapshot testing into sequential flow
* Fix schema re-apply attempts when it's a different database vendor (#14816)
* prevent diffing on certain properties
* fix apply-snapshot test
* prevent updates to autoincrement fields' schema
* sanitize relations
* remove `colleciton.schema.sql` parsing in test
It is now being sanitized by `sanitizeCollection()` function in get-snapshot-diff.ts
* Change concurrency group to not cancel test running on main
* remove multipart for apply & add hash checking
* check incoming version & add force query param
* refine error message & stub for nested hash
* add `vendor` top-level property
as an additional safety net for cross db vendor applies
* sanitize generated schema snapshots
* snapshot joi validation
* diff joi validation
* minor cleanup
* extract applyDiff & use deep-diff applyChange
* use applyDiff in schema service
* Mark vendor as optional
* Update tests to apply diffs
* move force flag check into service
* Patch mssql vendor typo
* Set relation no action in cyclic relations
* Update mysql timestamp default value
* Oracle cannot define no action
* Update oracle timestamp type default values
* add hash checking for outdated diffs
* fix diff service & endpoint
* Add hashes when returning after
* Fix self referencing relations for Oracle
* Add temp fix for CURRENT_TIMESTAMP defaults in Oracle
* clean up driver and database client types
* only require diff hash if not kind N
* update hash comparison logic for create/delete
* Set no action constraint for self referencing M2M in MSSQL
* Add basic hash check tests
* omit default value when hashing auto increments
Specifically for CockroachDB with differing sequences
* add vendor check
* update specs
* Validate vendors with type definition
* Spread the vendors input array
* re-add Export component
* re-add js-yaml to root
* Propagate mutation options for schema apply
* Verify that snapshots differ and clear cache before hash tests
* Fix unit test
* Revert temp fix for CURRENT_TIMESTAMP defaults in Oracle
* Define and reuse type for export format
* Define and reuse list of database clients
* change `were` to `was`
* change `where` to `were`
* add some empty lines for readability
* tweak exception message
* fix test
* use object-hash
* use boolean to check whether file is included
* simplify request content type check
* throw error when multiple files were uploaded
* use nullish coalesce instead of short circuit
* Update api/src/services/schema.ts
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Remove unnecessary `Omit` on `SnapshotWithHash` type
* Revert "Remove unnecessary `Omit` on `SnapshotWithHash` type"
This reverts commit d22ac771ec.
* check empty snapshot earlier
* use allow-list logic via pick instead of omit
* Update api/src/services/schema.ts
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* Move to own /schema endpoint controller
* Fix refs to schema endpoint
* move streamToString to utils package
* move get-versioned-hash and add test
* extract kind into an enum
* Fix mysql5 timestamp value
* Fix test collection existing on rerun
* resolve TODO comment in blackbox test
* Drop deep level hashes in diff
These hashes are used only for more accurate error reporting
but are otherwise superfluous, since changes are already
detected by the top level hash.
Therefore we remove them in favor of a simpler diff format and
implementation.
* Revert schema "fix" for createItem, add comment
* Strict diff schema validation
* Revert CrDB auto-increment detection patch in 816c998
* Clear systemCache to expose newly added fields
* Use DiffKind constants
* Extract diff & snapshot validation into own tested utils
* Apply suggestions from @azrikahar
* Update knex-schema-inspector to 3.0.1
Includes the fix for CrDB auto-increment detection (knex/knex-schema-inspector#135)
* Update knex-schema-inspector in packages
* Update lock file
* add test for schema service
* add test for export service
* add relevant tests to modified util functions
* fix csv test to account for os end of line
* fix files controller test
* dedupe test data for schema service
* Align schema specs with docs
* Update api/src/controllers/schema.ts
* Revert testing for all vendors
---------
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Greek)
* New translations en-US.yaml (Greek)
* New translations en-US.yaml (Thai)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Ukrainian)
* New translations en-US.yaml (Ukrainian)
* New translations en-US.yaml (Hindi)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Khmer)
* New translations en-US.yaml (English, United Kingdom)
* New translations en-US.yaml (English, United Kingdom)
* New translations en-US.yaml (Spanish)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (German)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Chinese Simplified)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Slovak)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Arabic)
* translate fields during hydration
* patch untranslated raw values on field edit
* simplify/remove existing translate usages
* minor codestyle
* translate field note and validation_message
* stub api call in fleld-detail store test
* skip fields translation before user locale sets in
* optimize hydration calls
* use translateLiteral for note & validation_message
* cherry pick field meta properties to patch
* reduce setLanguage calls & settings requests
* settings store test & type update
* tweak variable casing
* test server store & fix existing type/ref issues
* update fields store test for skipTranslation
* fix render-display merge
* await field update before opening drawer
* fetch meta at the end to load relationships first
* add loading state to prevent editing some fields
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
* Add bundle type to constants and types
* Add support for API bundle extensions
* Rename generateExtensionsEntry to generateExtensionsEntrypoint
* Add support for App bundle extensions
* Refactor App extension registration
* Replace extensions inject with useExtensions()
* Replace getInterfaces() with useExtensions()
* Replace getDisplays() with useExtensions()
* Replace getLayouts() with useExtensions()
* Replace getModules() with useExtensions()
* Replace getPanels() with useExtensions()
* Replace getOperations() with useExtensions()
* Add useExtension() composable
* Replace useExtensions() with useExtension() where applicable
* Remove interface getters
* Remove display getters
* Remove layout getters
* Remove module getter
* Remove panel getters
* Remove operation getters
* Rename extension register.ts files to index.ts
* Perform module pre register check in parallel
* Remove Refs from AppExtensionConfigs type
* Remove old extension shims
* Ensure registration of modules is awaited when hydrating
* Add support for scaffolding package extensions
* Add support for building bundle extensions
* Add JsonValue type
* Use json for complex command line flags
* Load internal extensions if custom ones are not available
* Fix extension manifest validation for pack extensions
* Fix tests in shared
* Add SplitEntrypoint type
* Move command specific utils to helpers
* Add SDK version getter
* Move extension dev deps generation to helpers
* Move template path to getter util
* Move template copying to a helper
* Only rename copied template files
* Add directus-extension add command
* Convert provided extension source path to url
* Replace deprecated import.meta.globEager
* Mock URL.createObjectURL to make App unit tests pass
* Update rollup-plugin-typescript2
* indentation
* sort vite glob imported modules
* fix unintentional wrong commit
* Simplify app extension import logic
* reinstall @rollup/plugin-virtual
* add test for getInterfaces() expected sort order
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
* New translations en-US.yaml (Turkish)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (Hungarian)
* New translations en-US.yaml (Arabic)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (German)
* extra checks for valid input
* re-introducing the item drawer for list-items
* making list panel drawer optional
* Cleanup for consistency
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Add fallback page when no fields are visible in a form
* fixed spacing for the linter
* properly show empty form message for relational drawer items
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* init
* add field (variable key)
* panel index option
* remove custom component
* attempt at implementing virtual m2o logic
* adding o2m layout
* moved drawer and implementing display items for o2m
* removed o2m draggable, added limit for o2m and implemented diplay templates
* style fix for single relation
* fixed deselect for o2m
* enforce multi limit
* fixed adding items for o2m and clear all button
* abstracted away displayItem logic and cleaned up code
* add selection to drawer-collection
* fix graphql error on init
* only store an array for multiple relations
* udated var names
* use dense display for 5 items and up
* use full width for the limit option
* fixed deselect for single relation
* removed unused notices
* type fix
* clear the cache when switching collections
added required flags in options
updated label to be in line with the variable panel
* added multiple label
* fix time series options filter
it should attempt to JSON.parse() when possible, and skip parsing when there's undefined values
* remove unused styles
* prevent negative limit
* keep multiple-relation top-aligned
* fixed pronblem with deselecting/reselecting items
* keep action buttons sticky at the bottom
* text-only styling for multiple-relation buttons
* use <button> and remove unnecessary styles
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: ian <licitdev@gmail.com>
* fix form divider when opened from drawer item
* remove redundant functions
* change back the form order to what is was
* add the option to swap between relation fields and junction fields
* fix language
* added m2m options as dropdown with more abilities
* remove the hide options and put off instead
* remove the off option from m2m junctionFieldLocation
Co-authored-by: Gabriel Shtenberg <gabriels@brainpop.com>
Co-authored-by: dev name <devn@brainpop.com>
* [WIP] Start working on script operation
* WIP Remove npx-import experiment
* Don't break on string value in options scope
* WIP Add module whitelist
* Mission critical import cleanup work
* Add translated labels
* Use nodeVM for everything
Keeps the export function callback structure consistent
* Tweak wording
* WIP start on tests
* Improve typing in shared define types
* Add missing base reactive properties in server store
* Add tests for exec index in app
* Add tests
* Optimize error handling
* Fix lint issues
Merge in main
* Add support for resizing columns.
Disable sorting on json columns
* Replaced static text with translations
* remove unused variables
* add no collection/fields states to system-fields
* turn columns to notice when creating list-m2m
* tweak system-fields no fields background color
* add danger styling for deselect in table layout
* add tooltips
* prevent linking to items without ID yet
* fix launch icon for list layout
* tweak padding for per page
* Update missing types
* resolve ::v-deep to :deep warning
* minor style tweaks
* fix search
* fix destructuring crashing when no permissions
* remove unused variables
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>