fixed critical issues for release

This commit is contained in:
Timo Bejan 2022-01-15 14:36:56 +02:00
parent d390e160a7
commit f70567b8c7
6 changed files with 81 additions and 17 deletions

View File

@ -134,13 +134,14 @@ export class UserDetailsComponent extends AutoUnsubscribe implements OnChanges,
}
private _getForm(): FormGroup {
console.log(this.user);
return this._formBuilder.group({
firstName: [this.user?.firstName, Validators.required],
lastName: [this.user?.lastName, Validators.required],
email: [
{
value: this.user?.email,
disabled: !!this.user,
disabled: !!this.user?.email,
},
[Validators.required, Validators.email],
],

View File

@ -1,12 +1,22 @@
<div class="header-wrapper">
<div class="heading">
<div>{{ dossierDictionary?.label }}</div>
<div class="small-label stats-subtitle">
<div>
<mat-icon svgIcon="red:entries"></mat-icon>
{{ 'edit-dossier-dialog.dictionary.entries' | translate: { length: (dossierDictionary?.entries || []).length } }}
<div class="header-left">
<div class="heading">
<div>{{ dossierDictionary?.label }}</div>
<div class="small-label stats-subtitle">
<div>
<mat-icon svgIcon="red:entries"></mat-icon>
{{ 'edit-dossier-dialog.dictionary.entries' | translate: { length: (dossierDictionary?.entries || []).length } }}
</div>
</div>
</div>
<form [formGroup]="form" *ngIf="form">
<div class="iqser-input-group" *ngIf="canEdit">
<mat-checkbox color="primary" formControlName="addToDictionaryAction" name="addToDictionaryAction">
{{ 'add-edit-dictionary.form.add-to-dictionary-action' | translate }}
</mat-checkbox>
</div>
</form>
</div>
<div *ngIf="canEdit" class="display-name">

View File

@ -2,6 +2,14 @@
display: flex;
justify-content: space-between;
.header-left {
display: flex;
.iqser-input-group {
margin-left: 24px;
}
}
.display-name {
display: flex;
align-items: center;

View File

@ -7,6 +7,7 @@ import { DictionaryService } from '@shared/services/dictionary.service';
import { CircleButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'redaction-edit-dossier-dictionary',
@ -15,10 +16,13 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
})
export class EditDossierDictionaryComponent implements EditDossierSectionInterface, OnInit {
@Input() dossier: Dossier;
form: FormGroup;
canEdit = false;
readonly circleButtonTypes = CircleButtonTypes;
dossierDictionary: IDictionary;
readonly circleButtonTypes = CircleButtonTypes;
@ViewChild(DictionaryManagerComponent, { static: false }) private readonly _dictionaryManager: DictionaryManagerComponent;
constructor(
@ -26,11 +30,20 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
private readonly _dictionaryService: DictionaryService,
private readonly _permissionsService: PermissionsService,
private readonly _loadingService: LoadingService,
private readonly _formBuilder: FormBuilder,
private readonly _toaster: Toaster,
) {}
get formChanged() {
if (this.form) {
return this.form.get('addToDictionaryAction').value !== this.dossierDictionary.addToDictionaryAction;
}
return false;
}
get changed(): boolean {
return this._dictionaryManager.editor.hasChanges;
return this._dictionaryManager.editor.hasChanges || this.formChanged;
}
get disabled(): boolean {
@ -38,13 +51,14 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
}
get valid(): boolean {
return this._dictionaryManager.editor.hasChanges;
return this._dictionaryManager.editor.hasChanges || this.formChanged;
}
async ngOnInit() {
this._loadingService.start();
this.canEdit = this._permissionsService.isDossierMember(this.dossier);
await this._updateDossierDictionary();
this.form = this._getForm();
this._loadingService.stop();
}
@ -66,6 +80,15 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
async save(): EditDossierSaveResult {
try {
const dictionary: IDictionary = {
...this.dossierDictionary,
type: 'dossier_redaction',
addToDictionaryAction: this.form.get('addToDictionaryAction').value,
};
await this._dictionaryService
.updateDictionary(dictionary, this.dossier.dossierTemplateId, 'dossier_redaction', this.dossier.id)
.toPromise();
await this._dictionaryService
.saveEntries(
this._dictionaryManager.editor.currentEntries,
@ -76,6 +99,7 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
false,
)
.toPromise();
await this._updateDossierDictionary();
return { success: true };
} catch (error) {
@ -85,6 +109,15 @@ export class EditDossierDictionaryComponent implements EditDossierSectionInterfa
revert() {
this._dictionaryManager.revert();
this.form.reset({
addToDictionaryAction: this.dossierDictionary.addToDictionaryAction,
});
}
private _getForm(): FormGroup {
return this._formBuilder.group({
addToDictionaryAction: [this.dossierDictionary.addToDictionaryAction],
});
}
private async _updateDossierDictionary() {

View File

@ -9,6 +9,7 @@ import { PermissionsService } from '@services/permissions.service';
import { JustificationsService } from '@services/entity-services/justifications.service';
import { Dictionary, Dossier, File, IAddRedactionRequest } from '@red/domain';
import { DossiersService } from '@services/entity-services/dossiers.service';
import { DictionaryService } from '@shared/services/dictionary.service';
export interface LegalBasisOption {
label?: string;
@ -40,6 +41,7 @@ export class ManualAnnotationDialogComponent implements OnInit {
private readonly _manualAnnotationService: ManualAnnotationService,
private readonly _permissionsService: PermissionsService,
private readonly _dossiersService: DossiersService,
private readonly _dictionaryService: DictionaryService,
public dialogRef: MatDialogRef<ManualAnnotationDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: { manualRedactionEntryWrapper: ManualRedactionEntryWrapper; file: File },
) {
@ -50,8 +52,6 @@ export class ManualAnnotationDialogComponent implements OnInit {
this.isDictionaryRequest = this.data.manualRedactionEntryWrapper.type === 'DICTIONARY' || this.isFalsePositiveRequest;
this.redactionForm = this._getForm();
this.possibleDictionaries = this._possibleDictionaries;
}
get title() {
@ -66,10 +66,14 @@ export class ManualAnnotationDialogComponent implements OnInit {
return null;
}
private get _possibleDictionaries(): Dictionary[] {
private async _getPossibleDictionaries(): Promise<Dictionary[]> {
const possibleDictionaries: Dictionary[] = [];
const dossier = this._dossier;
const dossierDictionary = await this._dictionaryService
.getForType(dossier.dossierTemplateId, 'dossier_redaction', dossier.dossierId)
.toPromise();
for (const key of Object.keys(this._appStateService.dictionaryData[dossier.dossierTemplateId])) {
const dictionaryData = this._appStateService.getDictionary(key, dossier.dossierTemplateId);
if (!dictionaryData.virtual && dictionaryData.addToDictionaryAction) {
@ -77,14 +81,20 @@ export class ManualAnnotationDialogComponent implements OnInit {
}
}
if (dossierDictionary.addToDictionaryAction) {
// TODO fix this in the backend
possibleDictionaries.push(new Dictionary({ ...dossierDictionary, type: 'dossier_redaction' }));
}
possibleDictionaries.sort((a, b) => a.label.localeCompare(b.label));
return possibleDictionaries;
}
async ngOnInit() {
const data = await this._justificationsService.getForDossierTemplate(this._dossier.dossierTemplateId).toPromise();
this.possibleDictionaries = await this._getPossibleDictionaries();
const data = await this._justificationsService.getForDossierTemplate(this._dossier.dossierTemplateId).toPromise();
this.legalOptions = data.map(lbm => ({
legalBasis: lbm.reason,
description: lbm.description,
@ -129,8 +139,10 @@ export class ManualAnnotationDialogComponent implements OnInit {
addRedactionRequest.reason = legalOption.description;
addRedactionRequest.legalBasis = legalOption.legalBasis;
}
addRedactionRequest.addToDictionary = this.isDictionaryRequest;
// todo fix this in backend
addRedactionRequest.addToDictionary = this.isDictionaryRequest && addRedactionRequest.type !== 'dossier_redaction';
addRedactionRequest.addToDossierDictionary = this.isDictionaryRequest && addRedactionRequest.type === 'dossier_redaction';
if (!addRedactionRequest.reason) {
addRedactionRequest.reason = 'Dictionary Request';
}

View File

@ -1,7 +1,7 @@
{
"ADMIN_CONTACT_NAME": null,
"ADMIN_CONTACT_URL": null,
"API_URL": "https://dev-08.iqser.cloud/redaction-gateway-v1",
"API_URL": "https://aks-staging.iqser.cloud/redaction-gateway-v1",
"APP_NAME": "RedactManager",
"AUTO_READ_TIME": 1.5,
"BACKEND_APP_VERSION": "4.4.40",
@ -17,7 +17,7 @@
"MAX_RETRIES_ON_SERVER_ERROR": 3,
"OAUTH_CLIENT_ID": "redaction",
"OAUTH_IDP_HINT": null,
"OAUTH_URL": "https://dev-08.iqser.cloud/auth/realms/redaction",
"OAUTH_URL": "https://aks-staging.iqser.cloud/auth/realms/redaction",
"RECENT_PERIOD_IN_HOURS": 24,
"SELECTION_MODE": "structural"
}