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.
* Added map layout
* Cleanup and bug fixes
* Removed package-lock
* Cleanup and fixes
* Small fix
* Added back package-lock
* Saved camera, autofitting option, bug fixes
* Refactor and ui improvements
* Improvements
* Added seled mode
* Removed unused dependency
* Changed selection behaviour, cleanup.
* update import and dependencies
* make custom style into drawer
* remove unused imports
* use lodash functions
* add popups
* allow header to become small
* reorganize settings
* add styling to popup
* change default template
* add projection option
* add basic map interface
* finish simple map
* add mapbox style
* support more mapbox layouts
* add api key option
* add mapbox backgrounds to layout
* warn when no api key is set
* fix for latest version
* Improved map layout and interface, bug fixes, refactoring.
.
.
* Added postgis geometry format, added marker icon shadow
* Made map buttons bigger and their icons thinner. Added transition to header bar.
* Bug fixes and error handling in map interface.
* Moved box-select control out of the map component. Removed material icons sprite and use addImage for marker support.
* Handle MultiGeometry -> Geometry interface error.
* Removed hardcoded styles. Added migrations for basemap column. Lots of refactoring.
Removed hardcoded styles. Added migrations for basemap column. Lots of refactoring.
* Fixed style reloading error. Added translations.
* Moved worker code to lib.
* Removed worker code. Prevent Mapbox from removing access_token from the URL.
* Refactoring.
* Change basemap selection to in-map dropdown for layout and interface.
* Touchscreen selection support and small fixes.
* Small change.
* Fixed unused imports.
* Added support for PostgreSQL identity column
* Renamed migration. Added crs translation.
* Only show fields using the map interface in the map layout.
* Removed logging.
* Reverted Dockerfile change.
* Improved crs support.
* Fixed translations.
* Check for schema identity before updating it.
* Fixed popup not updating on feature hover.
* Added feature hover styling. Fixed layer customization input. Added out of bounds error handling.
* Added geometry type and support for database native geometries.
* Fixed linting.
* Fixed layout.
* Fixed layout.
* Actually fixed linting
* Full support for native geometries
Fixed basemap input
Improved feature popup on hover
Locked interfaced support
* Fixed geometryType option not updating
* Bug fixes in interface
* Fixed crash when empty basemap settings. Fixed fitBounds option not updating.
* Added back storage type option. Improved interface behaviour.
* Dropped wkb because of vendor inconsistency with binary data
* Updated layout to match new geometry type. Fixed geojson payload transform.
* Added missing geometry_format attributes to local types.
* Fixed typos & refactoring
* Removed dependency on proj4
* Fix error when empty map interface options
* Set geometry SRID to 4326 when inserting into the database
* Add support for selectMode
* Fix error on initial source load
* Added geocoder, use GeoJSON for api i/o, removed geometry_format option, refactoring
* Added geometry intersects filter. Created geometry helper class.
* Fix error when null geometryOptions, added mapbox_key setting.
* Moved all geometry parsing/serializing into processGeometries in `payload.ts`. Fixed type errors.
* Migrate to Vue 3
* Use wellknown instead of wkx
* Fixed basemap selection.
* Added available operator for geometry type
* Added nintersects filter, fixed map interface for filter input
* Added intersects_bbox filter & bug fixes.
* Fixed icons rendering
* Fixed cursor icon in select mode
* Added geometry aggregate function
* Fixed geometry processing bug when imported from relational field.
* Fixed error with geocoder instanciation
* Removed @types/maplibre-gl dependency
* Removed fitViewToData options
* Merge remote-tracking branch 'upstream/main' into map-layout
* Fixed style and geometryType in map interface options
* Fixed style change on map interface.
* Improved fitViewToData behaviour
* Fixed type imports and previous merge conflict
* Fixed linting
* Added available operators
* Fix and merge migrations
* Remove outdated p-queue dep
* Fix get-schema column extract
* Replace pg with postgis for local debugging
* Re-add missing import
* Add mapbox as a basemap when key exists
* Remove unused tz flag
* Process delta in payloadservice
* Set default map, add limit number styling
* Default display template to just PK
* Tweak styling of error dialog
* Fix method usage in helpers
* Move sdo_geo to oracle section
* Remove extensions from ts config exclude
* Move geo types to shared, remove _Geometry
* Remove unused type
* Tiny Tweaks
* Remove fit to bounds option in favor of on
* Validate incoming intersects query
* Deepmap filter values
* Add GraphQL support
* No defaultValue for geometryType
* Resolve c
* Fix translations
Co-authored-by: Nitwel <nitwel@arcor.de>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* Move accountability type to shared
* Rely on shared for parse-filter
* Install date-fns
* Support dynamic variables in conditional fields
Closes#7157
* Rework cache handler to be function export
* Add default schema caching
* Add schema cache
* Auto purge schema cache on schema change from api
* Only set last_access value on login
* Add note on schema cache setting
* 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
* api: pass user object to auth hooks
The motivation for this is the ability to migrate from
bcrypt passwords to argon2 seamlessly.
Fixes#4718Fixes#4335
* receive user from `auth.login.before` hook
* pass `otp` as well on `auth.login` hooks
* api: last registered hook should have priority
When registering multiple hooks for a single event,
the last hook should have priority on return value.
* Fix linter warning
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Declare return types on functions
And a very few other type related minor fixes
* Minor syntax fixes
* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)
* Start the xOne/xMany work
* Update update/upsert
* Finish updating itemsservice
* Add comments, add nested revisions on update
* Use new internal api
* Update collectionService to one/many structure
* Move files to one/many structure
* Move permissions to one/many structure
* Move relations service to one/many structure
* Move roles to one/many structure
* Move users service over
* Move webhooks to updated structure
* Move deprecated methods to the bottom
* Replace deprecated uses
* Use new methods in controllers, add batch update/delete by query
* Use updated methods in API
* Fix email being required
* Remove unnecessary DB call
* Fix batch update/delete validation
Since we might need information from database, we must provide the
current transaction, instead of the connection.
Otherwise, databases like SQLite which only accepts a single connection
will throw an error of knex timeout.
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
* 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
* Start on GraphQL "2.0", add methodnotallowed exceptoin
* Fix relative file pointer in peer dep
* [WIP] Add pre-filtered schema to SchemaOverview
* Use root schema as is, add reduce-schema util
* Use reduceSchema in the wild
* Base schema on local reduced schema
* Remove todo
* Use graphql-compose to build out schema
* Start restructuring resolvers
* Add create mutation
* Return boolean true for empty create mutation selections
* Add update mutation
* Add delete mutation
* Add system/items scoping
* Fix merge conflicts for real now
* Use system services, rename ids->keys
* Start on docs on mutations
* Updates to match main
* Add fetch-by-id
* Add one/many resolvers for mutations
* Check system collection rows for singleton
* Fix resolver extraction for single read
* Share delete return type
* Add comments
* Use collection root name for readable type
* Add specs endpoint for GraphQL SDL
* Update docs
* Add note on SDL spec
* Fix delete single example
* Remove package-lock
* Fix collection read scoping in non-read
* Always remove the primary key field from the update payload to prevent issues with databases that don't allow certain primary key columns (e.g. mssql identity columns)
* Opinionated cleanup
Co-authored-by: Martijn Boland <martijn@taiga.nl>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Start on database-error abstraction layer
* Add SQLite error abstraction
* Enable SQLite foreign key support
* Cleanup sqlite dialect slightly
Does it matter? Not really!
* Add MySQL error abstraction
* WIP Almost done with MSSQL
* Add correct error handling for MS SQL
* Fix mysql errors by not relying on value order
* Don't rely on sql in postgres exception translation
* Fix sqlite error parsing
* Remove foreign key constraint from activity to collections
A collection can be DB-only, but we still want to track activity for non-meta collections
* Translate error on update as well
* Pass relations through schema, instead of individual reads
* Fetch field transforms upfront
* Fix length check
* List if user has app access or not in accountability
* Load permissions up front, merge app access minimal permissions
* Show app access required permissions in permissions overview
* Show system minimal permissions in permissions detail
* Fix app access check in authenticate for jwt use
* Fix minimal permissions for presets
* Remove /permissions/me in favor of root use w/ permissions
* Fix logical nested OR in an AND
* Use root permissions endpoint with filter instead of /me
* Allow filter query on /permissions
* Add system minimal app access permissions into result of /permissions
* Remove stray console log
* Remove stray console.dir
* Set current role as role for minimal permissions
* Fix no-permissions state for user detail
* Add filter items function that allows altering existing result set
* Adds `not_found` hook
* Separate hooks and endpoints initialization process
* Adds additional application events
* Remove unused import
* Change the event order to accound for notFound and errorHandler
* Change emitAsync.catch to use the emitAsyncSafe function
* Updated docs, reordered table by lifecycle and usage
* Fetch correct amount of data
* Allow system required data to be returned in items service
* Fetch non-requested required data, find type through context
Fixes#3718