Small Tweaks before Release (#2571)

Co-authored-by: charles <30816317+charles7668@users.noreply.github.com>
This commit is contained in:
Joe Milazzo 2024-01-07 08:15:00 -06:00 committed by GitHub
parent 95a186e252
commit 1d56f5a0a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 43 additions and 71 deletions

View file

@ -70,8 +70,15 @@
<input id="email" type="email" class="form-control" formControlName="email" autocomplete="off"/>
</div>
<div class="form-group mb-3">
<label for="discordId">{{t('activate-discordId-label')}}</label><i class="fa fa-circle-info ms-1" aria-hidden="true" [ngbTooltip]="t('activate-discordId-tooltip')"></i>
<input id="discordId" type="text" class="form-control" formControlName="discordId" autocomplete="off"/>
<label for="discordId">{{t('activate-discordId-label')}}</label>
<i class="fa fa-circle-info ms-1" aria-hidden="true" [ngbTooltip]="t('activate-discordId-tooltip')"></i>
<a class="ms-1" href="https://wiki.kavitareader.com/en/kavita-plus#discord-id" target="_blank" rel="noopener noreferrer">Help</a>
<input id="discordId" type="text" class="form-control" formControlName="discordId" autocomplete="off" [class.is-invalid]="formGroup.get('discordId')?.invalid && formGroup.get('discordId')?.touched"/>
<div id="inviteForm-validations" class="invalid-feedback" *ngIf="formGroup.dirty || formGroup.touched">
<div *ngIf="formGroup.get('discordId')?.errors?.pattern">
{{t('discord-validation')}}
</div>
</div>
</div>
</form>
<div class="col-auto d-flex d-md-block justify-content-sm-center text-md-end mb-3">
@ -80,7 +87,7 @@
{{t('activate-delete')}}
</button>
<button type="button" class="flex-fill btn btn-danger me-1" aria-describedby="license-key-header"
[ngbTooltip]="t('activate-reset--tooltip')"
[ngbTooltip]="t('activate-reset-tooltip')"
[disabled]="!formGroup.get('email')?.value || !formGroup.get('licenseKey')?.value" (click)="resetLicense()">
{{t('activate-reset')}}
</button>

View file

@ -48,7 +48,7 @@ export class LicenseComponent implements OnInit {
ngOnInit(): void {
this.formGroup.addControl('licenseKey', new FormControl('', [Validators.required]));
this.formGroup.addControl('email', new FormControl('', [Validators.required]));
this.formGroup.addControl('discordId', new FormControl('', []));
this.formGroup.addControl('discordId', new FormControl('', [Validators.pattern(/\d+/)]));
this.accountService.hasAnyLicense().subscribe(res => {
this.hasLicense = res;
this.cdRef.markForCheck();

View file

@ -94,7 +94,7 @@ export class ManageEmailSettingsComponent implements OnInit {
const result = results[0] as EmailTestResult;
if (result.successful) {
const version = ('. Kavita Email: ' + results[1] ? 'v' + results[1] : '');
this.toastr.success(translate('toasts.email-service-reachable') + version);
this.toastr.success(translate('toasts.email-service-reachable') + ' - ' + version);
} else {
this.toastr.error(translate('toasts.email-service-unresponsive') + result.errorMessage.split('(')[0]);
}

View file

@ -1608,7 +1608,8 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
if (this.bookmarkMode) return;
const pageNum = this.pageNum;
const isDouble = Math.max(this.canvasRenderer.getBookmarkPageCount(), this.singleRenderer.getBookmarkPageCount(),
// if canvasRenderer and doubleRenderer is undefined, then we are in webtoon mode
const isDouble = this.canvasRenderer !== undefined && this.doubleRenderer !== undefined && Math.max(this.canvasRenderer.getBookmarkPageCount(), this.singleRenderer.getBookmarkPageCount(),
this.doubleRenderer.getBookmarkPageCount(), this.doubleReverseRenderer.getBookmarkPageCount(), this.doubleNoCoverRenderer.getBookmarkPageCount()) > 1;
if (this.CurrentPageBookmarked) {
@ -1617,6 +1618,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
forkJoin(apis).pipe(take(1)).subscribe(() => {
delete this.bookmarks[pageNum];
if (isDouble) delete this.bookmarks[pageNum + 1];
this.cdRef.detectChanges();
});
} else {
let apis = [this.readerService.bookmark(this.seriesId, this.volumeId, this.chapterId, pageNum)];
@ -1624,6 +1626,7 @@ export class MangaReaderComponent implements OnInit, AfterViewInit, OnDestroy {
forkJoin(apis).pipe(take(1)).subscribe(() => {
this.bookmarks[pageNum] = 1;
if (isDouble) this.bookmarks[pageNum + 1] = 1;
this.cdRef.detectChanges();
});
}

View file

@ -594,11 +594,12 @@
"activate-description": "Enter the License Key and Email used to register with Stripe",
"activate-license-label": "License Key",
"activate-email-label": "{{common.email}}",
"activate-discordId-label": "Discord UserId",
"activate-discordId-tooltip": "Link your Discord Account with Kavita+. This grants you access to hidden channels to help shape Kavita",
"activate-discordId-label": "Discord User Id",
"activate-discordId-tooltip": "Link your Discord Account with Kavita+. This grants you access to hidden channels to help shape Kavita.",
"discord-validation": "This is not a valid Discord User Id. Your user id is not your discord username.",
"activate-delete": "{{common.delete}}",
"activate-reset": "{{common.reset}}",
"activate-reset--tooltip": "Untie your license with this server. Requires both License and Email.",
"activate-reset-tooltip": "Untie your license with this server. Requires both License and Email.",
"activate-save": "{{common.save}}"
},