From 9c845a9cd77323e1cb1e7e4a1b8b7e454a73107d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Mon, 23 Aug 2021 19:57:20 +0200 Subject: [PATCH 1/3] Moved loading service & overlay to common --- apps/red-ui/src/app/app.component.html | 2 +- apps/red-ui/src/app/app.component.ts | 3 +- .../downloads-list-screen.component.ts | 5 +-- .../user-profile-screen.component.ts | 2 +- .../src/app/guards/composite-route.guard.ts | 2 +- .../dossier-template-actions.component.ts | 11 +++-- ...edit-dossier-attribute-dialog.component.ts | 3 +- .../reset-password.component.ts | 2 +- .../user-details/user-details.component.ts | 3 +- .../confirm-delete-users-dialog.component.ts | 2 +- .../screens/audit/audit-screen.component.ts | 3 +- .../default-colors-screen.component.ts | 6 +-- .../dictionary-listing-screen.component.ts | 10 ++++- .../dictionary-overview-screen.component.ts | 3 +- .../digital-signature-screen.component.ts | 2 +- ...ier-attributes-listing-screen.component.ts | 12 +++-- ...sier-templates-listing-screen.component.ts | 12 +++-- ...ile-attributes-listing-screen.component.ts | 13 ++++-- .../general-config-screen.component.ts | 4 +- .../license-information-screen.component.ts | 3 +- .../reports/reports-screen.component.ts | 2 +- .../screens/rules/rules-screen.component.ts | 3 +- .../screens/trash/trash-screen.component.ts | 3 +- .../user-listing-screen.component.ts | 10 ++++- .../watermark/watermark-screen.component.ts | 3 +- .../src/app/modules/auth/red-role.guard.ts | 2 +- ...dossier-overview-bulk-actions.component.ts | 3 +- .../file-actions/file-actions.component.ts | 45 +++++++++---------- .../page-exclusion.component.ts | 3 +- .../pdf-viewer/pdf-viewer.component.ts | 2 +- .../edit-dossier-attributes.component.ts | 3 +- ...dit-dossier-deleted-documents.component.ts | 3 +- .../edit-dossier-dictionary.component.ts | 3 +- .../dossier-overview-screen.component.ts | 32 +++++++------ .../file-preview-screen.component.ts | 13 ++++-- .../search-screen/search-screen.component.ts | 5 +-- ...full-page-loading-indicator.component.html | 7 --- ...full-page-loading-indicator.component.scss | 24 ---------- .../full-page-loading-indicator.component.ts | 12 ----- .../src/app/modules/shared/shared.module.ts | 2 - .../src/app/services/loading.service.ts | 44 ------------------ libs/common-ui | 2 +- 42 files changed, 130 insertions(+), 199 deletions(-) delete mode 100644 apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.html delete mode 100644 apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.scss delete mode 100644 apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.ts delete mode 100644 apps/red-ui/src/app/services/loading.service.ts diff --git a/apps/red-ui/src/app/app.component.html b/apps/red-ui/src/app/app.component.html index 5735353bf..f77b69da4 100644 --- a/apps/red-ui/src/app/app.component.html +++ b/apps/red-ui/src/app/app.component.html @@ -1,2 +1,2 @@ - + diff --git a/apps/red-ui/src/app/app.component.ts b/apps/red-ui/src/app/app.component.ts index 8660f6cb6..58cafd198 100644 --- a/apps/red-ui/src/app/app.component.ts +++ b/apps/red-ui/src/app/app.component.ts @@ -1,5 +1,4 @@ import { Component } from '@angular/core'; -import { LoadingService } from '@services/loading.service'; @Component({ selector: 'redaction-root', @@ -7,5 +6,5 @@ import { LoadingService } from '@services/loading.service'; styleUrls: ['./app.component.scss'] }) export class AppComponent { - constructor(readonly loadingService: LoadingService) {} + constructor() {} } diff --git a/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts b/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts index 591829755..53846e45a 100644 --- a/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts +++ b/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts @@ -2,9 +2,8 @@ import { Component, Injector, OnInit } from '@angular/core'; import { FileDownloadService } from '@upload-download/services/file-download.service'; import { DownloadStatusWrapper } from '@upload-download/model/download-status.wrapper'; import { DownloadControllerService } from '@redaction/red-ui-http'; -import { CircleButtonTypes, DefaultListingServices, ListingComponent, TableColumnConfig } from '@iqser/common-ui'; +import { CircleButtonTypes, DefaultListingServices, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { LoadingService } from '@services/loading.service'; import { timer } from 'rxjs'; import { RouterHistoryService } from '@services/router-history.service'; @@ -16,7 +15,6 @@ import { RouterHistoryService } from '@services/router-history.service'; }) export class DownloadsListScreenComponent extends ListingComponent implements OnInit { readonly itemSize = 80; - protected readonly _primaryKey = 'storageId'; readonly circleButtonTypes = CircleButtonTypes; readonly tableHeaderLabel = _('downloads-list.table-header.title'); readonly tableColumnConfigs: readonly TableColumnConfig[] = [ @@ -25,6 +23,7 @@ export class DownloadsListScreenComponent extends ListingComponent { this.loadDossierTemplatesData?.emit(); diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts index 5563bd8a2..5d4bce5e1 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts @@ -2,13 +2,12 @@ import { Component, Inject, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { DossierAttributeConfig, FileAttributeConfig } from '@redaction/red-ui-http'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { LoadingService } from '@services/loading.service'; +import { AutoUnsubscribe, LoadingService } from '@iqser/common-ui'; import { HttpErrorResponse } from '@angular/common/http'; import { Toaster } from '@iqser/common-ui'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { AutoUnsubscribe } from '@iqser/common-ui'; @Component({ templateUrl: './add-edit-dossier-attribute-dialog.component.html', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts index 71e219ca7..34881d642 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts @@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { FormBuilder, Validators } from '@angular/forms'; import { UserControllerService } from '@redaction/red-ui-http'; import { UserService, UserWrapper } from '@services/user.service'; -import { LoadingService } from '@services/loading.service'; +import { LoadingService } from '@iqser/common-ui'; @Component({ selector: 'redaction-reset-password', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts index d9a6aa7e1..44b45b190 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts @@ -2,9 +2,8 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { UserControllerService } from '@redaction/red-ui-http'; import { AdminDialogService } from '../../../services/admin-dialog.service'; -import { LoadingService } from '@services/loading.service'; +import { IconButtonTypes, LoadingService } from '@iqser/common-ui'; import { rolesTranslations } from '../../../../../translations/roles-translations'; -import { IconButtonTypes } from '@iqser/common-ui'; import { UserWrapper } from '@services/user.service'; @Component({ diff --git a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-users-dialog/confirm-delete-users-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-users-dialog/confirm-delete-users-dialog.component.ts index 3c0ffa4eb..e70d72999 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-users-dialog/confirm-delete-users-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/confirm-delete-users-dialog/confirm-delete-users-dialog.component.ts @@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { UserControllerService } from '@redaction/red-ui-http'; import { AppStateService } from '@state/app-state.service'; -import { LoadingService } from '@services/loading.service'; +import { LoadingService } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserWrapper } from '@services/user.service'; diff --git a/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts index 611657206..f2d195b81 100644 --- a/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts @@ -3,8 +3,7 @@ import { FormBuilder, FormGroup } from '@angular/forms'; import { AuditControllerService, AuditResponse, AuditSearchRequest } from '@redaction/red-ui-http'; import { Moment } from 'moment'; import { applyIntervalConstraints } from '@utils/date-inputs-utils'; -import { LoadingService } from '@services/loading.service'; -import { AutoUnsubscribe } from '@iqser/common-ui'; +import { AutoUnsubscribe, LoadingService } from '@iqser/common-ui'; import { auditCategoriesTranslations } from '../../translations/audit-categories-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; diff --git a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts index 1d085a41e..e8159746a 100644 --- a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts @@ -3,8 +3,7 @@ import { AppStateService } from '@state/app-state.service'; import { Colors, DictionaryControllerService } from '@redaction/red-ui-http'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { LoadingService } from '@services/loading.service'; -import { CircleButtonTypes, DefaultListingServices, Listable, ListingComponent, TableColumnConfig } from '@iqser/common-ui'; +import { CircleButtonTypes, DefaultListingServices, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui'; import { DefaultColorType } from '@models/default-color-key.model'; import { defaultColorsTranslations } from '../../translations/default-colors-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -22,7 +21,6 @@ interface ListItem extends Listable { providers: [...DefaultListingServices] }) export class DefaultColorsScreenComponent extends ListingComponent implements OnInit { - protected readonly _primaryKey = 'key'; readonly circleButtonTypes = CircleButtonTypes; readonly currentUser = this._userService.currentUser; readonly translations = defaultColorsTranslations; @@ -34,7 +32,7 @@ export class DefaultColorsScreenComponent extends ListingComponent imp }, { label: _('default-colors-screen.table-col-names.color'), class: 'flex-center' } ]; - + protected readonly _primaryKey = 'key'; private _colorsObj: Colors; constructor( diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts index 1823bbc3d..2de920491 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts @@ -7,8 +7,14 @@ import { forkJoin, of } from 'rxjs'; import { ActivatedRoute } from '@angular/router'; import { TypeValueWrapper } from '@models/file/type-value.wrapper'; import { TranslateService } from '@ngx-translate/core'; -import { LoadingService } from '@services/loading.service'; -import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui'; +import { + CircleButtonTypes, + DefaultListingServices, + IconButtonTypes, + ListingComponent, + LoadingService, + TableColumnConfig +} from '@iqser/common-ui'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.ts index 99a30e680..1c95c9f1f 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.ts @@ -9,8 +9,7 @@ import { AdminDialogService } from '../../services/admin-dialog.service'; import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component'; 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'; +import { CircleButtonTypes, LoadingService } from '@iqser/common-ui'; import { UserService } from '@services/user.service'; @Component({ diff --git a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts index 12a8138dd..d763dc76c 100644 --- a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts @@ -3,7 +3,7 @@ import { DigitalSignature, DigitalSignatureControllerService } from '@redaction/ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { AutoUnsubscribe, IconButtonTypes, Toaster } from '@iqser/common-ui'; import { lastIndexOfEnd } from '@utils/functions'; -import { LoadingService } from '@services/loading.service'; +import { AutoUnsubscribe, IconButtonTypes, LoadingService } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts index c2ead8d50..a42bb4a9c 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts @@ -1,10 +1,16 @@ import { Component, Injector, OnInit } from '@angular/core'; -import { CircleButtonTypes, DefaultListingServices, IconButtonTypes, ListingComponent, TableColumnConfig } from '@iqser/common-ui'; +import { + CircleButtonTypes, + DefaultListingServices, + IconButtonTypes, + ListingComponent, + LoadingService, + TableColumnConfig +} from '@iqser/common-ui'; import { DossierAttributeConfig } from '@redaction/red-ui-http'; import { AppStateService } from '@state/app-state.service'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { LoadingService } from '@services/loading.service'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; @@ -16,7 +22,6 @@ import { UserService } from '@services/user.service'; providers: [...DefaultListingServices] }) export class DossierAttributesListingScreenComponent extends ListingComponent implements OnInit { - protected readonly _primaryKey = 'label'; readonly iconButtonTypes = IconButtonTypes; readonly circleButtonTypes = CircleButtonTypes; readonly currentUser = this._userService.currentUser; @@ -33,6 +38,7 @@ export class DossierAttributesListingScreenComponent extends ListingComponent implements OnInit { - protected readonly _primaryKey = 'name'; readonly iconButtonTypes = IconButtonTypes; readonly circleButtonTypes = CircleButtonTypes; readonly currentUser = this._userService.currentUser; @@ -37,6 +42,7 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent implements OnInit, OnDestroy { - protected readonly _primaryKey = 'label'; readonly iconButtonTypes = IconButtonTypes; readonly circleButtonTypes = CircleButtonTypes; readonly currentUser = this._userService.currentUser; @@ -52,7 +57,7 @@ export class FileAttributesListingScreenComponent extends ListingComponent[] = []; + collapsedDetails = false; + dossierAttributes: DossierAttributeWithValue[] = []; + fileAttributeConfigs: FileAttributeConfig[]; + dynamicColumnsCount = 0; + protected readonly _primaryKey = 'filename'; private readonly _defaultTableConfigs: readonly TableColumnConfig[] = [ { label: _('dossier-overview.table-col-names.name'), @@ -97,14 +111,6 @@ export class DossierOverviewScreenComponent extends ListingComponent[] = []; - collapsedDetails = false; - dossierAttributes: DossierAttributeWithValue[] = []; - fileAttributeConfigs: FileAttributeConfig[]; - protected readonly _primaryKey = 'filename'; - dynamicColumnsCount = 0; - @ViewChild(DossierDetailsComponent, { static: false }) private readonly _dossierDetailsComponent: DossierDetailsComponent; private _lastScrolledIndex: number; @@ -149,6 +155,10 @@ export class DossierOverviewScreenComponent extends ListingComponent !f.required && f.checked); } + get displayedInFileListAttributes() { + return this.fileAttributeConfigs.filter(config => config.displayedInFileList); + } + async ngOnInit(): Promise { this._loadingService.start(); try { @@ -273,10 +283,6 @@ export class DossierOverviewScreenComponent extends ListingComponent config.displayedInFileList); - } - recentlyModifiedChecker = (file: FileStatusWrapper) => moment(file.lastUpdated).add(this._appConfigService.getConfig(AppConfigKey.RECENT_PERIOD_IN_HOURS), 'hours').isAfter(moment()); diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index aa71543f6..150d04595 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -3,7 +3,15 @@ import { ActivatedRoute, ActivatedRouteSnapshot, NavigationExtras, Router } from import { AppStateService } from '@state/app-state.service'; import { Annotations, WebViewerInstance } from '@pdftron/webviewer'; import { PdfViewerComponent } from '../../components/pdf-viewer/pdf-viewer.component'; -import { AutoUnsubscribe, CircleButtonTypes, Debounce, FilterService, NestedFilter, processFilters } from '@iqser/common-ui'; +import { + AutoUnsubscribe, + CircleButtonTypes, + Debounce, + FilterService, + LoadingService, + NestedFilter, + processFilters +} from '@iqser/common-ui'; import { MatDialogRef, MatDialogState } from '@angular/material/dialog'; import { ManualRedactionEntryWrapper } from '@models/file/manual-redaction-entry.wrapper'; import { AnnotationWrapper } from '@models/file/annotation.wrapper'; @@ -30,7 +38,6 @@ import { ViewMode } from '@models/file/view-mode'; import { FileWorkloadComponent } from '../../components/file-workload/file-workload.component'; import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { OnAttach, OnDetach } from '@utils/custom-route-reuse.strategy'; -import { LoadingService } from '@services/loading.service'; import { clearStamps, stampPDFPage } from '@utils/page-stamper'; import { TranslateService } from '@ngx-translate/core'; import { fileStatusTranslations } from '../../translations/file-status-translations'; @@ -61,10 +68,10 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni displayPDFViewer = false; viewDocumentInfo = false; excludePages = false; + @ViewChild(PdfViewerComponent) readonly viewerComponent: PdfViewerComponent; private _instance: WebViewerInstance; private _lastPage: string; private _reloadFileOnReanalysis = false; - @ViewChild(PdfViewerComponent) readonly viewerComponent: PdfViewerComponent; @ViewChild('fileWorkloadComponent') private readonly _workloadComponent: FileWorkloadComponent; @ViewChild('annotationFilterTemplate', { read: TemplateRef, diff --git a/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts index 4c4489ce4..2e03f3eae 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts @@ -1,12 +1,11 @@ import { Component, Injector, OnDestroy } from '@angular/core'; -import { DefaultListingServices, keyChecker, Listable, ListingComponent, TableColumnConfig } from '@iqser/common-ui'; +import { DefaultListingServices, keyChecker, Listable, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui'; import { MatchedDocument, SearchControllerService, SearchResult } from '@redaction/red-ui-http'; import { BehaviorSubject, Observable } from 'rxjs'; import { debounceTime, map, skip, switchMap, tap } from 'rxjs/operators'; import { ActivatedRoute, Router } from '@angular/router'; import { AppStateService } from '@state/app-state.service'; import { FileStatusWrapper } from '@models/file/file-status.wrapper'; -import { LoadingService } from '@services/loading.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { fileStatusTranslations } from '../../translations/file-status-translations'; import { SearchPositions } from '@shared/components/page-header/models/search-positions.type'; @@ -40,7 +39,6 @@ export class SearchScreenComponent extends ListingComponent implements readonly searchPositions = SearchPositions; readonly itemSize = 85; - protected readonly _primaryKey = 'filename'; readonly tableHeaderLabel = _('search-screen.table-header'); readonly tableColumnConfigs: TableColumnConfig[] = [ { label: _('search-screen.cols.document') }, @@ -56,6 +54,7 @@ export class SearchScreenComponent extends ListingComponent implements tap(result => this.entitiesService.setEntities(result)), tap(() => this._loadingService.stop()) ); + protected readonly _primaryKey = 'filename'; constructor( private readonly _router: Router, diff --git a/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.html b/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.html deleted file mode 100644 index 46e67a5fe..000000000 --- a/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.html +++ /dev/null @@ -1,7 +0,0 @@ - -
-
- - -
-
diff --git a/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.scss b/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.scss deleted file mode 100644 index 2be1e9659..000000000 --- a/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.scss +++ /dev/null @@ -1,24 +0,0 @@ -@import '../../../../../assets/styles/variables'; - -.full-page-load-section, -.full-page-load-spinner { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; -} - -.full-page-load-section { - opacity: 0.7; - background: $white; - z-index: 900; -} - -.full-page-load-spinner { - z-index: 1000; - justify-content: center; - align-items: center; - flex-direction: column; - display: flex; -} diff --git a/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.ts b/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.ts deleted file mode 100644 index cbf497e43..000000000 --- a/apps/red-ui/src/app/modules/shared/components/full-page-loading-indicator/full-page-loading-indicator.component.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { LoadingService } from '@services/loading.service'; - -@Component({ - selector: 'redaction-full-page-loading-indicator', - templateUrl: './full-page-loading-indicator.component.html', - styleUrls: ['./full-page-loading-indicator.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class FullPageLoadingIndicatorComponent { - constructor(readonly loadingService: LoadingService) {} -} diff --git a/apps/red-ui/src/app/modules/shared/shared.module.ts b/apps/red-ui/src/app/modules/shared/shared.module.ts index 5a0ee014a..8f9fdf5d3 100644 --- a/apps/red-ui/src/app/modules/shared/shared.module.ts +++ b/apps/red-ui/src/app/modules/shared/shared.module.ts @@ -1,6 +1,5 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { FullPageLoadingIndicatorComponent } from './components/full-page-loading-indicator/full-page-loading-indicator.component'; import { InitialsAvatarComponent } from './components/initials-avatar/initials-avatar.component'; import { ScrollingModule } from '@angular/cdk/scrolling'; import { PaginationComponent } from './components/pagination/pagination.component'; @@ -31,7 +30,6 @@ import { DatePipe } from '@shared/pipes/date.pipe'; const buttons = [FileDownloadBtnComponent, UserButtonComponent]; const components = [ - FullPageLoadingIndicatorComponent, InitialsAvatarComponent, PaginationComponent, AnnotationIconComponent, diff --git a/apps/red-ui/src/app/services/loading.service.ts b/apps/red-ui/src/app/services/loading.service.ts deleted file mode 100644 index ef834d90f..000000000 --- a/apps/red-ui/src/app/services/loading.service.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Injectable } from '@angular/core'; -import { BehaviorSubject } from 'rxjs'; - -const MIN_LOADING_TIME = 300; - -@Injectable({ - providedIn: 'root' -}) -export class LoadingService { - private readonly _loadingEvent$ = new BehaviorSubject(false); - readonly isLoading$ = this._loadingEvent$.asObservable(); - private _loadingStarted: number; - - start(): void { - setTimeout(() => { - this._loadingEvent$.next(true); - this._loadingStarted = new Date().getTime(); - }); - } - - stop(): void { - const timeSinceStarted = new Date().getTime() - this._loadingStarted; - const remainingLoadingTime = MIN_LOADING_TIME - timeSinceStarted; - - return remainingLoadingTime > 0 ? this._stopAfter(remainingLoadingTime) : this._stop(); - } - - loadWhile(func: Promise) { - this.start(); - - func.then( - () => this.stop(), - () => this.stop() - ); - } - - private _stop() { - setTimeout(() => this._loadingEvent$.next(false)); - } - - private _stopAfter(timeout: number) { - setTimeout(() => this._stop(), timeout); - } -} diff --git a/libs/common-ui b/libs/common-ui index ee57691f1..69135886a 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit ee57691f12f3f6cc19b04cb78c700c1b24cde7e8 +Subproject commit 69135886ab3cfb65843e87e2407c40fc30960f1f From 951202a3fa93b51582a6c5db27c7a1bfc071f038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Tue, 24 Aug 2021 00:12:29 +0200 Subject: [PATCH 2/3] Error page --- apps/red-ui/src/app/app.component.html | 1 + .../base-screen/base-screen.component.scss | 5 +- .../user-profile-screen.component.scss | 3 +- ...ttributes-csv-import-dialog.component.scss | 2 +- .../dictionary-listing-screen.component.scss | 3 - .../dictionary-overview-screen.component.scss | 3 - ...r-attributes-listing-screen.component.scss | 46 +++++----- ...er-templates-listing-screen.component.scss | 45 ++++------ ...e-attributes-listing-screen.component.scss | 6 +- .../general-config-screen.component.scss | 2 +- .../license-information-screen.component.scss | 2 +- .../reports/reports-screen.component.scss | 2 +- .../screens/rules/rules-screen.component.scss | 2 - .../screens/trash/trash-screen.component.scss | 7 -- .../user-listing-screen.component.scss | 36 +++----- .../document-info.component.scss | 2 +- .../dossier-details-stats.component.scss | 2 +- .../file-workload.component.scss | 2 +- .../page-exclusion.component.scss | 2 +- .../team-members-manager.component.scss | 2 +- ...t-dossier-deleted-documents.component.scss | 2 +- .../edit-dossier-dialog.component.scss | 2 +- .../dossier-listing-screen.component.scss | 1 - .../dossier-overview-screen.component.scss | 11 --- .../file-preview-screen.component.scss | 1 - .../search-screen.component.scss | 2 +- .../dictionary-manager.component.scss | 1 - .../empty-state/empty-state.component.scss | 2 +- .../side-nav/side-nav.component.scss | 2 +- .../upload-status-overlay.component.scss | 2 +- apps/red-ui/src/assets/i18n/en.json | 4 + .../red-ui/src/assets/icons/general/error.svg | 14 --- .../src/assets/styles/red-autocomplete.scss | 2 +- .../src/assets/styles/red-breadcrumbs.scss | 2 +- .../src/assets/styles/red-components.scss | 2 +- apps/red-ui/src/assets/styles/red-editor.scss | 1 - apps/red-ui/src/assets/styles/red-menu.scss | 2 +- apps/red-ui/src/assets/styles/red-mixins.scss | 23 ----- .../src/assets/styles/red-page-layout.scss | 2 +- apps/red-ui/src/assets/styles/red-select.scss | 2 +- apps/red-ui/src/assets/styles/red-tables.scss | 2 +- .../src/assets/styles/red-text-styles.scss | 87 ------------------- apps/red-ui/src/assets/styles/red-theme.scss | 1 - package.json | 2 +- paligo-styles/manual-sidebar.scss | 2 +- paligo-styles/style.scss | 2 +- 46 files changed, 83 insertions(+), 268 deletions(-) delete mode 100755 apps/red-ui/src/assets/icons/general/error.svg delete mode 100644 apps/red-ui/src/assets/styles/red-mixins.scss delete mode 100644 apps/red-ui/src/assets/styles/red-text-styles.scss diff --git a/apps/red-ui/src/app/app.component.html b/apps/red-ui/src/app/app.component.html index f77b69da4..ff64625af 100644 --- a/apps/red-ui/src/app/app.component.html +++ b/apps/red-ui/src/app/app.component.html @@ -1,2 +1,3 @@ + diff --git a/apps/red-ui/src/app/components/base-screen/base-screen.component.scss b/apps/red-ui/src/app/components/base-screen/base-screen.component.scss index b573da15f..ab6144a7f 100644 --- a/apps/red-ui/src/app/components/base-screen/base-screen.component.scss +++ b/apps/red-ui/src/app/components/base-screen/base-screen.component.scss @@ -1,9 +1,8 @@ @import '../../../assets/styles/variables'; -@import '../../../assets/styles/red-mixins'; .dev-mode { - background-color: #dd4d50; - color: #fff; + background-color: $primary; + color: $white; font-size: 22px; line-height: 16px; text-align: center; diff --git a/apps/red-ui/src/app/components/user-profile/user-profile-screen.component.scss b/apps/red-ui/src/app/components/user-profile/user-profile-screen.component.scss index 202a9da9c..368dd3150 100644 --- a/apps/red-ui/src/app/components/user-profile/user-profile-screen.component.scss +++ b/apps/red-ui/src/app/components/user-profile/user-profile-screen.component.scss @@ -1,4 +1,5 @@ -@import '../../../assets/styles/red-mixins'; +@import '../../../assets/styles/variables'; +@import 'libs/common-ui/src/assets/styles/mixins'; .content-container { background-color: $grey-2; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss index e764e0db1..8d55816f0 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .sub-header { display: flex; diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.scss index d1d12b4c9..ef2c038ad 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.scss @@ -1,6 +1,3 @@ -@import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; - iqser-table-header::ng-deep .header-item { padding-right: 16px; } diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.scss index b35b035bc..1078732a2 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-overview/dictionary-overview-screen.component.scss @@ -1,6 +1,3 @@ -@import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; - .right-container { width: 353px; min-width: 353px; diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.scss index d6144291e..187b51b58 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.scss @@ -1,38 +1,34 @@ -@import '../../../../../assets/styles/red-mixins'; - .page-header .actions { display: flex; justify-content: flex-end; } -.header-item { - padding: 0 24px 0 10px; -} +iqser-table-header::ng-deep .attributes-actions-container { + display: flex; + flex: 1; + justify-content: flex-end; -iqser-table-column-name::ng-deep { - > div { - padding-left: 10px !important; + > *:not(:last-child) { + margin-right: 10px; } } -.content-container { - cdk-virtual-scroll-viewport { +cdk-virtual-scroll-viewport { + ::ng-deep.cdk-virtual-scroll-content-wrapper { + grid-template-columns: auto 2fr 2fr 1fr 1fr 11px; + + .table-item > div { + height: 50px; + + &:not(.scrollbar-placeholder) { + padding-left: 10px; + } + } + } + + &.has-scrollbar:hover { ::ng-deep.cdk-virtual-scroll-content-wrapper { - grid-template-columns: auto 2fr 2fr 1fr 1fr 11px; - - .table-item > div { - height: 50px; - - &:not(.scrollbar-placeholder) { - padding-left: 10px; - } - } - } - - &.has-scrollbar:hover { - ::ng-deep.cdk-virtual-scroll-content-wrapper { - grid-template-columns: auto 2fr 2fr 1fr 1fr; - } + grid-template-columns: auto 2fr 2fr 1fr 1fr; } } } diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.scss index 5d6ba5f25..351bb7095 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.scss @@ -1,40 +1,25 @@ -@import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +cdk-virtual-scroll-viewport { + ::ng-deep.cdk-virtual-scroll-content-wrapper { + grid-template-columns: auto 1fr 1fr 1fr 1fr 11px; -.header-item { - padding: 0 24px 0 10px; -} + .table-item { + > div:not(.scrollbar-placeholder) { + padding-left: 10px; -iqser-table-column-name::ng-deep { - > div { - padding-left: 10px !important; - } -} + .stats-subtitle { + margin-top: 4px; + } -.content-container { - cdk-virtual-scroll-viewport { - ::ng-deep.cdk-virtual-scroll-content-wrapper { - grid-template-columns: auto 1fr 1fr 1fr 1fr 11px; - - .table-item { - > div:not(.scrollbar-placeholder) { - padding-left: 10px; - - .stats-subtitle { - margin-top: 4px; - } - - .table-item-title { - max-width: 100%; - } + .table-item-title { + max-width: 100%; } } } + } - &.has-scrollbar:hover { - ::ng-deep.cdk-virtual-scroll-content-wrapper { - grid-template-columns: auto 1fr 1fr 1fr 1fr; - } + &.has-scrollbar:hover { + ::ng-deep.cdk-virtual-scroll-content-wrapper { + grid-template-columns: auto 1fr 1fr 1fr 1fr; } } } diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.scss index 1eae4af34..dc6d57c73 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.scss @@ -1,14 +1,10 @@ -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .page-header .actions { display: flex; justify-content: flex-end; } -iqser-table-header::ng-deep .header-item { - padding: 0 24px 0 10px; -} - .content-container cdk-virtual-scroll-viewport { ::ng-deep.cdk-virtual-scroll-content-wrapper { grid-template-columns: auto 2fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 11px; diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.scss index bfb1f492d..7edcb0e43 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .content-container { background-color: $grey-2; diff --git a/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.scss index 0138500ea..c8023043a 100644 --- a/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/license-information/license-information-screen.component.scss @@ -1,4 +1,4 @@ -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; @import '../../../../../assets/styles/variables'; .content-container { diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.scss index 765202e19..f8079405b 100644 --- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .page-header .actions { display: flex; diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss index f13889c9b..556ceecf7 100644 --- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen.component.scss @@ -1,5 +1,3 @@ -@import '../../../../../assets/styles/red-mixins'; - .editor-container { width: 100%; padding: 15px; diff --git a/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.scss index 9bebde5ca..f1ade43fa 100644 --- a/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.scss @@ -1,5 +1,4 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; .bulk-actions { display: flex; @@ -10,12 +9,6 @@ } } -iqser-table-column-name::ng-deep { - > div { - padding-left: 10px !important; - } -} - .content-container { cdk-virtual-scroll-viewport { ::ng-deep.cdk-virtual-scroll-content-wrapper { diff --git a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.scss b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.scss index 004790301..73674cbd8 100644 --- a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.scss +++ b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.scss @@ -1,33 +1,21 @@ -.content-container { - .header-item { - padding: 0 24px 0 10px; - } +cdk-virtual-scroll-viewport { + ::ng-deep.cdk-virtual-scroll-content-wrapper { + grid-template-columns: auto 2fr 1fr 1fr 1fr auto 11px; - iqser-table-column-name::ng-deep { - > div { - padding: 0 13px 0 10px !important; - } - } + .table-item { + > div:not(.scrollbar-placeholder) { + padding-left: 10px; - cdk-virtual-scroll-viewport { - ::ng-deep.cdk-virtual-scroll-content-wrapper { - grid-template-columns: auto 2fr 1fr 1fr 1fr auto 11px; - - .table-item { - > div:not(.scrollbar-placeholder) { - padding-left: 10px; - - &.center { - align-items: center; - } + &.center { + align-items: center; } } } + } - &.has-scrollbar:hover { - ::ng-deep.cdk-virtual-scroll-content-wrapper { - grid-template-columns: auto 2fr 1fr 1fr 1fr auto; - } + &.has-scrollbar:hover { + ::ng-deep.cdk-virtual-scroll-content-wrapper { + grid-template-columns: auto 2fr 1fr 1fr 1fr auto; } } } diff --git a/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.scss b/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.scss index 4cbdca5e8..11319af19 100644 --- a/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.scss +++ b/apps/red-ui/src/app/modules/dossier/components/document-info/document-info.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; :host { display: block; diff --git a/apps/red-ui/src/app/modules/dossier/components/dossier-details-stats/dossier-details-stats.component.scss b/apps/red-ui/src/app/modules/dossier/components/dossier-details-stats/dossier-details-stats.component.scss index 4c89b435d..3d9becd36 100644 --- a/apps/red-ui/src/app/modules/dossier/components/dossier-details-stats/dossier-details-stats.component.scss +++ b/apps/red-ui/src/app/modules/dossier/components/dossier-details-stats/dossier-details-stats.component.scss @@ -1,6 +1,6 @@ @import '../../../../../assets/styles/variables'; @import '../../../../../assets/styles/red-components'; -@import '../../../../../assets/styles/red-text-styles'; +@import 'libs/common-ui/src/assets/styles/texts'; :host { @extend .stats-subtitle; diff --git a/apps/red-ui/src/app/modules/dossier/components/file-workload/file-workload.component.scss b/apps/red-ui/src/app/modules/dossier/components/file-workload/file-workload.component.scss index c4e28e2a7..ff0fa3eb8 100644 --- a/apps/red-ui/src/app/modules/dossier/components/file-workload/file-workload.component.scss +++ b/apps/red-ui/src/app/modules/dossier/components/file-workload/file-workload.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .read-only { padding: 13px 16px; diff --git a/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.scss b/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.scss index 3d8347c0d..35e24217b 100644 --- a/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.scss +++ b/apps/red-ui/src/app/modules/dossier/components/page-exclusion/page-exclusion.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; :host { height: 100%; diff --git a/apps/red-ui/src/app/modules/dossier/components/team-members-manager/team-members-manager.component.scss b/apps/red-ui/src/app/modules/dossier/components/team-members-manager/team-members-manager.component.scss index 4fe9ada25..acfdf0a52 100644 --- a/apps/red-ui/src/app/modules/dossier/components/team-members-manager/team-members-manager.component.scss +++ b/apps/red-ui/src/app/modules/dossier/components/team-members-manager/team-members-manager.component.scss @@ -1,4 +1,4 @@ -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .search-container { margin-top: 16px; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.scss b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.scss index b2e5fe998..31eed9396 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.scss +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/deleted-documents/edit-dossier-deleted-documents.component.scss @@ -1,5 +1,5 @@ @import '../../../../../../assets/styles/variables'; -@import '../../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .instructions { color: $grey-7; diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.scss b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.scss index 588114d3c..de65aecb7 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.scss +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/edit-dossier-dialog.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .dialog-content { padding: 0; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.scss b/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.scss index 1a4ea825d..fb03fe4e9 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.scss +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.scss @@ -1,4 +1,3 @@ -@import '../../../../../assets/styles/red-mixins'; @import '../../../../../assets/styles/variables'; .content-container { diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.scss b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.scss index 959f49696..ded2aa696 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.scss +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.scss @@ -1,5 +1,4 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; :root { --dynamic-columns: '1fr'; @@ -9,16 +8,6 @@ display: none; } -.header-item { - padding: 0 24px 0 10px; -} - -iqser-table-column-name::ng-deep { - > div { - padding-left: 10px !important; - } -} - cdk-virtual-scroll-viewport { ::ng-deep.cdk-virtual-scroll-content-wrapper { grid-template-columns: auto 3fr 2fr repeat(var(--dynamic-columns, 1), 1fr) 2fr 1fr auto 11px; diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss index 85e82a593..4c58808d2 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.scss @@ -1,5 +1,4 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; .vertical-line { width: 1px; diff --git a/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.scss b/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.scss index de52c4111..42cde13ac 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.scss +++ b/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.scss @@ -1,4 +1,4 @@ -@import 'apps/red-ui/src/assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; @import '../../../../../assets/styles/variables'; .content-container { diff --git a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss index f9469e4d1..f703f198d 100644 --- a/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss +++ b/apps/red-ui/src/app/modules/shared/components/dictionary-manager/dictionary-manager.component.scss @@ -1,5 +1,4 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; :host { width: 100%; diff --git a/apps/red-ui/src/app/modules/shared/components/empty-state/empty-state.component.scss b/apps/red-ui/src/app/modules/shared/components/empty-state/empty-state.component.scss index 997cf9525..2676a3071 100644 --- a/apps/red-ui/src/app/modules/shared/components/empty-state/empty-state.component.scss +++ b/apps/red-ui/src/app/modules/shared/components/empty-state/empty-state.component.scss @@ -1,4 +1,4 @@ -@import '../../../../../assets/styles/red-mixins'; +@import '../../../../../assets/styles/variables'; .empty-state { display: flex; diff --git a/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.scss b/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.scss index b613c0bf5..0c3c6579f 100644 --- a/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.scss +++ b/apps/red-ui/src/app/modules/shared/components/side-nav/side-nav.component.scss @@ -1,5 +1,5 @@ @import '../../../../../assets/styles/variables'; -@import '../../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; :host { display: block; diff --git a/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.scss b/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.scss index 779ea4115..bee43a2a5 100644 --- a/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.scss +++ b/apps/red-ui/src/app/modules/upload-download/upload-status-overlay/upload-status-overlay.component.scss @@ -1,5 +1,5 @@ @import '../../../../assets/styles/variables'; -@import '../../../../assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .red-upload-download-overlay { background: $white; diff --git a/apps/red-ui/src/assets/i18n/en.json b/apps/red-ui/src/assets/i18n/en.json index 318b5c45b..fcee44c26 100644 --- a/apps/red-ui/src/assets/i18n/en.json +++ b/apps/red-ui/src/assets/i18n/en.json @@ -846,6 +846,10 @@ "side-nav-title": "Configurations", "unsaved-changes": "You have unsaved changes. Save or revert before changing the tab." }, + "error": { + "generic": "Oops! Something went wrong...", + "reload": "Reload" + }, "exact-date": "{day} {month} {year} at {hour}:{minute}", "file": "File", "file-attribute-types": { diff --git a/apps/red-ui/src/assets/icons/general/error.svg b/apps/red-ui/src/assets/icons/general/error.svg deleted file mode 100755 index 583e7d9e4..000000000 --- a/apps/red-ui/src/assets/icons/general/error.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/apps/red-ui/src/assets/styles/red-autocomplete.scss b/apps/red-ui/src/assets/styles/red-autocomplete.scss index 247dd2133..c7c1f171e 100644 --- a/apps/red-ui/src/assets/styles/red-autocomplete.scss +++ b/apps/red-ui/src/assets/styles/red-autocomplete.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .mat-autocomplete-panel { @include scroll-bar; diff --git a/apps/red-ui/src/assets/styles/red-breadcrumbs.scss b/apps/red-ui/src/assets/styles/red-breadcrumbs.scss index ebded2f56..b82e18960 100644 --- a/apps/red-ui/src/assets/styles/red-breadcrumbs.scss +++ b/apps/red-ui/src/assets/styles/red-breadcrumbs.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .breadcrumbs-container { display: flex; diff --git a/apps/red-ui/src/assets/styles/red-components.scss b/apps/red-ui/src/assets/styles/red-components.scss index 9f9f46893..a21ebad07 100644 --- a/apps/red-ui/src/assets/styles/red-components.scss +++ b/apps/red-ui/src/assets/styles/red-components.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .oval, .square { diff --git a/apps/red-ui/src/assets/styles/red-editor.scss b/apps/red-ui/src/assets/styles/red-editor.scss index e7d8ca367..ac37e71e5 100644 --- a/apps/red-ui/src/assets/styles/red-editor.scss +++ b/apps/red-ui/src/assets/styles/red-editor.scss @@ -1,5 +1,4 @@ @import 'variables'; -@import 'red-mixins'; .changed-row-marker { background: rgba($primary, 0.1); diff --git a/apps/red-ui/src/assets/styles/red-menu.scss b/apps/red-ui/src/assets/styles/red-menu.scss index 567c4b3b8..89603ebde 100644 --- a/apps/red-ui/src/assets/styles/red-menu.scss +++ b/apps/red-ui/src/assets/styles/red-menu.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .mat-menu-panel { border-radius: 8px !important; diff --git a/apps/red-ui/src/assets/styles/red-mixins.scss b/apps/red-ui/src/assets/styles/red-mixins.scss deleted file mode 100644 index c0616e1a8..000000000 --- a/apps/red-ui/src/assets/styles/red-mixins.scss +++ /dev/null @@ -1,23 +0,0 @@ -@import '../../../../../libs/common-ui/src/assets/styles/mixins'; -@import 'variables'; - -@mixin line-clamp($lines) { - display: -webkit-box; - -webkit-line-clamp: $lines; - -webkit-box-orient: vertical; - overflow: hidden; - display: block; - - @if $lines == 1 { - text-overflow: ellipsis; - white-space: nowrap; - } -} - -@mixin inset-shadow { - box-shadow: inset 0 4px 3px -2px $grey-4; -} - -@mixin drop-shadow { - box-shadow: 0 4px 3px 2px $grey-4; -} diff --git a/apps/red-ui/src/assets/styles/red-page-layout.scss b/apps/red-ui/src/assets/styles/red-page-layout.scss index c4db504ff..faa75892c 100644 --- a/apps/red-ui/src/assets/styles/red-page-layout.scss +++ b/apps/red-ui/src/assets/styles/red-page-layout.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; html, body { diff --git a/apps/red-ui/src/assets/styles/red-select.scss b/apps/red-ui/src/assets/styles/red-select.scss index 2efdd6510..b2a8ba192 100644 --- a/apps/red-ui/src/assets/styles/red-select.scss +++ b/apps/red-ui/src/assets/styles/red-select.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .mat-select-panel { @include scroll-bar; diff --git a/apps/red-ui/src/assets/styles/red-tables.scss b/apps/red-ui/src/assets/styles/red-tables.scss index 0f5896492..e4a517bd0 100644 --- a/apps/red-ui/src/assets/styles/red-tables.scss +++ b/apps/red-ui/src/assets/styles/red-tables.scss @@ -1,5 +1,5 @@ @import 'variables'; -@import 'red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; .default-table { border-collapse: collapse; diff --git a/apps/red-ui/src/assets/styles/red-text-styles.scss b/apps/red-ui/src/assets/styles/red-text-styles.scss deleted file mode 100644 index 44c49a3c2..000000000 --- a/apps/red-ui/src/assets/styles/red-text-styles.scss +++ /dev/null @@ -1,87 +0,0 @@ -@import 'variables'; -@import 'red-mixins'; - -a { - color: $primary; - transition: color 0.1s; - - &:hover { - color: lighten($primary, 10%); - } - - &.with-underline { - &:hover { - text-decoration: underline; - } - } - - cursor: pointer; -} - -pre { - font-family: Inter, sans-serif; - color: $accent; -} - -.heading-xl { - font-size: 24px; - font-weight: 600; - line-height: 29px; -} - -.info { - font-size: 13px; - line-height: 18px; - opacity: 0.7; -} - -.page-title { - font-size: 13px; - font-weight: 600; - line-height: 18px; - text-align: center; - padding: 0 20px; -} - -.small-label { - opacity: 0.7; - font-size: 11px; - line-height: 14px; - font-weight: initial; -} - -.link-action { - font-size: 11px; - line-height: 14px; - text-decoration: underline; - cursor: pointer; - - &:hover { - text-decoration: none; - } -} - -.large-label { - color: $accent; - font-size: 13px; - line-height: 16px; -} - -.clamp-1 { - @include line-clamp(1); -} - -.clamp-2 { - @include line-clamp(2); -} - -.text-overflow { - display: block !important; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.no-wrap { - white-space: nowrap; -} diff --git a/apps/red-ui/src/assets/styles/red-theme.scss b/apps/red-ui/src/assets/styles/red-theme.scss index 73ba42b37..570d2c455 100644 --- a/apps/red-ui/src/assets/styles/red-theme.scss +++ b/apps/red-ui/src/assets/styles/red-theme.scss @@ -2,7 +2,6 @@ @import '~ngx-toastr/toastr'; @import 'red-material-theme'; @import 'red-page-layout'; -@import 'red-text-styles'; @import 'red-select'; @import 'red-autocomplete'; @import 'red-list'; diff --git a/package.json b/package.json index b9fa0f621..1f6fefdfb 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "format:check": "nx format:check", "format:write": "nx format:write", "help": "nx help", - "i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src --output apps/red-ui/src/assets/i18n/en.json --clean --sort --format namespaced-json && prettier apps/red-ui/src/assets/i18n/*.json --write", + "i18n:extract": "ngx-translate-extract --input ./apps/red-ui/src ./libs/common-ui/src --output apps/red-ui/src/assets/i18n/en.json --clean --sort --format namespaced-json && prettier apps/red-ui/src/assets/i18n/*.json --write", "postinstall": "ngcc --properties es2015 browser module main", "lint": "nx workspace-lint && nx lint", "lint-fix": "nx workspace-lint --fix && nx lint --fix", diff --git a/paligo-styles/manual-sidebar.scss b/paligo-styles/manual-sidebar.scss index 08c4d61ff..154892057 100644 --- a/paligo-styles/manual-sidebar.scss +++ b/paligo-styles/manual-sidebar.scss @@ -1,5 +1,5 @@ @import '../apps/red-ui/src/assets/styles/variables'; -@import '../apps/red-ui/src/assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; @import 'mixin'; .site-sidebar { diff --git a/paligo-styles/style.scss b/paligo-styles/style.scss index ef0bde074..797687275 100644 --- a/paligo-styles/style.scss +++ b/paligo-styles/style.scss @@ -1,5 +1,5 @@ @import '../apps/red-ui/src/assets/styles/variables'; -@import '../apps/red-ui/src/assets/styles/red-mixins'; +@import 'libs/common-ui/src/assets/styles/mixins'; @import 'fonts'; @import 'header'; @import 'homepage'; From 3e12f4bfa7763783dc86166c792d477d3a5a8179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 25 Aug 2021 14:33:04 +0300 Subject: [PATCH 3/3] Error interceptor --- apps/red-ui/src/app/app.module.ts | 6 ++++++ .../default-colors-screen.component.ts | 2 +- .../digital-signature-screen.component.ts | 3 +-- .../dossier-overview-screen.component.ts | 12 ++--------- .../src/app/utils/server-error-interceptor.ts | 20 +++++++++++++++++++ libs/common-ui | 2 +- 6 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 apps/red-ui/src/app/utils/server-error-interceptor.ts diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts index 6d9101e6b..a1d9b56cd 100644 --- a/apps/red-ui/src/app/app.module.ts +++ b/apps/red-ui/src/app/app.module.ts @@ -37,6 +37,7 @@ import { PruningTranslationLoader } from '@utils/pruning-translation-loader'; import { DatePipe } from '@shared/pipes/date.pipe'; import * as links from '../assets/help-mode/links.json'; import { HELP_DOCS, IqserHelpModeModule } from '@iqser/common-ui'; +import { ServerErrorInterceptor } from '@utils/server-error-interceptor'; export function httpLoaderFactory(httpClient: HttpClient) { return new PruningTranslationLoader(httpClient, '/assets/i18n/', '.json'); @@ -96,6 +97,11 @@ const components = [ ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }) ], providers: [ + { + provide: HTTP_INTERCEPTORS, + multi: true, + useClass: ServerErrorInterceptor + }, { provide: ErrorHandler, useClass: GlobalErrorHandler diff --git a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts index e8159746a..3fdb6fe75 100644 --- a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts @@ -3,7 +3,7 @@ import { AppStateService } from '@state/app-state.service'; import { Colors, DictionaryControllerService } from '@redaction/red-ui-http'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { CircleButtonTypes, DefaultListingServices, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui'; +import { CircleButtonTypes, DefaultListingServices, Listable, ListingComponent, LoadingService, TableColumnConfig } from '@iqser/common-ui'; import { DefaultColorType } from '@models/default-color-key.model'; import { defaultColorsTranslations } from '../../translations/default-colors-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; diff --git a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts index d763dc76c..e4f5ca79c 100644 --- a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts @@ -1,9 +1,8 @@ import { Component, OnDestroy } from '@angular/core'; import { DigitalSignature, DigitalSignatureControllerService } from '@redaction/red-ui-http'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { AutoUnsubscribe, IconButtonTypes, Toaster } from '@iqser/common-ui'; import { lastIndexOfEnd } from '@utils/functions'; -import { AutoUnsubscribe, IconButtonTypes, LoadingService } from '@iqser/common-ui'; +import { AutoUnsubscribe, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; import { RouterHistoryService } from '@services/router-history.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts index 54f96ccf4..1497fb6dd 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts @@ -10,15 +10,6 @@ import { TemplateRef, ViewChild } from '@angular/core'; -import { - CircleButtonTypes, - DefaultListingServices, - keyChecker, - ListingComponent, - NestedFilter, - TableColumnConfig, - Toaster -} from '@iqser/common-ui'; import { AppStateService } from '@state/app-state.service'; import { FileDropOverlayService } from '@upload-download/services/file-drop-overlay.service'; import { FileUploadModel } from '@upload-download/model/file-upload.model'; @@ -45,7 +36,8 @@ import { ListingComponent, LoadingService, NestedFilter, - TableColumnConfig + TableColumnConfig, + Toaster } from '@iqser/common-ui'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; diff --git a/apps/red-ui/src/app/utils/server-error-interceptor.ts b/apps/red-ui/src/app/utils/server-error-interceptor.ts new file mode 100644 index 000000000..d0ac65079 --- /dev/null +++ b/apps/red-ui/src/app/utils/server-error-interceptor.ts @@ -0,0 +1,20 @@ +import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { ErrorService } from '@iqser/common-ui'; +import { Observable, throwError } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; + +@Injectable() +export class ServerErrorInterceptor implements HttpInterceptor { + constructor(private readonly _errorService: ErrorService) {} + + intercept(req: HttpRequest, next: HttpHandler): Observable> { + return next.handle(req).pipe( + map((event: HttpEvent) => event), + catchError((error: HttpErrorResponse) => { + if ([0, 500].includes(error.status)) this._errorService.set(error); + return throwError(error); + }) + ); + } +} diff --git a/libs/common-ui b/libs/common-ui index 69135886a..82f27f1ed 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 69135886ab3cfb65843e87e2407c40fc30960f1f +Subproject commit 82f27f1ed9ff98c98877c4cf128b4b41832a1724