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] 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