diff --git a/src/app/adf-admins/df-manage-admins/df-manage-admins.component.html b/src/app/adf-admins/df-manage-admins/df-manage-admins.component.html index 434775b2..1a671e56 100644 --- a/src/app/adf-admins/df-manage-admins/df-manage-admins.component.html +++ b/src/app/adf-admins/df-manage-admins/df-manage-admins.component.html @@ -7,6 +7,8 @@ (change)="uploadAdminList($event)" style="display: none" /> - + + {{ 'goBack' | transloco }} - + {{ 'apiDocs.downloadApiDoc' | transloco }} diff --git a/src/app/adf-api-docs/df-api-docs/df-api-docs.component.ts b/src/app/adf-api-docs/df-api-docs/df-api-docs.component.ts index 54073781..d0e23a5d 100644 --- a/src/app/adf-api-docs/df-api-docs/df-api-docs.component.ts +++ b/src/app/adf-api-docs/df-api-docs/df-api-docs.component.ts @@ -14,6 +14,8 @@ import { UntilDestroy } from '@ngneat/until-destroy'; import { DfUserDataService } from 'src/app/shared/services/df-user-data.service'; import { SESSION_TOKEN_HEADER } from 'src/app/shared/constants/http-headers'; import { mapCamelToSnake } from 'src/app/shared/utilities/case'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -21,7 +23,7 @@ import { mapCamelToSnake } from 'src/app/shared/utilities/case'; templateUrl: './df-api-docs.component.html', styleUrls: ['./df-api-docs.component.scss'], standalone: true, - imports: [MatButtonModule, TranslocoModule], + imports: [MatButtonModule, TranslocoModule, AsyncPipe], }) export class DfApiDocsComponent implements OnInit, AfterContentInit { @ViewChild('apiDocumentation', { static: true }) apiDocElement: @@ -33,9 +35,10 @@ export class DfApiDocsComponent implements OnInit, AfterContentInit { constructor( private activatedRoute: ActivatedRoute, private router: Router, - private userDataService: DfUserDataService + private userDataService: DfUserDataService, + private themeService: DfThemeService ) {} - + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.activatedRoute.data.subscribe(({ data }) => { if (data) { diff --git a/src/app/adf-apps/df-app-details/df-app-details.component.html b/src/app/adf-apps/df-app-details/df-app-details.component.html index ecedf517..2cad7acd 100644 --- a/src/app/adf-apps/df-app-details/df-app-details.component.html +++ b/src/app/adf-apps/df-app-details/df-app-details.component.html @@ -1,293 +1,307 @@ - - {{ alertMsg }} - - - - - {{ 'apps.createApp.applicationName.label' | transloco }} - - - - - {{ 'apps.createApp.applicationName.error' | transloco }} - - - - {{ 'apps.createApp.defaultRole.label' | transloco }} - - - - - {{ role.name }} - - - - - {{ 'apps.createApp.description.label' | transloco }} - - - - {{ 'apps.createApp.active' | transloco }} - - - - {{ - 'apps.createApp.apiKey.label' | transloco - }} - - - {{ editApp.apiKey }} - - - - - - {{ 'apps.createApp.apiKey.copy' | transloco }} - - - - - {{ 'apps.createApp.apiKey.refresh' | transloco }} - - - - - - - {{ 'apps.createApp.appLocation.label' | transloco - }} - - - {{ - 'apps.createApp.appLocation.options.noStorage' | transloco - }} - {{ - 'apps.createApp.appLocation.options.fileStorage.label' | transloco - }} - {{ - 'apps.createApp.appLocation.options.webServer.label' | transloco - }} - {{ - 'apps.createApp.appLocation.options.remoteUrl.label' | transloco - }} - - - - + + + {{ alertMsg }} + + - {{ - 'apps.createApp.appLocation.options.fileStorage.storageService.label' - | transloco - }} - - - {{ - 'apps.createApp.appLocation.options.fileStorage.storageService.options.file' - | transloco - }} - - - {{ - 'apps.createApp.appLocation.options.fileStorage.storageService.options.log' - | transloco - }} - - - - - - {{ - 'apps.createApp.appLocation.options.fileStorage.storageFolder.label' - | transloco - }} + class="dynamic-width"> + + {{ 'apps.createApp.applicationName.label' | transloco }} + + placeholder="{{ 'apps.createApp.applicationName.label' | transloco }}" + formControlName="name" + required /> + [matTooltip]="'apps.createApp.applicationName.tooltip' | transloco" /> + + {{ 'apps.createApp.applicationName.error' | transloco }} + - - - {{ - 'apps.createApp.appLocation.options.fileStorage.launchPath.label' - | transloco - }} - - - {{ - 'apps.createApp.appLocation.options.webServer.pathToApp.label' - | transloco - }} - + class="dynamic-width"> + {{ + 'apps.createApp.defaultRole.label' | transloco + }} + formControlName="defaultRole" + [matAutocomplete]="auto" + (input)="filter()" + (focus)="filter()" /> + [matTooltip]="'apps.createApp.defaultRole.tooltip' | transloco" /> + + + {{ role.name }} + + - - {{ 'apps.createApp.appLocation.options.remoteUrl.label' | transloco }} - - + {{ + 'apps.createApp.description.label' | transloco + }} + + placeholder="{{ 'apps.createApp.description.label' | transloco }}" + formControlName="description"> + [matTooltip]="'apps.createApp.description.tooltip' | transloco" /> - + {{ 'apps.createApp.active' | transloco }} + + *ngIf="editApp" + class="full-width api-card" + [style]="{ 'word-break': 'break-all' }"> {{ - 'apps.createApp.appLocation.options.urlPath.label' | transloco + 'apps.createApp.apiKey.label' | transloco }} - {{ getAppLocationUrl() }} + {{ editApp.apiKey }} - - + + - {{ 'apps.createApp.appLocation.options.urlPath.copy' | transloco }} + {{ 'apps.createApp.apiKey.copy' | transloco }} + + + + + {{ 'apps.createApp.apiKey.refresh' | transloco }} - - - - - {{ 'cancel' | transloco }} - - - {{ 'save' | transloco }} - {{ 'create' | transloco }} - - - + + + + {{ 'apps.createApp.appLocation.label' | transloco + }} + + + {{ + 'apps.createApp.appLocation.options.noStorage' | transloco + }} + {{ + 'apps.createApp.appLocation.options.fileStorage.label' | transloco + }} + {{ + 'apps.createApp.appLocation.options.webServer.label' | transloco + }} + {{ + 'apps.createApp.appLocation.options.remoteUrl.label' | transloco + }} + + + + + + {{ + 'apps.createApp.appLocation.options.fileStorage.storageService.label' + | transloco + }} + + + {{ + 'apps.createApp.appLocation.options.fileStorage.storageService.options.file' + | transloco + }} + + + {{ + 'apps.createApp.appLocation.options.fileStorage.storageService.options.log' + | transloco + }} + + + + + + {{ + 'apps.createApp.appLocation.options.fileStorage.storageFolder.label' + | transloco + }} + + + + + + + {{ + 'apps.createApp.appLocation.options.fileStorage.launchPath.label' + | transloco + }} + + + {{ + 'apps.createApp.appLocation.options.webServer.pathToApp.label' + | transloco + }} + + + + + + + {{ 'apps.createApp.appLocation.options.remoteUrl.label' | transloco }} + + + + + + + + {{ + 'apps.createApp.appLocation.options.urlPath.label' | transloco + }} + + + {{ getAppLocationUrl() }} + + + + + + {{ 'apps.createApp.appLocation.options.urlPath.copy' | transloco }} + + + + + + + + {{ 'cancel' | transloco }} + + + {{ 'save' | transloco }} + {{ 'create' | transloco }} + + + + diff --git a/src/app/adf-apps/df-app-details/df-app-details.component.ts b/src/app/adf-apps/df-app-details/df-app-details.component.ts index 9ac447f6..b23e2f77 100644 --- a/src/app/adf-apps/df-app-details/df-app-details.component.ts +++ b/src/app/adf-apps/df-app-details/df-app-details.component.ts @@ -24,7 +24,7 @@ import { MatCardModule } from '@angular/material/card'; import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatOptionModule } from '@angular/material/core'; import { MatAutocompleteModule } from '@angular/material/autocomplete'; -import { NgIf, NgFor } from '@angular/common'; +import { NgIf, NgFor, AsyncPipe } from '@angular/common'; import { MatInputModule } from '@angular/material/input'; import { MatFormFieldModule } from '@angular/material/form-field'; import { @@ -41,7 +41,7 @@ import { catchError, throwError } from 'rxjs'; import { AlertType } from 'src/app/shared/components/df-alert/df-alert.component'; import { DfAlertComponent } from 'src/app/shared/components/df-alert/df-alert.component'; import { RoleType } from 'src/app/shared/types/role'; - +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-app-details', @@ -65,6 +65,7 @@ import { RoleType } from 'src/app/shared/types/role'; TranslocoPipe, MatTooltipModule, DfAlertComponent, + AsyncPipe, ], }) export class DfAppDetailsComponent implements OnInit { @@ -87,7 +88,8 @@ export class DfAppDetailsComponent implements OnInit { private appsService: DfBaseCrudService, private systemConfigDataService: DfSystemConfigDataService, private activatedRoute: ActivatedRoute, - private router: Router + private router: Router, + private themeService: DfThemeService ) { this.urlOrigin = window.location.origin; @@ -103,7 +105,7 @@ export class DfAppDetailsComponent implements OnInit { url: [''], // type 2 }); } - + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.activatedRoute.data.subscribe(({ roles, appData }) => { this.roles = roles.resource || []; diff --git a/src/app/adf-config/df-cache/df-cache.component.html b/src/app/adf-config/df-cache/df-cache.component.html index 2454499b..877468d7 100644 --- a/src/app/adf-config/df-cache/df-cache.component.html +++ b/src/app/adf-config/df-cache/df-cache.component.html @@ -6,7 +6,7 @@ {{ 'cache.flushSystemCache' | transloco }} diff --git a/src/app/adf-config/df-cors/df-cors-config-details.component.html b/src/app/adf-config/df-cors/df-cors-config-details.component.html index d91b9eb5..246af75c 100644 --- a/src/app/adf-config/df-cors/df-cors-config-details.component.html +++ b/src/app/adf-config/df-cors/df-cors-config-details.component.html @@ -4,18 +4,29 @@ (alertClosed)="showAlert = false"> {{ alertMsg }} - + {{ 'cors.pageSubtitle' | transloco }} - + {{ 'cors.formControls.path' | transloco }} - + {{ 'cors.formControls.origins' | transloco }} - + {{ 'cors.formControls.description' | transloco }} {{ 'cors.pageSubtitle' | transloco }} type="text" formControlName="description"> - + {{ 'cors.formControls.headers' | transloco }} - + {{ 'cors.formControls.exposedHeaders' | transloco }} - + {{ 'cors.formControls.maxAge' | transloco }} @@ -44,19 +64,29 @@ {{ 'cors.pageSubtitle' | transloco }} label: 'cors.formControls.methods' | transloco }" type="verb_multiple"> - + {{ 'cors.formControls.supportsCredentials' | transloco }} - + {{ 'cors.formControls.enabled' | transloco }} - + {{ 'cancel' | transloco }} - + {{ (type === 'create' ? 'create' : 'update') | transloco }} diff --git a/src/app/adf-config/df-cors/df-cors-config-details.component.ts b/src/app/adf-config/df-cors/df-cors-config-details.component.ts index a6c68dbe..321d6fb7 100644 --- a/src/app/adf-config/df-cors/df-cors-config-details.component.ts +++ b/src/app/adf-config/df-cors/df-cors-config-details.component.ts @@ -30,6 +30,8 @@ import { GenericUpdateResponse, } from 'src/app/shared/types/generic-http'; import { catchError, throwError } from 'rxjs'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -52,6 +54,7 @@ import { catchError, throwError } from 'rxjs'; TranslocoPipe, DfVerbPickerComponent, DfAlertComponent, + AsyncPipe, ], }) export class DfCorsConfigDetailsComponent implements OnInit { @@ -68,7 +71,8 @@ export class DfCorsConfigDetailsComponent implements OnInit { private corsConfigService: DfBaseCrudService, private router: Router, private activatedRoute: ActivatedRoute, - private formBuilder: FormBuilder + private formBuilder: FormBuilder, + private themeService: DfThemeService ) { this.corsForm = this.formBuilder.group({ path: ['', Validators.required], @@ -82,6 +86,7 @@ export class DfCorsConfigDetailsComponent implements OnInit { enabled: [true], }); } + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.activatedRoute.data.subscribe(data => { diff --git a/src/app/adf-config/df-email-template-details/df-email-template-details.component.html b/src/app/adf-config/df-email-template-details/df-email-template-details.component.html index 073fe00c..6f9a3762 100644 --- a/src/app/adf-config/df-email-template-details/df-email-template-details.component.html +++ b/src/app/adf-config/df-email-template-details/df-email-template-details.component.html @@ -6,12 +6,13 @@ - + {{ 'emailTemplates.templateName.label' | transloco }} @@ -28,7 +29,7 @@ - + {{ 'emailTemplates.templateDescription.label' | transloco }} @@ -40,22 +41,22 @@ }}" /> - + {{ 'emailTemplates.recipient.label' | transloco }} - + {{ 'emailTemplates.cc.label' | transloco }} - + {{ 'emailTemplates.bcc.label' | transloco }} - + {{ 'emailTemplates.subject.label' | transloco }} - + {{ 'emailTemplates.attachment.label' | transloco }} - + {{ 'emailTemplates.body' | transloco }} - + {{ 'emailTemplates.senderName.label' | transloco }} - + {{ 'emailTemplates.senderEmail.label' | transloco }} @@ -104,7 +105,7 @@ }}" /> - + {{ 'emailTemplates.replyToName.label' | transloco }} @@ -116,7 +117,7 @@ }}" /> - + {{ 'emailTemplates.replyToEmail.label' | transloco }} @@ -129,10 +130,14 @@ - + {{ 'cancel' | transloco }} - + {{ 'update' | transloco }} {{ 'save' | transloco }} diff --git a/src/app/adf-config/df-email-template-details/df-email-template-details.component.ts b/src/app/adf-config/df-email-template-details/df-email-template-details.component.ts index 9693c003..1e7225ef 100644 --- a/src/app/adf-config/df-email-template-details/df-email-template-details.component.ts +++ b/src/app/adf-config/df-email-template-details/df-email-template-details.component.ts @@ -26,6 +26,7 @@ import { DfAlertComponent, } from 'src/app/shared/components/df-alert/df-alert.component'; import { catchError, throwError } from 'rxjs'; +import { DfThemeService } from '../../shared/services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -60,7 +61,8 @@ export class DfEmailTemplateDetailsComponent implements OnInit { private fb: FormBuilder, private router: Router, public breakpointService: DfBreakpointService, - private activatedRoute: ActivatedRoute + private activatedRoute: ActivatedRoute, + private themeService: DfThemeService ) { this.emailTemplateForm = this.fb.group({ name: ['', Validators.required], @@ -78,7 +80,7 @@ export class DfEmailTemplateDetailsComponent implements OnInit { id: [null], }); } - + isDarkMode = this.themeService.darkMode$; ngOnInit() { this.activatedRoute.data.subscribe(({ data }) => { this.editApp = data; diff --git a/src/app/adf-config/df-global-lookup-keys/df-global-lookup-keys.component.html b/src/app/adf-config/df-global-lookup-keys/df-global-lookup-keys.component.html index d9b2e5e4..27828ad6 100644 --- a/src/app/adf-config/df-global-lookup-keys/df-global-lookup-keys.component.html +++ b/src/app/adf-config/df-global-lookup-keys/df-global-lookup-keys.component.html @@ -4,7 +4,7 @@ [showAccordion]="false" formArrayName="lookupKeys"> - + {{ 'save' | transloco }} diff --git a/src/app/adf-event-scripts/df-script-details/df-script-details.component.html b/src/app/adf-event-scripts/df-script-details/df-script-details.component.html index 7871e115..a7ba0424 100644 --- a/src/app/adf-event-scripts/df-script-details/df-script-details.component.html +++ b/src/app/adf-event-scripts/df-script-details/df-script-details.component.html @@ -1,6 +1,13 @@ - + - + {{ 'service' | transloco }} - + {{ 'scripts.scriptType' | transloco }} --> - + {{ 'scripts.scriptMethod' | transloco }} @@ -49,7 +62,10 @@ --> - + {{ 'scripts.tableName' | transloco }} @@ -59,19 +75,22 @@ - + {{ 'scripts.scriptName' | transloco }} - + {{ 'scripts.tableName' | transloco }} - + {{ 'scriptType' | transloco }} @@ -95,10 +114,10 @@ [storagePath]="getControl('storagePath')" [content]="getControl('content')"> - + {{ 'cancel' | transloco }} - + {{ 'save' | transloco }} diff --git a/src/app/adf-event-scripts/df-script-details/df-script-details.component.ts b/src/app/adf-event-scripts/df-script-details/df-script-details.component.ts index 50ad5ce8..a938a296 100644 --- a/src/app/adf-event-scripts/df-script-details/df-script-details.component.ts +++ b/src/app/adf-event-scripts/df-script-details/df-script-details.component.ts @@ -31,6 +31,7 @@ import { import { DfBaseCrudService } from 'src/app/shared/services/df-base-crud.service'; import { Service, ServiceType } from 'src/app/shared/types/service'; import { CommonModule } from '@angular/common'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -79,7 +80,8 @@ export class DfScriptDetailsComponent implements OnInit { private fb: FormBuilder, private router: Router, @Inject(EVENT_SCRIPT_SERVICE_TOKEN) - private eventScriptService: DfBaseCrudService + private eventScriptService: DfBaseCrudService, + private themeService: DfThemeService ) { this.storeServiceArray = []; this.ungroupedEventItems = []; @@ -93,6 +95,7 @@ export class DfScriptDetailsComponent implements OnInit { allow_event_modification: [false], }); } + isDarkMode = this.themeService.darkMode$; storageServices: Service; ngOnInit(): void { diff --git a/src/app/adf-files/df-files/df-files.component.html b/src/app/adf-files/df-files/df-files.component.html index 2ced6dc8..e911f756 100644 --- a/src/app/adf-files/df-files/df-files.component.html +++ b/src/app/adf-files/df-files/df-files.component.html @@ -1,6 +1,8 @@ {{ 'files.createFolder' | transloco }} - + {{ 'cancel' | transloco }} - + {{ 'save' | transloco }} diff --git a/src/app/adf-files/df-log-viewer/df-log-viewer.component.html b/src/app/adf-files/df-log-viewer/df-log-viewer.component.html index 3c371132..c3777b98 100644 --- a/src/app/adf-files/df-log-viewer/df-log-viewer.component.html +++ b/src/app/adf-files/df-log-viewer/df-log-viewer.component.html @@ -1,5 +1,5 @@ - + {{ 'goBack' | transloco }} {{ alertMsg }} - - + + {{ 'limits.name' | transloco }} @@ -16,7 +23,10 @@ label: 'limits.verb' | transloco, description: 'limits.verbTooltip' | transloco }"> - + {{ 'limits.description' | transloco }} - + {{ 'limits.limitType' | transloco }} - + {{ 'limits.service' | transloco }} - + {{ 'limits.role' | transloco }} - + {{ 'limits.user' | transloco }} - + {{ 'limits.endpoint' | transloco }} - + {{ 'limits.limitRate' | transloco }} - + {{ 'limits.limitPeriod' | transloco }} - {{ - 'limits.active' | transloco - }} + {{ 'limits.active' | transloco }} - + {{ 'cancel' | transloco }} - + {{ 'save' | transloco }} diff --git a/src/app/adf-limits/df-limit-details/df-limit-details.component.ts b/src/app/adf-limits/df-limit-details/df-limit-details.component.ts index 707647ea..2c2ecb22 100644 --- a/src/app/adf-limits/df-limit-details/df-limit-details.component.ts +++ b/src/app/adf-limits/df-limit-details/df-limit-details.component.ts @@ -34,6 +34,8 @@ import { GenericUpdateResponse, } from 'src/app/shared/types/generic-http'; import { Service } from 'src/app/shared/types/service'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-limit', @@ -53,6 +55,7 @@ import { Service } from 'src/app/shared/types/service'; MatButtonModule, TranslocoPipe, DfVerbPickerComponent, + AsyncPipe, ], }) export class DfLimitDetailsComponent implements OnInit { @@ -78,7 +81,8 @@ export class DfLimitDetailsComponent implements OnInit { private router: Router, private activatedRoute: ActivatedRoute, private translateService: TranslocoService, - private formBuilder: FormBuilder + private formBuilder: FormBuilder, + private themeService: DfThemeService ) { this.formGroup = this.formBuilder.group({ limitName: ['', Validators.required], @@ -94,6 +98,7 @@ export class DfLimitDetailsComponent implements OnInit { active: [true], }); } + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.activatedRoute.data.subscribe(resp => { diff --git a/src/app/adf-limits/df-manage-limits/df-manage-limits.component.html b/src/app/adf-limits/df-manage-limits/df-manage-limits.component.html index 1cf3fc2e..f8c7bb58 100644 --- a/src/app/adf-limits/df-manage-limits/df-manage-limits.component.html +++ b/src/app/adf-limits/df-manage-limits/df-manage-limits.component.html @@ -3,6 +3,7 @@ {{ alertMsg }} - - + + {{ 'name' | transloco }} @@ -18,7 +25,7 @@ {{ 'active' | transloco }} - + {{ 'description' | transloco }} @@ -36,10 +43,10 @@ class="full-width"> - + {{ 'cancel' | transloco }} - + {{ 'save' | transloco }} diff --git a/src/app/adf-roles/df-role-details/df-role-details.component.ts b/src/app/adf-roles/df-role-details/df-role-details.component.ts index 4b93e57b..92289889 100644 --- a/src/app/adf-roles/df-role-details/df-role-details.component.ts +++ b/src/app/adf-roles/df-role-details/df-role-details.component.ts @@ -30,6 +30,8 @@ import { DfAlertComponent, } from 'src/app/shared/components/df-alert/df-alert.component'; import { catchError, throwError } from 'rxjs'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; + @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-role-details', @@ -48,6 +50,7 @@ import { catchError, throwError } from 'rxjs'; DfRolesAccessComponent, NgIf, DfAlertComponent, + AsyncPipe, ], }) export class DfRoleDetailsComponent implements OnInit { @@ -62,7 +65,8 @@ export class DfRoleDetailsComponent implements OnInit { private roleService: DfBaseCrudService, private fb: FormBuilder, private router: Router, - private activatedRoute: ActivatedRoute + private activatedRoute: ActivatedRoute, + private themeService: DfThemeService ) { this.roleForm = this.fb.group({ id: [null], @@ -73,6 +77,7 @@ export class DfRoleDetailsComponent implements OnInit { lookupKeys: this.fb.array([]), }); } + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.activatedRoute.data.subscribe(({ data, type }) => { diff --git a/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.html b/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.html index 139e6123..1605b74e 100644 --- a/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.html +++ b/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.html @@ -1,103 +1,129 @@ - - {{ alertMsg }} - - - - {{ 'scheduler.taskOverviewSubtitle' | transloco }} - - - {{ 'scheduler.form.label.name' | transloco }} - - - {{ - 'scheduler.form.label.active' | transloco - }} - - {{ - 'scheduler.form.label.description' | transloco - }} - - - - {{ 'scheduler.form.label.service' | transloco }} - - - {{ service.name }} - - - - - {{ - 'scheduler.form.label.component' | transloco - }} - - {{ item }} - - + + + {{ alertMsg }} + + + + {{ 'scheduler.taskOverviewSubtitle' | transloco }} + + + {{ 'scheduler.form.label.name' | transloco }} + + + {{ 'scheduler.form.label.active' | transloco }} + + {{ + 'scheduler.form.label.description' | transloco + }} + + + + {{ + 'scheduler.form.label.service' | transloco + }} + + + {{ service.name }} + + + + + {{ + 'scheduler.form.label.component' | transloco + }} + + {{ item }} + + - - {{ - 'scheduler.form.label.frequency' | transloco - }} - - - - + {{ - 'scheduler.form.label.payload' | transloco + 'scheduler.form.label.frequency' | transloco }} - + - - - - - {{ 'cancel' | transloco }} - - - {{ 'save' | transloco }} + + + {{ + 'scheduler.form.label.payload' | transloco + }} + + + + + + + {{ 'cancel' | transloco }} + + + {{ 'save' | transloco }} + + + + + + + + {{ 'scheduler.logs.statusCode' | transloco }}: + {{ scheduleToEdit?.taskLogByTaskId?.statusCode }} + + + + {{ 'goBack' | transloco }} - - - - - - {{ 'scheduler.logs.statusCode' | transloco }}: - {{ scheduleToEdit?.taskLogByTaskId?.statusCode }} - - - - {{ 'goBack' | transloco }} - - - - + + + diff --git a/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.ts b/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.ts index 4cf759ce..d0cb4684 100644 --- a/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.ts +++ b/src/app/adf-scheduler/df-scheduler-details/df-scheduler-details.component.ts @@ -30,6 +30,8 @@ import { AlertType, DfAlertComponent, } from 'src/app/shared/components/df-alert/df-alert.component'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; + import { catchError, throwError } from 'rxjs'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -75,9 +77,12 @@ export class DfSchedulerDetailsComponent implements OnInit { private activatedRoute: ActivatedRoute, private router: Router, @Inject(BASE_SERVICE_TOKEN) - private accessListService: DfBaseCrudService + private accessListService: DfBaseCrudService, + private themeService: DfThemeService ) {} + isDarkMode = this.themeService.darkMode$; + ngOnInit(): void { this.formGroup = this.formBuilder.group({ name: ['', Validators.required], diff --git a/src/app/adf-schema/df-field-details/df-field-details.component.html b/src/app/adf-schema/df-field-details/df-field-details.component.html index e0342193..0cef71d1 100644 --- a/src/app/adf-schema/df-field-details/df-field-details.component.html +++ b/src/app/adf-schema/df-field-details/df-field-details.component.html @@ -1,9 +1,13 @@ - + {{ 'schema.fieldDetailsForm.controls.name' | transloco }} @@ -15,7 +19,10 @@ - + {{ 'schema.fieldDetailsForm.controls.alias.label' | transloco }} @@ -28,7 +35,10 @@ 'schema.fieldDetailsForm.controls.alias.tooltip' | transloco " /> - + {{ 'schema.fieldDetailsForm.controls.label.label' | transloco }} @@ -42,7 +52,10 @@ " /> - + {{ 'schema.fieldDetailsForm.controls.type.label' | transloco }} @@ -61,7 +74,10 @@ 'schema.fieldDetailsForm.controls.type.tooltip' | transloco " /> - + {{ 'schema.fieldDetailsForm.controls.databaseType.label' | transloco }} @@ -74,63 +90,128 @@ 'schema.fieldDetailsForm.controls.databaseType.tooltip' | transloco " /> - + {{ 'schema.fieldDetailsForm.controls.length' | transloco }} - + {{ 'schema.fieldDetailsForm.controls.precision' | transloco }} - + {{ 'schema.fieldDetailsForm.controls.scale' | transloco }} - + {{ 'schema.fieldDetailsForm.controls.defaultValue' | transloco }} - {{ - 'schema.fieldDetailsForm.controls.isVirtual' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.isAggregate' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.fixedLength' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.supportsMultibyte' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.allowNull' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.autoIncrement' | transloco - }} + {{ + 'schema.fieldDetailsForm.controls.isVirtual' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.isAggregate' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.fixedLength' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.supportsMultibyte' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.allowNull' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.autoIncrement' | transloco + }} - {{ - 'schema.fieldDetailsForm.controls.isIndex' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.isUnique' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.isPrimaryKey' | transloco - }} - {{ - 'schema.fieldDetailsForm.controls.isForeignKey' | transloco - }} + {{ + 'schema.fieldDetailsForm.controls.isIndex' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.isUnique' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.isPrimaryKey' | transloco + }} + {{ + 'schema.fieldDetailsForm.controls.isForeignKey' | transloco + }} - + {{ 'schema.fieldDetailsForm.controls.refTable' | transloco }} @@ -142,7 +223,10 @@ - + {{ 'schema.fieldDetailsForm.controls.refField' | transloco }} @@ -154,7 +238,10 @@ > - + {{ 'schema.fieldDetailsForm.controls.validation.label' | transloco }} @@ -181,7 +268,10 @@ formArrayName="dbFunction" class="full-width"> + > {{ 'schema.fieldDetailsForm.controls.picklist' | transloco }} @@ -193,8 +283,14 @@ - Cancel - + + Cancel + + {{ (databaseFieldToEdit ? 'save' : 'create') | transloco }} diff --git a/src/app/adf-schema/df-field-details/df-field-details.component.ts b/src/app/adf-schema/df-field-details/df-field-details.component.ts index 197319b4..287f3e1f 100644 --- a/src/app/adf-schema/df-field-details/df-field-details.component.ts +++ b/src/app/adf-schema/df-field-details/df-field-details.component.ts @@ -26,6 +26,7 @@ import { DatabaseSchemaFieldType } from './df-field-details.types'; import { CsvValidator } from '../validators/csv.validator'; import { faCircleInfo } from '@fortawesome/free-solid-svg-icons'; import { MatTooltipModule } from '@angular/material/tooltip'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; @Component({ selector: 'df-field-details', @@ -95,7 +96,8 @@ export class DfFieldDetailsComponent implements OnInit { private service: DfBaseCrudService, private formBuilder: FormBuilder, private activatedRoute: ActivatedRoute, - private router: Router + private router: Router, + private themeService: DfThemeService ) { this.fieldDetailsForm = this.formBuilder.group({ name: ['', Validators.required], @@ -125,6 +127,8 @@ export class DfFieldDetailsComponent implements OnInit { }); } + isDarkMode = this.themeService.darkMode$; + ngOnInit(): void { this.activatedRoute.data.subscribe(data => { this.type = data['type']; diff --git a/src/app/adf-schema/df-table-details/df-table-details.component.html b/src/app/adf-schema/df-table-details/df-table-details.component.html index 1f46bc4a..cf805796 100644 --- a/src/app/adf-schema/df-table-details/df-table-details.component.html +++ b/src/app/adf-schema/df-table-details/df-table-details.component.html @@ -1,83 +1,93 @@ - - - - - - {{ 'schema.tableName' | transloco }} - - - - {{ 'schema.alerts.tableNameError' | transloco }} - - + + + + + + + {{ 'schema.tableName' | transloco }} + + + + {{ 'schema.alerts.tableNameError' | transloco }} + + - - - {{ 'schema.alias' | transloco }} - - - - - - {{ 'schema.label' | transloco }} - - - - - {{ 'schema.plural' | transloco }} - - - - {{ 'schema.description' | transloco }} - - + + + {{ 'schema.alias' | transloco }} + + + + + + {{ 'schema.label' | transloco }} + + + + + {{ 'schema.plural' | transloco }} + + + + {{ 'schema.description' | transloco }} + + - - {{ 'schema.fields' | transloco }} - - + + {{ 'schema.fields' | transloco }} + + - - {{ 'schema.relationships.heading' | transloco }} - - + + {{ 'schema.relationships.heading' | transloco }} + + + + + {{ 'cancel' | transloco }} + + + {{ 'update' | transloco }} + {{ 'save' | transloco }} + + + + + + - + {{ 'cancel' | transloco }} - + {{ 'update' | transloco }} {{ 'save' | transloco }} - - - - - - - {{ 'cancel' | transloco }} - - - {{ 'update' | transloco }} - {{ 'save' | transloco }} - - - - + + + diff --git a/src/app/adf-schema/df-table-details/df-table-details.component.ts b/src/app/adf-schema/df-table-details/df-table-details.component.ts index b0676ef1..df09dcf0 100644 --- a/src/app/adf-schema/df-table-details/df-table-details.component.ts +++ b/src/app/adf-schema/df-table-details/df-table-details.component.ts @@ -23,6 +23,8 @@ import { UntilDestroy } from '@ngneat/until-destroy'; import { AceEditorMode } from 'src/app/shared/types/scripts'; import { GenericListResponse } from 'src/app/shared/types/generic-http'; import { TableDetailsType } from './df-table-details.types'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; + @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-table-details', @@ -59,7 +61,8 @@ export class DfTableDetailsComponent implements OnInit { private fb: FormBuilder, private activatedRoute: ActivatedRoute, public breakpointService: DfBreakpointService, - private router: Router + private router: Router, + private themeService: DfThemeService ) { this.tableDetailsForm = this.fb.group({ name: ['', Validators.required], @@ -69,6 +72,7 @@ export class DfTableDetailsComponent implements OnInit { description: [null], }); } + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.activatedRoute.data.subscribe(data => { diff --git a/src/app/adf-services/df-service-details/df-service-details.component.html b/src/app/adf-services/df-service-details/df-service-details.component.html index be8d81cb..af9ee1b1 100644 --- a/src/app/adf-services/df-service-details/df-service-details.component.html +++ b/src/app/adf-services/df-service-details/df-service-details.component.html @@ -1,4 +1,8 @@ - + @@ -64,7 +68,9 @@ class="card-icon" [src]="getBackgroundImage(type.name)" [alt]="type.label" /> - {{ type.label }} + + {{ type.label }} + @@ -84,7 +90,9 @@ {{ type.label }} class="card-icon" [src]="getBackgroundImage(type.name)" [alt]="type.label" /> - {{ type.label }} + + {{ type.label }} + @@ -164,6 +172,7 @@ {{ type.label }} {{ 'active' | transloco }}{{ type.label }} - + {{ 'cancel' | transloco }} - + {{ 'save' | transloco }} @@ -329,7 +342,7 @@ {{ type.label }} formControlName="isActive" color="primary" *ngIf="!subscriptionRequired" - >{{ 'active' | transloco }}{{ 'active' | transloco }} diff --git a/src/app/adf-services/df-service-details/df-service-details.component.scss b/src/app/adf-services/df-service-details/df-service-details.component.scss index 3db27dc7..fe19d8af 100644 --- a/src/app/adf-services/df-service-details/df-service-details.component.scss +++ b/src/app/adf-services/df-service-details/df-service-details.component.scss @@ -120,14 +120,11 @@ mat-icon { .action-bar { display: flex; justify-content: flex-end; - .save-btn { - background-color: mat.get-color-from-palette($df-purple-palette, 500); - color: white; - border-radius: 20px; - } - .cancel-btn { - color: mat.get-color-from-palette($df-purple-palette, 1001); - border: 1px solid mat.get-color-from-palette($df-purple-palette, 1001); - border-radius: 20px; - } +} + +::ng-deep .mat-expansion-panel-header > .mat-expansion-indicator::after { + color: unset !important; +} +::ng-deep .mat-mdc-select-arrow { + color: unset !important; } diff --git a/src/app/adf-services/df-service-details/df-service-details.component.ts b/src/app/adf-services/df-service-details/df-service-details.component.ts index 5dd15a3f..cd80c6c0 100644 --- a/src/app/adf-services/df-service-details/df-service-details.component.ts +++ b/src/app/adf-services/df-service-details/df-service-details.component.ts @@ -49,6 +49,7 @@ import { CommonModule } from '@angular/common'; import { MatIconModule } from '@angular/material/icon'; import { HttpClient } from '@angular/common/http'; import { MatDialog, MatDialogModule } from '@angular/material/dialog'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -104,7 +105,8 @@ export class DfServiceDetailsComponent implements OnInit { private router: Router, private systemConfigDataService: DfSystemConfigDataService, private http: HttpClient, - public dialog: MatDialog + public dialog: MatDialog, + private themeService: DfThemeService ) { this.serviceForm = this.fb.group({ type: ['', Validators.required], @@ -118,7 +120,7 @@ export class DfServiceDetailsComponent implements OnInit { this.edit = true; } } - + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { this.http .get>('assets/img/databaseImages.json') diff --git a/src/app/adf-users/df-manage-users/df-manage-users.component.html b/src/app/adf-users/df-manage-users/df-manage-users.component.html index c13e202d..31561647 100644 --- a/src/app/adf-users/df-manage-users/df-manage-users.component.html +++ b/src/app/adf-users/df-manage-users/df-manage-users.component.html @@ -7,6 +7,8 @@ (change)="uploadUserList($event)" style="display: none" /> + diff --git a/src/app/shared/components/df-ace-editor/df-ace-editor.component.ts b/src/app/shared/components/df-ace-editor/df-ace-editor.component.ts index 11518bb3..ab8b84f8 100644 --- a/src/app/shared/components/df-ace-editor/df-ace-editor.component.ts +++ b/src/app/shared/components/df-ace-editor/df-ace-editor.component.ts @@ -11,15 +11,18 @@ import { SimpleChanges, ViewChild, forwardRef, + inject, } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { AceEditorMode } from '../../types/scripts'; - +import { DfThemeService } from '../../services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; @Component({ selector: 'df-ace-editor', templateUrl: './df-ace-editor.component.html', styleUrls: ['./df-ace-editor.component.scss'], standalone: true, + imports: [AsyncPipe], providers: [ { provide: NG_VALUE_ACCESSOR, @@ -42,6 +45,8 @@ export class DfAceEditorComponent onChange: (value: string) => void; onTouched: () => void; + themeService = inject(DfThemeService); + isDarkMode = this.themeService.darkMode$; ngAfterViewInit(): void { this.init(this.elementRef, this.mode); diff --git a/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.html b/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.html index 51cb6cbe..ab3104b6 100644 --- a/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.html +++ b/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.html @@ -1,85 +1,88 @@ - - {{ schema.label }} - + + {{ schema.label }} + + + + {{ option.label }} + + + + + + + {{ schema.label }} + + {{ control.value ? control.value.name : ('noFileSelected' | transloco) }} + + - - - {{ option.label }} - - - - - - - {{ schema.label }} - - {{ control.value ? control.value.name : ('noFileSelected' | transloco) }} - -{{ - schema.label - }} - - {{ schema.label }} - - - - {{ option }} - - - + [matTooltip]="schema.description ?? ''" + [attr.aria-label]="schema.label" + >{{ schema.label }} + + {{ schema.label }} + + + + {{ option }} + + + + + diff --git a/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.ts b/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.ts index 813c1831..abc28bb4 100644 --- a/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.ts +++ b/src/app/shared/components/df-dynamic-field/df-dynamic-field.component.ts @@ -29,6 +29,7 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { Observable, map, startWith } from 'rxjs'; import { ActivatedRoute } from '@angular/router'; import { addGroupEntries } from '../../utilities/eventScripts'; +import { DfThemeService } from '../../services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-dynamic-field', @@ -62,13 +63,15 @@ export class DfDynamicFieldComponent implements OnInit, DoCheck { constructor( @Optional() @Self() public controlDir: NgControl, - private activedRoute: ActivatedRoute + private activedRoute: ActivatedRoute, + private themeService: DfThemeService ) { controlDir.valueAccessor = this; } eventList: string[]; filteredEventList: Observable; + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { if (this.schema.type === 'event_picklist') { diff --git a/src/app/shared/components/df-field-array/df-array-field.component.html b/src/app/shared/components/df-field-array/df-array-field.component.html index 0ccec4a5..f3d0cc98 100644 --- a/src/app/shared/components/df-field-array/df-array-field.component.html +++ b/src/app/shared/components/df-field-array/df-array-field.component.html @@ -1,4 +1,4 @@ - + {{ schema.label }} - + + @@ -20,7 +22,7 @@ {{ 'name' | transloco }} - + {{ 'name' | transloco }} @@ -32,7 +34,7 @@ {{ 'value' | transloco }} - + {{ 'value' | transloco }} @@ -45,6 +47,7 @@ @@ -53,7 +56,7 @@ @@ -61,7 +64,11 @@ - + diff --git a/src/app/shared/components/df-lookup-keys/df-lookup-keys.component.ts b/src/app/shared/components/df-lookup-keys/df-lookup-keys.component.ts index dd480bf7..76304fe6 100644 --- a/src/app/shared/components/df-lookup-keys/df-lookup-keys.component.ts +++ b/src/app/shared/components/df-lookup-keys/df-lookup-keys.component.ts @@ -19,6 +19,9 @@ import { MatExpansionModule } from '@angular/material/expansion'; import { faPlus, faTrashCan } from '@fortawesome/free-solid-svg-icons'; import { TranslocoPipe } from '@ngneat/transloco'; import { UntilDestroy } from '@ngneat/until-destroy'; +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; + @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-lookup-keys', @@ -38,6 +41,7 @@ import { UntilDestroy } from '@ngneat/until-destroy'; FontAwesomeModule, MatExpansionModule, TranslocoPipe, + AsyncPipe, ], }) export class DfLookupKeysComponent implements OnInit { @@ -49,8 +53,11 @@ export class DfLookupKeysComponent implements OnInit { faPlus = faPlus; @Input() showAccordion = true; - constructor(private rootFormGroup: FormGroupDirective) {} - + constructor( + private rootFormGroup: FormGroupDirective, + private themeService: DfThemeService + ) {} + isDarkMode = this.themeService.darkMode$; ngOnInit() { this.rootForm = this.rootFormGroup.control; this.rootFormGroup.ngSubmit.subscribe(() => { diff --git a/src/app/shared/components/df-manage-table/df-manage-table.component.html b/src/app/shared/components/df-manage-table/df-manage-table.component.html index a4880881..480fd08c 100644 --- a/src/app/shared/components/df-manage-table/df-manage-table.component.html +++ b/src/app/shared/components/df-manage-table/df-manage-table.component.html @@ -1,8 +1,8 @@ - + @@ -13,12 +13,13 @@ 0" class="search-input" + appearance="outline" subscriptSizing="dynamic"> {{ 'search' | transloco }} - + private translateService: TranslocoService, public dialog: MatDialog ) {} + themeService = inject(DfThemeService); + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { if (!this.tableData) { this.activatedRoute.data.subscribe(({ data }) => { diff --git a/src/app/shared/components/df-profile-details/df-profile-details.component.html b/src/app/shared/components/df-profile-details/df-profile-details.component.html index f4596c2a..d7ab4c13 100644 --- a/src/app/shared/components/df-profile-details/df-profile-details.component.html +++ b/src/app/shared/components/df-profile-details/df-profile-details.component.html @@ -1,6 +1,9 @@ - + - + {{ 'userManagement.controls.username.altLabel' | transloco }}{{ @@ -23,7 +26,7 @@ {{ 'userManagement.controls.username.errors.minLength' | transloco }} - + {{ 'userManagement.controls.email.label' | transloco }} @@ -43,7 +46,7 @@ {{ 'userManagement.controls.email.errors.required' | transloco }} - + {{ 'userManagement.controls.firstName.label' | transloco }} @@ -55,7 +58,7 @@ {{ 'userManagement.controls.firstName.errors.required' | transloco }} - + {{ 'userManagement.controls.lastName.label' | transloco }} @@ -68,7 +71,7 @@ - + {{ 'userManagement.controls.displayName.label' | transloco }} @@ -79,7 +82,7 @@ {{ 'userManagement.controls.phone.label' | transloco diff --git a/src/app/shared/components/df-profile-details/df-profile-details.component.ts b/src/app/shared/components/df-profile-details/df-profile-details.component.ts index 0a2d9560..76de559b 100644 --- a/src/app/shared/components/df-profile-details/df-profile-details.component.ts +++ b/src/app/shared/components/df-profile-details/df-profile-details.component.ts @@ -11,7 +11,8 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { TranslocoPipe } from '@ngneat/transloco'; import { UntilDestroy } from '@ngneat/until-destroy'; - +import { DfThemeService } from '../../services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; @UntilDestroy({ checkProperties: true }) @Component({ selector: 'df-profile-details', @@ -24,11 +25,16 @@ import { UntilDestroy } from '@ngneat/until-destroy'; ReactiveFormsModule, TranslocoPipe, NgIf, + AsyncPipe, ], }) export class DfProfileDetailsComponent implements OnInit { rootForm: FormGroup; - constructor(private rootFormGroup: FormGroupDirective) {} + constructor( + private rootFormGroup: FormGroupDirective, + private themeService: DfThemeService + ) {} + isDarkMode = this.themeService.darkMode$; ngOnInit() { this.rootForm = this.rootFormGroup.control; diff --git a/src/app/shared/components/df-script-editor/df-script-editor.component.html b/src/app/shared/components/df-script-editor/df-script-editor.component.html index 9732478c..91779b97 100644 --- a/src/app/shared/components/df-script-editor/df-script-editor.component.html +++ b/src/app/shared/components/df-script-editor/df-script-editor.component.html @@ -1,4 +1,4 @@ - + {{ 'desktopFile' | transloco }} @@ -17,7 +17,7 @@ {{ 'githubFile' | transloco }} diff --git a/src/app/shared/components/df-script-editor/df-script-editor.component.ts b/src/app/shared/components/df-script-editor/df-script-editor.component.ts index 5c563215..dfa6f48a 100644 --- a/src/app/shared/components/df-script-editor/df-script-editor.component.ts +++ b/src/app/shared/components/df-script-editor/df-script-editor.component.ts @@ -18,6 +18,8 @@ import { DfScriptsGithubDialogComponent } from '../df-scripts-github-dialog/df-s import { DfAceEditorComponent } from '../df-ace-editor/df-ace-editor.component'; import { Service, ServiceType } from '../../types/service'; import { switchMap } from 'rxjs'; +import { AsyncPipe } from '@angular/common'; +import { DfThemeService } from '../../services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -35,6 +37,7 @@ import { switchMap } from 'rxjs'; MatDialogModule, MatInputModule, DfAceEditorComponent, + AsyncPipe, ReactiveFormsModule, ], }) @@ -51,7 +54,8 @@ export class DfScriptEditorComponent implements OnInit { private dialog: MatDialog, @Inject(BASE_SERVICE_TOKEN) private fileService: DfBaseCrudService, @Inject(CACHE_SERVICE_TOKEN) private cacheService: DfBaseCrudService, - @Inject(BASE_SERVICE_TOKEN) private baseService: DfBaseCrudService + @Inject(BASE_SERVICE_TOKEN) private baseService: DfBaseCrudService, + private themeService: DfThemeService ) { this.baseService .getAll<{ @@ -69,7 +73,7 @@ export class DfScriptEditorComponent implements OnInit { this.storageServices = res.services; }); } - + isDarkMode = this.themeService.darkMode$; ngOnInit(): void { if (this.storageServiceId.getRawValue()) { this.storagePath.addValidators([Validators.required]); diff --git a/src/app/shared/components/df-search-dialog/df-search-dialog.component.html b/src/app/shared/components/df-search-dialog/df-search-dialog.component.html index d7f4496b..a4749c25 100644 --- a/src/app/shared/components/df-search-dialog/df-search-dialog.component.html +++ b/src/app/shared/components/df-search-dialog/df-search-dialog.component.html @@ -1,4 +1,4 @@ - + - {{ 'close' | transloco }} + + {{ 'close' | transloco }} + diff --git a/src/app/shared/components/df-search-dialog/df-search-dialog.component.scss b/src/app/shared/components/df-search-dialog/df-search-dialog.component.scss index ab47520d..8afd2627 100644 --- a/src/app/shared/components/df-search-dialog/df-search-dialog.component.scss +++ b/src/app/shared/components/df-search-dialog/df-search-dialog.component.scss @@ -1,6 +1,9 @@ @use '@angular/material' as mat; @use 'src/theme' as theme; $df-purple-palette: mat.define-palette(theme.$df-purple-palette); +.search-dialog { + padding-top: 20px; +} .search-bar { min-width: 275px; @@ -25,9 +28,11 @@ $df-purple-palette: mat.define-palette(theme.$df-purple-palette); } .dark-theme { - .search-bar, - .search-container, - .search-action { - // background-color: mat.get-color-from-palette($df-purple-palette, 1003)!important; + &.search-dialog { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1003 + ) !important; + border: 1px solid white; } } diff --git a/src/app/shared/components/df-user-details/df-user-details-base.component.html b/src/app/shared/components/df-user-details/df-user-details-base.component.html index 85aa4bd7..9f09dc47 100644 --- a/src/app/shared/components/df-user-details/df-user-details-base.component.html +++ b/src/app/shared/components/df-user-details/df-user-details-base.component.html @@ -4,11 +4,15 @@ (alertClosed)="showAlert = false"> {{ alertMsg }} - + - {{ + {{ 'active' | transloco }} @@ -62,7 +66,7 @@ userForm.get('pass-invite')?.value === 'password' || userForm.get('setPassword')?.value "> - + {{ 'userManagement.controls.password.label' | transloco }} @@ -78,7 +82,7 @@ {{ 'userManagement.controls.password.errors.length' | transloco }} - + {{ 'userManagement.controls.confirmPassword.label' | transloco }} @@ -152,10 +156,14 @@ {{ userType + '.accessByTabs' | transloco }} [roles]="roles"> - + {{ 'cancel' | transloco }} - + {{ (type === 'create' ? 'create' : 'update') | transloco }} diff --git a/src/app/shared/components/df-user-details/df-user-details-base.component.ts b/src/app/shared/components/df-user-details/df-user-details-base.component.ts index 9fc251f6..4e766353 100644 --- a/src/app/shared/components/df-user-details/df-user-details-base.component.ts +++ b/src/app/shared/components/df-user-details/df-user-details-base.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, inject } from '@angular/core'; import { FormArray, FormBuilder, @@ -21,6 +21,7 @@ import { faEnvelope } from '@fortawesome/free-solid-svg-icons'; import { UntilDestroy } from '@ngneat/until-destroy'; import { DfPaywallService } from '../../services/df-paywall.service'; import { of, switchMap } from 'rxjs'; +import { DfThemeService } from '../../services/df-theme.service'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -77,6 +78,8 @@ export abstract class DfUserDetailsBaseComponent implements OnInit { appRoles: this.fb.array([]), }); } + themeService = inject(DfThemeService); + isDarkMode = this.themeService.darkMode$; get cancelRoute() { let route = `/${ROUTES.ADMIN_SETTINGS}/`; diff --git a/src/app/shared/components/df-verb-picker/df-verb-picker.component.html b/src/app/shared/components/df-verb-picker/df-verb-picker.component.html index 5c94abaf..bae179a9 100644 --- a/src/app/shared/components/df-verb-picker/df-verb-picker.component.html +++ b/src/app/shared/components/df-verb-picker/df-verb-picker.component.html @@ -1,17 +1,19 @@ - - {{ schema.label }} - - - {{ verb.label }} - - - - + + + {{ schema.label }} + + + {{ verb.label }} + + + + + diff --git a/src/app/shared/components/df-verb-picker/df-verb-picker.component.ts b/src/app/shared/components/df-verb-picker/df-verb-picker.component.ts index 9b75b3ff..941b51c7 100644 --- a/src/app/shared/components/df-verb-picker/df-verb-picker.component.ts +++ b/src/app/shared/components/df-verb-picker/df-verb-picker.component.ts @@ -15,7 +15,8 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; import { faCircleInfo } from '@fortawesome/free-solid-svg-icons'; import { UntilDestroy } from '@ngneat/until-destroy'; - +import { DfThemeService } from 'src/app/shared/services/df-theme.service'; +import { AsyncPipe } from '@angular/common'; type Verb = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -31,6 +32,7 @@ type Verb = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; NgIf, MatTooltipModule, FontAwesomeModule, + AsyncPipe, ], }) export class DfVerbPickerComponent implements ControlValueAccessor, DoCheck { @@ -71,9 +73,13 @@ export class DfVerbPickerComponent implements ControlValueAccessor, DoCheck { onChange: (value: number | Verb | Array) => void; onTouched: () => void; - constructor(@Self() public controlDir: NgControl) { + constructor( + @Self() public controlDir: NgControl, + private themeService: DfThemeService + ) { controlDir.valueAccessor = this; } + isDarkMode = this.themeService.darkMode$; ngDoCheck(): void { if ( diff --git a/src/dark-style.scss b/src/dark-style.scss new file mode 100644 index 00000000..1c57a7d9 --- /dev/null +++ b/src/dark-style.scss @@ -0,0 +1,247 @@ +/* You can add global styles to this file, and also import other style files */ +@use '@angular/material' as mat; +@use 'src/theme' as theme; + +$df-purple-palette: mat.define-palette(theme.$df-purple-palette); + +.dark-theme { + // Font + .breadcrumb-link > span { + color: mat.get-color-from-palette($df-purple-palette, 500) !important; + } + + // Divider + .mat-divider { + border-color: white !important; + } + .system-info-container + .system-info-instance + .system-info-packages + .package-header { + border-bottom-color: white !important; + } + .system-info-container .system-info-instance .system-info-packages { + border-left-color: white !important; + } + + // Step + .mat-stepper-horizontal { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + border: 1px solid white !important; + } + .mat-step-icon { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 300 + ) !important; + } + .mat-step-icon-selected { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 700 + ) !important; + } + .mat-step-icon-state-edit { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 700 + ) !important; + } + .mat-stepper-horizontal-line { + border-top-color: white !important; + } + + .mat-step-label { + color: white !important; + } + + // Radio Button + .mat-mdc-radio-button + .mdc-radio + .mdc-radio__native-control + + .mdc-radio__background + .mdc-radio__outer-circle { + border-color: white !important; + } + // Checkbox + .mat-mdc-checkbox .mdc-checkbox__background, + .mdc-checkbox__ripple { + border-color: white !important; + } + + // Form Element + .mdc-notched-outline > * { + border-color: white !important; + } + + mat-label, + mat-select, + mat-option, + input, + textarea, + button, + span { + color: white !important; + } + .mat-mdc-form-field-required-marker { + color: white !important; + } + .mdc-form-field > label { + color: white !important; + } + .mat-mdc-select-disabled { + color: #a3a1a1 !important; + } + // Button + .save-btn { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 600 + ) !important; + color: mat.get-color-from-palette($df-purple-palette, 700) !important; + } + .cancel-btn { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + color: mat.get-color-from-palette($df-purple-palette, 200) !important; + border: 1px solid mat.get-color-from-palette($df-purple-palette, 200) !important; + } + .copy-btn { + color: white !important; + } + .refresh-btn { + color: #a3a1a1 !important; + } + .close-btn { + color: mat.get-color-from-palette($df-purple-palette, 200) !important; + border: 1px solid mat.get-color-from-palette($df-purple-palette, 200) !important; + } + + // Card + .mat-mdc-card { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + color: white !important; + border: 1px solid white !important; + } + .mat-mdc-card-header { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + color: white !important; + } + .mat-mdc-card-subtitle { + color: #a3a1a1 !important; + } + + .mat-expansion-panel { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + border: 1px soild white !important; + color: white !important; + } + .mat-expansion-panel-header { + color: white !important; + } + + .mat-accordion .mat-expansion-panel { + border: 1px solid white !important; + } + .mat-expansion-panel-header-title, + .mat-expansion-indicator::after { + color: white; + } + .mat-expansion-panel-header-description { + color: #a3a1a1; + } + + // Table + table, + .mat-mdc-table { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + .mat-mdc-header-row { + .mat-mdc-header-cell { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + color: white !important; + border-color: white !important; + } + } + .mat-mdc-row { + .mat-mdc-cell { + color: white !important; + border-color: white !important; + } + } + .action-btn { + color: mat.get-color-from-palette($df-purple-palette, 700) !important; + } + } + .no-data-row td { + color: white !important; + } + + .clickable { + &.mat-mdc-row:focus, + &.mat-mdc-row:focus-within { + .mat-mdc-cell:first-child { + border-left: 2px solid + mat.get-color-from-palette($df-purple-palette, 800) !important; + } + } + + &.mat-mdc-row:focus, + &.mat-mdc-row:focus-within, + &.mat-mdc-row:hover { + .mat-mdc-cell { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 600 + ) !important; + } + } + } + + // Swagger + .swagger-ui .info .title, + .swagger-ui .renderedMarkdown p { + color: white !important; + } + + .swagger-ui .scheme-container { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + border: 1px solid white !important; + color: white !important; + } + .swagger-ui .model-toggle::after { + background-color: white !important; + } + + // Editor + .editor { + color: unset !important; + background-color: mat.get-color-from-palette( + $df-purple-palette, + 1002 + ) !important; + border: 1px solid white; + } +} diff --git a/src/styles.scss b/src/styles.scss index 8669e712..123f7800 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,7 +1,7 @@ /* You can add global styles to this file, and also import other style files */ @use '@angular/material' as mat; @use 'src/theme' as theme; - +@import 'src/dark-style.scss'; $df-purple-palette: mat.define-palette(theme.$df-purple-palette); html, @@ -145,3 +145,88 @@ fa-icon.mat-mdc-tooltip-trigger { padding: 8px; height: 100%; } + +// light mode +a { + color: mat.get-color-from-palette($df-purple-palette, 600); +} + +// Step +.mat-step-icon-selected { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 400 + ) !important; +} +.mat-step-icon-state-edit { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 400 + ) !important; +} + +// Radio Button +.mat-mdc-radio-button + .mdc-radio + .mdc-radio__native-control + + .mdc-radio__background + .mdc-radio__outer-circle { + border-color: black !important; +} + +.mat-mdc-radio-button + .mdc-radio + .mdc-radio__native-control:enabled:checked + + .mdc-radio__background + .mdc-radio__outer-circle { + border-color: mat.get-color-from-palette($df-purple-palette, 600) !important; +} + +.mat-mdc-radio-button + .mdc-radio + .mdc-radio__native-control:enabled + + .mdc-radio__background + .mdc-radio__inner-circle { + border-color: mat.get-color-from-palette($df-purple-palette, 600) !important; +} + +// Checkbox +.mat-mdc-checkbox.mat-mdc-checkbox-checked .mdc-checkbox__background, +.mdc-checkbox__ripple { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 600 + ) !important; + border-color: mat.get-color-from-palette($df-purple-palette, 600) !important; +} + +// Button +.save-btn { + background-color: mat.get-color-from-palette( + $df-purple-palette, + 400 + ) !important; + color: white !important; + border-radius: 20px !important; +} +.cancel-btn { + color: mat.get-color-from-palette($df-purple-palette, 1001) !important; + border: 1px solid mat.get-color-from-palette($df-purple-palette, 1001) !important; + border-radius: 20px !important; +} +.action-btn { + color: mat.get-color-from-palette($df-purple-palette, 500) !important; +} +// Select +.mat-mdc-select-arrow { + color: unset !important; +} +// Tab +.mat-mdc-tab .mdc-tab-indicator__content--underline { + border-color: mat.get-color-from-palette($df-purple-palette, 500) !important; +} + +// Swagger +.swagger-ui .opblock .opblock-section-header { + background: unset !important; +}
- {{ 'apps.createApp.appLocation.label' | transloco - }} -
+ {{ 'apps.createApp.appLocation.label' | transloco + }} +
+ {{ 'scheduler.logs.statusCode' | transloco }}: + {{ scheduleToEdit?.taskLogByTaskId?.statusCode }} +
- {{ 'scheduler.logs.statusCode' | transloco }}: - {{ scheduleToEdit?.taskLogByTaskId?.statusCode }} -