unfuck circular imports

This commit is contained in:
Dan Percic 2024-06-20 10:28:20 +03:00
parent 04e3f5b522
commit b7dbac0695
7 changed files with 72 additions and 80 deletions

View File

@ -20,9 +20,9 @@
<iqser-circle-button
(action)="editingOwner = true"
*allow="roles.dossiers.edit; if: currentUser.isManager"
[attr.help-mode-key]="'dashboard_in_dossier'"
[icon]="'iqser:edit'"
[tooltip]="'dossier-details.edit-owner' | translate"
[attr.help-mode-key]="'dashboard_in_dossier'"
class="ml-14"
></iqser-circle-button>
</ng-container>
@ -49,7 +49,7 @@
[strokeWidth]="15"
[subtitles]="[
'dossier-overview.dossier-details.charts.documents-in-dossier' | translate,
'dossier-overview.dossier-details.charts.pages-in-dossier' | translate
'dossier-overview.dossier-details.charts.pages-in-dossier' | translate,
]"
direction="row"
></redaction-donut-chart>
@ -59,8 +59,8 @@
<div class="all-caps-label mb-8" translate="dossier-details.document-status"></div>
<iqser-progress-bar
*ngFor="let config of statusConfig"
[config]="config"
[attr.help-mode-key]="'dashboard_in_dossier'"
[config]="config"
filterKey="processingTypeFilters"
></iqser-progress-bar>
</div>

View File

@ -1,4 +1,19 @@
import { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import {
CircleButtonComponent,
CircleButtonTypes,
getConfig,
IqserAllowDirective,
IqserLoadingModule,
ProgressBarConfigModel,
Toaster,
} from '@iqser/common-ui';
import { FilterService, INestedFilter } from '@iqser/common-ui/lib/filtering';
import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users';
import { ContextComponent, getParam, IqserTooltipPositions, shareLast } from '@iqser/common-ui/lib/utils';
import { TranslateModule } from '@ngx-translate/core';
import {
DonutChartConfig,
Dossier,
@ -11,34 +26,20 @@ import {
StatusSorter,
User,
} from '@red/domain';
import { TranslateChartService } from '@services/translate-chart.service';
import { UserService } from '@users/user.service';
import {
CircleButtonComponent,
getConfig,
IqserAllowDirective,
IqserLoadingModule,
ProgressBarConfigModel,
Toaster,
} from '@iqser/common-ui';
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { combineLatestWith, firstValueFrom } from 'rxjs';
import { DossierStatsService } from '@services/dossiers/dossier-stats.service';
import { map, tap } from 'rxjs/operators';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { FilesMapService } from '@services/files/files-map.service';
import { Roles } from '@users/roles';
import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users';
import { FilterService, INestedFilter } from '@iqser/common-ui/lib/filtering';
import { ContextComponent, getParam, IqserTooltipPositions, shareLast } from '@iqser/common-ui/lib/utils';
import { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { TeamMembersComponent } from '@shared/components/team-members/team-members.component';
import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
import { TypeFilterComponent } from '@shared/components/type-filter/type-filter.component';
import { DossierDetailsStatsComponent } from '../dossier-details-stats/dossier-details-stats.component';
import { TranslateChartService } from '@services/translate-chart.service';
import { AssignUserDropdownComponent } from '@shared/components/assign-user-dropdown/assign-user-dropdown.component';
import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
import { TeamMembersComponent } from '@shared/components/team-members/team-members.component';
import { TypeFilterComponent } from '@shared/components/type-filter/type-filter.component';
import { workflowFileStatusTranslations } from '@translations/file-status-translations';
import { Roles } from '@users/roles';
import { UserService } from '@users/user.service';
import { combineLatestWith, firstValueFrom } from 'rxjs';
import { map, tap } from 'rxjs/operators';
import { DossierDetailsStatsComponent } from '../dossier-details-stats/dossier-details-stats.component';
interface DossierDetailsContext {
needsWorkFilters: INestedFilter[] | undefined;
@ -59,7 +60,6 @@ interface DossierDetailsContext {
CircleButtonComponent,
IqserAllowDirective,
TranslateModule,
TeamMembersComponent,
DonutChartComponent,
IqserLoadingModule,
NgForOf,
@ -67,11 +67,13 @@ interface DossierDetailsContext {
DossierDetailsStatsComponent,
AssignUserDropdownComponent,
InitialsAvatarComponent,
TeamMembersComponent,
],
})
export class DossierDetailsComponent extends ContextComponent<DossierDetailsContext> {
#currentChartSubtitleIndex = 0;
readonly #dossierId = getParam(DOSSIER_ID);
protected readonly circleButtonTypes = CircleButtonTypes;
@Input() dossierAttributes: DossierAttributeWithValue[];
@Output() readonly toggleCollapse = new EventEmitter();
editingOwner = false;

View File

@ -42,7 +42,7 @@
[dossier]="dossier()"
></redaction-edit-dossier-download-package>
@defer (when activeNav() === 'dossierDictionary') {
@if (activeNav() === 'dossierDictionary') {
<redaction-edit-dossier-dictionary [dossier]="dossier()"></redaction-edit-dossier-dictionary>
}

View File

@ -27,7 +27,6 @@ import { EditDossierDictionaryComponent } from './dictionary/edit-dossier-dictio
import { EditDossierDownloadPackageComponent } from './download-package/edit-dossier-download-package.component';
import { EditDossierSectionInterface } from './edit-dossier-section.interface';
import { EditDossierTeamComponent } from './edit-dossier-team/edit-dossier-team.component';
import { EditDossierTeamModule } from './edit-dossier-team/edit-dossier-team.module';
import { EditDossierGeneralInfoComponent } from './general-info/edit-dossier-general-info.component';
type Section = 'dossierInfo' | 'downloadPackage' | 'dossierDictionary' | 'members' | 'dossierAttributes';
@ -55,12 +54,12 @@ interface NavItem {
EditDossierGeneralInfoComponent,
EditDossierDownloadPackageComponent,
EditDossierDictionaryComponent,
EditDossierTeamModule,
EditDossierAttributesComponent,
IconButtonComponent,
HelpButtonComponent,
IqserDenyDirective,
CircleButtonComponent,
EditDossierTeamComponent,
],
})
export class EditDossierDialogComponent extends BaseDialogComponent implements AfterViewInit {

View File

@ -1,11 +1,19 @@
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
import { ChangeDetectionStrategy, Component, inject, Input, OnChanges, SimpleChanges } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';
import { getConfig } from '@iqser/common-ui';
import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { MatFormField } from '@angular/material/form-field';
import { MatIcon } from '@angular/material/icon';
import { MatOption, MatSelect } from '@angular/material/select';
import { InitialsAvatarComponent } from '@common-ui/users';
import { NamePipe } from '@common-ui/users/name.pipe';
import { getConfig, InputWithActionComponent, RoundCheckboxComponent, StopPropagationDirective } from '@iqser/common-ui';
import { Debounce } from '@iqser/common-ui/lib/utils';
import { TranslateModule } from '@ngx-translate/core';
import { Dossier, IDossierRequest } from '@red/domain';
import { DossiersService } from '@services/dossiers/dossiers.service';
import { FilesService } from '@services/files/files.service';
import { PermissionsService } from '@services/permissions.service';
import { TeamMembersComponent } from '@shared/components/team-members/team-members.component';
import { UserService } from '@users/user.service';
import { compareLists } from '@utils/functions';
import { firstValueFrom } from 'rxjs';
@ -17,6 +25,24 @@ import { EditDossierSaveResult, EditDossierSectionInterface } from '../edit-doss
templateUrl: './edit-dossier-team.component.html',
styleUrls: ['./edit-dossier-team.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
imports: [
ReactiveFormsModule,
TranslateModule,
MatFormField,
MatSelect,
MatOption,
NgForOf,
NamePipe,
NgIf,
AsyncPipe,
TeamMembersComponent,
InputWithActionComponent,
InitialsAvatarComponent,
RoundCheckboxComponent,
MatIcon,
StopPropagationDirective,
],
})
export class EditDossierTeamComponent implements EditDossierSectionInterface, OnChanges {
readonly #userService = inject(UserService);

View File

@ -1,42 +0,0 @@
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { MatFormField } from '@angular/material/form-field';
import { MatIcon } from '@angular/material/icon';
import { MatOption, MatSelect } from '@angular/material/select';
import { InitialsAvatarComponent } from '@common-ui/users';
import { NamePipe } from '@common-ui/users/name.pipe';
import {
CircleButtonComponent,
InputWithActionComponent,
IqserAllowDirective,
RoundCheckboxComponent,
StopPropagationDirective,
} from '@iqser/common-ui';
import { TranslateModule } from '@ngx-translate/core';
import { TeamMembersComponent } from '@shared/components/team-members/team-members.component';
import { EditDossierTeamComponent } from './edit-dossier-team.component';
@NgModule({
declarations: [EditDossierTeamComponent, TeamMembersComponent],
exports: [EditDossierTeamComponent, TeamMembersComponent],
imports: [
ReactiveFormsModule,
MatFormField,
MatSelect,
MatOption,
NamePipe,
NgForOf,
NgIf,
AsyncPipe,
TranslateModule,
InputWithActionComponent,
InitialsAvatarComponent,
StopPropagationDirective,
RoundCheckboxComponent,
MatIcon,
CircleButtonComponent,
IqserAllowDirective,
],
})
export class EditDossierTeamModule {}

View File

@ -1,17 +1,21 @@
import { NgForOf, NgIf } from '@angular/common';
import { Component, ElementRef, EventEmitter, inject, Input, OnChanges, Output, ViewChild } from '@angular/core';
import { CircleButtonTypes, largeDialogConfig } from '@iqser/common-ui';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { MatIcon } from '@angular/material/icon';
import { CircleButtonComponent, CircleButtonTypes, IqserAllowDirective, largeDialogConfig } from '@iqser/common-ui';
import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users';
import { List } from '@iqser/common-ui/lib/utils';
import { TranslateModule } from '@ngx-translate/core';
import { User } from '@red/domain';
import { Roles } from '@users/roles';
import { UserService } from '@users/user.service';
import { EditDossierDialogComponent } from '../../../shared-dossiers/dialogs/edit-dossier-dialog/edit-dossier-dialog.component';
import { DossiersDialogService } from '../../../shared-dossiers/services/dossiers-dialog.service';
@Component({
selector: 'redaction-team-members',
templateUrl: './team-members.component.html',
styleUrls: ['./team-members.component.scss'],
standalone: true,
imports: [NgForOf, InitialsAvatarComponent, NgIf, MatIcon, CircleButtonComponent, IqserAllowDirective, TranslateModule],
})
export class TeamMembersComponent implements OnChanges {
readonly circleButtonTypes = CircleButtonTypes;
@ -59,8 +63,11 @@ export class TeamMembersComponent implements OnChanges {
return this.canRemove && !this.unremovableMembers.includes(userId);
}
openEditDossierDialog(): void {
async openEditDossierDialog() {
const data = { dossierId: this.dossierId, section: 'members' };
this._dialogService.open(EditDossierDialogComponent, data, { ...largeDialogConfig, width: '98vw', maxWidth: '98vw' });
const editDossierDialogComponent = await import(
'../../../shared-dossiers/dialogs/edit-dossier-dialog/edit-dossier-dialog.component'
).then(m => m.EditDossierDialogComponent);
this._dialogService.open(editDossierDialogComponent, data, { ...largeDialogConfig, width: '98vw', maxWidth: '98vw' });
}
}