diff --git a/API/Controllers/AccountController.cs b/API/Controllers/AccountController.cs index 9f05add96..a5815250c 100644 --- a/API/Controllers/AccountController.cs +++ b/API/Controllers/AccountController.cs @@ -869,17 +869,25 @@ public class AccountController : BaseApiController _logger.LogCritical("[Email Migration]: Token {UserName}: {Token}", user.UserName, token); if (await _accountService.CheckIfAccessible(Request)) { - await _emailService.SendMigrationEmail(new EmailMigrationDto() + try { - EmailAddress = user.Email, - Username = user.UserName, - ServerConfirmationLink = emailLink, - InstallId = (await _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.InstallId)).Value - }); + await _emailService.SendMigrationEmail(new EmailMigrationDto() + { + EmailAddress = user.Email, + Username = user.UserName, + ServerConfirmationLink = emailLink, + InstallId = (await _unitOfWork.SettingsRepository.GetSettingAsync(ServerSettingKey.InstallId)).Value + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "There was an issue resending invite email"); + return BadRequest("There was an issue resending invite email"); + } return Ok(emailLink); } - return Ok("The server is not accessible externally. Please "); + return Ok("The server is not accessible externally"); } /// diff --git a/UI/Web/src/app/_models/library.ts b/UI/Web/src/app/_models/library.ts index 665911be3..059e505c7 100644 --- a/UI/Web/src/app/_models/library.ts +++ b/UI/Web/src/app/_models/library.ts @@ -15,5 +15,5 @@ export interface Library { includeInDashboard: boolean; includeInRecommended: boolean; includeInSearch: boolean; - manageCollections: boolean; + createCollections: boolean; } \ No newline at end of file diff --git a/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts b/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts index 944f81534..93ff2d160 100644 --- a/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts +++ b/UI/Web/src/app/book-reader/_components/reader-settings/reader-settings.component.ts @@ -245,7 +245,14 @@ export class ReaderSettingsComponent implements OnInit, OnDestroy { } this.settingsForm.get('bookReaderFontFamily')?.setValue(this.user.preferences.bookReaderFontFamily); - this.cdRef.markForCheck(); + this.settingsForm.get('bookReaderFontSize')?.setValue(this.user.preferences.bookReaderFontSize); + this.settingsForm.get('bookReaderLineSpacing')?.setValue(this.user.preferences.bookReaderLineSpacing); + this.settingsForm.get('bookReaderMargin')?.setValue(this.user.preferences.bookReaderMargin); + this.settingsForm.get('bookReaderReadingDirection')?.setValue(this.user.preferences.bookReaderReadingDirection); + this.settingsForm.get('bookReaderTapToPaginate')?.setValue(this.user.preferences.bookReaderTapToPaginate); + this.settingsForm.get('layoutMode')?.setValue(this.user.preferences.layoutMode); + this.settingsForm.get('bookReaderImmersiveMode')?.setValue(this.user.preferences.bookReaderImmersiveMode); + this.cdRef.detectChanges(); this.styleUpdate.emit(this.pageStyles); } diff --git a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts index 621bfeea4..bf6cd46a0 100644 --- a/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts +++ b/UI/Web/src/app/manga-reader/_components/manga-reader/manga-reader.component.ts @@ -1173,6 +1173,8 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy { loadNextChapter() { if (this.nextPageDisabled || this.nextChapterDisabled || this.bookmarkMode) { this.toastr.info('No Next Chapter'); + this.isLoading = false; + this.cdRef.markForCheck(); return; } @@ -1189,6 +1191,8 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy { loadPrevChapter() { if (this.prevPageDisabled || this.prevChapterDisabled || this.bookmarkMode) { this.toastr.info('No Previous Chapter'); + this.isLoading = false; + this.cdRef.markForCheck(); return; } this.continuousChaptersStack.pop(); diff --git a/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html b/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html index 79adc4623..029164789 100644 --- a/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html +++ b/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html @@ -96,7 +96,7 @@
- +
diff --git a/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts b/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts index 24ddb7fad..0773539a3 100644 --- a/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts +++ b/UI/Web/src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts @@ -118,7 +118,7 @@ export class LibrarySettingsModalComponent implements OnInit, OnDestroy { this.libraryForm.get('includeInDashboard')?.setValue(this.library.includeInDashboard); this.libraryForm.get('includeInRecommended')?.setValue(this.library.includeInRecommended); this.libraryForm.get('includeInSearch')?.setValue(this.library.includeInSearch); - this.libraryForm.get('manageCollections')?.setValue(this.library.manageCollections); + this.libraryForm.get('createCollections')?.setValue(this.library.createCollections); this.selectedFolders = this.library.folders; this.madeChanges = false; this.cdRef.markForCheck(); diff --git a/openapi.json b/openapi.json index efb7f7426..572f52d8d 100644 --- a/openapi.json +++ b/openapi.json @@ -7,7 +7,7 @@ "name": "GPL-3.0", "url": "https://github.com/Kareadita/Kavita/blob/develop/LICENSE" }, - "version": "0.6.1.38" + "version": "0.6.1.41" }, "servers": [ { @@ -7443,6 +7443,36 @@ } } }, + "/api/Settings/reset-ip-addresses": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Resets the IP Addresses", + "responses": { + "200": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/ServerSettingDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerSettingDto" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/ServerSettingDto" + } + } + } + } + } + } + }, "/api/Settings/reset-email-url": { "post": { "tags": [ @@ -13582,6 +13612,11 @@ "description": "Port the server listens on. Managed in appsettings.json.", "format": "int32" }, + "ipAddresses": { + "type": "string", + "description": "Comma separated list of ip addresses the server listens on. Managed in appsettings.json", + "nullable": true + }, "allowStatCollection": { "type": "boolean", "description": "Allows anonymous information to be collected and sent to KavitaStats"