-
+
@@ -68,12 +75,12 @@
{{t('username-tooltip')}}
-
+
-
+
@@ -83,7 +90,7 @@
{{t('size-limit-tooltip')}}
-
+
diff --git a/UI/Web/src/app/admin/manage-email-settings/manage-email-settings.component.ts b/UI/Web/src/app/admin/manage-email-settings/manage-email-settings.component.ts
index 1ace95653..d19598d3c 100644
--- a/UI/Web/src/app/admin/manage-email-settings/manage-email-settings.component.ts
+++ b/UI/Web/src/app/admin/manage-email-settings/manage-email-settings.component.ts
@@ -1,4 +1,4 @@
-import {ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, OnInit} from '@angular/core';
+import {ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, inject, OnInit} from '@angular/core';
import {FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';
import {ToastrService} from 'ngx-toastr';
import {take} from 'rxjs';
@@ -15,6 +15,8 @@ import {NgForOf, NgIf, NgTemplateOutlet, TitleCasePipe} from '@angular/common';
import {translate, TranslocoModule} from "@ngneat/transloco";
import {SafeHtmlPipe} from "../../_pipes/safe-html.pipe";
import {ManageAlertsComponent} from "../manage-alerts/manage-alerts.component";
+import {takeUntilDestroyed} from "@angular/core/rxjs-interop";
+import {filter} from "rxjs/operators";
@Component({
selector: 'app-manage-email-settings',
@@ -22,7 +24,9 @@ import {ManageAlertsComponent} from "../manage-alerts/manage-alerts.component";
styleUrls: ['./manage-email-settings.component.scss'],
standalone: true,
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [NgIf, ReactiveFormsModule, NgbTooltip, NgTemplateOutlet, TranslocoModule, SafeHtmlPipe, ManageAlertsComponent, NgbAccordionBody, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem, NgForOf, TitleCasePipe]
+ imports: [NgIf, ReactiveFormsModule, NgbTooltip, NgTemplateOutlet, TranslocoModule, SafeHtmlPipe,
+ ManageAlertsComponent, NgbAccordionBody, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionDirective,
+ NgbAccordionHeader, NgbAccordionItem, NgForOf, TitleCasePipe]
})
export class ManageEmailSettingsComponent implements OnInit {
@@ -47,6 +51,7 @@ export class ManageEmailSettingsComponent implements OnInit {
this.settingsForm.addControl('senderDisplayName', new FormControl(this.serverSettings.smtpConfig.senderDisplayName, []));
this.settingsForm.addControl('sizeLimit', new FormControl(this.serverSettings.smtpConfig.sizeLimit, [Validators.min(1)]));
this.settingsForm.addControl('customizedTemplates', new FormControl(this.serverSettings.smtpConfig.customizedTemplates, [Validators.min(1)]));
+
this.cdRef.markForCheck();
});
}
@@ -67,6 +72,22 @@ export class ManageEmailSettingsComponent implements OnInit {
this.cdRef.markForCheck();
}
+ autofillGmail() {
+ this.settingsForm.get('host')?.setValue('smtp.gmail.com');
+ this.settingsForm.get('port')?.setValue(587);
+ this.settingsForm.get('sizeLimit')?.setValue(26214400);
+ this.settingsForm.get('enableSsl')?.setValue(true);
+ this.cdRef.markForCheck();
+ }
+
+ autofillOutlook() {
+ this.settingsForm.get('host')?.setValue('smtp-mail.outlook.com');
+ this.settingsForm.get('port')?.setValue(587 );
+ this.settingsForm.get('sizeLimit')?.setValue(1048576);
+ this.settingsForm.get('enableSsl')?.setValue(true);
+ this.cdRef.markForCheck();
+ }
+
async saveSettings() {
const modelSettings = Object.assign({}, this.serverSettings);
modelSettings.emailServiceUrl = this.settingsForm.get('emailServiceUrl')?.value;
diff --git a/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts b/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts
index 4ac1c465c..5329fee8b 100644
--- a/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts
+++ b/UI/Web/src/app/manga-reader/_components/infinite-scroller/infinite-scroller.component.ts
@@ -206,9 +206,9 @@ export class InfiniteScrollerComponent implements OnInit, OnChanges, OnDestroy {
.pipe(debounceTime(20), takeUntilDestroyed(this.destroyRef))
.subscribe((event) => this.handleScrollEvent(event));
- // fromEvent(this.isFullscreenMode ? this.readerElemRef.nativeElement : this.document.body, 'scrollend')
- // .pipe(debounceTime(20), takeUntilDestroyed(this.destroyRef))
- // .subscribe((event) => this.handleScrollEndEvent(event));
+ fromEvent(this.isFullscreenMode ? this.readerElemRef.nativeElement : this.document.body, 'scrollend')
+ .pipe(debounceTime(20), takeUntilDestroyed(this.destroyRef))
+ .subscribe((event) => this.handleScrollEndEvent(event));
}
ngOnInit(): void {
diff --git a/UI/Web/src/assets/langs/en.json b/UI/Web/src/assets/langs/en.json
index 1a89ac738..59d4daec1 100644
--- a/UI/Web/src/assets/langs/en.json
+++ b/UI/Web/src/assets/langs/en.json
@@ -1094,6 +1094,8 @@
"size-limit-tooltip": "How many bytes can the Email Server handle for attachments",
"customized-templates-label": "Customized Templates",
"customized-templates-tooltip": "Should Kavita use config/templates directory for templates rather than default? You are responsible to keep up to date with template changes.",
+ "gmail-label": "Gmail",
+ "outlook-label": "Outlook",
"reset-to-default": "{{common.reset-to-default}}",
"save": "{{common.save}}"
diff --git a/openapi.json b/openapi.json
index aa0986bd9..f75e079db 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.7.13.2"
+ "version": "0.7.13.5"
},
"servers": [
{