diff --git a/server/immich-openapi-specs.json b/server/immich-openapi-specs.json
index 82f2a501df75a..4de55a4f758e8 100644
--- a/server/immich-openapi-specs.json
+++ b/server/immich-openapi-specs.json
@@ -1476,6 +1476,153 @@
]
}
},
+ "/tag": {
+ "post": {
+ "operationId": "create",
+ "description": "",
+ "parameters": [],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreateTagDto"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResponseDto"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Tag"
+ ]
+ },
+ "get": {
+ "operationId": "findAll",
+ "description": "",
+ "parameters": [],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagResponseDto"
+ }
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Tag"
+ ]
+ }
+ },
+ "/tag/{id}": {
+ "get": {
+ "operationId": "findOne",
+ "description": "",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResponseDto"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Tag"
+ ]
+ },
+ "patch": {
+ "operationId": "update",
+ "description": "",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UpdateTagDto"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResponseDto"
+ }
+ }
+ }
+ }
+ },
+ "tags": [
+ "Tag"
+ ]
+ },
+ "delete": {
+ "operationId": "delete",
+ "description": "",
+ "parameters": [
+ {
+ "name": "id",
+ "required": true,
+ "in": "path",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": ""
+ }
+ },
+ "tags": [
+ "Tag"
+ ]
+ }
+ },
"/album/count-by-user-id": {
"get": {
"operationId": "getAlbumCountByUserId",
@@ -1947,153 +2094,6 @@
]
}
},
- "/tag": {
- "post": {
- "operationId": "create",
- "description": "",
- "parameters": [],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/CreateTagDto"
- }
- }
- }
- },
- "responses": {
- "201": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TagResponseDto"
- }
- }
- }
- }
- },
- "tags": [
- "Tag"
- ]
- },
- "get": {
- "operationId": "findAll",
- "description": "",
- "parameters": [],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "type": "array",
- "items": {
- "$ref": "#/components/schemas/TagResponseDto"
- }
- }
- }
- }
- }
- },
- "tags": [
- "Tag"
- ]
- }
- },
- "/tag/{id}": {
- "get": {
- "operationId": "findOne",
- "description": "",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TagResponseDto"
- }
- }
- }
- }
- },
- "tags": [
- "Tag"
- ]
- },
- "patch": {
- "operationId": "update",
- "description": "",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/UpdateTagDto"
- }
- }
- }
- },
- "responses": {
- "200": {
- "description": "",
- "content": {
- "application/json": {
- "schema": {
- "$ref": "#/components/schemas/TagResponseDto"
- }
- }
- }
- }
- },
- "tags": [
- "Tag"
- ]
- },
- "delete": {
- "operationId": "delete",
- "description": "",
- "parameters": [
- {
- "name": "id",
- "required": true,
- "in": "path",
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": ""
- }
- },
- "tags": [
- "Tag"
- ]
- }
- },
"/auth/login": {
"post": {
"operationId": "login",
@@ -3786,6 +3786,32 @@
}
}
},
+ "CreateTagDto": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "$ref": "#/components/schemas/TagTypeEnum"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "name"
+ ]
+ },
+ "UpdateTagDto": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "renameTagId": {
+ "type": "string"
+ }
+ }
+ },
"AlbumCountResponseDto": {
"type": "object",
"properties": {
@@ -3922,32 +3948,6 @@
"albumId"
]
},
- "CreateTagDto": {
- "type": "object",
- "properties": {
- "type": {
- "$ref": "#/components/schemas/TagTypeEnum"
- },
- "name": {
- "type": "string"
- }
- },
- "required": [
- "type",
- "name"
- ]
- },
- "UpdateTagDto": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "renameTagId": {
- "type": "string"
- }
- }
- },
"LoginCredentialDto": {
"type": "object",
"properties": {
diff --git a/web/src/lib/components/album-page/album-card.svelte b/web/src/lib/components/album-page/album-card.svelte
index a1bcd09774eed..f702538ef8c0a 100644
--- a/web/src/lib/components/album-page/album-card.svelte
+++ b/web/src/lib/components/album-page/album-card.svelte
@@ -79,6 +79,7 @@
alt={album.id}
class={`object-cover h-full w-full transition-all z-0 rounded-xl duration-300 hover:shadow-lg`}
data-testid="album-image"
+ draggable="false"
/>
diff --git a/web/src/lib/components/album-page/album-viewer.svelte b/web/src/lib/components/album-page/album-viewer.svelte
index 501d68d5a794b..566b5627f85a3 100644
--- a/web/src/lib/components/album-page/album-viewer.svelte
+++ b/web/src/lib/components/album-page/album-viewer.svelte
@@ -418,7 +418,13 @@
class="flex gap-2 place-items-center hover:cursor-pointer ml-6"
href="https://immich.app"
>
-
+
Invite to album
LIBRARY