RED-4718: use initials avatar & user button from common-ui
This commit is contained in:
parent
66df9552bb
commit
2e34c6b2c7
@ -14,6 +14,7 @@
|
|||||||
"@services/**",
|
"@services/**",
|
||||||
"@components/**",
|
"@components/**",
|
||||||
"@guards/**",
|
"@guards/**",
|
||||||
|
"@users/**",
|
||||||
"@i18n/**",
|
"@i18n/**",
|
||||||
"@utils/**",
|
"@utils/**",
|
||||||
"@models/**",
|
"@models/**",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
||||||
import { AuthGuard, CompositeRouteGuard, CustomRouteReuseStrategy } from '@iqser/common-ui';
|
import { CompositeRouteGuard, CustomRouteReuseStrategy, IqserAuthGuard } from '@iqser/common-ui';
|
||||||
import { RedRoleGuard } from './modules/auth/red-role.guard';
|
import { RedRoleGuard } from '@users/red-role.guard';
|
||||||
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
||||||
import { RouteReuseStrategy, RouterModule, Routes } from '@angular/router';
|
import { RouteReuseStrategy, RouterModule, Routes } from '@angular/router';
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
@ -44,7 +44,7 @@ const routes: Routes = [
|
|||||||
loadChildren: () => import('./modules/dashboard/dashboard.module').then(m => m.DashboardModule),
|
loadChildren: () => import('./modules/dashboard/dashboard.module').then(m => m.DashboardModule),
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, DossierTemplatesGuard, DashboardGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, DossierTemplatesGuard, DashboardGuard],
|
||||||
requiredRoles: ['RED_USER'],
|
requiredRoles: ['RED_USER'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -53,7 +53,7 @@ const routes: Routes = [
|
|||||||
component: DownloadsListScreenComponent,
|
component: DownloadsListScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -61,7 +61,7 @@ const routes: Routes = [
|
|||||||
loadChildren: () => import('./modules/search/search.module').then(m => m.SearchModule),
|
loadChildren: () => import('./modules/search/search.module').then(m => m.SearchModule),
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_USER'],
|
requiredRoles: ['RED_USER'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -70,7 +70,7 @@ const routes: Routes = [
|
|||||||
loadChildren: () => import('./modules/trash/trash.module').then(m => m.TrashModule),
|
loadChildren: () => import('./modules/trash/trash.module').then(m => m.TrashModule),
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, DossiersGuard, TrashGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, DossiersGuard, TrashGuard],
|
||||||
requiredRoles: ['RED_USER'],
|
requiredRoles: ['RED_USER'],
|
||||||
dossiersService: ACTIVE_DOSSIERS_SERVICE,
|
dossiersService: ACTIVE_DOSSIERS_SERVICE,
|
||||||
},
|
},
|
||||||
@ -134,7 +134,7 @@ const routes: Routes = [
|
|||||||
],
|
],
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, DossierTemplatesGuard, DashboardGuard, DossierTemplateExistsGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, DossierTemplatesGuard, DashboardGuard, DossierTemplateExistsGuard],
|
||||||
requiredRoles: ['RED_USER'],
|
requiredRoles: ['RED_USER'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -143,7 +143,7 @@ const routes: Routes = [
|
|||||||
{
|
{
|
||||||
path: 'auth-error',
|
path: 'auth-error',
|
||||||
component: AuthErrorComponent,
|
component: AuthErrorComponent,
|
||||||
canActivate: [AuthGuard],
|
canActivate: [IqserAuthGuard],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '**',
|
path: '**',
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
import { Component, Inject, Renderer2, ViewContainerRef } from '@angular/core';
|
import { Component, Inject, Renderer2, ViewContainerRef } from '@angular/core';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { REDDocumentViewer } from './modules/pdf-viewer/services/document-viewer.service';
|
import { REDDocumentViewer } from './modules/pdf-viewer/services/document-viewer.service';
|
||||||
import { DossiersChangesService } from '@services/dossiers/dossier-changes.service';
|
import { DossiersChangesService } from '@services/dossiers/dossier-changes.service';
|
||||||
import { DOCUMENT } from '@angular/common';
|
import { DOCUMENT } from '@angular/common';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-root',
|
selector: 'redaction-root',
|
||||||
@ -20,10 +20,10 @@ export class AppComponent {
|
|||||||
private readonly _userPreferenceService: UserPreferenceService,
|
private readonly _userPreferenceService: UserPreferenceService,
|
||||||
readonly documentViewer: REDDocumentViewer,
|
readonly documentViewer: REDDocumentViewer,
|
||||||
private readonly _dossierChangesService: DossiersChangesService,
|
private readonly _dossierChangesService: DossiersChangesService,
|
||||||
@Inject(DOCUMENT) private document: Document,
|
@Inject(DOCUMENT) private readonly _document: Document,
|
||||||
private renderer: Renderer2,
|
private readonly _renderer: Renderer2,
|
||||||
) {
|
) {
|
||||||
this.renderer.addClass(this.document.body, _userPreferenceService.getTheme());
|
this._renderer.addClass(this._document.body, _userPreferenceService.getTheme());
|
||||||
// TODO: Find a better place to initialize dossiers refresh
|
// TODO: Find a better place to initialize dossiers refresh
|
||||||
if (_userService.currentUser?.isUser) {
|
if (_userService.currentUser?.isUser) {
|
||||||
_dossierChangesService.initializeRefresh();
|
_dossierChangesService.initializeRefresh();
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { BrowserModule, Title } from '@angular/platform-browser';
|
import { BrowserModule } from '@angular/platform-browser';
|
||||||
import { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';
|
import { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
@ -7,11 +7,11 @@ import { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common
|
|||||||
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
||||||
import { MissingTranslationHandler, TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
import { MissingTranslationHandler, TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||||
import {
|
import {
|
||||||
AuthModule as IqserAuthModule,
|
|
||||||
BASE_HREF,
|
BASE_HREF,
|
||||||
CachingModule,
|
CachingModule,
|
||||||
CommonUiModule,
|
CommonUiModule,
|
||||||
IqserHelpModeModule,
|
IqserHelpModeModule,
|
||||||
|
IqserUsersModule,
|
||||||
LanguageService,
|
LanguageService,
|
||||||
MAX_RETRIES_ON_SERVER_ERROR,
|
MAX_RETRIES_ON_SERVER_ERROR,
|
||||||
SERVER_ERROR_SKIP_PATHS,
|
SERVER_ERROR_SKIP_PATHS,
|
||||||
@ -42,8 +42,8 @@ import * as links from '../assets/help-mode/links.json';
|
|||||||
import { KeycloakService } from 'keycloak-angular';
|
import { KeycloakService } from 'keycloak-angular';
|
||||||
import { GeneralSettingsService } from '@services/general-settings.service';
|
import { GeneralSettingsService } from '@services/general-settings.service';
|
||||||
import { BreadcrumbsComponent } from '@components/breadcrumbs/breadcrumbs.component';
|
import { BreadcrumbsComponent } from '@components/breadcrumbs/breadcrumbs.component';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||||
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
|
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
|
||||||
import { FeaturesService } from '@services/features.service';
|
import { FeaturesService } from '@services/features.service';
|
||||||
@ -56,7 +56,7 @@ import { PdfViewerModule } from './modules/pdf-viewer/pdf-viewer.module';
|
|||||||
import { LicenseService } from '@services/license.service';
|
import { LicenseService } from '@services/license.service';
|
||||||
import { TenantIdInterceptor } from '@utils/tenant-id-interceptor';
|
import { TenantIdInterceptor } from '@utils/tenant-id-interceptor';
|
||||||
import { UI_CACHES } from '@utils/constants';
|
import { UI_CACHES } from '@utils/constants';
|
||||||
import { RedRoleGuard } from './modules/auth/red-role.guard';
|
import { RedRoleGuard } from '@users/red-role.guard';
|
||||||
|
|
||||||
export function httpLoaderFactory(httpClient: HttpClient, configService: ConfigService): PruningTranslationLoader {
|
export function httpLoaderFactory(httpClient: HttpClient, configService: ConfigService): PruningTranslationLoader {
|
||||||
return new PruningTranslationLoader(httpClient, '/assets/i18n/', `.json?version=${configService.values.FRONTEND_APP_VERSION}`);
|
return new PruningTranslationLoader(httpClient, '/assets/i18n/', `.json?version=${configService.values.FRONTEND_APP_VERSION}`);
|
||||||
@ -82,7 +82,7 @@ export const appModuleFactory = (config: AppConfig) => {
|
|||||||
configService: ConfigService,
|
configService: ConfigService,
|
||||||
configServiceFactory: () => new ConfigService(config),
|
configServiceFactory: () => new ConfigService(config),
|
||||||
}),
|
}),
|
||||||
IqserAuthModule.forRoot({
|
IqserUsersModule.forRoot({
|
||||||
existingUserService: UserService,
|
existingUserService: UserService,
|
||||||
existingRoleGuard: RedRoleGuard,
|
existingRoleGuard: RedRoleGuard,
|
||||||
}),
|
}),
|
||||||
@ -168,7 +168,6 @@ export const appModuleFactory = (config: AppConfig) => {
|
|||||||
deps: [
|
deps: [
|
||||||
BASE_HREF,
|
BASE_HREF,
|
||||||
KeycloakService,
|
KeycloakService,
|
||||||
Title,
|
|
||||||
ConfigService,
|
ConfigService,
|
||||||
SystemPreferencesService,
|
SystemPreferencesService,
|
||||||
FeaturesService,
|
FeaturesService,
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { ConfigService } from '@services/config.service';
|
import { ConfigService } from '@services/config.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
<redaction-notifications [iqserHelpMode]="'open_notifications'"></redaction-notifications>
|
<redaction-notifications [iqserHelpMode]="'open_notifications'"></redaction-notifications>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<redaction-user-button [matMenuTriggerFor]="userMenu" [userId]="currentUser.id" id="userMenu"></redaction-user-button>
|
<iqser-user-button [matMenuTriggerFor]="userMenu" id="userMenu"></iqser-user-button>
|
||||||
|
|
||||||
<mat-menu #userMenu="matMenu" xPosition="before">
|
<mat-menu #userMenu="matMenu" xPosition="before">
|
||||||
<ng-container *ngFor="let item of userMenuItems; trackBy: trackByName">
|
<ng-container *ngFor="let item of userMenuItems; trackBy: trackByName">
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { NavigationStart, Router } from '@angular/router';
|
import { NavigationStart, Router } from '@angular/router';
|
||||||
import { Title } from '@angular/platform-browser';
|
import { Title } from '@angular/platform-browser';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|||||||
@ -23,7 +23,8 @@
|
|||||||
class="notification"
|
class="notification"
|
||||||
mat-menu-item
|
mat-menu-item
|
||||||
>
|
>
|
||||||
<redaction-initials-avatar [user]="notification.userId"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="notification.userId"></iqser-initials-avatar>
|
||||||
|
|
||||||
<div class="notification-content">
|
<div class="notification-content">
|
||||||
<div [innerHTML]="notification.message"></div>
|
<div [innerHTML]="notification.message"></div>
|
||||||
<div class="small-label mt-2">{{ notification.time }}</div>
|
<div class="small-label mt-2">{{ notification.time }}</div>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
import { AuthGuard, CompositeRouteGuard } from '@iqser/common-ui';
|
import { CompositeRouteGuard, IqserAuthGuard } from '@iqser/common-ui';
|
||||||
import { RedRoleGuard } from '../auth/red-role.guard';
|
import { RedRoleGuard } from '@users/red-role.guard';
|
||||||
import { BaseAccountScreenComponent } from './base-account-screen/base-account-screen-component';
|
import { BaseAccountScreenComponent } from './base-account-screen/base-account-screen-component';
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
@ -11,7 +11,7 @@ const routes: Routes = [
|
|||||||
component: BaseAccountScreenComponent,
|
component: BaseAccountScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
loadChildren: () => import('./screens/user-profile/user-profile.module').then(m => m.UserProfileModule),
|
loadChildren: () => import('./screens/user-profile/user-profile.module').then(m => m.UserProfileModule),
|
||||||
},
|
},
|
||||||
@ -20,7 +20,7 @@ const routes: Routes = [
|
|||||||
component: BaseAccountScreenComponent,
|
component: BaseAccountScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_USER'],
|
requiredRoles: ['RED_USER'],
|
||||||
},
|
},
|
||||||
loadChildren: () => import('./screens/notifications/notifications.module').then(m => m.NotificationsModule),
|
loadChildren: () => import('./screens/notifications/notifications.module').then(m => m.NotificationsModule),
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
|
|
||||||
interface NavItem {
|
interface NavItem {
|
||||||
readonly label: string;
|
readonly label: string;
|
||||||
|
|||||||
@ -6,10 +6,10 @@ import { BaseFormComponent, LanguageService, LoadingService } from '@iqser/commo
|
|||||||
import { IProfile } from '@red/domain';
|
import { IProfile } from '@red/domain';
|
||||||
import { languagesTranslations } from '@translations/languages-translations';
|
import { languagesTranslations } from '@translations/languages-translations';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { ConfigService } from '@services/config.service';
|
import { ConfigService } from '@services/config.service';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-user-profile-screen',
|
selector: 'redaction-user-profile-screen',
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { AuthGuard, CompositeRouteGuard } from '@iqser/common-ui';
|
import { CompositeRouteGuard, IqserAuthGuard } from '@iqser/common-ui';
|
||||||
import { RedRoleGuard } from '../auth/red-role.guard';
|
import { RedRoleGuard } from '@users/red-role.guard';
|
||||||
import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component';
|
import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component';
|
||||||
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
|
import { PendingChangesGuard } from '@guards/can-deactivate.guard';
|
||||||
import { FileAttributesListingScreenComponent } from './screens/file-attributes-listing/file-attributes-listing-screen.component';
|
import { FileAttributesListingScreenComponent } from './screens/file-attributes-listing/file-attributes-listing-screen.component';
|
||||||
@ -36,7 +36,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: EntitiesListingScreenComponent,
|
component: EntitiesListingScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -45,7 +45,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
loadChildren: () => import('./screens/entities/entities.module').then(m => m.EntitiesModule),
|
loadChildren: () => import('./screens/entities/entities.module').then(m => m.EntitiesModule),
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, EntityExistsGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, EntityExistsGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -55,7 +55,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: BaseDossierTemplateScreenComponent,
|
component: BaseDossierTemplateScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
loadChildren: () => import('./screens/rules/rules.module').then(m => m.RulesModule),
|
loadChildren: () => import('./screens/rules/rules.module').then(m => m.RulesModule),
|
||||||
},
|
},
|
||||||
@ -64,7 +64,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: FileAttributesListingScreenComponent,
|
component: FileAttributesListingScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -77,7 +77,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: BaseDossierTemplateScreenComponent,
|
component: BaseDossierTemplateScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
loadChildren: () => import('./screens/reports/reports.module').then(m => m.ReportsModule),
|
loadChildren: () => import('./screens/reports/reports.module').then(m => m.ReportsModule),
|
||||||
},
|
},
|
||||||
@ -86,7 +86,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: DossierAttributesListingScreenComponent,
|
component: DossierAttributesListingScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -94,7 +94,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: DossierStatesListingScreenComponent,
|
component: DossierStatesListingScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -102,7 +102,7 @@ const dossierTemplateIdRoutes: Routes = [
|
|||||||
component: DefaultColorsScreenComponent,
|
component: DefaultColorsScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -120,7 +120,7 @@ const dossierTemplatesRoutes: Routes = [
|
|||||||
component: BaseAdminScreenComponent,
|
component: BaseAdminScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
loadChildren: () =>
|
loadChildren: () =>
|
||||||
import('./screens/dossier-templates-listing/dossier-templates-listing.module').then(m => m.DossierTemplatesListingModule),
|
import('./screens/dossier-templates-listing/dossier-templates-listing.module').then(m => m.DossierTemplatesListingModule),
|
||||||
@ -140,7 +140,7 @@ const routes: Routes = [
|
|||||||
children: dossierTemplatesRoutes,
|
children: dossierTemplatesRoutes,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, DossierTemplatesGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, DossierTemplatesGuard],
|
||||||
requiredRoles: ['RED_MANAGER', 'RED_ADMIN'],
|
requiredRoles: ['RED_MANAGER', 'RED_ADMIN'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -155,7 +155,7 @@ const routes: Routes = [
|
|||||||
],
|
],
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_USER_ADMIN'],
|
requiredRoles: ['RED_USER_ADMIN'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -164,7 +164,7 @@ const routes: Routes = [
|
|||||||
component: BaseAdminScreenComponent,
|
component: BaseAdminScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, PermissionsGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, PermissionsGuard],
|
||||||
requiredRoles: ['RED_ADMIN'],
|
requiredRoles: ['RED_ADMIN'],
|
||||||
permissionsObject: 'Dossier',
|
permissionsObject: 'Dossier',
|
||||||
},
|
},
|
||||||
@ -175,7 +175,7 @@ const routes: Routes = [
|
|||||||
component: BaseAdminScreenComponent,
|
component: BaseAdminScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_ADMIN'],
|
requiredRoles: ['RED_ADMIN'],
|
||||||
},
|
},
|
||||||
loadChildren: () => import('./screens/license/license.module').then(m => m.LicenseModule),
|
loadChildren: () => import('./screens/license/license.module').then(m => m.LicenseModule),
|
||||||
@ -191,7 +191,7 @@ const routes: Routes = [
|
|||||||
],
|
],
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_ADMIN'],
|
requiredRoles: ['RED_ADMIN'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -206,7 +206,7 @@ const routes: Routes = [
|
|||||||
],
|
],
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_ADMIN'],
|
requiredRoles: ['RED_ADMIN'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -222,7 +222,7 @@ const routes: Routes = [
|
|||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
canDeactivate: [PendingChangesGuard],
|
canDeactivate: [PendingChangesGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
requiredRoles: ['RED_ADMIN'],
|
requiredRoles: ['RED_ADMIN'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
import { Component, HostBinding, Input, OnInit } from '@angular/core';
|
import { Component, HostBinding, Input, OnInit } from '@angular/core';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { adminSideNavTranslations } from '@translations/admin-side-nav-translations';
|
import { adminSideNavTranslations } from '@translations/admin-side-nav-translations';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { AdminSideNavType, AdminSideNavTypes, ENTITY_TYPE } from '@red/domain';
|
import { AdminSideNavType, AdminSideNavTypes, ENTITY_TYPE } from '@red/domain';
|
||||||
|
|
||||||
|
|||||||
@ -45,6 +45,7 @@ import { SystemPreferencesFormComponent } from './screens/general-config/system-
|
|||||||
import { ConfigureCertificateDialogComponent } from './dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component';
|
import { ConfigureCertificateDialogComponent } from './dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component';
|
||||||
import { PkcsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component';
|
import { PkcsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component';
|
||||||
import { KmsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component';
|
import { KmsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component';
|
||||||
|
import { IqserUsersModule } from '@iqser/common-ui';
|
||||||
|
|
||||||
const dialogs = [
|
const dialogs = [
|
||||||
AddEditCloneDossierTemplateDialogComponent,
|
AddEditCloneDossierTemplateDialogComponent,
|
||||||
@ -97,6 +98,6 @@ const components = [
|
|||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [...components],
|
declarations: [...components],
|
||||||
providers: [AdminDialogService, AuditService, DigitalSignatureService, RulesService, SmtpConfigService],
|
providers: [AdminDialogService, AuditService, DigitalSignatureService, RulesService, SmtpConfigService],
|
||||||
imports: [CommonModule, SharedModule, AdminRoutingModule, SharedAdminModule, A11yModule],
|
imports: [CommonModule, SharedModule, AdminRoutingModule, SharedAdminModule, A11yModule, IqserUsersModule],
|
||||||
})
|
})
|
||||||
export class AdminModule {}
|
export class AdminModule {}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { LoadingService, Toaster } from '@iqser/common-ui';
|
import { LoadingService, Toaster } from '@iqser/common-ui';
|
||||||
import { User } from '@red/domain';
|
import { User } from '@red/domain';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { BaseFormComponent, IconButtonTypes, IProfileUpdateRequest, LoadingServi
|
|||||||
import { rolesTranslations } from '@translations/roles-translations';
|
import { rolesTranslations } from '@translations/roles-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { User } from '@red/domain';
|
import { User } from '@red/domain';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { HttpStatusCode } from '@angular/common/http';
|
import { HttpStatusCode } from '@angular/common/http';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { UntypedFormGroup, Validators } from '@angular/forms';
|
import { UntypedFormGroup, Validators } from '@angular/forms';
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { ISmtpConfiguration } from '@red/domain';
|
import { ISmtpConfiguration } from '@red/domain';
|
||||||
import { BaseDialogComponent } from '@iqser/common-ui';
|
import { BaseDialogComponent } from '@iqser/common-ui';
|
||||||
|
|
||||||
|
|||||||
@ -38,19 +38,18 @@
|
|||||||
<mat-form-field class="no-label">
|
<mat-form-field class="no-label">
|
||||||
<mat-select (selectionChange)="filterChange()" formControlName="userId">
|
<mat-select (selectionChange)="filterChange()" formControlName="userId">
|
||||||
<mat-select-trigger>
|
<mat-select-trigger>
|
||||||
<redaction-initials-avatar
|
<iqser-initials-avatar
|
||||||
*ngIf="form.get('userId').value !== ALL_USERS"
|
*ngIf="form.get('userId').value !== ALL_USERS"
|
||||||
[user]="form.get('userId').value"
|
[user]="form.get('userId').value"
|
||||||
[withName]="true"
|
[withName]="true"
|
||||||
></redaction-initials-avatar>
|
></iqser-initials-avatar>
|
||||||
|
|
||||||
<div *ngIf="form.get('userId').value === ALL_USERS" [translate]="ALL_USERS"></div>
|
<div *ngIf="form.get('userId').value === ALL_USERS" [translate]="ALL_USERS"></div>
|
||||||
</mat-select-trigger>
|
</mat-select-trigger>
|
||||||
|
|
||||||
<mat-option *ngFor="let userId of userIds" [value]="userId">
|
<mat-option *ngFor="let userId of userIds" [value]="userId">
|
||||||
<redaction-initials-avatar
|
<iqser-initials-avatar *ngIf="userId !== ALL_USERS" [user]="userId" [withName]="true"></iqser-initials-avatar>
|
||||||
*ngIf="userId !== ALL_USERS"
|
|
||||||
[user]="userId"
|
|
||||||
[withName]="true"
|
|
||||||
></redaction-initials-avatar>
|
|
||||||
<div *ngIf="userId === ALL_USERS" [translate]="ALL_USERS"></div>
|
<div *ngIf="userId === ALL_USERS" [translate]="ALL_USERS"></div>
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
@ -91,7 +90,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="user-column cell">
|
<div class="user-column cell">
|
||||||
<redaction-initials-avatar [user]="log.userId" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="log.userId" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">{{ (translations[log.category] | translate) || log.category | humanize }}</div>
|
<div class="cell">{{ (translations[log.category] | translate) || log.category | humanize }}</div>
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { applyIntervalConstraints } from '@utils/date-inputs-utils';
|
|||||||
import { ListingComponent, listingProvidersFactory, LoadingService, TableColumnConfig } from '@iqser/common-ui';
|
import { ListingComponent, listingProvidersFactory, LoadingService, TableColumnConfig } from '@iqser/common-ui';
|
||||||
import { auditCategoriesTranslations } from '@translations/audit-categories-translations';
|
import { auditCategoriesTranslations } from '@translations/audit-categories-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { Audit, IAudit, IAuditResponse, IAuditSearchRequest } from '@red/domain';
|
import { Audit, IAudit, IAuditResponse, IAuditSearchRequest } from '@red/domain';
|
||||||
import { AuditService } from '../../services/audit.service';
|
import { AuditService } from '../../services/audit.service';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { AdminDialogService } from '../../services/admin-dialog.service';
|
|||||||
import { CircleButtonTypes, getParam, IListable, ListingComponent, listingProvidersFactory, TableColumnConfig } from '@iqser/common-ui';
|
import { CircleButtonTypes, getParam, IListable, ListingComponent, listingProvidersFactory, TableColumnConfig } from '@iqser/common-ui';
|
||||||
import { defaultColorsTranslations } from '@translations/default-colors-translations';
|
import { defaultColorsTranslations } from '@translations/default-colors-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { combineLatest } from 'rxjs';
|
import { combineLatest } from 'rxjs';
|
||||||
import { map, tap } from 'rxjs/operators';
|
import { map, tap } from 'rxjs/operators';
|
||||||
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
|
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
|
import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
|
import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
import { DigitalSignatureService } from '../../services/digital-signature.service';
|
import { DigitalSignatureService } from '../../services/digital-signature.service';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import { AdminDialogService } from '../../services/admin-dialog.service';
|
|||||||
import { DossierAttributesService } from '@services/entity-services/dossier-attributes.service';
|
import { DossierAttributesService } from '@services/entity-services/dossier-attributes.service';
|
||||||
import { dossierAttributeTypesTranslations } from '@translations/dossier-attribute-types-translations';
|
import { dossierAttributeTypesTranslations } from '@translations/dossier-attribute-types-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { DOSSIER_TEMPLATE_ID, DossierAttributeConfig, IDossierAttributeConfig } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID, DossierAttributeConfig, IDossierAttributeConfig } from '@red/domain';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
||||||
import { DossierTemplate } from '@red/domain';
|
import { DossierTemplate } from '@red/domain';
|
||||||
import {
|
import {
|
||||||
@ -10,7 +10,7 @@ import {
|
|||||||
LoadingService,
|
LoadingService,
|
||||||
TableColumnConfig,
|
TableColumnConfig,
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||||
|
|||||||
@ -5,11 +5,12 @@ import { SharedModule } from '@shared/shared.module';
|
|||||||
import { TableItemComponent } from './table-item/table-item.component';
|
import { TableItemComponent } from './table-item/table-item.component';
|
||||||
import { DossierTemplatesListingScreenComponent } from './dossier-templates-listing-screen/dossier-templates-listing-screen.component';
|
import { DossierTemplatesListingScreenComponent } from './dossier-templates-listing-screen/dossier-templates-listing-screen.component';
|
||||||
import { SharedAdminModule } from '../../shared/shared-admin.module';
|
import { SharedAdminModule } from '../../shared/shared-admin.module';
|
||||||
|
import { IqserUsersModule } from '@iqser/common-ui';
|
||||||
|
|
||||||
const routes = [{ path: '', component: DossierTemplatesListingScreenComponent }];
|
const routes = [{ path: '', component: DossierTemplatesListingScreenComponent }];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [TableItemComponent, DossierTemplatesListingScreenComponent],
|
declarations: [TableItemComponent, DossierTemplatesListingScreenComponent],
|
||||||
imports: [RouterModule.forChild(routes), CommonModule, SharedModule, SharedAdminModule],
|
imports: [RouterModule.forChild(routes), CommonModule, SharedModule, SharedAdminModule, IqserUsersModule],
|
||||||
})
|
})
|
||||||
export class DossierTemplatesListingModule {}
|
export class DossierTemplatesListingModule {}
|
||||||
|
|||||||
@ -11,11 +11,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell user-column">
|
<div class="cell user-column">
|
||||||
<redaction-initials-avatar
|
<iqser-initials-avatar
|
||||||
[defaultValue]="'unknown' | translate"
|
[defaultValue]="'unknown' | translate"
|
||||||
[user]="dossierTemplate.createdBy || 'system'"
|
[user]="dossierTemplate.createdBy || 'system'"
|
||||||
[withName]="true"
|
[withName]="true"
|
||||||
></redaction-initials-avatar>
|
></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { ActivatedRoute } from '@angular/router';
|
|||||||
import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component';
|
import { DictionaryManagerComponent } from '@shared/components/dictionary-manager/dictionary-manager.component';
|
||||||
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
import { DictionaryService } from '@services/entity-services/dictionary.service';
|
||||||
import { List, LoadingService } from '@iqser/common-ui';
|
import { List, LoadingService } from '@iqser/common-ui';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
||||||
import { DICTIONARY_TO_ENTRY_TYPE_MAP, DICTIONARY_TYPE_KEY_MAP, DictionaryType, DOSSIER_TEMPLATE_ID, ENTITY_TYPE, User } from '@red/domain';
|
import { DICTIONARY_TO_ENTRY_TYPE_MAP, DICTIONARY_TYPE_KEY_MAP, DictionaryType, DOSSIER_TEMPLATE_ID, ENTITY_TYPE, User } from '@red/domain';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, HostListener, ViewChild } from '@an
|
|||||||
import { Dictionary, DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@red/domain';
|
import { Dictionary, DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@red/domain';
|
||||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component';
|
import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component';
|
||||||
import { IqserEventTarget } from '@iqser/common-ui';
|
import { IqserEventTarget } from '@iqser/common-ui';
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import {
|
|||||||
Toaster,
|
Toaster,
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
import { fileAttributeTypesTranslations } from '@translations/file-attribute-types-translations';
|
import { fileAttributeTypesTranslations } from '@translations/file-attribute-types-translations';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { DOSSIER_TEMPLATE_ID, FileAttributeConfig, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID, FileAttributeConfig, IFileAttributeConfig, IFileAttributesConfig } from '@red/domain';
|
||||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { AfterViewInit, Component, inject, ViewChild } from '@angular/core';
|
import { AfterViewInit, Component, inject, ViewChild } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { GeneralConfigFormComponent } from './general-config-form/general-config-form.component';
|
import { GeneralConfigFormComponent } from './general-config-form/general-config-form.component';
|
||||||
import { SmtpFormComponent } from './smtp-form/smtp-form.component';
|
import { SmtpFormComponent } from './smtp-form/smtp-form.component';
|
||||||
import { BaseFormComponent } from '@iqser/common-ui';
|
import { BaseFormComponent } from '@iqser/common-ui';
|
||||||
|
|||||||
@ -3,11 +3,12 @@ import { CommonModule } from '@angular/common';
|
|||||||
import { DossierTemplateInfoScreenComponent } from './info-screen/dossier-template-info-screen.component';
|
import { DossierTemplateInfoScreenComponent } from './info-screen/dossier-template-info-screen.component';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { SharedModule } from '@shared/shared.module';
|
import { SharedModule } from '@shared/shared.module';
|
||||||
|
import { IqserUsersModule } from '@iqser/common-ui';
|
||||||
|
|
||||||
const routes = [{ path: '', component: DossierTemplateInfoScreenComponent }];
|
const routes = [{ path: '', component: DossierTemplateInfoScreenComponent }];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [DossierTemplateInfoScreenComponent],
|
declarations: [DossierTemplateInfoScreenComponent],
|
||||||
imports: [RouterModule.forChild(routes), CommonModule, SharedModule],
|
imports: [RouterModule.forChild(routes), CommonModule, SharedModule, IqserUsersModule],
|
||||||
})
|
})
|
||||||
export class DossierTemplateInfoModule {}
|
export class DossierTemplateInfoModule {}
|
||||||
|
|||||||
@ -4,11 +4,7 @@
|
|||||||
|
|
||||||
<div class="all-caps-label mt-24 mb-8" translate="dossier-template-info-screen.created-by"></div>
|
<div class="all-caps-label mt-24 mb-8" translate="dossier-template-info-screen.created-by"></div>
|
||||||
|
|
||||||
<redaction-initials-avatar
|
<iqser-initials-avatar [user]="dossierTemplate.createdBy || 'system'" [withName]="true" size="large"></iqser-initials-avatar>
|
||||||
[user]="dossierTemplate.createdBy || 'system'"
|
|
||||||
[withName]="true"
|
|
||||||
size="large"
|
|
||||||
></redaction-initials-avatar>
|
|
||||||
|
|
||||||
<div class="small-label stats-subtitle">
|
<div class="small-label stats-subtitle">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -12,8 +12,8 @@ import {
|
|||||||
import { DOSSIER_TEMPLATE_ID, Justification } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID, Justification } from '@red/domain';
|
||||||
import { JustificationsService } from '@services/entity-services/justifications.service';
|
import { JustificationsService } from '@services/entity-services/justifications.service';
|
||||||
import { JustificationsDialogService } from '../justifications-dialog.service';
|
import { JustificationsDialogService } from '../justifications-dialog.service';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|||||||
@ -2,8 +2,8 @@ import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core
|
|||||||
import { DOSSIER_TEMPLATE_ID, Justification } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID, Justification } from '@red/domain';
|
||||||
import { CircleButtonTypes, getParam } from '@iqser/common-ui';
|
import { CircleButtonTypes, getParam } from '@iqser/common-ui';
|
||||||
import { JustificationsDialogService } from '../justifications-dialog.service';
|
import { JustificationsDialogService } from '../justifications-dialog.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-table-item',
|
selector: 'redaction-table-item',
|
||||||
|
|||||||
@ -3,10 +3,10 @@ import { ConfigService } from '@services/config.service';
|
|||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { ButtonConfig, IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
import { ButtonConfig, IconButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
import { LicenseService } from '../../../../../services/license.service';
|
import { LicenseService } from '@services/license.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import { firstValueFrom } from 'rxjs';
|
|||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
import { permissionsTranslations } from '@translations/permissions-translations';
|
import { permissionsTranslations } from '@translations/permissions-translations';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { RouterHistoryService } from '@services/router-history.service';
|
import { RouterHistoryService } from '@services/router-history.service';
|
||||||
|
|
||||||
@UntilDestroy()
|
@UntilDestroy()
|
||||||
|
|||||||
@ -42,7 +42,7 @@
|
|||||||
<ng-template #tableItemTemplate let-entity="entity">
|
<ng-template #tableItemTemplate let-entity="entity">
|
||||||
<div *ngIf="cast(entity) as user">
|
<div *ngIf="cast(entity) as user">
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
<redaction-initials-avatar [showYou]="true" [user]="user" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [showYou]="true" [user]="user" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Component, inject, OnInit } from '@angular/core';
|
import { Component, inject, OnInit } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { DonutChartConfig, User, UserTypes } from '@red/domain';
|
import { DonutChartConfig, User, UserTypes } from '@red/domain';
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import { WatermarkService } from '@services/entity-services/watermark.service';
|
|||||||
import { firstValueFrom, Observable, of } from 'rxjs';
|
import { firstValueFrom, Observable, of } from 'rxjs';
|
||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
import { LicenseService } from '@services/license.service';
|
import { LicenseService } from '@services/license.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
|
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import { RouterModule } from '@angular/router';
|
|||||||
import { SharedModule } from '@shared/shared.module';
|
import { SharedModule } from '@shared/shared.module';
|
||||||
import { WatermarkScreenComponent } from './watermark-screen/watermark-screen.component';
|
import { WatermarkScreenComponent } from './watermark-screen/watermark-screen.component';
|
||||||
import { WatermarksListingScreenComponent } from './watermarks-listing/watermarks-listing-screen.component';
|
import { WatermarksListingScreenComponent } from './watermarks-listing/watermarks-listing-screen.component';
|
||||||
import { AuthGuard, CompositeRouteGuard } from '@iqser/common-ui';
|
import { CompositeRouteGuard, IqserAuthGuard, IqserUsersModule } from '@iqser/common-ui';
|
||||||
import { RedRoleGuard } from '../../../auth/red-role.guard';
|
import { RedRoleGuard } from '@users/red-role.guard';
|
||||||
import { WATERMARK_ID } from '@red/domain';
|
import { WATERMARK_ID } from '@red/domain';
|
||||||
import { WatermarkExistsGuard } from '@guards/watermark-exists.guard';
|
import { WatermarkExistsGuard } from '@guards/watermark-exists.guard';
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ const routes = [
|
|||||||
component: WatermarksListingScreenComponent,
|
component: WatermarksListingScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -23,7 +23,7 @@ const routes = [
|
|||||||
component: WatermarkScreenComponent,
|
component: WatermarkScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -31,13 +31,13 @@ const routes = [
|
|||||||
component: WatermarkScreenComponent,
|
component: WatermarkScreenComponent,
|
||||||
canActivate: [CompositeRouteGuard],
|
canActivate: [CompositeRouteGuard],
|
||||||
data: {
|
data: {
|
||||||
routeGuards: [AuthGuard, RedRoleGuard, WatermarkExistsGuard],
|
routeGuards: [IqserAuthGuard, RedRoleGuard, WatermarkExistsGuard],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [WatermarkScreenComponent, WatermarksListingScreenComponent],
|
declarations: [WatermarkScreenComponent, WatermarksListingScreenComponent],
|
||||||
imports: [RouterModule.forChild(routes), CommonModule, SharedModule],
|
imports: [RouterModule.forChild(routes), CommonModule, SharedModule, IqserUsersModule],
|
||||||
})
|
})
|
||||||
export class WatermarkModule {}
|
export class WatermarkModule {}
|
||||||
|
|||||||
@ -32,10 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell user-column">
|
<div class="cell user-column">
|
||||||
<redaction-initials-avatar
|
<iqser-initials-avatar [defaultValue]="'unknown' | translate" [user]="entity.createdBy || 'system'"></iqser-initials-avatar>
|
||||||
[defaultValue]="'unknown' | translate"
|
|
||||||
[user]="entity.createdBy || 'system'"
|
|
||||||
></redaction-initials-avatar>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import {
|
|||||||
Toaster,
|
Toaster,
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
import { DOSSIER_TEMPLATE_ID, Watermark } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID, Watermark } from '@red/domain';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
import { WatermarkService } from '@services/entity-services/watermark.service';
|
import { WatermarkService } from '@services/entity-services/watermark.service';
|
||||||
|
|||||||
@ -25,7 +25,7 @@ import { ConfirmDeleteDossierStateDialogComponent } from '../dialogs/confirm-del
|
|||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { firstValueFrom, forkJoin } from 'rxjs';
|
import { firstValueFrom, forkJoin } from 'rxjs';
|
||||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { IDossierAttributeConfig, IFileAttributeConfig, IReportTemplate } from '@red/domain';
|
import { IDossierAttributeConfig, IFileAttributeConfig, IReportTemplate } from '@red/domain';
|
||||||
import { ReportTemplateService } from '@services/report-template.service';
|
import { ReportTemplateService } from '@services/report-template.service';
|
||||||
import { ConfigureCertificateDialogComponent } from '../dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component';
|
import { ConfigureCertificateDialogComponent } from '../dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component';
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { Component, Input, OnInit } from '@angular/core';
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
import { AdminDialogService } from '../../../services/admin-dialog.service';
|
||||||
import { CircleButtonTypes, LoadingService } from '@iqser/common-ui';
|
import { CircleButtonTypes, LoadingService } from '@iqser/common-ui';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
import { DOSSIER_TEMPLATE_ID } from '@red/domain';
|
import { DOSSIER_TEMPLATE_ID } from '@red/domain';
|
||||||
|
|||||||
@ -6,14 +6,14 @@ import { TableItemComponent } from './components/table-item/table-item.component
|
|||||||
import { SharedModule } from '@shared/shared.module';
|
import { SharedModule } from '@shared/shared.module';
|
||||||
import { ConfigService } from './services/config.service';
|
import { ConfigService } from './services/config.service';
|
||||||
import { SharedDossiersModule } from '../shared-dossiers/shared-dossiers.module';
|
import { SharedDossiersModule } from '../shared-dossiers/shared-dossiers.module';
|
||||||
import { IqserHelpModeModule } from '@iqser/common-ui';
|
import { IqserHelpModeModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
|
|
||||||
const components = [TableItemComponent];
|
const components = [TableItemComponent];
|
||||||
const screens = [ArchivedDossiersScreenComponent];
|
const screens = [ArchivedDossiersScreenComponent];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [...components, ...screens],
|
declarations: [...components, ...screens],
|
||||||
imports: [CommonModule, ArchiveRoutingModule, SharedModule, SharedDossiersModule, IqserHelpModeModule],
|
imports: [CommonModule, ArchiveRoutingModule, SharedModule, SharedDossiersModule, IqserHelpModeModule, IqserUsersModule],
|
||||||
providers: [ConfigService],
|
providers: [ConfigService],
|
||||||
})
|
})
|
||||||
export class ArchiveModule {}
|
export class ArchiveModule {}
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell user-column">
|
<div class="cell user-column">
|
||||||
<redaction-initials-avatar [user]="dossier.ownerId" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="dossier.ownerId" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
|
|||||||
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
|
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
|
||||||
import { switchMap } from 'rxjs/operators';
|
import { switchMap } from 'rxjs/operators';
|
||||||
import { CircleButtonTypes, ScrollableParentView, ScrollableParentViews } from '@iqser/common-ui';
|
import { CircleButtonTypes, ScrollableParentView, ScrollableParentViews } from '@iqser/common-ui';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { IFilterGroup, keyChecker, NestedFilter, TableColumnConfig } from '@iqse
|
|||||||
import { Dossier, User } from '@red/domain';
|
import { Dossier, User } from '@red/domain';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { dossierMemberChecker, dossierTemplateChecker } from '@utils/index';
|
import { dossierMemberChecker, dossierTemplateChecker } from '@utils/index';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { DashboardStatsService } from '@services/dossier-templates/dashboard-stats.service';
|
import { DashboardStatsService } from '@services/dossier-templates/dashboard-stats.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-dashboard-screen',
|
selector: 'redaction-dashboard-screen',
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { Action, ActionTypes, Dossier, File } from '@red/domain';
|
|||||||
import { CircleButtonType, CircleButtonTypes, ListingModes, Required } from '@iqser/common-ui';
|
import { CircleButtonType, CircleButtonTypes, ListingModes, Required } from '@iqser/common-ui';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { LongPressEvent } from '@shared/directives/long-press.directive';
|
import { LongPressEvent } from '@shared/directives/long-press.directive';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { BulkActionsService } from '../../services/bulk-actions.service';
|
import { BulkActionsService } from '../../services/bulk-actions.service';
|
||||||
import { ConfigService } from '../../config.service';
|
import { ConfigService } from '../../config.service';
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
<div class="all-caps-label" translate="dossier-details.owner"></div>
|
<div class="all-caps-label" translate="dossier-details.owner"></div>
|
||||||
<div class="mt-12 d-flex">
|
<div class="mt-12 d-flex">
|
||||||
<ng-container *ngIf="!editingOwner; else editOwner">
|
<ng-container *ngIf="!editingOwner; else editOwner">
|
||||||
<redaction-initials-avatar [user]="dossier.ownerId" [withName]="true" color="gray" size="large"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="dossier.ownerId" [withName]="true" color="gray" size="large"></iqser-initials-avatar>
|
||||||
|
|
||||||
<iqser-circle-button
|
<iqser-circle-button
|
||||||
(action)="editingOwner = true"
|
(action)="editingOwner = true"
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import {
|
|||||||
User,
|
User,
|
||||||
} from '@red/domain';
|
} from '@red/domain';
|
||||||
import { TranslateChartService } from '@services/translate-chart.service';
|
import { TranslateChartService } from '@services/translate-chart.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { FilterService, getParam, ProgressBarConfigModel, shareLast, Toaster } from '@iqser/common-ui';
|
import { FilterService, getParam, ProgressBarConfigModel, shareLast, Toaster } from '@iqser/common-ui';
|
||||||
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
|
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
|||||||
import { ReanalysisService } from '@services/reanalysis.service';
|
import { ReanalysisService } from '@services/reanalysis.service';
|
||||||
import { map, take } from 'rxjs/operators';
|
import { map, take } from 'rxjs/operators';
|
||||||
import { saveAsCSV } from '@utils/csv-utils';
|
import { saveAsCSV } from '@utils/csv-utils';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { ConfigService } from '../../config.service';
|
import { ConfigService } from '../../config.service';
|
||||||
import { firstValueFrom } from 'rxjs';
|
import { firstValueFrom } from 'rxjs';
|
||||||
import { PrimaryFileAttributeService } from '@services/primary-file-attribute.service';
|
import { PrimaryFileAttributeService } from '@services/primary-file-attribute.service';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
|
||||||
import { annotationDefaultColorConfig, DefaultBasedColorType, File } from '@red/domain';
|
import { annotationDefaultColorConfig, DefaultBasedColorType, File } from '@red/domain';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { DossiersService } from '@services/dossiers/dossiers.service';
|
import { DossiersService } from '@services/dossiers/dossiers.service';
|
||||||
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
|
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="user-column cell">
|
<div class="user-column cell">
|
||||||
<redaction-initials-avatar [user]="file.assignee" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="file.assignee" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="user">
|
<div class="user">
|
||||||
<redaction-initials-avatar [user]="file.assignee"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="file.assignee"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ import { workflowFileStatusTranslations } from '@translations/file-status-transl
|
|||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { DossiersDialogService } from '../shared-dossiers/services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../shared-dossiers/services/dossiers-dialog.service';
|
||||||
import { annotationFilterChecker, RedactionFilterSorter } from '../../utils';
|
import { annotationFilterChecker, RedactionFilterSorter } from '../../utils';
|
||||||
import { workloadTranslations } from '@translations/workload-translations';
|
import { workloadTranslations } from '@translations/workload-translations';
|
||||||
@ -38,7 +38,7 @@ import dayjs from 'dayjs';
|
|||||||
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
|
import { DefaultColorsService } from '@services/entity-services/default-colors.service';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ConfigService {
|
export class ConfigService {
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
import { SharedModule } from '@shared/shared.module';
|
import { SharedModule } from '@shared/shared.module';
|
||||||
import { IqserHelpModeModule, IqserIconsModule } from '@iqser/common-ui';
|
import { IqserHelpModeModule, IqserIconsModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { DossierOverviewScreenComponent } from './screen/dossier-overview-screen.component';
|
import { DossierOverviewScreenComponent } from './screen/dossier-overview-screen.component';
|
||||||
import { DossierOverviewBulkActionsComponent } from './components/bulk-actions/dossier-overview-bulk-actions.component';
|
import { DossierOverviewBulkActionsComponent } from './components/bulk-actions/dossier-overview-bulk-actions.component';
|
||||||
@ -46,6 +46,7 @@ const routes: Routes = [
|
|||||||
IqserIconsModule,
|
IqserIconsModule,
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
IqserHelpModeModule,
|
IqserHelpModeModule,
|
||||||
|
IqserUsersModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class DossierOverviewModule {}
|
export class DossierOverviewModule {}
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import { NavigationEnd, Router } from '@angular/router';
|
|||||||
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
|
||||||
import { ConfigService } from '../config.service';
|
import { ConfigService } from '../config.service';
|
||||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { FilesMapService } from '@services/files/files-map.service';
|
import { FilesMapService } from '@services/files/files-map.service';
|
||||||
import { FilesService } from '@services/files/files.service';
|
import { FilesService } from '@services/files/files.service';
|
||||||
import { BulkActionsService } from '../services/bulk-actions.service';
|
import { BulkActionsService } from '../services/bulk-actions.service';
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { CircleButtonTypes, List, ScrollableParentView, ScrollableParentViews, StatusBarConfig } from '@iqser/common-ui';
|
import { CircleButtonTypes, List, ScrollableParentView, ScrollableParentViews, StatusBarConfig } from '@iqser/common-ui';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { Dossier, DossierStats, File } from '@red/domain';
|
import { Dossier, DossierStats, File } from '@red/domain';
|
||||||
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
|
||||||
import { LongPressEvent } from '@shared/directives/long-press.directive';
|
import { LongPressEvent } from '@shared/directives/long-press.directive';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { FilesMapService } from '@services/files/files-map.service';
|
import { FilesMapService } from '@services/files/files-map.service';
|
||||||
import { ReanalysisService } from '@services/reanalysis.service';
|
import { ReanalysisService } from '@services/reanalysis.service';
|
||||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell user-column">
|
<div class="cell user-column">
|
||||||
<redaction-initials-avatar [user]="dossier.ownerId" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="dossier.ownerId" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell status-container">
|
<div class="cell status-container">
|
||||||
|
|||||||
@ -11,8 +11,8 @@ import {
|
|||||||
} from '@red/domain';
|
} from '@red/domain';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
|
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
|
||||||
import { dossierMemberChecker, dossierStateChecker, RedactionFilterSorter } from '../../utils';
|
import { dossierMemberChecker, dossierStateChecker, RedactionFilterSorter } from '../../utils';
|
||||||
import { workloadTranslations } from '@translations/workload-translations';
|
import { workloadTranslations } from '@translations/workload-translations';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { IqserHelpModeModule, IqserIconsModule } from '@iqser/common-ui';
|
import { IqserHelpModeModule, IqserIconsModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { DossiersListingScreenComponent } from './screen/dossiers-listing-screen.component';
|
import { DossiersListingScreenComponent } from './screen/dossiers-listing-screen.component';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
@ -40,6 +40,7 @@ const routes: Routes = [
|
|||||||
IqserIconsModule,
|
IqserIconsModule,
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
IqserHelpModeModule,
|
IqserHelpModeModule,
|
||||||
|
IqserUsersModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class DossiersListingModule {}
|
export class DossiersListingModule {}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { ConfigService } from '../config.service';
|
|||||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { SharedDialogService } from '@shared/services/dialog.service';
|
import { SharedDialogService } from '@shared/services/dialog.service';
|
||||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
|||||||
import { FilterService, HasScrollbarDirective, IqserEventTarget } from '@iqser/common-ui';
|
import { FilterService, HasScrollbarDirective, IqserEventTarget } from '@iqser/common-ui';
|
||||||
import { MultiSelectService } from '../../services/multi-select.service';
|
import { MultiSelectService } from '../../services/multi-select.service';
|
||||||
import { AnnotationReferencesService } from '../../services/annotation-references.service';
|
import { AnnotationReferencesService } from '../../services/annotation-references.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { ViewModeService } from '../../services/view-mode.service';
|
import { ViewModeService } from '../../services/view-mode.service';
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
import { TextHighlightsGroup } from '@red/domain';
|
import { TextHighlightsGroup } from '@red/domain';
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnInit, ViewChild } from '@angular/core';
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnInit, ViewChild } from '@angular/core';
|
||||||
import { Dossier, File, IComment } from '@red/domain';
|
import { Dossier, File, IComment } from '@red/domain';
|
||||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { InputWithActionComponent, LoadingService, trackByFactory, ContextComponent } from '@iqser/common-ui';
|
import { InputWithActionComponent, LoadingService, trackByFactory, ContextComponent } from '@iqser/common-ui';
|
||||||
import { firstValueFrom, Observable } from 'rxjs';
|
import { firstValueFrom, Observable } from 'rxjs';
|
||||||
|
|||||||
@ -6,13 +6,13 @@
|
|||||||
<span *ngIf="file.isUnderReview || file.isUnderApproval">{{ 'by' | translate }}:</span>
|
<span *ngIf="file.isUnderReview || file.isUnderApproval">{{ 'by' | translate }}:</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<redaction-initials-avatar
|
<iqser-initials-avatar
|
||||||
*ngIf="(editingReviewer$ | async) === false"
|
*ngIf="(editingReviewer$ | async) === false"
|
||||||
[id]="'assignee'"
|
[id]="'assignee'"
|
||||||
[tooltipPosition]="'below'"
|
[tooltipPosition]="'below'"
|
||||||
[user]="file.assignee"
|
[user]="file.assignee"
|
||||||
[withName]="!!file.assignee"
|
[withName]="!!file.assignee"
|
||||||
></redaction-initials-avatar>
|
></iqser-initials-avatar>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
(click)="editingReviewer$.next(true)"
|
(click)="editingReviewer$.next(true)"
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { List, LoadingService, Toaster } from '@iqser/common-ui';
|
|||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
|
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { FilesService } from '@services/files/files.service';
|
import { FilesService } from '@services/files/files.service';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { BehaviorSubject, combineLatest, combineLatestWith, firstValueFrom, Observable, switchMap } from 'rxjs';
|
import { BehaviorSubject, combineLatest, combineLatestWith, firstValueFrom, Observable, switchMap } from 'rxjs';
|
||||||
|
|||||||
@ -12,13 +12,15 @@
|
|||||||
|
|
||||||
<ng-container *ngIf="permissionsService.isApprover(dossier) && !!file.lastReviewer">
|
<ng-container *ngIf="permissionsService.isApprover(dossier) && !!file.lastReviewer">
|
||||||
<div class="vertical-line"></div>
|
<div class="vertical-line"></div>
|
||||||
|
|
||||||
<div class="all-caps-label mr-16 ml-8">
|
<div class="all-caps-label mr-16 ml-8">
|
||||||
{{ 'file-preview.last-assignee' | translate: { status: file.workflowStatus } }}
|
{{ 'file-preview.last-assignee' | translate: { status: file.workflowStatus } }}
|
||||||
</div>
|
</div>
|
||||||
<redaction-initials-avatar
|
|
||||||
|
<iqser-initials-avatar
|
||||||
[user]="file.isApproved ? file.lastApprover : file.lastReviewer"
|
[user]="file.isApproved ? file.lastApprover : file.lastReviewer"
|
||||||
[withName]="true"
|
[withName]="true"
|
||||||
></redaction-initials-avatar>
|
></iqser-initials-avatar>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<div class="vertical-line"></div>
|
<div class="vertical-line"></div>
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import { AnnotationProcessingService } from './services/annotation-processing.se
|
|||||||
import { Dictionary, File, ViewMode, ViewModes } from '@red/domain';
|
import { Dictionary, File, ViewMode, ViewModes } from '@red/domain';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { combineLatest, firstValueFrom, from, of, pairwise } from 'rxjs';
|
import { combineLatest, firstValueFrom, from, of, pairwise } from 'rxjs';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { byId, byPage, download, handleFilterDelta, hasChanges } from '../../utils';
|
import { byId, byPage, download, handleFilterDelta, hasChanges } from '../../utils';
|
||||||
import { FilesService } from '@services/files/files.service';
|
import { FilesService } from '@services/files/files.service';
|
||||||
import { FileManagementService } from '@services/files/file-management.service';
|
import { FileManagementService } from '@services/files/file-management.service';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { IqserHelpModeModule, IqserIconsModule } from '@iqser/common-ui';
|
import { IqserHelpModeModule, IqserIconsModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
import { RouterModule, Routes } from '@angular/router';
|
||||||
import { SharedModule } from '@shared/shared.module';
|
import { SharedModule } from '@shared/shared.module';
|
||||||
@ -94,6 +94,7 @@ const components = [
|
|||||||
TranslateModule,
|
TranslateModule,
|
||||||
OverlayModule,
|
OverlayModule,
|
||||||
IqserHelpModeModule,
|
IqserHelpModeModule,
|
||||||
|
IqserUsersModule,
|
||||||
],
|
],
|
||||||
providers: [FilePreviewDialogService, ManualRedactionService, DocumentUnloadedGuard],
|
providers: [FilePreviewDialogService, ManualRedactionService, DocumentUnloadedGuard],
|
||||||
})
|
})
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { RedactionLogEntry } from '@models/file/redaction-log.entry';
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { FilePreviewStateService } from './file-preview-state.service';
|
import { FilePreviewStateService } from './file-preview-state.service';
|
||||||
import { ViewedPagesService } from '@services/files/viewed-pages.service';
|
import { ViewedPagesService } from '@services/files/viewed-pages.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service';
|
||||||
import { map, switchMap, tap, withLatestFrom } from 'rxjs/operators';
|
import { map, switchMap, tap, withLatestFrom } from 'rxjs/operators';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import {
|
|||||||
ManualRedactionEntryWrapper,
|
ManualRedactionEntryWrapper,
|
||||||
} from '@models/file/manual-redaction-entry.wrapper';
|
} from '@models/file/manual-redaction-entry.wrapper';
|
||||||
import { AnnotationDrawService } from '../../pdf-viewer/services/annotation-draw.service';
|
import { AnnotationDrawService } from '../../pdf-viewer/services/annotation-draw.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { BASE_HREF_FN, BaseHrefFn, shareDistinctLast } from '@iqser/common-ui';
|
import { BASE_HREF_FN, BaseHrefFn, shareDistinctLast } from '@iqser/common-ui';
|
||||||
import { toPosition } from '../utils/pdf-calculation.utils';
|
import { toPosition } from '../utils/pdf-calculation.utils';
|
||||||
import { MultiSelectService } from './multi-select.service';
|
import { MultiSelectService } from './multi-select.service';
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|||||||
import { Core } from '@pdftron/webviewer';
|
import { Core } from '@pdftron/webviewer';
|
||||||
import { hexToRgb } from '@utils/functions';
|
import { hexToRgb } from '@utils/functions';
|
||||||
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
import { AnnotationWrapper } from '@models/file/annotation.wrapper';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { RedactionLogService } from '@services/files/redaction-log.service';
|
import { RedactionLogService } from '@services/files/redaction-log.service';
|
||||||
|
|
||||||
import { IRectangle, ISectionGrid, ISectionRectangle } from '@red/domain';
|
import { IRectangle, ISectionGrid, ISectionRectangle } from '@red/domain';
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import { fromEvent, merge, Observable } from 'rxjs';
|
|||||||
import { debounceTime, filter, map, tap } from 'rxjs/operators';
|
import { debounceTime, filter, map, tap } from 'rxjs/operators';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { PdfViewer } from './pdf-viewer.service';
|
import { PdfViewer } from './pdf-viewer.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { log, shareLast } from '@iqser/common-ui';
|
import { log, shareLast } from '@iqser/common-ui';
|
||||||
import { stopAndPrevent, stopAndPreventIfNotAllowed } from '../utils/functions';
|
import { stopAndPrevent, stopAndPreventIfNotAllowed } from '../utils/functions';
|
||||||
import { RotationType, RotationTypes } from '@red/domain';
|
import { RotationType, RotationTypes } from '@red/domain';
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import { Rgb } from '../utils/types';
|
|||||||
import { asList } from '../utils/functions';
|
import { asList } from '../utils/functions';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { LicenseService } from '@services/license.service';
|
import { LicenseService } from '@services/license.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import TextTool = Core.Tools.TextTool;
|
import TextTool = Core.Tools.TextTool;
|
||||||
import Annotation = Core.Annotations.Annotation;
|
import Annotation = Core.Annotations.Annotation;
|
||||||
import TextHighlightAnnotation = Core.Annotations.TextHighlightAnnotation;
|
import TextHighlightAnnotation = Core.Annotations.TextHighlightAnnotation;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Inject, Injectable } from '@angular/core';
|
import { Inject, Injectable } from '@angular/core';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { HeaderElements } from '../../file-preview/utils/constants';
|
import { HeaderElements } from '../../file-preview/utils/constants';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
<redaction-initials-avatar [user]="item.assignee" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="item.assignee" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
@ -32,7 +32,7 @@ import { PlatformSearchService } from '@services/entity-services/platform-search
|
|||||||
import { FeaturesService } from '@services/features.service';
|
import { FeaturesService } from '@services/features.service';
|
||||||
import { DossiersCacheService } from '@services/dossiers/dossiers-cache.service';
|
import { DossiersCacheService } from '@services/dossiers/dossiers-cache.service';
|
||||||
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
templateUrl: './search-screen.component.html',
|
templateUrl: './search-screen.component.html',
|
||||||
|
|||||||
@ -2,13 +2,13 @@ import { NgModule } from '@angular/core';
|
|||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { SearchScreenComponent } from './search-screen/search-screen.component';
|
import { SearchScreenComponent } from './search-screen/search-screen.component';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { CommonUiModule } from '@iqser/common-ui';
|
import { CommonUiModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
import { SharedModule } from '@shared/shared.module';
|
import { SharedModule } from '@shared/shared.module';
|
||||||
|
|
||||||
const routes = [{ path: '', component: SearchScreenComponent }];
|
const routes = [{ path: '', component: SearchScreenComponent }];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [SearchScreenComponent],
|
declarations: [SearchScreenComponent],
|
||||||
imports: [CommonModule, RouterModule.forChild(routes), CommonUiModule, SharedModule],
|
imports: [CommonModule, RouterModule.forChild(routes), CommonUiModule, SharedModule, IqserUsersModule],
|
||||||
})
|
})
|
||||||
export class SearchModule {}
|
export class SearchModule {}
|
||||||
|
|||||||
@ -21,8 +21,8 @@ import {
|
|||||||
Toaster,
|
Toaster,
|
||||||
} from '@iqser/common-ui';
|
} from '@iqser/common-ui';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { LongPressEvent } from '@shared/directives/long-press.directive';
|
import { LongPressEvent } from '@shared/directives/long-press.directive';
|
||||||
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
|
||||||
import { FileManagementService } from '@services/files/file-management.service';
|
import { FileManagementService } from '@services/files/file-management.service';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject } from '@angular/core';
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { LoadingService, Toaster } from '@iqser/common-ui';
|
import { LoadingService, Toaster } from '@iqser/common-ui';
|
||||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||||
import { Dossier, File, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
|
import { Dossier, File, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { Observable } from 'rxjs';
|
|||||||
import { tap } from 'rxjs/operators';
|
import { tap } from 'rxjs/operators';
|
||||||
import { EditDossierTeamComponent } from './edit-dossier-team/edit-dossier-team.component';
|
import { EditDossierTeamComponent } from './edit-dossier-team/edit-dossier-team.component';
|
||||||
import { PermissionsService } from '@services/permissions.service';
|
import { PermissionsService } from '@services/permissions.service';
|
||||||
import { getCurrentUser } from '@services/user.service';
|
import { getCurrentUser } from '@users/user.service';
|
||||||
import { DossiersService } from '@services/dossiers/dossiers.service';
|
import { DossiersService } from '@services/dossiers/dossiers.service';
|
||||||
import { dossiersServiceProvider } from '@services/entity-services/dossiers.service.provider';
|
import { dossiersServiceProvider } from '@services/entity-services/dossiers.service.provider';
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div class="iqser-input-group w-300 required">
|
<div class="iqser-input-group w-300 required">
|
||||||
<mat-form-field floatLabel="always">
|
<mat-form-field floatLabel="always">
|
||||||
<mat-label>{{ 'assign-dossier-owner.dialog.single-user' | translate }}</mat-label>
|
<mat-label>{{ 'assign-dossier-owner.dialog.single-user' | translate }}</mat-label>
|
||||||
<mat-select formControlName="owner" id="editDossierOwnerSelect" (valueChange)="onChangeOwner($event)">
|
<mat-select (valueChange)="onChangeOwner($event)" formControlName="owner" id="editDossierOwnerSelect">
|
||||||
<mat-option *ngFor="let userId of ownersSelectOptions; let index = index" [id]="'mat-option-' + index" [value]="userId">
|
<mat-option *ngFor="let userId of ownersSelectOptions; let index = index" [id]="'mat-option-' + index" [value]="userId">
|
||||||
{{ userId | name }}
|
{{ userId | name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
@ -38,7 +38,7 @@
|
|||||||
></redaction-team-members>
|
></redaction-team-members>
|
||||||
|
|
||||||
<ng-container *ngIf="!(selectedReviewers$ | async)?.length">
|
<ng-container *ngIf="!(selectedReviewers$ | async)?.length">
|
||||||
<div id="no-reviewers-label" class="info mt-4">{{ 'assign-dossier-owner.dialog.no-reviewers' | translate }}</div>
|
<div class="info mt-4" id="no-reviewers-label">{{ 'assign-dossier-owner.dialog.no-reviewers' | translate }}</div>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container *ngIf="hasOwner">
|
<ng-container *ngIf="hasOwner">
|
||||||
@ -58,7 +58,8 @@
|
|||||||
[class.selected]="isMemberSelected(userId)"
|
[class.selected]="isMemberSelected(userId)"
|
||||||
[id]="'member-' + index"
|
[id]="'member-' + index"
|
||||||
>
|
>
|
||||||
<redaction-initials-avatar [user]="userId" [withName]="true" size="large"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="userId" [withName]="true" size="large"></iqser-initials-avatar>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<div
|
<div
|
||||||
(click)="!disabled && toggleApprover(userId, $event)"
|
(click)="!disabled && toggleApprover(userId, $event)"
|
||||||
@ -68,10 +69,10 @@
|
|||||||
<iqser-round-checkbox
|
<iqser-round-checkbox
|
||||||
[active]="isApprover(userId)"
|
[active]="isApprover(userId)"
|
||||||
[disabled]="disabled"
|
[disabled]="disabled"
|
||||||
class="mr-8"
|
|
||||||
[id]="'round-checkbox-' + index"
|
[id]="'round-checkbox-' + index"
|
||||||
>
|
class="mr-8"
|
||||||
</iqser-round-checkbox>
|
></iqser-round-checkbox>
|
||||||
|
|
||||||
<span
|
<span
|
||||||
[translate]="disabled ? 'assign-dossier-owner.dialog.approver' : 'assign-dossier-owner.dialog.make-approver'"
|
[translate]="disabled ? 'assign-dossier-owner.dialog.approver' : 'assign-dossier-owner.dialog.make-approver'"
|
||||||
></span>
|
></span>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||||
import { Dossier, IDossierRequest } from '@red/domain';
|
import { Dossier, IDossierRequest } from '@red/domain';
|
||||||
import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-dossier-section.interface';
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { Dossier, File, User, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
|
import { Dossier, File, User, WorkflowFileStatus, WorkflowFileStatuses } from '@red/domain';
|
||||||
import { DossiersDialogService } from './dossiers-dialog.service';
|
import { DossiersDialogService } from './dossiers-dialog.service';
|
||||||
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import { EditDossierTeamComponent } from './dialogs/edit-dossier-dialog/edit-dos
|
|||||||
import { DateColumnComponent } from './components/date-column/date-column.component';
|
import { DateColumnComponent } from './components/date-column/date-column.component';
|
||||||
import { FileAssignService } from './services/file-assign.service';
|
import { FileAssignService } from './services/file-assign.service';
|
||||||
import { DictionaryDetailsDialogComponent } from './dialogs/edit-dossier-dialog/dictionary/dictionary-details-dialog/dictionary-details-dialog.component';
|
import { DictionaryDetailsDialogComponent } from './dialogs/edit-dossier-dialog/dictionary/dictionary-details-dialog/dictionary-details-dialog.component';
|
||||||
import { IqserHelpModeModule } from '@iqser/common-ui';
|
import { IqserHelpModeModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
|
|
||||||
const components = [
|
const components = [
|
||||||
FileActionsComponent,
|
FileActionsComponent,
|
||||||
@ -32,6 +32,6 @@ const services = [DossiersDialogService, FileAssignService];
|
|||||||
declarations: [...components, ...dialogs],
|
declarations: [...components, ...dialogs],
|
||||||
exports: [...components, ...dialogs],
|
exports: [...components, ...dialogs],
|
||||||
providers: [...services],
|
providers: [...services],
|
||||||
imports: [CommonModule, SharedModule, IqserHelpModeModule],
|
imports: [CommonModule, SharedModule, IqserHelpModeModule, IqserUsersModule],
|
||||||
})
|
})
|
||||||
export class SharedDossiersModule {}
|
export class SharedDossiersModule {}
|
||||||
|
|||||||
@ -29,5 +29,5 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ng-template #avatar let-userId="userId">
|
<ng-template #avatar let-userId="userId">
|
||||||
<redaction-initials-avatar [user]="userId" [withName]="true" color="gray"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="userId" [withName]="true" color="gray"></iqser-initials-avatar>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { User } from '@red/domain';
|
import { User } from '@red/domain';
|
||||||
import { List } from '@iqser/common-ui';
|
import { List } from '@iqser/common-ui';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
<button [class.overlay]="showDot" [iqserHelpMode]="'open_usermenu'" mat-button>
|
|
||||||
<redaction-initials-avatar [user]="userService.currentUser$ | async" [withName]="true"></redaction-initials-avatar>
|
|
||||||
<mat-icon svgIcon="iqser:arrow-down"></mat-icon>
|
|
||||||
</button>
|
|
||||||
<div *ngIf="showDot" class="dot"></div>
|
|
||||||
@ -1,25 +0,0 @@
|
|||||||
@use 'common-buttons';
|
|
||||||
@use 'variables';
|
|
||||||
|
|
||||||
:host {
|
|
||||||
@extend .user-button;
|
|
||||||
min-width: fit-content;
|
|
||||||
|
|
||||||
button {
|
|
||||||
padding: 0 10px 0 5px;
|
|
||||||
|
|
||||||
mat-icon {
|
|
||||||
width: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[aria-expanded='true'] {
|
|
||||||
button {
|
|
||||||
background: rgba(variables.$primary, 0.1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot {
|
|
||||||
left: -2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
||||||
import { UserService } from '@services/user.service';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'redaction-user-button',
|
|
||||||
templateUrl: './user-button.component.html',
|
|
||||||
styleUrls: ['./user-button.component.scss'],
|
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
||||||
})
|
|
||||||
export class UserButtonComponent {
|
|
||||||
@Input() userId: string;
|
|
||||||
@Input() showDot = false;
|
|
||||||
|
|
||||||
constructor(readonly userService: UserService) {}
|
|
||||||
}
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
||||||
import { Debounce, List, OnChange } from '@iqser/common-ui';
|
import { Debounce, List, OnChange } from '@iqser/common-ui';
|
||||||
import { UserPreferenceService } from '@services/user-preference.service';
|
import { UserPreferenceService } from '@users/user-preference.service';
|
||||||
import { EditorThemeService } from '@services/editor-theme.service';
|
import { EditorThemeService } from '@services/editor-theme.service';
|
||||||
import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
|
import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
|
||||||
import ICodeEditor = monaco.editor.ICodeEditor;
|
import ICodeEditor = monaco.editor.ICodeEditor;
|
||||||
|
|||||||
@ -1,12 +0,0 @@
|
|||||||
<div *ngIf="_user && _user | name: namePipeOptions as userName" class="wrapper">
|
|
||||||
<div
|
|
||||||
[className]="colorClass + ' oval ' + size + (hasBorder ? ' border' : '')"
|
|
||||||
[matTooltipPosition]="tooltipPosition"
|
|
||||||
[matTooltip]="userName"
|
|
||||||
>
|
|
||||||
{{ _user | name: { showInitials: true } }}
|
|
||||||
</div>
|
|
||||||
<div *ngIf="withName" [class.disabled]="disabled" class="clamp-1 username" id="avatarUsername">
|
|
||||||
{{ userName }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
.wrapper {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
width: fit-content;
|
|
||||||
|
|
||||||
.username {
|
|
||||||
margin-left: 6px;
|
|
||||||
|
|
||||||
&.disabled {
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.border {
|
|
||||||
border: 1px solid var(--iqser-grey-7);
|
|
||||||
}
|
|
||||||
@ -1,81 +0,0 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';
|
|
||||||
import { UserService } from '@services/user.service';
|
|
||||||
import { User } from '@red/domain';
|
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
|
||||||
import { NamePipeOptions } from '@shared/pipes/name.pipe';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'redaction-initials-avatar',
|
|
||||||
templateUrl: './initials-avatar.component.html',
|
|
||||||
styleUrls: ['./initials-avatar.component.scss'],
|
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
||||||
})
|
|
||||||
export class InitialsAvatarComponent implements OnInit, OnChanges {
|
|
||||||
@Input() color = 'lightgray';
|
|
||||||
@Input() size: 'small' | 'large' = 'small';
|
|
||||||
@Input() withName = false;
|
|
||||||
@Input() showYou = false;
|
|
||||||
@Input() tooltipPosition: 'below' | 'above' = 'above';
|
|
||||||
@Input() defaultValue = this._translateService.instant('initials-avatar.unassigned');
|
|
||||||
colorClass: string;
|
|
||||||
|
|
||||||
namePipeOptions: NamePipeOptions;
|
|
||||||
|
|
||||||
constructor(private readonly _userService: UserService, private readonly _translateService: TranslateService) {}
|
|
||||||
|
|
||||||
_user: User;
|
|
||||||
|
|
||||||
@Input()
|
|
||||||
set user(user: User | string) {
|
|
||||||
if (typeof user === 'string') {
|
|
||||||
this._user = this._userService.find(user);
|
|
||||||
} else {
|
|
||||||
this._user = user;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
get hasBorder(): boolean {
|
|
||||||
return !!this._user && !this.isCurrentUser && this._user.isManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
get disabled(): boolean {
|
|
||||||
return this._user && !this._isSystemUser && !this._user.hasAnyRole;
|
|
||||||
}
|
|
||||||
|
|
||||||
get isCurrentUser(): boolean {
|
|
||||||
return this._userService.currentUser.id === this._user?.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
private get _colorClass() {
|
|
||||||
if (this.isCurrentUser) {
|
|
||||||
return 'primary-white';
|
|
||||||
}
|
|
||||||
if (this.disabled) {
|
|
||||||
return 'inactive';
|
|
||||||
}
|
|
||||||
if (this.color.includes('-')) {
|
|
||||||
return this.color;
|
|
||||||
}
|
|
||||||
return `${this.color}-dark`;
|
|
||||||
}
|
|
||||||
|
|
||||||
private get _isSystemUser() {
|
|
||||||
return this._user?.id?.toLowerCase() === 'system';
|
|
||||||
}
|
|
||||||
|
|
||||||
ngOnChanges(): void {
|
|
||||||
if (this._isSystemUser) {
|
|
||||||
this.colorClass = 'primary-white primary';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.colorClass = this._colorClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
ngOnInit(): void {
|
|
||||||
this.namePipeOptions = {
|
|
||||||
showYou: this.showYou,
|
|
||||||
defaultValue: this.defaultValue,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -6,7 +6,7 @@
|
|||||||
[class.large-spacing]="largeSpacing"
|
[class.large-spacing]="largeSpacing"
|
||||||
class="member"
|
class="member"
|
||||||
>
|
>
|
||||||
<redaction-initials-avatar [user]="userId" color="gray" size="large"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="userId" color="gray" size="large"></iqser-initials-avatar>
|
||||||
|
|
||||||
<div *ngIf="canRemoveMember(userId)" class="remove">
|
<div *ngIf="canRemoveMember(userId)" class="remove">
|
||||||
<mat-icon svgIcon="iqser:close"></mat-icon>
|
<mat-icon svgIcon="iqser:close"></mat-icon>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
||||||
import { CircleButtonTypes, List } from '@iqser/common-ui';
|
import { CircleButtonTypes, List } from '@iqser/common-ui';
|
||||||
import { UserService } from '@services/user.service';
|
import { UserService } from '@users/user.service';
|
||||||
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
|
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|||||||
@ -1,59 +0,0 @@
|
|||||||
import { Pipe, PipeTransform } from '@angular/core';
|
|
||||||
import { UserService } from '@services/user.service';
|
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
|
||||||
import { User } from '@red/domain';
|
|
||||||
|
|
||||||
function getInitials(name: string) {
|
|
||||||
if (name.toLowerCase() === 'system') {
|
|
||||||
return 'SY';
|
|
||||||
}
|
|
||||||
|
|
||||||
const splittedName = name.split(' ').filter(value => value !== ' ' && value !== '');
|
|
||||||
return splittedName
|
|
||||||
.filter((_value, index) => index < 2)
|
|
||||||
.map(str => str[0])
|
|
||||||
.join('');
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface NamePipeOptions {
|
|
||||||
showYou?: boolean;
|
|
||||||
showInitials?: boolean;
|
|
||||||
defaultValue?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Pipe({
|
|
||||||
name: 'name',
|
|
||||||
})
|
|
||||||
export class NamePipe implements PipeTransform {
|
|
||||||
private readonly _defaultOptions: NamePipeOptions = { defaultValue: this._translateService.instant('unknown') };
|
|
||||||
|
|
||||||
constructor(private readonly _userService: UserService, private readonly _translateService: TranslateService) {}
|
|
||||||
|
|
||||||
transform(value?: User | string, options = this._defaultOptions): string {
|
|
||||||
let name;
|
|
||||||
|
|
||||||
if (!value && options?.showInitials) {
|
|
||||||
return '?';
|
|
||||||
}
|
|
||||||
|
|
||||||
name = this._getName(value) || options?.defaultValue;
|
|
||||||
|
|
||||||
if (options?.showYou && this._isCurrentUser(value)) {
|
|
||||||
name = `${name} (${this._translateService.instant('initials-avatar.you')})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return options?.showInitials ? getInitials(name) : name;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _isCurrentUser(user: User | string): boolean {
|
|
||||||
const userId = typeof user === 'string' ? user : user.id;
|
|
||||||
return this._userService.currentUser.id === userId;
|
|
||||||
}
|
|
||||||
|
|
||||||
private _getName(user: User | string): string | undefined {
|
|
||||||
if (!user) {
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
return typeof user === 'string' ? this._userService.getName(user) : user.name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,16 +1,14 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { InitialsAvatarComponent } from './components/initials-avatar/initials-avatar.component';
|
|
||||||
import { ScrollingModule } from '@angular/cdk/scrolling';
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
||||||
import { PaginationComponent } from './components/pagination/pagination.component';
|
import { PaginationComponent } from './components/pagination/pagination.component';
|
||||||
import { FileDownloadBtnComponent } from './components/buttons/file-download-btn/file-download-btn.component';
|
import { FileDownloadBtnComponent } from './components/buttons/file-download-btn/file-download-btn.component';
|
||||||
import { UserButtonComponent } from './components/buttons/user-button/user-button.component';
|
|
||||||
import { MatConfigModule } from '../mat-config/mat-config.module';
|
import { MatConfigModule } from '../mat-config/mat-config.module';
|
||||||
import { IconsModule } from '../icons/icons.module';
|
import { IconsModule } from '../icons/icons.module';
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
import { AnnotationIconComponent } from './components/annotation-icon/annotation-icon.component';
|
import { AnnotationIconComponent } from './components/annotation-icon/annotation-icon.component';
|
||||||
import { DonutChartComponent } from './components/donut-chart/donut-chart.component';
|
import { DonutChartComponent } from './components/donut-chart/donut-chart.component';
|
||||||
import { CommonUiModule, IqserHelpModeModule } from '@iqser/common-ui';
|
import { CommonUiModule, IqserHelpModeModule, IqserUsersModule } from '@iqser/common-ui';
|
||||||
import { SelectComponent } from './components/select/select.component';
|
import { SelectComponent } from './components/select/select.component';
|
||||||
import { NavigateLastDossiersScreenDirective } from './directives/navigate-last-dossiers-screen.directive';
|
import { NavigateLastDossiersScreenDirective } from './directives/navigate-last-dossiers-screen.directive';
|
||||||
import { DictionaryManagerComponent } from './components/dictionary-manager/dictionary-manager.component';
|
import { DictionaryManagerComponent } from './components/dictionary-manager/dictionary-manager.component';
|
||||||
@ -18,7 +16,6 @@ import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
|
|||||||
import { AssignUserDropdownComponent } from './components/assign-user-dropdown/assign-user-dropdown.component';
|
import { AssignUserDropdownComponent } from './components/assign-user-dropdown/assign-user-dropdown.component';
|
||||||
import { DatePipe } from './pipes/date.pipe';
|
import { DatePipe } from './pipes/date.pipe';
|
||||||
import { LongPressDirective } from './directives/long-press.directive';
|
import { LongPressDirective } from './directives/long-press.directive';
|
||||||
import { NamePipe } from './pipes/name.pipe';
|
|
||||||
import { TypeFilterComponent } from './components/type-filter/type-filter.component';
|
import { TypeFilterComponent } from './components/type-filter/type-filter.component';
|
||||||
import { TeamMembersComponent } from './components/team-members/team-members.component';
|
import { TeamMembersComponent } from './components/team-members/team-members.component';
|
||||||
import { EditorComponent } from './components/editor/editor.component';
|
import { EditorComponent } from './components/editor/editor.component';
|
||||||
@ -38,10 +35,9 @@ import { AddEditEntityComponent } from './components/add-edit-entity/add-edit-en
|
|||||||
import { ColorPickerModule } from 'ngx-color-picker';
|
import { ColorPickerModule } from 'ngx-color-picker';
|
||||||
import { WatermarkSelectorComponent } from './components/dossier-watermark-selector/watermark-selector.component';
|
import { WatermarkSelectorComponent } from './components/dossier-watermark-selector/watermark-selector.component';
|
||||||
|
|
||||||
const buttons = [FileDownloadBtnComponent, UserButtonComponent];
|
const buttons = [FileDownloadBtnComponent];
|
||||||
|
|
||||||
const components = [
|
const components = [
|
||||||
InitialsAvatarComponent,
|
|
||||||
PaginationComponent,
|
PaginationComponent,
|
||||||
AnnotationIconComponent,
|
AnnotationIconComponent,
|
||||||
DonutChartComponent,
|
DonutChartComponent,
|
||||||
@ -64,7 +60,7 @@ const components = [
|
|||||||
...buttons,
|
...buttons,
|
||||||
];
|
];
|
||||||
|
|
||||||
const utils = [DatePipe, NamePipe, NavigateLastDossiersScreenDirective, LongPressDirective];
|
const utils = [DatePipe, NavigateLastDossiersScreenDirective, LongPressDirective];
|
||||||
|
|
||||||
const services = [SharedDialogService];
|
const services = [SharedDialogService];
|
||||||
|
|
||||||
@ -72,7 +68,16 @@ const modules = [MatConfigModule, ScrollingModule, IconsModule, FormsModule, Rea
|
|||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [...components, ...utils, EditorComponent],
|
declarations: [...components, ...utils, EditorComponent],
|
||||||
imports: [CommonModule, CommonUiModule, ...modules, MonacoEditorModule, TranslateModule, RouterModule, IqserHelpModeModule],
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
CommonUiModule,
|
||||||
|
...modules,
|
||||||
|
MonacoEditorModule,
|
||||||
|
TranslateModule,
|
||||||
|
RouterModule,
|
||||||
|
IqserHelpModeModule,
|
||||||
|
IqserUsersModule,
|
||||||
|
],
|
||||||
exports: [...modules, CommonUiModule, ...components, ...utils],
|
exports: [...modules, CommonUiModule, ...components, ...utils],
|
||||||
providers: [
|
providers: [
|
||||||
...services,
|
...services,
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell user-column">
|
<div class="cell user-column">
|
||||||
<redaction-initials-avatar [user]="item.ownerId" [withName]="true"></redaction-initials-avatar>
|
<iqser-initials-avatar [user]="item.ownerId" [withName]="true"></iqser-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cell">
|
<div class="cell">
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user