diff --git a/apps/red-ui/src/app/modules/admin/admin.module.ts b/apps/red-ui/src/app/modules/admin/admin.module.ts index beb3a3928..b03053310 100644 --- a/apps/red-ui/src/app/modules/admin/admin.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin.module.ts @@ -43,6 +43,8 @@ import { AuditService } from './services/audit.service'; import { DigitalSignatureService } from './services/digital-signature.service'; import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component'; import { LicenseReportService } from './services/licence-report.service'; +import { RulesService } from './services/rules.service'; +import { SmtpConfigService } from './services/smtp-config.service'; const dialogs = [ AddEditDossierTemplateDialogComponent, @@ -93,7 +95,7 @@ const components = [ @NgModule({ declarations: [...components], - providers: [AdminDialogService, AuditService, DigitalSignatureService, LicenseReportService], + providers: [AdminDialogService, AuditService, DigitalSignatureService, LicenseReportService, RulesService, SmtpConfigService], imports: [CommonModule, SharedModule, AdminRoutingModule, NgxChartsModule, ColorPickerModule, MonacoEditorModule], }) export class AdminModule {} diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts index 7919eaef3..cf4f4d619 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts @@ -1,12 +1,13 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { GeneralConfigurationModel, SMTPConfiguration, SmtpConfigurationControllerService } from '@redaction/red-ui-http'; +import { GeneralConfigurationModel, SMTPConfiguration } from '@redaction/red-ui-http'; import { ConfigService } from '@services/config.service'; import { AutoUnsubscribe, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { GeneralSettingsService } from '@services/general-settings.service'; +import { SmtpConfigService } from '../../services/smtp-config.service'; @Component({ selector: 'redaction-general-config-screen', @@ -30,7 +31,7 @@ export class GeneralConfigScreenComponent extends AutoUnsubscribe implements OnI private readonly _loadingService: LoadingService, private readonly _dialogService: AdminDialogService, private readonly _configService: ConfigService, - private readonly _smtpConfigService: SmtpConfigurationControllerService, + private readonly _smtpConfigService: SmtpConfigService, private readonly _generalSettingsService: GeneralSettingsService, ) { super(); diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss index 64b93fd95..2a5860784 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss @@ -1,6 +1,7 @@ .editor-container { width: 100%; - padding: 15px; + padding-top: 15px; + padding-left: 15px; } ngx-monaco-editor { diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.ts index 0755a2874..b19485bbe 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.ts @@ -1,4 +1,4 @@ -import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; import { Debounce, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; @@ -17,6 +17,7 @@ import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorCon selector: 'redaction-rules-screen', templateUrl: './rules-screen.component.html', styleUrls: ['./rules-screen.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, }) export class RulesScreenComponent extends ComponentHasChanges implements OnInit { readonly iconButtonTypes = IconButtonTypes; diff --git a/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts b/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts new file mode 100644 index 000000000..8d7391026 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/services/smtp-config.service.ts @@ -0,0 +1,24 @@ +import { Injectable, Injector } from '@angular/core'; +import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; +import { SMTPConfiguration } from '@redaction/red-ui-http'; + +@Injectable() +export class SmtpConfigService extends GenericService { + constructor(protected readonly _injector: Injector) { + super(_injector, 'configuration'); + } + + @Validate() + updateSMTPConfiguration(@RequiredParam() body: SMTPConfiguration) { + return this._post(body, `${this._defaultModelPath}/smtp`); + } + + @Validate() + testSMTPConfiguration(@RequiredParam() body: SMTPConfiguration) { + return this._post(body, `${this._defaultModelPath}/smtp/test`); + } + + getCurrentSMTPConfiguration() { + return this._getOne(['smtp']); + } +} diff --git a/libs/red-ui-http/src/lib/api.module.ts b/libs/red-ui-http/src/lib/api.module.ts index 87e8cddfb..ea20c4796 100644 --- a/libs/red-ui-http/src/lib/api.module.ts +++ b/libs/red-ui-http/src/lib/api.module.ts @@ -1,7 +1,6 @@ import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; import { Configuration } from './configuration'; import { HttpClient } from '@angular/common/http'; -import { SmtpConfigurationControllerService } from './api/smtpConfigurationController.service'; import { UploadControllerService } from './api/uploadController.service'; import { ViewedPagesControllerService } from './api/viewedPagesController.service'; import { WatermarkControllerService } from './api/watermarkController.service'; @@ -13,7 +12,6 @@ import { NotificationControllerService } from './api/notificationController.serv declarations: [], exports: [], providers: [ - SmtpConfigurationControllerService, UploadControllerService, ViewedPagesControllerService, WatermarkControllerService,