Edit dossier template from info

This commit is contained in:
Adina Țeudan 2021-12-22 12:39:12 +02:00
parent 844971e241
commit 0e5b5349cd
4 changed files with 24 additions and 4 deletions

View File

@ -7,7 +7,7 @@ import { Moment } from 'moment';
import { applyIntervalConstraints } from '@utils/date-inputs-utils'; import { applyIntervalConstraints } from '@utils/date-inputs-utils';
import { downloadTypesTranslations } from '../../../../translations/download-types-translations'; import { downloadTypesTranslations } from '../../../../translations/download-types-translations';
import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service';
import { BaseDialogComponent, Toaster } from '@iqser/common-ui'; import { BaseDialogComponent, 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 { DownloadFileType, IDossierTemplate } from '@red/domain'; import { DownloadFileType, IDossierTemplate } from '@red/domain';
import { HttpStatusCode } from '@angular/common/http'; import { HttpStatusCode } from '@angular/common/http';
@ -34,6 +34,7 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent {
private readonly _toaster: Toaster, private readonly _toaster: Toaster,
private readonly _dossierTemplatesService: DossierTemplatesService, private readonly _dossierTemplatesService: DossierTemplatesService,
private readonly _formBuilder: FormBuilder, private readonly _formBuilder: FormBuilder,
private readonly _loadingService: LoadingService,
public dialogRef: MatDialogRef<AddEditDossierTemplateDialogComponent>, public dialogRef: MatDialogRef<AddEditDossierTemplateDialogComponent>,
@Inject(MAT_DIALOG_DATA) readonly dossierTemplate: IDossierTemplate, @Inject(MAT_DIALOG_DATA) readonly dossierTemplate: IDossierTemplate,
) { ) {
@ -87,6 +88,7 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent {
} }
async save() { async save() {
this._loadingService.start();
try { try {
const dossierTemplate = { const dossierTemplate = {
dossierTemplateId: this.dossierTemplate?.dossierTemplateId, dossierTemplateId: this.dossierTemplate?.dossierTemplateId,
@ -104,6 +106,7 @@ export class AddEditDossierTemplateDialogComponent extends BaseDialogComponent {
: _('add-edit-dossier-template.error.generic'); : _('add-edit-dossier-template.error.generic');
this._toaster.error(message, { error }); this._toaster.error(message, { error });
} }
this._loadingService.stop();
} }
private _getForm(): FormGroup { private _getForm(): FormGroup {

View File

@ -33,7 +33,12 @@
</div> </div>
<div class="heading mt-40" translate="dossier-template-info-screen.description"> <div class="heading mt-40" translate="dossier-template-info-screen.description">
<iqser-circle-button class="ml-8" icon="iqser:edit"></iqser-circle-button> <iqser-circle-button
(action)="openEditDossierTemplateDialog($event)"
*ngIf="permissionsService.isAdmin()"
class="ml-8"
icon="iqser:edit"
></iqser-circle-button>
</div> </div>
<div>{{ dossierTemplate.description }}</div> <div>{{ dossierTemplate.description }}</div>

View File

@ -4,6 +4,9 @@ import { ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { DossierTemplate, DossierTemplateStats } from '@red/domain'; import { DossierTemplate, DossierTemplateStats } from '@red/domain';
import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service'; import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service';
import { AdminDialogService } from '../../../services/admin-dialog.service';
import { tap } from 'rxjs/operators';
import { PermissionsService } from '@services/permissions.service';
@Component({ @Component({
templateUrl: './dossier-template-info-screen.component.html', templateUrl: './dossier-template-info-screen.component.html',
@ -13,14 +16,23 @@ import { DossierTemplateStatsService } from '@services/entity-services/dossier-t
export class DossierTemplateInfoScreenComponent { export class DossierTemplateInfoScreenComponent {
dossierTemplate$: Observable<DossierTemplate>; dossierTemplate$: Observable<DossierTemplate>;
dossierTemplateStats$: Observable<DossierTemplateStats>; dossierTemplateStats$: Observable<DossierTemplateStats>;
private _dossierTemplate: DossierTemplate;
constructor( constructor(
private readonly _dossierTemplatesService: DossierTemplatesService, private readonly _dossierTemplatesService: DossierTemplatesService,
private readonly _dossierTemplateStatsService: DossierTemplateStatsService, private readonly _dossierTemplateStatsService: DossierTemplateStatsService,
private readonly _dialogService: AdminDialogService,
private readonly _route: ActivatedRoute, private readonly _route: ActivatedRoute,
readonly permissionsService: PermissionsService,
) { ) {
const dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId'); const dossierTemplateId = _route.snapshot.paramMap.get('dossierTemplateId');
this.dossierTemplate$ = this._dossierTemplatesService.getEntityChanged$(dossierTemplateId); this.dossierTemplate$ = this._dossierTemplatesService
.getEntityChanged$(dossierTemplateId)
.pipe(tap(dossierTemplate => (this._dossierTemplate = dossierTemplate)));
this.dossierTemplateStats$ = this._dossierTemplateStatsService.watch$(dossierTemplateId); this.dossierTemplateStats$ = this._dossierTemplateStatsService.watch$(dossierTemplateId);
} }
openEditDossierTemplateDialog($event: any) {
this._dialogService.openDialog('addEditDossierTemplate', $event, this._dossierTemplate);
}
} }

View File

@ -38,7 +38,7 @@ export class DossierTemplateActionsComponent implements OnInit {
} }
openEditDossierTemplateDialog($event: any) { openEditDossierTemplateDialog($event: any) {
this._dialogService.openDialog('addEditDossierTemplate', $event, this.dossierTemplate, () => {}); this._dialogService.openDialog('addEditDossierTemplate', $event, this.dossierTemplate);
} }
openDeleteDossierTemplateDialog($event?: MouseEvent) { openDeleteDossierTemplateDialog($event?: MouseEvent) {