RED-9321: lazy load watermarks routes.
This commit is contained in:
parent
1378543bf7
commit
6924cc1799
@ -104,7 +104,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'watermarks',
|
path: 'watermarks',
|
||||||
loadChildren: () => import('./screens/watermark/watermark.module').then(m => m.WatermarkModule),
|
loadChildren: () => import('./screens/watermark/watermark.routes'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'reports',
|
path: 'reports',
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
import { Component, EventEmitter, Output } from '@angular/core';
|
import { Component, EventEmitter, Output } from '@angular/core';
|
||||||
|
import { MatIcon } from '@angular/material/icon';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-paginator',
|
selector: 'redaction-paginator',
|
||||||
templateUrl: './paginator.component.html',
|
templateUrl: './paginator.component.html',
|
||||||
styleUrls: ['./paginator.component.scss'],
|
styleUrls: ['./paginator.component.scss'],
|
||||||
|
standalone: true,
|
||||||
|
imports: [MatIcon],
|
||||||
})
|
})
|
||||||
export class PaginatorComponent {
|
export class PaginatorComponent {
|
||||||
@Output() readonly changePage = new EventEmitter<number>();
|
@Output() readonly changePage = new EventEmitter<number>();
|
||||||
|
|||||||
@ -1,10 +1,18 @@
|
|||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, ViewChild } from '@angular/core';
|
import { ChangeDetectorRef, Component, ElementRef, inject, OnInit, ViewChild } from '@angular/core';
|
||||||
import { FormBuilder, FormGroup } from '@angular/forms';
|
import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { environment } from '@environments/environment';
|
import { environment } from '@environments/environment';
|
||||||
import { getConfig, IconButtonTypes, IqserPermissionsService, LoadingService, Toaster } from '@iqser/common-ui';
|
import {
|
||||||
|
getConfig,
|
||||||
|
HasScrollbarDirective,
|
||||||
|
IconButtonComponent,
|
||||||
|
IconButtonTypes,
|
||||||
|
IqserPermissionsService,
|
||||||
|
LoadingService,
|
||||||
|
Toaster,
|
||||||
|
} from '@iqser/common-ui';
|
||||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
||||||
import { AsControl, Debounce, getParam, trackByFactory, UI_ROOT_PATH_FN } from '@iqser/common-ui/lib/utils';
|
import { AsControl, Debounce, getParam, trackByFactory, UI_ROOT_PATH_FN } from '@iqser/common-ui/lib/utils';
|
||||||
import WebViewer, { WebViewerInstance } from '@pdftron/webviewer';
|
import WebViewer, { WebViewerInstance } from '@pdftron/webviewer';
|
||||||
@ -31,6 +39,13 @@ import { UserPreferenceService } from '@users/user-preference.service';
|
|||||||
import { stampPDFPage } from '@utils/page-stamper';
|
import { stampPDFPage } from '@utils/page-stamper';
|
||||||
import { BehaviorSubject, firstValueFrom, Observable, of } from 'rxjs';
|
import { BehaviorSubject, firstValueFrom, Observable, of } from 'rxjs';
|
||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
|
import { PaginatorComponent } from '../paginator/paginator.component';
|
||||||
|
import { AsyncPipe, NgClass, NgForOf, NgIf } from '@angular/common';
|
||||||
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
import { MatTooltip } from '@angular/material/tooltip';
|
||||||
|
import { MatIcon } from '@angular/material/icon';
|
||||||
|
import { MatSlider, MatSliderThumb } from '@angular/material/slider';
|
||||||
|
import { ColorPickerModule } from 'ngx-color-picker';
|
||||||
|
|
||||||
export const DEFAULT_WATERMARK: Partial<IWatermark> = {
|
export const DEFAULT_WATERMARK: Partial<IWatermark> = {
|
||||||
text: 'Watermark',
|
text: 'Watermark',
|
||||||
@ -59,6 +74,23 @@ interface WatermarkForm {
|
|||||||
@Component({
|
@Component({
|
||||||
templateUrl: './watermark-screen.component.html',
|
templateUrl: './watermark-screen.component.html',
|
||||||
styleUrls: ['./watermark-screen.component.scss'],
|
styleUrls: ['./watermark-screen.component.scss'],
|
||||||
|
standalone: true,
|
||||||
|
imports: [
|
||||||
|
PaginatorComponent,
|
||||||
|
NgIf,
|
||||||
|
IconButtonComponent,
|
||||||
|
TranslateModule,
|
||||||
|
AsyncPipe,
|
||||||
|
ReactiveFormsModule,
|
||||||
|
HasScrollbarDirective,
|
||||||
|
NgForOf,
|
||||||
|
NgClass,
|
||||||
|
MatTooltip,
|
||||||
|
MatIcon,
|
||||||
|
MatSlider,
|
||||||
|
ColorPickerModule,
|
||||||
|
MatSliderThumb,
|
||||||
|
],
|
||||||
})
|
})
|
||||||
export class WatermarkScreenComponent implements OnInit {
|
export class WatermarkScreenComponent implements OnInit {
|
||||||
readonly iconButtonTypes = IconButtonTypes;
|
readonly iconButtonTypes = IconButtonTypes;
|
||||||
|
|||||||
@ -1,78 +0,0 @@
|
|||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { RouterModule } from '@angular/router';
|
|
||||||
import { WatermarkScreenComponent } from './watermark-screen/watermark-screen.component';
|
|
||||||
import { WatermarksListingScreenComponent } from './watermarks-listing/watermarks-listing-screen.component';
|
|
||||||
import {
|
|
||||||
CircleButtonComponent,
|
|
||||||
CompositeRouteGuard,
|
|
||||||
HasScrollbarDirective,
|
|
||||||
IconButtonComponent,
|
|
||||||
IqserAllowDirective,
|
|
||||||
IqserHelpModeModule,
|
|
||||||
IqserListingModule,
|
|
||||||
IqserRoutes,
|
|
||||||
} from '@iqser/common-ui';
|
|
||||||
import { RedRoleGuard } from '@users/red-role.guard';
|
|
||||||
import { WATERMARK_ID } from '@red/domain';
|
|
||||||
import { watermarkExistsGuard } from '@guards/watermark-exists.guard';
|
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
|
||||||
import { PaginatorComponent } from './paginator/paginator.component';
|
|
||||||
import { MatIconModule } from '@angular/material/icon';
|
|
||||||
import { ReactiveFormsModule } from '@angular/forms';
|
|
||||||
import { MatSliderModule } from '@angular/material/slider';
|
|
||||||
import { ColorPickerModule } from 'ngx-color-picker';
|
|
||||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
||||||
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
||||||
import { InitialsAvatarComponent, IqserAuthGuard, IqserUsersModule } from '@iqser/common-ui/lib/users';
|
|
||||||
|
|
||||||
const routes: IqserRoutes = [
|
|
||||||
{
|
|
||||||
path: '',
|
|
||||||
component: WatermarksListingScreenComponent,
|
|
||||||
canActivate: [CompositeRouteGuard],
|
|
||||||
data: {
|
|
||||||
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'create',
|
|
||||||
component: WatermarkScreenComponent,
|
|
||||||
canActivate: [CompositeRouteGuard],
|
|
||||||
data: {
|
|
||||||
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: `:${WATERMARK_ID}`,
|
|
||||||
component: WatermarkScreenComponent,
|
|
||||||
canActivate: [CompositeRouteGuard, watermarkExistsGuard()],
|
|
||||||
data: {
|
|
||||||
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
declarations: [WatermarkScreenComponent, WatermarksListingScreenComponent, PaginatorComponent],
|
|
||||||
imports: [
|
|
||||||
RouterModule.forChild(routes),
|
|
||||||
CommonModule,
|
|
||||||
IqserUsersModule,
|
|
||||||
TranslateModule,
|
|
||||||
IqserListingModule,
|
|
||||||
IqserHelpModeModule,
|
|
||||||
MatIconModule,
|
|
||||||
IconButtonComponent,
|
|
||||||
ReactiveFormsModule,
|
|
||||||
MatSliderModule,
|
|
||||||
ColorPickerModule,
|
|
||||||
MatSlideToggleModule,
|
|
||||||
CircleButtonComponent,
|
|
||||||
HasScrollbarDirective,
|
|
||||||
IqserAllowDirective,
|
|
||||||
MatTooltipModule,
|
|
||||||
InitialsAvatarComponent,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
export class WatermarkModule {}
|
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
import { WatermarksListingScreenComponent } from './watermarks-listing/watermarks-listing-screen.component';
|
||||||
|
import { CompositeRouteGuard, IqserRoutes } from '@iqser/common-ui';
|
||||||
|
import { IqserAuthGuard } from '@common-ui/users';
|
||||||
|
import { RedRoleGuard } from '@users/red-role.guard';
|
||||||
|
import { WatermarkScreenComponent } from './watermark-screen/watermark-screen.component';
|
||||||
|
import { WATERMARK_ID } from '@red/domain';
|
||||||
|
import { watermarkExistsGuard } from '@guards/watermark-exists.guard';
|
||||||
|
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: WatermarksListingScreenComponent,
|
||||||
|
canActivate: [CompositeRouteGuard],
|
||||||
|
data: {
|
||||||
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'create',
|
||||||
|
component: WatermarkScreenComponent,
|
||||||
|
canActivate: [CompositeRouteGuard],
|
||||||
|
data: {
|
||||||
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: `:${WATERMARK_ID}`,
|
||||||
|
component: WatermarkScreenComponent,
|
||||||
|
canActivate: [CompositeRouteGuard, watermarkExistsGuard()],
|
||||||
|
data: {
|
||||||
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
] satisfies IqserRoutes;
|
||||||
@ -1,8 +1,12 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import {
|
import {
|
||||||
|
CircleButtonComponent,
|
||||||
|
IconButtonComponent,
|
||||||
IconButtonTypes,
|
IconButtonTypes,
|
||||||
IConfirmationDialogData,
|
IConfirmationDialogData,
|
||||||
|
IqserAllowDirective,
|
||||||
|
IqserListingModule,
|
||||||
IqserPermissionsService,
|
IqserPermissionsService,
|
||||||
ListingComponent,
|
ListingComponent,
|
||||||
listingProvidersFactory,
|
listingProvidersFactory,
|
||||||
@ -10,18 +14,35 @@ import {
|
|||||||
TableColumnConfig,
|
TableColumnConfig,
|
||||||
Toaster,
|
Toaster,
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
import { getCurrentUser } from '@iqser/common-ui/lib/users';
|
import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users';
|
||||||
import { getParam } from '@iqser/common-ui/lib/utils';
|
import { getParam } from '@iqser/common-ui/lib/utils';
|
||||||
import { DOSSIER_TEMPLATE_ID, User, Watermark } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID, User, Watermark } from '@red/domain';
|
||||||
import { WatermarkService } from '@services/entity-services/watermark.service';
|
import { WatermarkService } from '@services/entity-services/watermark.service';
|
||||||
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
|
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
|
||||||
import { Roles } from '@users/roles';
|
import { Roles } from '@users/roles';
|
||||||
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
||||||
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
import { RouterLink } from '@angular/router';
|
||||||
|
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
||||||
|
import { AsyncPipe, DatePipe } from '@angular/common';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
templateUrl: './watermarks-listing-screen.component.html',
|
templateUrl: './watermarks-listing-screen.component.html',
|
||||||
styleUrls: ['./watermarks-listing-screen.component.scss'],
|
styleUrls: ['./watermarks-listing-screen.component.scss'],
|
||||||
providers: listingProvidersFactory(WatermarksListingScreenComponent),
|
providers: listingProvidersFactory(WatermarksListingScreenComponent),
|
||||||
|
standalone: true,
|
||||||
|
imports: [
|
||||||
|
IqserListingModule,
|
||||||
|
TranslateModule,
|
||||||
|
IconButtonComponent,
|
||||||
|
IqserAllowDirective,
|
||||||
|
RouterLink,
|
||||||
|
MatSlideToggle,
|
||||||
|
InitialsAvatarComponent,
|
||||||
|
DatePipe,
|
||||||
|
CircleButtonComponent,
|
||||||
|
AsyncPipe,
|
||||||
|
],
|
||||||
})
|
})
|
||||||
export class WatermarksListingScreenComponent extends ListingComponent<Watermark> implements OnInit {
|
export class WatermarksListingScreenComponent extends ListingComponent<Watermark> implements OnInit {
|
||||||
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
|
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user