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

View File

@ -33,7 +33,12 @@
</div>
<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>{{ dossierTemplate.description }}</div>

View File

@ -4,6 +4,9 @@ import { ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
import { DossierTemplate, DossierTemplateStats } from '@red/domain';
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({
templateUrl: './dossier-template-info-screen.component.html',
@ -13,14 +16,23 @@ import { DossierTemplateStatsService } from '@services/entity-services/dossier-t
export class DossierTemplateInfoScreenComponent {
dossierTemplate$: Observable<DossierTemplate>;
dossierTemplateStats$: Observable<DossierTemplateStats>;
private _dossierTemplate: DossierTemplate;
constructor(
private readonly _dossierTemplatesService: DossierTemplatesService,
private readonly _dossierTemplateStatsService: DossierTemplateStatsService,
private readonly _dialogService: AdminDialogService,
private readonly _route: ActivatedRoute,
readonly permissionsService: PermissionsService,
) {
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);
}
openEditDossierTemplateDialog($event: any) {
this._dialogService.openDialog('addEditDossierTemplate', $event, this._dossierTemplate);
}
}

View File

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