diff --git a/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.html index 0f0bd198d..dc30c3055 100644 --- a/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.html +++ b/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.html @@ -21,7 +21,37 @@
-
+
+
+
+
+
+
+
+ + +
+
+
+ +
+
+ +
diff --git a/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.scss index 84d3d1473..71129224b 100644 --- a/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.scss @@ -4,7 +4,26 @@ .content-container { background-color: $grey-2; display: flex; - justify-content: center; + flex-direction: column; + align-items: center; @include scroll-bar; overflow: auto; } + +.w-100 { + min-width: 100px; + width: 100px; +} + +.inline-input-group { + background-color: rgba($grey-6, 0.8); + width: 100%; + height: 38px; + border-radius: 4px; + padding: 1px 11px; +} + +.dialog { + width: 100%; + min-height: unset; +} diff --git a/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.ts index 774714b83..c4048d972 100644 --- a/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/smtp-config/smtp-config-screen.component.ts @@ -2,7 +2,12 @@ import { Component, OnInit } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { SmtpConfigurationControllerService, SMTPConfigurationModel } from '@redaction/red-ui-http'; +import { + GeneralConfigurationModel, + SmtpConfigurationControllerService, + GeneralSettingsControllerService, + SMTPConfigurationModel +} from '@redaction/red-ui-http'; import { NotificationService, NotificationType } from '@services/notification.service'; import { TranslateService } from '@ngx-translate/core'; @@ -14,7 +19,11 @@ import { TranslateService } from '@ngx-translate/core'; export class SmtpConfigScreenComponent implements OnInit { viewReady = false; configForm: FormGroup; + generalSettings: GeneralConfigurationModel = { + forgotPasswordFunctionEnabled: false + }; + private _initialGeneralSettings: GeneralConfigurationModel; private _initialValue: SMTPConfigurationModel; constructor( @@ -23,7 +32,8 @@ export class SmtpConfigScreenComponent implements OnInit { private readonly _formBuilder: FormBuilder, private readonly _dialogService: AdminDialogService, private readonly _notificationService: NotificationService, - private readonly _translateService: TranslateService + private readonly _translateService: TranslateService, + private readonly _generalSettingsControllerService: GeneralSettingsControllerService ) { this.configForm = this._formBuilder.group({ host: [undefined, Validators.required], @@ -59,8 +69,20 @@ export class SmtpConfigScreenComponent implements OnInit { return false; } + get generalConfigChanged(): boolean { + if (!this._initialGeneralSettings) return false; + + const toBool = key => this.generalSettings[key] !== this._initialGeneralSettings[key]; + const changes = Object.keys(this.generalSettings).map(toBool); + return changes.filter(value => value).length > 0; + } + async ngOnInit() { await this._loadData(); + this.generalSettings = await this._generalSettingsControllerService + .getGeneralConfigurations() + .toPromise(); + this._initialGeneralSettings = Object.assign({}, this.generalSettings); } async save() { @@ -72,6 +94,14 @@ export class SmtpConfigScreenComponent implements OnInit { this.viewReady = true; } + async saveGeneralConfig() { + this.viewReady = false; + await this._generalSettingsControllerService + .updateGeneralConfigurations(this.generalSettings) + .toPromise(); + this.viewReady = true; + } + openAuthConfigDialog(skipDisableOnCancel?: boolean) { this._dialogService.openSMTPAuthConfigDialog(this.configForm.getRawValue(), authConfig => { if (authConfig) { diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss index 3b84f926d..2ba7f35a8 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss @@ -68,10 +68,6 @@ margin-right: 8px; } -.ml-8 { - margin-left: 8px; -} - .ml-2 { margin-left: 2px; } diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index ff8d62a9d..faf709953 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -1088,6 +1088,13 @@ }, "configurations": "Configurations", "smtp-config-screen": { + "general": { + "title": "General Configurations", + "subtitle": "", + "form": { + "forgot-password": "Show Forgot password link on Login screen" + } + }, "title": "Configure SMTP Account", "subtitle": "SMTP (Simple Mail Transfer Protocol) enables you to send your emails through the specified server settings.", "actions": { diff --git a/apps/red-ui/src/assets/styles/red-page-layout.scss b/apps/red-ui/src/assets/styles/red-page-layout.scss index a1237d801..afb6047f7 100644 --- a/apps/red-ui/src/assets/styles/red-page-layout.scss +++ b/apps/red-ui/src/assets/styles/red-page-layout.scss @@ -234,7 +234,7 @@ section.settings { } .mt-16 { - margin-top: 16px; + margin-top: 16px !important; } .mt-20 { @@ -253,6 +253,10 @@ section.settings { margin-bottom: 8px !important; } +.ml-8 { + margin-left: 8px; +} + .ml-14 { margin-left: 14px; } diff --git a/libs/red-ui-http/src/lib/api/api.ts b/libs/red-ui-http/src/lib/api/api.ts index bd27628a0..a72d3672b 100644 --- a/libs/red-ui-http/src/lib/api/api.ts +++ b/libs/red-ui-http/src/lib/api/api.ts @@ -23,6 +23,7 @@ import { FileAttributesControllerService } from './fileAttributesController.serv import { SmtpConfigurationControllerService } from './smtpConfigurationController.service'; import { ReportTemplateControllerService } from './reportTemplateController.service'; import { UploadControllerService } from './uploadController.service'; +import { GeneralSettingsControllerService } from './generalSettingsController.service'; export * from './auditController.service'; @@ -74,6 +75,8 @@ export * from './reportTemplateController.service'; export * from './uploadController.service'; +export * from './generalSettingsController.service'; + export const APIS = [ AuditControllerService, DebugControllerService, @@ -99,5 +102,6 @@ export const APIS = [ FileAttributesControllerService, SmtpConfigurationControllerService, ReportTemplateControllerService, - UploadControllerService + UploadControllerService, + GeneralSettingsControllerService ];