diff --git a/docs/docs/developer/open-api.md b/docs/docs/developer/open-api.md index ca9473a649..2c29c7365b 100644 --- a/docs/docs/developer/open-api.md +++ b/docs/docs/developer/open-api.md @@ -7,11 +7,7 @@ Immich uses the [OpenAPI](https://swagger.io/specification/) standard to generat OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generator-cli` can be installed [here](https://openapi-generator.tech/docs/installation/). The generated SDK is based on the `immich-openapi-specs.json` file, which is autogenerated by the server **when running in development mode**. The `immich-openapi-specs.json` file can be modified with `@nestjs/swagger` decorators used or referenced by controller endpoints. See the [NestJS OpenAPI docs](https://docs.nestjs.com/openapi/types-and-parameters) for more info. When you add a new endpoint or modify an existing one, you must run the server in development mode and run the command below to update the client SDK. ```bash -npm run api:generate # Run from the `server/` directory +make open-api ``` -You can find the generated client SDK in the `web/src/api` for Typescript SDK and `mobile/openapi` for Dart SDK. - -:::tip -This can also be run via `make open-api` from the project root directory (not in the `server` folder) -::: +You can find the generated client SDK in the `open-api/typescript-sdk/client` for Typescript SDK and `mobile/openapi` for Dart SDK. diff --git a/machine-learning/pyproject.toml b/machine-learning/pyproject.toml index ca96fc56d7..4231e5421a 100644 --- a/machine-learning/pyproject.toml +++ b/machine-learning/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "machine-learning" -version = "1.93.1" +version = "1.93.2" description = "" authors = ["Hau Tran "] readme = "README.md" diff --git a/misc/release/pump-version.sh b/misc/release/pump-version.sh index a237909713..3342372fc6 100755 --- a/misc/release/pump-version.sh +++ b/misc/release/pump-version.sh @@ -62,7 +62,7 @@ fi if [ "$CURRENT_SERVER" != "$NEXT_SERVER" ]; then echo "Pumping Server: $CURRENT_SERVER => $NEXT_SERVER" npm --prefix server version $SERVER_PUMP - npm --prefix server run api:generate + make open-api poetry --directory machine-learning version $SERVER_PUMP fi diff --git a/mobile/android/fastlane/Fastfile b/mobile/android/fastlane/Fastfile index 84f10f14fb..432810dbd3 100644 --- a/mobile/android/fastlane/Fastfile +++ b/mobile/android/fastlane/Fastfile @@ -35,8 +35,8 @@ platform :android do task: 'bundle', build_type: 'Release', properties: { - "android.injected.version.code" => 118, - "android.injected.version.name" => "1.93.1", + "android.injected.version.code" => 119, + "android.injected.version.name" => "1.93.2", } ) upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab') diff --git a/mobile/ios/fastlane/Fastfile b/mobile/ios/fastlane/Fastfile index 829dff8974..019651034c 100644 --- a/mobile/ios/fastlane/Fastfile +++ b/mobile/ios/fastlane/Fastfile @@ -19,7 +19,7 @@ platform :ios do desc "iOS Beta" lane :beta do increment_version_number( - version_number: "1.93.1" + version_number: "1.93.2" ) increment_build_number( build_number: latest_testflight_build_number + 1, diff --git a/mobile/lib/modules/home/ui/control_bottom_app_bar.dart b/mobile/lib/modules/home/ui/control_bottom_app_bar.dart index 119a94d9e7..12c06eaefd 100644 --- a/mobile/lib/modules/home/ui/control_bottom_app_bar.dart +++ b/mobile/lib/modules/home/ui/control_bottom_app_bar.dart @@ -197,7 +197,7 @@ class ControlBottomAppBar extends ConsumerWidget { label: "control_bottom_app_bar_edit_location".tr(), onPressed: enabled ? onEditLocation : null, ), - if (!hasLocal && + if (!selectionAssetState.hasLocal && selectionAssetState.selectedCount > 1 && onStack != null) ControlBoxButton( @@ -211,7 +211,7 @@ class ControlBottomAppBar extends ConsumerWidget { label: 'album_viewer_appbar_share_remove'.tr(), onPressed: enabled ? onRemoveFromAlbum : null, ), - if (hasLocal) + if (selectionAssetState.hasLocal) ControlBoxButton( iconData: Icons.backup_outlined, label: "Upload", diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index 10e5ecd45c..36d4c71a8b 100644 --- a/mobile/openapi/README.md +++ b/mobile/openapi/README.md @@ -3,7 +3,7 @@ Immich API This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 1.93.0 +- API version: 1.93.2 - Build package: org.openapitools.codegen.languages.DartClientCodegen ## Requirements diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 589b266b6d..beeb1062d7 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -2,7 +2,7 @@ name: immich_mobile description: Immich - selfhosted backup media file on mobile phone publish_to: "none" -version: 1.93.1+118 +version: 1.93.2+119 isar_version: &isar_version 3.1.0+1 environment: diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json index 16f665d26f..c2e52b1d54 100644 --- a/open-api/immich-openapi-specs.json +++ b/open-api/immich-openapi-specs.json @@ -6221,7 +6221,7 @@ "info": { "title": "Immich", "description": "Immich API", - "version": "1.93.1", + "version": "1.93.2", "contact": {} }, "tags": [], diff --git a/open-api/typescript-sdk/client/api.ts b/open-api/typescript-sdk/client/api.ts index 6f68d29e66..8aac7b361b 100644 --- a/open-api/typescript-sdk/client/api.ts +++ b/open-api/typescript-sdk/client/api.ts @@ -4,7 +4,7 @@ * Immich * Immich API * - * The version of the OpenAPI document: 1.93.0 + * The version of the OpenAPI document: 1.93.2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/open-api/typescript-sdk/client/base.ts b/open-api/typescript-sdk/client/base.ts index 9743cb9594..568b488c85 100644 --- a/open-api/typescript-sdk/client/base.ts +++ b/open-api/typescript-sdk/client/base.ts @@ -4,7 +4,7 @@ * Immich * Immich API * - * The version of the OpenAPI document: 1.93.0 + * The version of the OpenAPI document: 1.93.2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/open-api/typescript-sdk/client/common.ts b/open-api/typescript-sdk/client/common.ts index db34640578..f01289bb07 100644 --- a/open-api/typescript-sdk/client/common.ts +++ b/open-api/typescript-sdk/client/common.ts @@ -4,7 +4,7 @@ * Immich * Immich API * - * The version of the OpenAPI document: 1.93.0 + * The version of the OpenAPI document: 1.93.2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/open-api/typescript-sdk/client/configuration.ts b/open-api/typescript-sdk/client/configuration.ts index 9061ba1ed4..945c6418fd 100644 --- a/open-api/typescript-sdk/client/configuration.ts +++ b/open-api/typescript-sdk/client/configuration.ts @@ -4,7 +4,7 @@ * Immich * Immich API * - * The version of the OpenAPI document: 1.93.0 + * The version of the OpenAPI document: 1.93.2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/open-api/typescript-sdk/client/index.ts b/open-api/typescript-sdk/client/index.ts index c6ccd43fcd..d59ea9781f 100644 --- a/open-api/typescript-sdk/client/index.ts +++ b/open-api/typescript-sdk/client/index.ts @@ -4,7 +4,7 @@ * Immich * Immich API * - * The version of the OpenAPI document: 1.93.0 + * The version of the OpenAPI document: 1.93.2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/server/package-lock.json b/server/package-lock.json index def1120336..ae1c8c8868 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "immich", - "version": "1.93.1", + "version": "1.93.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "immich", - "version": "1.93.1", + "version": "1.93.2", "license": "UNLICENSED", "dependencies": { "@babel/runtime": "^7.22.11", diff --git a/server/package.json b/server/package.json index 2f2b23b634..0d75e2fcba 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "immich", - "version": "1.93.1", + "version": "1.93.2", "description": "", "author": "", "private": true, diff --git a/server/src/domain/person/person.service.spec.ts b/server/src/domain/person/person.service.spec.ts index 0d289e783d..c28af12613 100644 --- a/server/src/domain/person/person.service.spec.ts +++ b/server/src/domain/person/person.service.spec.ts @@ -1014,8 +1014,6 @@ describe(PersonService.name, () => { oldPersonId: personStub.mergePerson.id, }); - expect(personMock.update).not.toHaveBeenCalled(); - expect(accessMock.person.checkOwnerAccess).toHaveBeenCalledWith(authStub.admin.user.id, new Set(['person-1'])); }); @@ -1040,7 +1038,6 @@ describe(PersonService.name, () => { name: personStub.primaryPerson.name, }); - expect(personMock.delete).toHaveBeenCalledWith([personStub.primaryPerson]); expect(accessMock.person.checkOwnerAccess).toHaveBeenCalledWith(authStub.admin.user.id, new Set(['person-1'])); }); diff --git a/web/src/lib/components/admin-page/settings/setting-switch.svelte b/web/src/lib/components/admin-page/settings/setting-switch.svelte index d26144913f..6797423a55 100644 --- a/web/src/lib/components/admin-page/settings/setting-switch.svelte +++ b/web/src/lib/components/admin-page/settings/setting-switch.svelte @@ -2,7 +2,6 @@ import { quintOut } from 'svelte/easing'; import { fly } from 'svelte/transition'; import { createEventDispatcher } from 'svelte'; - import Slider from '$lib/components/elements/slider.svelte'; export let title: string; export let subtitle = ''; @@ -11,6 +10,7 @@ export let isEdited = false; const dispatch = createEventDispatcher<{ toggle: boolean }>(); + const onToggle = (event: Event) => dispatch('toggle', (event.target as HTMLInputElement).checked);
@@ -31,5 +31,67 @@

{subtitle}

- dispatch('toggle', checked)} /> + + + + diff --git a/web/src/lib/components/album-page/user-selection-modal.svelte b/web/src/lib/components/album-page/user-selection-modal.svelte index b7c896fdf3..909afd8958 100644 --- a/web/src/lib/components/album-page/user-selection-modal.svelte +++ b/web/src/lib/components/album-page/user-selection-modal.svelte @@ -7,7 +7,7 @@ import ImmichLogo from '../shared-components/immich-logo.svelte'; import Button from '../elements/buttons/button.svelte'; import { AppRoute } from '$lib/constants'; - import { mdiLink, mdiShareCircle } from '@mdi/js'; + import { mdiCheck, mdiLink, mdiShareCircle } from '@mdi/js'; import Icon from '$lib/components/elements/icon.svelte'; export let album: AlbumResponseDto; @@ -60,28 +60,25 @@ -
- {#if selectedUsers.length > 0} -
-

To

+ {#if selectedUsers.length > 0} +
+

To

- {#each selectedUsers as user} - {#key user.id} - - {/key} - {/each} -
- -
-
- {/if} + {#each selectedUsers as user} + {#key user.id} + + {/key} + {/each} +
+ {/if} +
{#if users.length > 0}

SUGGESTIONS

@@ -92,10 +89,11 @@ class="flex w-full place-items-center gap-4 px-5 py-4 transition-all hover:bg-gray-200 dark:hover:bg-gray-700" > {#if selectedUsers.includes(user)} - + +
{:else} {/if} @@ -118,7 +116,20 @@ {/if}
+ {#if users.length > 0} +
+ +
+ {/if} +
+