From fbe1eb9e0f59fe35733dab1115992611a3f38bd1 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Mon, 25 Aug 2025 11:03:59 +0200 Subject: [PATCH 01/39] avatar-widget showing external image (#330) --- lib/src/Components/Profile/Subcomponents/AvatarWidget.tsx | 6 ++++-- lib/src/Components/Profile/Subcomponents/FormHeader.tsx | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/src/Components/Profile/Subcomponents/AvatarWidget.tsx b/lib/src/Components/Profile/Subcomponents/AvatarWidget.tsx index 57d4bcfe..97137574 100644 --- a/lib/src/Components/Profile/Subcomponents/AvatarWidget.tsx +++ b/lib/src/Components/Profile/Subcomponents/AvatarWidget.tsx @@ -10,14 +10,16 @@ import UserSVG from '#assets/user.svg' import { useAppState } from '#components/AppShell/hooks/useAppState' import DialogModal from '#components/Templates/DialogModal' +import type { Item } from '#types/Item' import type { Crop } from 'react-image-crop' interface AvatarWidgetProps { avatar?: string setAvatar: React.Dispatch> + item?: Item } -export const AvatarWidget: React.FC = ({ avatar, setAvatar }) => { +export const AvatarWidget: React.FC = ({ avatar, setAvatar, item }) => { const [crop, setCrop] = useState() const [image, setImage] = useState('') const [cropModalOpen, setCropModalOpen] = useState(false) @@ -181,7 +183,7 @@ export const AvatarWidget: React.FC = ({ avatar, setAvatar }) ) : (
- +
)} diff --git a/lib/src/Components/Profile/Subcomponents/FormHeader.tsx b/lib/src/Components/Profile/Subcomponents/FormHeader.tsx index 8f34dd55..12862677 100644 --- a/lib/src/Components/Profile/Subcomponents/FormHeader.tsx +++ b/lib/src/Components/Profile/Subcomponents/FormHeader.tsx @@ -26,6 +26,7 @@ export const FormHeader = ({ item, state, setState }: Props) => { image: i, })) } + item={item} /> Date: Tue, 26 Aug 2025 10:24:02 +0100 Subject: [PATCH 02/39] refactor(backend): directus sync files (#325) * update directus-extension-sync * seed files via directus sync * delete manual seed files & script --- backend/directus-config/manual/seed.sh | 8 -------- .../directus-config/manual/sql/branding-logo.sql | 8 +------- backend/directus-config/seed/directus_files.json | 14 ++++++++++++++ .../files/utopia-logo.svg} | 0 backend/extensions/package.json | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 backend/directus-config/seed/directus_files.json rename backend/directus-config/{manual/files/412c25dc-a3b7-4114-b64b-cac2d6b46db3.svg => seed/files/utopia-logo.svg} (100%) diff --git a/backend/directus-config/manual/seed.sh b/backend/directus-config/manual/seed.sh index a31092e2..087f2abb 100755 --- a/backend/directus-config/manual/seed.sh +++ b/backend/directus-config/manual/seed.sh @@ -3,17 +3,9 @@ # base setup SCRIPT_PATH=$(realpath $0) SCRIPT_DIR=$(dirname $SCRIPT_PATH) -ROOT_DIR=$SCRIPT_DIR/../../.. -DATA_DIR=$ROOT_DIR/data -DATA_UPLOADS_DIR=$DATA_DIR/uploads - -SEED_FILES_DIR=$SCRIPT_DIR/files SEED_SQL_DIR=$SCRIPT_DIR/sql -# copy files -cp $SEED_FILES_DIR/* $DATA_UPLOADS_DIR/ - # apply database updates for filename in $SEED_SQL_DIR/*.sql; do docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql -v ON_ERROR_STOP=1 --username directus directus" < $filename diff --git a/backend/directus-config/manual/sql/branding-logo.sql b/backend/directus-config/manual/sql/branding-logo.sql index 101b948c..e9efc137 100644 --- a/backend/directus-config/manual/sql/branding-logo.sql +++ b/backend/directus-config/manual/sql/branding-logo.sql @@ -1,7 +1 @@ -DELETE FROM public.directus_files WHERE id = '412c25dc-a3b7-4114-b64b-cac2d6b46db3'; - -COPY public.directus_files (id, storage, filename_disk, filename_download, title, type, folder, uploaded_by, created_on, modified_by, modified_on, charset, filesize, width, height, duration, embed, description, location, tags, metadata, focal_point_x, focal_point_y, tus_id, tus_data, uploaded_on) FROM stdin; -412c25dc-a3b7-4114-b64b-cac2d6b46db3 local 412c25dc-a3b7-4114-b64b-cac2d6b46db3.svg utopia-logo.svg utopia-logo image/svg+xml \N \N 2025-08-12 11:26:36.539+00 \N 2025-08-12 11:27:07.646+00 \N 22906 \N \N \N \N \N \N \N \N \N \N \N \N 2025-08-12 11:26:36.555+00 -\. - -UPDATE public.directus_settings SET project_logo = '412c25dc-a3b7-4114-b64b-cac2d6b46db3'; +UPDATE public.directus_settings SET project_logo = (SELECT id FROM directus_files WHERE filename_download = 'utopia-logo.svg'); diff --git a/backend/directus-config/seed/directus_files.json b/backend/directus-config/seed/directus_files.json new file mode 100644 index 00000000..7b23b240 --- /dev/null +++ b/backend/directus-config/seed/directus_files.json @@ -0,0 +1,14 @@ +{ + "collection": "directus_files", + "data": [ + { + "_sync_id": "utopia-logo", + "_file_path": "./files/utopia-logo.svg", + "storage": "local", + "filename_download": "utopia-logo.svg", + "title": "Utopia Logo", + "tags": [], + "description": "Utopia Logo" + } + ] +} \ No newline at end of file diff --git a/backend/directus-config/manual/files/412c25dc-a3b7-4114-b64b-cac2d6b46db3.svg b/backend/directus-config/seed/files/utopia-logo.svg similarity index 100% rename from backend/directus-config/manual/files/412c25dc-a3b7-4114-b64b-cac2d6b46db3.svg rename to backend/directus-config/seed/files/utopia-logo.svg diff --git a/backend/extensions/package.json b/backend/extensions/package.json index 3d392c73..90366a48 100644 --- a/backend/extensions/package.json +++ b/backend/extensions/package.json @@ -1,6 +1,6 @@ { "name": "directus-extensions", "dependencies": { - "directus-extension-sync": "^3.0.3" + "directus-extension-sync": "^3.0.4" } } \ No newline at end of file From 62777970fc8d53e590939211db3fb3f5be278b15 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 26 Aug 2025 10:39:29 +0100 Subject: [PATCH 03/39] rename manual folder to seed-manual (#326) --- backend/README.md | 4 ++-- backend/directus-config/{manual => seed-manual}/seed.sh | 0 .../{manual => seed-manual}/sql/branding-logo.sql | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename backend/directus-config/{manual => seed-manual}/seed.sh (100%) rename backend/directus-config/{manual => seed-manual}/sql/branding-logo.sql (100%) diff --git a/backend/README.md b/backend/README.md index 3d8ab163..c3f97aa9 100644 --- a/backend/README.md +++ b/backend/README.md @@ -17,7 +17,7 @@ npx directus-sync seed push \ --directus-email admin@it4c.dev \ --directus-password admin123 -./directus-config/manual/seed.sh +./directus-config/seed-manual/seed.sh ``` ## Pull Data from Docker to Harddrive @@ -64,7 +64,7 @@ npx directus-sync seed diff \ ## Manual Seed -In order to seed files and additional data not covered by `directus-sync` run the script `backend/directus-config/manual/seed.sh`. +In order to seed files and additional data not covered by `directus-sync` run the script `backend/directus-config/seed-manual/seed.sh`. ## Backup Database diff --git a/backend/directus-config/manual/seed.sh b/backend/directus-config/seed-manual/seed.sh similarity index 100% rename from backend/directus-config/manual/seed.sh rename to backend/directus-config/seed-manual/seed.sh diff --git a/backend/directus-config/manual/sql/branding-logo.sql b/backend/directus-config/seed-manual/sql/branding-logo.sql similarity index 100% rename from backend/directus-config/manual/sql/branding-logo.sql rename to backend/directus-config/seed-manual/sql/branding-logo.sql From d199d47730afca59adebc6b713e1dfe200e3669f Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 26 Aug 2025 10:46:06 +0100 Subject: [PATCH 04/39] feat(backend): seed multi project architecture (#327) * rename manual folder to seed-manual * adjust seed structure to support multiple projects * add gitignore --------- Co-authored-by: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> --- backend/README.md | 27 ++-------------- backend/directus-config/seeds/.gitignore | 3 ++ .../development/directus}/directus_files.json | 0 .../directus}/files/utopia-logo.svg | 0 .../development/directus}/layers.json | 0 .../development/directus}/layers_maps.json | 0 .../development/directus}/maps.json | 0 .../development/directus}/types.json | 0 .../development/manual/branding-logo.sql | 1 + backend/seed.sh | 31 +++++++++++++++++++ 10 files changed, 37 insertions(+), 25 deletions(-) create mode 100644 backend/directus-config/seeds/.gitignore rename backend/directus-config/{seed => seeds/development/directus}/directus_files.json (100%) rename backend/directus-config/{seed => seeds/development/directus}/files/utopia-logo.svg (100%) rename backend/directus-config/{seed => seeds/development/directus}/layers.json (100%) rename backend/directus-config/{seed => seeds/development/directus}/layers_maps.json (100%) rename backend/directus-config/{seed => seeds/development/directus}/maps.json (100%) rename backend/directus-config/{seed => seeds/development/directus}/types.json (100%) create mode 100644 backend/directus-config/seeds/development/manual/branding-logo.sql create mode 100755 backend/seed.sh diff --git a/backend/README.md b/backend/README.md index c3f97aa9..8ba6775b 100644 --- a/backend/README.md +++ b/backend/README.md @@ -12,12 +12,8 @@ npx directus-sync push \ --directus-email admin@it4c.dev \ --directus-password admin123 -npx directus-sync seed push \ - --directus-url http://localhost:8055 \ - --directus-email admin@it4c.dev \ - --directus-password admin123 +./seed.sh -./directus-config/seed-manual/seed.sh ``` ## Pull Data from Docker to Harddrive @@ -44,27 +40,8 @@ npx directus-sync push \ ## Seed Data for local development -Seed the development data via: -``` -npx directus-sync seed push \ - --directus-url http://localhost:8055 \ - --directus-email admin@it4c.dev \ - --directus-password admin123 -``` +In order to seed the development data, run the script `backend/seed.sh`. -## Seed Data - find differences - -In order so see what changes would appear when seeding, you can execute: -``` -npx directus-sync seed diff \ - --directus-url http://localhost:8055 \ - --directus-email admin@it4c.dev \ - --directus-password admin123 -``` - -## Manual Seed - -In order to seed files and additional data not covered by `directus-sync` run the script `backend/directus-config/seed-manual/seed.sh`. ## Backup Database diff --git a/backend/directus-config/seeds/.gitignore b/backend/directus-config/seeds/.gitignore new file mode 100644 index 00000000..eb9ad4c4 --- /dev/null +++ b/backend/directus-config/seeds/.gitignore @@ -0,0 +1,3 @@ +* +!development/ +!.gitignore \ No newline at end of file diff --git a/backend/directus-config/seed/directus_files.json b/backend/directus-config/seeds/development/directus/directus_files.json similarity index 100% rename from backend/directus-config/seed/directus_files.json rename to backend/directus-config/seeds/development/directus/directus_files.json diff --git a/backend/directus-config/seed/files/utopia-logo.svg b/backend/directus-config/seeds/development/directus/files/utopia-logo.svg similarity index 100% rename from backend/directus-config/seed/files/utopia-logo.svg rename to backend/directus-config/seeds/development/directus/files/utopia-logo.svg diff --git a/backend/directus-config/seed/layers.json b/backend/directus-config/seeds/development/directus/layers.json similarity index 100% rename from backend/directus-config/seed/layers.json rename to backend/directus-config/seeds/development/directus/layers.json diff --git a/backend/directus-config/seed/layers_maps.json b/backend/directus-config/seeds/development/directus/layers_maps.json similarity index 100% rename from backend/directus-config/seed/layers_maps.json rename to backend/directus-config/seeds/development/directus/layers_maps.json diff --git a/backend/directus-config/seed/maps.json b/backend/directus-config/seeds/development/directus/maps.json similarity index 100% rename from backend/directus-config/seed/maps.json rename to backend/directus-config/seeds/development/directus/maps.json diff --git a/backend/directus-config/seed/types.json b/backend/directus-config/seeds/development/directus/types.json similarity index 100% rename from backend/directus-config/seed/types.json rename to backend/directus-config/seeds/development/directus/types.json diff --git a/backend/directus-config/seeds/development/manual/branding-logo.sql b/backend/directus-config/seeds/development/manual/branding-logo.sql new file mode 100644 index 00000000..e9efc137 --- /dev/null +++ b/backend/directus-config/seeds/development/manual/branding-logo.sql @@ -0,0 +1 @@ +UPDATE public.directus_settings SET project_logo = (SELECT id FROM directus_files WHERE filename_download = 'utopia-logo.svg'); diff --git a/backend/seed.sh b/backend/seed.sh new file mode 100755 index 00000000..ac58d444 --- /dev/null +++ b/backend/seed.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# base setup +SCRIPT_PATH=$(realpath $0) +SCRIPT_DIR=$(dirname $SCRIPT_PATH) + +DIRECTUS_URL="${DIRECTUS_URL:-http://localhost:8055}" +DIRECTUS_EMAIL="${DIRECTUS_EMAIL:-admin@it4c.dev}" +DIRECTUS_PASSWORD="${DIRECTUS_PASSWORD:-admin123}" + +PGPASSWORD="${PGPASSWORD:-'directus'}" +PGUSER="${PGUSER:-'directus'}" +PGDATABASE="${PGDATABASE:-'directus'}" + +PROJECT_NAME="${PROJECT:-development}" +PROJECT_FOLDER=$SCRIPT_DIR/directus-config/seeds/$PROJECT_NAME + + +npx directus-sync seed push \ + --directus-url $DIRECTUS_URL \ + --directus-email $DIRECTUS_EMAIL \ + --directus-password $DIRECTUS_PASSWORD \ + --seed-path $PROJECT_FOLDER/directus + + +SEED_SQL_DIR=$PROJECT_FOLDER/manual + +# apply database updates +for filename in $SEED_SQL_DIR/*.sql; do + docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=$PGPASSWORD psql -v ON_ERROR_STOP=1 --username $PGUSER $PGDATABASE" < $filename +done \ No newline at end of file From 9a19617906d0f859267336300e9858c7d41e1b06 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 26 Aug 2025 10:52:25 +0100 Subject: [PATCH 05/39] refactor(app): parameterize admin role & enforce it to be set (#336) * parameterize admin role & enforce it to be set * fix lint --------- Co-authored-by: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> --- app/.env.dist | 1 + app/README.md | 11 +++++++++++ app/src/App.tsx | 5 +---- app/src/config/index.ts | 5 +++++ app/src/pages/MapContainer.tsx | 3 +-- 5 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 app/README.md diff --git a/app/.env.dist b/app/.env.dist index 5dc2cc82..f2850d71 100644 --- a/app/.env.dist +++ b/app/.env.dist @@ -3,5 +3,6 @@ VITE_API_URL=http://localhost:8055/ #VITE_API_URL=https://api.utopia-lab.org VITE_MAP_URL=http://local.development #VITE_MAP_URL=CURRENT_WINDOW_LOCATION +#VITE_DIRECTUS_ADMIN_ROLE= VITE_VALIDATE_INVITE_FLOW_ID=01d61db0-25aa-4bfa-bc24-c6a8f208a455 VITE_REDEEM_INVITE_FLOW_ID=cc80ec73-ecf5-4789-bee5-1127fb1a6ed4 diff --git a/app/README.md b/app/README.md new file mode 100644 index 00000000..c54058af --- /dev/null +++ b/app/README.md @@ -0,0 +1,11 @@ +# App + +## Troubleshooting + +Map doesn't load and the Error `You must define the Admin roll in the .env file!` shows in the console. + +In order to get the map running you need to define the correct uuid of the admin roll in the `.env` file. + +Go to http://localhost:8055 and login with the admin credentials. Navigate to http://localhost:8055/admin/settings/roles and click `Administrator` and copy the UUID from the URL. + +Put this UUID in the `.env` as `VITE_DIRECTUS_ADMIN_ROLE=UUID` \ No newline at end of file diff --git a/app/src/App.tsx b/app/src/App.tsx index caece166..4707eb27 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -156,10 +156,7 @@ function App() { embedded={embedded} openCollectiveApiKey={config.openCollectiveApiKey} > - + {tagsApi && } diff --git a/app/src/config/index.ts b/app/src/config/index.ts index 4f1630d5..98c8b891 100644 --- a/app/src/config/index.ts +++ b/app/src/config/index.ts @@ -1,6 +1,7 @@ export const config = { apiUrl: String(import.meta.env.VITE_API_URL ?? 'http://localhost:8055/'), mapUrl: String(import.meta.env.VITE_MAP_URL ?? 'http://local.development'), + adminRole: String(import.meta.env.VITE_DIRECTUS_ADMIN_ROLE ?? ''), validateInviteFlowId: String( import.meta.env.VITE_VALIDATE_INVITE_FLOW_ID ?? '01d61db0-25aa-4bfa-bc24-c6a8f208a455', ), @@ -10,4 +11,8 @@ export const config = { openCollectiveApiKey: String(import.meta.env.VITE_OPEN_COLLECTIVE_API_KEY ?? ''), } +if (config.adminRole === '') { + throw Error('You must define the Admin roll in the .env file!') +} + export type Config = typeof config diff --git a/app/src/pages/MapContainer.tsx b/app/src/pages/MapContainer.tsx index 9818286e..6b1b0b57 100644 --- a/app/src/pages/MapContainer.tsx +++ b/app/src/pages/MapContainer.tsx @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ /* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ /* eslint-disable import/no-relative-parent-imports */ /* eslint-disable array-callback-return */ /* eslint-disable new-cap */ @@ -47,7 +46,7 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { setApis((current) => [ ...current, { - id: layer.id!, + id: layer.id, api: new itemsApi('items', layer.id, undefined, { _or: [ { From 0b77d95ae4a767a6ccfb40c7993c563e9f5d883b Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 26 Aug 2025 12:53:01 +0100 Subject: [PATCH 06/39] fix(backend): register role seed (#337) * adjust seed structure to support multiple projects * fix gitignore * seed the role a user has when registered properly --- backend/README.md | 2 -- backend/directus-config/collections/permissions.json | 2 +- backend/directus-config/collections/policies.json | 2 +- backend/directus-config/collections/roles.json | 2 +- backend/directus-config/seed-manual/seed.sh | 12 ------------ .../seed-manual/sql/branding-logo.sql | 1 - backend/directus-config/seeds/.gitignore | 2 +- .../seeds/development/manual/register-role.sql | 5 +++++ 8 files changed, 9 insertions(+), 19 deletions(-) delete mode 100755 backend/directus-config/seed-manual/seed.sh delete mode 100644 backend/directus-config/seed-manual/sql/branding-logo.sql create mode 100644 backend/directus-config/seeds/development/manual/register-role.sql diff --git a/backend/README.md b/backend/README.md index 8ba6775b..94154126 100644 --- a/backend/README.md +++ b/backend/README.md @@ -13,7 +13,6 @@ npx directus-sync push \ --directus-password admin123 ./seed.sh - ``` ## Pull Data from Docker to Harddrive @@ -42,7 +41,6 @@ npx directus-sync push \ In order to seed the development data, run the script `backend/seed.sh`. - ## Backup Database Either keep a copy of the `/data/database` folder or run the following command to get an sql dump diff --git a/backend/directus-config/collections/permissions.json b/backend/directus-config/collections/permissions.json index 0e5385be..9bfaee77 100644 --- a/backend/directus-config/collections/permissions.json +++ b/backend/directus-config/collections/permissions.json @@ -1697,7 +1697,7 @@ "permissions": null, "validation": null, "presets": { - "role": "cccbc503-ecab-4ef1-8cf9-b6ac0f2be240" + "role": "REPLACEME-WITH-REGISTRATED-ROLE_UUID" }, "fields": [ "first_name", diff --git a/backend/directus-config/collections/policies.json b/backend/directus-config/collections/policies.json index 7d529236..cdee0aff 100644 --- a/backend/directus-config/collections/policies.json +++ b/backend/directus-config/collections/policies.json @@ -93,7 +93,7 @@ "app_access": false, "roles": [ { - "role": "9865ace7-27fe-4d1f-be88-99ee6410fca2", + "role": "role-registrated", "sort": 1 } ], diff --git a/backend/directus-config/collections/roles.json b/backend/directus-config/collections/roles.json index d5de88d1..e629e6c0 100644 --- a/backend/directus-config/collections/roles.json +++ b/backend/directus-config/collections/roles.json @@ -11,7 +11,7 @@ "icon": "paragliding", "description": null, "parent": null, - "_syncId": "9865ace7-27fe-4d1f-be88-99ee6410fca2" + "_syncId": "role-registrated" }, { "name": "Editor", diff --git a/backend/directus-config/seed-manual/seed.sh b/backend/directus-config/seed-manual/seed.sh deleted file mode 100755 index 087f2abb..00000000 --- a/backend/directus-config/seed-manual/seed.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# base setup -SCRIPT_PATH=$(realpath $0) -SCRIPT_DIR=$(dirname $SCRIPT_PATH) - -SEED_SQL_DIR=$SCRIPT_DIR/sql - -# apply database updates -for filename in $SEED_SQL_DIR/*.sql; do - docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=directus psql -v ON_ERROR_STOP=1 --username directus directus" < $filename -done \ No newline at end of file diff --git a/backend/directus-config/seed-manual/sql/branding-logo.sql b/backend/directus-config/seed-manual/sql/branding-logo.sql deleted file mode 100644 index e9efc137..00000000 --- a/backend/directus-config/seed-manual/sql/branding-logo.sql +++ /dev/null @@ -1 +0,0 @@ -UPDATE public.directus_settings SET project_logo = (SELECT id FROM directus_files WHERE filename_download = 'utopia-logo.svg'); diff --git a/backend/directus-config/seeds/.gitignore b/backend/directus-config/seeds/.gitignore index eb9ad4c4..63cbc6fc 100644 --- a/backend/directus-config/seeds/.gitignore +++ b/backend/directus-config/seeds/.gitignore @@ -1,3 +1,3 @@ -* +/* !development/ !.gitignore \ No newline at end of file diff --git a/backend/directus-config/seeds/development/manual/register-role.sql b/backend/directus-config/seeds/development/manual/register-role.sql new file mode 100644 index 00000000..ee86ea21 --- /dev/null +++ b/backend/directus-config/seeds/development/manual/register-role.sql @@ -0,0 +1,5 @@ +UPDATE public.directus_permissions + SET presets = jsonb_set(presets::jsonb,'{role}', to_jsonb((SELECT id FROM public.directus_roles WHERE name = 'Registrated')), true) + WHERE policy = (SELECT id FROM public.directus_policies WHERE name = '$t:public_label') + AND collection = 'directus_users' + AND action = 'create'; \ No newline at end of file From 1ef562cf3c0b204d06e2730cc863df0da0fd1d3c Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:22:26 +0200 Subject: [PATCH 07/39] feat(lib): hide signup option (#329) * hide signup option * directus pull --- app/src/App.tsx | 1 + .../snapshot/fields/maps/hide_signup.json | 45 + backend/directus-config/specs/item.graphql | 30 +- backend/directus-config/specs/openapi.json | 1034 +++++++++-------- backend/directus-config/specs/system.graphql | 6 +- lib/src/Components/AppShell/AppShell.tsx | 3 + lib/src/Components/AppShell/SetAppState.tsx | 6 + lib/src/Components/AppShell/UserControl.tsx | 16 +- .../Components/AppShell/hooks/useAppState.tsx | 2 + lib/src/types/UtopiaMapProps.d.ts | 1 + 10 files changed, 610 insertions(+), 534 deletions(-) create mode 100644 backend/directus-config/snapshot/fields/maps/hide_signup.json diff --git a/app/src/App.tsx b/app/src/App.tsx index 4707eb27..9156f062 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -155,6 +155,7 @@ function App() { appName={map.name} embedded={embedded} openCollectiveApiKey={config.openCollectiveApiKey} + hideSignup={map.hide_signup} > {tagsApi && } diff --git a/backend/directus-config/snapshot/fields/maps/hide_signup.json b/backend/directus-config/snapshot/fields/maps/hide_signup.json new file mode 100644 index 00000000..0656ea6c --- /dev/null +++ b/backend/directus-config/snapshot/fields/maps/hide_signup.json @@ -0,0 +1,45 @@ +{ + "collection": "maps", + "field": "hide_signup", + "type": "boolean", + "meta": { + "collection": "maps", + "conditions": null, + "display": null, + "display_options": null, + "field": "hide_signup", + "group": null, + "hidden": false, + "interface": "boolean", + "note": null, + "options": null, + "readonly": false, + "required": false, + "sort": 17, + "special": [ + "cast-boolean" + ], + "translations": null, + "validation": null, + "validation_message": null, + "width": "full" + }, + "schema": { + "name": "hide_signup", + "table": "maps", + "data_type": "boolean", + "default_value": false, + "max_length": null, + "numeric_precision": null, + "numeric_scale": null, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } +} diff --git a/backend/directus-config/specs/item.graphql b/backend/directus-config/specs/item.graphql index ef80a45f..3c91797e 100644 --- a/backend/directus-config/specs/item.graphql +++ b/backend/directus-config/specs/item.graphql @@ -11,6 +11,10 @@ type Query { oceannomads_profiles_by_id(id: ID!, version: String): oceannomads_profiles oceannomads_profiles_aggregated(groupBy: [String], filter: oceannomads_profiles_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [oceannomads_profiles_aggregated!]! oceannomads_profiles_by_version(version: String!, id: ID!): version_oceannomads_profiles + maps(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [maps!]! + maps_by_id(id: ID!, version: String): maps + maps_aggregated(groupBy: [String], filter: maps_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [maps_aggregated!]! + maps_by_version(version: String!, id: ID!): version_maps attestations(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [attestations!]! attestations_by_id(id: ID!, version: String): attestations attestations_aggregated(groupBy: [String], filter: attestations_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [attestations_aggregated!]! @@ -111,10 +115,6 @@ type Query { layers_maps_by_id(id: ID!, version: String): layers_maps layers_maps_aggregated(groupBy: [String], filter: layers_maps_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [layers_maps_aggregated!]! layers_maps_by_version(version: String!, id: ID!): version_layers_maps - maps(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [maps!]! - maps_by_id(id: ID!, version: String): maps - maps_aggregated(groupBy: [String], filter: maps_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [maps_aggregated!]! - maps_by_version(version: String!, id: ID!): version_maps Themes(filter: Themes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [Themes!]! Themes_by_id(id: ID!, version: String): Themes Themes_aggregated(groupBy: [String], filter: Themes_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [Themes_aggregated!]! @@ -144,6 +144,8 @@ type Mutation { create_relations_item(data: create_relations_input!): relations create_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_oceannomads_profiles_input!]): [oceannomads_profiles!]! create_oceannomads_profiles_item(data: create_oceannomads_profiles_input!): oceannomads_profiles + create_maps_items(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_maps_input!]): [maps!]! + create_maps_item(data: create_maps_input!): maps create_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_input!]): [attestations!]! create_attestations_item(data: create_attestations_input!): attestations create_attestations_directus_users_items(filter: attestations_directus_users_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_directus_users_input!]): [attestations_directus_users!]! @@ -194,8 +196,6 @@ type Mutation { create_layers_files_item(data: create_layers_files_input!): layers_files create_layers_maps_items(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_layers_maps_input!]): [layers_maps!]! create_layers_maps_item(data: create_layers_maps_input!): layers_maps - create_maps_items(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_maps_input!]): [maps!]! - create_maps_item(data: create_maps_input!): maps create_Themes_items(filter: Themes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_Themes_input!]): [Themes!]! create_Themes_item(data: create_Themes_input!): Themes create_startEnd_items(filter: startEnd_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_startEnd_input!]): [startEnd!]! @@ -215,6 +215,9 @@ type Mutation { update_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_oceannomads_profiles_input!): [oceannomads_profiles!]! update_oceannomads_profiles_batch(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_oceannomads_profiles_input!]): [oceannomads_profiles!]! update_oceannomads_profiles_item(id: ID!, data: update_oceannomads_profiles_input!): oceannomads_profiles + update_maps_items(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_maps_input!): [maps!]! + update_maps_batch(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_maps_input!]): [maps!]! + update_maps_item(id: ID!, data: update_maps_input!): maps update_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_attestations_input!): [attestations!]! update_attestations_batch(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_attestations_input!]): [attestations!]! update_attestations_item(id: ID!, data: update_attestations_input!): attestations @@ -290,9 +293,6 @@ type Mutation { update_layers_maps_items(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_layers_maps_input!): [layers_maps!]! update_layers_maps_batch(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_layers_maps_input!]): [layers_maps!]! update_layers_maps_item(id: ID!, data: update_layers_maps_input!): layers_maps - update_maps_items(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_maps_input!): [maps!]! - update_maps_batch(filter: maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_maps_input!]): [maps!]! - update_maps_item(id: ID!, data: update_maps_input!): maps update_Themes_items(filter: Themes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_Themes_input!): [Themes!]! update_Themes_batch(filter: Themes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_Themes_input!]): [Themes!]! update_Themes_item(id: ID!, data: update_Themes_input!): Themes @@ -314,6 +314,8 @@ type Mutation { delete_relations_item(id: ID!): delete_one delete_oceannomads_profiles_items(ids: [ID]!): delete_many delete_oceannomads_profiles_item(id: ID!): delete_one + delete_maps_items(ids: [ID]!): delete_many + delete_maps_item(id: ID!): delete_one delete_attestations_items(ids: [ID]!): delete_many delete_attestations_item(id: ID!): delete_one delete_attestations_directus_users_items(ids: [ID]!): delete_many @@ -364,8 +366,6 @@ type Mutation { delete_layers_files_item(id: ID!): delete_one delete_layers_maps_items(ids: [ID]!): delete_many delete_layers_maps_item(id: ID!): delete_one - delete_maps_items(ids: [ID]!): delete_many - delete_maps_item(id: ID!): delete_one delete_Themes_items(ids: [ID]!): delete_many delete_Themes_item(id: ID!): delete_one delete_startEnd_items(ids: [ID]!): delete_many @@ -403,6 +403,7 @@ type Subscription { directus_policies_mutated(event: EventEnum): directus_policies_mutated relations_mutated(event: EventEnum): relations_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated + maps_mutated(event: EventEnum): maps_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -428,7 +429,6 @@ type Subscription { layers_directus_users_1_mutated(event: EventEnum): layers_directus_users_1_mutated layers_files_mutated(event: EventEnum): layers_files_mutated layers_maps_mutated(event: EventEnum): layers_maps_mutated - maps_mutated(event: EventEnum): maps_mutated Themes_mutated(event: EventEnum): Themes_mutated startEnd_mutated(event: EventEnum): startEnd_mutated team_mutated(event: EventEnum): team_mutated @@ -1954,6 +1954,7 @@ type maps { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] layers_func: count_functions } @@ -2000,6 +2001,7 @@ type maps_aggregated_count { tile_server_url: Int url: Int zoom: Int + hide_signup: Int layers: Int } @@ -2673,6 +2675,7 @@ type version_maps { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers: JSON } @@ -3221,6 +3224,7 @@ input create_maps_input { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers: [create_layers_maps_input] } @@ -4200,6 +4204,7 @@ input maps_filter { tile_server_url: string_filter_operators url: string_filter_operators zoom: number_filter_operators + hide_signup: boolean_filter_operators layers: layers_maps_quantifier_filter layers_func: count_function_filter_operators _and: [maps_filter] @@ -4764,6 +4769,7 @@ input update_maps_input { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers: [update_layers_maps_input] } diff --git a/backend/directus-config/specs/openapi.json b/backend/directus-config/specs/openapi.json index 963a87d2..31ff038d 100644 --- a/backend/directus-config/specs/openapi.json +++ b/backend/directus-config/specs/openapi.json @@ -8678,6 +8678,395 @@ ] } }, + "/items/maps": { + "post": { + "summary": "Create an Item", + "description": "Create a new maps item.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "createItemsMaps", + "parameters": [ + { + "$ref": "#/components/parameters/Meta" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMaps" + } + }, + { + "$ref": "#/components/schemas/ItemsMaps" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMaps" + } + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "get": { + "summary": "List Items", + "description": "List the maps items.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "readItemsMaps", + "security": [ + { + "Auth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/components/schemas/ItemsMaps" + } + }, + "meta": { + "$ref": "#/components/schemas/x-metadata" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "patch": { + "summary": "Update Multiple Items", + "description": "Update multiple maps items at the same time.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "updateItemsMaps", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMaps" + } + }, + { + "$ref": "#/components/schemas/ItemsMaps" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMaps" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Multiple Items", + "description": "Delete multiple existing maps items.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "deleteItemsMaps", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + }, + "parameters": [] + } + }, + "/items/maps/{id}": { + "get": { + "summary": "Retrieve an Item", + "description": "Retrieve a single maps item by unique identifier.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "readSingleItemsMaps", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Version" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsMaps" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "patch": { + "summary": "Update an Item", + "description": "Update an existing maps item.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "updateSingleItemsMaps", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/ItemsMaps" + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsMaps" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "delete": { + "summary": "Delete an Item", + "description": "Delete an existing maps item.", + "tags": [ + "Items", + "ItemsMaps" + ], + "operationId": "deleteSingleItemsMaps", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + }, + "parameters": [ + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ] + } + }, "/items/attestations": { "post": { "summary": "Create an Item", @@ -18403,395 +18792,6 @@ ] } }, - "/items/maps": { - "post": { - "summary": "Create an Item", - "description": "Create a new maps item.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "createItemsMaps", - "parameters": [ - { - "$ref": "#/components/parameters/Meta" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMaps" - } - }, - { - "$ref": "#/components/schemas/ItemsMaps" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMaps" - } - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "get": { - "summary": "List Items", - "description": "List the maps items.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "readItemsMaps", - "security": [ - { - "Auth": [] - } - ], - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/components/schemas/ItemsMaps" - } - }, - "meta": { - "$ref": "#/components/schemas/x-metadata" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "patch": { - "summary": "Update Multiple Items", - "description": "Update multiple maps items at the same time.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "updateItemsMaps", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMaps" - } - }, - { - "$ref": "#/components/schemas/ItemsMaps" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMaps" - } - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Multiple Items", - "description": "Delete multiple existing maps items.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "deleteItemsMaps", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - }, - "parameters": [] - } - }, - "/items/maps/{id}": { - "get": { - "summary": "Retrieve an Item", - "description": "Retrieve a single maps item by unique identifier.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "readSingleItemsMaps", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Version" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsMaps" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "patch": { - "summary": "Update an Item", - "description": "Update an existing maps item.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "updateSingleItemsMaps", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "$ref": "#/components/schemas/ItemsMaps" - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsMaps" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "delete": { - "summary": "Delete an Item", - "description": "Delete an existing maps item.", - "tags": [ - "Items", - "ItemsMaps" - ], - "operationId": "deleteSingleItemsMaps", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - }, - "parameters": [ - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ] - } - }, "/items/Themes": { "post": { "summary": "Create an Item", @@ -20873,6 +20873,10 @@ "name": "ItemsOceannomadsProfiles", "x-collection": "oceannomads_profiles" }, + { + "name": "ItemsMaps", + "x-collection": "maps" + }, { "name": "ItemsAttestations", "x-collection": "attestations" @@ -20973,10 +20977,6 @@ "name": "ItemsLayersMaps", "x-collection": "layers_maps" }, - { - "name": "ItemsMaps", - "x-collection": "maps" - }, { "name": "ItemsThemes", "x-collection": "Themes" @@ -22997,6 +22997,132 @@ "id" ] }, + "ItemsMaps": { + "type": "object", + "properties": { + "center": { + "nullable": true, + "type": "object" + }, + "custom_text": { + "nullable": true, + "description": "Replace the info text in the info popup", + "type": "string" + }, + "default_theme": { + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/ItemsThemes" + } + ] + }, + "donation_widget": { + "nullable": true, + "description": "Shows a donation widget after 10 minutes", + "type": "boolean" + }, + "expand_layer_control": { + "nullable": true, + "type": "boolean" + }, + "geo": { + "nullable": true, + "description": "You can include GeoJSON" + }, + "id": { + "nullable": false, + "type": "string", + "format": "uuid" + }, + "info_open": { + "nullable": true, + "type": "boolean" + }, + "logo": { + "nullable": true, + "description": "Used as FavIcon", + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "name": { + "nullable": true, + "type": "string" + }, + "own_tag_space": { + "nullable": true, + "type": "boolean" + }, + "show_filter_control": { + "nullable": true, + "type": "boolean" + }, + "show_gratitude_control": { + "nullable": true, + "type": "boolean" + }, + "show_layer_control": { + "nullable": true, + "type": "boolean" + }, + "show_theme_control": { + "nullable": true, + "type": "boolean" + }, + "show_zoom_control": { + "nullable": false, + "type": "boolean" + }, + "tile_server_attribution": { + "nullable": true, + "type": "string" + }, + "tile_server_url": { + "nullable": true, + "type": "string" + }, + "url": { + "nullable": true, + "type": "string" + }, + "zoom": { + "nullable": true, + "type": "integer" + }, + "hide_signup": { + "nullable": true, + "type": "boolean" + }, + "layers": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/ItemsLayersMaps" + } + ] + } + } + }, + "x-collection": "maps", + "required": [ + "id" + ] + }, "ItemsAttestations": { "type": "object", "properties": { @@ -24448,128 +24574,6 @@ }, "x-collection": "layers_maps" }, - "ItemsMaps": { - "type": "object", - "properties": { - "center": { - "nullable": true, - "type": "object" - }, - "custom_text": { - "nullable": true, - "description": "Replace the info text in the info popup", - "type": "string" - }, - "default_theme": { - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/ItemsThemes" - } - ] - }, - "donation_widget": { - "nullable": true, - "description": "Shows a donation widget after 10 minutes", - "type": "boolean" - }, - "expand_layer_control": { - "nullable": true, - "type": "boolean" - }, - "geo": { - "nullable": true, - "description": "You can include GeoJSON" - }, - "id": { - "nullable": false, - "type": "string", - "format": "uuid" - }, - "info_open": { - "nullable": true, - "type": "boolean" - }, - "logo": { - "nullable": true, - "description": "Used as FavIcon", - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, - "name": { - "nullable": true, - "type": "string" - }, - "own_tag_space": { - "nullable": true, - "type": "boolean" - }, - "show_filter_control": { - "nullable": true, - "type": "boolean" - }, - "show_gratitude_control": { - "nullable": true, - "type": "boolean" - }, - "show_layer_control": { - "nullable": true, - "type": "boolean" - }, - "show_theme_control": { - "nullable": true, - "type": "boolean" - }, - "show_zoom_control": { - "nullable": false, - "type": "boolean" - }, - "tile_server_attribution": { - "nullable": true, - "type": "string" - }, - "tile_server_url": { - "nullable": true, - "type": "string" - }, - "url": { - "nullable": true, - "type": "string" - }, - "zoom": { - "nullable": true, - "type": "integer" - }, - "layers": { - "nullable": true, - "type": "array", - "items": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "#/components/schemas/ItemsLayersMaps" - } - ] - } - } - }, - "x-collection": "maps", - "required": [ - "id" - ] - }, "ItemsThemes": { "type": "object", "properties": { diff --git a/backend/directus-config/specs/system.graphql b/backend/directus-config/specs/system.graphql index c623be7e..67f7fae2 100644 --- a/backend/directus-config/specs/system.graphql +++ b/backend/directus-config/specs/system.graphql @@ -265,6 +265,7 @@ type Subscription { directus_policies_mutated(event: EventEnum): directus_policies_mutated relations_mutated(event: EventEnum): relations_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated + maps_mutated(event: EventEnum): maps_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -290,7 +291,6 @@ type Subscription { layers_directus_users_1_mutated(event: EventEnum): layers_directus_users_1_mutated layers_files_mutated(event: EventEnum): layers_files_mutated layers_maps_mutated(event: EventEnum): layers_maps_mutated - maps_mutated(event: EventEnum): maps_mutated Themes_mutated(event: EventEnum): Themes_mutated startEnd_mutated(event: EventEnum): startEnd_mutated team_mutated(event: EventEnum): team_mutated @@ -2039,6 +2039,7 @@ type maps { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] layers_func: count_functions } @@ -2783,6 +2784,7 @@ input create_maps_input { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers: [create_layers_maps_input] } @@ -3746,6 +3748,7 @@ input maps_filter { tile_server_url: string_filter_operators url: string_filter_operators zoom: number_filter_operators + hide_signup: boolean_filter_operators layers: layers_maps_quantifier_filter layers_func: count_function_filter_operators _and: [maps_filter] @@ -4304,6 +4307,7 @@ input update_maps_input { tile_server_url: String url: String zoom: Int + hide_signup: Boolean layers: [update_layers_maps_input] } diff --git a/lib/src/Components/AppShell/AppShell.tsx b/lib/src/Components/AppShell/AppShell.tsx index 71146b26..4e2a9c34 100644 --- a/lib/src/Components/AppShell/AppShell.tsx +++ b/lib/src/Components/AppShell/AppShell.tsx @@ -15,12 +15,14 @@ export function AppShell({ assetsApi, embedded, openCollectiveApiKey, + hideSignup, }: { appName: string children: React.ReactNode assetsApi: AssetsApi embedded?: boolean openCollectiveApiKey?: string + hideSignup?: boolean }) { return ( @@ -29,6 +31,7 @@ export function AppShell({ assetsApi={assetsApi} embedded={embedded} openCollectiveApiKey={openCollectiveApiKey} + hideSignup={hideSignup} />
diff --git a/lib/src/Components/AppShell/SetAppState.tsx b/lib/src/Components/AppShell/SetAppState.tsx index 10b9e4a6..e27bf4c5 100644 --- a/lib/src/Components/AppShell/SetAppState.tsx +++ b/lib/src/Components/AppShell/SetAppState.tsx @@ -8,10 +8,12 @@ export const SetAppState = ({ assetsApi, embedded, openCollectiveApiKey, + hideSignup, }: { assetsApi: AssetsApi embedded?: boolean openCollectiveApiKey?: string + hideSignup?: boolean }) => { const setAppState = useSetAppState() @@ -27,5 +29,9 @@ export const SetAppState = ({ setAppState({ openCollectiveApiKey }) }, [openCollectiveApiKey, setAppState]) + useEffect(() => { + setAppState({ hideSignup: hideSignup ?? false }) + }, [hideSignup, setAppState]) + return <> } diff --git a/lib/src/Components/AppShell/UserControl.tsx b/lib/src/Components/AppShell/UserControl.tsx index c951d372..ca05f9ee 100644 --- a/lib/src/Components/AppShell/UserControl.tsx +++ b/lib/src/Components/AppShell/UserControl.tsx @@ -93,9 +93,11 @@ export const UserControl = () => {
Login
- -
Sign Up
- + {!appState.hideSignup && ( + +
Sign Up
+ + )}
diff --git a/lib/src/Components/AppShell/hooks/useAppState.tsx b/lib/src/Components/AppShell/hooks/useAppState.tsx index 8d4a52d2..2db08b38 100644 --- a/lib/src/Components/AppShell/hooks/useAppState.tsx +++ b/lib/src/Components/AppShell/hooks/useAppState.tsx @@ -11,6 +11,7 @@ interface AppState { showThemeControl: boolean embedded: boolean openCollectiveApiKey: string + hideSignup: boolean } type UseAppManagerResult = ReturnType @@ -22,6 +23,7 @@ const initialAppState: AppState = { showThemeControl: false, embedded: false, openCollectiveApiKey: '', + hideSignup: false, } const AppContext = createContext({ diff --git a/lib/src/types/UtopiaMapProps.d.ts b/lib/src/types/UtopiaMapProps.d.ts index b5aec550..b808b2fc 100644 --- a/lib/src/types/UtopiaMapProps.d.ts +++ b/lib/src/types/UtopiaMapProps.d.ts @@ -20,4 +20,5 @@ export interface UtopiaMapProps { expandLayerControl?: boolean tileServerUrl?: string tileServerAttribution?: string + hideSignup?: boolean } From a599eddca6aadecd3d5f6e589804c1af79617f49 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:43:31 +0200 Subject: [PATCH 08/39] feat(lib): add optional request password button to login page (#334) * add optional request password button to login page * fix linting * fix linting * added field to backend config --- app/src/App.tsx | 10 ++++- .../fields/maps/show_request_password.json | 45 +++++++++++++++++++ backend/directus-config/specs/item.graphql | 6 +++ backend/directus-config/specs/openapi.json | 4 ++ backend/directus-config/specs/system.graphql | 4 ++ lib/src/Components/Auth/LoginPage.tsx | 23 +++++++--- .../Components/Auth/RequestPasswordPage.tsx | 2 +- lib/src/types/UtopiaMapProps.d.ts | 1 + 8 files changed, 87 insertions(+), 8 deletions(-) create mode 100644 backend/directus-config/snapshot/fields/maps/show_request_password.json diff --git a/app/src/App.tsx b/app/src/App.tsx index 9156f062..124b9723 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -168,7 +168,15 @@ function App() { }> } /> - } /> + + } + /> } /> ('') const [password, setPassword] = useState('') @@ -106,11 +107,13 @@ export function LoginPage({ inviteApi }: Props) { className='tw:input tw:input-bordered tw:w-full tw:max-w-xs' />
- - - Forgot Password? - - + {!showRequestPassword && ( + + + Forgot Password? + + + )}
+ {showRequestPassword && ( + <> +
OR
+ + + + + )}
) diff --git a/lib/src/Components/Auth/RequestPasswordPage.tsx b/lib/src/Components/Auth/RequestPasswordPage.tsx index 0f15acd5..dcfb416f 100644 --- a/lib/src/Components/Auth/RequestPasswordPage.tsx +++ b/lib/src/Components/Auth/RequestPasswordPage.tsx @@ -37,7 +37,7 @@ export function RequestPasswordPage({ resetUrl }: { resetUrl: string }) { return ( -

Reset Password

+

Request Password

Date: Tue, 26 Aug 2025 14:55:15 +0200 Subject: [PATCH 09/39] feat(app): popup customizing (#333) * small form edits * fix linting * custom button label * more popup customizing * reset dev port --- app/src/pages/MapContainer.tsx | 12 +++++++++--- lib/src/Components/Item/index.tsx | 2 ++ .../Components/Map/Subcomponents/ItemFormPopup.tsx | 2 +- .../Subcomponents/ItemPopupComponents/HeaderView.tsx | 12 ++++++------ .../ItemPopupComponents/PopupTextAreaInput.tsx | 1 + .../Map/Subcomponents/ItemPopupComponents/index.tsx | 1 + lib/src/types/ItemType.d.ts | 4 ++++ 7 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/src/pages/MapContainer.tsx b/app/src/pages/MapContainer.tsx index 6b1b0b57..086f7aa6 100644 --- a/app/src/pages/MapContainer.tsx +++ b/app/src/pages/MapContainer.tsx @@ -19,6 +19,7 @@ import { PopupStartEndInput, PopupTextAreaInput, PopupTextInput, + HeaderView, } from 'utopia-ui' import { itemsApi } from '../api/itemsApi' @@ -105,7 +106,7 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { layer.markerDefaultColor2 ? layer.markerDefaultColor2 : 'RGBA(35, 31, 32, 0.2)' } itemType={layer.itemType} - customEditLink='/edit-item' + customEditLink={layer.itemType.small_form_edit ? undefined : '/edit-item'} customEditParameter='id' public_edit_items={layer.public_edit_items} listed={layer.listed} @@ -114,11 +115,16 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { {layer.itemType.show_start_end && } {layer.itemType.show_profile_button && ( - + )} {layer.itemType.show_text && } + {layer.itemType.show_header_view_in_form && } {layer.itemType.show_name_input && ( )} @@ -129,7 +135,7 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) {
diff --git a/lib/src/Components/Item/index.tsx b/lib/src/Components/Item/index.tsx index 143ca9bf..31116685 100644 --- a/lib/src/Components/Item/index.tsx +++ b/lib/src/Components/Item/index.tsx @@ -6,6 +6,7 @@ import { PopupCheckboxInput as PlainPopupCheckboxInput, PopupTextAreaInput as PlainPopupTextAreaInput, PopupStartEndInput as PlainPopupStartEndInput, + HeaderView as PlainHeaderView, } from '#components/Map/Subcomponents/ItemPopupComponents' import { templateify } from './templateify' @@ -20,3 +21,4 @@ export const PopupButton = templateify(PlainPopupButton) export const PopupCheckboxInput = templateify(PlainPopupCheckboxInput) export const PopupTextAreaInput = templateify(PlainPopupTextAreaInput) export const PopupStartEndInput = templateify(PlainPopupStartEndInput) +export const HeaderView = templateify(PlainHeaderView) diff --git a/lib/src/Components/Map/Subcomponents/ItemFormPopup.tsx b/lib/src/Components/Map/Subcomponents/ItemFormPopup.tsx index 65d9773d..e85e97fe 100644 --- a/lib/src/Components/Map/Subcomponents/ItemFormPopup.tsx +++ b/lib/src/Components/Map/Subcomponents/ItemFormPopup.tsx @@ -254,7 +254,7 @@ export function ItemFormPopup(props: Props) { onSubmit={(e) => handleSubmit(e)} > {popupForm.item ? ( -
+
) : (
{menuText} diff --git a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx index 89ef9697..d31f3cd3 100644 --- a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx +++ b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx @@ -37,7 +37,7 @@ export function HeaderView({ hideSubname = false, showAddress = false, }: { - item: Item + item?: Item api?: ItemsApi editCallback?: any deleteCallback?: any @@ -58,10 +58,10 @@ export function HeaderView({ const [imageLoaded, setImageLoaded] = useState(false) const avatar = - (item.image && appState.assetsApi.url + item.image + '?width=160&heigth=160') || - item.image_external - const title = item.name - const subtitle = item.subname + (item?.image && appState.assetsApi.url + item.image + '?width=160&heigth=160') || + item?.image_external + const title = item?.name + const subtitle = item?.subname const [address] = useState('') @@ -71,7 +71,7 @@ export function HeaderView({ setModalOpen(true) event.stopPropagation() } - + if (!item) return null return ( <>
diff --git a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx index e56153f6..49447c18 100644 --- a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx +++ b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupTextAreaInput.tsx @@ -22,6 +22,7 @@ export const PopupTextAreaInput = ({ dataField={dataField} placeholder={placeholder} inputStyle={style} + required={false} > ) } diff --git a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/index.tsx b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/index.tsx index c60493ea..8c0e92d0 100644 --- a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/index.tsx +++ b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/index.tsx @@ -5,3 +5,4 @@ export { PopupCheckboxInput } from './PopupCheckboxInput' export { TextView } from './TextView' export { StartEndView } from './StartEndView' export { PopupButton } from './PopupButton' +export { HeaderView } from './HeaderView' diff --git a/lib/src/types/ItemType.d.ts b/lib/src/types/ItemType.d.ts index df56aff7..b9f5325e 100644 --- a/lib/src/types/ItemType.d.ts +++ b/lib/src/types/ItemType.d.ts @@ -16,4 +16,8 @@ export interface ItemType { relations: boolean template: string questlog: boolean + small_form_edit?: boolean + botton_label?: string + text_input_label?: string + show_header_view_in_form?: boolean } From 7e059d8debc92dbfd4d1f23a7441914f439a6db9 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:56:55 +0200 Subject: [PATCH 10/39] feat(app): added external profile url (#328) * added external profile url * switch port back to 5174 * fix linting * chaneged target to _parent --- app/src/pages/MapContainer.tsx | 4 ++-- .../Map/Subcomponents/ItemPopupComponents/PopupButton.tsx | 4 +++- lib/src/types/Item.d.ts | 1 + lib/src/types/ItemType.d.ts | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/pages/MapContainer.tsx b/app/src/pages/MapContainer.tsx index 086f7aa6..7ed063ed 100644 --- a/app/src/pages/MapContainer.tsx +++ b/app/src/pages/MapContainer.tsx @@ -116,8 +116,8 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { {layer.itemType.show_start_end && } {layer.itemType.show_profile_button && ( )} diff --git a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx index 119262b5..918e7bed 100644 --- a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx +++ b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/PopupButton.tsx @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ /* eslint-disable @typescript-eslint/restrict-template-expressions */ +import { get } from 'radash' import { Link } from 'react-router-dom' import { useGetItemTags } from '#components/Map/hooks/useTags' @@ -22,9 +23,10 @@ export const PopupButton = ({ }) => { const params = new URLSearchParams(window.location.search) const getItemTags = useGetItemTags() + const parameter = get(item, parameterField ?? 'id') return ( - + From 75516b8c3a97b12069c3e85281dd97696e4d2603 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Tue, 2 Sep 2025 14:11:07 +0200 Subject: [PATCH 18/39] fix(app): layer sort (#347) * layer sort * change dev port back to 5174 --- app/src/api/layersApi.ts | 1 + .../snapshot/fields/layers/sort.json | 43 + backend/directus-config/specs/item.graphql | 40 +- backend/directus-config/specs/openapi.json | 1054 +++++++++-------- backend/directus-config/specs/system.graphql | 6 +- 5 files changed, 606 insertions(+), 538 deletions(-) create mode 100644 backend/directus-config/snapshot/fields/layers/sort.json diff --git a/app/src/api/layersApi.ts b/app/src/api/layersApi.ts index d7cd0c8f..b91e5881 100644 --- a/app/src/api/layersApi.ts +++ b/app/src/api/layersApi.ts @@ -23,6 +23,7 @@ export class layersApi { ], filter: { maps: { maps_id: { id: { _eq: this.mapId } } } }, limit: 500, + sort: ['sort'], }), ) return layers diff --git a/backend/directus-config/snapshot/fields/layers/sort.json b/backend/directus-config/snapshot/fields/layers/sort.json new file mode 100644 index 00000000..96567703 --- /dev/null +++ b/backend/directus-config/snapshot/fields/layers/sort.json @@ -0,0 +1,43 @@ +{ + "collection": "layers", + "field": "sort", + "type": "integer", + "meta": { + "collection": "layers", + "conditions": null, + "display": null, + "display_options": null, + "field": "sort", + "group": null, + "hidden": false, + "interface": "input", + "note": null, + "options": null, + "readonly": false, + "required": false, + "sort": 18, + "special": null, + "translations": null, + "validation": null, + "validation_message": null, + "width": "full" + }, + "schema": { + "name": "sort", + "table": "layers", + "data_type": "integer", + "default_value": 10, + "max_length": null, + "numeric_precision": 32, + "numeric_scale": 0, + "is_nullable": true, + "is_unique": false, + "is_indexed": false, + "is_primary_key": false, + "is_generated": false, + "generation_expression": null, + "has_auto_increment": false, + "foreign_key_table": null, + "foreign_key_column": null + } +} diff --git a/backend/directus-config/specs/item.graphql b/backend/directus-config/specs/item.graphql index 632b4602..aa925e55 100644 --- a/backend/directus-config/specs/item.graphql +++ b/backend/directus-config/specs/item.graphql @@ -15,6 +15,10 @@ type Query { oceannomads_profiles_by_id(id: ID!, version: String): oceannomads_profiles oceannomads_profiles_aggregated(groupBy: [String], filter: oceannomads_profiles_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [oceannomads_profiles_aggregated!]! oceannomads_profiles_by_version(version: String!, id: ID!): version_oceannomads_profiles + layers(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers!]! + layers_by_id(id: ID!, version: String): layers + layers_aggregated(groupBy: [String], filter: layers_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [layers_aggregated!]! + layers_by_version(version: String!, id: ID!): version_layers attestations(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [attestations!]! attestations_by_id(id: ID!, version: String): attestations attestations_aggregated(groupBy: [String], filter: attestations_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [attestations_aggregated!]! @@ -67,10 +71,6 @@ type Query { itemSecrets_by_id(id: ID!, version: String): itemSecrets itemSecrets_aggregated(groupBy: [String], filter: itemSecrets_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [itemSecrets_aggregated!]! itemSecrets_by_version(version: String!, id: ID!): version_itemSecrets - layers(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers!]! - layers_by_id(id: ID!, version: String): layers - layers_aggregated(groupBy: [String], filter: layers_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [layers_aggregated!]! - layers_by_version(version: String!, id: ID!): version_layers items_files(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [items_files!]! items_files_by_id(id: ID!, version: String): items_files items_files_aggregated(groupBy: [String], filter: items_files_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [items_files_aggregated!]! @@ -150,6 +150,8 @@ type Mutation { create_oceannomads_events_item(data: create_oceannomads_events_input!): oceannomads_events create_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_oceannomads_profiles_input!]): [oceannomads_profiles!]! create_oceannomads_profiles_item(data: create_oceannomads_profiles_input!): oceannomads_profiles + create_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_layers_input!]): [layers!]! + create_layers_item(data: create_layers_input!): layers create_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_input!]): [attestations!]! create_attestations_item(data: create_attestations_input!): attestations create_attestations_directus_users_items(filter: attestations_directus_users_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_directus_users_input!]): [attestations_directus_users!]! @@ -176,8 +178,6 @@ type Mutation { create_items_item(data: create_items_input!): items create_itemSecrets_items(filter: itemSecrets_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_itemSecrets_input!]): [itemSecrets!]! create_itemSecrets_item(data: create_itemSecrets_input!): itemSecrets - create_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_layers_input!]): [layers!]! - create_layers_item(data: create_layers_input!): layers create_items_files_items(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_items_files_input!]): [items_files!]! create_items_files_item(data: create_items_files_input!): items_files create_items_items_items(filter: items_items_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_items_items_input!]): [items_items!]! @@ -224,6 +224,9 @@ type Mutation { update_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_oceannomads_profiles_input!): [oceannomads_profiles!]! update_oceannomads_profiles_batch(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_oceannomads_profiles_input!]): [oceannomads_profiles!]! update_oceannomads_profiles_item(id: ID!, data: update_oceannomads_profiles_input!): oceannomads_profiles + update_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_layers_input!): [layers!]! + update_layers_batch(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_layers_input!]): [layers!]! + update_layers_item(id: ID!, data: update_layers_input!): layers update_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_attestations_input!): [attestations!]! update_attestations_batch(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_attestations_input!]): [attestations!]! update_attestations_item(id: ID!, data: update_attestations_input!): attestations @@ -263,9 +266,6 @@ type Mutation { update_itemSecrets_items(filter: itemSecrets_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_itemSecrets_input!): [itemSecrets!]! update_itemSecrets_batch(filter: itemSecrets_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_itemSecrets_input!]): [itemSecrets!]! update_itemSecrets_item(id: ID!, data: update_itemSecrets_input!): itemSecrets - update_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_layers_input!): [layers!]! - update_layers_batch(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_layers_input!]): [layers!]! - update_layers_item(id: ID!, data: update_layers_input!): layers update_items_files_items(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_items_files_input!): [items_files!]! update_items_files_batch(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_items_files_input!]): [items_files!]! update_items_files_item(id: ID!, data: update_items_files_input!): items_files @@ -325,6 +325,8 @@ type Mutation { delete_oceannomads_events_item(id: ID!): delete_one delete_oceannomads_profiles_items(ids: [ID]!): delete_many delete_oceannomads_profiles_item(id: ID!): delete_one + delete_layers_items(ids: [ID]!): delete_many + delete_layers_item(id: ID!): delete_one delete_attestations_items(ids: [ID]!): delete_many delete_attestations_item(id: ID!): delete_one delete_attestations_directus_users_items(ids: [ID]!): delete_many @@ -351,8 +353,6 @@ type Mutation { delete_items_item(id: ID!): delete_one delete_itemSecrets_items(ids: [ID]!): delete_many delete_itemSecrets_item(id: ID!): delete_one - delete_layers_items(ids: [ID]!): delete_many - delete_layers_item(id: ID!): delete_one delete_items_files_items(ids: [ID]!): delete_many delete_items_files_item(id: ID!): delete_one delete_items_items_items(ids: [ID]!): delete_many @@ -415,6 +415,7 @@ type Subscription { relations_mutated(event: EventEnum): relations_mutated oceannomads_events_mutated(event: EventEnum): oceannomads_events_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated + layers_mutated(event: EventEnum): layers_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -428,7 +429,6 @@ type Subscription { inviteLinks_mutated(event: EventEnum): inviteLinks_mutated items_mutated(event: EventEnum): items_mutated itemSecrets_mutated(event: EventEnum): itemSecrets_mutated - layers_mutated(event: EventEnum): layers_mutated items_files_mutated(event: EventEnum): items_files_mutated items_items_mutated(event: EventEnum): items_items_mutated items_tags_mutated(event: EventEnum): items_tags_mutated @@ -1798,6 +1798,7 @@ type layers { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] maps_func: count_functions notifications(filter: layers_directus_users_1_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_directus_users_1] @@ -1809,6 +1810,12 @@ type layers_aggregated { countAll: Int count: layers_aggregated_count countDistinct: layers_aggregated_count + avg: layers_aggregated_fields + sum: layers_aggregated_fields + avgDistinct: layers_aggregated_fields + sumDistinct: layers_aggregated_fields + min: layers_aggregated_fields + max: layers_aggregated_fields } type layers_aggregated_count { @@ -1828,10 +1835,15 @@ type layers_aggregated_count { onlyOnePerOwner: Int public_edit_items: Int userProfileLayer: Int + sort: Int maps: Int notifications: Int } +type layers_aggregated_fields { + sort: Float +} + type layers_directus_users_1 { directus_users_id(filter: directus_users_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_users id: ID! @@ -2694,6 +2706,7 @@ type version_layers { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps: JSON notifications: JSON } @@ -3280,6 +3293,7 @@ input create_layers_input { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps: [create_layers_maps_input] notifications: [create_layers_directus_users_1_input] } @@ -4269,6 +4283,7 @@ input layers_filter { onlyOnePerOwner: boolean_filter_operators public_edit_items: boolean_filter_operators userProfileLayer: boolean_filter_operators + sort: number_filter_operators maps: layers_maps_quantifier_filter maps_func: count_function_filter_operators notifications: layers_directus_users_1_quantifier_filter @@ -4872,6 +4887,7 @@ input update_layers_input { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps: [update_layers_maps_input] notifications: [update_layers_directus_users_1_input] } diff --git a/backend/directus-config/specs/openapi.json b/backend/directus-config/specs/openapi.json index 02bacd82..7508211b 100644 --- a/backend/directus-config/specs/openapi.json +++ b/backend/directus-config/specs/openapi.json @@ -9067,6 +9067,395 @@ ] } }, + "/items/layers": { + "post": { + "summary": "Create an Item", + "description": "Create a new layers item.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "createItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Meta" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + }, + { + "$ref": "#/components/schemas/ItemsLayers" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "get": { + "summary": "List Items", + "description": "List the layers items.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "readItemsLayers", + "security": [ + { + "Auth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + }, + "meta": { + "$ref": "#/components/schemas/x-metadata" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "patch": { + "summary": "Update Multiple Items", + "description": "Update multiple layers items at the same time.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "updateItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + }, + { + "$ref": "#/components/schemas/ItemsLayers" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Multiple Items", + "description": "Delete multiple existing layers items.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "deleteItemsLayers", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + }, + "parameters": [] + } + }, + "/items/layers/{id}": { + "get": { + "summary": "Retrieve an Item", + "description": "Retrieve a single layers item by unique identifier.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "readSingleItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Version" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "patch": { + "summary": "Update an Item", + "description": "Update an existing layers item.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "updateSingleItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "delete": { + "summary": "Delete an Item", + "description": "Delete an existing layers item.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "deleteSingleItemsLayers", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + }, + "parameters": [ + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ] + } + }, "/items/attestations": { "post": { "summary": "Create an Item", @@ -14124,395 +14513,6 @@ ] } }, - "/items/layers": { - "post": { - "summary": "Create an Item", - "description": "Create a new layers item.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "createItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Meta" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - }, - { - "$ref": "#/components/schemas/ItemsLayers" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "get": { - "summary": "List Items", - "description": "List the layers items.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "readItemsLayers", - "security": [ - { - "Auth": [] - } - ], - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - }, - "meta": { - "$ref": "#/components/schemas/x-metadata" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "patch": { - "summary": "Update Multiple Items", - "description": "Update multiple layers items at the same time.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "updateItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - }, - { - "$ref": "#/components/schemas/ItemsLayers" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Multiple Items", - "description": "Delete multiple existing layers items.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "deleteItemsLayers", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - }, - "parameters": [] - } - }, - "/items/layers/{id}": { - "get": { - "summary": "Retrieve an Item", - "description": "Retrieve a single layers item by unique identifier.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "readSingleItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Version" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "patch": { - "summary": "Update an Item", - "description": "Update an existing layers item.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "updateSingleItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "delete": { - "summary": "Delete an Item", - "description": "Delete an existing layers item.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "deleteSingleItemsLayers", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - }, - "parameters": [ - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ] - } - }, "/items/items_files": { "post": { "summary": "Create an Item", @@ -21266,6 +21266,10 @@ "name": "ItemsOceannomadsProfiles", "x-collection": "oceannomads_profiles" }, + { + "name": "ItemsLayers", + "x-collection": "layers" + }, { "name": "ItemsAttestations", "x-collection": "attestations" @@ -21318,10 +21322,6 @@ "name": "ItemsItemSecrets", "x-collection": "itemSecrets" }, - { - "name": "ItemsLayers", - "x-collection": "layers" - }, { "name": "ItemsItemsFiles", "x-collection": "items_files" @@ -23439,6 +23439,142 @@ "id" ] }, + "ItemsLayers": { + "type": "object", + "properties": { + "id": { + "nullable": false, + "type": "string", + "format": "uuid" + }, + "indexIcon": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "index_plus_button": { + "nullable": true, + "type": "boolean" + }, + "itemType": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/ItemsTypes" + } + ] + }, + "item_presets": { + "nullable": true + }, + "listed": { + "nullable": true, + "type": "boolean" + }, + "markerDefaultColor2": { + "nullable": true, + "type": "string" + }, + "markerIcon": { + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + ] + }, + "markerShape": { + "nullable": true, + "type": "string" + }, + "menuColor": { + "nullable": true, + "type": "string" + }, + "menuIcon": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "menuText": { + "nullable": true, + "type": "string" + }, + "name": { + "nullable": true, + "type": "string" + }, + "onlyOnePerOwner": { + "nullable": true, + "type": "boolean" + }, + "public_edit_items": { + "nullable": true, + "type": "boolean" + }, + "userProfileLayer": { + "nullable": true, + "type": "boolean" + }, + "sort": { + "nullable": true, + "type": "integer" + }, + "maps": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/ItemsLayersMaps" + } + ] + } + }, + "notifications": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/ItemsLayersDirectusUsers1" + } + ] + } + } + }, + "x-collection": "layers", + "required": [ + "id" + ] + }, "ItemsAttestations": { "type": "object", "properties": { @@ -24277,138 +24413,6 @@ "secret" ] }, - "ItemsLayers": { - "type": "object", - "properties": { - "id": { - "nullable": false, - "type": "string", - "format": "uuid" - }, - "indexIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, - "index_plus_button": { - "nullable": true, - "type": "boolean" - }, - "itemType": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/ItemsTypes" - } - ] - }, - "item_presets": { - "nullable": true - }, - "listed": { - "nullable": true, - "type": "boolean" - }, - "markerDefaultColor2": { - "nullable": true, - "type": "string" - }, - "markerIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - ] - }, - "markerShape": { - "nullable": true, - "type": "string" - }, - "menuColor": { - "nullable": true, - "type": "string" - }, - "menuIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, - "menuText": { - "nullable": true, - "type": "string" - }, - "name": { - "nullable": true, - "type": "string" - }, - "onlyOnePerOwner": { - "nullable": true, - "type": "boolean" - }, - "public_edit_items": { - "nullable": true, - "type": "boolean" - }, - "userProfileLayer": { - "nullable": true, - "type": "boolean" - }, - "maps": { - "nullable": true, - "type": "array", - "items": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "#/components/schemas/ItemsLayersMaps" - } - ] - } - }, - "notifications": { - "nullable": true, - "type": "array", - "items": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "#/components/schemas/ItemsLayersDirectusUsers1" - } - ] - } - } - }, - "x-collection": "layers", - "required": [ - "id" - ] - }, "ItemsItemsFiles": { "type": "object", "properties": { diff --git a/backend/directus-config/specs/system.graphql b/backend/directus-config/specs/system.graphql index c60d1d16..c4fa5aa1 100644 --- a/backend/directus-config/specs/system.graphql +++ b/backend/directus-config/specs/system.graphql @@ -266,6 +266,7 @@ type Subscription { relations_mutated(event: EventEnum): relations_mutated oceannomads_events_mutated(event: EventEnum): oceannomads_events_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated + layers_mutated(event: EventEnum): layers_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -279,7 +280,6 @@ type Subscription { inviteLinks_mutated(event: EventEnum): inviteLinks_mutated items_mutated(event: EventEnum): items_mutated itemSecrets_mutated(event: EventEnum): itemSecrets_mutated - layers_mutated(event: EventEnum): layers_mutated items_files_mutated(event: EventEnum): items_files_mutated items_items_mutated(event: EventEnum): items_items_mutated items_tags_mutated(event: EventEnum): items_tags_mutated @@ -1967,6 +1967,7 @@ type layers { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] maps_func: count_functions notifications(filter: layers_directus_users_1_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_directus_users_1] @@ -2779,6 +2780,7 @@ input create_layers_input { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps: [create_layers_maps_input] notifications: [create_layers_directus_users_1_input] } @@ -3740,6 +3742,7 @@ input layers_filter { onlyOnePerOwner: boolean_filter_operators public_edit_items: boolean_filter_operators userProfileLayer: boolean_filter_operators + sort: number_filter_operators maps: layers_maps_quantifier_filter maps_func: count_function_filter_operators notifications: layers_directus_users_1_quantifier_filter @@ -4317,6 +4320,7 @@ input update_layers_input { onlyOnePerOwner: Boolean public_edit_items: Boolean userProfileLayer: Boolean + sort: Int maps: [update_layers_maps_input] notifications: [update_layers_directus_users_1_input] } From e9f8f6e3eaf903af719230f1a69cefc1c086ad90 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 2 Sep 2025 18:31:02 +0100 Subject: [PATCH 19/39] add marker icons, images & seeds (#348) --- .../development/directus/directus_files.json | 8 + .../directus/directus_files_marker_icon.json | 303 ++++++++++++++++++ .../directus/files/icons/bicycle.svg | 1 + .../development/directus/files/icons/boat.svg | 1 + .../development/directus/files/icons/cafe.svg | 1 + .../directus/files/icons/calendar.svg | 1 + .../development/directus/files/icons/camp.svg | 1 + .../directus/files/icons/cannabis.svg | 1 + .../directus/files/icons/circle-dot.svg | 1 + .../directus/files/icons/compass.svg | 1 + .../directus/files/icons/crosshair.svg | 1 + .../development/directus/files/icons/drum.svg | 1 + .../development/directus/files/icons/fire.svg | 1 + .../directus/files/icons/flower.svg | 1 + .../directus/files/icons/group.svg | 1 + .../directus/files/icons/house.svg | 1 + .../directus/files/icons/liebevoll.jetzt.svg | 1 + .../directus/files/icons/music.svg | 1 + .../directus/files/icons/network.svg | 1 + .../directus/files/icons/offer.svg | 1 + .../directus/files/icons/plant.svg | 1 + .../directus/files/icons/point.svg | 1 + .../directus/files/icons/puzzle.svg | 1 + .../directus/files/icons/quest.svg | 1 + .../development/directus/files/icons/shop.svg | 1 + .../directus/files/icons/staff-snake.svg | 1 + .../development/directus/files/icons/star.svg | 1 + .../directus/files/icons/steps.svg | 1 + .../directus/files/icons/suitecase.svg | 1 + .../development/directus/files/icons/tree.svg | 1 + .../development/directus/files/icons/user.svg | 1 + .../development/directus/marker_icons.json | 187 +++++++++++ 32 files changed, 527 insertions(+) create mode 100644 backend/directus-config/seeds/development/directus/directus_files_marker_icon.json create mode 100644 backend/directus-config/seeds/development/directus/files/icons/bicycle.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/boat.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/cafe.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/calendar.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/camp.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/cannabis.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/circle-dot.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/compass.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/crosshair.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/drum.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/fire.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/flower.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/group.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/house.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/liebevoll.jetzt.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/music.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/network.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/offer.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/plant.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/point.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/puzzle.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/quest.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/shop.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/staff-snake.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/star.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/steps.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/suitecase.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/tree.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/user.svg create mode 100644 backend/directus-config/seeds/development/directus/marker_icons.json diff --git a/backend/directus-config/seeds/development/directus/directus_files.json b/backend/directus-config/seeds/development/directus/directus_files.json index 7b23b240..7b826c39 100644 --- a/backend/directus-config/seeds/development/directus/directus_files.json +++ b/backend/directus-config/seeds/development/directus/directus_files.json @@ -1,5 +1,13 @@ { "collection": "directus_files", + "meta": { + "insert_order": 1, + "create": true, + "update": true, + "delete": true, + "preserve_ids": false, + "ignore_on_update": [] + }, "data": [ { "_sync_id": "utopia-logo", diff --git a/backend/directus-config/seeds/development/directus/directus_files_marker_icon.json b/backend/directus-config/seeds/development/directus/directus_files_marker_icon.json new file mode 100644 index 00000000..aa1de642 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/directus_files_marker_icon.json @@ -0,0 +1,303 @@ +{ + "collection": "directus_files", + "meta": { + "insert_order": 2, + "create": true, + "update": true, + "delete": true, + "preserve_ids": false, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "bicycle", + "_file_path": "./files/icons/bicycle.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "bicycle.svg", + "title": "bicycle", + "tags": [], + "description": "bicycle" + }, + { + "_sync_id": "boat", + "_file_path": "./files/icons/boat.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "boat.svg", + "title": "boat", + "tags": [], + "description": "boat" + }, + { + "_sync_id": "cafe", + "_file_path": "./files/icons/cafe.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "cafe.svg", + "title": "cafe", + "tags": [], + "description": "cafe" + }, + { + "_sync_id": "calendar", + "_file_path": "./files/icons/calendar.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "calendar.svg", + "title": "calendar", + "tags": [], + "description": "calendar" + }, + { + "_sync_id": "camp", + "_file_path": "./files/icons/camp.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "camp.svg", + "title": "camp", + "tags": [], + "description": "camp" + }, + { + "_sync_id": "cannabis", + "_file_path": "./files/icons/cannabis.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "cannabis.svg", + "title": "cannabis", + "tags": [], + "description": "cannabis" + }, + { + "_sync_id": "circle-dot", + "_file_path": "./files/icons/circle-dot.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "circle-dot.svg", + "title": "circle-dot", + "tags": [], + "description": "circle-dot" + }, + { + "_sync_id": "compass", + "_file_path": "./files/icons/compass.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "compass.svg", + "title": "compass", + "tags": [], + "description": "compass" + }, + { + "_sync_id": "crosshair", + "_file_path": "./files/icons/crosshair.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "crosshair.svg", + "title": "crosshair", + "tags": [], + "description": "crosshair" + }, + { + "_sync_id": "drum", + "_file_path": "./files/icons/drum.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "drum.svg", + "title": "drum", + "tags": [], + "description": "drum" + }, + { + "_sync_id": "fire", + "_file_path": "./files/icons/fire.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "fire.svg", + "title": "fire", + "tags": [], + "description": "fire" + }, + { + "_sync_id": "flower", + "_file_path": "./files/icons/flower.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "flower.svg", + "title": "flower", + "tags": [], + "description": "flower" + }, + { + "_sync_id": "group", + "_file_path": "./files/icons/group.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "group.svg", + "title": "group", + "tags": [], + "description": "group" + }, + { + "_sync_id": "house", + "_file_path": "./files/icons/house.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "house.svg", + "title": "house", + "tags": [], + "description": "house" + }, + { + "_sync_id": "liebevoll.jetzt", + "_file_path": "./files/icons/liebevoll.jetzt.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "liebevoll.jetzt.svg", + "title": "liebevoll.jetzt", + "tags": [], + "description": "liebevoll.jetzt" + }, + { + "_sync_id": "music", + "_file_path": "./files/icons/music.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "music.svg", + "title": "music", + "tags": [], + "description": "music" + }, + { + "_sync_id": "network", + "_file_path": "./files/icons/network.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "network.svg", + "title": "network", + "tags": [], + "description": "network" + }, + { + "_sync_id": "offer", + "_file_path": "./files/icons/offer.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "offer.svg", + "title": "offer", + "tags": [], + "description": "offer" + }, + { + "_sync_id": "plant", + "_file_path": "./files/icons/plant.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "plant.svg", + "title": "plant", + "tags": [], + "description": "plant" + }, + { + "_sync_id": "point", + "_file_path": "./files/icons/point.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "point.svg", + "title": "point", + "tags": [], + "description": "point" + }, + { + "_sync_id": "puzzle", + "_file_path": "./files/icons/puzzle.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "puzzle.svg", + "title": "puzzle", + "tags": [], + "description": "puzzle" + }, + { + "_sync_id": "quest", + "_file_path": "./files/icons/quest.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "quest.svg", + "title": "quest", + "tags": [], + "description": "quest" + }, + { + "_sync_id": "shop", + "_file_path": "./files/icons/shop.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "shop.svg", + "title": "shop", + "tags": [], + "description": "shop" + }, + { + "_sync_id": "staff-snake", + "_file_path": "./files/icons/staff-snake.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "staff-snake.svg", + "title": "staff-snake", + "tags": [], + "description": "staff-snake" + }, + { + "_sync_id": "star", + "_file_path": "./files/icons/star.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "star.svg", + "title": "star", + "tags": [], + "description": "star" + }, + { + "_sync_id": "steps", + "_file_path": "./files/icons/steps.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "steps.svg", + "title": "steps", + "tags": [], + "description": "steps" + }, + { + "_sync_id": "suitecase", + "_file_path": "./files/icons/suitecase.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "suitecase.svg", + "title": "suitecase", + "tags": [], + "description": "suitecase" + }, + { + "_sync_id": "tree", + "_file_path": "./files/icons/tree.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "tree.svg", + "title": "tree", + "tags": [], + "description": "tree" + }, + { + "_sync_id": "user", + "_file_path": "./files/icons/user.svg", + "storage": "local", + "folder": "889a110a-a117-40fa-b091-5c5a2766563f", + "filename_download": "user.svg", + "title": "user", + "tags": [], + "description": "user" + } + ] +} diff --git a/backend/directus-config/seeds/development/directus/files/icons/bicycle.svg b/backend/directus-config/seeds/development/directus/files/icons/bicycle.svg new file mode 100644 index 00000000..af2b425a --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/bicycle.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/boat.svg b/backend/directus-config/seeds/development/directus/files/icons/boat.svg new file mode 100644 index 00000000..b14fafe6 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/boat.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/cafe.svg b/backend/directus-config/seeds/development/directus/files/icons/cafe.svg new file mode 100644 index 00000000..4c490545 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/cafe.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/calendar.svg b/backend/directus-config/seeds/development/directus/files/icons/calendar.svg new file mode 100644 index 00000000..19a6e750 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/calendar.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/camp.svg b/backend/directus-config/seeds/development/directus/files/icons/camp.svg new file mode 100644 index 00000000..48e7c73b --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/camp.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/cannabis.svg b/backend/directus-config/seeds/development/directus/files/icons/cannabis.svg new file mode 100644 index 00000000..d848ad56 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/cannabis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/circle-dot.svg b/backend/directus-config/seeds/development/directus/files/icons/circle-dot.svg new file mode 100644 index 00000000..ae1508a6 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/circle-dot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/compass.svg b/backend/directus-config/seeds/development/directus/files/icons/compass.svg new file mode 100644 index 00000000..845282c4 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/compass.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/crosshair.svg b/backend/directus-config/seeds/development/directus/files/icons/crosshair.svg new file mode 100644 index 00000000..5814583c --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/crosshair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/drum.svg b/backend/directus-config/seeds/development/directus/files/icons/drum.svg new file mode 100644 index 00000000..5bd825d3 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/drum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/fire.svg b/backend/directus-config/seeds/development/directus/files/icons/fire.svg new file mode 100644 index 00000000..b5c1fcfc --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/fire.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/flower.svg b/backend/directus-config/seeds/development/directus/files/icons/flower.svg new file mode 100644 index 00000000..f230fce2 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/flower.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/group.svg b/backend/directus-config/seeds/development/directus/files/icons/group.svg new file mode 100644 index 00000000..e2d2d44a --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/group.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/house.svg b/backend/directus-config/seeds/development/directus/files/icons/house.svg new file mode 100644 index 00000000..5f11c5ae --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/house.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/liebevoll.jetzt.svg b/backend/directus-config/seeds/development/directus/files/icons/liebevoll.jetzt.svg new file mode 100644 index 00000000..e94d6151 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/liebevoll.jetzt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/music.svg b/backend/directus-config/seeds/development/directus/files/icons/music.svg new file mode 100644 index 00000000..b36cefe8 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/music.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/network.svg b/backend/directus-config/seeds/development/directus/files/icons/network.svg new file mode 100644 index 00000000..26afeaaf --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/offer.svg b/backend/directus-config/seeds/development/directus/files/icons/offer.svg new file mode 100644 index 00000000..e835f774 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/offer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/plant.svg b/backend/directus-config/seeds/development/directus/files/icons/plant.svg new file mode 100644 index 00000000..382aac64 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/plant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/point.svg b/backend/directus-config/seeds/development/directus/files/icons/point.svg new file mode 100644 index 00000000..884572dd --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/point.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/puzzle.svg b/backend/directus-config/seeds/development/directus/files/icons/puzzle.svg new file mode 100644 index 00000000..4cf61e7f --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/puzzle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/quest.svg b/backend/directus-config/seeds/development/directus/files/icons/quest.svg new file mode 100644 index 00000000..b8aedc48 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/quest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/shop.svg b/backend/directus-config/seeds/development/directus/files/icons/shop.svg new file mode 100644 index 00000000..d7c1ae56 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/shop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/staff-snake.svg b/backend/directus-config/seeds/development/directus/files/icons/staff-snake.svg new file mode 100644 index 00000000..94d42f40 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/staff-snake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/star.svg b/backend/directus-config/seeds/development/directus/files/icons/star.svg new file mode 100644 index 00000000..fbaf3412 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/star.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/steps.svg b/backend/directus-config/seeds/development/directus/files/icons/steps.svg new file mode 100644 index 00000000..9d5824f1 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/steps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/suitecase.svg b/backend/directus-config/seeds/development/directus/files/icons/suitecase.svg new file mode 100644 index 00000000..7bc0ad5e --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/suitecase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/tree.svg b/backend/directus-config/seeds/development/directus/files/icons/tree.svg new file mode 100644 index 00000000..9f148562 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/files/icons/user.svg b/backend/directus-config/seeds/development/directus/files/icons/user.svg new file mode 100644 index 00000000..cbef53e2 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/marker_icons.json b/backend/directus-config/seeds/development/directus/marker_icons.json new file mode 100644 index 00000000..0fd0bf5c --- /dev/null +++ b/backend/directus-config/seeds/development/directus/marker_icons.json @@ -0,0 +1,187 @@ +{ + "collection": "marker_icons", + "meta": { + "insert_order": 1, + "create": true, + "update": true, + "delete": true, + "preserve_ids": false, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "bicycle", + "id": "bicycle", + "size": "20.00000", + "image": "bicycle" + }, + { + "_sync_id": "boat", + "id": "boat", + "size": "18.00000", + "image": "boat" + }, + { + "_sync_id": "cafe", + "id": "cafe", + "size": "18.00000", + "image": "cafe" + }, + { + "_sync_id": "calendar", + "id": "calendar", + "size": "14.00000", + "image": "calendar" + }, + { + "_sync_id": "camp", + "id": "camp", + "size": "18.00000", + "image": "camp" + }, + { + "_sync_id": "cannabis", + "id": "cannabis", + "size": "18.00000", + "image": "cannabis" + }, + { + "_sync_id": "circle-dot", + "id": "circle-dot", + "size": "18.00000", + "image": "circle-dot" + }, + { + "_sync_id": "compass", + "id": "compass", + "size": "18.00000", + "image": "compass" + }, + { + "_sync_id": "crosshair", + "id": "crosshair", + "size": "18.00000", + "image": "crosshair" + }, + { + "_sync_id": "drum", + "id": "drum", + "size": "20.00000", + "image": "drum" + }, + { + "_sync_id": "fire", + "id": "fire", + "size": "12.00000", + "image": "fire" + }, + { + "_sync_id": "flower", + "id": "flower", + "size": "18.00000", + "image": "flower" + }, + { + "_sync_id": "group", + "id": "group", + "size": "18.00000", + "image": "group" + }, + { + "_sync_id": "house", + "id": "house", + "size": "16.00000", + "image": "house" + }, + { + "_sync_id": "liebevoll.jetzt", + "id": "liebevoll.jetzt", + "size": "16.00000", + "image": "liebevoll.jetzt" + }, + { + "_sync_id": "music", + "id": "music", + "size": "12.00000", + "image": "music" + }, + { + "_sync_id": "network", + "id": "network", + "size": "18.00000", + "image": "network" + }, + { + "_sync_id": "offer", + "id": "offer", + "size": "16.00000", + "image": "offer" + }, + { + "_sync_id": "plant", + "id": "plant", + "size": "18.00000", + "image": "plant" + }, + { + "_sync_id": "point", + "id": "point", + "size": "12.00000", + "image": "point" + }, + { + "_sync_id": "puzzle", + "id": "puzzle", + "size": "18.00000", + "image": "puzzle" + }, + { + "_sync_id": "quest", + "id": "quest", + "size": "14.00000", + "image": "quest" + }, + { + "_sync_id": "shop", + "id": "shop", + "size": "18.00000", + "image": "shop" + }, + { + "_sync_id": "staff-snake", + "id": "staff-snake", + "size": "12.00000", + "image": "staff-snake" + }, + { + "_sync_id": "star", + "id": "star", + "size": "18.00000", + "image": "star" + }, + { + "_sync_id": "steps", + "id": "steps", + "size": "18.00000", + "image": "steps" + }, + { + "_sync_id": "suitecase", + "id": "suitecase", + "size": "18.00000", + "image": "suitecase" + }, + { + "_sync_id": "tree", + "id": "tree", + "size": "18.00000", + "image": "tree" + }, + { + "_sync_id": "user", + "id": "user", + "size": "18.00000", + "image": "user" + } + ] +} From 31eb3ed000ebf636e11becf8c2c2f07a62e32212 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 3 Sep 2025 14:03:58 +0100 Subject: [PATCH 20/39] feat(backend): item seeds (#349) * add marker icons, images & seeds * added sample items to the development environment Co-authored-by: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> * added ocean nomads layers * added and restructured files * added menu texts and removed place layer from sample map --------- Co-authored-by: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Co-authored-by: Anton Tranelis --- .../directus-config/collections/folders.json | 46 +------ .../development/directus/directus_files.json | 10 ++ .../directus_files_marker_outline.json | 63 ++++++++++ ....json => directus_files_marker_solid.json} | 116 ++++++++--------- .../directus/files/icons/outline/boat.svg | 1 + .../directus/files/icons/outline/calendar.svg | 3 + .../directus/files/icons/outline/house.svg | 1 + .../directus/files/icons/outline/map-pin.svg | 4 + .../directus/files/icons/outline/users.svg | 3 + .../files/icons/{ => solid}/bicycle.svg | 0 .../directus/files/icons/{ => solid}/boat.svg | 0 .../directus/files/icons/{ => solid}/cafe.svg | 0 .../files/icons/{ => solid}/calendar.svg | 0 .../directus/files/icons/{ => solid}/camp.svg | 0 .../files/icons/{ => solid}/cannabis.svg | 0 .../files/icons/{ => solid}/circle-dot.svg | 0 .../files/icons/{ => solid}/compass.svg | 0 .../files/icons/{ => solid}/crosshair.svg | 0 .../directus/files/icons/{ => solid}/drum.svg | 0 .../directus/files/icons/{ => solid}/fire.svg | 0 .../files/icons/{ => solid}/flower.svg | 0 .../files/icons/{ => solid}/group.svg | 0 .../files/icons/{ => solid}/house.svg | 0 .../icons/{ => solid}/liebevoll.jetzt.svg | 0 .../files/icons/{ => solid}/music.svg | 0 .../files/icons/{ => solid}/network.svg | 0 .../files/icons/{ => solid}/offer.svg | 0 .../files/icons/{ => solid}/plant.svg | 0 .../files/icons/{ => solid}/point.svg | 0 .../files/icons/{ => solid}/puzzle.svg | 0 .../files/icons/{ => solid}/quest.svg | 0 .../directus/files/icons/{ => solid}/shop.svg | 0 .../files/icons/{ => solid}/staff-snake.svg | 0 .../directus/files/icons/{ => solid}/star.svg | 0 .../files/icons/{ => solid}/steps.svg | 0 .../files/icons/{ => solid}/suitecase.svg | 0 .../directus/files/icons/{ => solid}/tree.svg | 0 .../directus/files/icons/{ => solid}/user.svg | 0 .../development/directus/files/vessel.svg | 19 +++ .../seeds/development/directus/items.json | 95 ++++++++++++++ .../seeds/development/directus/layers.json | 104 ++++++++++++++- .../development/directus/layers_maps.json | 24 +++- .../seeds/development/directus/maps.json | 1 + .../development/directus/marker_icons.json | 118 +++++++++--------- .../seeds/development/directus/types.json | 54 +++++++- 45 files changed, 495 insertions(+), 167 deletions(-) create mode 100644 backend/directus-config/seeds/development/directus/directus_files_marker_outline.json rename backend/directus-config/seeds/development/directus/{directus_files_marker_icon.json => directus_files_marker_solid.json} (71%) create mode 100644 backend/directus-config/seeds/development/directus/files/icons/outline/boat.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/outline/calendar.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/outline/house.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/outline/map-pin.svg create mode 100644 backend/directus-config/seeds/development/directus/files/icons/outline/users.svg rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/bicycle.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/boat.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/cafe.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/calendar.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/camp.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/cannabis.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/circle-dot.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/compass.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/crosshair.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/drum.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/fire.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/flower.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/group.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/house.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/liebevoll.jetzt.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/music.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/network.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/offer.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/plant.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/point.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/puzzle.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/quest.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/shop.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/staff-snake.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/star.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/steps.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/suitecase.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/tree.svg (100%) rename backend/directus-config/seeds/development/directus/files/icons/{ => solid}/user.svg (100%) create mode 100644 backend/directus-config/seeds/development/directus/files/vessel.svg create mode 100644 backend/directus-config/seeds/development/directus/items.json diff --git a/backend/directus-config/collections/folders.json b/backend/directus-config/collections/folders.json index 2177eb4b..0a9f366b 100644 --- a/backend/directus-config/collections/folders.json +++ b/backend/directus-config/collections/folders.json @@ -1,57 +1,17 @@ [ - { - "name": "146. Friedensbaum", - "parent": "50431387-c49b-44bd-9311-911bf542163d", - "_syncId": "0b4ad883-d49f-4197-9941-24ae11f9a6eb" - }, - { - "name": "outline", - "parent": "a5d15142-dd36-4194-bee5-13ddc420a99d", - "_syncId": "0b66498d-8ee3-48fc-8fe7-72b6f86d8d0f" - }, - { - "name": "Docutopia Avatars", - "parent": null, - "_syncId": "0c7f264e-9946-4372-9e30-e4680b6cc2e2" - }, { "name": "map-logos", "parent": null, "_syncId": "27b2a288-d50a-48b7-88cd-35945503277b" }, { - "name": "fotos", - "parent": null, - "_syncId": "2daee21f-52b8-4152-88e9-ccf18169dcf0" - }, - { - "name": "item-avatars", - "parent": null, - "_syncId": "43837abb-cc52-4439-ac98-e3671cbc7773" - }, - { - "name": "Friedensbaum", - "parent": null, - "_syncId": "50431387-c49b-44bd-9311-911bf542163d" - }, - { - "name": "marker-icons", + "name": "icons-solid", "parent": null, "_syncId": "889a110a-a117-40fa-b091-5c5a2766563f" }, { - "name": "heroicons", + "name": "icons-outline", "parent": null, - "_syncId": "a5d15142-dd36-4194-bee5-13ddc420a99d" - }, - { - "name": "solid", - "parent": "a5d15142-dd36-4194-bee5-13ddc420a99d", - "_syncId": "a97106b4-218b-45df-adc9-36184886e285" - }, - { - "name": "Würdekompass", - "parent": null, - "_syncId": "f612af27-e7dd-43f0-bde9-2f960f8897be" + "_syncId": "f255d3a7-8ecc-4ee0-b584-dee753317415" } ] diff --git a/backend/directus-config/seeds/development/directus/directus_files.json b/backend/directus-config/seeds/development/directus/directus_files.json index 7b826c39..1b3b2fa3 100644 --- a/backend/directus-config/seeds/development/directus/directus_files.json +++ b/backend/directus-config/seeds/development/directus/directus_files.json @@ -17,6 +17,16 @@ "title": "Utopia Logo", "tags": [], "description": "Utopia Logo" + }, + { + "_sync_id": "vessel-svg", + "_file_path": "./files/vessel.svg", + "storage": "local", + "folder": "27b2a288-d50a-48b7-88cd-35945503277b", + "filename_download": "vessel.svg", + "title": "Vessel SVG", + "tags": [], + "description": "Vessel SVG" } ] } \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/directus_files_marker_outline.json b/backend/directus-config/seeds/development/directus/directus_files_marker_outline.json new file mode 100644 index 00000000..55820371 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/directus_files_marker_outline.json @@ -0,0 +1,63 @@ +{ + "collection": "directus_files", + "meta": { + "insert_order": 2, + "create": true, + "update": true, + "delete": true, + "preserve_ids": false, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "boat-outline", + "_file_path": "./files/icons/outline/boat.svg", + "storage": "local", + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415", + "filename_download": "boat-outline.svg", + "title": "boat outline", + "tags": [], + "description": "boat outline" + }, + { + "_sync_id": "calendar-outline", + "_file_path": "./files/icons/outline/calendar.svg", + "storage": "local", + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415", + "filename_download": "calendar-outline.svg", + "title": "calendar outline", + "tags": [], + "description": "calendar outline" + }, + { + "_sync_id": "house-outline", + "_file_path": "./files/icons/outline/house.svg", + "storage": "local", + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415", + "filename_download": "house-outline.svg", + "title": "home outline", + "tags": [], + "description": "home outline" + }, + { + "_sync_id": "users-outline", + "_file_path": "./files/icons/outline/users.svg", + "storage": "local", + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415", + "filename_download": "users-outline.svg", + "title": "users outline", + "tags": [], + "description": "users outline" + }, + { + "_sync_id": "map-pin-outline", + "_file_path": "./files/icons/outline/map-pin.svg", + "storage": "local", + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415", + "filename_download": "map-pin-outline.svg", + "title": "map pin outline", + "tags": [], + "description": "map pin outline" + } + ] +} diff --git a/backend/directus-config/seeds/development/directus/directus_files_marker_icon.json b/backend/directus-config/seeds/development/directus/directus_files_marker_solid.json similarity index 71% rename from backend/directus-config/seeds/development/directus/directus_files_marker_icon.json rename to backend/directus-config/seeds/development/directus/directus_files_marker_solid.json index aa1de642..a59ba57b 100644 --- a/backend/directus-config/seeds/development/directus/directus_files_marker_icon.json +++ b/backend/directus-config/seeds/development/directus/directus_files_marker_solid.json @@ -10,8 +10,8 @@ }, "data": [ { - "_sync_id": "bicycle", - "_file_path": "./files/icons/bicycle.svg", + "_sync_id": "bicycle-solid", + "_file_path": "./files/icons/solid/bicycle.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "bicycle.svg", @@ -20,8 +20,8 @@ "description": "bicycle" }, { - "_sync_id": "boat", - "_file_path": "./files/icons/boat.svg", + "_sync_id": "boat-solid", + "_file_path": "./files/icons/solid/boat.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "boat.svg", @@ -30,8 +30,8 @@ "description": "boat" }, { - "_sync_id": "cafe", - "_file_path": "./files/icons/cafe.svg", + "_sync_id": "cafe-solid", + "_file_path": "./files/icons/solid/cafe.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "cafe.svg", @@ -40,8 +40,8 @@ "description": "cafe" }, { - "_sync_id": "calendar", - "_file_path": "./files/icons/calendar.svg", + "_sync_id": "calendar-solid", + "_file_path": "./files/icons/solid/calendar.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "calendar.svg", @@ -50,8 +50,8 @@ "description": "calendar" }, { - "_sync_id": "camp", - "_file_path": "./files/icons/camp.svg", + "_sync_id": "camp-solid", + "_file_path": "./files/icons/solid/camp.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "camp.svg", @@ -60,8 +60,8 @@ "description": "camp" }, { - "_sync_id": "cannabis", - "_file_path": "./files/icons/cannabis.svg", + "_sync_id": "cannabis-solid", + "_file_path": "./files/icons/solid/cannabis.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "cannabis.svg", @@ -70,8 +70,8 @@ "description": "cannabis" }, { - "_sync_id": "circle-dot", - "_file_path": "./files/icons/circle-dot.svg", + "_sync_id": "circle-dot-solid", + "_file_path": "./files/icons/solid/circle-dot.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "circle-dot.svg", @@ -80,8 +80,8 @@ "description": "circle-dot" }, { - "_sync_id": "compass", - "_file_path": "./files/icons/compass.svg", + "_sync_id": "compass-solid", + "_file_path": "./files/icons/solid/compass.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "compass.svg", @@ -90,8 +90,8 @@ "description": "compass" }, { - "_sync_id": "crosshair", - "_file_path": "./files/icons/crosshair.svg", + "_sync_id": "crosshair-solid", + "_file_path": "./files/icons/solid/crosshair.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "crosshair.svg", @@ -100,8 +100,8 @@ "description": "crosshair" }, { - "_sync_id": "drum", - "_file_path": "./files/icons/drum.svg", + "_sync_id": "drum-solid", + "_file_path": "./files/icons/solid/drum.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "drum.svg", @@ -110,8 +110,8 @@ "description": "drum" }, { - "_sync_id": "fire", - "_file_path": "./files/icons/fire.svg", + "_sync_id": "fire-solid", + "_file_path": "./files/icons/solid/fire.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "fire.svg", @@ -120,8 +120,8 @@ "description": "fire" }, { - "_sync_id": "flower", - "_file_path": "./files/icons/flower.svg", + "_sync_id": "flower-solid", + "_file_path": "./files/icons/solid/flower.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "flower.svg", @@ -130,8 +130,8 @@ "description": "flower" }, { - "_sync_id": "group", - "_file_path": "./files/icons/group.svg", + "_sync_id": "group-solid", + "_file_path": "./files/icons/solid/group.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "group.svg", @@ -140,8 +140,8 @@ "description": "group" }, { - "_sync_id": "house", - "_file_path": "./files/icons/house.svg", + "_sync_id": "house-solid", + "_file_path": "./files/icons/solid/house.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "house.svg", @@ -150,8 +150,8 @@ "description": "house" }, { - "_sync_id": "liebevoll.jetzt", - "_file_path": "./files/icons/liebevoll.jetzt.svg", + "_sync_id": "liebevoll.jetzt-solid", + "_file_path": "./files/icons/solid/liebevoll.jetzt.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "liebevoll.jetzt.svg", @@ -160,8 +160,8 @@ "description": "liebevoll.jetzt" }, { - "_sync_id": "music", - "_file_path": "./files/icons/music.svg", + "_sync_id": "music-solid", + "_file_path": "./files/icons/solid/music.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "music.svg", @@ -170,8 +170,8 @@ "description": "music" }, { - "_sync_id": "network", - "_file_path": "./files/icons/network.svg", + "_sync_id": "network-solid", + "_file_path": "./files/icons/solid/network.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "network.svg", @@ -180,8 +180,8 @@ "description": "network" }, { - "_sync_id": "offer", - "_file_path": "./files/icons/offer.svg", + "_sync_id": "offer-solid", + "_file_path": "./files/icons/solid/offer.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "offer.svg", @@ -190,8 +190,8 @@ "description": "offer" }, { - "_sync_id": "plant", - "_file_path": "./files/icons/plant.svg", + "_sync_id": "plant-solid", + "_file_path": "./files/icons/solid/plant.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "plant.svg", @@ -200,8 +200,8 @@ "description": "plant" }, { - "_sync_id": "point", - "_file_path": "./files/icons/point.svg", + "_sync_id": "point-solid", + "_file_path": "./files/icons/solid/point.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "point.svg", @@ -210,8 +210,8 @@ "description": "point" }, { - "_sync_id": "puzzle", - "_file_path": "./files/icons/puzzle.svg", + "_sync_id": "puzzle-solid", + "_file_path": "./files/icons/solid/puzzle.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "puzzle.svg", @@ -220,8 +220,8 @@ "description": "puzzle" }, { - "_sync_id": "quest", - "_file_path": "./files/icons/quest.svg", + "_sync_id": "quest-solid", + "_file_path": "./files/icons/solid/quest.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "quest.svg", @@ -230,8 +230,8 @@ "description": "quest" }, { - "_sync_id": "shop", - "_file_path": "./files/icons/shop.svg", + "_sync_id": "shop-solid", + "_file_path": "./files/icons/solid/shop.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "shop.svg", @@ -240,8 +240,8 @@ "description": "shop" }, { - "_sync_id": "staff-snake", - "_file_path": "./files/icons/staff-snake.svg", + "_sync_id": "staff-snake-solid", + "_file_path": "./files/icons/solid/staff-snake.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "staff-snake.svg", @@ -250,8 +250,8 @@ "description": "staff-snake" }, { - "_sync_id": "star", - "_file_path": "./files/icons/star.svg", + "_sync_id": "star-solid", + "_file_path": "./files/icons/solid/star.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "star.svg", @@ -260,8 +260,8 @@ "description": "star" }, { - "_sync_id": "steps", - "_file_path": "./files/icons/steps.svg", + "_sync_id": "steps-solid", + "_file_path": "./files/icons/solid/steps.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "steps.svg", @@ -270,8 +270,8 @@ "description": "steps" }, { - "_sync_id": "suitecase", - "_file_path": "./files/icons/suitecase.svg", + "_sync_id": "suitecase-solid", + "_file_path": "./files/icons/solid/suitecase.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "suitecase.svg", @@ -280,8 +280,8 @@ "description": "suitecase" }, { - "_sync_id": "tree", - "_file_path": "./files/icons/tree.svg", + "_sync_id": "tree-solid", + "_file_path": "./files/icons/solid/tree.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "tree.svg", @@ -290,8 +290,8 @@ "description": "tree" }, { - "_sync_id": "user", - "_file_path": "./files/icons/user.svg", + "_sync_id": "user-solid", + "_file_path": "./files/icons/solid/user.svg", "storage": "local", "folder": "889a110a-a117-40fa-b091-5c5a2766563f", "filename_download": "user.svg", diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/boat.svg b/backend/directus-config/seeds/development/directus/files/icons/outline/boat.svg new file mode 100644 index 00000000..83583cbf --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/outline/boat.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/calendar.svg b/backend/directus-config/seeds/development/directus/files/icons/outline/calendar.svg new file mode 100644 index 00000000..820385cc --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/outline/calendar.svg @@ -0,0 +1,3 @@ + + + diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/house.svg b/backend/directus-config/seeds/development/directus/files/icons/outline/house.svg new file mode 100644 index 00000000..4e00846e --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/outline/house.svg @@ -0,0 +1 @@ + diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/map-pin.svg b/backend/directus-config/seeds/development/directus/files/icons/outline/map-pin.svg new file mode 100644 index 00000000..ee781c42 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/outline/map-pin.svg @@ -0,0 +1,4 @@ + + + + diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/users.svg b/backend/directus-config/seeds/development/directus/files/icons/outline/users.svg new file mode 100644 index 00000000..8ae27736 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/outline/users.svg @@ -0,0 +1,3 @@ + + + diff --git a/backend/directus-config/seeds/development/directus/files/icons/bicycle.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/bicycle.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/bicycle.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/bicycle.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/boat.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/boat.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/boat.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/boat.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/cafe.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/cafe.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/cafe.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/cafe.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/calendar.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/calendar.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/calendar.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/calendar.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/camp.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/camp.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/camp.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/camp.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/cannabis.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/cannabis.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/cannabis.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/cannabis.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/circle-dot.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/circle-dot.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/circle-dot.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/circle-dot.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/compass.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/compass.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/compass.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/compass.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/crosshair.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/crosshair.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/crosshair.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/crosshair.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/drum.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/drum.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/drum.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/drum.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/fire.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/fire.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/fire.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/fire.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/flower.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/flower.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/flower.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/flower.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/group.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/group.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/group.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/group.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/house.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/house.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/house.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/house.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/liebevoll.jetzt.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/liebevoll.jetzt.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/liebevoll.jetzt.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/liebevoll.jetzt.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/music.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/music.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/music.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/music.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/network.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/network.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/network.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/network.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/offer.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/offer.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/offer.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/offer.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/plant.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/plant.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/plant.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/plant.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/point.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/point.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/point.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/point.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/puzzle.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/puzzle.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/puzzle.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/puzzle.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/quest.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/quest.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/quest.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/quest.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/shop.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/shop.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/shop.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/shop.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/staff-snake.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/staff-snake.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/staff-snake.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/staff-snake.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/star.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/star.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/star.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/star.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/steps.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/steps.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/steps.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/steps.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/suitecase.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/suitecase.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/suitecase.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/suitecase.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/tree.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/tree.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/tree.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/tree.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/user.svg b/backend/directus-config/seeds/development/directus/files/icons/solid/user.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/user.svg rename to backend/directus-config/seeds/development/directus/files/icons/solid/user.svg diff --git a/backend/directus-config/seeds/development/directus/files/vessel.svg b/backend/directus-config/seeds/development/directus/files/vessel.svg new file mode 100644 index 00000000..91a500fe --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/vessel.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/items.json b/backend/directus-config/seeds/development/directus/items.json new file mode 100644 index 00000000..bd44cb0d --- /dev/null +++ b/backend/directus-config/seeds/development/directus/items.json @@ -0,0 +1,95 @@ +{ + "collection": "items", + "meta": { + "insert_order": 1, + "create": true, + "update": true, + "delete": true, + "preserve_ids": false, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "item-places-1", + "name": "Welcome to Utopia Map", + "subname" : "The opensource collaborative mapping plattform", + "text": "Check out our [GitHub](https://github.com/utopia-os/utopia-map)!", + "position": { + "type": "Point", + "coordinates": [ + 10.067625824315172, + 50.51565268622562 + ] + }, + "layer" : "layer-places" + }, + { + "_sync_id": "item-event-1", + "name": "Some Event", + "subname" : "The opensource collaborative mapping plattform", + "text": "Check out our [GitHub](https://github.com/utopia-os/utopia-map)!", + "position": { + "type": "Point", + "coordinates": [ + 11.067625824315172, + 51.51565268622562 + ] + }, + "layer" : "layer-events", + "start": "2025-08-14T12:00:00", + "end": "2027-06-25T12:00:00" + }, + { + "_sync_id": "item-nomad-location-1", + "name": "Anton Tranelis", + "text": "bla blab ...", + "position": { + "type": "Point", + "coordinates": [ + 6.67625824315172, + 51.41565268622562 + ] + }, + "layer" : "layer-nomads_location" + }, + { + "_sync_id": "item-nomad-base-1", + "name": "Anton Tranelis", + "text": "bla blab ...", + "position": { + "type": "Point", + "coordinates": [ + 9.67625824315172, + 48.41565268622562 + ] + }, + "layer" : "layer-nomads_base" + }, + { + "_sync_id": "item-vessel-1", + "name": "Vessel XY", + "text": "shipping the sea", + "position": { + "type": "Point", + "coordinates": [ + -2.67625824315172, + 48.61565268622562 + ] + }, + "layer" : "layer-vessels" + }, + { + "_sync_id": "item-basecamp-1", + "name": "Basecamp XY", + "text": "come and join our camp", + "position": { + "type": "Point", + "coordinates": [ + 1.6007423400878908, + 50.184428095190555 + ] + }, + "layer" : "layer-basecamps" + } + ] +} \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/layers.json b/backend/directus-config/seeds/development/directus/layers.json index 22512571..6fc73da9 100644 --- a/backend/directus-config/seeds/development/directus/layers.json +++ b/backend/directus-config/seeds/development/directus/layers.json @@ -12,15 +12,115 @@ { "_sync_id": "layer-places", "name": "Places", - "itemType": "type-test", + "itemType": "type-simple", "userProfileLayer": false, + "indexIcon": "map-pin-outline", "menuColor": "#2ECDA7", + "menuIcon": "point-solid", + "menuText": "Add new Place", + "markerShape" : "circle", "markerDefaultColor2": null, "onlyOnePerOwner": false, "index_plus_button": true, "public_edit_items": false, "listed": true, - "item_presets": null + "item_presets": null, + "sort": 1 + }, + { + "_sync_id": "layer-events", + "name": "Events", + "itemType": "type-event", + "userProfileLayer": false, + "indexIcon": "calendar-outline", + "menuColor": "#6644FF", + "menuIcon": "calendar-solid", + "menuText": "Add new Event", + "markerIcon" : "marker-calendar", + "markerShape" : "square", + "markerDefaultColor2": null, + "onlyOnePerOwner": false, + "index_plus_button": true, + "public_edit_items": false, + "listed": true, + "item_presets": null, + "sort": 5 + }, + { + "_sync_id": "layer-nomads_location", + "name": "Nomads Location", + "itemType": "type-ON_nomads_location", + "userProfileLayer": false, + "indexIcon": "users-outline", + "menuColor": "#18222F", + "menuIcon": "user-solid", + "menuText": "Share your Location", + "markerIcon" : "marker-user", + "markerShape" : "square", + "markerDefaultColor2": null, + "onlyOnePerOwner": true, + "index_plus_button": true, + "public_edit_items": false, + "listed": true, + "item_presets": null, + "sort": 1 + }, + { + "_sync_id": "layer-nomads_base", + "name": "Nomads Base", + "itemType": "type-ON_nomads_location", + "userProfileLayer": false, + "indexIcon": "house-outline", + "menuColor": "#B05463", + "menuIcon" : "house-solid", + "menuText": "Share a new Home Base", + "markerIcon" : "marker-house", + "markerShape" : "square", + "markerDefaultColor2": null, + "onlyOnePerOwner": true, + "index_plus_button": true, + "public_edit_items": false, + "listed": true, + "item_presets": null, + "sort": 2 + }, + { + "_sync_id": "layer-vessels", + "name": "Vessels", + "itemType": "type-text-gallery", + "userProfileLayer": false, + "indexIcon": "boat-outline", + "menuColor": "#19898F", + "menuIcon" : "boat-solid", + "menuText": "Add a new Vessel", + "markerIcon" : "marker-boat", + "markerShape" : "square", + "markerDefaultColor2": null, + "onlyOnePerOwner": true, + "index_plus_button": true, + "public_edit_items": false, + "listed": true, + "item_presets": null, + "sort": 3 + }, + { + "_sync_id": "layer-basecamps", + "name": "Basecamps", + "itemType": "type-text-gallery", + "userProfileLayer": false, + "indexIcon": "camp-solid", + "menuColor": "#FFA439", + "menuIcon" : "camp-solid", + "menuText": "Add a new Basecamp", + "markerIcon" : "marker-camp", + "markerShape" : "square", + "markerDefaultColor2": null, + "onlyOnePerOwner": true, + "index_plus_button": true, + "public_edit_items": false, + "listed": true, + "item_presets": null, + "sort": 4 } ] } \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/layers_maps.json b/backend/directus-config/seeds/development/directus/layers_maps.json index 88277f6c..ff4e0e94 100644 --- a/backend/directus-config/seeds/development/directus/layers_maps.json +++ b/backend/directus-config/seeds/development/directus/layers_maps.json @@ -10,8 +10,28 @@ }, "data": [ { - "_sync_id": "layer-places-map-local-development", - "layers_id": "layer-places", + "_sync_id": "layer-events-map-local-development", + "layers_id": "layer-events", + "maps_id": "map-local-development" + }, + { + "_sync_id": "layer-nomads-location-map-local-development", + "layers_id": "layer-nomads_location", + "maps_id": "map-local-development" + }, + { + "_sync_id": "layer-nomads-base-map-local-development", + "layers_id": "layer-nomads_base", + "maps_id": "map-local-development" + }, + { + "_sync_id": "layer-vessel-map-local-development", + "layers_id": "layer-vessels", + "maps_id": "map-local-development" + }, + { + "_sync_id": "layer-basecamps-map-local-development", + "layers_id": "layer-basecamps", "maps_id": "map-local-development" } ] diff --git a/backend/directus-config/seeds/development/directus/maps.json b/backend/directus-config/seeds/development/directus/maps.json index daf24edc..d47aa6f2 100644 --- a/backend/directus-config/seeds/development/directus/maps.json +++ b/backend/directus-config/seeds/development/directus/maps.json @@ -13,6 +13,7 @@ "_sync_id": "map-local-development", "name": "Local Development", "url": "http://local.development", + "logo": "vessel-svg", "zoom": 6, "own_tag_space": true, "center": { diff --git a/backend/directus-config/seeds/development/directus/marker_icons.json b/backend/directus-config/seeds/development/directus/marker_icons.json index 0fd0bf5c..b9560131 100644 --- a/backend/directus-config/seeds/development/directus/marker_icons.json +++ b/backend/directus-config/seeds/development/directus/marker_icons.json @@ -10,178 +10,178 @@ }, "data": [ { - "_sync_id": "bicycle", + "_sync_id": "marker-bicycle", "id": "bicycle", "size": "20.00000", - "image": "bicycle" + "image": "bicycle-solid" }, { - "_sync_id": "boat", + "_sync_id": "marker-boat", "id": "boat", "size": "18.00000", - "image": "boat" + "image": "boat-solid" }, { - "_sync_id": "cafe", + "_sync_id": "marker-cafe", "id": "cafe", "size": "18.00000", - "image": "cafe" + "image": "cafe-solid" }, { - "_sync_id": "calendar", + "_sync_id": "marker-calendar", "id": "calendar", "size": "14.00000", - "image": "calendar" + "image": "calendar-solid" }, { - "_sync_id": "camp", + "_sync_id": "marker-camp", "id": "camp", "size": "18.00000", - "image": "camp" + "image": "camp-solid" }, { - "_sync_id": "cannabis", + "_sync_id": "marker-cannabis", "id": "cannabis", "size": "18.00000", - "image": "cannabis" + "image": "cannabis-solid" }, { - "_sync_id": "circle-dot", + "_sync_id": "marker-circle-dot", "id": "circle-dot", "size": "18.00000", - "image": "circle-dot" + "image": "circle-dot-solid" }, { - "_sync_id": "compass", + "_sync_id": "marker-compass", "id": "compass", "size": "18.00000", - "image": "compass" + "image": "compass-solid" }, { - "_sync_id": "crosshair", + "_sync_id": "marker-crosshair", "id": "crosshair", "size": "18.00000", - "image": "crosshair" + "image": "crosshair-solid" }, { - "_sync_id": "drum", + "_sync_id": "marker-drum", "id": "drum", "size": "20.00000", - "image": "drum" + "image": "drum-solid" }, { - "_sync_id": "fire", + "_sync_id": "marker-fire", "id": "fire", "size": "12.00000", - "image": "fire" + "image": "fire-solid" }, { - "_sync_id": "flower", + "_sync_id": "marker-flower", "id": "flower", "size": "18.00000", - "image": "flower" + "image": "flower-solid" }, { - "_sync_id": "group", + "_sync_id": "marker-group", "id": "group", "size": "18.00000", - "image": "group" + "image": "group-solid" }, { - "_sync_id": "house", + "_sync_id": "marker-house", "id": "house", "size": "16.00000", - "image": "house" + "image": "house-solid" }, { - "_sync_id": "liebevoll.jetzt", + "_sync_id": "marker-liebevoll.jetzt", "id": "liebevoll.jetzt", "size": "16.00000", - "image": "liebevoll.jetzt" + "image": "liebevoll.jetzt-solid" }, { - "_sync_id": "music", + "_sync_id": "marker-music", "id": "music", "size": "12.00000", - "image": "music" + "image": "music-solid" }, { - "_sync_id": "network", + "_sync_id": "marker-network", "id": "network", "size": "18.00000", - "image": "network" + "image": "network-solid" }, { - "_sync_id": "offer", + "_sync_id": "marker-offer", "id": "offer", "size": "16.00000", - "image": "offer" + "image": "offer-solid" }, { - "_sync_id": "plant", + "_sync_id": "marker-plant", "id": "plant", "size": "18.00000", - "image": "plant" + "image": "plant-solid" }, { - "_sync_id": "point", + "_sync_id": "marker-point", "id": "point", "size": "12.00000", - "image": "point" + "image": "point-solid" }, { - "_sync_id": "puzzle", + "_sync_id": "marker-puzzle", "id": "puzzle", "size": "18.00000", - "image": "puzzle" + "image": "puzzle-solid" }, { - "_sync_id": "quest", + "_sync_id": "marker-quest", "id": "quest", "size": "14.00000", - "image": "quest" + "image": "quest-solid" }, { - "_sync_id": "shop", + "_sync_id": "marker-shop", "id": "shop", "size": "18.00000", - "image": "shop" + "image": "shop-solid" }, { - "_sync_id": "staff-snake", + "_sync_id": "marker-staff-snake", "id": "staff-snake", "size": "12.00000", - "image": "staff-snake" + "image": "staff-snake-solid" }, { - "_sync_id": "star", + "_sync_id": "marker-star", "id": "star", "size": "18.00000", - "image": "star" + "image": "star-solid" }, { - "_sync_id": "steps", + "_sync_id": "marker-steps", "id": "steps", "size": "18.00000", - "image": "steps" + "image": "steps-solid" }, { - "_sync_id": "suitecase", + "_sync_id": "marker-suitecase", "id": "suitecase", "size": "18.00000", - "image": "suitecase" + "image": "suitecase-solid" }, { - "_sync_id": "tree", + "_sync_id": "marker-tree", "id": "tree", "size": "18.00000", - "image": "tree" + "image": "tree-solid" }, { - "_sync_id": "user", + "_sync_id": "marker-user", "id": "user", - "size": "18.00000", - "image": "user" + "size": "12.00000", + "image": "user-solid" } ] } diff --git a/backend/directus-config/seeds/development/directus/types.json b/backend/directus-config/seeds/development/directus/types.json index 81594cf3..558be287 100644 --- a/backend/directus-config/seeds/development/directus/types.json +++ b/backend/directus-config/seeds/development/directus/types.json @@ -10,13 +10,61 @@ }, "data": [ { - "_sync_id": "type-test", + "_sync_id": "type-simple", + "name": "simple", "user_created": null, "date_created": "2025-01-01T00:00:00.000Z", "user_updated": null, "date_updated": null, - "name": "test", - "template": "flex" + "template": "simple", + "show_text": true, + "show_profile_button" : true, + "show_start_end" : false + }, + { + "_sync_id": "type-event", + "name": "event", + "user_created": null, + "date_created": "2025-01-01T00:00:00.000Z", + "user_updated": null, + "date_updated": null, + "template": "tabs", + "show_text": true, + "show_profile_button" : true, + "show_start_end" : true + }, + { + "_sync_id": "type-ON_nomads_location", + "name": "ON_nomads_location", + "user_created": null, + "date_created": "2025-01-01T00:00:00.000Z", + "user_updated": null, + "date_updated": null, + "template": "flex", + "show_text": true, + "show_profile_button" : true, + "show_start_end" : false, + "custom_profile_url" : "https://community.oceannomads.co/members", + "show_text_input" : true, + "show_name_iput" : false, + "show_header_view_in_form" : true, + "small_form_edit" : true + }, + { + "_sync_id": "type-text-gallery", + "name": "text+gallery", + "user_created": null, + "date_created": "2025-01-01T00:00:00.000Z", + "user_updated": null, + "date_updated": null, + "template": "flex", + "show_text": true, + "show_profile_button" : true, + "show_start_end" : false, + "show_text_input" : false, + "show_name_iput" : true, + "show_header_view_in_form" : false, + "small_form_edit" : false } ] } From 97f50c2d9a023d2bd46a9ba5a97424b6737d3040 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 3 Sep 2025 15:13:22 +0100 Subject: [PATCH 21/39] seed text+gallery type (#351) --- .../seeds/development/directus/gallery.json | 17 ++++++++++++ .../seeds/development/directus/texts.json | 21 +++++++++++++++ .../development/manual/type-ui-components.sql | 26 +++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 backend/directus-config/seeds/development/directus/gallery.json create mode 100644 backend/directus-config/seeds/development/directus/texts.json create mode 100644 backend/directus-config/seeds/development/manual/type-ui-components.sql diff --git a/backend/directus-config/seeds/development/directus/gallery.json b/backend/directus-config/seeds/development/directus/gallery.json new file mode 100644 index 00000000..7bee5394 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/gallery.json @@ -0,0 +1,17 @@ +{ + "collection": "gallery", + "meta": { + "insert_order": 1, + "create": true, + "update": true, + "delete": true, + "preserve_ids": true, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "ea97b565-037c-4d0c-bcec-5e38793a6e7f", + "hideInputLabel": false + } + ] +} \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/texts.json b/backend/directus-config/seeds/development/directus/texts.json new file mode 100644 index 00000000..924e38ae --- /dev/null +++ b/backend/directus-config/seeds/development/directus/texts.json @@ -0,0 +1,21 @@ +{ + "collection": "texts", + "meta": { + "insert_order": 1, + "create": true, + "update": true, + "delete": true, + "preserve_ids": true, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "7c25fdf6-d5f2-425a-9a2e-03c5297d10bc", + "dataField": "text", + "heading": null, + "hideWhenEmpty": true, + "showMarkdownHint": true, + "size": "full" + } + ] +} \ No newline at end of file diff --git a/backend/directus-config/seeds/development/manual/type-ui-components.sql b/backend/directus-config/seeds/development/manual/type-ui-components.sql new file mode 100644 index 00000000..eda10195 --- /dev/null +++ b/backend/directus-config/seeds/development/manual/type-ui-components.sql @@ -0,0 +1,26 @@ +-- Type: text+gallery +INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) +SELECT + 'texts', '1', '7c25fdf6-d5f2-425a-9a2e-03c5297d10bc' , '1', types.id +FROM + public.types as types +WHERE + name = 'text+gallery' +ON CONFLICT (id) DO UPDATE + SET collection = excluded.collection, + item = excluded.item, + sort = excluded.sort, + types_id = excluded.types_id; + +INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) +SELECT + 'gallery', '2', 'ea97b565-037c-4d0c-bcec-5e38793a6e7f' , '2', types.id +FROM + public.types as types +WHERE + name = 'text+gallery' +ON CONFLICT (id) DO UPDATE + SET collection = excluded.collection, + item = excluded.item, + sort = excluded.sort, + types_id = excluded.types_id; \ No newline at end of file From 6a8352bb329be097855a852d1dc825a0694cf1fa Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 3 Sep 2025 16:46:03 +0100 Subject: [PATCH 22/39] adjust layer ids in flows for ocean nomads (#352) --- .../manual/operation-layer-ids.sql | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 backend/directus-config/seeds/development/manual/operation-layer-ids.sql diff --git a/backend/directus-config/seeds/development/manual/operation-layer-ids.sql b/backend/directus-config/seeds/development/manual/operation-layer-ids.sql new file mode 100644 index 00000000..699aa4c0 --- /dev/null +++ b/backend/directus-config/seeds/development/manual/operation-layer-ids.sql @@ -0,0 +1,29 @@ +-- Layer: Event (static: 5d12f356-349a-4463-a57c-5fc54eede6ba) +-- Flow: Ocean Nomads Create Event +UPDATE public.directus_operations +SET options = jsonb_set(options::jsonb,'{payload,layer}', to_jsonb((SELECT id FROM layers WHERE name = 'Events')), true) +WHERE options->'payload'->>'layer' = '5d12f356-349a-4463-a57c-5fc54eede6ba'; -- 2x + +-- Layer: Nomads Base (static: a546f94b-8928-4d0b-b3ca-39bd109abd34) +-- Flow: Ocean Nomads: Create Nomad +-- Flow: Ocean Nomads: Update Nomad +-- Flow: Ocean Nomads: Delete Nomad +UPDATE public.directus_operations +SET options = jsonb_set(options::jsonb,'{payload,layer}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Base')), true) +WHERE options->'payload'->>'layer' = 'a546f94b-8928-4d0b-b3ca-39bd109abd34'; -- 1x + +UPDATE public.directus_operations +SET options = jsonb_set(options::jsonb,'{query,filter,_and,0,layer,_eq}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Base')), true) +WHERE options->'query'->'filter'->'_and'->0->'layer'->>'_eq' = 'a546f94b-8928-4d0b-b3ca-39bd109abd34'; -- 2x + +-- Layer: Nomads Location (static: 1c0a440f-bdf8-43a0-80bc-2d099d69b3ca) +-- Flow: Ocean Nomads: Create Location +-- Flow: Ocean Nomads: Update Nomad +-- Flow: Ocean Nomads: Delete Nomad +UPDATE public.directus_operations +SET options = jsonb_set(options::jsonb,'{query,filter,_and,0,layer,_eq}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Location')), true) +WHERE options->'query'->'filter'->'_and'->0->'layer'->>'_eq' = '1c0a440f-bdf8-43a0-80bc-2d099d69b3ca'; -- 2x + +UPDATE public.directus_operations +SET options = jsonb_set(options::jsonb,'{filter,$trigger,payload,layer,_eq}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Location')), true) +WHERE options->'filter'->'$trigger'->'payload'->'layer'->>'_eq' = '1c0a440f-bdf8-43a0-80bc-2d099d69b3ca'; -- 1x From 98127998682f58c9f24f37f0954da606a174280d Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 3 Sep 2025 17:10:42 +0100 Subject: [PATCH 23/39] corrected flow name, activate flows via script (#353) --- backend/directus-config/collections/flows.json | 2 +- .../seeds/development/manual/activate-normad-flows.sql | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 backend/directus-config/seeds/development/manual/activate-normad-flows.sql diff --git a/backend/directus-config/collections/flows.json b/backend/directus-config/collections/flows.json index 6a25b323..83d35968 100644 --- a/backend/directus-config/collections/flows.json +++ b/backend/directus-config/collections/flows.json @@ -122,7 +122,7 @@ "_syncId": "7b978be2-605f-4061-b5b3-46f151b1b80a" }, { - "name": "Ocean Nomad: Create Nomad", + "name": "Ocean Nomads: Create Nomad", "icon": "sailing", "color": "#2ECDA7", "description": "Creates Nomads User and Home Base", diff --git a/backend/directus-config/seeds/development/manual/activate-normad-flows.sql b/backend/directus-config/seeds/development/manual/activate-normad-flows.sql new file mode 100644 index 00000000..b875f197 --- /dev/null +++ b/backend/directus-config/seeds/development/manual/activate-normad-flows.sql @@ -0,0 +1,3 @@ +UPDATE public.directus_flows +SET status = 'active' +WHERE name ~ '(Ocean Nomads: Create Nomad|Ocean Nomads: Update Nomad|Ocean Nomads: Delete Nomad|Ocean Nomads: Create Location|Ocean Nomads: Create Event)'; \ No newline at end of file From 6793a33facad23b7680e47b42ee6f57de55f7b8d Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 3 Sep 2025 17:14:53 +0100 Subject: [PATCH 24/39] delete ocean nomads specific data seeds (#354) --- .../manual/activate-normad-flows.sql | 3 -- .../manual/operation-layer-ids.sql | 29 ------------------- 2 files changed, 32 deletions(-) delete mode 100644 backend/directus-config/seeds/development/manual/activate-normad-flows.sql delete mode 100644 backend/directus-config/seeds/development/manual/operation-layer-ids.sql diff --git a/backend/directus-config/seeds/development/manual/activate-normad-flows.sql b/backend/directus-config/seeds/development/manual/activate-normad-flows.sql deleted file mode 100644 index b875f197..00000000 --- a/backend/directus-config/seeds/development/manual/activate-normad-flows.sql +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE public.directus_flows -SET status = 'active' -WHERE name ~ '(Ocean Nomads: Create Nomad|Ocean Nomads: Update Nomad|Ocean Nomads: Delete Nomad|Ocean Nomads: Create Location|Ocean Nomads: Create Event)'; \ No newline at end of file diff --git a/backend/directus-config/seeds/development/manual/operation-layer-ids.sql b/backend/directus-config/seeds/development/manual/operation-layer-ids.sql deleted file mode 100644 index 699aa4c0..00000000 --- a/backend/directus-config/seeds/development/manual/operation-layer-ids.sql +++ /dev/null @@ -1,29 +0,0 @@ --- Layer: Event (static: 5d12f356-349a-4463-a57c-5fc54eede6ba) --- Flow: Ocean Nomads Create Event -UPDATE public.directus_operations -SET options = jsonb_set(options::jsonb,'{payload,layer}', to_jsonb((SELECT id FROM layers WHERE name = 'Events')), true) -WHERE options->'payload'->>'layer' = '5d12f356-349a-4463-a57c-5fc54eede6ba'; -- 2x - --- Layer: Nomads Base (static: a546f94b-8928-4d0b-b3ca-39bd109abd34) --- Flow: Ocean Nomads: Create Nomad --- Flow: Ocean Nomads: Update Nomad --- Flow: Ocean Nomads: Delete Nomad -UPDATE public.directus_operations -SET options = jsonb_set(options::jsonb,'{payload,layer}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Base')), true) -WHERE options->'payload'->>'layer' = 'a546f94b-8928-4d0b-b3ca-39bd109abd34'; -- 1x - -UPDATE public.directus_operations -SET options = jsonb_set(options::jsonb,'{query,filter,_and,0,layer,_eq}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Base')), true) -WHERE options->'query'->'filter'->'_and'->0->'layer'->>'_eq' = 'a546f94b-8928-4d0b-b3ca-39bd109abd34'; -- 2x - --- Layer: Nomads Location (static: 1c0a440f-bdf8-43a0-80bc-2d099d69b3ca) --- Flow: Ocean Nomads: Create Location --- Flow: Ocean Nomads: Update Nomad --- Flow: Ocean Nomads: Delete Nomad -UPDATE public.directus_operations -SET options = jsonb_set(options::jsonb,'{query,filter,_and,0,layer,_eq}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Location')), true) -WHERE options->'query'->'filter'->'_and'->0->'layer'->>'_eq' = '1c0a440f-bdf8-43a0-80bc-2d099d69b3ca'; -- 2x - -UPDATE public.directus_operations -SET options = jsonb_set(options::jsonb,'{filter,$trigger,payload,layer,_eq}', to_jsonb((SELECT id FROM layers WHERE name = 'Nomads Location')), true) -WHERE options->'filter'->'$trigger'->'payload'->'layer'->>'_eq' = '1c0a440f-bdf8-43a0-80bc-2d099d69b3ca'; -- 1x From 55f9bb514b37195e3a60b0354f12ca8547874410 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Thu, 4 Sep 2025 13:01:37 +0100 Subject: [PATCH 25/39] type event seed using flex layout (#355) --- .../seeds/development/directus/gallery.json | 4 ++ .../seeds/development/directus/startEnd.json | 16 +++++++ .../seeds/development/directus/texts.json | 8 ++++ .../seeds/development/directus/types.json | 2 +- .../development/manual/type-ui-components.sql | 42 ++++++++++++++++++- 5 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 backend/directus-config/seeds/development/directus/startEnd.json diff --git a/backend/directus-config/seeds/development/directus/gallery.json b/backend/directus-config/seeds/development/directus/gallery.json index 7bee5394..1d8548fa 100644 --- a/backend/directus-config/seeds/development/directus/gallery.json +++ b/backend/directus-config/seeds/development/directus/gallery.json @@ -12,6 +12,10 @@ { "_sync_id": "ea97b565-037c-4d0c-bcec-5e38793a6e7f", "hideInputLabel": false + }, + { + "_sync_id": "b0c52d6e-b3d2-4e3b-89e2-065be324e27b", + "hideInputLabel": false } ] } \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/startEnd.json b/backend/directus-config/seeds/development/directus/startEnd.json new file mode 100644 index 00000000..a6ed6774 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/startEnd.json @@ -0,0 +1,16 @@ +{ + "collection": "startEnd", + "meta": { + "insert_order": 1, + "create": true, + "update": true, + "delete": true, + "preserve_ids": true, + "ignore_on_update": [] + }, + "data": [ + { + "_sync_id": "0b5e5f0a-76a4-407f-84ab-2fd718965909" + } + ] +} \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/texts.json b/backend/directus-config/seeds/development/directus/texts.json index 924e38ae..e5447001 100644 --- a/backend/directus-config/seeds/development/directus/texts.json +++ b/backend/directus-config/seeds/development/directus/texts.json @@ -16,6 +16,14 @@ "hideWhenEmpty": true, "showMarkdownHint": true, "size": "full" + }, + { + "_sync_id": "94f6af1d-77e5-49ed-937b-6b9addc4f8ac", + "dataField": "text", + "heading": null, + "hideWhenEmpty": true, + "showMarkdownHint": true, + "size": "full" } ] } \ No newline at end of file diff --git a/backend/directus-config/seeds/development/directus/types.json b/backend/directus-config/seeds/development/directus/types.json index 558be287..2ceb8a55 100644 --- a/backend/directus-config/seeds/development/directus/types.json +++ b/backend/directus-config/seeds/development/directus/types.json @@ -28,7 +28,7 @@ "date_created": "2025-01-01T00:00:00.000Z", "user_updated": null, "date_updated": null, - "template": "tabs", + "template": "flex", "show_text": true, "show_profile_button" : true, "show_start_end" : true diff --git a/backend/directus-config/seeds/development/manual/type-ui-components.sql b/backend/directus-config/seeds/development/manual/type-ui-components.sql index eda10195..6f0ceb69 100644 --- a/backend/directus-config/seeds/development/manual/type-ui-components.sql +++ b/backend/directus-config/seeds/development/manual/type-ui-components.sql @@ -23,4 +23,44 @@ ON CONFLICT (id) DO UPDATE SET collection = excluded.collection, item = excluded.item, sort = excluded.sort, - types_id = excluded.types_id; \ No newline at end of file + types_id = excluded.types_id; + +-- Type: event +INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) +SELECT + 'startEnd', '1', '0b5e5f0a-76a4-407f-84ab-2fd718965909' , '1', types.id +FROM + public.types as types +WHERE + name = 'event' +ON CONFLICT (id) DO UPDATE + SET collection = excluded.collection, + item = excluded.item, + sort = excluded.sort, + types_id = excluded.types_id; + +INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) +SELECT + 'texts', '2', '94f6af1d-77e5-49ed-937b-6b9addc4f8ac' , '2', types.id +FROM + public.types as types +WHERE + name = 'event' +ON CONFLICT (id) DO UPDATE + SET collection = excluded.collection, + item = excluded.item, + sort = excluded.sort, + types_id = excluded.types_id; + +INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) +SELECT + 'gallery', '3', 'b0c52d6e-b3d2-4e3b-89e2-065be324e27b' , '3', types.id +FROM + public.types as types +WHERE + name = 'event' +ON CONFLICT (id) DO UPDATE + SET collection = excluded.collection, + item = excluded.item, + sort = excluded.sort, + types_id = excluded.types_id; From f0a6710dee6ae2703557590abe27bfc0cc407e5e Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Thu, 4 Sep 2025 14:09:51 +0200 Subject: [PATCH 26/39] fix(backend): fixed oceannomads flows (#356) * fixed oceannomads flows * set ON flows to inactive --- .../collections/operations.json | 348 ++++-- backend/directus-config/specs/item.graphql | 36 +- backend/directus-config/specs/openapi.json | 1058 ++++++++--------- backend/directus-config/specs/system.graphql | 10 +- 4 files changed, 785 insertions(+), 667 deletions(-) diff --git a/backend/directus-config/collections/operations.json b/backend/directus-config/collections/operations.json index d8720e95..678b130a 100644 --- a/backend/directus-config/collections/operations.json +++ b/backend/directus-config/collections/operations.json @@ -19,6 +19,57 @@ "flow": "a78d01a4-13b3-46a4-8938-9606bf26e329", "_syncId": "b7241999-bfef-4086-bce1-b77d73323efb" }, + { + "name": "Condition", + "key": "condition_d2q1f", + "type": "condition", + "position_x": 36, + "position_y": 1, + "options": { + "filter": { + "$trigger": { + "payload": { + "location": { + "_nempty": true + } + } + } + } + }, + "resolve": "28aaa64f-7cab-4e64-a5ea-4ab7f825250a", + "reject": "aad65a35-dcb2-4e71-a27a-b7600fea06a8", + "flow": "8b79cca0-d346-4d05-8bb2-c4b3c45d0721", + "_syncId": "6325ec57-0cde-491b-b453-f69effb404e6" + }, + { + "name": "Condition", + "key": "condition_ljedr", + "type": "condition", + "position_x": 74, + "position_y": 1, + "options": { + "filter": { + "item_read_i7dz7": { + "_and": [ + { + "location": { + "_nempty": true + } + }, + { + "location": { + "_nnull": true + } + } + ] + } + } + }, + "resolve": "ef204e62-9a47-4560-a940-336bdf2f897b", + "reject": "e76cc608-589d-4758-98ee-b01346e5f22c", + "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", + "_syncId": "7e647ad3-8a87-43c6-aee3-08600f0382e0" + }, { "name": "Condition", "key": "condition_n9mpy", @@ -72,7 +123,7 @@ "$trigger": { "payload": { "layer": { - "_eq": "1c0a440f-bdf8-43a0-80bc-2d099d69b3ca" + "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" } } } @@ -329,7 +380,7 @@ "first_name": "{{$trigger.payload.first_name}} {{$trigger.payload.last_name}}" } }, - "resolve": "28aaa64f-7cab-4e64-a5ea-4ab7f825250a", + "resolve": "6325ec57-0cde-491b-b453-f69effb404e6", "reject": null, "flow": "8b79cca0-d346-4d05-8bb2-c4b3c45d0721", "_syncId": "02499c24-46a9-4d77-8a2e-1b963cb3d62c" @@ -357,27 +408,51 @@ "name": "Create Nomads Home Item", "key": "item_create_oym38", "type": "item-create", - "position_x": 56, + "position_x": 70, "position_y": 1, "options": { - "permissions": "$full", - "emitEvents": false, - "collection": "items", "payload": { "name": "{{$trigger.payload.first_name}} {{$trigger.payload.last_name}}", - "position": "{{$last.data.features[0].geometry}}", - "image_external": "{{$trigger.payload.avatar_url}}", + "layer": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5", "extended": { "external_profile_id": "{{$trigger.payload.id}}" }, - "layer": "a546f94b-8928-4d0b-b3ca-39bd109abd34" - } + "position": "{{$last.data.features[0].geometry}}", + "image_external": "{{$trigger.payload.avatar_url}}" + }, + "collection": "items", + "emitEvents": false, + "permissions": "$full" }, "resolve": "f12ba44c-69cc-40c0-a346-aafb851fe892", "reject": null, "flow": "8b79cca0-d346-4d05-8bb2-c4b3c45d0721", "_syncId": "3624ff50-c282-45db-aa01-9b8c4a75e45c" }, + { + "name": "Create Nomads Home Item", + "key": "item_create_oym38_epxyf", + "type": "item-create", + "position_x": 53, + "position_y": 18, + "options": { + "permissions": "$full", + "emitEvents": false, + "payload": { + "name": "{{$trigger.payload.first_name}} {{$trigger.payload.last_name}}", + "layer": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5", + "extended": { + "external_profile_id": "{{$trigger.payload.id}}" + }, + "image_external": "{{$trigger.payload.avatar_url}}" + }, + "collection": "items" + }, + "resolve": "fc07cebb-9577-41a2-9c1c-d2ee873b112d", + "reject": null, + "flow": "8b79cca0-d346-4d05-8bb2-c4b3c45d0721", + "_syncId": "aad65a35-dcb2-4e71-a27a-b7600fea06a8" + }, { "name": "Create Data", "key": "item_create_tsz05", @@ -385,17 +460,17 @@ "position_x": 86, "position_y": 1, "options": { - "permissions": "$trigger", - "emitEvents": false, "payload": { + "end": "{{$trigger.payload.end}}", "name": "{{$trigger.payload.title}}", "text": "{{exec_p5p4r.text}}", - "position": "{{$last.data.features[0].geometry}}", - "layer": "5d12f356-349a-4463-a57c-5fc54eede6ba", + "layer": "7c40ddfa-bc7e-46cb-9580-c8cf6b867377", "start": "{{$trigger.payload.start}}", - "end": "{{$trigger.payload.end}}" + "position": "{{$last.data.features[0].geometry}}" }, - "collection": "items" + "collection": "items", + "emitEvents": false, + "permissions": "$trigger" }, "resolve": "906b8e62-bc1b-4e69-9502-51363e868cb8", "reject": null, @@ -409,45 +484,22 @@ "position_x": 69, "position_y": 24, "options": { - "permissions": "$trigger", - "emitEvents": false, "payload": { + "end": "{{$trigger.payload.end}}", "name": "{{$trigger.payload.title}}", "text": "{{exec_p5p4r.text}}", - "layer": "5d12f356-349a-4463-a57c-5fc54eede6ba", - "start": "{{$trigger.payload.start}}", - "end": "{{$trigger.payload.end}}" + "layer": "7c40ddfa-bc7e-46cb-9580-c8cf6b867377", + "start": "{{$trigger.payload.start}}" }, - "collection": "items" + "collection": "items", + "emitEvents": false, + "permissions": "$trigger" }, "resolve": "017875a5-3736-478a-9bcc-ed473117c74d", "reject": null, "flow": "7b978be2-605f-4061-b5b3-46f151b1b80a", "_syncId": "5eb2d090-716a-405e-be6c-ca496961b5d3" }, - { - "name": "Update Data", - "key": "item_create_u15xk", - "type": "item-update", - "position_x": 74, - "position_y": 32, - "options": { - "permissions": "$trigger", - "emitEvents": false, - "payload": { - "name": "{{$last[0].first_name}} {{$last[0].last_name}}", - "image_external": "{{$last[0].avatar_url}}" - }, - "collection": "items", - "key": [ - "{{$trigger.payload.id}}" - ] - }, - "resolve": null, - "reject": null, - "flow": "77f1fc79-d0fd-4f5d-a168-50fa3948a945", - "_syncId": "f691e6cb-4305-413a-9bc9-7022dc6e5f08" - }, { "name": "Create Data", "key": "item_create_x8h5h", @@ -469,29 +521,6 @@ "flow": "cc80ec73-ecf5-4789-bee5-1127fb1a6ed4", "_syncId": "37fd6139-7518-44d3-bae5-b38c5aa132b9" }, - { - "name": "Create Data", - "key": "item_create_xb5fa", - "type": "item-create", - "position_x": 92, - "position_y": 24, - "options": { - "permissions": "$trigger", - "emitEvents": false, - "collection": "items", - "payload": { - "name": "{{item_read_gejrb[0].first_name}} {{item_read_gejrb[0].last_name}}", - "image_external": "{{item_read_gejrb[0].avatar_url}}", - "layer": "{{$trigger.payload.layer}}", - "position": "{{$trigger.payload.position}}", - "": "{{$trigger.payload.id}}" - } - }, - "resolve": null, - "reject": null, - "flow": "77f1fc79-d0fd-4f5d-a168-50fa3948a945", - "_syncId": "6614b39f-c51a-45ee-b841-cf9df914ee5c" - }, { "name": "Delete Data", "key": "item_delete_pl9gj", @@ -522,15 +551,12 @@ "position_x": 55, "position_y": 1, "options": { - "permissions": "$full", - "emitEvents": false, - "collection": "items", "query": { "filter": { "_and": [ { "layer": { - "_eq": "a546f94b-8928-4d0b-b3ca-39bd109abd34" + "_eq": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5" } }, { @@ -540,7 +566,10 @@ } ] } - } + }, + "collection": "items", + "emitEvents": false, + "permissions": "$full" }, "resolve": "dc438e50-a3a1-4d38-8b7a-7c1dd1f22166", "reject": null, @@ -556,23 +585,23 @@ "options": { "permissions": "$full", "emitEvents": false, - "collection": "items", "query": { "filter": { "_and": [ { "layer": { - "_eq": "1c0a440f-bdf8-43a0-80bc-2d099d69b3ca" + "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" } }, { "user_created": { - "_eq": "{{$last[0].id}}" + "_eq": "{{item_read_m7xes[0].id}}" } } ] } - } + }, + "collection": "items" }, "resolve": "d6eb9087-481b-407c-af0d-bc37527d0fc4", "reject": null, @@ -837,15 +866,12 @@ "position_x": 56, "position_y": 1, "options": { - "permissions": "$trigger", - "emitEvents": false, - "collection": "items", "query": { "filter": { "_and": [ { "layer": { - "_eq": "a546f94b-8928-4d0b-b3ca-39bd109abd34" + "_eq": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5" } }, { @@ -855,9 +881,12 @@ } ] } - } + }, + "collection": "items", + "emitEvents": false, + "permissions": "$trigger" }, - "resolve": "ef204e62-9a47-4560-a940-336bdf2f897b", + "resolve": "7e647ad3-8a87-43c6-aee3-08600f0382e0", "reject": null, "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", "_syncId": "31bdf2e1-23f2-41e5-b40b-8e9076065119" @@ -890,7 +919,7 @@ "name": "Set Item Ownership to Nomads User", "key": "item_update_1vgft", "type": "item-update", - "position_x": 74, + "position_x": 87, "position_y": 1, "options": { "permissions": "$full", @@ -909,25 +938,41 @@ "_syncId": "f12ba44c-69cc-40c0-a346-aafb851fe892" }, { - "name": "Update Nomads Current Location", - "key": "item_update_5eu19", + "name": "Set Item Ownership to Nomads User", + "key": "item_update_1vgft_dwftb", "type": "item-update", - "position_x": 131, - "position_y": 1, + "position_x": 70, + "position_y": 18, "options": { "permissions": "$full", "emitEvents": false, + "collection": "items", "payload": { - "name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", - "image_external": "{{item_read_i7dz7.avatar_url}}" + "user_created": "{{item_create_dj57t[0]}}" }, + "key": [ + "{{$last[0]}}" + ] + }, + "resolve": null, + "reject": null, + "flow": "8b79cca0-d346-4d05-8bb2-c4b3c45d0721", + "_syncId": "fc07cebb-9577-41a2-9c1c-d2ee873b112d" + }, + { + "name": "Update Nomads Current Location", + "key": "item_update_5eu19", + "type": "item-update", + "position_x": 146, + "position_y": 1, + "options": { "key": [], "query": { "filter": { "_and": [ { "layer": { - "_eq": "1c0a440f-bdf8-43a0-80bc-2d099d69b3ca" + "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" } }, { @@ -938,13 +983,56 @@ ] } }, - "collection": "items" + "payload": { + "name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", + "image_external": "{{item_read_i7dz7.avatar_url}}" + }, + "collection": "items", + "emitEvents": false, + "permissions": "$full" }, "resolve": null, "reject": null, "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", "_syncId": "3bb1c8b0-fae7-42b0-af07-562e4a4bf20e" }, + { + "name": "Update Nomads Current Location", + "key": "item_update_5eu19_prdze", + "type": "item-update", + "position_x": 139, + "position_y": 18, + "options": { + "key": [], + "query": { + "filter": { + "_and": [ + { + "layer": { + "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" + } + }, + { + "user_created": { + "_eq": "{{$last}}" + } + } + ] + } + }, + "payload": { + "name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", + "image_external": "{{item_read_i7dz7.avatar_url}}" + }, + "collection": "items", + "emitEvents": false, + "permissions": "$full" + }, + "resolve": null, + "reject": null, + "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", + "_syncId": "4dc368cc-6fc1-411e-b0f0-b39490c3efe0" + }, { "name": "Update Data", "key": "item_update_8nzfw", @@ -1017,7 +1105,7 @@ "name": "Update Nomads User", "key": "item_update_e3pl5", "type": "item-update", - "position_x": 111, + "position_x": 127, "position_y": 1, "options": { "permissions": "$full", @@ -1027,8 +1115,8 @@ "{{item_read_ym92c[0].id}}" ], "payload": { - "first_name": "{{$trigger.payload.first_name}} {{$trigger.payload.last_name}}", - "email": "{{$trigger.payload.email}}" + "first_name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", + "email": "{{item_read_i7dz7.email}}" } }, "resolve": "3bb1c8b0-fae7-42b0-af07-562e4a4bf20e", @@ -1036,11 +1124,34 @@ "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", "_syncId": "e7b3b7b8-c34a-4024-8aa4-d7d4687d6752" }, + { + "name": "Update Nomads User", + "key": "item_update_e3pl5_wansj", + "type": "item-update", + "position_x": 119, + "position_y": 18, + "options": { + "permissions": "$full", + "emitEvents": false, + "collection": "directus_users", + "key": [ + "{{item_read_ym92c[0].id}}" + ], + "payload": { + "first_name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", + "email": "{{item_read_i7dz7.email}}" + } + }, + "resolve": "4dc368cc-6fc1-411e-b0f0-b39490c3efe0", + "reject": null, + "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", + "_syncId": "b22755ba-4ec5-4e04-a3fe-a390a9bc75ab" + }, { "name": "Update Nomads Home", "key": "item_update_o6cn8", "type": "item-update", - "position_x": 92, + "position_x": 109, "position_y": 1, "options": { "permissions": "$full", @@ -1060,6 +1171,30 @@ "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", "_syncId": "4535f776-40c7-4e6d-8873-843822996dd5" }, + { + "name": "Update Nomads Home", + "key": "item_update_o6cn8_nitpl", + "type": "item-update", + "position_x": 99, + "position_y": 18, + "options": { + "permissions": "$full", + "emitEvents": false, + "collection": "items", + "key": [ + "{{item_read_soekq[0].id}}" + ], + "payload": { + "name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", + "image_external": "{{item_read_i7dz7.avatar_url}}", + "position": null + } + }, + "resolve": "b22755ba-4ec5-4e04-a3fe-a390a9bc75ab", + "reject": null, + "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", + "_syncId": "e76cc608-589d-4758-98ee-b01346e5f22c" + }, { "name": "Update Data", "key": "item_update_pv6i8", @@ -1272,7 +1407,7 @@ "name": "Webhook / Request URL", "key": "request_hfzgd", "type": "request", - "position_x": 74, + "position_x": 92, "position_y": 1, "options": { "method": "GET", @@ -1331,7 +1466,7 @@ "name": "Request Coordinates from Geocoder", "key": "request_sxzym", "type": "request", - "position_x": 37, + "position_x": 53, "position_y": 1, "options": { "method": "GET", @@ -1426,23 +1561,6 @@ "flow": "77f1fc79-d0fd-4f5d-a168-50fa3948a945", "_syncId": "91e39643-b58e-4629-8875-06559cfacf64" }, - { - "name": "Transform Payload", - "key": "transform_mobig", - "type": "transform", - "position_x": 73, - "position_y": 16, - "options": { - "json": { - "name": "{{$last[0].first_name}} {{$last[0].last_name}}", - "image_external": "{{$last[0].avatar_url}}" - } - }, - "resolve": null, - "reject": null, - "flow": "77f1fc79-d0fd-4f5d-a168-50fa3948a945", - "_syncId": "e51d3e1d-372d-4f43-82ed-f7fe8464507f" - }, { "name": "Trigger Send Email", "key": "trigger_4tvps", diff --git a/backend/directus-config/specs/item.graphql b/backend/directus-config/specs/item.graphql index aa925e55..cc6a25d6 100644 --- a/backend/directus-config/specs/item.graphql +++ b/backend/directus-config/specs/item.graphql @@ -15,10 +15,6 @@ type Query { oceannomads_profiles_by_id(id: ID!, version: String): oceannomads_profiles oceannomads_profiles_aggregated(groupBy: [String], filter: oceannomads_profiles_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [oceannomads_profiles_aggregated!]! oceannomads_profiles_by_version(version: String!, id: ID!): version_oceannomads_profiles - layers(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers!]! - layers_by_id(id: ID!, version: String): layers - layers_aggregated(groupBy: [String], filter: layers_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [layers_aggregated!]! - layers_by_version(version: String!, id: ID!): version_layers attestations(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [attestations!]! attestations_by_id(id: ID!, version: String): attestations attestations_aggregated(groupBy: [String], filter: attestations_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [attestations_aggregated!]! @@ -71,6 +67,10 @@ type Query { itemSecrets_by_id(id: ID!, version: String): itemSecrets itemSecrets_aggregated(groupBy: [String], filter: itemSecrets_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [itemSecrets_aggregated!]! itemSecrets_by_version(version: String!, id: ID!): version_itemSecrets + layers(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers!]! + layers_by_id(id: ID!, version: String): layers + layers_aggregated(groupBy: [String], filter: layers_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [layers_aggregated!]! + layers_by_version(version: String!, id: ID!): version_layers items_files(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [items_files!]! items_files_by_id(id: ID!, version: String): items_files items_files_aggregated(groupBy: [String], filter: items_files_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [items_files_aggregated!]! @@ -150,8 +150,6 @@ type Mutation { create_oceannomads_events_item(data: create_oceannomads_events_input!): oceannomads_events create_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_oceannomads_profiles_input!]): [oceannomads_profiles!]! create_oceannomads_profiles_item(data: create_oceannomads_profiles_input!): oceannomads_profiles - create_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_layers_input!]): [layers!]! - create_layers_item(data: create_layers_input!): layers create_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_input!]): [attestations!]! create_attestations_item(data: create_attestations_input!): attestations create_attestations_directus_users_items(filter: attestations_directus_users_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_directus_users_input!]): [attestations_directus_users!]! @@ -178,6 +176,8 @@ type Mutation { create_items_item(data: create_items_input!): items create_itemSecrets_items(filter: itemSecrets_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_itemSecrets_input!]): [itemSecrets!]! create_itemSecrets_item(data: create_itemSecrets_input!): itemSecrets + create_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_layers_input!]): [layers!]! + create_layers_item(data: create_layers_input!): layers create_items_files_items(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_items_files_input!]): [items_files!]! create_items_files_item(data: create_items_files_input!): items_files create_items_items_items(filter: items_items_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_items_items_input!]): [items_items!]! @@ -224,9 +224,6 @@ type Mutation { update_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_oceannomads_profiles_input!): [oceannomads_profiles!]! update_oceannomads_profiles_batch(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_oceannomads_profiles_input!]): [oceannomads_profiles!]! update_oceannomads_profiles_item(id: ID!, data: update_oceannomads_profiles_input!): oceannomads_profiles - update_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_layers_input!): [layers!]! - update_layers_batch(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_layers_input!]): [layers!]! - update_layers_item(id: ID!, data: update_layers_input!): layers update_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_attestations_input!): [attestations!]! update_attestations_batch(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_attestations_input!]): [attestations!]! update_attestations_item(id: ID!, data: update_attestations_input!): attestations @@ -266,6 +263,9 @@ type Mutation { update_itemSecrets_items(filter: itemSecrets_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_itemSecrets_input!): [itemSecrets!]! update_itemSecrets_batch(filter: itemSecrets_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_itemSecrets_input!]): [itemSecrets!]! update_itemSecrets_item(id: ID!, data: update_itemSecrets_input!): itemSecrets + update_layers_items(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_layers_input!): [layers!]! + update_layers_batch(filter: layers_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_layers_input!]): [layers!]! + update_layers_item(id: ID!, data: update_layers_input!): layers update_items_files_items(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_items_files_input!): [items_files!]! update_items_files_batch(filter: items_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_items_files_input!]): [items_files!]! update_items_files_item(id: ID!, data: update_items_files_input!): items_files @@ -325,8 +325,6 @@ type Mutation { delete_oceannomads_events_item(id: ID!): delete_one delete_oceannomads_profiles_items(ids: [ID]!): delete_many delete_oceannomads_profiles_item(id: ID!): delete_one - delete_layers_items(ids: [ID]!): delete_many - delete_layers_item(id: ID!): delete_one delete_attestations_items(ids: [ID]!): delete_many delete_attestations_item(id: ID!): delete_one delete_attestations_directus_users_items(ids: [ID]!): delete_many @@ -353,6 +351,8 @@ type Mutation { delete_items_item(id: ID!): delete_one delete_itemSecrets_items(ids: [ID]!): delete_many delete_itemSecrets_item(id: ID!): delete_one + delete_layers_items(ids: [ID]!): delete_many + delete_layers_item(id: ID!): delete_one delete_items_files_items(ids: [ID]!): delete_many delete_items_files_item(id: ID!): delete_one delete_items_items_items(ids: [ID]!): delete_many @@ -415,7 +415,6 @@ type Subscription { relations_mutated(event: EventEnum): relations_mutated oceannomads_events_mutated(event: EventEnum): oceannomads_events_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated - layers_mutated(event: EventEnum): layers_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -429,6 +428,7 @@ type Subscription { inviteLinks_mutated(event: EventEnum): inviteLinks_mutated items_mutated(event: EventEnum): items_mutated itemSecrets_mutated(event: EventEnum): itemSecrets_mutated + layers_mutated(event: EventEnum): layers_mutated items_files_mutated(event: EventEnum): items_files_mutated items_items_mutated(event: EventEnum): items_items_mutated items_tags_mutated(event: EventEnum): items_tags_mutated @@ -1797,8 +1797,8 @@ type layers { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] maps_func: count_functions notifications(filter: layers_directus_users_1_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_directus_users_1] @@ -1834,8 +1834,8 @@ type layers_aggregated_count { name: Int onlyOnePerOwner: Int public_edit_items: Int - userProfileLayer: Int sort: Int + userProfileLayer: Int maps: Int notifications: Int } @@ -2705,8 +2705,8 @@ type version_layers { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps: JSON notifications: JSON } @@ -3292,8 +3292,8 @@ input create_layers_input { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps: [create_layers_maps_input] notifications: [create_layers_directus_users_1_input] } @@ -4282,8 +4282,8 @@ input layers_filter { name: string_filter_operators onlyOnePerOwner: boolean_filter_operators public_edit_items: boolean_filter_operators - userProfileLayer: boolean_filter_operators sort: number_filter_operators + userProfileLayer: boolean_filter_operators maps: layers_maps_quantifier_filter maps_func: count_function_filter_operators notifications: layers_directus_users_1_quantifier_filter @@ -4886,8 +4886,8 @@ input update_layers_input { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps: [update_layers_maps_input] notifications: [update_layers_directus_users_1_input] } diff --git a/backend/directus-config/specs/openapi.json b/backend/directus-config/specs/openapi.json index 7508211b..854fe89d 100644 --- a/backend/directus-config/specs/openapi.json +++ b/backend/directus-config/specs/openapi.json @@ -9067,395 +9067,6 @@ ] } }, - "/items/layers": { - "post": { - "summary": "Create an Item", - "description": "Create a new layers item.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "createItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Meta" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - }, - { - "$ref": "#/components/schemas/ItemsLayers" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "get": { - "summary": "List Items", - "description": "List the layers items.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "readItemsLayers", - "security": [ - { - "Auth": [] - } - ], - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - }, - "meta": { - "$ref": "#/components/schemas/x-metadata" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "patch": { - "summary": "Update Multiple Items", - "description": "Update multiple layers items at the same time.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "updateItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - }, - { - "$ref": "#/components/schemas/ItemsLayers" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Multiple Items", - "description": "Delete multiple existing layers items.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "deleteItemsLayers", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - }, - "parameters": [] - } - }, - "/items/layers/{id}": { - "get": { - "summary": "Retrieve an Item", - "description": "Retrieve a single layers item by unique identifier.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "readSingleItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Version" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "patch": { - "summary": "Update an Item", - "description": "Update an existing layers item.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "updateSingleItemsLayers", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsLayers" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "delete": { - "summary": "Delete an Item", - "description": "Delete an existing layers item.", - "tags": [ - "Items", - "ItemsLayers" - ], - "operationId": "deleteSingleItemsLayers", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - }, - "parameters": [ - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ] - } - }, "/items/attestations": { "post": { "summary": "Create an Item", @@ -14513,6 +14124,395 @@ ] } }, + "/items/layers": { + "post": { + "summary": "Create an Item", + "description": "Create a new layers item.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "createItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Meta" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + }, + { + "$ref": "#/components/schemas/ItemsLayers" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "get": { + "summary": "List Items", + "description": "List the layers items.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "readItemsLayers", + "security": [ + { + "Auth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + }, + "meta": { + "$ref": "#/components/schemas/x-metadata" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "patch": { + "summary": "Update Multiple Items", + "description": "Update multiple layers items at the same time.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "updateItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + }, + { + "$ref": "#/components/schemas/ItemsLayers" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Multiple Items", + "description": "Delete multiple existing layers items.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "deleteItemsLayers", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + }, + "parameters": [] + } + }, + "/items/layers/{id}": { + "get": { + "summary": "Retrieve an Item", + "description": "Retrieve a single layers item by unique identifier.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "readSingleItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Version" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "patch": { + "summary": "Update an Item", + "description": "Update an existing layers item.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "updateSingleItemsLayers", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsLayers" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "delete": { + "summary": "Delete an Item", + "description": "Delete an existing layers item.", + "tags": [ + "Items", + "ItemsLayers" + ], + "operationId": "deleteSingleItemsLayers", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + }, + "parameters": [ + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ] + } + }, "/items/items_files": { "post": { "summary": "Create an Item", @@ -21266,10 +21266,6 @@ "name": "ItemsOceannomadsProfiles", "x-collection": "oceannomads_profiles" }, - { - "name": "ItemsLayers", - "x-collection": "layers" - }, { "name": "ItemsAttestations", "x-collection": "attestations" @@ -21322,6 +21318,10 @@ "name": "ItemsItemSecrets", "x-collection": "itemSecrets" }, + { + "name": "ItemsLayers", + "x-collection": "layers" + }, { "name": "ItemsItemsFiles", "x-collection": "items_files" @@ -23439,142 +23439,6 @@ "id" ] }, - "ItemsLayers": { - "type": "object", - "properties": { - "id": { - "nullable": false, - "type": "string", - "format": "uuid" - }, - "indexIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, - "index_plus_button": { - "nullable": true, - "type": "boolean" - }, - "itemType": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/ItemsTypes" - } - ] - }, - "item_presets": { - "nullable": true - }, - "listed": { - "nullable": true, - "type": "boolean" - }, - "markerDefaultColor2": { - "nullable": true, - "type": "string" - }, - "markerIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - ] - }, - "markerShape": { - "nullable": true, - "type": "string" - }, - "menuColor": { - "nullable": true, - "type": "string" - }, - "menuIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, - "menuText": { - "nullable": true, - "type": "string" - }, - "name": { - "nullable": true, - "type": "string" - }, - "onlyOnePerOwner": { - "nullable": true, - "type": "boolean" - }, - "public_edit_items": { - "nullable": true, - "type": "boolean" - }, - "userProfileLayer": { - "nullable": true, - "type": "boolean" - }, - "sort": { - "nullable": true, - "type": "integer" - }, - "maps": { - "nullable": true, - "type": "array", - "items": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "#/components/schemas/ItemsLayersMaps" - } - ] - } - }, - "notifications": { - "nullable": true, - "type": "array", - "items": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "#/components/schemas/ItemsLayersDirectusUsers1" - } - ] - } - } - }, - "x-collection": "layers", - "required": [ - "id" - ] - }, "ItemsAttestations": { "type": "object", "properties": { @@ -24413,6 +24277,142 @@ "secret" ] }, + "ItemsLayers": { + "type": "object", + "properties": { + "id": { + "nullable": false, + "type": "string", + "format": "uuid" + }, + "indexIcon": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "index_plus_button": { + "nullable": true, + "type": "boolean" + }, + "itemType": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/ItemsTypes" + } + ] + }, + "item_presets": { + "nullable": true + }, + "listed": { + "nullable": true, + "type": "boolean" + }, + "markerDefaultColor2": { + "nullable": true, + "type": "string" + }, + "markerIcon": { + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + ] + }, + "markerShape": { + "nullable": true, + "type": "string" + }, + "menuColor": { + "nullable": true, + "type": "string" + }, + "menuIcon": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "menuText": { + "nullable": true, + "type": "string" + }, + "name": { + "nullable": true, + "type": "string" + }, + "onlyOnePerOwner": { + "nullable": true, + "type": "boolean" + }, + "public_edit_items": { + "nullable": true, + "type": "boolean" + }, + "sort": { + "nullable": true, + "type": "integer" + }, + "userProfileLayer": { + "nullable": true, + "type": "boolean" + }, + "maps": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/ItemsLayersMaps" + } + ] + } + }, + "notifications": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/ItemsLayersDirectusUsers1" + } + ] + } + } + }, + "x-collection": "layers", + "required": [ + "id" + ] + }, "ItemsItemsFiles": { "type": "object", "properties": { diff --git a/backend/directus-config/specs/system.graphql b/backend/directus-config/specs/system.graphql index c4fa5aa1..622c6c4d 100644 --- a/backend/directus-config/specs/system.graphql +++ b/backend/directus-config/specs/system.graphql @@ -266,7 +266,6 @@ type Subscription { relations_mutated(event: EventEnum): relations_mutated oceannomads_events_mutated(event: EventEnum): oceannomads_events_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated - layers_mutated(event: EventEnum): layers_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -280,6 +279,7 @@ type Subscription { inviteLinks_mutated(event: EventEnum): inviteLinks_mutated items_mutated(event: EventEnum): items_mutated itemSecrets_mutated(event: EventEnum): itemSecrets_mutated + layers_mutated(event: EventEnum): layers_mutated items_files_mutated(event: EventEnum): items_files_mutated items_items_mutated(event: EventEnum): items_items_mutated items_tags_mutated(event: EventEnum): items_tags_mutated @@ -1966,8 +1966,8 @@ type layers { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] maps_func: count_functions notifications(filter: layers_directus_users_1_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_directus_users_1] @@ -2779,8 +2779,8 @@ input create_layers_input { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps: [create_layers_maps_input] notifications: [create_layers_directus_users_1_input] } @@ -3741,8 +3741,8 @@ input layers_filter { name: string_filter_operators onlyOnePerOwner: boolean_filter_operators public_edit_items: boolean_filter_operators - userProfileLayer: boolean_filter_operators sort: number_filter_operators + userProfileLayer: boolean_filter_operators maps: layers_maps_quantifier_filter maps_func: count_function_filter_operators notifications: layers_directus_users_1_quantifier_filter @@ -4319,8 +4319,8 @@ input update_layers_input { name: String onlyOnePerOwner: Boolean public_edit_items: Boolean - userProfileLayer: Boolean sort: Int + userProfileLayer: Boolean maps: [update_layers_maps_input] notifications: [update_layers_directus_users_1_input] } From cafffe88b4e923ec3d1ec735b57fe9a3a7ab6a38 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Thu, 4 Sep 2025 14:17:36 +0200 Subject: [PATCH 27/39] change profile button target (#357) --- app/src/pages/MapContainer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/pages/MapContainer.tsx b/app/src/pages/MapContainer.tsx index bb722d8d..db739438 100644 --- a/app/src/pages/MapContainer.tsx +++ b/app/src/pages/MapContainer.tsx @@ -121,7 +121,7 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { layer.itemType.custom_profile_url ? 'extended.external_profile_id' : 'id' } text={layer.itemType.botton_label ?? 'Profile'} - target={layer.itemType.custom_profile_url ? '_parent' : '_self'} + target={layer.itemType.custom_profile_url ? '_blank' : '_self'} /> )} {layer.itemType.show_text && } From 8ec51d449090d6fbdc0a9e0f5736394aeea43c93 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Thu, 4 Sep 2025 18:38:53 +0200 Subject: [PATCH 28/39] optimized collection views (#358) --- .../directus-config/collections/presets.json | 100 ++++++++++++++++++ .../snapshot/collections/Themes.json | 4 +- .../snapshot/collections/UI_Components.json | 2 +- .../snapshot/collections/UI_Config.json | 2 +- .../snapshot/collections/itemSecrets.json | 4 +- .../collections/layers_directus_users_1.json | 2 +- .../collections/oceannomads_events.json | 2 +- .../collections/oceannomads_profiles.json | 2 +- 8 files changed, 109 insertions(+), 9 deletions(-) diff --git a/backend/directus-config/collections/presets.json b/backend/directus-config/collections/presets.json index 2eed5804..34ab3107 100644 --- a/backend/directus-config/collections/presets.json +++ b/backend/directus-config/collections/presets.json @@ -1,4 +1,42 @@ [ + { + "bookmark": null, + "role": null, + "collection": "layers", + "search": "", + "layout": "tabular", + "layout_query": { + "tabular": { + "page": 1, + "fields": [ + "sort", + "menuColor", + "name", + "itemType.name", + "maps.maps_id.name" + ], + "sort": [ + "sort" + ] + } + }, + "layout_options": { + "tabular": { + "widths": { + "sort": 92, + "menuColor": 41.5, + "itemType.name": 235, + "maps.maps_id.name": 248 + }, + "spacing": "compact" + } + }, + "refresh_interval": null, + "filter": null, + "icon": "bookmark", + "color": null, + "_syncId": "0b2cc1ac-347b-438c-874e-6190c8ea0ef6" + }, { "bookmark": null, "role": null, @@ -24,5 +62,67 @@ "icon": "bookmark", "color": null, "_syncId": "1b452db1-8add-4a5e-948d-b380d99121c3" + }, + { + "bookmark": null, + "role": null, + "collection": "maps", + "search": null, + "layout": null, + "layout_query": { + "tabular": { + "fields": [ + "logo.$thumbnail", + "name", + "url", + "layers.layers_id.name" + ], + "page": 1 + } + }, + "layout_options": { + "tabular": { + "widths": { + "logo.$thumbnail": 77, + "name": 237, + "url": 280.5, + "layers.layers_id.name": 473 + } + } + }, + "refresh_interval": null, + "filter": null, + "icon": "bookmark", + "color": null, + "_syncId": "337b9c3e-667f-4c61-9406-4e45ca24e37e" + }, + { + "bookmark": null, + "role": null, + "collection": "types", + "search": null, + "layout": null, + "layout_query": { + "tabular": { + "page": 1, + "fields": [ + "name", + "template", + "profileTemplate.collection" + ] + } + }, + "layout_options": { + "tabular": { + "widths": { + "profileTemplate.collection": 238 + } + } + }, + "refresh_interval": null, + "filter": null, + "icon": "bookmark", + "color": null, + "_syncId": "3789cfe7-78f9-428e-9770-d8e1c5de1145" } ] diff --git a/backend/directus-config/snapshot/collections/Themes.json b/backend/directus-config/snapshot/collections/Themes.json index 3e349a4d..0b343c62 100644 --- a/backend/directus-config/snapshot/collections/Themes.json +++ b/backend/directus-config/snapshot/collections/Themes.json @@ -9,14 +9,14 @@ "collection": "Themes", "color": null, "display_template": null, - "group": null, + "group": "UI_Config", "hidden": false, "icon": null, "item_duplication_fields": null, "note": null, "preview_url": null, "singleton": false, - "sort": 21, + "sort": 3, "sort_field": null, "translations": null, "unarchive_value": null, diff --git a/backend/directus-config/snapshot/collections/UI_Components.json b/backend/directus-config/snapshot/collections/UI_Components.json index 0c8778fb..f0023ee8 100644 --- a/backend/directus-config/snapshot/collections/UI_Components.json +++ b/backend/directus-config/snapshot/collections/UI_Components.json @@ -5,7 +5,7 @@ "archive_app_filter": true, "archive_field": null, "archive_value": null, - "collapse": "open", + "collapse": "closed", "collection": "UI_Components", "color": null, "display_template": null, diff --git a/backend/directus-config/snapshot/collections/UI_Config.json b/backend/directus-config/snapshot/collections/UI_Config.json index ccb2dd53..81db8091 100644 --- a/backend/directus-config/snapshot/collections/UI_Config.json +++ b/backend/directus-config/snapshot/collections/UI_Config.json @@ -5,7 +5,7 @@ "archive_app_filter": true, "archive_field": null, "archive_value": null, - "collapse": "open", + "collapse": "closed", "collection": "UI_Config", "color": null, "display_template": null, diff --git a/backend/directus-config/snapshot/collections/itemSecrets.json b/backend/directus-config/snapshot/collections/itemSecrets.json index f5d2605c..c06cc53d 100644 --- a/backend/directus-config/snapshot/collections/itemSecrets.json +++ b/backend/directus-config/snapshot/collections/itemSecrets.json @@ -10,13 +10,13 @@ "color": null, "display_template": null, "group": null, - "hidden": false, + "hidden": true, "icon": "vpn_key", "item_duplication_fields": null, "note": null, "preview_url": null, "singleton": false, - "sort": 22, + "sort": 21, "sort_field": null, "translations": null, "unarchive_value": null, diff --git a/backend/directus-config/snapshot/collections/layers_directus_users_1.json b/backend/directus-config/snapshot/collections/layers_directus_users_1.json index 968a4f37..eeef8b8a 100644 --- a/backend/directus-config/snapshot/collections/layers_directus_users_1.json +++ b/backend/directus-config/snapshot/collections/layers_directus_users_1.json @@ -16,7 +16,7 @@ "note": null, "preview_url": null, "singleton": false, - "sort": 23, + "sort": 22, "sort_field": null, "translations": null, "unarchive_value": null, diff --git a/backend/directus-config/snapshot/collections/oceannomads_events.json b/backend/directus-config/snapshot/collections/oceannomads_events.json index f91c1fda..3803ada5 100644 --- a/backend/directus-config/snapshot/collections/oceannomads_events.json +++ b/backend/directus-config/snapshot/collections/oceannomads_events.json @@ -16,7 +16,7 @@ "note": null, "preview_url": null, "singleton": false, - "sort": null, + "sort": 23, "sort_field": null, "translations": null, "unarchive_value": null, diff --git a/backend/directus-config/snapshot/collections/oceannomads_profiles.json b/backend/directus-config/snapshot/collections/oceannomads_profiles.json index 5ea095cc..336e924b 100644 --- a/backend/directus-config/snapshot/collections/oceannomads_profiles.json +++ b/backend/directus-config/snapshot/collections/oceannomads_profiles.json @@ -16,7 +16,7 @@ "note": null, "preview_url": null, "singleton": false, - "sort": null, + "sort": 24, "sort_field": null, "translations": null, "unarchive_value": null, From 879dbf16314f535953b9e6254a609f5416ea55b8 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Fri, 5 Sep 2025 22:26:26 +0200 Subject: [PATCH 29/39] refactor(backend): simplified icon config (#359) * simplified icon config * fixed linting * fixed linting * fix linting and searchControl * adjust useSelectPosition * adjust useSelectPosition * fixed presets * removed menuIcon artefacts * fix example * adjust icon size in addButton --- app/src/App.tsx | 8 +- app/src/pages/MapContainer.tsx | 2 - .../directus-config/collections/presets.json | 101 +- .../directus/files/icons/outline/user.svg | 4 + .../development/directus/marker_icons.json | 16 +- .../snapshot/fields/layers/Add_Button.json | 32 - .../fields/layers/divider-yaul5v.json | 2 +- .../snapshot/fields/layers/listed.json | 2 +- .../snapshot/fields/layers/menuText.json | 4 +- .../fields/layers/public_edit_items.json | 2 +- .../snapshot/fields/layers/sort.json | 4 +- .../snapshot/fields/marker_icons/image.json | 4 +- .../image_outline.json} | 16 +- .../snapshot/fields/marker_icons/size.json | 4 +- .../size_outline.json} | 38 +- .../snapshot/relations/layers/indexIcon.json | 25 - .../image_outline.json} | 14 +- backend/directus-config/specs/item.graphql | 65 +- backend/directus-config/specs/openapi.json | 912 +++++++++--------- backend/directus-config/specs/system.graphql | 30 +- lib/examples/2-static-layers/src/App.tsx | 2 - lib/src/Components/Map/Layer.tsx | 3 - .../Map/Subcomponents/AddButton.tsx | 12 +- .../Controls/LocateControl.spec.tsx | 1 - .../Subcomponents/Controls/SearchControl.tsx | 28 +- .../Map/Subcomponents/SelectPosition.tsx | 2 +- .../Map/hooks/useSelectPosition.tsx | 4 +- .../Components/Profile/ItemFunctions.spec.tsx | 1 - lib/src/types/LayerProps.d.ts | 1 - lib/src/types/MarkerIcon.d.ts | 2 + 30 files changed, 690 insertions(+), 651 deletions(-) create mode 100644 backend/directus-config/seeds/development/directus/files/icons/outline/user.svg delete mode 100644 backend/directus-config/snapshot/fields/layers/Add_Button.json rename backend/directus-config/snapshot/fields/{layers/indexIcon.json => marker_icons/image_outline.json} (76%) rename backend/directus-config/snapshot/fields/{layers/menuIcon.json => marker_icons/size_outline.json} (51%) delete mode 100644 backend/directus-config/snapshot/relations/layers/indexIcon.json rename backend/directus-config/snapshot/relations/{layers/menuIcon.json => marker_icons/image_outline.json} (63%) diff --git a/app/src/App.tsx b/app/src/App.tsx index 124b9723..c46d151e 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -12,7 +12,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-call */ -import type { Tag } from 'utopia-ui' +import type { Tag, LayerProps } from 'utopia-ui' import { AppShell, @@ -111,12 +111,12 @@ function App() { layers && setLayers(layers) setLayerPageRoutes( layers - ?.filter((l: any) => l.listed) - .map((l: any) => ({ + ?.filter((l: LayerProps) => l.listed) + .map((l: LayerProps) => ({ path: '/' + l.name, // url icon: ( code.replace(/stroke=".*?"/g, 'stroke="currentColor"') diff --git a/app/src/pages/MapContainer.tsx b/app/src/pages/MapContainer.tsx index db739438..b6b454cb 100644 --- a/app/src/pages/MapContainer.tsx +++ b/app/src/pages/MapContainer.tsx @@ -23,7 +23,6 @@ import { } from 'utopia-ui' import { itemsApi } from '../api/itemsApi' -import { config } from '../config' import type { Place } from '../api/directus' import type { LayerProps } from 'utopia-ui' @@ -95,7 +94,6 @@ function MapContainer({ layers, map }: { layers: LayerProps[]; map: any }) { id={layer.id} key={layer.id} name={layer.name} - menuIcon={config.apiUrl + 'assets/' + layer.menuIcon} menuText={layer.menuText} menuColor={layer.menuColor} markerIcon={layer.markerIcon} diff --git a/backend/directus-config/collections/presets.json b/backend/directus-config/collections/presets.json index 34ab3107..fbab7234 100644 --- a/backend/directus-config/collections/presets.json +++ b/backend/directus-config/collections/presets.json @@ -1,4 +1,34 @@ [ + { + "bookmark": null, + "role": null, + "collection": "items", + "search": null, + "layout": null, + "layout_query": { + "tabular": { + "page": 1, + "fields": [ + "name", + "layer.name", + "date_created", + "date_updated", + "user_created", + "user_updated" + ] + } + }, + "layout_options": { + "tabular": { + "widths": {} + } + }, + "refresh_interval": null, + "filter": null, + "icon": "bookmark", + "color": null, + "_syncId": "053f9b93-aa94-4ad8-b64e-babb69f0ea6c" + }, { "bookmark": null, "role": null, @@ -51,7 +81,6 @@ "layout_options": { "tabular": { "widths": { - "menuIcon.$thumbnail": 32, "maps.maps_id.name": 1003.888916015625 }, "spacing": "compact" @@ -63,6 +92,36 @@ "color": null, "_syncId": "1b452db1-8add-4a5e-948d-b380d99121c3" }, + { + "bookmark": null, + "role": null, + "collection": "marker_icons", + "search": null, + "layout": null, + "layout_query": { + "tabular": { + "page": 1, + "fields": [ + "id", + "image.$thumbnail", + "size", + "image_outline.$thumbnail", + "size_outline" + ], + "limit": 500 + } + }, + "layout_options": { + "tabular": { + "widths": {} + } + }, + "refresh_interval": null, + "filter": null, + "icon": "bookmark", + "color": null, + "_syncId": "2a1656b7-d6d2-4b47-bd22-41babc8bf828" + }, { "bookmark": null, "role": null, @@ -124,5 +183,45 @@ "icon": "bookmark", "color": null, "_syncId": "3789cfe7-78f9-428e-9770-d8e1c5de1145" + }, + { + "bookmark": null, + "role": null, + "collection": "layers", + "search": "", + "layout": "tabular", + "layout_query": { + "tabular": { + "page": 1, + "fields": [ + "sort", + "markerIcon.image.$thumbnail", + "menuColor", + "name", + "itemType.name", + "maps.maps_id.name" + ], + "sort": [ + "sort" + ] + } + }, + "layout_options": { + "tabular": { + "widths": { + "sort": 91.5, + "markerIcon.image.$thumbnail": 58, + "menuColor": 65.5, + "itemType.name": 235, + "maps.maps_id.name": 248 + }, + "spacing": "compact" + } + }, + "refresh_interval": null, + "filter": null, + "icon": "bookmark", + "color": null, + "_syncId": "85c6dba0-1906-4c16-a245-4a8eab8a6855" } ] diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/user.svg b/backend/directus-config/seeds/development/directus/files/icons/outline/user.svg new file mode 100644 index 00000000..e0dd9261 --- /dev/null +++ b/backend/directus-config/seeds/development/directus/files/icons/outline/user.svg @@ -0,0 +1,4 @@ + + + + diff --git a/backend/directus-config/seeds/development/directus/marker_icons.json b/backend/directus-config/seeds/development/directus/marker_icons.json index b9560131..b168ac1c 100644 --- a/backend/directus-config/seeds/development/directus/marker_icons.json +++ b/backend/directus-config/seeds/development/directus/marker_icons.json @@ -19,7 +19,9 @@ "_sync_id": "marker-boat", "id": "boat", "size": "18.00000", - "image": "boat-solid" + "image": "boat-solid", + "size_outline": "18.00000", + "image_outline": "boat-outline" }, { "_sync_id": "marker-cafe", @@ -31,7 +33,9 @@ "_sync_id": "marker-calendar", "id": "calendar", "size": "14.00000", - "image": "calendar-solid" + "image": "calendar-solid", + "size_outline": "18.00000", + "image_outline": "calendar-outline" }, { "_sync_id": "marker-camp", @@ -91,7 +95,9 @@ "_sync_id": "marker-house", "id": "house", "size": "16.00000", - "image": "house-solid" + "image": "house-solid", + "size_outline": "16.00000", + "image_outline": "house-outline" }, { "_sync_id": "marker-liebevoll.jetzt", @@ -181,7 +187,9 @@ "_sync_id": "marker-user", "id": "user", "size": "12.00000", - "image": "user-solid" + "image": "user-solid", + "size_outline": "18.00000", + "image_outline": "user-outline" } ] } diff --git a/backend/directus-config/snapshot/fields/layers/Add_Button.json b/backend/directus-config/snapshot/fields/layers/Add_Button.json deleted file mode 100644 index 917f1405..00000000 --- a/backend/directus-config/snapshot/fields/layers/Add_Button.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "collection": "layers", - "field": "Add_Button", - "type": "alias", - "meta": { - "collection": "layers", - "conditions": null, - "display": null, - "display_options": null, - "field": "Add_Button", - "group": null, - "hidden": false, - "interface": "group-detail", - "note": null, - "options": { - "headerColor": null, - "headerIcon": null - }, - "readonly": false, - "required": false, - "sort": 8, - "special": [ - "alias", - "no-data", - "group" - ], - "translations": null, - "validation": null, - "validation_message": null, - "width": "full" - } -} diff --git a/backend/directus-config/snapshot/fields/layers/divider-yaul5v.json b/backend/directus-config/snapshot/fields/layers/divider-yaul5v.json index 00be3c0a..d4aebc91 100644 --- a/backend/directus-config/snapshot/fields/layers/divider-yaul5v.json +++ b/backend/directus-config/snapshot/fields/layers/divider-yaul5v.json @@ -15,7 +15,7 @@ "options": null, "readonly": false, "required": false, - "sort": 9, + "sort": 10, "special": [ "alias", "no-data" diff --git a/backend/directus-config/snapshot/fields/layers/listed.json b/backend/directus-config/snapshot/fields/layers/listed.json index 2881da64..9ffbbf4d 100644 --- a/backend/directus-config/snapshot/fields/layers/listed.json +++ b/backend/directus-config/snapshot/fields/layers/listed.json @@ -9,7 +9,7 @@ "display_options": null, "field": "listed", "group": null, - "hidden": false, + "hidden": true, "interface": "boolean", "note": null, "options": null, diff --git a/backend/directus-config/snapshot/fields/layers/menuText.json b/backend/directus-config/snapshot/fields/layers/menuText.json index 62cd2dc3..32d3d0e2 100644 --- a/backend/directus-config/snapshot/fields/layers/menuText.json +++ b/backend/directus-config/snapshot/fields/layers/menuText.json @@ -8,14 +8,14 @@ "display": null, "display_options": null, "field": "menuText", - "group": "Add_Button", + "group": null, "hidden": false, "interface": "input", "note": null, "options": null, "readonly": false, "required": false, - "sort": 1, + "sort": 8, "special": null, "translations": null, "validation": null, diff --git a/backend/directus-config/snapshot/fields/layers/public_edit_items.json b/backend/directus-config/snapshot/fields/layers/public_edit_items.json index 4a796acb..22e8e3ea 100644 --- a/backend/directus-config/snapshot/fields/layers/public_edit_items.json +++ b/backend/directus-config/snapshot/fields/layers/public_edit_items.json @@ -9,7 +9,7 @@ "display_options": null, "field": "public_edit_items", "group": null, - "hidden": false, + "hidden": true, "interface": "boolean", "note": null, "options": null, diff --git a/backend/directus-config/snapshot/fields/layers/sort.json b/backend/directus-config/snapshot/fields/layers/sort.json index 96567703..c5b222a2 100644 --- a/backend/directus-config/snapshot/fields/layers/sort.json +++ b/backend/directus-config/snapshot/fields/layers/sort.json @@ -15,12 +15,12 @@ "options": null, "readonly": false, "required": false, - "sort": 18, + "sort": 9, "special": null, "translations": null, "validation": null, "validation_message": null, - "width": "full" + "width": "half" }, "schema": { "name": "sort", diff --git a/backend/directus-config/snapshot/fields/marker_icons/image.json b/backend/directus-config/snapshot/fields/marker_icons/image.json index 1f20ebcf..9ba03843 100644 --- a/backend/directus-config/snapshot/fields/marker_icons/image.json +++ b/backend/directus-config/snapshot/fields/marker_icons/image.json @@ -17,14 +17,14 @@ }, "readonly": false, "required": false, - "sort": 3, + "sort": 2, "special": [ "file" ], "translations": null, "validation": null, "validation_message": null, - "width": "full" + "width": "half" }, "schema": { "name": "image", diff --git a/backend/directus-config/snapshot/fields/layers/indexIcon.json b/backend/directus-config/snapshot/fields/marker_icons/image_outline.json similarity index 76% rename from backend/directus-config/snapshot/fields/layers/indexIcon.json rename to backend/directus-config/snapshot/fields/marker_icons/image_outline.json index 94440bd4..960ceaca 100644 --- a/backend/directus-config/snapshot/fields/layers/indexIcon.json +++ b/backend/directus-config/snapshot/fields/marker_icons/image_outline.json @@ -1,23 +1,23 @@ { - "collection": "layers", - "field": "indexIcon", + "collection": "marker_icons", + "field": "image_outline", "type": "uuid", "meta": { - "collection": "layers", + "collection": "marker_icons", "conditions": null, "display": null, "display_options": null, - "field": "indexIcon", + "field": "image_outline", "group": null, "hidden": false, "interface": "file-image", "note": null, "options": { - "folder": "0b66498d-8ee3-48fc-8fe7-72b6f86d8d0f" + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415" }, "readonly": false, "required": false, - "sort": 10, + "sort": 4, "special": [ "file" ], @@ -27,8 +27,8 @@ "width": "half" }, "schema": { - "name": "indexIcon", - "table": "layers", + "name": "image_outline", + "table": "marker_icons", "data_type": "uuid", "default_value": null, "max_length": null, diff --git a/backend/directus-config/snapshot/fields/marker_icons/size.json b/backend/directus-config/snapshot/fields/marker_icons/size.json index 2c8dc06d..ec945236 100644 --- a/backend/directus-config/snapshot/fields/marker_icons/size.json +++ b/backend/directus-config/snapshot/fields/marker_icons/size.json @@ -17,12 +17,12 @@ }, "readonly": false, "required": false, - "sort": 2, + "sort": 3, "special": null, "translations": null, "validation": null, "validation_message": null, - "width": "full" + "width": "half" }, "schema": { "name": "size", diff --git a/backend/directus-config/snapshot/fields/layers/menuIcon.json b/backend/directus-config/snapshot/fields/marker_icons/size_outline.json similarity index 51% rename from backend/directus-config/snapshot/fields/layers/menuIcon.json rename to backend/directus-config/snapshot/fields/marker_icons/size_outline.json index 74ccc330..d6a9bf58 100644 --- a/backend/directus-config/snapshot/fields/layers/menuIcon.json +++ b/backend/directus-config/snapshot/fields/marker_icons/size_outline.json @@ -1,39 +1,35 @@ { - "collection": "layers", - "field": "menuIcon", - "type": "uuid", + "collection": "marker_icons", + "field": "size_outline", + "type": "decimal", "meta": { - "collection": "layers", + "collection": "marker_icons", "conditions": null, "display": null, "display_options": null, - "field": "menuIcon", - "group": "Add_Button", + "field": "size_outline", + "group": null, "hidden": false, - "interface": "file-image", + "interface": "input", "note": null, - "options": { - "folder": "a97106b4-218b-45df-adc9-36184886e285" - }, + "options": null, "readonly": false, "required": false, - "sort": 2, - "special": [ - "file" - ], + "sort": 5, + "special": null, "translations": null, "validation": null, "validation_message": null, "width": "half" }, "schema": { - "name": "menuIcon", - "table": "layers", - "data_type": "uuid", + "name": "size_outline", + "table": "marker_icons", + "data_type": "numeric", "default_value": null, "max_length": null, - "numeric_precision": null, - "numeric_scale": null, + "numeric_precision": 10, + "numeric_scale": 5, "is_nullable": true, "is_unique": false, "is_indexed": false, @@ -41,7 +37,7 @@ "is_generated": false, "generation_expression": null, "has_auto_increment": false, - "foreign_key_table": "directus_files", - "foreign_key_column": "id" + "foreign_key_table": null, + "foreign_key_column": null } } diff --git a/backend/directus-config/snapshot/relations/layers/indexIcon.json b/backend/directus-config/snapshot/relations/layers/indexIcon.json deleted file mode 100644 index 9b00d8cc..00000000 --- a/backend/directus-config/snapshot/relations/layers/indexIcon.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "collection": "layers", - "field": "indexIcon", - "related_collection": "directus_files", - "meta": { - "junction_field": null, - "many_collection": "layers", - "many_field": "indexIcon", - "one_allowed_collections": null, - "one_collection": "directus_files", - "one_collection_field": null, - "one_deselect_action": "nullify", - "one_field": null, - "sort_field": null - }, - "schema": { - "table": "layers", - "column": "indexIcon", - "foreign_key_table": "directus_files", - "foreign_key_column": "id", - "constraint_name": "layers_indexicon_foreign", - "on_update": "NO ACTION", - "on_delete": "SET NULL" - } -} diff --git a/backend/directus-config/snapshot/relations/layers/menuIcon.json b/backend/directus-config/snapshot/relations/marker_icons/image_outline.json similarity index 63% rename from backend/directus-config/snapshot/relations/layers/menuIcon.json rename to backend/directus-config/snapshot/relations/marker_icons/image_outline.json index facd048b..51689393 100644 --- a/backend/directus-config/snapshot/relations/layers/menuIcon.json +++ b/backend/directus-config/snapshot/relations/marker_icons/image_outline.json @@ -1,11 +1,11 @@ { - "collection": "layers", - "field": "menuIcon", + "collection": "marker_icons", + "field": "image_outline", "related_collection": "directus_files", "meta": { "junction_field": null, - "many_collection": "layers", - "many_field": "menuIcon", + "many_collection": "marker_icons", + "many_field": "image_outline", "one_allowed_collections": null, "one_collection": "directus_files", "one_collection_field": null, @@ -14,11 +14,11 @@ "sort_field": null }, "schema": { - "table": "layers", - "column": "menuIcon", + "table": "marker_icons", + "column": "image_outline", "foreign_key_table": "directus_files", "foreign_key_column": "id", - "constraint_name": "layers_menuicon_foreign", + "constraint_name": "marker_icons_image_outline_foreign", "on_update": "NO ACTION", "on_delete": "SET NULL" } diff --git a/backend/directus-config/specs/item.graphql b/backend/directus-config/specs/item.graphql index cc6a25d6..a955b669 100644 --- a/backend/directus-config/specs/item.graphql +++ b/backend/directus-config/specs/item.graphql @@ -15,6 +15,10 @@ type Query { oceannomads_profiles_by_id(id: ID!, version: String): oceannomads_profiles oceannomads_profiles_aggregated(groupBy: [String], filter: oceannomads_profiles_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [oceannomads_profiles_aggregated!]! oceannomads_profiles_by_version(version: String!, id: ID!): version_oceannomads_profiles + marker_icons(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [marker_icons!]! + marker_icons_by_id(id: ID!, version: String): marker_icons + marker_icons_aggregated(groupBy: [String], filter: marker_icons_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [marker_icons_aggregated!]! + marker_icons_by_version(version: String!, id: ID!): version_marker_icons attestations(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [attestations!]! attestations_by_id(id: ID!, version: String): attestations attestations_aggregated(groupBy: [String], filter: attestations_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [attestations_aggregated!]! @@ -51,10 +55,6 @@ type Query { groupTypes_by_id(id: ID!, version: String): groupTypes groupTypes_aggregated(groupBy: [String], filter: groupTypes_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [groupTypes_aggregated!]! groupTypes_by_version(version: String!, id: ID!): version_groupTypes - marker_icons(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [marker_icons!]! - marker_icons_by_id(id: ID!, version: String): marker_icons - marker_icons_aggregated(groupBy: [String], filter: marker_icons_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [marker_icons_aggregated!]! - marker_icons_by_version(version: String!, id: ID!): version_marker_icons inviteLinks(filter: inviteLinks_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [inviteLinks!]! inviteLinks_by_id(id: ID!, version: String): inviteLinks inviteLinks_aggregated(groupBy: [String], filter: inviteLinks_filter, limit: Int, offset: Int, page: Int, search: String, sort: [String]): [inviteLinks_aggregated!]! @@ -150,6 +150,8 @@ type Mutation { create_oceannomads_events_item(data: create_oceannomads_events_input!): oceannomads_events create_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_oceannomads_profiles_input!]): [oceannomads_profiles!]! create_oceannomads_profiles_item(data: create_oceannomads_profiles_input!): oceannomads_profiles + create_marker_icons_items(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_marker_icons_input!]): [marker_icons!]! + create_marker_icons_item(data: create_marker_icons_input!): marker_icons create_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_input!]): [attestations!]! create_attestations_item(data: create_attestations_input!): attestations create_attestations_directus_users_items(filter: attestations_directus_users_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_attestations_directus_users_input!]): [attestations_directus_users!]! @@ -168,8 +170,6 @@ type Mutation { create_groupSubheaders_groupTypes_item(data: create_groupSubheaders_groupTypes_input!): groupSubheaders_groupTypes create_groupTypes_items(filter: groupTypes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_groupTypes_input!]): [groupTypes!]! create_groupTypes_item(data: create_groupTypes_input!): groupTypes - create_marker_icons_items(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_marker_icons_input!]): [marker_icons!]! - create_marker_icons_item(data: create_marker_icons_input!): marker_icons create_inviteLinks_items(filter: inviteLinks_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_inviteLinks_input!]): [inviteLinks!]! create_inviteLinks_item(data: create_inviteLinks_input!): inviteLinks create_items_items(filter: items_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [create_items_input!]): [items!]! @@ -224,6 +224,9 @@ type Mutation { update_oceannomads_profiles_items(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_oceannomads_profiles_input!): [oceannomads_profiles!]! update_oceannomads_profiles_batch(filter: oceannomads_profiles_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_oceannomads_profiles_input!]): [oceannomads_profiles!]! update_oceannomads_profiles_item(id: ID!, data: update_oceannomads_profiles_input!): oceannomads_profiles + update_marker_icons_items(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_marker_icons_input!): [marker_icons!]! + update_marker_icons_batch(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_marker_icons_input!]): [marker_icons!]! + update_marker_icons_item(id: ID!, data: update_marker_icons_input!): marker_icons update_attestations_items(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_attestations_input!): [attestations!]! update_attestations_batch(filter: attestations_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_attestations_input!]): [attestations!]! update_attestations_item(id: ID!, data: update_attestations_input!): attestations @@ -251,9 +254,6 @@ type Mutation { update_groupTypes_items(filter: groupTypes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_groupTypes_input!): [groupTypes!]! update_groupTypes_batch(filter: groupTypes_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_groupTypes_input!]): [groupTypes!]! update_groupTypes_item(id: ID!, data: update_groupTypes_input!): groupTypes - update_marker_icons_items(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_marker_icons_input!): [marker_icons!]! - update_marker_icons_batch(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_marker_icons_input!]): [marker_icons!]! - update_marker_icons_item(id: ID!, data: update_marker_icons_input!): marker_icons update_inviteLinks_items(filter: inviteLinks_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, ids: [ID]!, data: update_inviteLinks_input!): [inviteLinks!]! update_inviteLinks_batch(filter: inviteLinks_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String, data: [update_inviteLinks_input!]): [inviteLinks!]! update_inviteLinks_item(id: ID!, data: update_inviteLinks_input!): inviteLinks @@ -325,6 +325,8 @@ type Mutation { delete_oceannomads_events_item(id: ID!): delete_one delete_oceannomads_profiles_items(ids: [ID]!): delete_many delete_oceannomads_profiles_item(id: ID!): delete_one + delete_marker_icons_items(ids: [ID]!): delete_many + delete_marker_icons_item(id: ID!): delete_one delete_attestations_items(ids: [ID]!): delete_many delete_attestations_item(id: ID!): delete_one delete_attestations_directus_users_items(ids: [ID]!): delete_many @@ -343,8 +345,6 @@ type Mutation { delete_groupSubheaders_groupTypes_item(id: ID!): delete_one delete_groupTypes_items(ids: [ID]!): delete_many delete_groupTypes_item(id: ID!): delete_one - delete_marker_icons_items(ids: [ID]!): delete_many - delete_marker_icons_item(id: ID!): delete_one delete_inviteLinks_items(ids: [ID]!): delete_many delete_inviteLinks_item(id: ID!): delete_one delete_items_items(ids: [ID]!): delete_many @@ -415,6 +415,7 @@ type Subscription { relations_mutated(event: EventEnum): relations_mutated oceannomads_events_mutated(event: EventEnum): oceannomads_events_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated + marker_icons_mutated(event: EventEnum): marker_icons_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -424,7 +425,6 @@ type Subscription { groupSubheaders_mutated(event: EventEnum): groupSubheaders_mutated groupSubheaders_groupTypes_mutated(event: EventEnum): groupSubheaders_groupTypes_mutated groupTypes_mutated(event: EventEnum): groupTypes_mutated - marker_icons_mutated(event: EventEnum): marker_icons_mutated inviteLinks_mutated(event: EventEnum): inviteLinks_mutated items_mutated(event: EventEnum): items_mutated itemSecrets_mutated(event: EventEnum): itemSecrets_mutated @@ -1782,7 +1782,6 @@ type junction_directus_users_tags_mutated { type layers { id: ID! - indexIcon(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files index_plus_button: Boolean itemType(filter: types_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): types item_presets: JSON @@ -1792,17 +1791,16 @@ type layers { markerIcon(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): marker_icons markerShape: String menuColor: String - menuIcon(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] - maps_func: count_functions notifications(filter: layers_directus_users_1_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_directus_users_1] notifications_func: count_functions + maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] + maps_func: count_functions } type layers_aggregated { @@ -1820,7 +1818,6 @@ type layers_aggregated { type layers_aggregated_count { id: Int - indexIcon: Int index_plus_button: Int itemType: Int item_presets: Int @@ -1829,15 +1826,14 @@ type layers_aggregated_count { markerIcon: Int markerShape: Int menuColor: Int - menuIcon: Int menuText: Int name: Int onlyOnePerOwner: Int public_edit_items: Int sort: Int userProfileLayer: Int - maps: Int notifications: Int + maps: Int } type layers_aggregated_fields { @@ -2050,6 +2046,8 @@ type marker_icons { id: ID! image(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files size: Float + image_outline(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files + size_outline: Float } type marker_icons_aggregated { @@ -2069,10 +2067,13 @@ type marker_icons_aggregated_count { id: Int image: Int size: Int + image_outline: Int + size_outline: Int } type marker_icons_aggregated_fields { size: Float + size_outline: Float } type marker_icons_mutated { @@ -2691,7 +2692,6 @@ type version_junction_directus_users_tags_1 { """""" type version_layers { id: ID - indexIcon: JSON index_plus_button: Boolean itemType: JSON item_presets: JSON @@ -2700,15 +2700,14 @@ type version_layers { markerIcon: JSON markerShape: String menuColor: String - menuIcon: JSON menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps: JSON notifications: JSON + maps: JSON } """""" @@ -2770,6 +2769,8 @@ type version_marker_icons { id: ID image: JSON size: Float + image_outline: JSON + size_outline: Float } """""" @@ -3278,7 +3279,6 @@ input create_layers_files_input { input create_layers_input { id: ID - indexIcon: create_directus_files_input index_plus_button: Boolean itemType: create_types_input item_presets: JSON @@ -3287,15 +3287,14 @@ input create_layers_input { markerIcon: create_marker_icons_input markerShape: String menuColor: String - menuIcon: create_directus_files_input menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps: [create_layers_maps_input] notifications: [create_layers_directus_users_1_input] + maps: [create_layers_maps_input] } input create_layers_maps_input { @@ -3340,6 +3339,8 @@ input create_marker_icons_input { id: ID! image: create_directus_files_input size: Float + image_outline: create_directus_files_input + size_outline: Float } input create_oceannomads_events_input { @@ -4267,7 +4268,6 @@ input layers_files_filter { input layers_filter { id: id_filter_operators - indexIcon: directus_files_filter index_plus_button: boolean_filter_operators itemType: types_filter item_presets: string_filter_operators @@ -4277,17 +4277,16 @@ input layers_filter { markerIcon: marker_icons_filter markerShape: string_filter_operators menuColor: string_filter_operators - menuIcon: directus_files_filter menuText: string_filter_operators name: string_filter_operators onlyOnePerOwner: boolean_filter_operators public_edit_items: boolean_filter_operators sort: number_filter_operators userProfileLayer: boolean_filter_operators - maps: layers_maps_quantifier_filter - maps_func: count_function_filter_operators notifications: layers_directus_users_1_quantifier_filter notifications_func: count_function_filter_operators + maps: layers_maps_quantifier_filter + maps_func: count_function_filter_operators _and: [layers_filter] _or: [layers_filter] } @@ -4345,6 +4344,8 @@ input marker_icons_filter { id: string_filter_operators image: directus_files_filter size: number_filter_operators + image_outline: directus_files_filter + size_outline: number_filter_operators _and: [marker_icons_filter] _or: [marker_icons_filter] } @@ -4872,7 +4873,6 @@ input update_layers_files_input { input update_layers_input { id: ID - indexIcon: update_directus_files_input index_plus_button: Boolean itemType: update_types_input item_presets: JSON @@ -4881,15 +4881,14 @@ input update_layers_input { markerIcon: update_marker_icons_input markerShape: String menuColor: String - menuIcon: update_directus_files_input menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps: [update_layers_maps_input] notifications: [update_layers_directus_users_1_input] + maps: [update_layers_maps_input] } input update_layers_maps_input { @@ -4934,6 +4933,8 @@ input update_marker_icons_input { id: ID image: update_directus_files_input size: Float + image_outline: update_directus_files_input + size_outline: Float } input update_oceannomads_events_input { diff --git a/backend/directus-config/specs/openapi.json b/backend/directus-config/specs/openapi.json index 854fe89d..a389e67f 100644 --- a/backend/directus-config/specs/openapi.json +++ b/backend/directus-config/specs/openapi.json @@ -9067,6 +9067,395 @@ ] } }, + "/items/marker_icons": { + "post": { + "summary": "Create an Item", + "description": "Create a new marker_icons item.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "createItemsMarkerIcons", + "parameters": [ + { + "$ref": "#/components/parameters/Meta" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + }, + { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "get": { + "summary": "List Items", + "description": "List the marker_icons items.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "readItemsMarkerIcons", + "security": [ + { + "Auth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + }, + "meta": { + "$ref": "#/components/schemas/x-metadata" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + } + }, + "patch": { + "summary": "Update Multiple Items", + "description": "Update multiple marker_icons items at the same time.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "updateItemsMarkerIcons", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Offset" + }, + { + "$ref": "#/components/parameters/Sort" + }, + { + "$ref": "#/components/parameters/Filter" + }, + { + "$ref": "#/components/parameters/Search" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + }, + { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Multiple Items", + "description": "Delete multiple existing marker_icons items.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "deleteItemsMarkerIcons", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + } + }, + "parameters": [] + } + }, + "/items/marker_icons/{id}": { + "get": { + "summary": "Retrieve an Item", + "description": "Retrieve a single marker_icons item by unique identifier.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "readSingleItemsMarkerIcons", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "$ref": "#/components/parameters/Version" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "patch": { + "summary": "Update an Item", + "description": "Update an existing marker_icons item.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "updateSingleItemsMarkerIcons", + "parameters": [ + { + "$ref": "#/components/parameters/Fields" + }, + { + "$ref": "#/components/parameters/Meta" + }, + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + } + } + }, + "responses": { + "200": { + "description": "Successful request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "$ref": "#/components/schemas/ItemsMarkerIcons" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + } + }, + "delete": { + "summary": "Delete an Item", + "description": "Delete an existing marker_icons item.", + "tags": [ + "Items", + "ItemsMarkerIcons" + ], + "operationId": "deleteSingleItemsMarkerIcons", + "responses": { + "200": { + "description": "Successful request" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/NotFoundError" + } + }, + "parameters": [ + { + "name": "id", + "description": "Index of the item.", + "in": "path", + "required": true, + "schema": { + "oneOf": [ + { + "type": "integer", + "description": "Incremental index of the item.", + "example": 1 + }, + { + "type": "string", + "description": "Unique identifier of the item.", + "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" + } + ] + } + } + ] + } + }, "/items/attestations": { "post": { "summary": "Create an Item", @@ -12568,395 +12957,6 @@ ] } }, - "/items/marker_icons": { - "post": { - "summary": "Create an Item", - "description": "Create a new marker_icons item.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "createItemsMarkerIcons", - "parameters": [ - { - "$ref": "#/components/parameters/Meta" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - }, - { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "get": { - "summary": "List Items", - "description": "List the marker_icons items.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "readItemsMarkerIcons", - "security": [ - { - "Auth": [] - } - ], - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - }, - "meta": { - "$ref": "#/components/schemas/x-metadata" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - } - }, - "patch": { - "summary": "Update Multiple Items", - "description": "Update multiple marker_icons items at the same time.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "updateItemsMarkerIcons", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Limit" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Offset" - }, - { - "$ref": "#/components/parameters/Sort" - }, - { - "$ref": "#/components/parameters/Filter" - }, - { - "$ref": "#/components/parameters/Search" - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - }, - { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "properties": { - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - } - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete Multiple Items", - "description": "Delete multiple existing marker_icons items.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "deleteItemsMarkerIcons", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - } - }, - "parameters": [] - } - }, - "/items/marker_icons/{id}": { - "get": { - "summary": "Retrieve an Item", - "description": "Retrieve a single marker_icons item by unique identifier.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "readSingleItemsMarkerIcons", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "$ref": "#/components/parameters/Version" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "patch": { - "summary": "Update an Item", - "description": "Update an existing marker_icons item.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "updateSingleItemsMarkerIcons", - "parameters": [ - { - "$ref": "#/components/parameters/Fields" - }, - { - "$ref": "#/components/parameters/Meta" - }, - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - } - } - }, - "responses": { - "200": { - "description": "Successful request", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "$ref": "#/components/schemas/ItemsMarkerIcons" - } - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - } - }, - "delete": { - "summary": "Delete an Item", - "description": "Delete an existing marker_icons item.", - "tags": [ - "Items", - "ItemsMarkerIcons" - ], - "operationId": "deleteSingleItemsMarkerIcons", - "responses": { - "200": { - "description": "Successful request" - }, - "401": { - "$ref": "#/components/responses/UnauthorizedError" - }, - "404": { - "$ref": "#/components/responses/NotFoundError" - } - }, - "parameters": [ - { - "name": "id", - "description": "Index of the item.", - "in": "path", - "required": true, - "schema": { - "oneOf": [ - { - "type": "integer", - "description": "Incremental index of the item.", - "example": 1 - }, - { - "type": "string", - "description": "Unique identifier of the item.", - "example": "8cbb43fe-4cdf-4991-8352-c461779cec02" - } - ] - } - } - ] - } - }, "/items/inviteLinks": { "post": { "summary": "Create an Item", @@ -21266,6 +21266,10 @@ "name": "ItemsOceannomadsProfiles", "x-collection": "oceannomads_profiles" }, + { + "name": "ItemsMarkerIcons", + "x-collection": "marker_icons" + }, { "name": "ItemsAttestations", "x-collection": "attestations" @@ -21302,10 +21306,6 @@ "name": "ItemsGroupTypes", "x-collection": "groupTypes" }, - { - "name": "ItemsMarkerIcons", - "x-collection": "marker_icons" - }, { "name": "ItemsInviteLinks", "x-collection": "inviteLinks" @@ -23439,6 +23439,51 @@ "id" ] }, + "ItemsMarkerIcons": { + "type": "object", + "properties": { + "id": { + "nullable": false, + "type": "string" + }, + "image": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "size": { + "nullable": true, + "type": "number" + }, + "image_outline": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uuid" + }, + { + "$ref": "#/components/schemas/Files" + } + ] + }, + "size_outline": { + "nullable": true, + "type": "number" + } + }, + "x-collection": "marker_icons", + "required": [ + "id" + ] + }, "ItemsAttestations": { "type": "object", "properties": { @@ -23935,35 +23980,6 @@ "id" ] }, - "ItemsMarkerIcons": { - "type": "object", - "properties": { - "id": { - "nullable": false, - "type": "string" - }, - "image": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, - "size": { - "nullable": true, - "type": "number" - } - }, - "x-collection": "marker_icons", - "required": [ - "id" - ] - }, "ItemsInviteLinks": { "type": "object", "properties": { @@ -24285,18 +24301,6 @@ "type": "string", "format": "uuid" }, - "indexIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, "index_plus_button": { "nullable": true, "type": "boolean" @@ -24343,18 +24347,6 @@ "nullable": true, "type": "string" }, - "menuIcon": { - "nullable": true, - "oneOf": [ - { - "type": "string", - "format": "uuid" - }, - { - "$ref": "#/components/schemas/Files" - } - ] - }, "menuText": { "nullable": true, "type": "string" @@ -24379,20 +24371,6 @@ "nullable": true, "type": "boolean" }, - "maps": { - "nullable": true, - "type": "array", - "items": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "#/components/schemas/ItemsLayersMaps" - } - ] - } - }, "notifications": { "nullable": true, "type": "array", @@ -24406,6 +24384,20 @@ } ] } + }, + "maps": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "#/components/schemas/ItemsLayersMaps" + } + ] + } } }, "x-collection": "layers", diff --git a/backend/directus-config/specs/system.graphql b/backend/directus-config/specs/system.graphql index 622c6c4d..d97fc0de 100644 --- a/backend/directus-config/specs/system.graphql +++ b/backend/directus-config/specs/system.graphql @@ -266,6 +266,7 @@ type Subscription { relations_mutated(event: EventEnum): relations_mutated oceannomads_events_mutated(event: EventEnum): oceannomads_events_mutated oceannomads_profiles_mutated(event: EventEnum): oceannomads_profiles_mutated + marker_icons_mutated(event: EventEnum): marker_icons_mutated attestations_mutated(event: EventEnum): attestations_mutated attestations_directus_users_mutated(event: EventEnum): attestations_directus_users_mutated contactInfos_mutated(event: EventEnum): contactInfos_mutated @@ -275,7 +276,6 @@ type Subscription { groupSubheaders_mutated(event: EventEnum): groupSubheaders_mutated groupSubheaders_groupTypes_mutated(event: EventEnum): groupSubheaders_groupTypes_mutated groupTypes_mutated(event: EventEnum): groupTypes_mutated - marker_icons_mutated(event: EventEnum): marker_icons_mutated inviteLinks_mutated(event: EventEnum): inviteLinks_mutated items_mutated(event: EventEnum): items_mutated itemSecrets_mutated(event: EventEnum): itemSecrets_mutated @@ -1951,7 +1951,6 @@ type junction_directus_users_tags_mutated { type layers { id: ID! - indexIcon(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files index_plus_button: Boolean itemType(filter: types_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): types item_presets: JSON @@ -1961,17 +1960,16 @@ type layers { markerIcon(filter: marker_icons_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): marker_icons markerShape: String menuColor: String - menuIcon(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] - maps_func: count_functions notifications(filter: layers_directus_users_1_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_directus_users_1] notifications_func: count_functions + maps(filter: layers_maps_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): [layers_maps] + maps_func: count_functions } type layers_directus_users_1 { @@ -2060,6 +2058,8 @@ type marker_icons { id: ID! image(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files size: Float + image_outline(filter: directus_files_filter, sort: [String], limit: Int, offset: Int, page: Int, search: String): directus_files + size_outline: Float } type marker_icons_mutated { @@ -2765,7 +2765,6 @@ input create_layers_directus_users_1_input { input create_layers_input { id: ID - indexIcon: create_directus_files_input index_plus_button: Boolean itemType: create_types_input item_presets: JSON @@ -2774,15 +2773,14 @@ input create_layers_input { markerIcon: create_marker_icons_input markerShape: String menuColor: String - menuIcon: create_directus_files_input menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps: [create_layers_maps_input] notifications: [create_layers_directus_users_1_input] + maps: [create_layers_maps_input] } input create_layers_maps_input { @@ -2827,6 +2825,8 @@ input create_marker_icons_input { id: ID! image: create_directus_files_input size: Float + image_outline: create_directus_files_input + size_outline: Float } input create_Themes_input { @@ -3726,7 +3726,6 @@ input layers_directus_users_1_quantifier_filter { input layers_filter { id: id_filter_operators - indexIcon: directus_files_filter index_plus_button: boolean_filter_operators itemType: types_filter item_presets: string_filter_operators @@ -3736,17 +3735,16 @@ input layers_filter { markerIcon: marker_icons_filter markerShape: string_filter_operators menuColor: string_filter_operators - menuIcon: directus_files_filter menuText: string_filter_operators name: string_filter_operators onlyOnePerOwner: boolean_filter_operators public_edit_items: boolean_filter_operators sort: number_filter_operators userProfileLayer: boolean_filter_operators - maps: layers_maps_quantifier_filter - maps_func: count_function_filter_operators notifications: layers_directus_users_1_quantifier_filter notifications_func: count_function_filter_operators + maps: layers_maps_quantifier_filter + maps_func: count_function_filter_operators _and: [layers_filter] _or: [layers_filter] } @@ -3804,6 +3802,8 @@ input marker_icons_filter { id: string_filter_operators image: directus_files_filter size: number_filter_operators + image_outline: directus_files_filter + size_outline: number_filter_operators _and: [marker_icons_filter] _or: [marker_icons_filter] } @@ -4305,7 +4305,6 @@ input update_layers_directus_users_1_input { input update_layers_input { id: ID - indexIcon: update_directus_files_input index_plus_button: Boolean itemType: update_types_input item_presets: JSON @@ -4314,15 +4313,14 @@ input update_layers_input { markerIcon: update_marker_icons_input markerShape: String menuColor: String - menuIcon: update_directus_files_input menuText: String name: String onlyOnePerOwner: Boolean public_edit_items: Boolean sort: Int userProfileLayer: Boolean - maps: [update_layers_maps_input] notifications: [update_layers_directus_users_1_input] + maps: [update_layers_maps_input] } input update_layers_maps_input { @@ -4367,6 +4365,8 @@ input update_marker_icons_input { id: ID image: update_directus_files_input size: Float + image_outline: update_directus_files_input + size_outline: Float } input update_Themes_input { diff --git a/lib/examples/2-static-layers/src/App.tsx b/lib/examples/2-static-layers/src/App.tsx index 16812b0c..52df3b23 100644 --- a/lib/examples/2-static-layers/src/App.tsx +++ b/lib/examples/2-static-layers/src/App.tsx @@ -50,7 +50,6 @@ function App() { markerShape='square' markerDefaultColor='#700' data={events} - menuIcon="calendar" menuColor="#700" menuText="events" itemType={itemTypeEvent} @@ -64,7 +63,6 @@ function App() { markerShape='circle' markerDefaultColor='#007' data={places} - menuIcon="point" menuColor="#007" menuText="places" itemType={itemTypePlace} diff --git a/lib/src/Components/Map/Layer.tsx b/lib/src/Components/Map/Layer.tsx index ed907fd7..7239a7b3 100644 --- a/lib/src/Components/Map/Layer.tsx +++ b/lib/src/Components/Map/Layer.tsx @@ -21,7 +21,6 @@ export const Layer = ({ data, children, name = 'places', - menuIcon = 'MapPinIcon', menuText = 'add new place', menuColor = '#2E7D32', markerIcon, @@ -51,7 +50,6 @@ export const Layer = ({ data, children, name, - menuIcon, menuText, menuColor, markerIcon, @@ -74,7 +72,6 @@ export const Layer = ({ data, children, name, - menuIcon, menuText, menuColor, markerIcon, diff --git a/lib/src/Components/Map/Subcomponents/AddButton.tsx b/lib/src/Components/Map/Subcomponents/AddButton.tsx index 5781a1ab..320f5352 100644 --- a/lib/src/Components/Map/Subcomponents/AddButton.tsx +++ b/lib/src/Components/Map/Subcomponents/AddButton.tsx @@ -3,6 +3,7 @@ import SVG from 'react-inlinesvg' import PlusSVG from '#assets/plus.svg' +import { useAppState } from '#components/AppShell/hooks/useAppState' import { useLayers } from '#components/Map/hooks/useLayers' import { useHasUserPermission } from '#components/Map/hooks/usePermissions' @@ -13,6 +14,7 @@ export default function AddButton({ }) { const layers = useLayers() const hasUserPermission = useHasUserPermission() + const appState = useAppState() const canAddItems = () => { let canAdd = false @@ -49,7 +51,7 @@ export default function AddButton({
diff --git a/lib/src/Components/Map/Subcomponents/Controls/LocateControl.spec.tsx b/lib/src/Components/Map/Subcomponents/Controls/LocateControl.spec.tsx index 5fdec8e9..8bfbfd5c 100644 --- a/lib/src/Components/Map/Subcomponents/Controls/LocateControl.spec.tsx +++ b/lib/src/Components/Map/Subcomponents/Controls/LocateControl.spec.tsx @@ -114,7 +114,6 @@ const mockItemType: ItemType = { const mockLayer: Layer = { id: 'layer-1', name: 'Users', - menuIcon: 'user', menuColor: '#ff0000', menuText: 'Users', markerIcon: mockMarkerIcon, diff --git a/lib/src/Components/Map/Subcomponents/Controls/SearchControl.tsx b/lib/src/Components/Map/Subcomponents/Controls/SearchControl.tsx index f82a3693..1193cbe2 100644 --- a/lib/src/Components/Map/Subcomponents/Controls/SearchControl.tsx +++ b/lib/src/Components/Map/Subcomponents/Controls/SearchControl.tsx @@ -177,26 +177,26 @@ export const SearchControl = () => { } }} > - {item.layer?.menuIcon ? ( - { - code = code.replace(/fill=".*?"/g, 'fill="currentColor"') - code = code.replace(/stroke=".*?"/g, 'stroke="currentColor"') - return code - }} - /> + {item.layer?.markerIcon.image ? ( +
+ { + code = code.replace(/fill=".*?"/g, 'fill="currentColor"') + code = code.replace(/stroke=".*?"/g, 'stroke="currentColor"') + return code + }} + /> +
) : ( -
+
)}
{item.name}
-
- {item.text} -
))} diff --git a/lib/src/Components/Map/Subcomponents/SelectPosition.tsx b/lib/src/Components/Map/Subcomponents/SelectPosition.tsx index ceae1c72..7b3727af 100644 --- a/lib/src/Components/Map/Subcomponents/SelectPosition.tsx +++ b/lib/src/Components/Map/Subcomponents/SelectPosition.tsx @@ -25,7 +25,7 @@ export const SelectPosition = ({ Select new position of {selectNewItemPosition.name} on the map! )} - {selectNewItemPosition && 'menuIcon' in selectNewItemPosition && ( + {selectNewItemPosition && 'markerIcon' in selectNewItemPosition && ( Select position on the map! )}
diff --git a/lib/src/Components/Map/hooks/useSelectPosition.tsx b/lib/src/Components/Map/hooks/useSelectPosition.tsx index 467a917c..26435915 100644 --- a/lib/src/Components/Map/hooks/useSelectPosition.tsx +++ b/lib/src/Components/Map/hooks/useSelectPosition.tsx @@ -97,11 +97,11 @@ function useSelectPositionManager(): { useEffect(() => { if (selectPosition != null) { // selectPosition can be null, Layer or Item - if ('menuIcon' in selectPosition) { + if ('markerIcon' in selectPosition) { // if selectPosition is a Layer mapClicked && mapClicked.setItemFormPopup({ - layer: selectPosition, + layer: selectPosition as LayerProps, position: mapClicked.position, }) setSelectPosition(null) diff --git a/lib/src/Components/Profile/ItemFunctions.spec.tsx b/lib/src/Components/Profile/ItemFunctions.spec.tsx index 5b430d8f..9644e507 100644 --- a/lib/src/Components/Profile/ItemFunctions.spec.tsx +++ b/lib/src/Components/Profile/ItemFunctions.spec.tsx @@ -36,7 +36,6 @@ describe('linkItem', () => { getItems: vi.fn(), }, name: '', - menuIcon: '', menuColor: '', menuText: '', markerIcon: { diff --git a/lib/src/types/LayerProps.d.ts b/lib/src/types/LayerProps.d.ts index 3839d721..40aa6196 100644 --- a/lib/src/types/LayerProps.d.ts +++ b/lib/src/types/LayerProps.d.ts @@ -11,7 +11,6 @@ export interface LayerProps { data?: Item[] children?: React.ReactNode name: string - menuIcon: string menuColor: string menuText: string markerIcon: MarkerIcon diff --git a/lib/src/types/MarkerIcon.d.ts b/lib/src/types/MarkerIcon.d.ts index 052311c8..cde3cdf4 100644 --- a/lib/src/types/MarkerIcon.d.ts +++ b/lib/src/types/MarkerIcon.d.ts @@ -1,4 +1,6 @@ export interface MarkerIcon { image: string size?: number + image_outline?: string + size_outline?: number } From dbb405fe7e56b3cb220d1909ca400367f761bc98 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 5 Sep 2025 22:36:29 +0100 Subject: [PATCH 30/39] log sql file currently executed in seed (#360) --- backend/seed.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/seed.sh b/backend/seed.sh index ac58d444..c4f39003 100755 --- a/backend/seed.sh +++ b/backend/seed.sh @@ -27,5 +27,6 @@ SEED_SQL_DIR=$PROJECT_FOLDER/manual # apply database updates for filename in $SEED_SQL_DIR/*.sql; do + echo "Executing $filename" docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=$PGPASSWORD psql -v ON_ERROR_STOP=1 --username $PGUSER $PGDATABASE" < $filename done \ No newline at end of file From a9004a47eadff2c0002587c3e68c8d56c174512c Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sun, 7 Sep 2025 12:45:37 +0200 Subject: [PATCH 31/39] fix(app): unlimited loading screen when backend is not reachable (#364) * Initial plan * Add error handling for unlimited loading screen bug Co-authored-by: antontranelis <31516529+antontranelis@users.noreply.github.com> * Complete fix for unlimited loading screen bug with proper state management Co-authored-by: antontranelis <31516529+antontranelis@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: antontranelis <31516529+antontranelis@users.noreply.github.com> --- app/src/App.tsx | 125 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 98 insertions(+), 27 deletions(-) diff --git a/app/src/App.tsx b/app/src/App.tsx index c46d151e..fbb525c3 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -71,6 +71,15 @@ function App() { const [layers, setLayers] = useState() const [layerPageRoutes, setLayerPageRoutes] = useState() const [loading, setLoading] = useState(true) + const [error, setError] = useState(null) + + const retryConnection = () => { + setError(null) + setLoading(true) + if (mapApiInstance) { + getMap() + } + } const [embedded, setEmbedded] = useState(true) @@ -94,12 +103,27 @@ function App() { }, [mapApiInstance]) const getMap = async () => { - const map = await mapApiInstance?.getItems() - map && setMap(map) - map && map != 'null' && setLayersApiInstance(new layersApi(map.id)) - map && map != 'null' && map.own_tag_space - ? setTagsApi(new itemsApi('tags', undefined, map.id)) - : setTagsApi(new itemsApi('tags')) + try { + const map = await mapApiInstance?.getItems() + map && setMap(map) + map && map != 'null' && setLayersApiInstance(new layersApi(map.id)) + map && map != 'null' && map.own_tag_space + ? setTagsApi(new itemsApi('tags', undefined, map.id)) + : setTagsApi(new itemsApi('tags')) + // eslint-disable-next-line no-catch-all/no-catch-all + } catch (error: any) { + // eslint-disable-next-line no-console + console.error('Failed to load map:', error) + setError( + typeof error === 'string' + ? error + : error?.errors?.[0]?.message || + error?.message || + 'Failed to connect to the server. Please check your connection and try again.', + ) + setLoading(false) + // Don't rethrow since we're handling the error by setting error state + } } useEffect(() => { @@ -107,25 +131,40 @@ function App() { }, [layersApiInstance]) const getLayers = async () => { - const layers = await layersApiInstance?.getItems() - layers && setLayers(layers) - setLayerPageRoutes( - layers - ?.filter((l: LayerProps) => l.listed) - .map((l: LayerProps) => ({ - path: '/' + l.name, // url - icon: ( - - code.replace(/stroke=".*?"/g, 'stroke="currentColor"') - } - /> - ), - name: l.name, // name that appear in Sidebar - })), - ) + try { + const layers = await layersApiInstance?.getItems() + layers && setLayers(layers) + setLayerPageRoutes( + layers + ?.filter((l: LayerProps) => l.listed) + .map((l: LayerProps) => ({ + path: '/' + l.name, // url + icon: ( + + code.replace(/stroke=".*?"/g, 'stroke="currentColor"') + } + /> + ), + name: l.name, // name that appear in Sidebar + })), + ) + // eslint-disable-next-line no-catch-all/no-catch-all + } catch (error: any) { + // eslint-disable-next-line no-console + console.error('Failed to load layers:', error) + setError( + typeof error === 'string' + ? error + : error?.errors?.[0]?.message || + error?.message || + 'Failed to load map layers. Please check your permissions and try again.', + ) + setLoading(false) + // Don't rethrow since we're handling the error by setting error state + } } useEffect(() => { @@ -140,8 +179,11 @@ function App() { link.href = map?.logo && config.apiUrl + 'assets/' + map.logo // Specify the path to your favicon } - setLoading(false) - }, [map]) + // Only set loading to false when both map and layers are successfully loaded + if (map && layers) { + setLoading(false) + } + }, [map, layers]) const currentUrl = window.location.href const bottomRoutes = getBottomRoutes(currentUrl) @@ -253,6 +295,35 @@ function App() {
) + else if (error) + return ( +
+
+
+ + + +
+

+ Connection Error +

+

{error}

+ +
+
+ ) else return (
From 659efc0d5e6c34b62f1c892d8c737dde1ec95c4a Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Sun, 7 Sep 2025 13:42:29 +0200 Subject: [PATCH 32/39] fix(lib): adjust index page for external profiles (#361) * don't open internal profile, if item has external profile url * refactor(backend): simplified icon config (#359) * simplified icon config * fixed linting * fixed linting * fix linting and searchControl * adjust useSelectPosition * adjust useSelectPosition * fixed presets * removed menuIcon artefacts * fix example * adjust icon size in addButton * item index page is now not opening internal profile if external profile exist * fix imports * reset layer * fix behaviour * set map position to popup form --- app/src/App.tsx | 4 ++-- lib/src/Components/Templates/ItemCard.tsx | 29 ++++++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/src/App.tsx b/app/src/App.tsx index fbb525c3..354d216e 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -267,14 +267,14 @@ function App() { path='attestation-form' element={} /> - {layers.map((l: any) => ( + {layers.map((l: LayerProps) => ( } diff --git a/lib/src/Components/Templates/ItemCard.tsx b/lib/src/Components/Templates/ItemCard.tsx index e8b5b1f3..2cd4fcf9 100644 --- a/lib/src/Components/Templates/ItemCard.tsx +++ b/lib/src/Components/Templates/ItemCard.tsx @@ -1,6 +1,8 @@ +import { LatLng } from 'leaflet' import { useMap } from 'react-leaflet' import { useNavigate } from 'react-router-dom' +import { usePopupForm } from '#components/Map/hooks/usePopupForm' import { useSetSelectPosition } from '#components/Map/hooks/useSelectPosition' import useWindowDimensions from '#components/Map/hooks/useWindowDimension' import { StartEndView, TextView } from '#components/Map/Subcomponents/ItemPopupComponents' @@ -25,6 +27,31 @@ export const ItemCard = ({ const windowDimensions = useWindowDimensions() const map = useMap() const setSelectPosition = useSetSelectPosition() + const { setPopupForm } = usePopupForm() + + const handleEdit = () => { + if (!i.layer) { + throw new Error('Layer is not defined') + } + + if (i.layer.itemType.small_form_edit && i.position) { + navigate('/') + // Wait for navigation to complete before setting popup + setTimeout(() => { + if (i.position && i.layer) { + const position = new LatLng(i.position.coordinates[1], i.position.coordinates[0]) + setPopupForm({ + position, + layer: i.layer, + item: i, + }) + map.setView(position, map.getZoom(), { duration: 1 }) + } + }, 100) + } else { + navigate('/edit-item/' + i.id) + } + } return (
navigate('/edit-item/' + i.id)} + editCallback={() => handleEdit()} setPositionCallback={() => { map.closePopup() setSelectPosition(i) From a49590243a01a91384a4391eb124fa26142d5f52 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Sun, 7 Sep 2025 13:47:50 +0200 Subject: [PATCH 33/39] adjust UserControl for external profiles and small item edits (#363) --- lib/src/Components/AppShell/UserControl.tsx | 48 +++++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/lib/src/Components/AppShell/UserControl.tsx b/lib/src/Components/AppShell/UserControl.tsx index ca05f9ee..c108ab2a 100644 --- a/lib/src/Components/AppShell/UserControl.tsx +++ b/lib/src/Components/AppShell/UserControl.tsx @@ -1,9 +1,11 @@ import EllipsisVerticalIcon from '@heroicons/react/16/solid/EllipsisVerticalIcon' -import { Link } from 'react-router-dom' +import { LatLng } from 'leaflet' +import { Link, useNavigate } from 'react-router-dom' import { toast } from 'react-toastify' import { useAuth } from '#components/Auth/useAuth' import { useMyProfile } from '#components/Map/hooks/useMyProfile' +import { usePopupForm } from '#components/Map/hooks/usePopupForm' import { useAppState } from './hooks/useAppState' @@ -13,6 +15,8 @@ export const UserControl = () => { const { isAuthenticated, user, logout } = useAuth() const appState = useAppState() const { myProfile } = useMyProfile() + const navigate = useNavigate() + const { setPopupForm } = usePopupForm() // Use myProfile or create a fallback object for display const userProfile: Partial = myProfile ?? { @@ -38,6 +42,32 @@ export const UserControl = () => { pending: 'logging out ..', }) } + + const handleEdit = () => { + if (!myProfile?.layer) { + navigate(userProfile.id ? `/edit-item/${userProfile.id}` : '#') + return + } + + if (myProfile.layer.itemType.small_form_edit && myProfile.position) { + navigate('/') + // Wait for navigation to complete before setting popup + setTimeout(() => { + if (myProfile.position && myProfile.layer) { + setPopupForm({ + position: new LatLng( + myProfile.position.coordinates[1], + myProfile.position.coordinates[0], + ), + layer: myProfile.layer, + item: myProfile, + }) + } + }, 100) + } else { + navigate(userProfile.id ? `/edit-item/${userProfile.id}` : '#') + } + } const avatar: string | undefined = userProfile.image && appState.assetsApi.url ? appState.assetsApi.url + userProfile.image @@ -48,7 +78,13 @@ export const UserControl = () => { {isAuthenticated ? (
{avatar && ( @@ -69,7 +105,13 @@ export const UserControl = () => { className='tw:menu tw:menu-compact tw:dropdown-content tw:mt-4 tw:p-2 tw:shadow tw:bg-base-100 tw:rounded-box tw:w-52 tw:z-10000!' >
  • - Profile + { + handleEdit() + }} + > + Profile +
  • Settings From f8bf861e4e0029683c987c99220c224456893747 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Mon, 8 Sep 2025 21:22:50 +0100 Subject: [PATCH 34/39] feat(backend): directus data per project (#375) * seed directus data as a whole per project, fix marker icon: user-outline * rename deploy.sh back to seed.sh * workflow to test the seed in the backend * test workflow failure * wait 3 seconds for all docker containers to be ready * sleep 3 seconds not 3000 * mod permissions * try sudo * revert breaking change * enforce exit status 0 * fix exit enforce * test if failing seed files is related to the data folder fix * revert volume removal, create uploads folder * also chmod --- .github/workflows/test.backend.seed.yml | 54 +++++++++++++++++++ backend/README.md | 8 +-- .../directus-config/{seeds => }/.gitignore | 0 .../collections/dashboards.json | 0 .../{ => development}/collections/flows.json | 0 .../collections/folders.json | 0 .../collections/operations.json | 0 .../{ => development}/collections/panels.json | 0 .../collections/permissions.json | 0 .../collections/policies.json | 0 .../collections/presets.json | 0 .../{ => development}/collections/roles.json | 0 .../collections/settings.json | 0 .../collections/translations.json | 0 .../seed}/directus/directus_files.json | 0 .../directus_files_marker_outline.json | 10 ++++ .../directus/directus_files_marker_solid.json | 0 .../directus/files/icons/outline/boat.svg | 0 .../directus/files/icons/outline/calendar.svg | 0 .../directus/files/icons/outline/house.svg | 0 .../directus/files/icons/outline/map-pin.svg | 0 .../directus/files/icons/outline/user.svg | 0 .../directus/files/icons/outline/users.svg | 0 .../directus/files/icons/solid/bicycle.svg | 0 .../seed}/directus/files/icons/solid/boat.svg | 0 .../seed}/directus/files/icons/solid/cafe.svg | 0 .../directus/files/icons/solid/calendar.svg | 0 .../seed}/directus/files/icons/solid/camp.svg | 0 .../directus/files/icons/solid/cannabis.svg | 0 .../directus/files/icons/solid/circle-dot.svg | 0 .../directus/files/icons/solid/compass.svg | 0 .../directus/files/icons/solid/crosshair.svg | 0 .../seed}/directus/files/icons/solid/drum.svg | 0 .../seed}/directus/files/icons/solid/fire.svg | 0 .../directus/files/icons/solid/flower.svg | 0 .../directus/files/icons/solid/group.svg | 0 .../directus/files/icons/solid/house.svg | 0 .../files/icons/solid/liebevoll.jetzt.svg | 0 .../directus/files/icons/solid/music.svg | 0 .../directus/files/icons/solid/network.svg | 0 .../directus/files/icons/solid/offer.svg | 0 .../directus/files/icons/solid/plant.svg | 0 .../directus/files/icons/solid/point.svg | 0 .../directus/files/icons/solid/puzzle.svg | 0 .../directus/files/icons/solid/quest.svg | 0 .../seed}/directus/files/icons/solid/shop.svg | 0 .../files/icons/solid/staff-snake.svg | 0 .../seed}/directus/files/icons/solid/star.svg | 0 .../directus/files/icons/solid/steps.svg | 0 .../directus/files/icons/solid/suitecase.svg | 0 .../seed}/directus/files/icons/solid/tree.svg | 0 .../seed}/directus/files/icons/solid/user.svg | 0 .../seed}/directus/files/utopia-logo.svg | 0 .../seed}/directus/files/vessel.svg | 0 .../seed}/directus/gallery.json | 0 .../seed}/directus/items.json | 0 .../seed}/directus/layers.json | 0 .../seed}/directus/layers_maps.json | 0 .../seed}/directus/maps.json | 0 .../seed}/directus/marker_icons.json | 0 .../seed}/directus/startEnd.json | 0 .../seed}/directus/texts.json | 0 .../seed}/directus/types.json | 0 .../seed}/manual/branding-logo.sql | 0 .../seed}/manual/register-role.sql | 0 .../seed}/manual/type-ui-components.sql | 0 .../snapshot/collections/Landingpage.json | 0 .../snapshot/collections/Themes.json | 0 .../snapshot/collections/UI_Components.json | 0 .../snapshot/collections/UI_Config.json | 0 .../snapshot/collections/attestations.json | 0 .../attestations_directus_users.json | 0 .../snapshot/collections/contactInfos.json | 0 .../snapshot/collections/crowdfundings.json | 0 .../collections/directus_sync_id_map.json | 0 .../snapshot/collections/features.json | 0 .../snapshot/collections/gallery.json | 0 .../snapshot/collections/groupSubheaders.json | 0 .../groupSubheaders_groupTypes.json | 0 .../snapshot/collections/groupTypes.json | 0 .../snapshot/collections/inviteLinks.json | 0 .../snapshot/collections/itemSecrets.json | 0 .../snapshot/collections/items.json | 0 .../snapshot/collections/items_files.json | 0 .../snapshot/collections/items_items.json | 0 .../snapshot/collections/items_tags.json | 0 .../snapshot/collections/items_tags_1.json | 0 .../junction_directus_users_tags.json | 0 .../junction_directus_users_tags_1.json | 0 .../snapshot/collections/layers.json | 0 .../collections/layers_directus_users_1.json | 0 .../snapshot/collections/layers_files.json | 0 .../snapshot/collections/layers_maps.json | 0 .../snapshot/collections/maps.json | 0 .../snapshot/collections/marker_icons.json | 0 .../collections/oceannomads_events.json | 0 .../collections/oceannomads_profiles.json | 0 .../snapshot/collections/relations.json | 0 .../snapshot/collections/startEnd.json | 0 .../snapshot/collections/tags.json | 0 .../snapshot/collections/team.json | 0 .../snapshot/collections/texts.json | 0 .../snapshot/collections/types.json | 0 .../collections/types_profileTemplate.json | 0 .../snapshot/fields/Themes/theme.json | 0 .../snapshot/fields/attestations/color.json | 0 .../fields/attestations/date_created.json | 0 .../snapshot/fields/attestations/emoji.json | 0 .../snapshot/fields/attestations/id.json | 0 .../snapshot/fields/attestations/shape.json | 0 .../snapshot/fields/attestations/text.json | 0 .../snapshot/fields/attestations/to.json | 0 .../fields/attestations/user_created.json | 0 .../attestations_id.json | 0 .../directus_users_id.json | 0 .../attestations_directus_users/id.json | 0 .../fields/contactInfos/date_created.json | 0 .../fields/contactInfos/date_updated.json | 0 .../snapshot/fields/contactInfos/heading.json | 0 .../snapshot/fields/contactInfos/id.json | 0 .../fields/contactInfos/user_created.json | 0 .../fields/contactInfos/user_updated.json | 0 .../fields/crowdfundings/date_created.json | 0 .../fields/crowdfundings/date_updated.json | 0 .../snapshot/fields/crowdfundings/id.json | 0 .../fields/crowdfundings/user_created.json | 0 .../fields/crowdfundings/user_updated.json | 0 .../directus_sync_id_map/created_at.json | 0 .../fields/directus_sync_id_map/id.json | 0 .../fields/directus_sync_id_map/local_id.json | 0 .../fields/directus_sync_id_map/sync_id.json | 0 .../fields/directus_sync_id_map/table.json | 0 .../fields/directus_users/imported.json | 0 .../fields/directus_users/notifications.json | 0 .../fields/directus_users/wc_user.json | 0 .../fields/features/date_created.json | 0 .../fields/features/date_updated.json | 0 .../snapshot/fields/features/heading.json | 0 .../snapshot/fields/features/id.json | 0 .../snapshot/fields/features/sort.json | 0 .../snapshot/fields/features/status.json | 0 .../snapshot/fields/features/symbol.json | 0 .../snapshot/fields/features/text.json | 0 .../fields/features/user_created.json | 0 .../fields/features/user_updated.json | 0 .../snapshot/fields/gallery/date_created.json | 0 .../snapshot/fields/gallery/date_updated.json | 0 .../fields/gallery/hideInputLabel.json | 0 .../snapshot/fields/gallery/id.json | 0 .../snapshot/fields/gallery/user_created.json | 0 .../snapshot/fields/gallery/user_updated.json | 0 .../fields/groupSubheaders/date_created.json | 0 .../fields/groupSubheaders/date_updated.json | 0 .../fields/groupSubheaders/groupStates.json | 0 .../fields/groupSubheaders/groupTypes.json | 0 .../snapshot/fields/groupSubheaders/id.json | 0 .../fields/groupSubheaders/platforms.json | 0 .../fields/groupSubheaders/shareBaseUrl.json | 0 .../fields/groupSubheaders/user_created.json | 0 .../fields/groupSubheaders/user_updated.json | 0 .../groupSubheaders_id.json | 0 .../groupTypes_id.json | 0 .../fields/groupSubheaders_groupTypes/id.json | 0 .../snapshot/fields/groupTypes/color.json | 0 .../fields/groupTypes/date_created.json | 0 .../fields/groupTypes/date_updated.json | 0 .../snapshot/fields/groupTypes/id.json | 0 .../snapshot/fields/groupTypes/image.json | 0 .../fields/groupTypes/markerIcon.json | 0 .../snapshot/fields/groupTypes/name.json | 0 .../fields/groupTypes/user_created.json | 0 .../fields/groupTypes/user_updated.json | 0 .../fields/inviteLinks/date_created.json | 0 .../fields/inviteLinks/date_updated.json | 0 .../snapshot/fields/inviteLinks/id.json | 0 .../fields/inviteLinks/user_created.json | 0 .../fields/inviteLinks/user_updated.json | 0 .../snapshot/fields/itemSecrets/item.json | 0 .../snapshot/fields/itemSecrets/secret.json | 0 .../snapshot/fields/items/color.json | 0 .../snapshot/fields/items/contact.json | 0 .../snapshot/fields/items/date_created.json | 0 .../snapshot/fields/items/date_updated.json | 0 .../snapshot/fields/items/draft.json | 0 .../snapshot/fields/items/end.json | 0 .../snapshot/fields/items/extended.json | 0 .../snapshot/fields/items/gallery.json | 0 .../snapshot/fields/items/group_type.json | 0 .../snapshot/fields/items/id.json | 0 .../snapshot/fields/items/image.json | 0 .../snapshot/fields/items/image_external.json | 0 .../snapshot/fields/items/layer.json | 0 .../snapshot/fields/items/markerIcon.json | 0 .../snapshot/fields/items/name.json | 0 .../snapshot/fields/items/needs.json | 0 .../fields/items/next_appointment.json | 0 .../snapshot/fields/items/offers.json | 0 .../fields/items/openCollectiveSlug.json | 0 .../snapshot/fields/items/parent.json | 0 .../snapshot/fields/items/position.json | 0 .../snapshot/fields/items/public_edit.json | 0 .../snapshot/fields/items/relations.json | 0 .../snapshot/fields/items/secrets.json | 0 .../snapshot/fields/items/slug.json | 0 .../snapshot/fields/items/start.json | 0 .../snapshot/fields/items/status.json | 0 .../snapshot/fields/items/subname.json | 0 .../snapshot/fields/items/telephone.json | 0 .../snapshot/fields/items/text.json | 0 .../snapshot/fields/items/user_created.json | 0 .../snapshot/fields/items/user_updated.json | 0 .../fields/items_files/directus_files_id.json | 0 .../snapshot/fields/items_files/id.json | 0 .../snapshot/fields/items_files/items_id.json | 0 .../snapshot/fields/items_items/id.json | 0 .../snapshot/fields/items_items/items_id.json | 0 .../fields/items_items/related_items_id.json | 0 .../snapshot/fields/items_items/type.json | 0 .../snapshot/fields/items_tags/id.json | 0 .../snapshot/fields/items_tags/items_id.json | 0 .../snapshot/fields/items_tags/tags_id.json | 0 .../snapshot/fields/items_tags_1/id.json | 0 .../fields/items_tags_1/items_id.json | 0 .../snapshot/fields/items_tags_1/tags_id.json | 0 .../directus_users_id.json | 0 .../junction_directus_users_tags/id.json | 0 .../junction_directus_users_tags/tags_id.json | 0 .../directus_users_id.json | 0 .../junction_directus_users_tags_1/id.json | 0 .../tags_id.json | 0 .../snapshot/fields/layers/Marker.json | 0 .../fields/layers/divider-yaul5v.json | 0 .../snapshot/fields/layers/id.json | 0 .../fields/layers/index_plus_button.json | 0 .../snapshot/fields/layers/itemType.json | 0 .../snapshot/fields/layers/item_presets.json | 0 .../snapshot/fields/layers/listed.json | 0 .../snapshot/fields/layers/maps.json | 0 .../fields/layers/markerDefaultColor2.json | 0 .../snapshot/fields/layers/markerIcon.json | 0 .../snapshot/fields/layers/markerShape.json | 0 .../snapshot/fields/layers/menuColor.json | 0 .../snapshot/fields/layers/menuText.json | 0 .../snapshot/fields/layers/name.json | 0 .../snapshot/fields/layers/notifications.json | 0 .../fields/layers/onlyOnePerOwner.json | 0 .../fields/layers/public_edit_items.json | 0 .../snapshot/fields/layers/sort.json | 0 .../fields/layers/userProfileLayer.json | 0 .../directus_users_id.json | 0 .../fields/layers_directus_users_1/id.json | 0 .../layers_directus_users_1/layers_id.json | 0 .../layers_files/directus_files_id.json | 0 .../snapshot/fields/layers_files/id.json | 0 .../fields/layers_files/layers_id.json | 0 .../snapshot/fields/layers_maps/id.json | 0 .../fields/layers_maps/layers_id.json | 0 .../snapshot/fields/layers_maps/maps_id.json | 0 .../snapshot/fields/maps/Controls.json | 0 .../snapshot/fields/maps/Presets.json | 0 .../snapshot/fields/maps/center.json | 0 .../snapshot/fields/maps/custom_text.json | 0 .../snapshot/fields/maps/default_theme.json | 0 .../snapshot/fields/maps/donation_widget.json | 0 .../fields/maps/expand_layer_control.json | 0 .../snapshot/fields/maps/geo.json | 0 .../snapshot/fields/maps/hide_signup.json | 0 .../snapshot/fields/maps/id.json | 0 .../snapshot/fields/maps/info_open.json | 0 .../snapshot/fields/maps/layers.json | 0 .../snapshot/fields/maps/logo.json | 0 .../snapshot/fields/maps/name.json | 0 .../snapshot/fields/maps/own_tag_space.json | 0 .../fields/maps/show_filter_control.json | 0 .../fields/maps/show_gratitude_control.json | 0 .../fields/maps/show_layer_control.json | 0 .../fields/maps/show_request_password.json | 0 .../fields/maps/show_theme_control.json | 0 .../fields/maps/show_zoom_control.json | 0 .../snapshot/fields/maps/tile_server.json | 0 .../fields/maps/tile_server_attribution.json | 0 .../snapshot/fields/maps/tile_server_url.json | 0 .../snapshot/fields/maps/url.json | 0 .../snapshot/fields/maps/zoom.json | 0 .../snapshot/fields/marker_icons/id.json | 0 .../snapshot/fields/marker_icons/image.json | 0 .../fields/marker_icons/image_outline.json | 0 .../snapshot/fields/marker_icons/size.json | 0 .../fields/marker_icons/size_outline.json | 0 .../oceannomads_events/creator_email.json | 0 .../oceannomads_events/date_created.json | 0 .../oceannomads_events/date_updated.json | 0 .../fields/oceannomads_events/end.json | 0 .../fields/oceannomads_events/id.json | 0 .../fields/oceannomads_events/location.json | 0 .../fields/oceannomads_events/start.json | 0 .../fields/oceannomads_events/text.json | 0 .../fields/oceannomads_events/title.json | 0 .../oceannomads_profiles/avatar_url.json | 0 .../oceannomads_profiles/date_created.json | 0 .../oceannomads_profiles/date_updated.json | 0 .../fields/oceannomads_profiles/email.json | 0 .../oceannomads_profiles/first_name.json | 0 .../fields/oceannomads_profiles/id.json | 0 .../oceannomads_profiles/last_name.json | 0 .../fields/oceannomads_profiles/location.json | 0 .../snapshot/fields/relations/id.json | 0 .../snapshot/fields/relations/relation.json | 0 .../fields/startEnd/date_created.json | 0 .../fields/startEnd/date_updated.json | 0 .../snapshot/fields/startEnd/id.json | 0 .../fields/startEnd/user_created.json | 0 .../fields/startEnd/user_updated.json | 0 .../snapshot/fields/tags/color.json | 0 .../snapshot/fields/tags/date_created.json | 0 .../snapshot/fields/tags/id.json | 0 .../snapshot/fields/tags/map.json | 0 .../snapshot/fields/tags/name.json | 0 .../snapshot/fields/tags/offer_or_need.json | 0 .../snapshot/fields/tags/user_created.json | 0 .../snapshot/fields/team/date_created.json | 0 .../snapshot/fields/team/date_updated.json | 0 .../snapshot/fields/team/id.json | 0 .../snapshot/fields/team/image.json | 0 .../snapshot/fields/team/name.json | 0 .../snapshot/fields/team/role.json | 0 .../snapshot/fields/team/sort.json | 0 .../snapshot/fields/team/status.json | 0 .../snapshot/fields/team/text.json | 0 .../snapshot/fields/team/user_created.json | 0 .../snapshot/fields/team/user_updated.json | 0 .../snapshot/fields/texts/dataField.json | 0 .../snapshot/fields/texts/date_created.json | 0 .../snapshot/fields/texts/date_updated.json | 0 .../snapshot/fields/texts/heading.json | 0 .../snapshot/fields/texts/hideWhenEmpty.json | 0 .../snapshot/fields/texts/id.json | 0 .../fields/texts/showMarkdownHint.json | 0 .../snapshot/fields/texts/size.json | 0 .../snapshot/fields/texts/user_created.json | 0 .../snapshot/fields/texts/user_updated.json | 0 .../snapshot/fields/types/Profile.json | 0 .../snapshot/fields/types/Tabs.json | 0 .../fields/types/accordion-ykcgp6.json | 0 .../snapshot/fields/types/active_tabs.json | 0 .../snapshot/fields/types/button_label.json | 0 .../fields/types/custom_profile_url.json | 0 .../snapshot/fields/types/custom_text.json | 0 .../snapshot/fields/types/date_created.json | 0 .../snapshot/fields/types/date_updated.json | 0 .../snapshot/fields/types/icon_as_labels.json | 0 .../snapshot/fields/types/id.json | 0 .../snapshot/fields/types/name.json | 0 .../fields/types/offers_and_needs.json | 0 .../snapshot/fields/types/onepager.json | 0 .../fields/types/profileTemplate.json | 0 .../snapshot/fields/types/questlog.json | 0 .../snapshot/fields/types/relations.json | 0 .../types/show_header_view_in_form.json | 0 .../snapshot/fields/types/show_name.json | 0 .../fields/types/show_name_input.json | 0 .../fields/types/show_profile_button.json | 0 .../snapshot/fields/types/show_start_end.json | 0 .../fields/types/show_start_end_input.json | 0 .../snapshot/fields/types/show_text.json | 0 .../fields/types/show_text_input.json | 0 .../snapshot/fields/types/small_form.json | 0 .../fields/types/small_form_edit.json | 0 .../snapshot/fields/types/small_view.json | 0 .../snapshot/fields/types/template.json | 0 .../snapshot/fields/types/text.json | 0 .../snapshot/fields/types/text_area.json | 0 .../fields/types/text_input_label.json | 0 .../snapshot/fields/types/user_created.json | 0 .../snapshot/fields/types/user_updated.json | 0 .../types_profileTemplate/collection.json | 0 .../fields/types_profileTemplate/id.json | 0 .../fields/types_profileTemplate/item.json | 0 .../fields/types_profileTemplate/sort.json | 0 .../types_profileTemplate/types_id.json | 0 .../{ => development}/snapshot/info.json | 0 .../relations/attestations/user_created.json | 0 .../attestations_id.json | 0 .../directus_users_id.json | 0 .../relations/contactInfos/user_created.json | 0 .../relations/contactInfos/user_updated.json | 0 .../relations/crowdfundings/user_created.json | 0 .../relations/crowdfundings/user_updated.json | 0 .../relations/features/user_created.json | 0 .../relations/features/user_updated.json | 0 .../relations/gallery/user_created.json | 0 .../relations/gallery/user_updated.json | 0 .../groupSubheaders/user_created.json | 0 .../groupSubheaders/user_updated.json | 0 .../groupSubheaders_id.json | 0 .../groupTypes_id.json | 0 .../snapshot/relations/groupTypes/image.json | 0 .../relations/groupTypes/markerIcon.json | 0 .../relations/groupTypes/user_created.json | 0 .../relations/groupTypes/user_updated.json | 0 .../relations/inviteLinks/user_created.json | 0 .../relations/inviteLinks/user_updated.json | 0 .../snapshot/relations/itemSecrets/item.json | 0 .../snapshot/relations/items/image.json | 0 .../snapshot/relations/items/layer.json | 0 .../snapshot/relations/items/markerIcon.json | 0 .../snapshot/relations/items/parent.json | 0 .../relations/items/user_created.json | 0 .../relations/items/user_updated.json | 0 .../items_files/directus_files_id.json | 0 .../relations/items_files/items_id.json | 0 .../relations/items_items/items_id.json | 0 .../items_items/related_items_id.json | 0 .../relations/items_tags/items_id.json | 0 .../relations/items_tags/tags_id.json | 0 .../relations/items_tags_1/items_id.json | 0 .../relations/items_tags_1/tags_id.json | 0 .../directus_users_id.json | 0 .../junction_directus_users_tags/tags_id.json | 0 .../directus_users_id.json | 0 .../tags_id.json | 0 .../snapshot/relations/layers/itemType.json | 0 .../snapshot/relations/layers/markerIcon.json | 0 .../directus_users_id.json | 0 .../layers_directus_users_1/layers_id.json | 0 .../layers_files/directus_files_id.json | 0 .../relations/layers_files/layers_id.json | 0 .../relations/layers_maps/layers_id.json | 0 .../relations/layers_maps/maps_id.json | 0 .../relations/maps/default_theme.json | 0 .../snapshot/relations/maps/logo.json | 0 .../relations/marker_icons/image.json | 0 .../relations/marker_icons/image_outline.json | 0 .../relations/startEnd/user_created.json | 0 .../relations/startEnd/user_updated.json | 0 .../snapshot/relations/tags/map.json | 0 .../snapshot/relations/team/image.json | 0 .../snapshot/relations/team/user_created.json | 0 .../snapshot/relations/team/user_updated.json | 0 .../relations/texts/user_created.json | 0 .../relations/texts/user_updated.json | 0 .../relations/types/user_created.json | 0 .../relations/types/user_updated.json | 0 .../relations/types_profileTemplate/item.json | 0 .../types_profileTemplate/types_id.json | 0 .../{ => development}/specs/item.graphql | 0 .../{ => development}/specs/openapi.json | 0 .../{ => development}/specs/system.graphql | 0 backend/seed.sh | 19 +++++-- 449 files changed, 80 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/test.backend.seed.yml rename backend/directus-config/{seeds => }/.gitignore (100%) rename backend/directus-config/{ => development}/collections/dashboards.json (100%) rename backend/directus-config/{ => development}/collections/flows.json (100%) rename backend/directus-config/{ => development}/collections/folders.json (100%) rename backend/directus-config/{ => development}/collections/operations.json (100%) rename backend/directus-config/{ => development}/collections/panels.json (100%) rename backend/directus-config/{ => development}/collections/permissions.json (100%) rename backend/directus-config/{ => development}/collections/policies.json (100%) rename backend/directus-config/{ => development}/collections/presets.json (100%) rename backend/directus-config/{ => development}/collections/roles.json (100%) rename backend/directus-config/{ => development}/collections/settings.json (100%) rename backend/directus-config/{ => development}/collections/translations.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/directus_files.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/directus_files_marker_outline.json (85%) rename backend/directus-config/{seeds/development => development/seed}/directus/directus_files_marker_solid.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/outline/boat.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/outline/calendar.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/outline/house.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/outline/map-pin.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/outline/user.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/outline/users.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/bicycle.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/boat.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/cafe.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/calendar.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/camp.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/cannabis.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/circle-dot.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/compass.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/crosshair.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/drum.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/fire.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/flower.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/group.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/house.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/liebevoll.jetzt.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/music.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/network.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/offer.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/plant.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/point.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/puzzle.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/quest.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/shop.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/staff-snake.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/star.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/steps.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/suitecase.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/tree.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/icons/solid/user.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/utopia-logo.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/files/vessel.svg (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/gallery.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/items.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/layers.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/layers_maps.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/maps.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/marker_icons.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/startEnd.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/texts.json (100%) rename backend/directus-config/{seeds/development => development/seed}/directus/types.json (100%) rename backend/directus-config/{seeds/development => development/seed}/manual/branding-logo.sql (100%) rename backend/directus-config/{seeds/development => development/seed}/manual/register-role.sql (100%) rename backend/directus-config/{seeds/development => development/seed}/manual/type-ui-components.sql (100%) rename backend/directus-config/{ => development}/snapshot/collections/Landingpage.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/Themes.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/UI_Components.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/UI_Config.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/attestations.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/attestations_directus_users.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/contactInfos.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/crowdfundings.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/directus_sync_id_map.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/features.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/gallery.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/groupSubheaders.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/groupSubheaders_groupTypes.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/groupTypes.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/inviteLinks.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/itemSecrets.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/items.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/items_files.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/items_items.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/items_tags.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/items_tags_1.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/junction_directus_users_tags.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/junction_directus_users_tags_1.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/layers.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/layers_directus_users_1.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/layers_files.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/layers_maps.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/maps.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/marker_icons.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/oceannomads_events.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/oceannomads_profiles.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/relations.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/startEnd.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/tags.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/team.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/texts.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/types.json (100%) rename backend/directus-config/{ => development}/snapshot/collections/types_profileTemplate.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/Themes/theme.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/color.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/emoji.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/shape.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/to.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations_directus_users/attestations_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations_directus_users/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/attestations_directus_users/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/contactInfos/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/contactInfos/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/contactInfos/heading.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/contactInfos/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/contactInfos/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/contactInfos/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/crowdfundings/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/crowdfundings/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/crowdfundings/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/crowdfundings/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/crowdfundings/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_sync_id_map/created_at.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_sync_id_map/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_sync_id_map/local_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_sync_id_map/sync_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_sync_id_map/table.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_users/imported.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_users/notifications.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/directus_users/wc_user.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/heading.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/sort.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/status.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/symbol.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/features/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/gallery/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/gallery/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/gallery/hideInputLabel.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/gallery/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/gallery/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/gallery/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/groupStates.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/groupTypes.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/platforms.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/shareBaseUrl.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders_groupTypes/groupSubheaders_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders_groupTypes/groupTypes_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupSubheaders_groupTypes/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/color.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/image.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/markerIcon.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/groupTypes/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/inviteLinks/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/inviteLinks/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/inviteLinks/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/inviteLinks/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/inviteLinks/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/itemSecrets/item.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/itemSecrets/secret.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/color.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/contact.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/draft.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/end.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/extended.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/gallery.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/group_type.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/image.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/image_external.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/layer.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/markerIcon.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/needs.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/next_appointment.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/offers.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/openCollectiveSlug.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/parent.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/position.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/public_edit.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/relations.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/secrets.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/slug.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/start.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/status.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/subname.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/telephone.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_files/directus_files_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_files/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_files/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_items/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_items/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_items/related_items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_items/type.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_tags/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_tags/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_tags/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_tags_1/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_tags_1/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/items_tags_1/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/junction_directus_users_tags/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/junction_directus_users_tags/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/junction_directus_users_tags/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/junction_directus_users_tags_1/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/junction_directus_users_tags_1/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/junction_directus_users_tags_1/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/Marker.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/divider-yaul5v.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/index_plus_button.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/itemType.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/item_presets.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/listed.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/maps.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/markerDefaultColor2.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/markerIcon.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/markerShape.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/menuColor.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/menuText.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/notifications.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/onlyOnePerOwner.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/public_edit_items.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/sort.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers/userProfileLayer.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_directus_users_1/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_directus_users_1/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_directus_users_1/layers_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_files/directus_files_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_files/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_files/layers_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_maps/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_maps/layers_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/layers_maps/maps_id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/Controls.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/Presets.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/center.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/custom_text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/default_theme.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/donation_widget.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/expand_layer_control.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/geo.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/hide_signup.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/info_open.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/layers.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/logo.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/own_tag_space.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/show_filter_control.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/show_gratitude_control.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/show_layer_control.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/show_request_password.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/show_theme_control.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/show_zoom_control.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/tile_server.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/tile_server_attribution.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/tile_server_url.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/url.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/maps/zoom.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/marker_icons/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/marker_icons/image.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/marker_icons/image_outline.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/marker_icons/size.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/marker_icons/size_outline.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/creator_email.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/end.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/location.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/start.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_events/title.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/avatar_url.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/email.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/first_name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/last_name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/oceannomads_profiles/location.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/relations/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/relations/relation.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/startEnd/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/startEnd/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/startEnd/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/startEnd/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/startEnd/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/color.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/map.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/offer_or_need.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/tags/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/image.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/role.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/sort.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/status.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/team/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/dataField.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/heading.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/hideWhenEmpty.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/showMarkdownHint.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/size.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/texts/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/Profile.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/Tabs.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/accordion-ykcgp6.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/active_tabs.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/button_label.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/custom_profile_url.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/custom_text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/date_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/date_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/icon_as_labels.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/offers_and_needs.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/onepager.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/profileTemplate.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/questlog.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/relations.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_header_view_in_form.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_name.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_name_input.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_profile_button.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_start_end.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_start_end_input.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/show_text_input.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/small_form.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/small_form_edit.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/small_view.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/template.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/text.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/text_area.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/text_input_label.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types_profileTemplate/collection.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types_profileTemplate/id.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types_profileTemplate/item.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types_profileTemplate/sort.json (100%) rename backend/directus-config/{ => development}/snapshot/fields/types_profileTemplate/types_id.json (100%) rename backend/directus-config/{ => development}/snapshot/info.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/attestations/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/attestations_directus_users/attestations_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/attestations_directus_users/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/contactInfos/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/contactInfos/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/crowdfundings/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/crowdfundings/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/features/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/features/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/gallery/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/gallery/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupSubheaders/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupSubheaders/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupSubheaders_groupTypes/groupSubheaders_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupSubheaders_groupTypes/groupTypes_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupTypes/image.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupTypes/markerIcon.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupTypes/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/groupTypes/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/inviteLinks/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/inviteLinks/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/itemSecrets/item.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items/image.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items/layer.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items/markerIcon.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items/parent.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_files/directus_files_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_files/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_items/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_items/related_items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_tags/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_tags/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_tags_1/items_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/items_tags_1/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/junction_directus_users_tags/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/junction_directus_users_tags/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/junction_directus_users_tags_1/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/junction_directus_users_tags_1/tags_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers/itemType.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers/markerIcon.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers_directus_users_1/directus_users_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers_directus_users_1/layers_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers_files/directus_files_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers_files/layers_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers_maps/layers_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/layers_maps/maps_id.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/maps/default_theme.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/maps/logo.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/marker_icons/image.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/marker_icons/image_outline.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/startEnd/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/startEnd/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/tags/map.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/team/image.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/team/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/team/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/texts/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/texts/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/types/user_created.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/types/user_updated.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/types_profileTemplate/item.json (100%) rename backend/directus-config/{ => development}/snapshot/relations/types_profileTemplate/types_id.json (100%) rename backend/directus-config/{ => development}/specs/item.graphql (100%) rename backend/directus-config/{ => development}/specs/openapi.json (100%) rename backend/directus-config/{ => development}/specs/system.graphql (100%) diff --git a/.github/workflows/test.backend.seed.yml b/.github/workflows/test.backend.seed.yml new file mode 100644 index 00000000..50775dcc --- /dev/null +++ b/.github/workflows/test.backend.seed.yml @@ -0,0 +1,54 @@ +name: "test:build test docker" + +on: push + +jobs: + files-changed: + name: Detect File Changes - build - docker + runs-on: ubuntu-latest + outputs: + changes: ${{ steps.filter.outputs.match }} + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: filter + with: + filters: | + match: + - '.github/workflows/*' + - 'backend/**/*' + + backend-seed: + if: needs.files-changed.outputs.changes == 'true' + name: Backend Seed + needs: files-changed + runs-on: ubuntu-latest + env: + WORKING_DIRECTORY: ./ + steps: + - name: Checkout code + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7 + + - name: Build Docker Production + run: | + mkdir -p ./data/uploads + sudo chmod 777 -R ./data + docker compose -f docker-compose.yml up -d + sleep 5 + cd backend && ./seed.sh + working-directory: ${{env.WORKING_DIRECTORY}} + + #build-development: + # if: needs.files-changed.outputs.changes == 'true' + # name: Build Docker Development + # needs: files-changed + # runs-on: ubuntu-latest + # env: + # WORKING_DIRECTORY: ./ + # steps: + # - name: Checkout code + # uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7 + # + # - name: Build Docker Development + # run: docker compose build + # working-directory: ${{env.WORKING_DIRECTORY}} \ No newline at end of file diff --git a/backend/README.md b/backend/README.md index 9e5e1500..b1af27d0 100644 --- a/backend/README.md +++ b/backend/README.md @@ -6,12 +6,6 @@ To run the backend you can simply execute To fill in all required data execute the following commands in order: ``` cd backend - -npx directus-sync push \ - --directus-url http://localhost:8055 \ - --directus-email admin@it4c.dev \ - --directus-password admin123 - ./seed.sh ``` @@ -22,6 +16,7 @@ In order to pull data from your locally running backend (see [docker-compose](.. ``` npx directus-sync pull \ + --dump-path ./directus-config/development \ --directus-url http://localhost:8055 \ --directus-email admin@it4c.dev \ --directus-password admin123 @@ -32,6 +27,7 @@ npx directus-sync pull \ To push local changes or to seed directus use the following command ``` npx directus-sync push \ + --dump-path ./directus-config/development \ --directus-url http://localhost:8055 \ --directus-email admin@it4c.dev \ --directus-password admin123 diff --git a/backend/directus-config/seeds/.gitignore b/backend/directus-config/.gitignore similarity index 100% rename from backend/directus-config/seeds/.gitignore rename to backend/directus-config/.gitignore diff --git a/backend/directus-config/collections/dashboards.json b/backend/directus-config/development/collections/dashboards.json similarity index 100% rename from backend/directus-config/collections/dashboards.json rename to backend/directus-config/development/collections/dashboards.json diff --git a/backend/directus-config/collections/flows.json b/backend/directus-config/development/collections/flows.json similarity index 100% rename from backend/directus-config/collections/flows.json rename to backend/directus-config/development/collections/flows.json diff --git a/backend/directus-config/collections/folders.json b/backend/directus-config/development/collections/folders.json similarity index 100% rename from backend/directus-config/collections/folders.json rename to backend/directus-config/development/collections/folders.json diff --git a/backend/directus-config/collections/operations.json b/backend/directus-config/development/collections/operations.json similarity index 100% rename from backend/directus-config/collections/operations.json rename to backend/directus-config/development/collections/operations.json diff --git a/backend/directus-config/collections/panels.json b/backend/directus-config/development/collections/panels.json similarity index 100% rename from backend/directus-config/collections/panels.json rename to backend/directus-config/development/collections/panels.json diff --git a/backend/directus-config/collections/permissions.json b/backend/directus-config/development/collections/permissions.json similarity index 100% rename from backend/directus-config/collections/permissions.json rename to backend/directus-config/development/collections/permissions.json diff --git a/backend/directus-config/collections/policies.json b/backend/directus-config/development/collections/policies.json similarity index 100% rename from backend/directus-config/collections/policies.json rename to backend/directus-config/development/collections/policies.json diff --git a/backend/directus-config/collections/presets.json b/backend/directus-config/development/collections/presets.json similarity index 100% rename from backend/directus-config/collections/presets.json rename to backend/directus-config/development/collections/presets.json diff --git a/backend/directus-config/collections/roles.json b/backend/directus-config/development/collections/roles.json similarity index 100% rename from backend/directus-config/collections/roles.json rename to backend/directus-config/development/collections/roles.json diff --git a/backend/directus-config/collections/settings.json b/backend/directus-config/development/collections/settings.json similarity index 100% rename from backend/directus-config/collections/settings.json rename to backend/directus-config/development/collections/settings.json diff --git a/backend/directus-config/collections/translations.json b/backend/directus-config/development/collections/translations.json similarity index 100% rename from backend/directus-config/collections/translations.json rename to backend/directus-config/development/collections/translations.json diff --git a/backend/directus-config/seeds/development/directus/directus_files.json b/backend/directus-config/development/seed/directus/directus_files.json similarity index 100% rename from backend/directus-config/seeds/development/directus/directus_files.json rename to backend/directus-config/development/seed/directus/directus_files.json diff --git a/backend/directus-config/seeds/development/directus/directus_files_marker_outline.json b/backend/directus-config/development/seed/directus/directus_files_marker_outline.json similarity index 85% rename from backend/directus-config/seeds/development/directus/directus_files_marker_outline.json rename to backend/directus-config/development/seed/directus/directus_files_marker_outline.json index 55820371..d0f1735e 100644 --- a/backend/directus-config/seeds/development/directus/directus_files_marker_outline.json +++ b/backend/directus-config/development/seed/directus/directus_files_marker_outline.json @@ -58,6 +58,16 @@ "title": "map pin outline", "tags": [], "description": "map pin outline" + }, + { + "_sync_id": "user-outline", + "_file_path": "./files/icons/outline/user.svg", + "storage": "local", + "folder": "f255d3a7-8ecc-4ee0-b584-dee753317415", + "filename_download": "user-outline.svg", + "title": "user outline", + "tags": [], + "description": "user outline" } ] } diff --git a/backend/directus-config/seeds/development/directus/directus_files_marker_solid.json b/backend/directus-config/development/seed/directus/directus_files_marker_solid.json similarity index 100% rename from backend/directus-config/seeds/development/directus/directus_files_marker_solid.json rename to backend/directus-config/development/seed/directus/directus_files_marker_solid.json diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/boat.svg b/backend/directus-config/development/seed/directus/files/icons/outline/boat.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/outline/boat.svg rename to backend/directus-config/development/seed/directus/files/icons/outline/boat.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/calendar.svg b/backend/directus-config/development/seed/directus/files/icons/outline/calendar.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/outline/calendar.svg rename to backend/directus-config/development/seed/directus/files/icons/outline/calendar.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/house.svg b/backend/directus-config/development/seed/directus/files/icons/outline/house.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/outline/house.svg rename to backend/directus-config/development/seed/directus/files/icons/outline/house.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/map-pin.svg b/backend/directus-config/development/seed/directus/files/icons/outline/map-pin.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/outline/map-pin.svg rename to backend/directus-config/development/seed/directus/files/icons/outline/map-pin.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/user.svg b/backend/directus-config/development/seed/directus/files/icons/outline/user.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/outline/user.svg rename to backend/directus-config/development/seed/directus/files/icons/outline/user.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/outline/users.svg b/backend/directus-config/development/seed/directus/files/icons/outline/users.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/outline/users.svg rename to backend/directus-config/development/seed/directus/files/icons/outline/users.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/bicycle.svg b/backend/directus-config/development/seed/directus/files/icons/solid/bicycle.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/bicycle.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/bicycle.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/boat.svg b/backend/directus-config/development/seed/directus/files/icons/solid/boat.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/boat.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/boat.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/cafe.svg b/backend/directus-config/development/seed/directus/files/icons/solid/cafe.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/cafe.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/cafe.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/calendar.svg b/backend/directus-config/development/seed/directus/files/icons/solid/calendar.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/calendar.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/calendar.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/camp.svg b/backend/directus-config/development/seed/directus/files/icons/solid/camp.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/camp.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/camp.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/cannabis.svg b/backend/directus-config/development/seed/directus/files/icons/solid/cannabis.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/cannabis.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/cannabis.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/circle-dot.svg b/backend/directus-config/development/seed/directus/files/icons/solid/circle-dot.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/circle-dot.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/circle-dot.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/compass.svg b/backend/directus-config/development/seed/directus/files/icons/solid/compass.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/compass.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/compass.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/crosshair.svg b/backend/directus-config/development/seed/directus/files/icons/solid/crosshair.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/crosshair.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/crosshair.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/drum.svg b/backend/directus-config/development/seed/directus/files/icons/solid/drum.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/drum.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/drum.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/fire.svg b/backend/directus-config/development/seed/directus/files/icons/solid/fire.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/fire.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/fire.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/flower.svg b/backend/directus-config/development/seed/directus/files/icons/solid/flower.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/flower.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/flower.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/group.svg b/backend/directus-config/development/seed/directus/files/icons/solid/group.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/group.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/group.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/house.svg b/backend/directus-config/development/seed/directus/files/icons/solid/house.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/house.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/house.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/liebevoll.jetzt.svg b/backend/directus-config/development/seed/directus/files/icons/solid/liebevoll.jetzt.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/liebevoll.jetzt.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/liebevoll.jetzt.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/music.svg b/backend/directus-config/development/seed/directus/files/icons/solid/music.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/music.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/music.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/network.svg b/backend/directus-config/development/seed/directus/files/icons/solid/network.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/network.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/network.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/offer.svg b/backend/directus-config/development/seed/directus/files/icons/solid/offer.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/offer.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/offer.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/plant.svg b/backend/directus-config/development/seed/directus/files/icons/solid/plant.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/plant.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/plant.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/point.svg b/backend/directus-config/development/seed/directus/files/icons/solid/point.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/point.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/point.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/puzzle.svg b/backend/directus-config/development/seed/directus/files/icons/solid/puzzle.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/puzzle.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/puzzle.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/quest.svg b/backend/directus-config/development/seed/directus/files/icons/solid/quest.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/quest.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/quest.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/shop.svg b/backend/directus-config/development/seed/directus/files/icons/solid/shop.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/shop.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/shop.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/staff-snake.svg b/backend/directus-config/development/seed/directus/files/icons/solid/staff-snake.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/staff-snake.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/staff-snake.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/star.svg b/backend/directus-config/development/seed/directus/files/icons/solid/star.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/star.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/star.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/steps.svg b/backend/directus-config/development/seed/directus/files/icons/solid/steps.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/steps.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/steps.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/suitecase.svg b/backend/directus-config/development/seed/directus/files/icons/solid/suitecase.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/suitecase.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/suitecase.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/tree.svg b/backend/directus-config/development/seed/directus/files/icons/solid/tree.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/tree.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/tree.svg diff --git a/backend/directus-config/seeds/development/directus/files/icons/solid/user.svg b/backend/directus-config/development/seed/directus/files/icons/solid/user.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/icons/solid/user.svg rename to backend/directus-config/development/seed/directus/files/icons/solid/user.svg diff --git a/backend/directus-config/seeds/development/directus/files/utopia-logo.svg b/backend/directus-config/development/seed/directus/files/utopia-logo.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/utopia-logo.svg rename to backend/directus-config/development/seed/directus/files/utopia-logo.svg diff --git a/backend/directus-config/seeds/development/directus/files/vessel.svg b/backend/directus-config/development/seed/directus/files/vessel.svg similarity index 100% rename from backend/directus-config/seeds/development/directus/files/vessel.svg rename to backend/directus-config/development/seed/directus/files/vessel.svg diff --git a/backend/directus-config/seeds/development/directus/gallery.json b/backend/directus-config/development/seed/directus/gallery.json similarity index 100% rename from backend/directus-config/seeds/development/directus/gallery.json rename to backend/directus-config/development/seed/directus/gallery.json diff --git a/backend/directus-config/seeds/development/directus/items.json b/backend/directus-config/development/seed/directus/items.json similarity index 100% rename from backend/directus-config/seeds/development/directus/items.json rename to backend/directus-config/development/seed/directus/items.json diff --git a/backend/directus-config/seeds/development/directus/layers.json b/backend/directus-config/development/seed/directus/layers.json similarity index 100% rename from backend/directus-config/seeds/development/directus/layers.json rename to backend/directus-config/development/seed/directus/layers.json diff --git a/backend/directus-config/seeds/development/directus/layers_maps.json b/backend/directus-config/development/seed/directus/layers_maps.json similarity index 100% rename from backend/directus-config/seeds/development/directus/layers_maps.json rename to backend/directus-config/development/seed/directus/layers_maps.json diff --git a/backend/directus-config/seeds/development/directus/maps.json b/backend/directus-config/development/seed/directus/maps.json similarity index 100% rename from backend/directus-config/seeds/development/directus/maps.json rename to backend/directus-config/development/seed/directus/maps.json diff --git a/backend/directus-config/seeds/development/directus/marker_icons.json b/backend/directus-config/development/seed/directus/marker_icons.json similarity index 100% rename from backend/directus-config/seeds/development/directus/marker_icons.json rename to backend/directus-config/development/seed/directus/marker_icons.json diff --git a/backend/directus-config/seeds/development/directus/startEnd.json b/backend/directus-config/development/seed/directus/startEnd.json similarity index 100% rename from backend/directus-config/seeds/development/directus/startEnd.json rename to backend/directus-config/development/seed/directus/startEnd.json diff --git a/backend/directus-config/seeds/development/directus/texts.json b/backend/directus-config/development/seed/directus/texts.json similarity index 100% rename from backend/directus-config/seeds/development/directus/texts.json rename to backend/directus-config/development/seed/directus/texts.json diff --git a/backend/directus-config/seeds/development/directus/types.json b/backend/directus-config/development/seed/directus/types.json similarity index 100% rename from backend/directus-config/seeds/development/directus/types.json rename to backend/directus-config/development/seed/directus/types.json diff --git a/backend/directus-config/seeds/development/manual/branding-logo.sql b/backend/directus-config/development/seed/manual/branding-logo.sql similarity index 100% rename from backend/directus-config/seeds/development/manual/branding-logo.sql rename to backend/directus-config/development/seed/manual/branding-logo.sql diff --git a/backend/directus-config/seeds/development/manual/register-role.sql b/backend/directus-config/development/seed/manual/register-role.sql similarity index 100% rename from backend/directus-config/seeds/development/manual/register-role.sql rename to backend/directus-config/development/seed/manual/register-role.sql diff --git a/backend/directus-config/seeds/development/manual/type-ui-components.sql b/backend/directus-config/development/seed/manual/type-ui-components.sql similarity index 100% rename from backend/directus-config/seeds/development/manual/type-ui-components.sql rename to backend/directus-config/development/seed/manual/type-ui-components.sql diff --git a/backend/directus-config/snapshot/collections/Landingpage.json b/backend/directus-config/development/snapshot/collections/Landingpage.json similarity index 100% rename from backend/directus-config/snapshot/collections/Landingpage.json rename to backend/directus-config/development/snapshot/collections/Landingpage.json diff --git a/backend/directus-config/snapshot/collections/Themes.json b/backend/directus-config/development/snapshot/collections/Themes.json similarity index 100% rename from backend/directus-config/snapshot/collections/Themes.json rename to backend/directus-config/development/snapshot/collections/Themes.json diff --git a/backend/directus-config/snapshot/collections/UI_Components.json b/backend/directus-config/development/snapshot/collections/UI_Components.json similarity index 100% rename from backend/directus-config/snapshot/collections/UI_Components.json rename to backend/directus-config/development/snapshot/collections/UI_Components.json diff --git a/backend/directus-config/snapshot/collections/UI_Config.json b/backend/directus-config/development/snapshot/collections/UI_Config.json similarity index 100% rename from backend/directus-config/snapshot/collections/UI_Config.json rename to backend/directus-config/development/snapshot/collections/UI_Config.json diff --git a/backend/directus-config/snapshot/collections/attestations.json b/backend/directus-config/development/snapshot/collections/attestations.json similarity index 100% rename from backend/directus-config/snapshot/collections/attestations.json rename to backend/directus-config/development/snapshot/collections/attestations.json diff --git a/backend/directus-config/snapshot/collections/attestations_directus_users.json b/backend/directus-config/development/snapshot/collections/attestations_directus_users.json similarity index 100% rename from backend/directus-config/snapshot/collections/attestations_directus_users.json rename to backend/directus-config/development/snapshot/collections/attestations_directus_users.json diff --git a/backend/directus-config/snapshot/collections/contactInfos.json b/backend/directus-config/development/snapshot/collections/contactInfos.json similarity index 100% rename from backend/directus-config/snapshot/collections/contactInfos.json rename to backend/directus-config/development/snapshot/collections/contactInfos.json diff --git a/backend/directus-config/snapshot/collections/crowdfundings.json b/backend/directus-config/development/snapshot/collections/crowdfundings.json similarity index 100% rename from backend/directus-config/snapshot/collections/crowdfundings.json rename to backend/directus-config/development/snapshot/collections/crowdfundings.json diff --git a/backend/directus-config/snapshot/collections/directus_sync_id_map.json b/backend/directus-config/development/snapshot/collections/directus_sync_id_map.json similarity index 100% rename from backend/directus-config/snapshot/collections/directus_sync_id_map.json rename to backend/directus-config/development/snapshot/collections/directus_sync_id_map.json diff --git a/backend/directus-config/snapshot/collections/features.json b/backend/directus-config/development/snapshot/collections/features.json similarity index 100% rename from backend/directus-config/snapshot/collections/features.json rename to backend/directus-config/development/snapshot/collections/features.json diff --git a/backend/directus-config/snapshot/collections/gallery.json b/backend/directus-config/development/snapshot/collections/gallery.json similarity index 100% rename from backend/directus-config/snapshot/collections/gallery.json rename to backend/directus-config/development/snapshot/collections/gallery.json diff --git a/backend/directus-config/snapshot/collections/groupSubheaders.json b/backend/directus-config/development/snapshot/collections/groupSubheaders.json similarity index 100% rename from backend/directus-config/snapshot/collections/groupSubheaders.json rename to backend/directus-config/development/snapshot/collections/groupSubheaders.json diff --git a/backend/directus-config/snapshot/collections/groupSubheaders_groupTypes.json b/backend/directus-config/development/snapshot/collections/groupSubheaders_groupTypes.json similarity index 100% rename from backend/directus-config/snapshot/collections/groupSubheaders_groupTypes.json rename to backend/directus-config/development/snapshot/collections/groupSubheaders_groupTypes.json diff --git a/backend/directus-config/snapshot/collections/groupTypes.json b/backend/directus-config/development/snapshot/collections/groupTypes.json similarity index 100% rename from backend/directus-config/snapshot/collections/groupTypes.json rename to backend/directus-config/development/snapshot/collections/groupTypes.json diff --git a/backend/directus-config/snapshot/collections/inviteLinks.json b/backend/directus-config/development/snapshot/collections/inviteLinks.json similarity index 100% rename from backend/directus-config/snapshot/collections/inviteLinks.json rename to backend/directus-config/development/snapshot/collections/inviteLinks.json diff --git a/backend/directus-config/snapshot/collections/itemSecrets.json b/backend/directus-config/development/snapshot/collections/itemSecrets.json similarity index 100% rename from backend/directus-config/snapshot/collections/itemSecrets.json rename to backend/directus-config/development/snapshot/collections/itemSecrets.json diff --git a/backend/directus-config/snapshot/collections/items.json b/backend/directus-config/development/snapshot/collections/items.json similarity index 100% rename from backend/directus-config/snapshot/collections/items.json rename to backend/directus-config/development/snapshot/collections/items.json diff --git a/backend/directus-config/snapshot/collections/items_files.json b/backend/directus-config/development/snapshot/collections/items_files.json similarity index 100% rename from backend/directus-config/snapshot/collections/items_files.json rename to backend/directus-config/development/snapshot/collections/items_files.json diff --git a/backend/directus-config/snapshot/collections/items_items.json b/backend/directus-config/development/snapshot/collections/items_items.json similarity index 100% rename from backend/directus-config/snapshot/collections/items_items.json rename to backend/directus-config/development/snapshot/collections/items_items.json diff --git a/backend/directus-config/snapshot/collections/items_tags.json b/backend/directus-config/development/snapshot/collections/items_tags.json similarity index 100% rename from backend/directus-config/snapshot/collections/items_tags.json rename to backend/directus-config/development/snapshot/collections/items_tags.json diff --git a/backend/directus-config/snapshot/collections/items_tags_1.json b/backend/directus-config/development/snapshot/collections/items_tags_1.json similarity index 100% rename from backend/directus-config/snapshot/collections/items_tags_1.json rename to backend/directus-config/development/snapshot/collections/items_tags_1.json diff --git a/backend/directus-config/snapshot/collections/junction_directus_users_tags.json b/backend/directus-config/development/snapshot/collections/junction_directus_users_tags.json similarity index 100% rename from backend/directus-config/snapshot/collections/junction_directus_users_tags.json rename to backend/directus-config/development/snapshot/collections/junction_directus_users_tags.json diff --git a/backend/directus-config/snapshot/collections/junction_directus_users_tags_1.json b/backend/directus-config/development/snapshot/collections/junction_directus_users_tags_1.json similarity index 100% rename from backend/directus-config/snapshot/collections/junction_directus_users_tags_1.json rename to backend/directus-config/development/snapshot/collections/junction_directus_users_tags_1.json diff --git a/backend/directus-config/snapshot/collections/layers.json b/backend/directus-config/development/snapshot/collections/layers.json similarity index 100% rename from backend/directus-config/snapshot/collections/layers.json rename to backend/directus-config/development/snapshot/collections/layers.json diff --git a/backend/directus-config/snapshot/collections/layers_directus_users_1.json b/backend/directus-config/development/snapshot/collections/layers_directus_users_1.json similarity index 100% rename from backend/directus-config/snapshot/collections/layers_directus_users_1.json rename to backend/directus-config/development/snapshot/collections/layers_directus_users_1.json diff --git a/backend/directus-config/snapshot/collections/layers_files.json b/backend/directus-config/development/snapshot/collections/layers_files.json similarity index 100% rename from backend/directus-config/snapshot/collections/layers_files.json rename to backend/directus-config/development/snapshot/collections/layers_files.json diff --git a/backend/directus-config/snapshot/collections/layers_maps.json b/backend/directus-config/development/snapshot/collections/layers_maps.json similarity index 100% rename from backend/directus-config/snapshot/collections/layers_maps.json rename to backend/directus-config/development/snapshot/collections/layers_maps.json diff --git a/backend/directus-config/snapshot/collections/maps.json b/backend/directus-config/development/snapshot/collections/maps.json similarity index 100% rename from backend/directus-config/snapshot/collections/maps.json rename to backend/directus-config/development/snapshot/collections/maps.json diff --git a/backend/directus-config/snapshot/collections/marker_icons.json b/backend/directus-config/development/snapshot/collections/marker_icons.json similarity index 100% rename from backend/directus-config/snapshot/collections/marker_icons.json rename to backend/directus-config/development/snapshot/collections/marker_icons.json diff --git a/backend/directus-config/snapshot/collections/oceannomads_events.json b/backend/directus-config/development/snapshot/collections/oceannomads_events.json similarity index 100% rename from backend/directus-config/snapshot/collections/oceannomads_events.json rename to backend/directus-config/development/snapshot/collections/oceannomads_events.json diff --git a/backend/directus-config/snapshot/collections/oceannomads_profiles.json b/backend/directus-config/development/snapshot/collections/oceannomads_profiles.json similarity index 100% rename from backend/directus-config/snapshot/collections/oceannomads_profiles.json rename to backend/directus-config/development/snapshot/collections/oceannomads_profiles.json diff --git a/backend/directus-config/snapshot/collections/relations.json b/backend/directus-config/development/snapshot/collections/relations.json similarity index 100% rename from backend/directus-config/snapshot/collections/relations.json rename to backend/directus-config/development/snapshot/collections/relations.json diff --git a/backend/directus-config/snapshot/collections/startEnd.json b/backend/directus-config/development/snapshot/collections/startEnd.json similarity index 100% rename from backend/directus-config/snapshot/collections/startEnd.json rename to backend/directus-config/development/snapshot/collections/startEnd.json diff --git a/backend/directus-config/snapshot/collections/tags.json b/backend/directus-config/development/snapshot/collections/tags.json similarity index 100% rename from backend/directus-config/snapshot/collections/tags.json rename to backend/directus-config/development/snapshot/collections/tags.json diff --git a/backend/directus-config/snapshot/collections/team.json b/backend/directus-config/development/snapshot/collections/team.json similarity index 100% rename from backend/directus-config/snapshot/collections/team.json rename to backend/directus-config/development/snapshot/collections/team.json diff --git a/backend/directus-config/snapshot/collections/texts.json b/backend/directus-config/development/snapshot/collections/texts.json similarity index 100% rename from backend/directus-config/snapshot/collections/texts.json rename to backend/directus-config/development/snapshot/collections/texts.json diff --git a/backend/directus-config/snapshot/collections/types.json b/backend/directus-config/development/snapshot/collections/types.json similarity index 100% rename from backend/directus-config/snapshot/collections/types.json rename to backend/directus-config/development/snapshot/collections/types.json diff --git a/backend/directus-config/snapshot/collections/types_profileTemplate.json b/backend/directus-config/development/snapshot/collections/types_profileTemplate.json similarity index 100% rename from backend/directus-config/snapshot/collections/types_profileTemplate.json rename to backend/directus-config/development/snapshot/collections/types_profileTemplate.json diff --git a/backend/directus-config/snapshot/fields/Themes/theme.json b/backend/directus-config/development/snapshot/fields/Themes/theme.json similarity index 100% rename from backend/directus-config/snapshot/fields/Themes/theme.json rename to backend/directus-config/development/snapshot/fields/Themes/theme.json diff --git a/backend/directus-config/snapshot/fields/attestations/color.json b/backend/directus-config/development/snapshot/fields/attestations/color.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/color.json rename to backend/directus-config/development/snapshot/fields/attestations/color.json diff --git a/backend/directus-config/snapshot/fields/attestations/date_created.json b/backend/directus-config/development/snapshot/fields/attestations/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/date_created.json rename to backend/directus-config/development/snapshot/fields/attestations/date_created.json diff --git a/backend/directus-config/snapshot/fields/attestations/emoji.json b/backend/directus-config/development/snapshot/fields/attestations/emoji.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/emoji.json rename to backend/directus-config/development/snapshot/fields/attestations/emoji.json diff --git a/backend/directus-config/snapshot/fields/attestations/id.json b/backend/directus-config/development/snapshot/fields/attestations/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/id.json rename to backend/directus-config/development/snapshot/fields/attestations/id.json diff --git a/backend/directus-config/snapshot/fields/attestations/shape.json b/backend/directus-config/development/snapshot/fields/attestations/shape.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/shape.json rename to backend/directus-config/development/snapshot/fields/attestations/shape.json diff --git a/backend/directus-config/snapshot/fields/attestations/text.json b/backend/directus-config/development/snapshot/fields/attestations/text.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/text.json rename to backend/directus-config/development/snapshot/fields/attestations/text.json diff --git a/backend/directus-config/snapshot/fields/attestations/to.json b/backend/directus-config/development/snapshot/fields/attestations/to.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/to.json rename to backend/directus-config/development/snapshot/fields/attestations/to.json diff --git a/backend/directus-config/snapshot/fields/attestations/user_created.json b/backend/directus-config/development/snapshot/fields/attestations/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations/user_created.json rename to backend/directus-config/development/snapshot/fields/attestations/user_created.json diff --git a/backend/directus-config/snapshot/fields/attestations_directus_users/attestations_id.json b/backend/directus-config/development/snapshot/fields/attestations_directus_users/attestations_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations_directus_users/attestations_id.json rename to backend/directus-config/development/snapshot/fields/attestations_directus_users/attestations_id.json diff --git a/backend/directus-config/snapshot/fields/attestations_directus_users/directus_users_id.json b/backend/directus-config/development/snapshot/fields/attestations_directus_users/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations_directus_users/directus_users_id.json rename to backend/directus-config/development/snapshot/fields/attestations_directus_users/directus_users_id.json diff --git a/backend/directus-config/snapshot/fields/attestations_directus_users/id.json b/backend/directus-config/development/snapshot/fields/attestations_directus_users/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/attestations_directus_users/id.json rename to backend/directus-config/development/snapshot/fields/attestations_directus_users/id.json diff --git a/backend/directus-config/snapshot/fields/contactInfos/date_created.json b/backend/directus-config/development/snapshot/fields/contactInfos/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/contactInfos/date_created.json rename to backend/directus-config/development/snapshot/fields/contactInfos/date_created.json diff --git a/backend/directus-config/snapshot/fields/contactInfos/date_updated.json b/backend/directus-config/development/snapshot/fields/contactInfos/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/contactInfos/date_updated.json rename to backend/directus-config/development/snapshot/fields/contactInfos/date_updated.json diff --git a/backend/directus-config/snapshot/fields/contactInfos/heading.json b/backend/directus-config/development/snapshot/fields/contactInfos/heading.json similarity index 100% rename from backend/directus-config/snapshot/fields/contactInfos/heading.json rename to backend/directus-config/development/snapshot/fields/contactInfos/heading.json diff --git a/backend/directus-config/snapshot/fields/contactInfos/id.json b/backend/directus-config/development/snapshot/fields/contactInfos/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/contactInfos/id.json rename to backend/directus-config/development/snapshot/fields/contactInfos/id.json diff --git a/backend/directus-config/snapshot/fields/contactInfos/user_created.json b/backend/directus-config/development/snapshot/fields/contactInfos/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/contactInfos/user_created.json rename to backend/directus-config/development/snapshot/fields/contactInfos/user_created.json diff --git a/backend/directus-config/snapshot/fields/contactInfos/user_updated.json b/backend/directus-config/development/snapshot/fields/contactInfos/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/contactInfos/user_updated.json rename to backend/directus-config/development/snapshot/fields/contactInfos/user_updated.json diff --git a/backend/directus-config/snapshot/fields/crowdfundings/date_created.json b/backend/directus-config/development/snapshot/fields/crowdfundings/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/crowdfundings/date_created.json rename to backend/directus-config/development/snapshot/fields/crowdfundings/date_created.json diff --git a/backend/directus-config/snapshot/fields/crowdfundings/date_updated.json b/backend/directus-config/development/snapshot/fields/crowdfundings/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/crowdfundings/date_updated.json rename to backend/directus-config/development/snapshot/fields/crowdfundings/date_updated.json diff --git a/backend/directus-config/snapshot/fields/crowdfundings/id.json b/backend/directus-config/development/snapshot/fields/crowdfundings/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/crowdfundings/id.json rename to backend/directus-config/development/snapshot/fields/crowdfundings/id.json diff --git a/backend/directus-config/snapshot/fields/crowdfundings/user_created.json b/backend/directus-config/development/snapshot/fields/crowdfundings/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/crowdfundings/user_created.json rename to backend/directus-config/development/snapshot/fields/crowdfundings/user_created.json diff --git a/backend/directus-config/snapshot/fields/crowdfundings/user_updated.json b/backend/directus-config/development/snapshot/fields/crowdfundings/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/crowdfundings/user_updated.json rename to backend/directus-config/development/snapshot/fields/crowdfundings/user_updated.json diff --git a/backend/directus-config/snapshot/fields/directus_sync_id_map/created_at.json b/backend/directus-config/development/snapshot/fields/directus_sync_id_map/created_at.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_sync_id_map/created_at.json rename to backend/directus-config/development/snapshot/fields/directus_sync_id_map/created_at.json diff --git a/backend/directus-config/snapshot/fields/directus_sync_id_map/id.json b/backend/directus-config/development/snapshot/fields/directus_sync_id_map/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_sync_id_map/id.json rename to backend/directus-config/development/snapshot/fields/directus_sync_id_map/id.json diff --git a/backend/directus-config/snapshot/fields/directus_sync_id_map/local_id.json b/backend/directus-config/development/snapshot/fields/directus_sync_id_map/local_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_sync_id_map/local_id.json rename to backend/directus-config/development/snapshot/fields/directus_sync_id_map/local_id.json diff --git a/backend/directus-config/snapshot/fields/directus_sync_id_map/sync_id.json b/backend/directus-config/development/snapshot/fields/directus_sync_id_map/sync_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_sync_id_map/sync_id.json rename to backend/directus-config/development/snapshot/fields/directus_sync_id_map/sync_id.json diff --git a/backend/directus-config/snapshot/fields/directus_sync_id_map/table.json b/backend/directus-config/development/snapshot/fields/directus_sync_id_map/table.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_sync_id_map/table.json rename to backend/directus-config/development/snapshot/fields/directus_sync_id_map/table.json diff --git a/backend/directus-config/snapshot/fields/directus_users/imported.json b/backend/directus-config/development/snapshot/fields/directus_users/imported.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_users/imported.json rename to backend/directus-config/development/snapshot/fields/directus_users/imported.json diff --git a/backend/directus-config/snapshot/fields/directus_users/notifications.json b/backend/directus-config/development/snapshot/fields/directus_users/notifications.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_users/notifications.json rename to backend/directus-config/development/snapshot/fields/directus_users/notifications.json diff --git a/backend/directus-config/snapshot/fields/directus_users/wc_user.json b/backend/directus-config/development/snapshot/fields/directus_users/wc_user.json similarity index 100% rename from backend/directus-config/snapshot/fields/directus_users/wc_user.json rename to backend/directus-config/development/snapshot/fields/directus_users/wc_user.json diff --git a/backend/directus-config/snapshot/fields/features/date_created.json b/backend/directus-config/development/snapshot/fields/features/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/date_created.json rename to backend/directus-config/development/snapshot/fields/features/date_created.json diff --git a/backend/directus-config/snapshot/fields/features/date_updated.json b/backend/directus-config/development/snapshot/fields/features/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/date_updated.json rename to backend/directus-config/development/snapshot/fields/features/date_updated.json diff --git a/backend/directus-config/snapshot/fields/features/heading.json b/backend/directus-config/development/snapshot/fields/features/heading.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/heading.json rename to backend/directus-config/development/snapshot/fields/features/heading.json diff --git a/backend/directus-config/snapshot/fields/features/id.json b/backend/directus-config/development/snapshot/fields/features/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/id.json rename to backend/directus-config/development/snapshot/fields/features/id.json diff --git a/backend/directus-config/snapshot/fields/features/sort.json b/backend/directus-config/development/snapshot/fields/features/sort.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/sort.json rename to backend/directus-config/development/snapshot/fields/features/sort.json diff --git a/backend/directus-config/snapshot/fields/features/status.json b/backend/directus-config/development/snapshot/fields/features/status.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/status.json rename to backend/directus-config/development/snapshot/fields/features/status.json diff --git a/backend/directus-config/snapshot/fields/features/symbol.json b/backend/directus-config/development/snapshot/fields/features/symbol.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/symbol.json rename to backend/directus-config/development/snapshot/fields/features/symbol.json diff --git a/backend/directus-config/snapshot/fields/features/text.json b/backend/directus-config/development/snapshot/fields/features/text.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/text.json rename to backend/directus-config/development/snapshot/fields/features/text.json diff --git a/backend/directus-config/snapshot/fields/features/user_created.json b/backend/directus-config/development/snapshot/fields/features/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/user_created.json rename to backend/directus-config/development/snapshot/fields/features/user_created.json diff --git a/backend/directus-config/snapshot/fields/features/user_updated.json b/backend/directus-config/development/snapshot/fields/features/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/features/user_updated.json rename to backend/directus-config/development/snapshot/fields/features/user_updated.json diff --git a/backend/directus-config/snapshot/fields/gallery/date_created.json b/backend/directus-config/development/snapshot/fields/gallery/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/gallery/date_created.json rename to backend/directus-config/development/snapshot/fields/gallery/date_created.json diff --git a/backend/directus-config/snapshot/fields/gallery/date_updated.json b/backend/directus-config/development/snapshot/fields/gallery/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/gallery/date_updated.json rename to backend/directus-config/development/snapshot/fields/gallery/date_updated.json diff --git a/backend/directus-config/snapshot/fields/gallery/hideInputLabel.json b/backend/directus-config/development/snapshot/fields/gallery/hideInputLabel.json similarity index 100% rename from backend/directus-config/snapshot/fields/gallery/hideInputLabel.json rename to backend/directus-config/development/snapshot/fields/gallery/hideInputLabel.json diff --git a/backend/directus-config/snapshot/fields/gallery/id.json b/backend/directus-config/development/snapshot/fields/gallery/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/gallery/id.json rename to backend/directus-config/development/snapshot/fields/gallery/id.json diff --git a/backend/directus-config/snapshot/fields/gallery/user_created.json b/backend/directus-config/development/snapshot/fields/gallery/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/gallery/user_created.json rename to backend/directus-config/development/snapshot/fields/gallery/user_created.json diff --git a/backend/directus-config/snapshot/fields/gallery/user_updated.json b/backend/directus-config/development/snapshot/fields/gallery/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/gallery/user_updated.json rename to backend/directus-config/development/snapshot/fields/gallery/user_updated.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/date_created.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/date_created.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/date_created.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/date_updated.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/date_updated.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/date_updated.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/groupStates.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/groupStates.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/groupStates.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/groupStates.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/groupTypes.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/groupTypes.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/groupTypes.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/groupTypes.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/id.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/id.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/id.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/platforms.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/platforms.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/platforms.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/platforms.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/shareBaseUrl.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/shareBaseUrl.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/shareBaseUrl.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/shareBaseUrl.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/user_created.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/user_created.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/user_created.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders/user_updated.json b/backend/directus-config/development/snapshot/fields/groupSubheaders/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders/user_updated.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders/user_updated.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders_groupTypes/groupSubheaders_id.json b/backend/directus-config/development/snapshot/fields/groupSubheaders_groupTypes/groupSubheaders_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders_groupTypes/groupSubheaders_id.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders_groupTypes/groupSubheaders_id.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders_groupTypes/groupTypes_id.json b/backend/directus-config/development/snapshot/fields/groupSubheaders_groupTypes/groupTypes_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders_groupTypes/groupTypes_id.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders_groupTypes/groupTypes_id.json diff --git a/backend/directus-config/snapshot/fields/groupSubheaders_groupTypes/id.json b/backend/directus-config/development/snapshot/fields/groupSubheaders_groupTypes/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupSubheaders_groupTypes/id.json rename to backend/directus-config/development/snapshot/fields/groupSubheaders_groupTypes/id.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/color.json b/backend/directus-config/development/snapshot/fields/groupTypes/color.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/color.json rename to backend/directus-config/development/snapshot/fields/groupTypes/color.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/date_created.json b/backend/directus-config/development/snapshot/fields/groupTypes/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/date_created.json rename to backend/directus-config/development/snapshot/fields/groupTypes/date_created.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/date_updated.json b/backend/directus-config/development/snapshot/fields/groupTypes/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/date_updated.json rename to backend/directus-config/development/snapshot/fields/groupTypes/date_updated.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/id.json b/backend/directus-config/development/snapshot/fields/groupTypes/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/id.json rename to backend/directus-config/development/snapshot/fields/groupTypes/id.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/image.json b/backend/directus-config/development/snapshot/fields/groupTypes/image.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/image.json rename to backend/directus-config/development/snapshot/fields/groupTypes/image.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/markerIcon.json b/backend/directus-config/development/snapshot/fields/groupTypes/markerIcon.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/markerIcon.json rename to backend/directus-config/development/snapshot/fields/groupTypes/markerIcon.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/name.json b/backend/directus-config/development/snapshot/fields/groupTypes/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/name.json rename to backend/directus-config/development/snapshot/fields/groupTypes/name.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/user_created.json b/backend/directus-config/development/snapshot/fields/groupTypes/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/user_created.json rename to backend/directus-config/development/snapshot/fields/groupTypes/user_created.json diff --git a/backend/directus-config/snapshot/fields/groupTypes/user_updated.json b/backend/directus-config/development/snapshot/fields/groupTypes/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/groupTypes/user_updated.json rename to backend/directus-config/development/snapshot/fields/groupTypes/user_updated.json diff --git a/backend/directus-config/snapshot/fields/inviteLinks/date_created.json b/backend/directus-config/development/snapshot/fields/inviteLinks/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/inviteLinks/date_created.json rename to backend/directus-config/development/snapshot/fields/inviteLinks/date_created.json diff --git a/backend/directus-config/snapshot/fields/inviteLinks/date_updated.json b/backend/directus-config/development/snapshot/fields/inviteLinks/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/inviteLinks/date_updated.json rename to backend/directus-config/development/snapshot/fields/inviteLinks/date_updated.json diff --git a/backend/directus-config/snapshot/fields/inviteLinks/id.json b/backend/directus-config/development/snapshot/fields/inviteLinks/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/inviteLinks/id.json rename to backend/directus-config/development/snapshot/fields/inviteLinks/id.json diff --git a/backend/directus-config/snapshot/fields/inviteLinks/user_created.json b/backend/directus-config/development/snapshot/fields/inviteLinks/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/inviteLinks/user_created.json rename to backend/directus-config/development/snapshot/fields/inviteLinks/user_created.json diff --git a/backend/directus-config/snapshot/fields/inviteLinks/user_updated.json b/backend/directus-config/development/snapshot/fields/inviteLinks/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/inviteLinks/user_updated.json rename to backend/directus-config/development/snapshot/fields/inviteLinks/user_updated.json diff --git a/backend/directus-config/snapshot/fields/itemSecrets/item.json b/backend/directus-config/development/snapshot/fields/itemSecrets/item.json similarity index 100% rename from backend/directus-config/snapshot/fields/itemSecrets/item.json rename to backend/directus-config/development/snapshot/fields/itemSecrets/item.json diff --git a/backend/directus-config/snapshot/fields/itemSecrets/secret.json b/backend/directus-config/development/snapshot/fields/itemSecrets/secret.json similarity index 100% rename from backend/directus-config/snapshot/fields/itemSecrets/secret.json rename to backend/directus-config/development/snapshot/fields/itemSecrets/secret.json diff --git a/backend/directus-config/snapshot/fields/items/color.json b/backend/directus-config/development/snapshot/fields/items/color.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/color.json rename to backend/directus-config/development/snapshot/fields/items/color.json diff --git a/backend/directus-config/snapshot/fields/items/contact.json b/backend/directus-config/development/snapshot/fields/items/contact.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/contact.json rename to backend/directus-config/development/snapshot/fields/items/contact.json diff --git a/backend/directus-config/snapshot/fields/items/date_created.json b/backend/directus-config/development/snapshot/fields/items/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/date_created.json rename to backend/directus-config/development/snapshot/fields/items/date_created.json diff --git a/backend/directus-config/snapshot/fields/items/date_updated.json b/backend/directus-config/development/snapshot/fields/items/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/date_updated.json rename to backend/directus-config/development/snapshot/fields/items/date_updated.json diff --git a/backend/directus-config/snapshot/fields/items/draft.json b/backend/directus-config/development/snapshot/fields/items/draft.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/draft.json rename to backend/directus-config/development/snapshot/fields/items/draft.json diff --git a/backend/directus-config/snapshot/fields/items/end.json b/backend/directus-config/development/snapshot/fields/items/end.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/end.json rename to backend/directus-config/development/snapshot/fields/items/end.json diff --git a/backend/directus-config/snapshot/fields/items/extended.json b/backend/directus-config/development/snapshot/fields/items/extended.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/extended.json rename to backend/directus-config/development/snapshot/fields/items/extended.json diff --git a/backend/directus-config/snapshot/fields/items/gallery.json b/backend/directus-config/development/snapshot/fields/items/gallery.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/gallery.json rename to backend/directus-config/development/snapshot/fields/items/gallery.json diff --git a/backend/directus-config/snapshot/fields/items/group_type.json b/backend/directus-config/development/snapshot/fields/items/group_type.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/group_type.json rename to backend/directus-config/development/snapshot/fields/items/group_type.json diff --git a/backend/directus-config/snapshot/fields/items/id.json b/backend/directus-config/development/snapshot/fields/items/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/id.json rename to backend/directus-config/development/snapshot/fields/items/id.json diff --git a/backend/directus-config/snapshot/fields/items/image.json b/backend/directus-config/development/snapshot/fields/items/image.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/image.json rename to backend/directus-config/development/snapshot/fields/items/image.json diff --git a/backend/directus-config/snapshot/fields/items/image_external.json b/backend/directus-config/development/snapshot/fields/items/image_external.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/image_external.json rename to backend/directus-config/development/snapshot/fields/items/image_external.json diff --git a/backend/directus-config/snapshot/fields/items/layer.json b/backend/directus-config/development/snapshot/fields/items/layer.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/layer.json rename to backend/directus-config/development/snapshot/fields/items/layer.json diff --git a/backend/directus-config/snapshot/fields/items/markerIcon.json b/backend/directus-config/development/snapshot/fields/items/markerIcon.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/markerIcon.json rename to backend/directus-config/development/snapshot/fields/items/markerIcon.json diff --git a/backend/directus-config/snapshot/fields/items/name.json b/backend/directus-config/development/snapshot/fields/items/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/name.json rename to backend/directus-config/development/snapshot/fields/items/name.json diff --git a/backend/directus-config/snapshot/fields/items/needs.json b/backend/directus-config/development/snapshot/fields/items/needs.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/needs.json rename to backend/directus-config/development/snapshot/fields/items/needs.json diff --git a/backend/directus-config/snapshot/fields/items/next_appointment.json b/backend/directus-config/development/snapshot/fields/items/next_appointment.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/next_appointment.json rename to backend/directus-config/development/snapshot/fields/items/next_appointment.json diff --git a/backend/directus-config/snapshot/fields/items/offers.json b/backend/directus-config/development/snapshot/fields/items/offers.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/offers.json rename to backend/directus-config/development/snapshot/fields/items/offers.json diff --git a/backend/directus-config/snapshot/fields/items/openCollectiveSlug.json b/backend/directus-config/development/snapshot/fields/items/openCollectiveSlug.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/openCollectiveSlug.json rename to backend/directus-config/development/snapshot/fields/items/openCollectiveSlug.json diff --git a/backend/directus-config/snapshot/fields/items/parent.json b/backend/directus-config/development/snapshot/fields/items/parent.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/parent.json rename to backend/directus-config/development/snapshot/fields/items/parent.json diff --git a/backend/directus-config/snapshot/fields/items/position.json b/backend/directus-config/development/snapshot/fields/items/position.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/position.json rename to backend/directus-config/development/snapshot/fields/items/position.json diff --git a/backend/directus-config/snapshot/fields/items/public_edit.json b/backend/directus-config/development/snapshot/fields/items/public_edit.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/public_edit.json rename to backend/directus-config/development/snapshot/fields/items/public_edit.json diff --git a/backend/directus-config/snapshot/fields/items/relations.json b/backend/directus-config/development/snapshot/fields/items/relations.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/relations.json rename to backend/directus-config/development/snapshot/fields/items/relations.json diff --git a/backend/directus-config/snapshot/fields/items/secrets.json b/backend/directus-config/development/snapshot/fields/items/secrets.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/secrets.json rename to backend/directus-config/development/snapshot/fields/items/secrets.json diff --git a/backend/directus-config/snapshot/fields/items/slug.json b/backend/directus-config/development/snapshot/fields/items/slug.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/slug.json rename to backend/directus-config/development/snapshot/fields/items/slug.json diff --git a/backend/directus-config/snapshot/fields/items/start.json b/backend/directus-config/development/snapshot/fields/items/start.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/start.json rename to backend/directus-config/development/snapshot/fields/items/start.json diff --git a/backend/directus-config/snapshot/fields/items/status.json b/backend/directus-config/development/snapshot/fields/items/status.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/status.json rename to backend/directus-config/development/snapshot/fields/items/status.json diff --git a/backend/directus-config/snapshot/fields/items/subname.json b/backend/directus-config/development/snapshot/fields/items/subname.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/subname.json rename to backend/directus-config/development/snapshot/fields/items/subname.json diff --git a/backend/directus-config/snapshot/fields/items/telephone.json b/backend/directus-config/development/snapshot/fields/items/telephone.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/telephone.json rename to backend/directus-config/development/snapshot/fields/items/telephone.json diff --git a/backend/directus-config/snapshot/fields/items/text.json b/backend/directus-config/development/snapshot/fields/items/text.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/text.json rename to backend/directus-config/development/snapshot/fields/items/text.json diff --git a/backend/directus-config/snapshot/fields/items/user_created.json b/backend/directus-config/development/snapshot/fields/items/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/user_created.json rename to backend/directus-config/development/snapshot/fields/items/user_created.json diff --git a/backend/directus-config/snapshot/fields/items/user_updated.json b/backend/directus-config/development/snapshot/fields/items/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/items/user_updated.json rename to backend/directus-config/development/snapshot/fields/items/user_updated.json diff --git a/backend/directus-config/snapshot/fields/items_files/directus_files_id.json b/backend/directus-config/development/snapshot/fields/items_files/directus_files_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_files/directus_files_id.json rename to backend/directus-config/development/snapshot/fields/items_files/directus_files_id.json diff --git a/backend/directus-config/snapshot/fields/items_files/id.json b/backend/directus-config/development/snapshot/fields/items_files/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_files/id.json rename to backend/directus-config/development/snapshot/fields/items_files/id.json diff --git a/backend/directus-config/snapshot/fields/items_files/items_id.json b/backend/directus-config/development/snapshot/fields/items_files/items_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_files/items_id.json rename to backend/directus-config/development/snapshot/fields/items_files/items_id.json diff --git a/backend/directus-config/snapshot/fields/items_items/id.json b/backend/directus-config/development/snapshot/fields/items_items/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_items/id.json rename to backend/directus-config/development/snapshot/fields/items_items/id.json diff --git a/backend/directus-config/snapshot/fields/items_items/items_id.json b/backend/directus-config/development/snapshot/fields/items_items/items_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_items/items_id.json rename to backend/directus-config/development/snapshot/fields/items_items/items_id.json diff --git a/backend/directus-config/snapshot/fields/items_items/related_items_id.json b/backend/directus-config/development/snapshot/fields/items_items/related_items_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_items/related_items_id.json rename to backend/directus-config/development/snapshot/fields/items_items/related_items_id.json diff --git a/backend/directus-config/snapshot/fields/items_items/type.json b/backend/directus-config/development/snapshot/fields/items_items/type.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_items/type.json rename to backend/directus-config/development/snapshot/fields/items_items/type.json diff --git a/backend/directus-config/snapshot/fields/items_tags/id.json b/backend/directus-config/development/snapshot/fields/items_tags/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_tags/id.json rename to backend/directus-config/development/snapshot/fields/items_tags/id.json diff --git a/backend/directus-config/snapshot/fields/items_tags/items_id.json b/backend/directus-config/development/snapshot/fields/items_tags/items_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_tags/items_id.json rename to backend/directus-config/development/snapshot/fields/items_tags/items_id.json diff --git a/backend/directus-config/snapshot/fields/items_tags/tags_id.json b/backend/directus-config/development/snapshot/fields/items_tags/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_tags/tags_id.json rename to backend/directus-config/development/snapshot/fields/items_tags/tags_id.json diff --git a/backend/directus-config/snapshot/fields/items_tags_1/id.json b/backend/directus-config/development/snapshot/fields/items_tags_1/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_tags_1/id.json rename to backend/directus-config/development/snapshot/fields/items_tags_1/id.json diff --git a/backend/directus-config/snapshot/fields/items_tags_1/items_id.json b/backend/directus-config/development/snapshot/fields/items_tags_1/items_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_tags_1/items_id.json rename to backend/directus-config/development/snapshot/fields/items_tags_1/items_id.json diff --git a/backend/directus-config/snapshot/fields/items_tags_1/tags_id.json b/backend/directus-config/development/snapshot/fields/items_tags_1/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/items_tags_1/tags_id.json rename to backend/directus-config/development/snapshot/fields/items_tags_1/tags_id.json diff --git a/backend/directus-config/snapshot/fields/junction_directus_users_tags/directus_users_id.json b/backend/directus-config/development/snapshot/fields/junction_directus_users_tags/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/junction_directus_users_tags/directus_users_id.json rename to backend/directus-config/development/snapshot/fields/junction_directus_users_tags/directus_users_id.json diff --git a/backend/directus-config/snapshot/fields/junction_directus_users_tags/id.json b/backend/directus-config/development/snapshot/fields/junction_directus_users_tags/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/junction_directus_users_tags/id.json rename to backend/directus-config/development/snapshot/fields/junction_directus_users_tags/id.json diff --git a/backend/directus-config/snapshot/fields/junction_directus_users_tags/tags_id.json b/backend/directus-config/development/snapshot/fields/junction_directus_users_tags/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/junction_directus_users_tags/tags_id.json rename to backend/directus-config/development/snapshot/fields/junction_directus_users_tags/tags_id.json diff --git a/backend/directus-config/snapshot/fields/junction_directus_users_tags_1/directus_users_id.json b/backend/directus-config/development/snapshot/fields/junction_directus_users_tags_1/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/junction_directus_users_tags_1/directus_users_id.json rename to backend/directus-config/development/snapshot/fields/junction_directus_users_tags_1/directus_users_id.json diff --git a/backend/directus-config/snapshot/fields/junction_directus_users_tags_1/id.json b/backend/directus-config/development/snapshot/fields/junction_directus_users_tags_1/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/junction_directus_users_tags_1/id.json rename to backend/directus-config/development/snapshot/fields/junction_directus_users_tags_1/id.json diff --git a/backend/directus-config/snapshot/fields/junction_directus_users_tags_1/tags_id.json b/backend/directus-config/development/snapshot/fields/junction_directus_users_tags_1/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/junction_directus_users_tags_1/tags_id.json rename to backend/directus-config/development/snapshot/fields/junction_directus_users_tags_1/tags_id.json diff --git a/backend/directus-config/snapshot/fields/layers/Marker.json b/backend/directus-config/development/snapshot/fields/layers/Marker.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/Marker.json rename to backend/directus-config/development/snapshot/fields/layers/Marker.json diff --git a/backend/directus-config/snapshot/fields/layers/divider-yaul5v.json b/backend/directus-config/development/snapshot/fields/layers/divider-yaul5v.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/divider-yaul5v.json rename to backend/directus-config/development/snapshot/fields/layers/divider-yaul5v.json diff --git a/backend/directus-config/snapshot/fields/layers/id.json b/backend/directus-config/development/snapshot/fields/layers/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/id.json rename to backend/directus-config/development/snapshot/fields/layers/id.json diff --git a/backend/directus-config/snapshot/fields/layers/index_plus_button.json b/backend/directus-config/development/snapshot/fields/layers/index_plus_button.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/index_plus_button.json rename to backend/directus-config/development/snapshot/fields/layers/index_plus_button.json diff --git a/backend/directus-config/snapshot/fields/layers/itemType.json b/backend/directus-config/development/snapshot/fields/layers/itemType.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/itemType.json rename to backend/directus-config/development/snapshot/fields/layers/itemType.json diff --git a/backend/directus-config/snapshot/fields/layers/item_presets.json b/backend/directus-config/development/snapshot/fields/layers/item_presets.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/item_presets.json rename to backend/directus-config/development/snapshot/fields/layers/item_presets.json diff --git a/backend/directus-config/snapshot/fields/layers/listed.json b/backend/directus-config/development/snapshot/fields/layers/listed.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/listed.json rename to backend/directus-config/development/snapshot/fields/layers/listed.json diff --git a/backend/directus-config/snapshot/fields/layers/maps.json b/backend/directus-config/development/snapshot/fields/layers/maps.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/maps.json rename to backend/directus-config/development/snapshot/fields/layers/maps.json diff --git a/backend/directus-config/snapshot/fields/layers/markerDefaultColor2.json b/backend/directus-config/development/snapshot/fields/layers/markerDefaultColor2.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/markerDefaultColor2.json rename to backend/directus-config/development/snapshot/fields/layers/markerDefaultColor2.json diff --git a/backend/directus-config/snapshot/fields/layers/markerIcon.json b/backend/directus-config/development/snapshot/fields/layers/markerIcon.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/markerIcon.json rename to backend/directus-config/development/snapshot/fields/layers/markerIcon.json diff --git a/backend/directus-config/snapshot/fields/layers/markerShape.json b/backend/directus-config/development/snapshot/fields/layers/markerShape.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/markerShape.json rename to backend/directus-config/development/snapshot/fields/layers/markerShape.json diff --git a/backend/directus-config/snapshot/fields/layers/menuColor.json b/backend/directus-config/development/snapshot/fields/layers/menuColor.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/menuColor.json rename to backend/directus-config/development/snapshot/fields/layers/menuColor.json diff --git a/backend/directus-config/snapshot/fields/layers/menuText.json b/backend/directus-config/development/snapshot/fields/layers/menuText.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/menuText.json rename to backend/directus-config/development/snapshot/fields/layers/menuText.json diff --git a/backend/directus-config/snapshot/fields/layers/name.json b/backend/directus-config/development/snapshot/fields/layers/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/name.json rename to backend/directus-config/development/snapshot/fields/layers/name.json diff --git a/backend/directus-config/snapshot/fields/layers/notifications.json b/backend/directus-config/development/snapshot/fields/layers/notifications.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/notifications.json rename to backend/directus-config/development/snapshot/fields/layers/notifications.json diff --git a/backend/directus-config/snapshot/fields/layers/onlyOnePerOwner.json b/backend/directus-config/development/snapshot/fields/layers/onlyOnePerOwner.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/onlyOnePerOwner.json rename to backend/directus-config/development/snapshot/fields/layers/onlyOnePerOwner.json diff --git a/backend/directus-config/snapshot/fields/layers/public_edit_items.json b/backend/directus-config/development/snapshot/fields/layers/public_edit_items.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/public_edit_items.json rename to backend/directus-config/development/snapshot/fields/layers/public_edit_items.json diff --git a/backend/directus-config/snapshot/fields/layers/sort.json b/backend/directus-config/development/snapshot/fields/layers/sort.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/sort.json rename to backend/directus-config/development/snapshot/fields/layers/sort.json diff --git a/backend/directus-config/snapshot/fields/layers/userProfileLayer.json b/backend/directus-config/development/snapshot/fields/layers/userProfileLayer.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers/userProfileLayer.json rename to backend/directus-config/development/snapshot/fields/layers/userProfileLayer.json diff --git a/backend/directus-config/snapshot/fields/layers_directus_users_1/directus_users_id.json b/backend/directus-config/development/snapshot/fields/layers_directus_users_1/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_directus_users_1/directus_users_id.json rename to backend/directus-config/development/snapshot/fields/layers_directus_users_1/directus_users_id.json diff --git a/backend/directus-config/snapshot/fields/layers_directus_users_1/id.json b/backend/directus-config/development/snapshot/fields/layers_directus_users_1/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_directus_users_1/id.json rename to backend/directus-config/development/snapshot/fields/layers_directus_users_1/id.json diff --git a/backend/directus-config/snapshot/fields/layers_directus_users_1/layers_id.json b/backend/directus-config/development/snapshot/fields/layers_directus_users_1/layers_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_directus_users_1/layers_id.json rename to backend/directus-config/development/snapshot/fields/layers_directus_users_1/layers_id.json diff --git a/backend/directus-config/snapshot/fields/layers_files/directus_files_id.json b/backend/directus-config/development/snapshot/fields/layers_files/directus_files_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_files/directus_files_id.json rename to backend/directus-config/development/snapshot/fields/layers_files/directus_files_id.json diff --git a/backend/directus-config/snapshot/fields/layers_files/id.json b/backend/directus-config/development/snapshot/fields/layers_files/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_files/id.json rename to backend/directus-config/development/snapshot/fields/layers_files/id.json diff --git a/backend/directus-config/snapshot/fields/layers_files/layers_id.json b/backend/directus-config/development/snapshot/fields/layers_files/layers_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_files/layers_id.json rename to backend/directus-config/development/snapshot/fields/layers_files/layers_id.json diff --git a/backend/directus-config/snapshot/fields/layers_maps/id.json b/backend/directus-config/development/snapshot/fields/layers_maps/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_maps/id.json rename to backend/directus-config/development/snapshot/fields/layers_maps/id.json diff --git a/backend/directus-config/snapshot/fields/layers_maps/layers_id.json b/backend/directus-config/development/snapshot/fields/layers_maps/layers_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_maps/layers_id.json rename to backend/directus-config/development/snapshot/fields/layers_maps/layers_id.json diff --git a/backend/directus-config/snapshot/fields/layers_maps/maps_id.json b/backend/directus-config/development/snapshot/fields/layers_maps/maps_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/layers_maps/maps_id.json rename to backend/directus-config/development/snapshot/fields/layers_maps/maps_id.json diff --git a/backend/directus-config/snapshot/fields/maps/Controls.json b/backend/directus-config/development/snapshot/fields/maps/Controls.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/Controls.json rename to backend/directus-config/development/snapshot/fields/maps/Controls.json diff --git a/backend/directus-config/snapshot/fields/maps/Presets.json b/backend/directus-config/development/snapshot/fields/maps/Presets.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/Presets.json rename to backend/directus-config/development/snapshot/fields/maps/Presets.json diff --git a/backend/directus-config/snapshot/fields/maps/center.json b/backend/directus-config/development/snapshot/fields/maps/center.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/center.json rename to backend/directus-config/development/snapshot/fields/maps/center.json diff --git a/backend/directus-config/snapshot/fields/maps/custom_text.json b/backend/directus-config/development/snapshot/fields/maps/custom_text.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/custom_text.json rename to backend/directus-config/development/snapshot/fields/maps/custom_text.json diff --git a/backend/directus-config/snapshot/fields/maps/default_theme.json b/backend/directus-config/development/snapshot/fields/maps/default_theme.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/default_theme.json rename to backend/directus-config/development/snapshot/fields/maps/default_theme.json diff --git a/backend/directus-config/snapshot/fields/maps/donation_widget.json b/backend/directus-config/development/snapshot/fields/maps/donation_widget.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/donation_widget.json rename to backend/directus-config/development/snapshot/fields/maps/donation_widget.json diff --git a/backend/directus-config/snapshot/fields/maps/expand_layer_control.json b/backend/directus-config/development/snapshot/fields/maps/expand_layer_control.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/expand_layer_control.json rename to backend/directus-config/development/snapshot/fields/maps/expand_layer_control.json diff --git a/backend/directus-config/snapshot/fields/maps/geo.json b/backend/directus-config/development/snapshot/fields/maps/geo.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/geo.json rename to backend/directus-config/development/snapshot/fields/maps/geo.json diff --git a/backend/directus-config/snapshot/fields/maps/hide_signup.json b/backend/directus-config/development/snapshot/fields/maps/hide_signup.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/hide_signup.json rename to backend/directus-config/development/snapshot/fields/maps/hide_signup.json diff --git a/backend/directus-config/snapshot/fields/maps/id.json b/backend/directus-config/development/snapshot/fields/maps/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/id.json rename to backend/directus-config/development/snapshot/fields/maps/id.json diff --git a/backend/directus-config/snapshot/fields/maps/info_open.json b/backend/directus-config/development/snapshot/fields/maps/info_open.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/info_open.json rename to backend/directus-config/development/snapshot/fields/maps/info_open.json diff --git a/backend/directus-config/snapshot/fields/maps/layers.json b/backend/directus-config/development/snapshot/fields/maps/layers.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/layers.json rename to backend/directus-config/development/snapshot/fields/maps/layers.json diff --git a/backend/directus-config/snapshot/fields/maps/logo.json b/backend/directus-config/development/snapshot/fields/maps/logo.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/logo.json rename to backend/directus-config/development/snapshot/fields/maps/logo.json diff --git a/backend/directus-config/snapshot/fields/maps/name.json b/backend/directus-config/development/snapshot/fields/maps/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/name.json rename to backend/directus-config/development/snapshot/fields/maps/name.json diff --git a/backend/directus-config/snapshot/fields/maps/own_tag_space.json b/backend/directus-config/development/snapshot/fields/maps/own_tag_space.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/own_tag_space.json rename to backend/directus-config/development/snapshot/fields/maps/own_tag_space.json diff --git a/backend/directus-config/snapshot/fields/maps/show_filter_control.json b/backend/directus-config/development/snapshot/fields/maps/show_filter_control.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/show_filter_control.json rename to backend/directus-config/development/snapshot/fields/maps/show_filter_control.json diff --git a/backend/directus-config/snapshot/fields/maps/show_gratitude_control.json b/backend/directus-config/development/snapshot/fields/maps/show_gratitude_control.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/show_gratitude_control.json rename to backend/directus-config/development/snapshot/fields/maps/show_gratitude_control.json diff --git a/backend/directus-config/snapshot/fields/maps/show_layer_control.json b/backend/directus-config/development/snapshot/fields/maps/show_layer_control.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/show_layer_control.json rename to backend/directus-config/development/snapshot/fields/maps/show_layer_control.json diff --git a/backend/directus-config/snapshot/fields/maps/show_request_password.json b/backend/directus-config/development/snapshot/fields/maps/show_request_password.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/show_request_password.json rename to backend/directus-config/development/snapshot/fields/maps/show_request_password.json diff --git a/backend/directus-config/snapshot/fields/maps/show_theme_control.json b/backend/directus-config/development/snapshot/fields/maps/show_theme_control.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/show_theme_control.json rename to backend/directus-config/development/snapshot/fields/maps/show_theme_control.json diff --git a/backend/directus-config/snapshot/fields/maps/show_zoom_control.json b/backend/directus-config/development/snapshot/fields/maps/show_zoom_control.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/show_zoom_control.json rename to backend/directus-config/development/snapshot/fields/maps/show_zoom_control.json diff --git a/backend/directus-config/snapshot/fields/maps/tile_server.json b/backend/directus-config/development/snapshot/fields/maps/tile_server.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/tile_server.json rename to backend/directus-config/development/snapshot/fields/maps/tile_server.json diff --git a/backend/directus-config/snapshot/fields/maps/tile_server_attribution.json b/backend/directus-config/development/snapshot/fields/maps/tile_server_attribution.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/tile_server_attribution.json rename to backend/directus-config/development/snapshot/fields/maps/tile_server_attribution.json diff --git a/backend/directus-config/snapshot/fields/maps/tile_server_url.json b/backend/directus-config/development/snapshot/fields/maps/tile_server_url.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/tile_server_url.json rename to backend/directus-config/development/snapshot/fields/maps/tile_server_url.json diff --git a/backend/directus-config/snapshot/fields/maps/url.json b/backend/directus-config/development/snapshot/fields/maps/url.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/url.json rename to backend/directus-config/development/snapshot/fields/maps/url.json diff --git a/backend/directus-config/snapshot/fields/maps/zoom.json b/backend/directus-config/development/snapshot/fields/maps/zoom.json similarity index 100% rename from backend/directus-config/snapshot/fields/maps/zoom.json rename to backend/directus-config/development/snapshot/fields/maps/zoom.json diff --git a/backend/directus-config/snapshot/fields/marker_icons/id.json b/backend/directus-config/development/snapshot/fields/marker_icons/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/marker_icons/id.json rename to backend/directus-config/development/snapshot/fields/marker_icons/id.json diff --git a/backend/directus-config/snapshot/fields/marker_icons/image.json b/backend/directus-config/development/snapshot/fields/marker_icons/image.json similarity index 100% rename from backend/directus-config/snapshot/fields/marker_icons/image.json rename to backend/directus-config/development/snapshot/fields/marker_icons/image.json diff --git a/backend/directus-config/snapshot/fields/marker_icons/image_outline.json b/backend/directus-config/development/snapshot/fields/marker_icons/image_outline.json similarity index 100% rename from backend/directus-config/snapshot/fields/marker_icons/image_outline.json rename to backend/directus-config/development/snapshot/fields/marker_icons/image_outline.json diff --git a/backend/directus-config/snapshot/fields/marker_icons/size.json b/backend/directus-config/development/snapshot/fields/marker_icons/size.json similarity index 100% rename from backend/directus-config/snapshot/fields/marker_icons/size.json rename to backend/directus-config/development/snapshot/fields/marker_icons/size.json diff --git a/backend/directus-config/snapshot/fields/marker_icons/size_outline.json b/backend/directus-config/development/snapshot/fields/marker_icons/size_outline.json similarity index 100% rename from backend/directus-config/snapshot/fields/marker_icons/size_outline.json rename to backend/directus-config/development/snapshot/fields/marker_icons/size_outline.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/creator_email.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/creator_email.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/creator_email.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/creator_email.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/date_created.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/date_created.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/date_created.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/date_updated.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/date_updated.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/date_updated.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/end.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/end.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/end.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/end.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/id.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/id.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/id.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/location.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/location.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/location.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/location.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/start.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/start.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/start.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/start.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/text.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/text.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/text.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/text.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_events/title.json b/backend/directus-config/development/snapshot/fields/oceannomads_events/title.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_events/title.json rename to backend/directus-config/development/snapshot/fields/oceannomads_events/title.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/avatar_url.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/avatar_url.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/avatar_url.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/avatar_url.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/date_created.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/date_created.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/date_created.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/date_updated.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/date_updated.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/date_updated.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/email.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/email.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/email.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/email.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/first_name.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/first_name.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/first_name.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/first_name.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/id.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/id.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/id.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/last_name.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/last_name.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/last_name.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/last_name.json diff --git a/backend/directus-config/snapshot/fields/oceannomads_profiles/location.json b/backend/directus-config/development/snapshot/fields/oceannomads_profiles/location.json similarity index 100% rename from backend/directus-config/snapshot/fields/oceannomads_profiles/location.json rename to backend/directus-config/development/snapshot/fields/oceannomads_profiles/location.json diff --git a/backend/directus-config/snapshot/fields/relations/id.json b/backend/directus-config/development/snapshot/fields/relations/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/relations/id.json rename to backend/directus-config/development/snapshot/fields/relations/id.json diff --git a/backend/directus-config/snapshot/fields/relations/relation.json b/backend/directus-config/development/snapshot/fields/relations/relation.json similarity index 100% rename from backend/directus-config/snapshot/fields/relations/relation.json rename to backend/directus-config/development/snapshot/fields/relations/relation.json diff --git a/backend/directus-config/snapshot/fields/startEnd/date_created.json b/backend/directus-config/development/snapshot/fields/startEnd/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/startEnd/date_created.json rename to backend/directus-config/development/snapshot/fields/startEnd/date_created.json diff --git a/backend/directus-config/snapshot/fields/startEnd/date_updated.json b/backend/directus-config/development/snapshot/fields/startEnd/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/startEnd/date_updated.json rename to backend/directus-config/development/snapshot/fields/startEnd/date_updated.json diff --git a/backend/directus-config/snapshot/fields/startEnd/id.json b/backend/directus-config/development/snapshot/fields/startEnd/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/startEnd/id.json rename to backend/directus-config/development/snapshot/fields/startEnd/id.json diff --git a/backend/directus-config/snapshot/fields/startEnd/user_created.json b/backend/directus-config/development/snapshot/fields/startEnd/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/startEnd/user_created.json rename to backend/directus-config/development/snapshot/fields/startEnd/user_created.json diff --git a/backend/directus-config/snapshot/fields/startEnd/user_updated.json b/backend/directus-config/development/snapshot/fields/startEnd/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/startEnd/user_updated.json rename to backend/directus-config/development/snapshot/fields/startEnd/user_updated.json diff --git a/backend/directus-config/snapshot/fields/tags/color.json b/backend/directus-config/development/snapshot/fields/tags/color.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/color.json rename to backend/directus-config/development/snapshot/fields/tags/color.json diff --git a/backend/directus-config/snapshot/fields/tags/date_created.json b/backend/directus-config/development/snapshot/fields/tags/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/date_created.json rename to backend/directus-config/development/snapshot/fields/tags/date_created.json diff --git a/backend/directus-config/snapshot/fields/tags/id.json b/backend/directus-config/development/snapshot/fields/tags/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/id.json rename to backend/directus-config/development/snapshot/fields/tags/id.json diff --git a/backend/directus-config/snapshot/fields/tags/map.json b/backend/directus-config/development/snapshot/fields/tags/map.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/map.json rename to backend/directus-config/development/snapshot/fields/tags/map.json diff --git a/backend/directus-config/snapshot/fields/tags/name.json b/backend/directus-config/development/snapshot/fields/tags/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/name.json rename to backend/directus-config/development/snapshot/fields/tags/name.json diff --git a/backend/directus-config/snapshot/fields/tags/offer_or_need.json b/backend/directus-config/development/snapshot/fields/tags/offer_or_need.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/offer_or_need.json rename to backend/directus-config/development/snapshot/fields/tags/offer_or_need.json diff --git a/backend/directus-config/snapshot/fields/tags/user_created.json b/backend/directus-config/development/snapshot/fields/tags/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/tags/user_created.json rename to backend/directus-config/development/snapshot/fields/tags/user_created.json diff --git a/backend/directus-config/snapshot/fields/team/date_created.json b/backend/directus-config/development/snapshot/fields/team/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/date_created.json rename to backend/directus-config/development/snapshot/fields/team/date_created.json diff --git a/backend/directus-config/snapshot/fields/team/date_updated.json b/backend/directus-config/development/snapshot/fields/team/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/date_updated.json rename to backend/directus-config/development/snapshot/fields/team/date_updated.json diff --git a/backend/directus-config/snapshot/fields/team/id.json b/backend/directus-config/development/snapshot/fields/team/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/id.json rename to backend/directus-config/development/snapshot/fields/team/id.json diff --git a/backend/directus-config/snapshot/fields/team/image.json b/backend/directus-config/development/snapshot/fields/team/image.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/image.json rename to backend/directus-config/development/snapshot/fields/team/image.json diff --git a/backend/directus-config/snapshot/fields/team/name.json b/backend/directus-config/development/snapshot/fields/team/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/name.json rename to backend/directus-config/development/snapshot/fields/team/name.json diff --git a/backend/directus-config/snapshot/fields/team/role.json b/backend/directus-config/development/snapshot/fields/team/role.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/role.json rename to backend/directus-config/development/snapshot/fields/team/role.json diff --git a/backend/directus-config/snapshot/fields/team/sort.json b/backend/directus-config/development/snapshot/fields/team/sort.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/sort.json rename to backend/directus-config/development/snapshot/fields/team/sort.json diff --git a/backend/directus-config/snapshot/fields/team/status.json b/backend/directus-config/development/snapshot/fields/team/status.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/status.json rename to backend/directus-config/development/snapshot/fields/team/status.json diff --git a/backend/directus-config/snapshot/fields/team/text.json b/backend/directus-config/development/snapshot/fields/team/text.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/text.json rename to backend/directus-config/development/snapshot/fields/team/text.json diff --git a/backend/directus-config/snapshot/fields/team/user_created.json b/backend/directus-config/development/snapshot/fields/team/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/user_created.json rename to backend/directus-config/development/snapshot/fields/team/user_created.json diff --git a/backend/directus-config/snapshot/fields/team/user_updated.json b/backend/directus-config/development/snapshot/fields/team/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/team/user_updated.json rename to backend/directus-config/development/snapshot/fields/team/user_updated.json diff --git a/backend/directus-config/snapshot/fields/texts/dataField.json b/backend/directus-config/development/snapshot/fields/texts/dataField.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/dataField.json rename to backend/directus-config/development/snapshot/fields/texts/dataField.json diff --git a/backend/directus-config/snapshot/fields/texts/date_created.json b/backend/directus-config/development/snapshot/fields/texts/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/date_created.json rename to backend/directus-config/development/snapshot/fields/texts/date_created.json diff --git a/backend/directus-config/snapshot/fields/texts/date_updated.json b/backend/directus-config/development/snapshot/fields/texts/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/date_updated.json rename to backend/directus-config/development/snapshot/fields/texts/date_updated.json diff --git a/backend/directus-config/snapshot/fields/texts/heading.json b/backend/directus-config/development/snapshot/fields/texts/heading.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/heading.json rename to backend/directus-config/development/snapshot/fields/texts/heading.json diff --git a/backend/directus-config/snapshot/fields/texts/hideWhenEmpty.json b/backend/directus-config/development/snapshot/fields/texts/hideWhenEmpty.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/hideWhenEmpty.json rename to backend/directus-config/development/snapshot/fields/texts/hideWhenEmpty.json diff --git a/backend/directus-config/snapshot/fields/texts/id.json b/backend/directus-config/development/snapshot/fields/texts/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/id.json rename to backend/directus-config/development/snapshot/fields/texts/id.json diff --git a/backend/directus-config/snapshot/fields/texts/showMarkdownHint.json b/backend/directus-config/development/snapshot/fields/texts/showMarkdownHint.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/showMarkdownHint.json rename to backend/directus-config/development/snapshot/fields/texts/showMarkdownHint.json diff --git a/backend/directus-config/snapshot/fields/texts/size.json b/backend/directus-config/development/snapshot/fields/texts/size.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/size.json rename to backend/directus-config/development/snapshot/fields/texts/size.json diff --git a/backend/directus-config/snapshot/fields/texts/user_created.json b/backend/directus-config/development/snapshot/fields/texts/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/user_created.json rename to backend/directus-config/development/snapshot/fields/texts/user_created.json diff --git a/backend/directus-config/snapshot/fields/texts/user_updated.json b/backend/directus-config/development/snapshot/fields/texts/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/texts/user_updated.json rename to backend/directus-config/development/snapshot/fields/texts/user_updated.json diff --git a/backend/directus-config/snapshot/fields/types/Profile.json b/backend/directus-config/development/snapshot/fields/types/Profile.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/Profile.json rename to backend/directus-config/development/snapshot/fields/types/Profile.json diff --git a/backend/directus-config/snapshot/fields/types/Tabs.json b/backend/directus-config/development/snapshot/fields/types/Tabs.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/Tabs.json rename to backend/directus-config/development/snapshot/fields/types/Tabs.json diff --git a/backend/directus-config/snapshot/fields/types/accordion-ykcgp6.json b/backend/directus-config/development/snapshot/fields/types/accordion-ykcgp6.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/accordion-ykcgp6.json rename to backend/directus-config/development/snapshot/fields/types/accordion-ykcgp6.json diff --git a/backend/directus-config/snapshot/fields/types/active_tabs.json b/backend/directus-config/development/snapshot/fields/types/active_tabs.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/active_tabs.json rename to backend/directus-config/development/snapshot/fields/types/active_tabs.json diff --git a/backend/directus-config/snapshot/fields/types/button_label.json b/backend/directus-config/development/snapshot/fields/types/button_label.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/button_label.json rename to backend/directus-config/development/snapshot/fields/types/button_label.json diff --git a/backend/directus-config/snapshot/fields/types/custom_profile_url.json b/backend/directus-config/development/snapshot/fields/types/custom_profile_url.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/custom_profile_url.json rename to backend/directus-config/development/snapshot/fields/types/custom_profile_url.json diff --git a/backend/directus-config/snapshot/fields/types/custom_text.json b/backend/directus-config/development/snapshot/fields/types/custom_text.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/custom_text.json rename to backend/directus-config/development/snapshot/fields/types/custom_text.json diff --git a/backend/directus-config/snapshot/fields/types/date_created.json b/backend/directus-config/development/snapshot/fields/types/date_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/date_created.json rename to backend/directus-config/development/snapshot/fields/types/date_created.json diff --git a/backend/directus-config/snapshot/fields/types/date_updated.json b/backend/directus-config/development/snapshot/fields/types/date_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/date_updated.json rename to backend/directus-config/development/snapshot/fields/types/date_updated.json diff --git a/backend/directus-config/snapshot/fields/types/icon_as_labels.json b/backend/directus-config/development/snapshot/fields/types/icon_as_labels.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/icon_as_labels.json rename to backend/directus-config/development/snapshot/fields/types/icon_as_labels.json diff --git a/backend/directus-config/snapshot/fields/types/id.json b/backend/directus-config/development/snapshot/fields/types/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/id.json rename to backend/directus-config/development/snapshot/fields/types/id.json diff --git a/backend/directus-config/snapshot/fields/types/name.json b/backend/directus-config/development/snapshot/fields/types/name.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/name.json rename to backend/directus-config/development/snapshot/fields/types/name.json diff --git a/backend/directus-config/snapshot/fields/types/offers_and_needs.json b/backend/directus-config/development/snapshot/fields/types/offers_and_needs.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/offers_and_needs.json rename to backend/directus-config/development/snapshot/fields/types/offers_and_needs.json diff --git a/backend/directus-config/snapshot/fields/types/onepager.json b/backend/directus-config/development/snapshot/fields/types/onepager.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/onepager.json rename to backend/directus-config/development/snapshot/fields/types/onepager.json diff --git a/backend/directus-config/snapshot/fields/types/profileTemplate.json b/backend/directus-config/development/snapshot/fields/types/profileTemplate.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/profileTemplate.json rename to backend/directus-config/development/snapshot/fields/types/profileTemplate.json diff --git a/backend/directus-config/snapshot/fields/types/questlog.json b/backend/directus-config/development/snapshot/fields/types/questlog.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/questlog.json rename to backend/directus-config/development/snapshot/fields/types/questlog.json diff --git a/backend/directus-config/snapshot/fields/types/relations.json b/backend/directus-config/development/snapshot/fields/types/relations.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/relations.json rename to backend/directus-config/development/snapshot/fields/types/relations.json diff --git a/backend/directus-config/snapshot/fields/types/show_header_view_in_form.json b/backend/directus-config/development/snapshot/fields/types/show_header_view_in_form.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_header_view_in_form.json rename to backend/directus-config/development/snapshot/fields/types/show_header_view_in_form.json diff --git a/backend/directus-config/snapshot/fields/types/show_name.json b/backend/directus-config/development/snapshot/fields/types/show_name.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_name.json rename to backend/directus-config/development/snapshot/fields/types/show_name.json diff --git a/backend/directus-config/snapshot/fields/types/show_name_input.json b/backend/directus-config/development/snapshot/fields/types/show_name_input.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_name_input.json rename to backend/directus-config/development/snapshot/fields/types/show_name_input.json diff --git a/backend/directus-config/snapshot/fields/types/show_profile_button.json b/backend/directus-config/development/snapshot/fields/types/show_profile_button.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_profile_button.json rename to backend/directus-config/development/snapshot/fields/types/show_profile_button.json diff --git a/backend/directus-config/snapshot/fields/types/show_start_end.json b/backend/directus-config/development/snapshot/fields/types/show_start_end.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_start_end.json rename to backend/directus-config/development/snapshot/fields/types/show_start_end.json diff --git a/backend/directus-config/snapshot/fields/types/show_start_end_input.json b/backend/directus-config/development/snapshot/fields/types/show_start_end_input.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_start_end_input.json rename to backend/directus-config/development/snapshot/fields/types/show_start_end_input.json diff --git a/backend/directus-config/snapshot/fields/types/show_text.json b/backend/directus-config/development/snapshot/fields/types/show_text.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_text.json rename to backend/directus-config/development/snapshot/fields/types/show_text.json diff --git a/backend/directus-config/snapshot/fields/types/show_text_input.json b/backend/directus-config/development/snapshot/fields/types/show_text_input.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/show_text_input.json rename to backend/directus-config/development/snapshot/fields/types/show_text_input.json diff --git a/backend/directus-config/snapshot/fields/types/small_form.json b/backend/directus-config/development/snapshot/fields/types/small_form.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/small_form.json rename to backend/directus-config/development/snapshot/fields/types/small_form.json diff --git a/backend/directus-config/snapshot/fields/types/small_form_edit.json b/backend/directus-config/development/snapshot/fields/types/small_form_edit.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/small_form_edit.json rename to backend/directus-config/development/snapshot/fields/types/small_form_edit.json diff --git a/backend/directus-config/snapshot/fields/types/small_view.json b/backend/directus-config/development/snapshot/fields/types/small_view.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/small_view.json rename to backend/directus-config/development/snapshot/fields/types/small_view.json diff --git a/backend/directus-config/snapshot/fields/types/template.json b/backend/directus-config/development/snapshot/fields/types/template.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/template.json rename to backend/directus-config/development/snapshot/fields/types/template.json diff --git a/backend/directus-config/snapshot/fields/types/text.json b/backend/directus-config/development/snapshot/fields/types/text.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/text.json rename to backend/directus-config/development/snapshot/fields/types/text.json diff --git a/backend/directus-config/snapshot/fields/types/text_area.json b/backend/directus-config/development/snapshot/fields/types/text_area.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/text_area.json rename to backend/directus-config/development/snapshot/fields/types/text_area.json diff --git a/backend/directus-config/snapshot/fields/types/text_input_label.json b/backend/directus-config/development/snapshot/fields/types/text_input_label.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/text_input_label.json rename to backend/directus-config/development/snapshot/fields/types/text_input_label.json diff --git a/backend/directus-config/snapshot/fields/types/user_created.json b/backend/directus-config/development/snapshot/fields/types/user_created.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/user_created.json rename to backend/directus-config/development/snapshot/fields/types/user_created.json diff --git a/backend/directus-config/snapshot/fields/types/user_updated.json b/backend/directus-config/development/snapshot/fields/types/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/fields/types/user_updated.json rename to backend/directus-config/development/snapshot/fields/types/user_updated.json diff --git a/backend/directus-config/snapshot/fields/types_profileTemplate/collection.json b/backend/directus-config/development/snapshot/fields/types_profileTemplate/collection.json similarity index 100% rename from backend/directus-config/snapshot/fields/types_profileTemplate/collection.json rename to backend/directus-config/development/snapshot/fields/types_profileTemplate/collection.json diff --git a/backend/directus-config/snapshot/fields/types_profileTemplate/id.json b/backend/directus-config/development/snapshot/fields/types_profileTemplate/id.json similarity index 100% rename from backend/directus-config/snapshot/fields/types_profileTemplate/id.json rename to backend/directus-config/development/snapshot/fields/types_profileTemplate/id.json diff --git a/backend/directus-config/snapshot/fields/types_profileTemplate/item.json b/backend/directus-config/development/snapshot/fields/types_profileTemplate/item.json similarity index 100% rename from backend/directus-config/snapshot/fields/types_profileTemplate/item.json rename to backend/directus-config/development/snapshot/fields/types_profileTemplate/item.json diff --git a/backend/directus-config/snapshot/fields/types_profileTemplate/sort.json b/backend/directus-config/development/snapshot/fields/types_profileTemplate/sort.json similarity index 100% rename from backend/directus-config/snapshot/fields/types_profileTemplate/sort.json rename to backend/directus-config/development/snapshot/fields/types_profileTemplate/sort.json diff --git a/backend/directus-config/snapshot/fields/types_profileTemplate/types_id.json b/backend/directus-config/development/snapshot/fields/types_profileTemplate/types_id.json similarity index 100% rename from backend/directus-config/snapshot/fields/types_profileTemplate/types_id.json rename to backend/directus-config/development/snapshot/fields/types_profileTemplate/types_id.json diff --git a/backend/directus-config/snapshot/info.json b/backend/directus-config/development/snapshot/info.json similarity index 100% rename from backend/directus-config/snapshot/info.json rename to backend/directus-config/development/snapshot/info.json diff --git a/backend/directus-config/snapshot/relations/attestations/user_created.json b/backend/directus-config/development/snapshot/relations/attestations/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/attestations/user_created.json rename to backend/directus-config/development/snapshot/relations/attestations/user_created.json diff --git a/backend/directus-config/snapshot/relations/attestations_directus_users/attestations_id.json b/backend/directus-config/development/snapshot/relations/attestations_directus_users/attestations_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/attestations_directus_users/attestations_id.json rename to backend/directus-config/development/snapshot/relations/attestations_directus_users/attestations_id.json diff --git a/backend/directus-config/snapshot/relations/attestations_directus_users/directus_users_id.json b/backend/directus-config/development/snapshot/relations/attestations_directus_users/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/attestations_directus_users/directus_users_id.json rename to backend/directus-config/development/snapshot/relations/attestations_directus_users/directus_users_id.json diff --git a/backend/directus-config/snapshot/relations/contactInfos/user_created.json b/backend/directus-config/development/snapshot/relations/contactInfos/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/contactInfos/user_created.json rename to backend/directus-config/development/snapshot/relations/contactInfos/user_created.json diff --git a/backend/directus-config/snapshot/relations/contactInfos/user_updated.json b/backend/directus-config/development/snapshot/relations/contactInfos/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/contactInfos/user_updated.json rename to backend/directus-config/development/snapshot/relations/contactInfos/user_updated.json diff --git a/backend/directus-config/snapshot/relations/crowdfundings/user_created.json b/backend/directus-config/development/snapshot/relations/crowdfundings/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/crowdfundings/user_created.json rename to backend/directus-config/development/snapshot/relations/crowdfundings/user_created.json diff --git a/backend/directus-config/snapshot/relations/crowdfundings/user_updated.json b/backend/directus-config/development/snapshot/relations/crowdfundings/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/crowdfundings/user_updated.json rename to backend/directus-config/development/snapshot/relations/crowdfundings/user_updated.json diff --git a/backend/directus-config/snapshot/relations/features/user_created.json b/backend/directus-config/development/snapshot/relations/features/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/features/user_created.json rename to backend/directus-config/development/snapshot/relations/features/user_created.json diff --git a/backend/directus-config/snapshot/relations/features/user_updated.json b/backend/directus-config/development/snapshot/relations/features/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/features/user_updated.json rename to backend/directus-config/development/snapshot/relations/features/user_updated.json diff --git a/backend/directus-config/snapshot/relations/gallery/user_created.json b/backend/directus-config/development/snapshot/relations/gallery/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/gallery/user_created.json rename to backend/directus-config/development/snapshot/relations/gallery/user_created.json diff --git a/backend/directus-config/snapshot/relations/gallery/user_updated.json b/backend/directus-config/development/snapshot/relations/gallery/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/gallery/user_updated.json rename to backend/directus-config/development/snapshot/relations/gallery/user_updated.json diff --git a/backend/directus-config/snapshot/relations/groupSubheaders/user_created.json b/backend/directus-config/development/snapshot/relations/groupSubheaders/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupSubheaders/user_created.json rename to backend/directus-config/development/snapshot/relations/groupSubheaders/user_created.json diff --git a/backend/directus-config/snapshot/relations/groupSubheaders/user_updated.json b/backend/directus-config/development/snapshot/relations/groupSubheaders/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupSubheaders/user_updated.json rename to backend/directus-config/development/snapshot/relations/groupSubheaders/user_updated.json diff --git a/backend/directus-config/snapshot/relations/groupSubheaders_groupTypes/groupSubheaders_id.json b/backend/directus-config/development/snapshot/relations/groupSubheaders_groupTypes/groupSubheaders_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupSubheaders_groupTypes/groupSubheaders_id.json rename to backend/directus-config/development/snapshot/relations/groupSubheaders_groupTypes/groupSubheaders_id.json diff --git a/backend/directus-config/snapshot/relations/groupSubheaders_groupTypes/groupTypes_id.json b/backend/directus-config/development/snapshot/relations/groupSubheaders_groupTypes/groupTypes_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupSubheaders_groupTypes/groupTypes_id.json rename to backend/directus-config/development/snapshot/relations/groupSubheaders_groupTypes/groupTypes_id.json diff --git a/backend/directus-config/snapshot/relations/groupTypes/image.json b/backend/directus-config/development/snapshot/relations/groupTypes/image.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupTypes/image.json rename to backend/directus-config/development/snapshot/relations/groupTypes/image.json diff --git a/backend/directus-config/snapshot/relations/groupTypes/markerIcon.json b/backend/directus-config/development/snapshot/relations/groupTypes/markerIcon.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupTypes/markerIcon.json rename to backend/directus-config/development/snapshot/relations/groupTypes/markerIcon.json diff --git a/backend/directus-config/snapshot/relations/groupTypes/user_created.json b/backend/directus-config/development/snapshot/relations/groupTypes/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupTypes/user_created.json rename to backend/directus-config/development/snapshot/relations/groupTypes/user_created.json diff --git a/backend/directus-config/snapshot/relations/groupTypes/user_updated.json b/backend/directus-config/development/snapshot/relations/groupTypes/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/groupTypes/user_updated.json rename to backend/directus-config/development/snapshot/relations/groupTypes/user_updated.json diff --git a/backend/directus-config/snapshot/relations/inviteLinks/user_created.json b/backend/directus-config/development/snapshot/relations/inviteLinks/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/inviteLinks/user_created.json rename to backend/directus-config/development/snapshot/relations/inviteLinks/user_created.json diff --git a/backend/directus-config/snapshot/relations/inviteLinks/user_updated.json b/backend/directus-config/development/snapshot/relations/inviteLinks/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/inviteLinks/user_updated.json rename to backend/directus-config/development/snapshot/relations/inviteLinks/user_updated.json diff --git a/backend/directus-config/snapshot/relations/itemSecrets/item.json b/backend/directus-config/development/snapshot/relations/itemSecrets/item.json similarity index 100% rename from backend/directus-config/snapshot/relations/itemSecrets/item.json rename to backend/directus-config/development/snapshot/relations/itemSecrets/item.json diff --git a/backend/directus-config/snapshot/relations/items/image.json b/backend/directus-config/development/snapshot/relations/items/image.json similarity index 100% rename from backend/directus-config/snapshot/relations/items/image.json rename to backend/directus-config/development/snapshot/relations/items/image.json diff --git a/backend/directus-config/snapshot/relations/items/layer.json b/backend/directus-config/development/snapshot/relations/items/layer.json similarity index 100% rename from backend/directus-config/snapshot/relations/items/layer.json rename to backend/directus-config/development/snapshot/relations/items/layer.json diff --git a/backend/directus-config/snapshot/relations/items/markerIcon.json b/backend/directus-config/development/snapshot/relations/items/markerIcon.json similarity index 100% rename from backend/directus-config/snapshot/relations/items/markerIcon.json rename to backend/directus-config/development/snapshot/relations/items/markerIcon.json diff --git a/backend/directus-config/snapshot/relations/items/parent.json b/backend/directus-config/development/snapshot/relations/items/parent.json similarity index 100% rename from backend/directus-config/snapshot/relations/items/parent.json rename to backend/directus-config/development/snapshot/relations/items/parent.json diff --git a/backend/directus-config/snapshot/relations/items/user_created.json b/backend/directus-config/development/snapshot/relations/items/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/items/user_created.json rename to backend/directus-config/development/snapshot/relations/items/user_created.json diff --git a/backend/directus-config/snapshot/relations/items/user_updated.json b/backend/directus-config/development/snapshot/relations/items/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/items/user_updated.json rename to backend/directus-config/development/snapshot/relations/items/user_updated.json diff --git a/backend/directus-config/snapshot/relations/items_files/directus_files_id.json b/backend/directus-config/development/snapshot/relations/items_files/directus_files_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_files/directus_files_id.json rename to backend/directus-config/development/snapshot/relations/items_files/directus_files_id.json diff --git a/backend/directus-config/snapshot/relations/items_files/items_id.json b/backend/directus-config/development/snapshot/relations/items_files/items_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_files/items_id.json rename to backend/directus-config/development/snapshot/relations/items_files/items_id.json diff --git a/backend/directus-config/snapshot/relations/items_items/items_id.json b/backend/directus-config/development/snapshot/relations/items_items/items_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_items/items_id.json rename to backend/directus-config/development/snapshot/relations/items_items/items_id.json diff --git a/backend/directus-config/snapshot/relations/items_items/related_items_id.json b/backend/directus-config/development/snapshot/relations/items_items/related_items_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_items/related_items_id.json rename to backend/directus-config/development/snapshot/relations/items_items/related_items_id.json diff --git a/backend/directus-config/snapshot/relations/items_tags/items_id.json b/backend/directus-config/development/snapshot/relations/items_tags/items_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_tags/items_id.json rename to backend/directus-config/development/snapshot/relations/items_tags/items_id.json diff --git a/backend/directus-config/snapshot/relations/items_tags/tags_id.json b/backend/directus-config/development/snapshot/relations/items_tags/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_tags/tags_id.json rename to backend/directus-config/development/snapshot/relations/items_tags/tags_id.json diff --git a/backend/directus-config/snapshot/relations/items_tags_1/items_id.json b/backend/directus-config/development/snapshot/relations/items_tags_1/items_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_tags_1/items_id.json rename to backend/directus-config/development/snapshot/relations/items_tags_1/items_id.json diff --git a/backend/directus-config/snapshot/relations/items_tags_1/tags_id.json b/backend/directus-config/development/snapshot/relations/items_tags_1/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/items_tags_1/tags_id.json rename to backend/directus-config/development/snapshot/relations/items_tags_1/tags_id.json diff --git a/backend/directus-config/snapshot/relations/junction_directus_users_tags/directus_users_id.json b/backend/directus-config/development/snapshot/relations/junction_directus_users_tags/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/junction_directus_users_tags/directus_users_id.json rename to backend/directus-config/development/snapshot/relations/junction_directus_users_tags/directus_users_id.json diff --git a/backend/directus-config/snapshot/relations/junction_directus_users_tags/tags_id.json b/backend/directus-config/development/snapshot/relations/junction_directus_users_tags/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/junction_directus_users_tags/tags_id.json rename to backend/directus-config/development/snapshot/relations/junction_directus_users_tags/tags_id.json diff --git a/backend/directus-config/snapshot/relations/junction_directus_users_tags_1/directus_users_id.json b/backend/directus-config/development/snapshot/relations/junction_directus_users_tags_1/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/junction_directus_users_tags_1/directus_users_id.json rename to backend/directus-config/development/snapshot/relations/junction_directus_users_tags_1/directus_users_id.json diff --git a/backend/directus-config/snapshot/relations/junction_directus_users_tags_1/tags_id.json b/backend/directus-config/development/snapshot/relations/junction_directus_users_tags_1/tags_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/junction_directus_users_tags_1/tags_id.json rename to backend/directus-config/development/snapshot/relations/junction_directus_users_tags_1/tags_id.json diff --git a/backend/directus-config/snapshot/relations/layers/itemType.json b/backend/directus-config/development/snapshot/relations/layers/itemType.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers/itemType.json rename to backend/directus-config/development/snapshot/relations/layers/itemType.json diff --git a/backend/directus-config/snapshot/relations/layers/markerIcon.json b/backend/directus-config/development/snapshot/relations/layers/markerIcon.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers/markerIcon.json rename to backend/directus-config/development/snapshot/relations/layers/markerIcon.json diff --git a/backend/directus-config/snapshot/relations/layers_directus_users_1/directus_users_id.json b/backend/directus-config/development/snapshot/relations/layers_directus_users_1/directus_users_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers_directus_users_1/directus_users_id.json rename to backend/directus-config/development/snapshot/relations/layers_directus_users_1/directus_users_id.json diff --git a/backend/directus-config/snapshot/relations/layers_directus_users_1/layers_id.json b/backend/directus-config/development/snapshot/relations/layers_directus_users_1/layers_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers_directus_users_1/layers_id.json rename to backend/directus-config/development/snapshot/relations/layers_directus_users_1/layers_id.json diff --git a/backend/directus-config/snapshot/relations/layers_files/directus_files_id.json b/backend/directus-config/development/snapshot/relations/layers_files/directus_files_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers_files/directus_files_id.json rename to backend/directus-config/development/snapshot/relations/layers_files/directus_files_id.json diff --git a/backend/directus-config/snapshot/relations/layers_files/layers_id.json b/backend/directus-config/development/snapshot/relations/layers_files/layers_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers_files/layers_id.json rename to backend/directus-config/development/snapshot/relations/layers_files/layers_id.json diff --git a/backend/directus-config/snapshot/relations/layers_maps/layers_id.json b/backend/directus-config/development/snapshot/relations/layers_maps/layers_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers_maps/layers_id.json rename to backend/directus-config/development/snapshot/relations/layers_maps/layers_id.json diff --git a/backend/directus-config/snapshot/relations/layers_maps/maps_id.json b/backend/directus-config/development/snapshot/relations/layers_maps/maps_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/layers_maps/maps_id.json rename to backend/directus-config/development/snapshot/relations/layers_maps/maps_id.json diff --git a/backend/directus-config/snapshot/relations/maps/default_theme.json b/backend/directus-config/development/snapshot/relations/maps/default_theme.json similarity index 100% rename from backend/directus-config/snapshot/relations/maps/default_theme.json rename to backend/directus-config/development/snapshot/relations/maps/default_theme.json diff --git a/backend/directus-config/snapshot/relations/maps/logo.json b/backend/directus-config/development/snapshot/relations/maps/logo.json similarity index 100% rename from backend/directus-config/snapshot/relations/maps/logo.json rename to backend/directus-config/development/snapshot/relations/maps/logo.json diff --git a/backend/directus-config/snapshot/relations/marker_icons/image.json b/backend/directus-config/development/snapshot/relations/marker_icons/image.json similarity index 100% rename from backend/directus-config/snapshot/relations/marker_icons/image.json rename to backend/directus-config/development/snapshot/relations/marker_icons/image.json diff --git a/backend/directus-config/snapshot/relations/marker_icons/image_outline.json b/backend/directus-config/development/snapshot/relations/marker_icons/image_outline.json similarity index 100% rename from backend/directus-config/snapshot/relations/marker_icons/image_outline.json rename to backend/directus-config/development/snapshot/relations/marker_icons/image_outline.json diff --git a/backend/directus-config/snapshot/relations/startEnd/user_created.json b/backend/directus-config/development/snapshot/relations/startEnd/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/startEnd/user_created.json rename to backend/directus-config/development/snapshot/relations/startEnd/user_created.json diff --git a/backend/directus-config/snapshot/relations/startEnd/user_updated.json b/backend/directus-config/development/snapshot/relations/startEnd/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/startEnd/user_updated.json rename to backend/directus-config/development/snapshot/relations/startEnd/user_updated.json diff --git a/backend/directus-config/snapshot/relations/tags/map.json b/backend/directus-config/development/snapshot/relations/tags/map.json similarity index 100% rename from backend/directus-config/snapshot/relations/tags/map.json rename to backend/directus-config/development/snapshot/relations/tags/map.json diff --git a/backend/directus-config/snapshot/relations/team/image.json b/backend/directus-config/development/snapshot/relations/team/image.json similarity index 100% rename from backend/directus-config/snapshot/relations/team/image.json rename to backend/directus-config/development/snapshot/relations/team/image.json diff --git a/backend/directus-config/snapshot/relations/team/user_created.json b/backend/directus-config/development/snapshot/relations/team/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/team/user_created.json rename to backend/directus-config/development/snapshot/relations/team/user_created.json diff --git a/backend/directus-config/snapshot/relations/team/user_updated.json b/backend/directus-config/development/snapshot/relations/team/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/team/user_updated.json rename to backend/directus-config/development/snapshot/relations/team/user_updated.json diff --git a/backend/directus-config/snapshot/relations/texts/user_created.json b/backend/directus-config/development/snapshot/relations/texts/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/texts/user_created.json rename to backend/directus-config/development/snapshot/relations/texts/user_created.json diff --git a/backend/directus-config/snapshot/relations/texts/user_updated.json b/backend/directus-config/development/snapshot/relations/texts/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/texts/user_updated.json rename to backend/directus-config/development/snapshot/relations/texts/user_updated.json diff --git a/backend/directus-config/snapshot/relations/types/user_created.json b/backend/directus-config/development/snapshot/relations/types/user_created.json similarity index 100% rename from backend/directus-config/snapshot/relations/types/user_created.json rename to backend/directus-config/development/snapshot/relations/types/user_created.json diff --git a/backend/directus-config/snapshot/relations/types/user_updated.json b/backend/directus-config/development/snapshot/relations/types/user_updated.json similarity index 100% rename from backend/directus-config/snapshot/relations/types/user_updated.json rename to backend/directus-config/development/snapshot/relations/types/user_updated.json diff --git a/backend/directus-config/snapshot/relations/types_profileTemplate/item.json b/backend/directus-config/development/snapshot/relations/types_profileTemplate/item.json similarity index 100% rename from backend/directus-config/snapshot/relations/types_profileTemplate/item.json rename to backend/directus-config/development/snapshot/relations/types_profileTemplate/item.json diff --git a/backend/directus-config/snapshot/relations/types_profileTemplate/types_id.json b/backend/directus-config/development/snapshot/relations/types_profileTemplate/types_id.json similarity index 100% rename from backend/directus-config/snapshot/relations/types_profileTemplate/types_id.json rename to backend/directus-config/development/snapshot/relations/types_profileTemplate/types_id.json diff --git a/backend/directus-config/specs/item.graphql b/backend/directus-config/development/specs/item.graphql similarity index 100% rename from backend/directus-config/specs/item.graphql rename to backend/directus-config/development/specs/item.graphql diff --git a/backend/directus-config/specs/openapi.json b/backend/directus-config/development/specs/openapi.json similarity index 100% rename from backend/directus-config/specs/openapi.json rename to backend/directus-config/development/specs/openapi.json diff --git a/backend/directus-config/specs/system.graphql b/backend/directus-config/development/specs/system.graphql similarity index 100% rename from backend/directus-config/specs/system.graphql rename to backend/directus-config/development/specs/system.graphql diff --git a/backend/seed.sh b/backend/seed.sh index c4f39003..e64481fb 100755 --- a/backend/seed.sh +++ b/backend/seed.sh @@ -13,20 +13,29 @@ PGUSER="${PGUSER:-'directus'}" PGDATABASE="${PGDATABASE:-'directus'}" PROJECT_NAME="${PROJECT:-development}" -PROJECT_FOLDER=$SCRIPT_DIR/directus-config/seeds/$PROJECT_NAME +PROJECT_FOLDER=$SCRIPT_DIR/directus-config/$PROJECT_NAME +echo "Sync collections" +npx directus-sync push \ + --dump-path $PROJECT_FOLDER \ + --directus-url $DIRECTUS_URL \ + --directus-email $DIRECTUS_EMAIL \ + --directus-password $DIRECTUS_PASSWORD \ + || exit 1 +echo "Seed data via directus-sync" npx directus-sync seed push \ --directus-url $DIRECTUS_URL \ --directus-email $DIRECTUS_EMAIL \ --directus-password $DIRECTUS_PASSWORD \ - --seed-path $PROJECT_FOLDER/directus + --seed-path $PROJECT_FOLDER/seed/directus \ + || exit 1 +SEED_SQL_DIR=$PROJECT_FOLDER/seed/manual -SEED_SQL_DIR=$PROJECT_FOLDER/manual - +echo "Seed data via sql-files" # apply database updates for filename in $SEED_SQL_DIR/*.sql; do echo "Executing $filename" - docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=$PGPASSWORD psql -v ON_ERROR_STOP=1 --username $PGUSER $PGDATABASE" < $filename + docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=$PGPASSWORD psql -v ON_ERROR_STOP=1 --username $PGUSER $PGDATABASE" < $filename || exit 1 done \ No newline at end of file From 79af6ed3f9e91abafbd1a57219963f2c7f77fb82 Mon Sep 17 00:00:00 2001 From: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> Date: Tue, 9 Sep 2025 21:38:02 +0200 Subject: [PATCH 35/39] fix(backend): extended flows (#374) * extended flows * redeactivated flows * Update flows.json * fix id * fix update_user operations * fix flows --- .../development/collections/flows.json | 4 +- .../development/collections/operations.json | 162 +++++++++--------- .../development/collections/presets.json | 103 ----------- 3 files changed, 86 insertions(+), 183 deletions(-) diff --git a/backend/directus-config/development/collections/flows.json b/backend/directus-config/development/collections/flows.json index 83d35968..d72a202a 100644 --- a/backend/directus-config/development/collections/flows.json +++ b/backend/directus-config/development/collections/flows.json @@ -81,10 +81,10 @@ "_syncId": "6a48c246-2fb2-42ca-bebb-3f605e794d02" }, { - "name": "Ocean Nomads: Create Location", + "name": "Ocean Nomads: Create Location or Home", "icon": "sailing", "color": "#2ECDA7", - "description": "Creates Nomads Current Location", + "description": "Creates Nomads Current Location or Home", "status": "inactive", "trigger": "event", "accountability": "all", diff --git a/backend/directus-config/development/collections/operations.json b/backend/directus-config/development/collections/operations.json index 678b130a..8eb4b1bd 100644 --- a/backend/directus-config/development/collections/operations.json +++ b/backend/directus-config/development/collections/operations.json @@ -45,7 +45,7 @@ "name": "Condition", "key": "condition_ljedr", "type": "condition", - "position_x": 74, + "position_x": 54, "position_y": 1, "options": { "filter": { @@ -122,9 +122,18 @@ "filter": { "$trigger": { "payload": { - "layer": { - "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" - } + "_or": [ + { + "layer": { + "_eq": "98f4cd2f-e1ce-4db8-bb16-f4bbf3d6991a" + } + }, + { + "layer": { + "_eq": "4f22c074-a5c0-47a3-9e76-2bb76eb2e362" + } + } + ] } } } @@ -413,7 +422,7 @@ "options": { "payload": { "name": "{{$trigger.payload.first_name}} {{$trigger.payload.last_name}}", - "layer": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5", + "layer": "4f22c074-a5c0-47a3-9e76-2bb76eb2e362", "extended": { "external_profile_id": "{{$trigger.payload.id}}" }, @@ -436,17 +445,17 @@ "position_x": 53, "position_y": 18, "options": { - "permissions": "$full", - "emitEvents": false, "payload": { "name": "{{$trigger.payload.first_name}} {{$trigger.payload.last_name}}", - "layer": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5", + "layer": "4f22c074-a5c0-47a3-9e76-2bb76eb2e362", "extended": { "external_profile_id": "{{$trigger.payload.id}}" }, "image_external": "{{$trigger.payload.avatar_url}}" }, - "collection": "items" + "collection": "items", + "emitEvents": false, + "permissions": "$full" }, "resolve": "fc07cebb-9577-41a2-9c1c-d2ee873b112d", "reject": null, @@ -464,7 +473,7 @@ "end": "{{$trigger.payload.end}}", "name": "{{$trigger.payload.title}}", "text": "{{exec_p5p4r.text}}", - "layer": "7c40ddfa-bc7e-46cb-9580-c8cf6b867377", + "layer": "5b9f713c-74b6-4dcc-a4d0-c7893b267d6e", "start": "{{$trigger.payload.start}}", "position": "{{$last.data.features[0].geometry}}" }, @@ -488,7 +497,7 @@ "end": "{{$trigger.payload.end}}", "name": "{{$trigger.payload.title}}", "text": "{{exec_p5p4r.text}}", - "layer": "7c40ddfa-bc7e-46cb-9580-c8cf6b867377", + "layer": "5b9f713c-74b6-4dcc-a4d0-c7893b267d6e", "start": "{{$trigger.payload.start}}" }, "collection": "items", @@ -556,7 +565,7 @@ "_and": [ { "layer": { - "_eq": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5" + "_eq": "4f22c074-a5c0-47a3-9e76-2bb76eb2e362" } }, { @@ -583,14 +592,12 @@ "position_x": 73, "position_y": 1, "options": { - "permissions": "$full", - "emitEvents": false, "query": { "filter": { "_and": [ { "layer": { - "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" + "_eq": "98f4cd2f-e1ce-4db8-bb16-f4bbf3d6991a" } }, { @@ -601,7 +608,9 @@ ] } }, - "collection": "items" + "collection": "items", + "emitEvents": false, + "permissions": "$full" }, "resolve": "d6eb9087-481b-407c-af0d-bc37527d0fc4", "reject": null, @@ -697,7 +706,7 @@ "position_x": 19, "position_y": 1, "options": { - "permissions": "$trigger", + "permissions": "$full", "emitEvents": false, "collection": "oceannomads_profiles", "key": [ @@ -796,7 +805,7 @@ "position_x": 37, "position_y": 1, "options": { - "permissions": "$trigger", + "permissions": "$full", "emitEvents": false, "collection": "directus_users", "key": [ @@ -859,38 +868,6 @@ "flow": "a78d01a4-13b3-46a4-8938-9606bf26e329", "_syncId": "810b13ca-f884-4b1d-84db-8f71ed067337" }, - { - "name": "Read Data", - "key": "item_read_soekq", - "type": "item-read", - "position_x": 56, - "position_y": 1, - "options": { - "query": { - "filter": { - "_and": [ - { - "layer": { - "_eq": "91bc3d4f-1851-4cd9-abd9-ab95a6a596a5" - } - }, - { - "user_created": { - "_eq": "{{$last[0].id}}" - } - } - ] - } - }, - "collection": "items", - "emitEvents": false, - "permissions": "$trigger" - }, - "resolve": "7e647ad3-8a87-43c6-aee3-08600f0382e0", - "reject": null, - "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", - "_syncId": "31bdf2e1-23f2-41e5-b40b-8e9076065119" - }, { "name": "Read Data", "key": "item_read_ym92c", @@ -910,7 +887,7 @@ }, "key": [] }, - "resolve": "31bdf2e1-23f2-41e5-b40b-8e9076065119", + "resolve": "7e647ad3-8a87-43c6-aee3-08600f0382e0", "reject": null, "flow": "cb772a2c-150c-4cca-bc2c-1f8498a5cd92", "_syncId": "840b0278-ff8a-4f2f-bf67-c75a2e7e00b6" @@ -963,7 +940,7 @@ "name": "Update Nomads Current Location", "key": "item_update_5eu19", "type": "item-update", - "position_x": 146, + "position_x": 129, "position_y": 1, "options": { "key": [], @@ -972,7 +949,7 @@ "_and": [ { "layer": { - "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" + "_eq": "98f4cd2f-e1ce-4db8-bb16-f4bbf3d6991a" } }, { @@ -1000,8 +977,8 @@ "name": "Update Nomads Current Location", "key": "item_update_5eu19_prdze", "type": "item-update", - "position_x": 139, - "position_y": 18, + "position_x": 119, + "position_y": 17, "options": { "key": [], "query": { @@ -1009,7 +986,7 @@ "_and": [ { "layer": { - "_eq": "bc55bd85-a357-47e0-8bb7-d49063548ac2" + "_eq": "98f4cd2f-e1ce-4db8-bb16-f4bbf3d6991a" } }, { @@ -1105,7 +1082,7 @@ "name": "Update Nomads User", "key": "item_update_e3pl5", "type": "item-update", - "position_x": 127, + "position_x": 110, "position_y": 1, "options": { "permissions": "$full", @@ -1128,8 +1105,8 @@ "name": "Update Nomads User", "key": "item_update_e3pl5_wansj", "type": "item-update", - "position_x": 119, - "position_y": 18, + "position_x": 100, + "position_y": 17, "options": { "permissions": "$full", "emitEvents": false, @@ -1140,7 +1117,8 @@ "payload": { "first_name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", "email": "{{item_read_i7dz7.email}}" - } + }, + "query": null }, "resolve": "4dc368cc-6fc1-411e-b0f0-b39490c3efe0", "reject": null, @@ -1151,20 +1129,34 @@ "name": "Update Nomads Home", "key": "item_update_o6cn8", "type": "item-update", - "position_x": 109, + "position_x": 91, "position_y": 1, "options": { "permissions": "$full", "emitEvents": false, - "collection": "items", - "key": [ - "{{item_read_soekq[0].id}}" - ], + "key": [], + "query": { + "filter": { + "_and": [ + { + "layer": { + "_eq": "4f22c074-a5c0-47a3-9e76-2bb76eb2e362" + } + }, + { + "user_created": { + "_eq": "{{item_read_ym92c[0].id}}" + } + } + ] + } + }, "payload": { "name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", - "position": "{{$last.data.features[0].geometry}}", - "image_external": "{{item_read_i7dz7.avatar_url}}" - } + "image_external": "{{item_read_i7dz7.avatar_url}}", + "position": "{{$last.data.features[0].geometry}}" + }, + "collection": "items" }, "resolve": "e7b3b7b8-c34a-4024-8aa4-d7d4687d6752", "reject": null, @@ -1175,20 +1167,34 @@ "name": "Update Nomads Home", "key": "item_update_o6cn8_nitpl", "type": "item-update", - "position_x": 99, - "position_y": 18, + "position_x": 81, + "position_y": 17, "options": { "permissions": "$full", "emitEvents": false, - "collection": "items", - "key": [ - "{{item_read_soekq[0].id}}" - ], + "key": [], + "query": { + "filter": { + "_and": [ + { + "layer": { + "_eq": "4f22c074-a5c0-47a3-9e76-2bb76eb2e362" + } + }, + { + "user_created": { + "_eq": "{{item_read_ym92c[0].id}}" + } + } + ] + } + }, "payload": { "name": "{{item_read_i7dz7.first_name}} {{item_read_i7dz7.last_name}}", - "image_external": "{{item_read_i7dz7.avatar_url}}", - "position": null - } + "position": null, + "image_external": "{{item_read_i7dz7.avatar_url}}" + }, + "collection": "items" }, "resolve": "b22755ba-4ec5-4e04-a3fe-a390a9bc75ab", "reject": null, @@ -1407,7 +1413,7 @@ "name": "Webhook / Request URL", "key": "request_hfzgd", "type": "request", - "position_x": 92, + "position_x": 73, "position_y": 1, "options": { "method": "GET", diff --git a/backend/directus-config/development/collections/presets.json b/backend/directus-config/development/collections/presets.json index fbab7234..aabcbfcd 100644 --- a/backend/directus-config/development/collections/presets.json +++ b/backend/directus-config/development/collections/presets.json @@ -29,69 +29,6 @@ "color": null, "_syncId": "053f9b93-aa94-4ad8-b64e-babb69f0ea6c" }, - { - "bookmark": null, - "role": null, - "collection": "layers", - "search": "", - "layout": "tabular", - "layout_query": { - "tabular": { - "page": 1, - "fields": [ - "sort", - "menuColor", - "name", - "itemType.name", - "maps.maps_id.name" - ], - "sort": [ - "sort" - ] - } - }, - "layout_options": { - "tabular": { - "widths": { - "sort": 92, - "menuColor": 41.5, - "itemType.name": 235, - "maps.maps_id.name": 248 - }, - "spacing": "compact" - } - }, - "refresh_interval": null, - "filter": null, - "icon": "bookmark", - "color": null, - "_syncId": "0b2cc1ac-347b-438c-874e-6190c8ea0ef6" - }, - { - "bookmark": null, - "role": null, - "collection": "layers", - "search": "", - "layout": "tabular", - "layout_query": { - "tabular": { - "page": 1 - } - }, - "layout_options": { - "tabular": { - "widths": { - "maps.maps_id.name": 1003.888916015625 - }, - "spacing": "compact" - } - }, - "refresh_interval": null, - "filter": null, - "icon": "bookmark", - "color": null, - "_syncId": "1b452db1-8add-4a5e-948d-b380d99121c3" - }, { "bookmark": null, "role": null, @@ -183,45 +120,5 @@ "icon": "bookmark", "color": null, "_syncId": "3789cfe7-78f9-428e-9770-d8e1c5de1145" - }, - { - "bookmark": null, - "role": null, - "collection": "layers", - "search": "", - "layout": "tabular", - "layout_query": { - "tabular": { - "page": 1, - "fields": [ - "sort", - "markerIcon.image.$thumbnail", - "menuColor", - "name", - "itemType.name", - "maps.maps_id.name" - ], - "sort": [ - "sort" - ] - } - }, - "layout_options": { - "tabular": { - "widths": { - "sort": 91.5, - "markerIcon.image.$thumbnail": 58, - "menuColor": 65.5, - "itemType.name": 235, - "maps.maps_id.name": 248 - }, - "spacing": "compact" - } - }, - "refresh_interval": null, - "filter": null, - "icon": "bookmark", - "color": null, - "_syncId": "85c6dba0-1906-4c16-a245-4a8eab8a6855" } ] From 756a2cdf64b36310ddfd0ec2411e28652450004a Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 10 Sep 2025 11:20:51 +0100 Subject: [PATCH 36/39] refactor(backend): structural change to match directus-sync's default (#377) * a small structural change to fit better with the default of directus-sync * revert mage conflict --- .../seed/{directus => }/directus_files.json | 0 .../{directus => }/directus_files_marker_outline.json | 0 .../{directus => }/directus_files_marker_solid.json | 0 .../seed/{directus => }/files/icons/outline/boat.svg | 0 .../{directus => }/files/icons/outline/calendar.svg | 0 .../seed/{directus => }/files/icons/outline/house.svg | 0 .../{directus => }/files/icons/outline/map-pin.svg | 0 .../seed/{directus => }/files/icons/outline/user.svg | 0 .../seed/{directus => }/files/icons/outline/users.svg | 0 .../seed/{directus => }/files/icons/solid/bicycle.svg | 0 .../seed/{directus => }/files/icons/solid/boat.svg | 0 .../seed/{directus => }/files/icons/solid/cafe.svg | 0 .../seed/{directus => }/files/icons/solid/calendar.svg | 0 .../seed/{directus => }/files/icons/solid/camp.svg | 0 .../seed/{directus => }/files/icons/solid/cannabis.svg | 0 .../{directus => }/files/icons/solid/circle-dot.svg | 0 .../seed/{directus => }/files/icons/solid/compass.svg | 0 .../{directus => }/files/icons/solid/crosshair.svg | 0 .../seed/{directus => }/files/icons/solid/drum.svg | 0 .../seed/{directus => }/files/icons/solid/fire.svg | 0 .../seed/{directus => }/files/icons/solid/flower.svg | 0 .../seed/{directus => }/files/icons/solid/group.svg | 0 .../seed/{directus => }/files/icons/solid/house.svg | 0 .../files/icons/solid/liebevoll.jetzt.svg | 0 .../seed/{directus => }/files/icons/solid/music.svg | 0 .../seed/{directus => }/files/icons/solid/network.svg | 0 .../seed/{directus => }/files/icons/solid/offer.svg | 0 .../seed/{directus => }/files/icons/solid/plant.svg | 0 .../seed/{directus => }/files/icons/solid/point.svg | 0 .../seed/{directus => }/files/icons/solid/puzzle.svg | 0 .../seed/{directus => }/files/icons/solid/quest.svg | 0 .../seed/{directus => }/files/icons/solid/shop.svg | 0 .../{directus => }/files/icons/solid/staff-snake.svg | 0 .../seed/{directus => }/files/icons/solid/star.svg | 0 .../seed/{directus => }/files/icons/solid/steps.svg | 0 .../{directus => }/files/icons/solid/suitecase.svg | 0 .../seed/{directus => }/files/icons/solid/tree.svg | 0 .../seed/{directus => }/files/icons/solid/user.svg | 0 .../seed/{directus => }/files/utopia-logo.svg | 0 .../development/seed/{directus => }/files/vessel.svg | 0 .../development/seed/{directus => }/gallery.json | 0 .../development/seed/{directus => }/items.json | 0 .../development/seed/{directus => }/layers.json | 0 .../development/seed/{directus => }/layers_maps.json | 0 .../development/seed/{directus => }/maps.json | 0 .../development/seed/{directus => }/marker_icons.json | 0 .../development/seed/{directus => }/startEnd.json | 0 .../development/seed/{directus => }/texts.json | 0 .../development/seed/{directus => }/types.json | 0 .../development/{seed/manual => sql}/branding-logo.sql | 0 .../development/{seed/manual => sql}/register-role.sql | 0 .../{seed/manual => sql}/type-ui-components.sql | 0 backend/seed.sh | 10 +++++----- 53 files changed, 5 insertions(+), 5 deletions(-) rename backend/directus-config/development/seed/{directus => }/directus_files.json (100%) rename backend/directus-config/development/seed/{directus => }/directus_files_marker_outline.json (100%) rename backend/directus-config/development/seed/{directus => }/directus_files_marker_solid.json (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/outline/boat.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/outline/calendar.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/outline/house.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/outline/map-pin.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/outline/user.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/outline/users.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/bicycle.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/boat.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/cafe.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/calendar.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/camp.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/cannabis.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/circle-dot.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/compass.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/crosshair.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/drum.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/fire.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/flower.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/group.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/house.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/liebevoll.jetzt.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/music.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/network.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/offer.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/plant.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/point.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/puzzle.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/quest.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/shop.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/staff-snake.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/star.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/steps.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/suitecase.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/tree.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/icons/solid/user.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/utopia-logo.svg (100%) rename backend/directus-config/development/seed/{directus => }/files/vessel.svg (100%) rename backend/directus-config/development/seed/{directus => }/gallery.json (100%) rename backend/directus-config/development/seed/{directus => }/items.json (100%) rename backend/directus-config/development/seed/{directus => }/layers.json (100%) rename backend/directus-config/development/seed/{directus => }/layers_maps.json (100%) rename backend/directus-config/development/seed/{directus => }/maps.json (100%) rename backend/directus-config/development/seed/{directus => }/marker_icons.json (100%) rename backend/directus-config/development/seed/{directus => }/startEnd.json (100%) rename backend/directus-config/development/seed/{directus => }/texts.json (100%) rename backend/directus-config/development/seed/{directus => }/types.json (100%) rename backend/directus-config/development/{seed/manual => sql}/branding-logo.sql (100%) rename backend/directus-config/development/{seed/manual => sql}/register-role.sql (100%) rename backend/directus-config/development/{seed/manual => sql}/type-ui-components.sql (100%) diff --git a/backend/directus-config/development/seed/directus/directus_files.json b/backend/directus-config/development/seed/directus_files.json similarity index 100% rename from backend/directus-config/development/seed/directus/directus_files.json rename to backend/directus-config/development/seed/directus_files.json diff --git a/backend/directus-config/development/seed/directus/directus_files_marker_outline.json b/backend/directus-config/development/seed/directus_files_marker_outline.json similarity index 100% rename from backend/directus-config/development/seed/directus/directus_files_marker_outline.json rename to backend/directus-config/development/seed/directus_files_marker_outline.json diff --git a/backend/directus-config/development/seed/directus/directus_files_marker_solid.json b/backend/directus-config/development/seed/directus_files_marker_solid.json similarity index 100% rename from backend/directus-config/development/seed/directus/directus_files_marker_solid.json rename to backend/directus-config/development/seed/directus_files_marker_solid.json diff --git a/backend/directus-config/development/seed/directus/files/icons/outline/boat.svg b/backend/directus-config/development/seed/files/icons/outline/boat.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/outline/boat.svg rename to backend/directus-config/development/seed/files/icons/outline/boat.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/outline/calendar.svg b/backend/directus-config/development/seed/files/icons/outline/calendar.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/outline/calendar.svg rename to backend/directus-config/development/seed/files/icons/outline/calendar.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/outline/house.svg b/backend/directus-config/development/seed/files/icons/outline/house.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/outline/house.svg rename to backend/directus-config/development/seed/files/icons/outline/house.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/outline/map-pin.svg b/backend/directus-config/development/seed/files/icons/outline/map-pin.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/outline/map-pin.svg rename to backend/directus-config/development/seed/files/icons/outline/map-pin.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/outline/user.svg b/backend/directus-config/development/seed/files/icons/outline/user.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/outline/user.svg rename to backend/directus-config/development/seed/files/icons/outline/user.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/outline/users.svg b/backend/directus-config/development/seed/files/icons/outline/users.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/outline/users.svg rename to backend/directus-config/development/seed/files/icons/outline/users.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/bicycle.svg b/backend/directus-config/development/seed/files/icons/solid/bicycle.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/bicycle.svg rename to backend/directus-config/development/seed/files/icons/solid/bicycle.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/boat.svg b/backend/directus-config/development/seed/files/icons/solid/boat.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/boat.svg rename to backend/directus-config/development/seed/files/icons/solid/boat.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/cafe.svg b/backend/directus-config/development/seed/files/icons/solid/cafe.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/cafe.svg rename to backend/directus-config/development/seed/files/icons/solid/cafe.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/calendar.svg b/backend/directus-config/development/seed/files/icons/solid/calendar.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/calendar.svg rename to backend/directus-config/development/seed/files/icons/solid/calendar.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/camp.svg b/backend/directus-config/development/seed/files/icons/solid/camp.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/camp.svg rename to backend/directus-config/development/seed/files/icons/solid/camp.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/cannabis.svg b/backend/directus-config/development/seed/files/icons/solid/cannabis.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/cannabis.svg rename to backend/directus-config/development/seed/files/icons/solid/cannabis.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/circle-dot.svg b/backend/directus-config/development/seed/files/icons/solid/circle-dot.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/circle-dot.svg rename to backend/directus-config/development/seed/files/icons/solid/circle-dot.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/compass.svg b/backend/directus-config/development/seed/files/icons/solid/compass.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/compass.svg rename to backend/directus-config/development/seed/files/icons/solid/compass.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/crosshair.svg b/backend/directus-config/development/seed/files/icons/solid/crosshair.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/crosshair.svg rename to backend/directus-config/development/seed/files/icons/solid/crosshair.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/drum.svg b/backend/directus-config/development/seed/files/icons/solid/drum.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/drum.svg rename to backend/directus-config/development/seed/files/icons/solid/drum.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/fire.svg b/backend/directus-config/development/seed/files/icons/solid/fire.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/fire.svg rename to backend/directus-config/development/seed/files/icons/solid/fire.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/flower.svg b/backend/directus-config/development/seed/files/icons/solid/flower.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/flower.svg rename to backend/directus-config/development/seed/files/icons/solid/flower.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/group.svg b/backend/directus-config/development/seed/files/icons/solid/group.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/group.svg rename to backend/directus-config/development/seed/files/icons/solid/group.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/house.svg b/backend/directus-config/development/seed/files/icons/solid/house.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/house.svg rename to backend/directus-config/development/seed/files/icons/solid/house.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/liebevoll.jetzt.svg b/backend/directus-config/development/seed/files/icons/solid/liebevoll.jetzt.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/liebevoll.jetzt.svg rename to backend/directus-config/development/seed/files/icons/solid/liebevoll.jetzt.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/music.svg b/backend/directus-config/development/seed/files/icons/solid/music.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/music.svg rename to backend/directus-config/development/seed/files/icons/solid/music.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/network.svg b/backend/directus-config/development/seed/files/icons/solid/network.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/network.svg rename to backend/directus-config/development/seed/files/icons/solid/network.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/offer.svg b/backend/directus-config/development/seed/files/icons/solid/offer.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/offer.svg rename to backend/directus-config/development/seed/files/icons/solid/offer.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/plant.svg b/backend/directus-config/development/seed/files/icons/solid/plant.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/plant.svg rename to backend/directus-config/development/seed/files/icons/solid/plant.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/point.svg b/backend/directus-config/development/seed/files/icons/solid/point.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/point.svg rename to backend/directus-config/development/seed/files/icons/solid/point.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/puzzle.svg b/backend/directus-config/development/seed/files/icons/solid/puzzle.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/puzzle.svg rename to backend/directus-config/development/seed/files/icons/solid/puzzle.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/quest.svg b/backend/directus-config/development/seed/files/icons/solid/quest.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/quest.svg rename to backend/directus-config/development/seed/files/icons/solid/quest.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/shop.svg b/backend/directus-config/development/seed/files/icons/solid/shop.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/shop.svg rename to backend/directus-config/development/seed/files/icons/solid/shop.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/staff-snake.svg b/backend/directus-config/development/seed/files/icons/solid/staff-snake.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/staff-snake.svg rename to backend/directus-config/development/seed/files/icons/solid/staff-snake.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/star.svg b/backend/directus-config/development/seed/files/icons/solid/star.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/star.svg rename to backend/directus-config/development/seed/files/icons/solid/star.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/steps.svg b/backend/directus-config/development/seed/files/icons/solid/steps.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/steps.svg rename to backend/directus-config/development/seed/files/icons/solid/steps.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/suitecase.svg b/backend/directus-config/development/seed/files/icons/solid/suitecase.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/suitecase.svg rename to backend/directus-config/development/seed/files/icons/solid/suitecase.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/tree.svg b/backend/directus-config/development/seed/files/icons/solid/tree.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/tree.svg rename to backend/directus-config/development/seed/files/icons/solid/tree.svg diff --git a/backend/directus-config/development/seed/directus/files/icons/solid/user.svg b/backend/directus-config/development/seed/files/icons/solid/user.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/icons/solid/user.svg rename to backend/directus-config/development/seed/files/icons/solid/user.svg diff --git a/backend/directus-config/development/seed/directus/files/utopia-logo.svg b/backend/directus-config/development/seed/files/utopia-logo.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/utopia-logo.svg rename to backend/directus-config/development/seed/files/utopia-logo.svg diff --git a/backend/directus-config/development/seed/directus/files/vessel.svg b/backend/directus-config/development/seed/files/vessel.svg similarity index 100% rename from backend/directus-config/development/seed/directus/files/vessel.svg rename to backend/directus-config/development/seed/files/vessel.svg diff --git a/backend/directus-config/development/seed/directus/gallery.json b/backend/directus-config/development/seed/gallery.json similarity index 100% rename from backend/directus-config/development/seed/directus/gallery.json rename to backend/directus-config/development/seed/gallery.json diff --git a/backend/directus-config/development/seed/directus/items.json b/backend/directus-config/development/seed/items.json similarity index 100% rename from backend/directus-config/development/seed/directus/items.json rename to backend/directus-config/development/seed/items.json diff --git a/backend/directus-config/development/seed/directus/layers.json b/backend/directus-config/development/seed/layers.json similarity index 100% rename from backend/directus-config/development/seed/directus/layers.json rename to backend/directus-config/development/seed/layers.json diff --git a/backend/directus-config/development/seed/directus/layers_maps.json b/backend/directus-config/development/seed/layers_maps.json similarity index 100% rename from backend/directus-config/development/seed/directus/layers_maps.json rename to backend/directus-config/development/seed/layers_maps.json diff --git a/backend/directus-config/development/seed/directus/maps.json b/backend/directus-config/development/seed/maps.json similarity index 100% rename from backend/directus-config/development/seed/directus/maps.json rename to backend/directus-config/development/seed/maps.json diff --git a/backend/directus-config/development/seed/directus/marker_icons.json b/backend/directus-config/development/seed/marker_icons.json similarity index 100% rename from backend/directus-config/development/seed/directus/marker_icons.json rename to backend/directus-config/development/seed/marker_icons.json diff --git a/backend/directus-config/development/seed/directus/startEnd.json b/backend/directus-config/development/seed/startEnd.json similarity index 100% rename from backend/directus-config/development/seed/directus/startEnd.json rename to backend/directus-config/development/seed/startEnd.json diff --git a/backend/directus-config/development/seed/directus/texts.json b/backend/directus-config/development/seed/texts.json similarity index 100% rename from backend/directus-config/development/seed/directus/texts.json rename to backend/directus-config/development/seed/texts.json diff --git a/backend/directus-config/development/seed/directus/types.json b/backend/directus-config/development/seed/types.json similarity index 100% rename from backend/directus-config/development/seed/directus/types.json rename to backend/directus-config/development/seed/types.json diff --git a/backend/directus-config/development/seed/manual/branding-logo.sql b/backend/directus-config/development/sql/branding-logo.sql similarity index 100% rename from backend/directus-config/development/seed/manual/branding-logo.sql rename to backend/directus-config/development/sql/branding-logo.sql diff --git a/backend/directus-config/development/seed/manual/register-role.sql b/backend/directus-config/development/sql/register-role.sql similarity index 100% rename from backend/directus-config/development/seed/manual/register-role.sql rename to backend/directus-config/development/sql/register-role.sql diff --git a/backend/directus-config/development/seed/manual/type-ui-components.sql b/backend/directus-config/development/sql/type-ui-components.sql similarity index 100% rename from backend/directus-config/development/seed/manual/type-ui-components.sql rename to backend/directus-config/development/sql/type-ui-components.sql diff --git a/backend/seed.sh b/backend/seed.sh index e64481fb..42b97d31 100755 --- a/backend/seed.sh +++ b/backend/seed.sh @@ -23,19 +23,19 @@ npx directus-sync push \ --directus-password $DIRECTUS_PASSWORD \ || exit 1 -echo "Seed data via directus-sync" +echo "Seed data" npx directus-sync seed push \ + --seed-path $PROJECT_FOLDER/seed \ --directus-url $DIRECTUS_URL \ --directus-email $DIRECTUS_EMAIL \ --directus-password $DIRECTUS_PASSWORD \ - --seed-path $PROJECT_FOLDER/seed/directus \ || exit 1 -SEED_SQL_DIR=$PROJECT_FOLDER/seed/manual +SQL_DIR=$PROJECT_FOLDER/sql -echo "Seed data via sql-files" +echo "Execute custom sql-files" # apply database updates -for filename in $SEED_SQL_DIR/*.sql; do +for filename in $SQL_DIR/*.sql; do echo "Executing $filename" docker exec -i utopia-map-database-1 /bin/bash -c "PGPASSWORD=$PGPASSWORD psql -v ON_ERROR_STOP=1 --username $PGUSER $PGDATABASE" < $filename || exit 1 done \ No newline at end of file From 31291715341f17666e473c1fb06a638a5510fe94 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 10 Sep 2025 11:26:02 +0100 Subject: [PATCH 37/39] missing changes & fixes from oceannomads (#376) --- backend/directus-config/development/seed/types.json | 4 ++-- .../directus-config/development/sql/type-ui-components.sql | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/directus-config/development/seed/types.json b/backend/directus-config/development/seed/types.json index 2ceb8a55..92704e1b 100644 --- a/backend/directus-config/development/seed/types.json +++ b/backend/directus-config/development/seed/types.json @@ -46,7 +46,7 @@ "show_start_end" : false, "custom_profile_url" : "https://community.oceannomads.co/members", "show_text_input" : true, - "show_name_iput" : false, + "show_name_input" : false, "show_header_view_in_form" : true, "small_form_edit" : true }, @@ -62,7 +62,7 @@ "show_profile_button" : true, "show_start_end" : false, "show_text_input" : false, - "show_name_iput" : true, + "show_name_input" : true, "show_header_view_in_form" : false, "small_form_edit" : false } diff --git a/backend/directus-config/development/sql/type-ui-components.sql b/backend/directus-config/development/sql/type-ui-components.sql index 6f0ceb69..4d3c8fc3 100644 --- a/backend/directus-config/development/sql/type-ui-components.sql +++ b/backend/directus-config/development/sql/type-ui-components.sql @@ -28,7 +28,7 @@ ON CONFLICT (id) DO UPDATE -- Type: event INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) SELECT - 'startEnd', '1', '0b5e5f0a-76a4-407f-84ab-2fd718965909' , '1', types.id + 'startEnd', '3', '0b5e5f0a-76a4-407f-84ab-2fd718965909' , '1', types.id FROM public.types as types WHERE @@ -41,7 +41,7 @@ ON CONFLICT (id) DO UPDATE INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) SELECT - 'texts', '2', '94f6af1d-77e5-49ed-937b-6b9addc4f8ac' , '2', types.id + 'texts', '4', '94f6af1d-77e5-49ed-937b-6b9addc4f8ac' , '2', types.id FROM public.types as types WHERE @@ -54,7 +54,7 @@ ON CONFLICT (id) DO UPDATE INSERT INTO public."types_profileTemplate" (collection, id, item, sort, types_id) SELECT - 'gallery', '3', 'b0c52d6e-b3d2-4e3b-89e2-065be324e27b' , '3', types.id + 'gallery', '5', 'b0c52d6e-b3d2-4e3b-89e2-065be324e27b' , '3', types.id FROM public.types as types WHERE From 6d0d346c6c0a17fb76bdb2055f19040a5b64925b Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 10 Sep 2025 11:30:39 +0100 Subject: [PATCH 38/39] feat(docker): missing docker compose variables (#378) * missing docker compose variables * adjust array list according to production environment --- docker-compose.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index b81a5a3c..86ae6231 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,6 +56,7 @@ services: CORS_ENABLED: 'true' CORS_ORIGIN: 'array:http://localhost:8080,http://localhost:5174' + PASSWORD_RESET_URL_ALLOW_LIST: 'http://localhost:8080/set-new-password/,http://localhost:5174/set-new-password/' DB_CLIENT: 'pg' DB_HOST: 'database' @@ -71,3 +72,15 @@ services: ADMIN_EMAIL: 'admin@it4c.dev' ADMIN_PASSWORD: 'admin123' + + #EMAIL_FROM: 'utopia@localhost' + #EMAIL_TRANSPORT: "smtp" + #EMAIL_SMTP_HOST: "maildev" + #EMAIL_SMTP_PORT: "465" + #EMAIL_SMTP_POOL: false + #EMAIL_SMTP_SECURE: true + #EMAIL_VERIFY_SETUP: true + #EMAIL_SMTP_IGNORE_TLS: true + #EMAIL_SMTP_TLS: true + #EMAIL_SMTP_TLS_REJECT_UNAUTHORIZED: false + #EMAIL_SMTP_NAME: "Utopia Development" From 07c8154453bafd946211e030ca4a4b9411f5b3c7 Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Wed, 10 Sep 2025 11:31:50 +0100 Subject: [PATCH 39/39] add trailing slash for VITE_API_URL example (#379) Co-authored-by: Anton Tranelis <31516529+antontranelis@users.noreply.github.com> --- app/.env.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/.env.dist b/app/.env.dist index f2850d71..19de2e08 100644 --- a/app/.env.dist +++ b/app/.env.dist @@ -1,6 +1,6 @@ VITE_OPEN_COLLECTIVE_API_KEY=your_key VITE_API_URL=http://localhost:8055/ -#VITE_API_URL=https://api.utopia-lab.org +#VITE_API_URL=https://api.utopia-lab.org/ VITE_MAP_URL=http://local.development #VITE_MAP_URL=CURRENT_WINDOW_LOCATION #VITE_DIRECTUS_ADMIN_ROLE=