RED-5875: Remove mat-flat-button usages

This commit is contained in:
Adina Țeudan 2022-12-22 18:19:34 +02:00
parent f9a6f23c25
commit c9dee83977
51 changed files with 341 additions and 222 deletions

View File

@ -28,8 +28,12 @@
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid || !changed" color="primary" mat-flat-button type="submit">
{{ 'user-profile-screen.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="form.invalid || !changed"
[label]="'user-profile-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -34,8 +34,12 @@
</div>
<div class="dialog-actions">
<button [disabled]="!valid || !changed" color="primary" mat-flat-button type="submit">
{{ 'preferences-screen.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="!valid || !changed"
[label]="'preferences-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -38,13 +38,11 @@
</div>
<div class="dialog-actions">
<button
<iqser-icon-button
[disabled]="form.invalid || !(profileChanged || languageChanged || themeChanged)"
color="primary"
mat-flat-button
type="submit"
>
{{ 'user-profile-screen.actions.save' | translate }}
</button>
[label]="'user-profile-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -35,9 +35,12 @@
</div>
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button type="button">
{{ 'add-edit-dossier-attribute.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'add-edit-dossier-attribute.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -52,9 +52,14 @@
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button type="button">
{{ 'add-edit-dossier-state.save' | translate }}
</button>
<iqser-icon-button
(click)="save()"
[disabled]="disabled"
[label]="'add-edit-dossier-state.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
>
</iqser-icon-button>
</div>
</form>

View File

@ -92,9 +92,12 @@
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button type="button">
{{ 'add-edit-clone-dossier-template.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'add-edit-clone-dossier-template.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-help-button
*deny="roles.getRss; if: !!dossierTemplate"
helpButtonKey="edit_clone_delete_dossier_templates"

View File

@ -56,7 +56,7 @@
<mat-checkbox
[matTooltipDisabled]="canSetFilterable"
[matTooltip]="
'add-edit-file-attribute.form.filterable-disabled' | translate: { maxNumber: DISPLAYED_FILTERABLE_LIMIT }
'add-edit-file-attribute.form.filterable-disabled' | translate : { maxNumber: DISPLAYED_FILTERABLE_LIMIT }
"
color="primary"
formControlName="filterable"
@ -71,7 +71,7 @@
<mat-checkbox
[matTooltipDisabled]="canSetDisplayed"
[matTooltip]="
'add-edit-file-attribute.form.displayed-disabled' | translate: { maxNumber: DISPLAYED_FILTERABLE_LIMIT }
'add-edit-file-attribute.form.displayed-disabled' | translate : { maxNumber: DISPLAYED_FILTERABLE_LIMIT }
"
color="primary"
formControlName="displayedInFileList"
@ -84,9 +84,12 @@
</div>
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button type="button">
{{ 'add-edit-file-attribute.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'add-edit-file-attribute.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -9,9 +9,12 @@
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid" color="primary" mat-flat-button type="submit">
{{ 'reset-password-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="form.invalid"
[label]="'reset-password-dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div (click)="toggleResetPassword.emit()" [translate]="'reset-password-dialog.actions.cancel'" class="all-caps-label cancel"></div>
</div>

View File

@ -1,7 +1,7 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { UserService } from '@users/user.service';
import { LoadingService, Toaster } from '@iqser/common-ui';
import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { User } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { firstValueFrom } from 'rxjs';
@ -11,6 +11,7 @@ import { firstValueFrom } from 'rxjs';
templateUrl: './reset-password.component.html',
})
export class ResetPasswordComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly form = this._getForm();
@Input() user: User;
@Output() readonly toggleResetPassword = new EventEmitter();

View File

@ -46,9 +46,12 @@
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid || !changed" color="primary" mat-flat-button type="submit">
{{ (user ? 'add-edit-user.actions.save-changes' : 'add-edit-user.actions.save') | translate }}
</button>
<iqser-icon-button
[disabled]="form.invalid || !changed"
[label]="(user ? 'add-edit-user.actions.save-changes' : 'add-edit-user.actions.save') | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="delete()"

View File

@ -1,7 +1,7 @@
import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { AdminDialogService } from '../../../services/admin-dialog.service';
import { BaseFormComponent, IconButtonTypes, IProfileUpdateRequest, LoadingService, Toaster } from '@iqser/common-ui';
import { BaseFormComponent, IProfileUpdateRequest, LoadingService, Toaster } from '@iqser/common-ui';
import { rolesTranslations } from '@translations/roles-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { User } from '@red/domain';
@ -15,8 +15,6 @@ import { firstValueFrom } from 'rxjs';
styleUrls: ['./user-details.component.scss'],
})
export class UserDetailsComponent extends BaseFormComponent implements OnChanges {
readonly iconButtonTypes = IconButtonTypes;
@Input() user: User;
@Output() readonly toggleResetPassword = new EventEmitter();
@Output() readonly closeDialog = new EventEmitter();

View File

@ -13,9 +13,13 @@
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button type="button">
{{ 'add-entity.save' | translate }}
</button>
<iqser-icon-button
(click)="save()"
[disabled]="disabled"
[label]="'add-entity.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-help-button *deny="roles.getRss" helpButtonKey="create_new_entity"></iqser-help-button>
</div>

View File

@ -1,7 +1,7 @@
import { ChangeDetectionStrategy, Component, Inject, ViewChild } from '@angular/core';
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';
import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component';
import { BaseDialogComponent } from '@iqser/common-ui';
import { BaseDialogComponent, IconButtonTypes } from '@iqser/common-ui';
import { ROLES } from '@users/roles';
interface DialogData {
@ -14,6 +14,7 @@ interface DialogData {
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AddEntityDialogComponent extends BaseDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly roles = ROLES;
readonly dossierTemplateId = this._data.dossierTemplateId;

View File

@ -22,15 +22,20 @@
<div class="dialog-actions">
<ng-container *ngIf="!isInConfiguration">
<button (click)="toggleIsInConfiguration()" color="primary" mat-flat-button>
{{ 'digital-signature-dialog.actions.continue' | translate }}
</button>
<iqser-icon-button
(click)="toggleIsInConfiguration()"
[label]="'digital-signature-dialog.actions.continue' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div [translate]="'digital-signature-dialog.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
</ng-container>
<ng-container *ngIf="isInConfiguration">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button>
{{ 'digital-signature-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'digital-signature-dialog.actions.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div
(click)="toggleIsInConfiguration()"
[translate]="'digital-signature-dialog.actions.back'"

View File

@ -4,12 +4,12 @@
</div>
<div class="dialog-content">
<div class="heading">{{ 'confirm-delete-dossier-state.warning' | translate: translateArgs }}</div>
<div class="heading">{{ 'confirm-delete-dossier-state.warning' | translate : translateArgs }}</div>
<form *ngIf="data.dossierCount !== 0 && data.otherStates.length > 0" [formGroup]="form" class="mt-16">
<div class="iqser-input-group">
<mat-checkbox color="primary" formControlName="replace">
{{ 'confirm-delete-dossier-state.question' | translate: { count: data.dossierCount } }}
{{ 'confirm-delete-dossier-state.question' | translate : { count: data.dossierCount } }}
</mat-checkbox>
</div>
@ -28,9 +28,7 @@
</div>
<div class="dialog-actions">
<button (click)="save()" color="primary" mat-flat-button>
{{ label | translate }}
</button>
<iqser-icon-button (action)="save()" [label]="label | translate" [type]="iconButtonTypes.primary"></iqser-icon-button>
<div [translate]="'confirm-delete-dossier-state.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
</div>

View File

@ -5,7 +5,7 @@ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { firstValueFrom, forkJoin } from 'rxjs';
import { DossierStatesService } from '@services/entity-services/dossier-states.service';
import { LoadingService, Toaster } from '@iqser/common-ui';
import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
import { take } from 'rxjs/operators';
@ -23,6 +23,7 @@ interface DialogData {
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ConfirmDeleteDossierStateDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly form: UntypedFormGroup;
constructor(

View File

@ -28,9 +28,13 @@
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button type="button">
{{ 'edit-color-dialog.save' | translate }}
</button>
<iqser-icon-button
(click)="save()"
[disabled]="disabled"
[label]="'edit-color-dialog.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -1,7 +1,7 @@
import { Component, Inject } from '@angular/core';
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';
import { DefaultColorType } from '@red/domain';
import { BaseDialogComponent } from '@iqser/common-ui';
import { BaseDialogComponent, IconButtonTypes } from '@iqser/common-ui';
import { UntypedFormGroup, Validators } from '@angular/forms';
import { defaultColorsTranslations } from '@translations/default-colors-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
@ -18,6 +18,7 @@ interface IEditColorData {
styleUrls: ['./edit-color-dialog.component.scss'],
})
export class EditColorDialogComponent extends BaseDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly translations = defaultColorsTranslations;
constructor(

View File

@ -41,9 +41,12 @@
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button>
{{ 'file-attributes-configurations.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'file-attributes-configurations.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div (click)="close()" [translate]="'file-attributes-configurations.cancel'" class="all-caps-label cancel"></div>
</div>

View File

@ -6,7 +6,7 @@
<div class="left">
<div class="info"><span [translate]="'file-attributes-csv-import.file'"> </span> {{ data.csv.name }}</div>
<div class="large-label">
{{ 'file-attributes-csv-import.total-rows' | translate: { rows: parseResult?.data?.length } }}
{{ 'file-attributes-csv-import.total-rows' | translate : { rows: parseResult?.data?.length } }}
</div>
</div>
<div class="right">
@ -45,7 +45,7 @@
<div class="iqser-input-group required w-160">
<label translate="file-attributes-csv-import.encoding"></label>
<mat-select formControlName="encoding" (selectionChange)="readFile()">
<mat-select (selectionChange)="readFile()" formControlName="encoding">
<mat-option *ngFor="let type of encodingTypeOptions" [value]="type">
{{ translations[type] | translate }}
</mat-option>
@ -65,10 +65,10 @@
<div class="csv-part-header">
<div>
<span class="all-caps-label">{{
'file-attributes-csv-import.available' | translate: { value: parseResult?.meta?.fields.length }
'file-attributes-csv-import.available' | translate : { value: parseResult?.meta?.fields.length }
}}</span>
<span class="all-caps-label">{{
'file-attributes-csv-import.selected' | translate: { value: activeFields.length }
'file-attributes-csv-import.selected' | translate : { value: activeFields.length }
}}</span>
</div>
<div class="actions">
@ -137,7 +137,7 @@
<div [class.hidden]="!previewExpanded" class="csv-part-content">
<div *ngIf="!hoveredColumn" class="no-column-data" translate="file-attributes-csv-import.no-hovered-column"></div>
<div *ngIf="hoveredColumn && !columnSample.length" class="no-column-data">
{{ 'file-attributes-csv-import.no-sample-data-for' | translate: { column: hoveredColumn } }}
{{ 'file-attributes-csv-import.no-sample-data-for' | translate : { column: hoveredColumn } }}
</div>
<div *ngFor="let row of columnSample">
{{ row }}
@ -155,9 +155,12 @@
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="changedParseConfig || form.invalid" color="primary" mat-flat-button>
{{ 'file-attributes-csv-import.save.label' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="changedParseConfig || form.invalid"
[label]="'file-attributes-csv-import.save.label' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div (click)="dialogRef.close()" class="all-caps-label cancel">
{{ 'file-attributes-csv-import.cancel' | translate }}

View File

@ -4,7 +4,7 @@ import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDia
import * as Papa from 'papaparse';
import { firstValueFrom, Observable } from 'rxjs';
import { map, startWith } from 'rxjs/operators';
import { ListingComponent, listingProvidersFactory, TableColumnConfig, Toaster, trackByFactory } from '@iqser/common-ui';
import { IconButtonTypes, ListingComponent, listingProvidersFactory, TableColumnConfig, Toaster, trackByFactory } from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { FileAttributeConfig, FileAttributeConfigTypes, FileAttributeEncodingTypes, IField, IFileAttributesConfig } from '@red/domain';
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
@ -23,6 +23,7 @@ interface IFileAttributesCSVImportData {
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class FileAttributesCsvImportDialogComponent extends ListingComponent<IField> {
readonly iconButtonTypes = IconButtonTypes;
readonly tableColumnConfigs: TableColumnConfig<IField>[] = [];
parseResult: { data: any[]; errors: any[]; meta: any; fields: IField[] };
hoveredColumn: string;

View File

@ -20,9 +20,13 @@
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid" color="primary" mat-flat-button type="submit">
{{ 'smtp-auth-config.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="form.invalid"
[label]="'smtp-auth-config.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div [translate]="'smtp-auth-config.actions.cancel'" class="all-caps-label cancel" mat-dialog-close></div>
</div>
</form>

View File

@ -6,12 +6,12 @@
</div>
<div class="dialog-actions">
<button
(click)="selectOption('overwrite')"
color="primary"
mat-flat-button
translate="upload-dictionary-dialog.options.overwrite"
></button>
<iqser-icon-button
(action)="selectOption('overwrite')"
[label]="'upload-dictionary-dialog.options.overwrite' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="selectOption('merge')"
[label]="'upload-dictionary-dialog.options.merge' | translate"

View File

@ -18,9 +18,12 @@
</div>
<div *ngIf="permissionsService.canEditEntities()" class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button>
{{ 'entity.info.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'entity.info.actions.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div (click)="revert()" [translate]="'entity.info.actions.revert'" class="all-caps-label cancel"></div>

View File

@ -5,7 +5,7 @@ import { ActivatedRoute } from '@angular/router';
import { getCurrentUser } from '@users/user.service';
import { PermissionsService } from '@services/permissions.service';
import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component';
import { IqserEventTarget } from '@iqser/common-ui';
import { IconButtonTypes, IqserEventTarget } from '@iqser/common-ui';
import { Observable } from 'rxjs';
import { ROLES } from '@users/roles';
@ -20,6 +20,8 @@ export class EntityInfoComponent {
readonly entity$: Observable<Dictionary>;
readonly dossierTemplateId: string;
readonly roles = ROLES;
readonly iconButtonTypes = IconButtonTypes;
@ViewChild(AddEditEntityComponent) private readonly _addEditEntityComponent: AddEditEntityComponent;
constructor(route: ActivatedRoute, dictionariesMapService: DictionariesMapService, readonly permissionsService: PermissionsService) {

View File

@ -24,14 +24,12 @@
</div>
<div class="dialog-actions">
<button
<iqser-icon-button
[disabled]="form?.invalid || !changed"
[iqserHelpMode]="'general_configurations'"
color="primary"
mat-flat-button
type="submit"
>
{{ 'general-config-screen.actions.save' | translate }}
</button>
[label]="'general-config-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -98,9 +98,13 @@
</div>
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid || !changed" color="primary" mat-flat-button type="submit" [iqserHelpMode]="'smtp_configurations'">
{{ 'general-config-screen.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="form.invalid || !changed"
[iqserHelpMode]="'smtp_configurations'"
[label]="'general-config-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="testConnection()"

View File

@ -29,14 +29,12 @@
</div>
</div>
<div class="dialog-actions">
<button
[disabled]="form?.invalid || !changed"
color="primary"
mat-flat-button
type="submit"
<iqser-icon-button
[disabled]="form.invalid || !changed"
[iqserHelpMode]="'sytem_configurations'"
>
{{ 'general-config-screen.actions.save' | translate }}
</button>
[label]="'general-config-screen.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -43,9 +43,13 @@
</div>
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'add-edit-justification.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'add-edit-justification.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
>
</iqser-icon-button>
<div (click)="close()" class="all-caps-label cancel" translate="add-edit-justification.actions.cancel"></div>
</div>

View File

@ -37,9 +37,12 @@
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid" color="primary" mat-flat-button type="submit">
{{ 'manual-annotation.dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="form.invalid"
[label]="'manual-annotation.dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>

View File

@ -26,7 +26,7 @@
<input formControlName="section" name="section" type="text" />
</div>
<div class="iqser-input-group w-400" *ngIf="this.allRectangles">
<div *ngIf="this.allRectangles" class="iqser-input-group w-400">
<label translate="change-legal-basis-dialog.content.classification"></label>
<input formControlName="classification" name="classification" type="text" />
</div>
@ -38,12 +38,16 @@
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'change-legal-basis-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'change-legal-basis-dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="change-legal-basis-dialog.actions.cancel"></div>
</div>
</form>
<iqser-circle-button class="dialog-close" icon="iqser:close" (action)="close()"></iqser-circle-button>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
</section>

View File

@ -9,11 +9,14 @@
</div>
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'document-info.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'document-info.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
</form>
<iqser-circle-button class="dialog-close" icon="iqser:close" (action)="close()"></iqser-circle-button>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
</section>

View File

@ -1,10 +1,10 @@
<section class="dialog">
<form (submit)="save()" [formGroup]="form">
<div class="dialog-header heading-l" translate="manual-annotation.dialog.header.force-redaction" *ngIf="!isHintDialog"></div>
<div class="dialog-header heading-l" translate="manual-annotation.dialog.header.force-hint" *ngIf="isHintDialog"></div>
<div *ngIf="!isHintDialog" class="dialog-header heading-l" translate="manual-annotation.dialog.header.force-redaction"></div>
<div *ngIf="isHintDialog" class="dialog-header heading-l" translate="manual-annotation.dialog.header.force-hint"></div>
<div class="dialog-content">
<div class="iqser-input-group required w-400" *ngIf="!isHintDialog">
<div *ngIf="!isHintDialog" class="iqser-input-group required w-400">
<label translate="manual-annotation.dialog.content.reason"></label>
<mat-select
[placeholder]="'manual-annotation.dialog.content.reason-placeholder' | translate"
@ -17,7 +17,7 @@
</mat-select>
</div>
<div class="iqser-input-group w-400" *ngIf="!isHintDialog">
<div *ngIf="!isHintDialog" class="iqser-input-group w-400">
<label translate="manual-annotation.dialog.content.legalBasis"></label>
<input [value]="form.get('reason').value?.legalBasis" disabled type="text" />
</div>
@ -29,11 +29,15 @@
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'manual-annotation.dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'manual-annotation.dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
>
</iqser-icon-button>
</div>
</form>
<iqser-circle-button class="dialog-close" icon="iqser:close" (action)="close()"></iqser-circle-button>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
</section>

View File

@ -23,16 +23,19 @@
<ng-container *ngIf="!data.color">
<div class="iqser-input-group">
<mat-checkbox color="primary" formControlName="confirmation" name="confirmation">
{{ translations[data.operation].confirmation | translate: { count: data.highlights.length } }}
{{ translations[data.operation].confirmation | translate : { count: data.highlights.length } }}
</mat-checkbox>
</div>
</ng-container>
</div>
<div class="dialog-actions">
<button [disabled]="form.invalid" color="primary" mat-flat-button type="submit">
{{ translations[data.operation].save | translate }}
</button>
<iqser-icon-button
[disabled]="form.invalid"
[label]="translations[data.operation].save | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="highlight-action-dialog.actions.cancel"></div>

View File

@ -1,20 +1,20 @@
<section class="dialog">
<div translate="import-redactions-dialog.title" class="dialog-header heading-l"></div>
<div class="dialog-header heading-l" translate="import-redactions-dialog.title"></div>
<div class="dialog-content">
<div translate="import-redactions-dialog.details" class="mb-24"></div>
<div class="mb-24" translate="import-redactions-dialog.details"></div>
<iqser-upload-file (fileChanged)="fileChanged($event)"></iqser-upload-file>
<div class="only-for-pages">
<mat-checkbox color="primary" [checked]="onlyForSpecificPages" (change)="onlyForSpecificPages = $event.checked">
<mat-checkbox (change)="onlyForSpecificPages = $event.checked" [checked]="onlyForSpecificPages" color="primary">
{{ 'import-redactions-dialog.import-only-for-pages' | translate }}
</mat-checkbox>
<div class="iqser-input-group">
<input
[placeholder]="'import-redactions-dialog.range.placeholder' | translate"
type="text"
[(ngModel)]="rangesValue"
[disabled]="!onlyForSpecificPages"
[placeholder]="'import-redactions-dialog.range.placeholder' | translate"
type="text"
/>
<label [translate]="'import-redactions-dialog.range.label'"></label>
</div>
@ -22,11 +22,15 @@
</div>
<div class="dialog-actions">
<button color="primary" mat-flat-button type="submit" (click)="save()" [disabled]="disabled">
{{ 'import-redactions-dialog.actions.import' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'import-redactions-dialog.actions.import' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="import-redactions-dialog.actions.cancel"></div>
</div>
<iqser-circle-button class="dialog-close" icon="iqser:close" (action)="close()"></iqser-circle-button>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
</section>

View File

@ -33,22 +33,18 @@ export class ImportRedactionsDialogComponent extends BaseDialogComponent {
super(_dialogRef);
}
fileChanged(file: Blob | null) {
this.fileToImport = file;
get disabled(): boolean {
if (!this.fileToImport) {
this.onlyForSpecificPages = false;
this.rangesValue = '';
return;
return true;
}
this.#extractNumberOfPages(this.fileToImport);
}
#extractNumberOfPages(file: Blob) {
const reader = new FileReader();
reader.readAsBinaryString(file);
reader.onloadend = () => {
this.numberOfPages = (reader.result as any).match(/\/Type[\s]*\/Page[^s]/g).length;
};
if (this.onlyForSpecificPages) {
try {
extractPageRanges(this.rangesValue, { numberOfPages: this.numberOfPages } as File);
} catch (e) {
return true;
}
}
return false;
}
get #pagesToImport(): Set<number> {
@ -63,18 +59,14 @@ export class ImportRedactionsDialogComponent extends BaseDialogComponent {
return pagesToImport;
}
get disabled(): boolean {
fileChanged(file: Blob | null) {
this.fileToImport = file;
if (!this.fileToImport) {
return true;
this.onlyForSpecificPages = false;
this.rangesValue = '';
return;
}
if (this.onlyForSpecificPages) {
try {
extractPageRanges(this.rangesValue, { numberOfPages: this.numberOfPages } as File);
} catch (e) {
return true;
}
}
return false;
this.#extractNumberOfPages(this.fileToImport);
}
async save(): Promise<void> {
@ -97,4 +89,12 @@ export class ImportRedactionsDialogComponent extends BaseDialogComponent {
this.close();
}
}
#extractNumberOfPages(file: Blob) {
const reader = new FileReader();
reader.readAsBinaryString(file);
reader.onloadend = () => {
this.numberOfPages = (reader.result as any).match(/\/Type[\s]*\/Page[^s]/g).length;
};
}
}

View File

@ -112,9 +112,13 @@
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'manual-annotation.dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'manual-annotation.dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
>
</iqser-icon-button>
</div>
</form>

View File

@ -23,12 +23,16 @@
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'recategorize-image-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'recategorize-image-dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="recategorize-image-dialog.actions.cancel"></div>
</div>
</form>
<iqser-circle-button class="dialog-close" icon="iqser:close" (action)="close()"></iqser-circle-button>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>
</section>

View File

@ -4,7 +4,7 @@
(data.removeFromDictionary
? 'remove-annotations-dialog.remove-from-dictionary.title'
: 'remove-annotations-dialog.remove-only-here.title'
) | translate: { hint: data.hint }
) | translate : { hint: data.hint }
}}
</div>
<form (submit)="save()" [formGroup]="form">
@ -13,7 +13,7 @@
(data.removeFromDictionary
? 'remove-annotations-dialog.remove-from-dictionary.question'
: 'remove-annotations-dialog.remove-only-here.question'
) | translate: { hint: data.hint }
) | translate : { hint: data.hint }
}}
<div *ngIf="data.removeFromDictionary" class="content-wrapper">
@ -46,9 +46,13 @@
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'remove-annotations-dialog.confirm' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'remove-annotations-dialog.confirm' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="remove-annotations-dialog.cancel"></div>
</div>
</form>

View File

@ -10,15 +10,19 @@
<div *ngIf="form.get('updateDictionary')" class="iqser-input-group">
<mat-checkbox color="primary" formControlName="updateDictionary">
{{ 'resize-annotation-dialog.content.update-dictionary' | translate: { text: this.text } }}
{{ 'resize-annotation-dialog.content.update-dictionary' | translate : { text: this.text } }}
</mat-checkbox>
</div>
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" mat-flat-button type="submit">
{{ 'resize-annotation-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
[disabled]="disabled"
[label]="'resize-annotation-dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="resize-annotation-dialog.actions.cancel"></div>
</div>
</form>

View File

@ -9,7 +9,7 @@
<div class="table-header">Transformation</div>
<div class="table-header">Annotations</div>
<ng-container *ngFor="let entry of rssEntry.result | keyvalue: originalOrder">
<ng-container *ngFor="let entry of rssEntry.result | keyvalue : originalOrder">
<div class="bold">{{ entry.key }}</div>
<div>
<iqser-editable-input
@ -25,7 +25,7 @@
(action)="undo(entry.value.originalKey)"
*ngIf="entry.value.value"
[showDot]="true"
[tooltip]="'rss-dialog.actions.undo' | translate: { value: entry.value.originalValue }"
[tooltip]="'rss-dialog.actions.undo' | translate : { value: entry.value.originalValue }"
[type]="circleButtonTypes.dark"
class="ml-2"
icon="red:undo"
@ -59,15 +59,26 @@
</div>
<div class="dialog-actions">
<button (click)="exportJSON()" color="primary" mat-flat-button type="submit">
{{ 'rss-dialog.actions.export-json' | translate }}
</button>
<button (click)="exportXML()" color="primary" mat-flat-button type="button">
{{ 'rss-dialog.actions.export-xml' | translate }}
</button>
<button (click)="exportAllInDossier()" *ngIf="userPreferences.areDevFeaturesEnabled" color="primary" mat-flat-button type="button">
{{ 'Export All' }}
</button>
<iqser-icon-button
(action)="exportJSON()"
[label]="'rss-dialog.actions.export-json' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="exportXML()"
[label]="'rss-dialog.actions.export-xml' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<iqser-icon-button
(action)="exportAllInDossier()"
*ngIf="userPreferences.areDevFeaturesEnabled"
[type]="iconButtonTypes.primary"
label="Export All"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="rss-dialog.actions.close"></div>
</div>

View File

@ -5,10 +5,10 @@
<div class="dialog-content">
<div class="iqser-input-group w-300 required">
<mat-form-field floatLabel="always">
<mat-label>{{ 'assign-owner.dialog.label' | translate: { type: mode } }}</mat-label>
<mat-label>{{ 'assign-owner.dialog.label' | translate : { type: mode } }}</mat-label>
<mat-select [placeholder]="'initials-avatar.unassigned' | translate" formControlName="user">
<mat-option *ngFor="let userId of userOptions" [value]="userId">
{{ userId | name: { defaultValue: 'initials-avatar.unassigned' | translate } }}
{{ userId | name : { defaultValue: 'initials-avatar.unassigned' | translate } }}
</mat-option>
</mat-select>
</mat-form-field>
@ -16,9 +16,12 @@
</div>
<div class="dialog-actions">
<button [disabled]="!form.valid || !changed" color="primary" mat-flat-button type="submit">
{{ 'assign-owner.dialog.save' | translate }}
</button>
<iqser-icon-button
[disabled]="!form.valid || !changed"
[label]="'assign-owner.dialog.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div [translate]="'assign-owner.dialog.cancel'" class="all-caps-label pointer cancel" mat-dialog-close></div>
</div>

View File

@ -1,7 +1,7 @@
import { Component, Inject } from '@angular/core';
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';
import { UserService } from '@users/user.service';
import { LoadingService, Toaster } from '@iqser/common-ui';
import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { Dossier, File, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
@ -22,6 +22,7 @@ class DialogData {
templateUrl: './assign-reviewer-approver-dialog.component.html',
})
export class AssignReviewerApproverDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly form: UntypedFormGroup;
readonly mode: 'reviewer' | 'approver';
dossier: Dossier;

View File

@ -1,5 +1,5 @@
<section class="dialog">
<div class="dialog-header heading-l">{{ 'dictionary-details.title' | translate: { readOnly: data.readOnly } }}</div>
<div class="dialog-header heading-l">{{ 'dictionary-details.title' | translate : { readOnly: data.readOnly } }}</div>
<div class="dialog-content">
<redaction-add-edit-entity
@ -11,9 +11,12 @@
</div>
<div *ngIf="!data.readOnly" class="dialog-actions">
<button (click)="save()" [disabled]="disabled" color="primary" mat-flat-button>
{{ 'dictionary-details.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'dictionary-details.actions.save' | translate"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<div (click)="close()" class="all-caps-label cancel" translate="dictionary-details.actions.cancel"></div>
</div>

View File

@ -1,6 +1,6 @@
<section *ngIf="dossier$ | async as dossier" class="dialog">
<div class="dialog-header heading-l" id="editDossierHeader">
{{ 'edit-dossier-dialog.header' | translate: { dossierName: dossier.dossierName } }}
{{ 'edit-dossier-dialog.header' | translate : { dossierName: dossier.dossierName } }}
</div>
<div class="dialog-content">
@ -53,16 +53,13 @@
</div>
<div *ngIf="showActionButtons" class="dialog-actions">
<button
(click)="save()"
<iqser-icon-button
(action)="save()"
[disabled]="disabled || !valid || !changed"
color="primary"
[label]="'edit-dossier-dialog.actions.save' | translate"
[type]="iconButtonTypes.primary"
id="editDossierSaveButton"
mat-flat-button
type="button"
>
{{ 'edit-dossier-dialog.actions.save' | translate }}
</button>
></iqser-icon-button>
<iqser-icon-button
(action)="save({ closeAfterSave: true })"

View File

@ -79,7 +79,7 @@
<div class="d-flex">
<redaction-select
[height]="165"
[label]="'report-type.label' | translate: { length: reportTemplateIdsLength }"
[label]="'report-type.label' | translate : { length: reportTemplateIdsLength }"
[optionTemplate]="reportTemplateOptionTemplate"
[options]="availableReportTypes"
[valueMapper]="reportTemplateValueMapper"
@ -88,7 +88,7 @@
></redaction-select>
<redaction-select
[height]="165"
[label]="'download-type.label' | translate: { length: downloadFileTypesLength }"
[label]="'download-type.label' | translate : { length: downloadFileTypesLength }"
[options]="downloadTypes"
formControlName="downloadFileTypes"
></redaction-select>
@ -96,9 +96,14 @@
</div>
<div class="dialog-actions">
<button [disabled]="disabled" color="primary" id="createDossierSaveButton" mat-flat-button type="submit">
{{ 'add-dossier-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="disabled"
[label]="'add-dossier-dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
id="createDossierSaveButton"
></iqser-icon-button>
<iqser-icon-button
(action)="save({ addMembers: true })"

View File

@ -9,7 +9,7 @@
<div class="dialog-content">
<redaction-select
*ngIf="availableReportTypes | async as reportTypes"
[label]="'report-type.label' | translate: { length: reportTypesLength }"
[label]="'report-type.label' | translate : { length: reportTypesLength }"
[optionTemplate]="reportTemplateOptionTemplate"
[options]="reportTypes"
[valueMapper]="reportTemplateValueMapper"
@ -18,7 +18,7 @@
></redaction-select>
<redaction-select
[label]="'download-type.label' | translate: { length: downloadFileTypesLength }"
[label]="'download-type.label' | translate : { length: downloadFileTypesLength }"
[options]="downloadTypes"
formControlName="downloadFileTypes"
></redaction-select>
@ -47,9 +47,13 @@
</div>
</div>
<div class="dialog-actions">
<button (click)="save()" [disabled]="form.invalid" color="primary" mat-flat-button type="submit">
{{ 'download-dialog.actions.save' | translate }}
</button>
<iqser-icon-button
(action)="save()"
[disabled]="form.invalid"
[label]="'download-dialog.actions.save' | translate"
[submit]="true"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
</div>
<iqser-circle-button (action)="close()" class="dialog-close" icon="iqser:close"></iqser-circle-button>

View File

@ -5,7 +5,7 @@ import { ReportTemplateService } from '@services/report-template.service';
import { AbstractControl, FormBuilder } from '@angular/forms';
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
import { List } from '@iqser/common-ui';
import { IconButtonTypes, List } from '@iqser/common-ui';
export interface DownloadDialogData {
readonly dossier: Dossier;
@ -24,6 +24,7 @@ export interface DownloadDialogResult {
styleUrls: ['./download-dialog.component.scss'],
})
export class DownloadDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly downloadTypes: { key: DownloadFileType; label: string }[] = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(
(type: DownloadFileType) => ({
key: type,

View File

@ -74,7 +74,7 @@ const utils = [DatePipe, NavigateLastDossiersScreenDirective, LongPressDirective
const services = [SharedDialogService];
const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, ReactiveFormsModule, ColorPickerModule];
const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, IqserButtonsModule, ReactiveFormsModule, ColorPickerModule];
@NgModule({
declarations: [...components, ...utils, EditorComponent, DownloadDialogComponent],
@ -86,7 +86,6 @@ const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, Rea
RouterModule,
IqserHelpModeModule,
IqserUsersModule,
IqserButtonsModule,
IqserSharedModule,
IqserScrollbarModule,
IqserPermissionsModule,

View File

@ -5,7 +5,7 @@
></div>
<div class="dialog-content">
<p *ngIf="filename" [innerHTML]="'overwrite-files-dialog.file-question' | translate: { filename: filename }" class="mb-24"></p>
<p *ngIf="filename" [innerHTML]="'overwrite-files-dialog.file-question' | translate : { filename: filename }" class="mb-24"></p>
<p *ngIf="!filename" [innerHTML]="'overwrite-files-dialog.archive-question' | translate" class="mb-24"></p>
<form [formGroup]="form">
@ -40,7 +40,6 @@
<iqser-icon-button
(action)="selectOption(true)"
*ngIf="filename"
[boldText]="true"
[label]="'overwrite-files-dialog.options.all-files' | translate"
[type]="iconButtonTypes.dark"
></iqser-icon-button>

@ -1 +1 @@
Subproject commit 36c74bd8a2a04bcfdf487668910eac386ae2e4eb
Subproject commit 59a71e7ab14c5fa0a276a0c94749b4c2353df4b5