move circle button to common lib

This commit is contained in:
Dan Percic 2021-07-29 20:36:57 +03:00 committed by Timo Bejan
parent 9289d692ef
commit 498fe51e80
103 changed files with 428 additions and 493 deletions

View File

@ -66,13 +66,13 @@
</div>
<div class="menu right flex-2">
<div class="buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openSpotlightSearch()"
*ngIf="!isSearchScreen"
[icon]="'red:search'"
[tooltip]="'search.header-label' | translate"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<redaction-notifications *ngIf="userPreferenceService.areDevFeaturesEnabled"></redaction-notifications>
</div>

View File

@ -47,22 +47,20 @@
</div>
<div class="actions-container">
<div [class.active]="download.inProgress" class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="downloadItem(download)"
*ngIf="download.status === 'READY' && !download.inProgress"
[tooltip]="'downloads-list.actions.download' | translate"
icon="red:download"
type="dark-bg"
>
</redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="deleteItems([download])"
[tooltip]="'downloads-list.actions.delete' | translate"
icon="red:trash"
type="dark-bg"
>
</redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<mat-spinner *ngIf="download.inProgress" diameter="15"></mat-spinner>
</div>
@ -75,11 +73,11 @@
</section>
<ng-template #bulkActions>
<redaction-circle-button
<iqser-circle-button
(action)="deleteItems()"
*ngIf="screenStateService.areSomeEntitiesSelected$ | async"
[tooltip]="'downloads-list.bulk.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</ng-template>

View File

@ -9,6 +9,7 @@ import { ScreenStateService } from '@shared/services/screen-state.service';
import { SortingService } from '@services/sorting.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { TableColConfig } from '@shared/components/table-col-name/table-col-name.component';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-downloads-list-screen',
@ -17,15 +18,16 @@ import { TableColConfig } from '@shared/components/table-col-name/table-col-name
providers: [FilterService, SearchService, ScreenStateService, SortingService]
})
export class DownloadsListScreenComponent extends BaseListingComponent<DownloadStatusWrapper> implements OnInit {
itemSize = 80;
tableColConfigs: TableColConfig[] = [
readonly circleButtonTypes = CircleButtonTypes;
readonly itemSize = 80;
readonly tableColConfigs: TableColConfig[] = [
{ label: _('downloads-list.table-col-names.name') },
{ label: _('downloads-list.table-col-names.size') },
{ label: _('downloads-list.table-col-names.date') },
{ label: _('downloads-list.table-col-names.status') }
];
protected readonly _primaryKey = 'storageId';
protected _tableHeaderLabel = _('downloads-list.table-header.title');
protected readonly _tableHeaderLabel = _('downloads-list.table-header.title');
constructor(
readonly fileDownloadService: FileDownloadService,

View File

@ -1,4 +1,4 @@
<redaction-circle-button [matMenuTriggerFor]="overlay" [showDot]="hasUnread" icon="red:notification"></redaction-circle-button>
<iqser-circle-button [matMenuTriggerFor]="overlay" [showDot]="hasUnread" icon="red:notification"></iqser-circle-button>
<mat-menu #overlay="matMenu" backdropClass="notifications-backdrop" class="notifications-menu" xPosition="before">
<div *ngFor="let group of groupedNotifications | sortBy: 'desc':'dateString'">
<div class="all-caps-label">{{ day(group) }}</div>

View File

@ -5,12 +5,7 @@
<ng-container *ngIf="showActions$ | async as showActions">
<mat-icon class="mr-34" *ngIf="!showActions" [svgIcon]="'red:search'"></mat-icon>
<redaction-circle-button
*ngIf="showActions"
class="mr-24"
(action)="dialogRef.close()"
icon="red:close"
></redaction-circle-button>
<iqser-circle-button *ngIf="showActions" class="mr-24" (action)="dialogRef.close()" icon="red:close"></iqser-circle-button>
</ng-container>
</div>

View File

@ -1,17 +1,17 @@
<div class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openDeleteDossierTemplateDialog($event)"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'dossier-templates-listing.action.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="openEditDossierTemplateDialog($event)"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'dossier-templates-listing.action.edit' | translate"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>

View File

@ -1,7 +1,7 @@
.action-buttons {
display: flex;
redaction-circle-button:not(:last-child) {
iqser-circle-button:not(:last-child) {
margin-right: 2px;
}
}

View File

@ -5,6 +5,7 @@ import { Router } from '@angular/router';
import { AdminDialogService } from '../../services/admin-dialog.service';
import { DossierTemplateControllerService } from '@redaction/red-ui-http';
import { LoadingService } from '@services/loading.service';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-dossier-template-actions',
@ -12,6 +13,8 @@ import { LoadingService } from '@services/loading.service';
styleUrls: ['./dossier-template-actions.component.scss']
})
export class DossierTemplateActionsComponent {
readonly circleButtonTypes = CircleButtonTypes;
@Input() dossierTemplateId: string;
@Output() loadDossierTemplatesData = new EventEmitter<any>();

View File

@ -1,21 +1,21 @@
<div class="collapsed-wrapper">
<redaction-circle-button
<iqser-circle-button
(action)="toggleCollapse.emit()"
[tooltip]="'user-stats.expand' | translate"
icon="red:expand"
tooltipPosition="before"
></redaction-circle-button>
></iqser-circle-button>
<div class="all-caps-label" translate="user-stats.title"></div>
</div>
<div class="header-wrapper mt-8">
<div class="heading-xl flex-1" translate="user-stats.title"></div>
<redaction-circle-button
<iqser-circle-button
(action)="toggleCollapse.emit()"
[tooltip]="'user-stats.collapse' | translate"
icon="red:collapse"
tooltipPosition="before"
></redaction-circle-button>
></iqser-circle-button>
</div>
<div class="mt-44">

View File

@ -7,7 +7,7 @@
max-width: 88%;
}
redaction-circle-button {
iqser-circle-button {
position: absolute;
top: -8px;
left: 270px;

View File

@ -96,5 +96,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -41,5 +41,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -110,7 +110,7 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>
<ng-template #reportTemplateOptionTemplate let-option="option">

View File

@ -60,5 +60,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -13,5 +13,5 @@
[user]="user"
></redaction-reset-password>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -50,7 +50,7 @@
*ngIf="user"
[label]="'add-edit-user.actions.delete' | translate"
icon="red:trash"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
<div class="all-caps-label cancel" mat-dialog-close translate="add-edit-user.actions.cancel"></div>

View File

@ -41,5 +41,5 @@
class="all-caps-label cancel"
></div>
</div>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -39,5 +39,5 @@
class="all-caps-label cancel"
></div>
</div>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -34,5 +34,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -9,19 +9,19 @@
</span>
<ng-container *ngIf="screenStateService.areSomeEntitiesSelected$ | async">
<redaction-circle-button
<iqser-circle-button
[matMenuTriggerFor]="readOnlyMenu"
[tooltip]="'file-attributes-csv-import.table-header.actions.read-only' | translate"
icon="red:read-only"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="deactivateSelection()"
[tooltip]="'file-attributes-csv-import.table-header.actions.remove-selected' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<div class="separator"></div>
@ -104,27 +104,27 @@
<input [(ngModel)]="field.temporaryName" name="name" />
</div>
</form>
<redaction-circle-button
<iqser-circle-button
(action)="field.editingName = true"
*ngIf="!field.editingName"
[tooltip]="'file-attributes-csv-import.action.edit-name' | translate"
class="edit-name-button"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<ng-container *ngIf="field.editingName">
<redaction-circle-button
<iqser-circle-button
(action)="field.editingName = false; field.name = field.temporaryName"
[tooltip]="'file-attributes-csv-import.action.save-name' | translate"
icon="red:check"
type="dark-bg"
></redaction-circle-button>
<redaction-circle-button
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<iqser-circle-button
(action)="field.editingName = false; field.temporaryName = field.name"
[tooltip]="'file-attributes-csv-import.action.cancel-edit-name' | translate"
icon="red:close"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</ng-container>
</div>
<div>
@ -146,13 +146,13 @@
</div>
<div class="actions-container">
<div class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="field.primaryAttribute = false; toggleFieldActive.emit(field)"
[removeTooltip]="true"
[tooltip]="'file-attributes-csv-import.action.remove' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
<div class="scrollbar-placeholder"></div>

View File

@ -19,7 +19,7 @@ redaction-table-col-name::ng-deep {
margin-right: 10px;
}
redaction-circle-button {
iqser-circle-button {
margin-right: 2px;
}
@ -63,7 +63,7 @@ cdk-virtual-scroll-viewport {
display: none;
}
redaction-circle-button:first-of-type {
iqser-circle-button:first-of-type {
margin-left: 7px;
margin-right: 2px;
}

View File

@ -7,6 +7,7 @@ import { ScreenStateService } from '@shared/services/screen-state.service';
import { SortingService } from '@services/sorting.service';
import { BaseListingComponent } from '@shared/base/base-listing.component';
import { fileAttributeTypesTranslations } from '../../../translations/file-attribute-types-translations';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-active-fields-listing',
@ -15,11 +16,13 @@ import { fileAttributeTypesTranslations } from '../../../translations/file-attri
providers: [FilterService, SearchService, ScreenStateService, SortingService]
})
export class ActiveFieldsListingComponent extends BaseListingComponent<Field> implements OnChanges {
readonly circleButtonTypes = CircleButtonTypes;
readonly translations = fileAttributeTypesTranslations;
@Input() entities: Field[];
@Output() entitiesChange = new EventEmitter<Field[]>();
@Output() setHoveredColumn = new EventEmitter<string>();
@Output() toggleFieldActive = new EventEmitter<Field>();
translations = fileAttributeTypesTranslations;
readonly typeOptions = [FileAttributeConfig.TypeEnum.TEXT, FileAttributeConfig.TypeEnum.NUMBER, FileAttributeConfig.TypeEnum.DATE];
protected readonly _primaryKey = 'csvColumn';

View File

@ -48,12 +48,12 @@
type="text"
/>
</div>
<redaction-circle-button
<iqser-circle-button
(action)="readFile()"
*ngIf="changedParseConfig"
[tooltip]="'file-attributes-csv-import.parse-csv' | translate"
icon="red:check"
></redaction-circle-button>
></iqser-circle-button>
</form>
</div>
</div>
@ -69,11 +69,11 @@
}}</span>
</div>
<div class="actions">
<redaction-circle-button
<iqser-circle-button
(click)="isSearchOpen = !isSearchOpen"
[attr.aria-expanded]="isSearchOpen"
icon="red:search"
></redaction-circle-button>
></iqser-circle-button>
<div class="quick-activation">
<span
(click)="activateAll()"
@ -127,10 +127,10 @@
>
<div class="csv-part-header">
<div [translate]="'file-attributes-csv-import.csv-column'" class="all-caps-label"></div>
<redaction-circle-button
<iqser-circle-button
(click)="previewExpanded = !previewExpanded"
[icon]="previewExpanded ? 'red:expand' : 'red:collapse'"
></redaction-circle-button>
></iqser-circle-button>
</div>
<div [class.hidden]="!previewExpanded" class="csv-part-content">
<div *ngIf="!hoveredColumn" class="no-column-data" translate="file-attributes-csv-import.no-hovered-column"></div>
@ -162,5 +162,5 @@
</div>
</div>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -37,7 +37,7 @@
margin: 0 8px;
}
redaction-circle-button {
iqser-circle-button {
margin-left: 8px;
}
}
@ -174,7 +174,7 @@
background: $grey-2;
border-right: 1px solid $separator;
&:not(.collapsed) redaction-circle-button {
&:not(.collapsed) iqser-circle-button {
margin-right: -8px;
}

View File

@ -27,5 +27,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -8,14 +8,14 @@
<div class="breadcrumb" translate="audit"></div>
<div class="actions">
<redaction-circle-button
<iqser-circle-button
*ngIf="permissionsService.isUser()"
[tooltip]="'common.close' | translate"
class="ml-6"
icon="red:close"
redactionNavigateLastDossiersScreen
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
<div class="red-content-inner">

View File

@ -5,12 +5,12 @@
<div class="flex-1 actions">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -55,13 +55,13 @@
<div class="actions-container">
<div class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openEditColorDialog($event, color)"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'default-colors-screen.action.edit' | translate"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
<div class="scrollbar-placeholder"></div>

View File

@ -12,6 +12,7 @@ import { BaseListingComponent } from '@shared/base/base-listing.component';
import { DefaultColorType } from '@models/default-color-key.model';
import { SortingService } from '@services/sorting.service';
import { defaultColorsTranslations } from '../../translations/default-colors-translations';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
templateUrl: './default-colors-screen.component.html',
@ -26,7 +27,8 @@ export class DefaultColorsScreenComponent
}>
implements OnInit
{
translations = defaultColorsTranslations;
readonly circleButtonTypes = CircleButtonTypes;
readonly translations = defaultColorsTranslations;
protected readonly _primaryKey = 'key';
private _colorsObj: Colors;

View File

@ -5,12 +5,12 @@
<div class="flex-1 actions">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -31,13 +31,13 @@
{{ 'dictionary-listing.table-header.title' | translate: { length: (screenStateService.displayedLength$ | async) } }}
</span>
<redaction-circle-button
<iqser-circle-button
(action)="openDeleteDictionariesDialog($event)"
*ngIf="canBulkDelete$(permissionsService.isAdmin()) | async"
[tooltip]="'dictionary-listing.bulk.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<div class="attributes-actions-container">
<redaction-input-with-action
@ -134,19 +134,19 @@
<div class="actions-container">
<div *ngIf="permissionsService.isAdmin()" class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openDeleteDictionariesDialog($event, [dict])"
[tooltip]="'dictionary-listing.action.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="openAddEditDictionaryDialog($event, dict)"
[tooltip]="'dictionary-listing.action.edit' | translate"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
<div class="scrollbar-placeholder"></div>

View File

@ -15,7 +15,7 @@ import { ScreenStateService } from '@shared/services/screen-state.service';
import { SortingService } from '@services/sorting.service';
import { BaseListingComponent } from '@shared/base/base-listing.component';
import { AdminDialogService } from '../../services/admin-dialog.service';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
const toChartConfig = (dict: TypeValueWrapper): DoughnutChartConfig => ({
value: dict.entries?.length ?? 0,
@ -31,6 +31,7 @@ const toChartConfig = (dict: TypeValueWrapper): DoughnutChartConfig => ({
})
export class DictionaryListingScreenComponent extends BaseListingComponent<TypeValueWrapper> implements OnInit {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
chartData: DoughnutChartConfig[] = [];

View File

@ -3,48 +3,48 @@
<redaction-admin-breadcrumbs></redaction-admin-breadcrumbs>
<div class="actions">
<redaction-circle-button
<iqser-circle-button
(action)="openDeleteDictionaryDialog($event)"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'dictionary-overview.action.delete' | translate"
icon="red:trash"
tooltipPosition="below"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="openEditDictionaryDialog($event)"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'dictionary-overview.action.edit' | translate"
icon="red:edit"
tooltipPosition="below"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="download()"
[tooltip]="'dictionary-overview.action.download' | translate"
icon="red:download"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="fileInput.click()"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'dictionary-overview.action.upload' | translate"
icon="red:upload"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<input #fileInput (change)="upload($event)" accept="text/plain" class="file-upload-input" hidden type="file" />
<redaction-circle-button
<iqser-circle-button
[routerLink]="['..']"
[tooltip]="'common.close' | translate"
class="ml-6"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -11,13 +11,15 @@ import { DictionaryManagerComponent } from '@shared/components/dictionary-manage
import { DictionarySaveService } from '@shared/services/dictionary-save.service';
import { TypeValueWrapper } from '@models/file/type-value.wrapper';
import { LoadingService } from '@services/loading.service';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-dictionary-overview-screen',
templateUrl: './dictionary-overview-screen.component.html',
styleUrls: ['./dictionary-overview-screen.component.scss']
})
export class DictionaryOverviewScreenComponent extends ComponentHasChanges implements OnInit {
readonly circleButtonTypes = CircleButtonTypes;
entries: string[] = [];
@ViewChild('dictionaryManager', { static: false })

View File

@ -5,12 +5,12 @@
<div class="actions flex-1">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -34,13 +34,13 @@
}}
</span>
<redaction-circle-button
<iqser-circle-button
(action)="openConfirmDeleteAttributeDialog($event)"
*ngIf="permissionsService.isAdmin() && screenStateService.areSomeEntitiesSelected$ | async"
[tooltip]="'dossier-attributes-listing.bulk.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<div class="attributes-actions-container">
<redaction-input-with-action
@ -118,19 +118,19 @@
</div>
<div class="actions-container">
<div *ngIf="permissionsService.isAdmin()" class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openAddEditAttributeDialog($event, attribute)"
[tooltip]="'dossier-attributes-listing.action.edit' | translate"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="openConfirmDeleteAttributeDialog($event, attribute)"
[tooltip]="'dossier-attributes-listing.action.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
<div class="scrollbar-placeholder"></div>

View File

@ -12,7 +12,7 @@ import { ScreenStateService } from '@shared/services/screen-state.service';
import { PermissionsService } from '@services/permissions.service';
import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service';
import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
@Component({
templateUrl: './dossier-attributes-listing-screen.component.html',
@ -21,6 +21,7 @@ import { IconButtonTypes } from '@iqser/common-ui';
})
export class DossierAttributesListingScreenComponent extends BaseListingComponent<DossierAttributeConfig> implements OnInit {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
readonly translations = dossierAttributeTypesTranslations;
protected readonly _primaryKey = 'label';

View File

@ -25,13 +25,13 @@
}}
</span>
<redaction-circle-button
<iqser-circle-button
(action)="openDeleteTemplatesDialog($event)"
*ngIf="canBulkDelete$(permissionsService.isAdmin()) | async"
[tooltip]="'dossier-templates-listing.bulk.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<div class="actions flex-1">
<redaction-input-with-action

View File

@ -11,7 +11,7 @@ import { SearchService } from '@shared/services/search.service';
import { ScreenStateService } from '@shared/services/screen-state.service';
import { BaseListingComponent } from '@shared/base/base-listing.component';
import { SortingService } from '@services/sorting.service';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
@Component({
templateUrl: './dossier-templates-listing-screen.component.html',
@ -21,6 +21,7 @@ import { IconButtonTypes } from '@iqser/common-ui';
})
export class DossierTemplatesListingScreenComponent extends BaseListingComponent<DossierTemplateModelWrapper> implements OnInit {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
protected readonly _primaryKey = 'name';
constructor(

View File

@ -5,12 +5,12 @@
<div class="actions flex-1">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -33,13 +33,13 @@
}}
</span>
<redaction-circle-button
<iqser-circle-button
(click)="openConfirmDeleteAttributeDialog($event)"
*ngIf="canBulkDelete$(permissionsService.isAdmin()) | async"
[tooltip]="'file-attributes-listing.bulk-actions.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<div class="attributes-actions-container">
<redaction-input-with-action
@ -49,14 +49,14 @@
></redaction-input-with-action>
<input #fileInput (change)="importCSV($event.target['files'])" accept=".csv" class="csv-input" type="file" />
<redaction-circle-button
<iqser-circle-button
(action)="fileInput.click()"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'file-attributes-listing.upload-csv' | translate"
icon="red:upload"
tooltipPosition="above"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<iqser-icon-button
(action)="openAddEditAttributeDialog($event)"
@ -146,20 +146,18 @@
</div>
<div class="actions-container">
<div *ngIf="permissionsService.isAdmin()" class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openAddEditAttributeDialog($event, attribute)"
[tooltip]="'file-attributes-listing.action.edit' | translate"
icon="red:edit"
type="dark-bg"
>
</redaction-circle-button>
<redaction-circle-button
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<iqser-circle-button
(action)="openConfirmDeleteAttributeDialog($event, attribute)"
[tooltip]="'file-attributes-listing.action.delete' | translate"
icon="red:trash"
type="dark-bg"
>
</redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
<div class="scrollbar-placeholder"></div>

View File

@ -11,7 +11,7 @@ import { ScreenStateService } from '@shared/services/screen-state.service';
import { SortingService } from '@services/sorting.service';
import { BaseListingComponent } from '@shared/base/base-listing.component';
import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
@Component({
templateUrl: './file-attributes-listing-screen.component.html',
@ -21,6 +21,7 @@ import { IconButtonTypes } from '@iqser/common-ui';
})
export class FileAttributesListingScreenComponent extends BaseListingComponent<FileAttributeConfig> implements OnInit, OnDestroy {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
readonly translations = fileAttributeTypesTranslations;
protected readonly _primaryKey = 'label';
private _existingConfiguration: FileAttributesConfig;

View File

@ -8,14 +8,14 @@
<div class="breadcrumb" translate="configurations"></div>
<div class="actions">
<redaction-circle-button
<iqser-circle-button
*ngIf="permissionsService.isUser()"
class="ml-6"
icon="red:close"
redactionNavigateLastDossiersScreen
tooltip="common.close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -168,7 +168,7 @@
(action)="testConnection()"
[disabled]="smtpForm.invalid"
[label]="'general-config-screen.actions.test-connection' | translate"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
</div>
</form>

View File

@ -5,12 +5,12 @@
<div class="actions flex-1">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -44,12 +44,12 @@
<div class="right-container" redactionHasScrollbar>
<div class="header">
<div class="heading" translate="reports-screen.report-documents"></div>
<redaction-circle-button
<iqser-circle-button
(action)="fileInput.click()"
*ngIf="permissionsService.isAdmin()"
[tooltip]="'reports-screen.upload-document' | translate"
icon="red:upload"
></redaction-circle-button>
></iqser-circle-button>
</div>
<div
@ -63,19 +63,19 @@
<div class="name">{{ template.fileName }}</div>
<div class="actions">
<redaction-circle-button
<iqser-circle-button
(action)="download(template)"
[iconSize]="12"
[size]="18"
icon="red:download"
></redaction-circle-button>
<redaction-circle-button
></iqser-circle-button>
<iqser-circle-button
(action)="deleteTemplate(template)"
*ngIf="permissionsService.isAdmin()"
[iconSize]="12"
[size]="18"
icon="red:trash"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
</div>

View File

@ -5,12 +5,12 @@
<div class="flex-1 actions">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -16,21 +16,21 @@
{{ 'trash.table-header.title' | translate: { length: (screenStateService.displayedLength$ | async) } }}
</span>
<redaction-circle-button
<iqser-circle-button
(action)="bulkRestore()"
*ngIf="screenStateService.areSomeEntitiesSelected$ | async"
[tooltip]="'trash.bulk.restore' | translate"
icon="red:put-back"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="bulkDelete()"
*ngIf="screenStateService.areSomeEntitiesSelected$ | async"
[tooltip]="'trash.bulk.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
<div [class.no-data]="screenStateService.noData$ | async" class="table-header" redactionSyncWidth="table-item">
@ -105,20 +105,20 @@
{{ getRestoreDate(entity.softDeletedTime) | date: 'timeFromNow' }}
</div>
<div class="action-buttons">
<redaction-circle-button
<iqser-circle-button
*ngIf="canRestore(entity.softDeletedTime)"
(action)="bulkRestore([entity.dossierId])"
[tooltip]="'trash.action.restore' | translate"
icon="red:put-back"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="bulkDelete([entity.dossierId])"
[tooltip]="'trash.action.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>

View File

@ -4,7 +4,7 @@
.header-item {
padding: 0 24px 0 10px;
redaction-circle-button:not(:last-child) {
iqser-circle-button:not(:last-child) {
margin-right: 4px !important;
}
}

View File

@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Injector, OnInit } from '@angular/c
import { PermissionsService } from '@services/permissions.service';
import { Dossier } from '@redaction/red-ui-http';
import { LoadingService } from '@services/loading.service';
import { AppConfigKey, AppConfigService } from '../../../app-config/app-config.service';
import { AppConfigKey, AppConfigService } from '@app-config/app-config.service';
import * as moment from 'moment';
import { FilterService } from '@shared/services/filter.service';
import { SearchService } from '@shared/services/search.service';
@ -10,6 +10,7 @@ import { ScreenStateService } from '@shared/services/screen-state.service';
import { SortingService } from '@services/sorting.service';
import { BaseListingComponent } from '@shared/base/base-listing.component';
import { DossiersService } from '../../../dossier/services/dossiers.service';
import { CircleButtonTypes } from '@iqser/common-ui';
const HOURS_IN_A_DAY = 24;
const MINUTES_IN_AN_HOUR = 60;
@ -21,6 +22,7 @@ const MINUTES_IN_AN_HOUR = 60;
providers: [FilterService, SearchService, ScreenStateService, SortingService, DossiersService]
})
export class TrashScreenComponent extends BaseListingComponent<Dossier> implements OnInit {
readonly circleButtonTypes = CircleButtonTypes;
readonly itemSize = 80;
protected readonly _primaryKey = 'dossierName';
private readonly _deleteRetentionHours = this._appConfigService.getConfig(AppConfigKey.DELETE_RETENTION_HOURS);

View File

@ -20,14 +20,14 @@
icon="red:plus"
[type]="iconButtonTypes.primary"
></iqser-icon-button>
<redaction-circle-button
<iqser-circle-button
*ngIf="permissionsService.isUser()"
[tooltip]="'common.close' | translate"
class="ml-6"
icon="red:close"
redactionNavigateLastDossiersScreen
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
@ -44,7 +44,7 @@
{{ 'user-listing.table-header.title' | translate: { length: (screenStateService.displayedLength$ | async) } }}
</span>
<redaction-circle-button
<iqser-circle-button
(action)="bulkDelete()"
*ngIf="screenStateService.areSomeEntitiesSelected$ | async"
[disabled]="(canDeleteSelected$ | async) === false"
@ -55,8 +55,8 @@
"
icon="red:trash"
tooltipPosition="after"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
<div class="table-header" redactionSyncWidth="table-item">
@ -104,19 +104,19 @@
<div class="small-label">{{ getDisplayRoles(user) }}</div>
<div class="actions-container">
<div class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openAddEditUserDialog($event, user)"
[tooltip]="'user-listing.action.edit' | translate"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
<redaction-circle-button
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<iqser-circle-button
(action)="openDeleteUsersDialog([user], $event)"
[disabled]="user.userId === userService.userId"
[tooltip]="'user-listing.action.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
<div class="scrollbar-placeholder"></div>

View File

@ -16,7 +16,7 @@ import { BaseListingComponent } from '@shared/base/base-listing.component';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { rolesTranslations } from '../../../../translations/roles-translations';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
@Component({
templateUrl: './user-listing-screen.component.html',
@ -25,6 +25,7 @@ import { IconButtonTypes } from '@iqser/common-ui';
})
export class UserListingScreenComponent extends BaseListingComponent<User> implements OnInit {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
readonly canDeleteSelected$ = this._canDeleteSelected$;
collapsedDetails = false;
chartData: DoughnutChartConfig[] = [];

View File

@ -5,12 +5,12 @@
<div class="actions flex-1">
<redaction-dossier-template-actions></redaction-dossier-template-actions>
<redaction-circle-button
<iqser-circle-button
[routerLink]="['../..']"
[tooltip]="'common.close' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -1,118 +1,118 @@
<div *ngIf="canPerformAnnotationActions" [class.always-visible]="alwaysVisible" class="annotation-actions">
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.changeLegalBasis($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canChangeLegalBasis"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.edit-reason.label' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:edit"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.convertRecommendationToAnnotation($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canAcceptRecommendation"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.accept-recommendation.label' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:check"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.acceptSuggestion($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canAcceptSuggestion"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.accept-suggestion.label' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:check"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.undoDirectAction($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canUndo"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.undo' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:undo"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.rejectSuggestion($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canRejectSuggestion"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.reject-suggestion' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:trash"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.recategorizeImage($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canRecategorizeImage"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.recategorize-image' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:thumb-down"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.markAsFalsePositive($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canMarkTextOnlyAsFalsePositive && !annotationPermissions.canPerformMultipleRemoveActions"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.remove-annotation.false-positive' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:thumb-down"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="annotationActionsService.forceRedaction($event, annotations, annotationsChanged)"
*ngIf="annotationPermissions.canForceRedaction"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.force-redaction.label' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:thumb-up"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="hideAnnotation($event)"
*ngIf="isImage && isVisible"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.hide' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:visibility-off"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="showAnnotation($event)"
*ngIf="isImage && !isVisible"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.show' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:visibility"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="suggestRemoveAnnotations($event, true)"
*ngIf="annotationPermissions.canRemoveOrSuggestToRemoveFromDictionary"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.remove-annotation.remove-from-dict' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:remove-from-dict"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="markAsFalsePositive($event)"
*ngIf="annotationPermissions.canMarkAsFalsePositive"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.remove-annotation.false-positive' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:thumb-down"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="suggestRemoveAnnotations($event, false)"
*ngIf="annotationPermissions.canRemoveOrSuggestToRemoveOnlyHere"
[tooltipPosition]="tooltipPosition"
[tooltip]="'annotation-actions.remove-annotation.only-here' | translate"
[type]="btnType"
[type]="buttonType"
icon="red:trash"
></redaction-circle-button>
></iqser-circle-button>
</div>

View File

@ -3,7 +3,7 @@
.annotation-actions {
display: none;
redaction-circle-button {
iqser-circle-button {
display: block;
}

View File

@ -6,13 +6,20 @@ import { AnnotationPermissions } from '@models/file/annotation.permissions';
import { AnnotationActionsService } from '../../services/annotation-actions.service';
import { WebViewerInstance } from '@pdftron/webviewer';
export const AnnotationButtonTypes = {
dark: 'dark',
primary: 'primary'
} as const;
export type AnnotationButtonType = keyof typeof AnnotationButtonTypes;
@Component({
selector: 'redaction-annotation-actions',
templateUrl: './annotation-actions.component.html',
styleUrls: ['./annotation-actions.component.scss']
})
export class AnnotationActionsComponent implements OnInit {
@Input() btnType: 'dark-bg' | 'primary' = 'dark-bg';
@Input() buttonType: AnnotationButtonType = AnnotationButtonTypes.dark;
@Input() tooltipPosition: 'before' | 'above' = 'before';
@Input() canPerformAnnotationActions: boolean;
@Input() viewer: WebViewerInstance;

View File

@ -1,78 +1,78 @@
<ng-container *ngIf="areSomeFilesSelected">
<redaction-circle-button
<iqser-circle-button
(action)="delete()"
*ngIf="canDelete"
[tooltip]="'dossier-overview.bulk.delete' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="assign()"
*ngIf="canAssign"
[tooltip]="assignTooltip"
icon="red:assign"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="assignToMe()"
*ngIf="canAssignToSelf"
[tooltip]="'dossier-overview.assign-me' | translate"
icon="red:assign-me"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="setToUnderApproval()"
*ngIf="canSetToUnderApproval"
[tooltip]="'dossier-overview.under-approval' | translate"
icon="red:ready-for-approval"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="setToUnderReview()"
*ngIf="canSetToUnderReview"
[tooltip]="'dossier-overview.under-review' | translate"
icon="red:undo"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-file-download-btn [dossier]="dossier" [file]="selectedFiles"></redaction-file-download-btn>
<!-- Approved-->
<redaction-circle-button
<iqser-circle-button
(action)="approveDocuments()"
*ngIf="isReadyForApproval"
[disabled]="!canApprove"
[tooltip]="canApprove ? ('dossier-overview.approve' | translate) : ('dossier-overview.approve-disabled' | translate)"
icon="red:approved"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<!-- Back to approval -->
<redaction-circle-button
<iqser-circle-button
(action)="setToUnderApproval()"
*ngIf="canUndoApproval"
[tooltip]="'dossier-overview.under-approval' | translate"
icon="red:undo"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="ocr()"
*ngIf="canOcr"
[tooltip]="'dossier-overview.ocr-file' | translate"
icon="red:ocr"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="reanalyse()"
*ngIf="canReanalyse"
[tooltip]="'dossier-overview.bulk.reanalyse' | translate"
icon="red:refresh"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</ng-container>

View File

@ -11,6 +11,7 @@ import { ConfirmationDialogInput } from '@shared/dialogs/confirmation-dialog/con
import { ScreenStateService } from '@shared/services/screen-state.service';
import { TranslateService } from '@ngx-translate/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-dossier-overview-bulk-actions',
@ -18,6 +19,8 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
styleUrls: ['./dossier-overview-bulk-actions.component.scss']
})
export class DossierOverviewBulkActionsComponent {
readonly circleButtonTypes = CircleButtonTypes;
@Output()
reload = new EventEmitter();

View File

@ -5,14 +5,14 @@
<div>{{ comment.date | date: 'd MMM. yyyy, hh:mm a' }}</div>
</div>
<div class="comment-actions">
<redaction-circle-button
<iqser-circle-button
(action)="deleteComment(comment)"
*ngIf="permissionsService.canDeleteComment(comment)"
[iconSize]="10"
[size]="20"
class="pointer"
icon="red:trash"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
<div>{{ comment.text }}</div>

View File

@ -1,17 +1,17 @@
<div class="right-title heading" translate="file-preview.tabs.document-info.label">
<div>
<redaction-circle-button
<iqser-circle-button
(action)="edit()"
[tooltip]="'file-preview.tabs.document-info.edit' | translate"
icon="red:edit"
tooltipPosition="before"
></redaction-circle-button>
<redaction-circle-button
></iqser-circle-button>
<iqser-circle-button
(action)="closeDocumentInfoView.emit()"
[tooltip]="'file-preview.tabs.document-info.close' | translate"
icon="red:close"
tooltipPosition="before"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -28,7 +28,7 @@
.right-title > div {
display: flex;
> redaction-circle-button:not(:last-child) {
> iqser-circle-button:not(:last-child) {
margin-right: 2px;
}
}

View File

@ -17,14 +17,14 @@
<ng-container *ngIf="!editingOwner; else editOwner">
<redaction-initials-avatar [userId]="owner.userId" [withName]="true" color="gray" size="large"></redaction-initials-avatar>
<redaction-circle-button
<iqser-circle-button
(action)="editingOwner = true"
*ngIf="permissionsService.isManager()"
[tooltip]="'dossier-details.edit-owner' | translate"
class="ml-14"
icon="red:edit"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</ng-container>
</div>
</div>
@ -81,10 +81,10 @@
</ng-template>
<ng-template #collapsible let-action="action" let-tooltip="tooltip">
<redaction-circle-button
<iqser-circle-button
(action)="toggleCollapse.emit()"
[icon]="'red:' + action"
[tooltip]="tooltip"
tooltipPosition="before"
></redaction-circle-button>
></iqser-circle-button>
</ng-template>

View File

@ -9,7 +9,7 @@
max-width: 88%;
}
redaction-circle-button {
iqser-circle-button {
position: absolute;
top: -8px;
left: 290px;

View File

@ -1,20 +1,20 @@
<redaction-status-bar [config]="getDossierStatusConfig(dossier)"></redaction-status-bar>
<div [class.active]="actionMenuOpen" class="action-buttons">
<redaction-circle-button
<iqser-circle-button
(action)="openEditDossierDialog($event, dossier)"
*ngIf="permissionsService.isManager()"
[tooltip]="'dossier-listing.edit.action' | translate"
icon="red:edit"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="reanalyseDossier($event, dossier)"
*ngIf="permissionsService.displayReanalyseBtn(dossier)"
[tooltip]="'dossier-listing.reanalyse.action' | translate"
icon="red:refresh"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<redaction-file-download-btn [dossier]="dossier" [file]="dossier.files" type="dark-bg"></redaction-file-download-btn>
<redaction-file-download-btn [dossier]="dossier" [file]="dossier.files" [type]="circleButtonTypes.dark"></redaction-file-download-btn>
</div>

View File

@ -4,6 +4,7 @@ import { DossierWrapper } from '@state/model/dossier.wrapper';
import { StatusSorter } from '@utils/sorters/status-sorter';
import { AppStateService } from '@state/app-state.service';
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-dossier-listing-actions',
@ -11,6 +12,8 @@ import { DossiersDialogService } from '../../services/dossiers-dialog.service';
styleUrls: ['./dossier-listing-actions.component.scss']
})
export class DossierListingActionsComponent {
readonly circleButtonTypes = CircleButtonTypes;
@Input() dossier: DossierWrapper;
@Output() actionPerformed = new EventEmitter<DossierWrapper | undefined>();
actionMenuOpen = false;

View File

@ -10,32 +10,32 @@
<ng-template #actions>
<div class="file-actions" *ngIf="fileStatus">
<!-- delete-->
<redaction-circle-button
<iqser-circle-button
(action)="openDeleteFileDialog($event)"
*ngIf="permissionsService.canDeleteFile(fileStatus)"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.delete.action' | translate"
[type]="buttonType"
icon="red:trash"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="assign($event)"
*ngIf="canAssign && screen === 'dossier-overview'"
[tooltipPosition]="tooltipPosition"
[tooltip]="assignTooltip"
[type]="buttonType"
icon="red:assign"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="assignToMe($event)"
*ngIf="canAssignToSelf && screen === 'dossier-overview'"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.assign-me' | translate"
[type]="buttonType"
icon="red:assign-me"
></redaction-circle-button>
></iqser-circle-button>
<!-- download redacted file-->
<redaction-file-download-btn
@ -46,16 +46,16 @@
[type]="buttonType"
></redaction-file-download-btn>
<redaction-circle-button
<iqser-circle-button
(action)="toggleViewDocumentInfo()"
*ngIf="screen === 'file-preview'"
[attr.aria-expanded]="activeDocumentInfo"
[tooltip]="'file-preview.document-info' | translate"
icon="red:status-info"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="toggleExcludePages()"
*ngIf="screen === 'file-preview'"
[attr.aria-expanded]="activeExcludePages"
@ -63,30 +63,30 @@
[tooltip]="'file-preview.exclude-pages' | translate"
icon="red:exclude-pages"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<!-- Ready for approval-->
<redaction-circle-button
<iqser-circle-button
(action)="setFileUnderApproval($event)"
*ngIf="canSetToUnderApproval"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.under-approval' | translate"
[type]="buttonType"
icon="red:ready-for-approval"
></redaction-circle-button>
></iqser-circle-button>
<!-- Back to review -->
<redaction-circle-button
<iqser-circle-button
(action)="setFileUnderReview($event, true)"
*ngIf="canSetToUnderReview"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.under-review' | translate"
[type]="buttonType"
icon="red:undo"
></redaction-circle-button>
></iqser-circle-button>
<!-- Approved-->
<redaction-circle-button
<iqser-circle-button
(action)="setFileApproved($event)"
*ngIf="permissionsService.isReadyForApproval(fileStatus)"
[disabled]="!permissionsService.canApprove(fileStatus)"
@ -98,47 +98,47 @@
"
[type]="buttonType"
icon="red:approved"
></redaction-circle-button>
></iqser-circle-button>
<!-- Back to approval -->
<redaction-circle-button
<iqser-circle-button
(action)="setFileUnderApproval($event)"
*ngIf="canUndoApproval"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.under-approval' | translate"
[type]="buttonType"
icon="red:undo"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="ocrFile($event)"
*ngIf="canOcr"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.ocr-file' | translate"
[type]="buttonType"
icon="red:ocr"
></redaction-circle-button>
></iqser-circle-button>
<!-- reanalyse file preview -->
<redaction-circle-button
<iqser-circle-button
(action)="reanalyseFile($event)"
*ngIf="canReanalyse && screen === 'file-preview'"
[tooltip]="'file-preview.reanalyse-notification' | translate"
icon="red:refresh"
tooltipClass="warn small"
tooltipPosition="below"
type="warn"
></redaction-circle-button>
[type]="circleButtonTypes.warn"
></iqser-circle-button>
<!-- reanalyse file listing -->
<redaction-circle-button
<iqser-circle-button
(action)="reanalyseFile($event)"
*ngIf="canReanalyse && screen === 'dossier-overview'"
[tooltipPosition]="tooltipPosition"
[tooltip]="'dossier-overview.reanalyse.action' | translate"
icon="red:refresh"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<!-- exclude from redaction -->
<div class="red-input-group">

View File

@ -9,6 +9,7 @@ import { LoadingService } from '@services/loading.service';
import { FileManagementControllerService } from '@redaction/red-ui-http';
import { TranslateService } from '@ngx-translate/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-file-actions',
@ -16,6 +17,8 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
styleUrls: ['./file-actions.component.scss']
})
export class FileActionsComponent implements OnInit {
readonly circleButtonTypes = CircleButtonTypes;
@Input() fileStatus: FileStatusWrapper;
@Input() activeDocumentInfo: boolean;
@Input() activeExcludePages: boolean;
@ -43,7 +46,7 @@ export class FileActionsComponent implements OnInit {
}
get buttonType() {
return this.screen === 'file-preview' ? 'default' : 'dark-bg';
return this.screen === 'file-preview' ? CircleButtonTypes.default : CircleButtonTypes.dark;
}
get toggleTooltip(): string {

View File

@ -17,12 +17,12 @@
</div>
<div *ngIf="excludePages" class="right-title heading" translate="file-preview.tabs.exclude-pages.label">
<div>
<redaction-circle-button
<iqser-circle-button
(action)="actionPerformed.emit('view-exclude-pages')"
[tooltip]="'file-preview.tabs.exclude-pages.close' | translate"
icon="red:close"
tooltipPosition="before"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>
<div class="right-content">
@ -51,11 +51,11 @@
[annotations]="selectedAnnotations"
[canPerformAnnotationActions]="!isReadOnly"
[viewer]="viewer"
btnType="primary"
buttonType="primary"
tooltipPosition="above"
></redaction-annotation-actions>
</div>
<redaction-circle-button (action)="multiSelectActive = false" icon="red:close" type="primary"></redaction-circle-button>
<iqser-circle-button (action)="multiSelectActive = false" icon="red:close" [type]="circleButtonTypes.primary"></iqser-circle-button>
</div>
<div [class.lower-height]="multiSelectActive || isReadOnly" class="annotations-wrapper">
<div
@ -152,7 +152,7 @@
[disabled]="activeViewerPage <= displayedPages[0]"
[label]="'file-preview.tabs.annotations.jump-to-previous' | translate"
icon="red:nav-prev"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
<iqser-icon-button
(action)="jumpToNextWithAnnotations()"
@ -160,7 +160,7 @@
[label]="'file-preview.tabs.annotations.jump-to-next' | translate"
class="mt-8"
icon="red:nav-next"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
</div>
</ng-container>
@ -244,10 +244,10 @@
</ng-template>
<ng-template #annotationFilterActionTemplate let-filter="filter">
<redaction-circle-button
<iqser-circle-button
(action)="toggleSkipped.emit($event)"
*ngIf="filter.key === 'skipped'"
[icon]="hideSkipped ? 'red:visibility-off' : 'red:visibility'"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</ng-template>

View File

@ -21,7 +21,7 @@ import { FilterModel } from '@shared/components/filters/popup-filter/model/filte
import { CommentsComponent } from '../comments/comments.component';
import { PermissionsService } from '@services/permissions.service';
import { WebViewerInstance } from '@pdftron/webviewer';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
const COMMAND_KEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Escape'];
const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
@ -33,6 +33,7 @@ const ALL_HOTKEY_ARRAY = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];
})
export class FileWorkloadComponent {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
displayedAnnotations: { [key: number]: { annotations: AnnotationWrapper[] } } = {};
@Input() selectedAnnotations: AnnotationWrapper[];

View File

@ -21,12 +21,12 @@
{{ range.startPage }}
</ng-container>
<ng-container *ngIf="range.startPage !== range.endPage"> {{ range.startPage }} -{{ range.endPage }} </ng-container>
<redaction-circle-button
<iqser-circle-button
(action)="includePagesRange(range)"
*ngIf="permissionsService.canExcludePages()"
[tooltip]="'file-preview.tabs.exclude-pages.put-back' | translate"
icon="red:undo"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -29,14 +29,14 @@
justify-content: space-between;
height: 50px;
redaction-circle-button {
iqser-circle-button {
display: none;
}
&:hover {
background-color: $grey-8;
redaction-circle-button {
iqser-circle-button {
display: initial;
}
}

View File

@ -14,7 +14,7 @@
<div *ngIf="overflowCount && !expandedTeam" [class.large-spacing]="largeSpacing" class="member pointer">
<div (click)="toggleExpandedTeam()" class="oval large white-dark">+{{ overflowCount }}</div>
</div>
<redaction-circle-button
<iqser-circle-button
(action)="openAssignDossierMembersDialog.emit()"
*ngIf="permissionsService.isManager() && canAdd"
[class.large-spacing]="largeSpacing"
@ -22,8 +22,7 @@
[tooltip]="'dossier-details.assign-members' | translate"
class="member"
icon="red:plus"
type="primary"
>
</redaction-circle-button>
[type]="circleButtonTypes.primary"
></iqser-circle-button>
</div>
<div (click)="toggleExpandedTeam()" *ngIf="expandedTeam" class="all-caps-label see-less pointer" translate="dossier-details.see-less"></div>

View File

@ -1,5 +1,6 @@
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { PermissionsService } from '@services/permissions.service';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-team-members',
@ -7,6 +8,8 @@ import { PermissionsService } from '@services/permissions.service';
styleUrls: ['./team-members.component.scss']
})
export class TeamMembersComponent {
readonly circleButtonTypes = CircleButtonTypes;
@Input() memberIds: string[];
@Input() perLine: number;
@Input() canAdd = true;

View File

@ -87,12 +87,12 @@
[disabled]="disabled"
[label]="'add-dossier-dialog.actions.save-and-add-members' | translate"
icon="red:assign"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>
<ng-template #reportTemplateOptionTemplate let-option="option">

View File

@ -30,5 +30,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -35,5 +35,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -15,5 +15,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -20,5 +20,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -57,7 +57,7 @@
[label]="'edit-dossier-dialog.attributes.upload-image' | translate"
class="upload-button"
icon="red:upload"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
<input
@ -72,18 +72,18 @@
/>
</div>
<div *ngIf="currentAttrValue(attr) && canEdit">
<redaction-circle-button
<iqser-circle-button
(action)="deleteAttr(attr)"
[tooltip]="'edit-dossier-dialog.attributes.delete-image' | translate"
icon="red:trash"
type="dark-bg"
></redaction-circle-button>
<redaction-circle-button
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<iqser-circle-button
(action)="fileInputClick(attr)"
[tooltip]="'edit-dossier-dialog.attributes.upload-image' | translate"
icon="red:upload"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
</div>

View File

@ -64,7 +64,7 @@
margin-right: 15px;
}
redaction-circle-button:not(:last-child) {
iqser-circle-button:not(:last-child) {
margin-right: 2px;
}
}

View File

@ -8,7 +8,7 @@ import { FormBuilder, FormGroup } from '@angular/forms';
import * as moment from 'moment';
import { DossierAttributeWithValue } from '@models/dossier-attributes.model';
import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service';
import { IconButtonTypes } from '@iqser/common-ui';
import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-edit-dossier-attributes',
@ -17,6 +17,7 @@ import { IconButtonTypes } from '@iqser/common-ui';
})
export class EditDossierAttributesComponent implements EditDossierSectionInterface, OnInit {
readonly iconButtonTypes = IconButtonTypes;
readonly circleButtonTypes = CircleButtonTypes;
@Input() dossierWrapper: DossierWrapper;
@Output() updateDossier = new EventEmitter<any>();

View File

@ -75,5 +75,5 @@
</div>
</div>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -61,7 +61,7 @@
*ngIf="permissionsService.canDeleteDossier(dossierWrapper)"
[label]="'dossier-listing.delete.action' | translate"
icon="red:trash"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
</div>
</form>

View File

@ -34,5 +34,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -70,5 +70,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -30,5 +30,5 @@
</div>
</form>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -49,5 +49,5 @@
</button>
</div>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -11,7 +11,7 @@
tooltipPosition="below"
></redaction-file-download-btn>
<redaction-circle-button
<iqser-circle-button
(action)="reanalyseDossier()"
*ngIf="permissionsService.displayReanalyseBtn()"
[disabled]="screenStateService.areSomeEntitiesSelected$ | async"
@ -19,17 +19,17 @@
[tooltip]="'dossier-overview.new-rule.toast.actions.reanalyse-all' | translate"
icon="red:refresh"
tooltipPosition="below"
type="warn"
></redaction-circle-button>
[type]="circleButtonTypes.warn"
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="fileInput.click()"
[tooltip]="'dossier-overview.header-actions.upload-document' | translate"
class="ml-14"
icon="red:upload"
tooltipPosition="below"
type="primary"
></redaction-circle-button>
[type]="circleButtonTypes.primary"
></iqser-circle-button>
</redaction-page-header>
<div class="overlay-shadow"></div>

View File

@ -35,6 +35,7 @@ import { UserPreferenceService } from '@services/user-preference.service';
import { workloadTranslations } from '../../translations/workload-translations';
import { fileStatusTranslations } from '../../translations/file-status-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
templateUrl: './dossier-overview-screen.component.html',
@ -45,14 +46,16 @@ export class DossierOverviewScreenComponent
extends BaseListingComponent<FileStatusWrapper>
implements OnInit, OnDestroy, OnDetach, OnAttach
{
private readonly _lastOpenedFileKey = 'Dossier-Recent-' + this.activeDossier.dossierId;
protected readonly _primaryKey = 'filename';
readonly circleButtonTypes = CircleButtonTypes;
readonly itemSize = 80;
collapsedDetails = false;
actionConfigs: ActionConfig[];
dossierAttributes: DossierAttributeWithValue[] = [];
protected readonly _primaryKey = 'filename';
@ViewChild(DossierDetailsComponent, { static: false })
private readonly _dossierDetailsComponent: DossierDetailsComponent;
private readonly _lastOpenedFileKey = 'Dossier-Recent-' + this.activeDossier.dossierId;
private _lastScrollPosition: number;
@ViewChild('needsWorkTemplate', { read: TemplateRef, static: true })

View File

@ -63,21 +63,21 @@
></redaction-assign-user-dropdown>
<div *ngIf="canAssign" class="assign-actions-wrapper">
<redaction-circle-button
<iqser-circle-button
(action)="editingReviewer = true"
*ngIf="permissionsService.canAssignUser() && currentReviewer"
[tooltip]="assignTooltip"
icon="red:edit"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="assignToMe()"
*ngIf="permissionsService.canAssignToSelf()"
[tooltip]="'file-preview.assign-me' | translate"
icon="red:assign-me"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
<ng-container *ngIf="permissionsService.isApprover() && !!lastReviewer">
@ -93,27 +93,27 @@
[activeExcludePages]="excludePages"
></redaction-file-actions>
<redaction-circle-button
<iqser-circle-button
(action)="toggleFullScreen()"
[icon]="fullScreen ? 'red:exit-fullscreen' : 'red:fullscreen'"
[tooltip]="'file-preview.fullscreen' | translate"
class="ml-2"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<!-- Dev Mode Features-->
<redaction-circle-button
<iqser-circle-button
(action)="downloadOriginalFile()"
*ngIf="userPreferenceService.areDevFeaturesEnabled"
[tooltip]="'file-preview.download-original-file' | translate"
class="ml-8"
icon="red:download"
tooltipPosition="below"
type="primary"
></redaction-circle-button>
[type]="circleButtonTypes.primary"
></iqser-circle-button>
<!-- End Dev Mode Features-->
<redaction-circle-button
<iqser-circle-button
(action)="closeFullScreen()"
*ngIf="!fullScreen"
[routerLink]="['/main/dossiers/' + appStateService.activeDossierId]"
@ -121,7 +121,7 @@
class="ml-8"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -36,7 +36,7 @@ import { handleFilterDelta, processFilters } from '@shared/components/filters/po
import { LoadingService } from '@services/loading.service';
import { stampPDFPage } from '@utils/page-stamper';
import { TranslateService } from '@ngx-translate/core';
import { AutoUnsubscribeComponent } from '@iqser/common-ui';
import { AutoUnsubscribeComponent, CircleButtonTypes } from '@iqser/common-ui';
import { fileStatusTranslations } from '../../translations/file-status-translations';
const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f'];
@ -47,6 +47,9 @@ const ALL_HOTKEY_ARRAY = ['Escape', 'F', 'f'];
styleUrls: ['./file-preview-screen.component.scss']
})
export class FilePreviewScreenComponent extends AutoUnsubscribeComponent implements OnInit, OnDestroy, OnAttach, OnDetach {
readonly circleButtonTypes = CircleButtonTypes;
readonly translations = fileStatusTranslations;
dialogRef: MatDialogRef<any>;
viewMode: ViewMode = 'STANDARD';
fullScreen = false;
@ -63,7 +66,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribeComponent impleme
viewDocumentInfo = false;
excludePages = false;
@ViewChild(PdfViewerComponent) viewerComponent: PdfViewerComponent;
readonly translations = fileStatusTranslations;
private _instance: WebViewerInstance;
private _lastPage: string;
private _reloadFileOnReanalysis = false;

View File

@ -10,20 +10,20 @@
</mat-select>
</div>
<redaction-circle-button
<iqser-circle-button
(action)="save.emit(value)"
[tooltip]="'assign-user.save' | translate"
class="pl-1"
icon="red:check"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
<redaction-circle-button
<iqser-circle-button
(action)="value = oldUser; cancel.emit()"
[tooltip]="'assign-user.cancel' | translate"
icon="red:close"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
<ng-template #avatar let-userId="userId">

View File

@ -9,7 +9,7 @@
height: 40px;
}
redaction-circle-button {
iqser-circle-button {
margin-left: 2px;
&:first-of-type {

View File

@ -1,15 +0,0 @@
<div [matTooltipClass]="tooltipClass" [matTooltipPosition]="tooltipPosition" [matTooltip]="tooltip">
<button
(click)="performAction($event)"
[class.dark-bg]="type === 'dark-bg'"
[class.overlay]="showDot"
[class.primary]="type === 'primary'"
[class.warn]="type === 'warn'"
[disabled]="disabled"
[type]="isSubmit ? 'submit' : 'button'"
mat-icon-button
>
<mat-icon [svgIcon]="icon"></mat-icon>
</button>
<div *ngIf="showDot" class="dot"></div>
</div>

View File

@ -1,41 +0,0 @@
@import '../../../../../../assets/styles/variables';
:host {
height: var(--size);
width: var(--size);
align-items: center;
button {
height: var(--size);
width: var(--size);
line-height: var(--size);
mat-icon {
width: var(--iconSize);
height: var(--iconSize);
line-height: var(--iconSize);
margin: 0;
svg {
line-height: var(--iconSize);
}
}
&.mat-button-disabled {
cursor: not-allowed;
}
&.primary.mat-button-disabled {
background-color: $grey-6;
color: $white !important;
}
&.warn:not([disabled]) {
background-color: $yellow-2;
&:hover {
background-color: $yellow-2;
}
}
}
}

View File

@ -1,47 +0,0 @@
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { MatTooltip } from '@angular/material/tooltip';
@Component({
selector: 'redaction-circle-button',
templateUrl: './circle-button.component.html',
styleUrls: ['./circle-button.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class CircleButtonComponent implements OnInit {
@Input() icon: string;
@Input() tooltip: string;
@Input() showDot = false;
@Input() tooltipPosition: 'above' | 'below' | 'before' | 'after' = 'above';
@Input() tooltipClass: string;
@Input() disabled = false;
@Input() type: 'default' | 'primary' | 'warn' | 'dark-bg' = 'default';
@Input() removeTooltip = false;
@Input() size = 34;
@Input() iconSize = 14;
@Input() isSubmit = false;
@Output() action = new EventEmitter<any>();
@ViewChild(MatTooltip) matTooltip: MatTooltip;
constructor(private _elRef: ElementRef) {}
ngOnInit(): void {
this._elRef.nativeElement.style.setProperty('--size', this.size + 'px');
this._elRef.nativeElement.style.setProperty('--iconSize', this.iconSize + 'px');
}
performAction($event: any) {
if (!this.disabled) {
if (this.removeTooltip) {
this.matTooltip.hide();
// Timeout to allow tooltip to disappear first,
// useful when removing an item from the list without a confirmation dialog
setTimeout(() => {
this.action.emit($event);
}, 0);
} else {
this.action.emit($event);
}
}
}
}

View File

@ -1,4 +1,4 @@
<redaction-circle-button
<iqser-circle-button
(action)="downloadFiles($event)"
[disabled]="disabled || !canDownloadFiles"
[tooltipClass]="tooltipClass"
@ -6,4 +6,4 @@
[tooltip]="tooltip"
[type]="type"
icon="red:download"
></redaction-circle-button>
></iqser-circle-button>

View File

@ -4,7 +4,7 @@ import { DossierWrapper } from '@state/model/dossier.wrapper';
import { FileStatusWrapper } from '@models/file/file-status.wrapper';
import { FileDownloadService } from '@upload-download/services/file-download.service';
import { Toaster } from '@services/toaster.service';
import { AutoUnsubscribeComponent } from '@iqser/common-ui';
import { AutoUnsubscribeComponent, CircleButtonType, CircleButtonTypes } from '@iqser/common-ui';
import { TranslateService } from '@ngx-translate/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
@ -20,7 +20,7 @@ export class FileDownloadBtnComponent extends AutoUnsubscribeComponent implement
@Input() dossier: DossierWrapper;
@Input() file: FileStatusWrapper | FileStatusWrapper[];
@Input() tooltipPosition: 'above' | 'below' | 'before' | 'after' = 'above';
@Input() type: 'default' | 'primary' | 'warn' | 'dark-bg' = 'default';
@Input() type: CircleButtonType = CircleButtonTypes.default;
@Input() tooltipClass: string;
@Input() disabled = false;

View File

@ -13,22 +13,22 @@
<!-- Search-->
<mat-icon *ngIf="type === 'search' && !hasContent" class="icon-right" svgIcon="red:search"></mat-icon>
<redaction-circle-button
<iqser-circle-button
(action)="clearContent()"
*ngIf="type === 'search' && hasContent"
[disabled]="form.invalid"
[size]="25"
icon="red:close"
></redaction-circle-button>
></iqser-circle-button>
<!-- Submit-->
<redaction-circle-button
<iqser-circle-button
(action)="executeAction($event)"
*ngIf="type === 'action'"
[disabled]="!hasContent"
[icon]="icon"
[isSubmit]="true"
[size]="25"
></redaction-circle-button>
></iqser-circle-button>
</div>
</form>

View File

@ -7,7 +7,7 @@ mat-icon.disabled {
cursor: not-allowed;
}
redaction-circle-button {
iqser-circle-button {
position: absolute;
top: 4px;
right: 5px;

View File

@ -34,26 +34,26 @@
</ng-container>
<ng-container *ngFor="let config of actionConfigs; trackBy: trackByLabel">
<redaction-circle-button
<iqser-circle-button
(action)="config.action($event)"
*ngIf="!config.hide"
[icon]="config.icon"
[tooltip]="config.label"
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</ng-container>
<!-- Extra custom actions here -->
<ng-content></ng-content>
<redaction-circle-button
<iqser-circle-button
*ngIf="showCloseButton"
[class.ml-6]="actionConfigs"
[tooltip]="'common.close' | translate"
icon="red:close"
redactionNavigateLastDossiersScreen
tooltipPosition="below"
></redaction-circle-button>
></iqser-circle-button>
</div>
</div>

View File

@ -22,5 +22,5 @@
</div>
</div>
<redaction-circle-button class="dialog-close" icon="red:close" mat-dialog-close></redaction-circle-button>
<iqser-circle-button class="dialog-close" icon="red:close" mat-dialog-close></iqser-circle-button>
</section>

View File

@ -6,7 +6,6 @@ import { InitialsAvatarComponent } from './components/initials-avatar/initials-a
import { ScrollingModule } from '@angular/cdk/scrolling';
import { TableColNameComponent } from './components/table-col-name/table-col-name.component';
import { PaginationComponent } from './components/pagination/pagination.component';
import { CircleButtonComponent } from './components/buttons/circle-button/circle-button.component';
import { FileDownloadBtnComponent } from './components/buttons/file-download-btn/file-download-btn.component';
import { UserButtonComponent } from './components/buttons/user-button/user-button.component';
import { MatConfigModule } from '../mat-config/mat-config.module';
@ -40,7 +39,7 @@ import { DatePipe } from '@shared/pipes/date.pipe';
import { TableHeaderComponent } from './components/table-header/table-header.component';
import { CommonUiModule } from '@iqser/common-ui';
const buttons = [CircleButtonComponent, FileDownloadBtnComponent, UserButtonComponent];
const buttons = [FileDownloadBtnComponent, UserButtonComponent];
const components = [
FullPageLoadingIndicatorComponent,

View File

@ -19,7 +19,7 @@
<iqser-icon-button
(action)="selectOption('skip')"
[label]="'overwrite-files-dialog.options.skip' | translate"
[type]="iconButtonTypes.show_bg"
[type]="iconButtonTypes.dark"
></iqser-icon-button>
<div (click)="cancel()" class="all-caps-label cancel" translate="overwrite-files-dialog.options.cancel"></div>
</div>

View File

@ -3,8 +3,8 @@
<div class="title flex-1">
{{ 'upload-status.dialog.title' | translate: { len: uploadService.files.length } }}
</div>
<redaction-circle-button [icon]="'red:status-' + (collapsed ? 'expand' : 'collapse')"></redaction-circle-button>
<redaction-circle-button (action)="closeDialog()" icon="red:close"></redaction-circle-button>
<iqser-circle-button [icon]="'red:status-' + (collapsed ? 'expand' : 'collapse')"></iqser-circle-button>
<iqser-circle-button (action)="closeDialog()" icon="red:close"></iqser-circle-button>
</div>
<div [hidden]="collapsed" class="upload-download-list">
<div *ngFor="let dossierId of uploadService.activeDossierKeys">
@ -39,21 +39,21 @@
</div>
<div *ngIf="model.error || !model.completed" [class.error]="model.error" class="actions">
<redaction-circle-button
<iqser-circle-button
(action)="uploadItem(model)"
*ngIf="model.error && !model.sizeError"
[tooltip]="'upload-status.dialog.actions.re-upload' | translate"
icon="red:refresh"
tooltipPosition="before"
type="dark-bg"
></redaction-circle-button>
<redaction-circle-button
[type]="circleButtonTypes.dark"
></iqser-circle-button>
<iqser-circle-button
(action)="cancelItem(model)"
[tooltip]="'upload-status.dialog.actions.cancel' | translate"
icon="red:close"
tooltipPosition="before"
type="dark-bg"
></redaction-circle-button>
[type]="circleButtonTypes.dark"
></iqser-circle-button>
</div>
</div>
</div>

View File

@ -2,6 +2,7 @@ import { ChangeDetectorRef, Component, OnInit } from '@angular/core';
import { FileUploadModel } from '../model/file-upload.model';
import { FileUploadService } from '../services/file-upload.service';
import { OverlayRef } from '@angular/cdk/overlay';
import { CircleButtonTypes } from '@iqser/common-ui';
@Component({
selector: 'redaction-upload-status-overlay',
@ -9,8 +10,9 @@ import { OverlayRef } from '@angular/cdk/overlay';
styleUrls: ['./upload-status-overlay.component.scss']
})
export class UploadStatusOverlayComponent implements OnInit {
collapsed = true;
readonly circleButtonTypes = CircleButtonTypes;
collapsed = true;
uploadStatusInterval: number;
constructor(

Some files were not shown because too many files have changed in this diff Show More