diff --git a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts index 7aabfda6996..0cc824bdd8b 100644 --- a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts +++ b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts @@ -149,10 +149,10 @@ describe('ClarinLicenseTableComponent', () => { expect((component as ClarinLicenseTableComponent).licensesRD$).not.toBeNull(); }); - it('should not create new clarin license label when icon image is null', () => { + it('should create new clarin license label when icon image is null', () => { // non extended ll has no icon (component as ClarinLicenseTableComponent).defineLicenseLabel(mockNonExtendedLicenseLabel); - expect((component as any).notificationService.error).toHaveBeenCalled(); + expect((component as any).notificationService.success).toHaveBeenCalled(); }); it('should create new clarin license label and load table data', fakeAsync(() => { diff --git a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts index 2888ba95333..30ddd691537 100644 --- a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts +++ b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts @@ -225,9 +225,13 @@ export class ClarinLicenseTableComponent implements OnInit { try { reader.readAsArrayBuffer(clarinLicenseLabel.icon?.[0]); } catch (error) { - this.notifyOperationStatus(null, successfulMessageContentDef, errorMessageContentDef); + // Cannot read any icon that means there is no icon + // Create license label without icon + this.createClarinLicenseLabel(clarinLicenseLabel, [], successfulMessageContentDef, errorMessageContentDef); + return; } + // Create license label with icon reader.onerror = (evt) => { this.notifyOperationStatus(null, successfulMessageContentDef, errorMessageContentDef); }; @@ -240,22 +244,31 @@ export class ClarinLicenseTableComponent implements OnInit { fileByteArray.push(item); } } - clarinLicenseLabel.icon = fileByteArray; - // convert string value from the form to the boolean - clarinLicenseLabel.extended = ClarinLicenseLabelExtendedSerializer.Serialize(clarinLicenseLabel.extended); - - // create - this.clarinLicenseLabelService.create(clarinLicenseLabel) - .pipe(getFirstCompletedRemoteData()) - .subscribe((defineLicenseLabelResponse: RemoteData) => { - // check payload and show error or successful - this.notifyOperationStatus(defineLicenseLabelResponse, successfulMessageContentDef, errorMessageContentDef); - this.loadAllLicenses(); - }); + this.createClarinLicenseLabel(clarinLicenseLabel, fileByteArray, successfulMessageContentDef, errorMessageContentDef); } }; } + /** + * Call BE request to create a clarin license label with or without icon. + * Show response in the notification popup. + */ + createClarinLicenseLabel(clarinLicenseLabel: ClarinLicenseLabel, fileByteArray: any[] = [], + successfulMessageContentDef: any, errorMessageContentDef: any) { + clarinLicenseLabel.icon = fileByteArray; + // convert string value from the form to the boolean + clarinLicenseLabel.extended = ClarinLicenseLabelExtendedSerializer.Serialize(clarinLicenseLabel.extended); + + // create + this.clarinLicenseLabelService.create(clarinLicenseLabel) + .pipe(getFirstCompletedRemoteData()) + .subscribe((defineLicenseLabelResponse: RemoteData) => { + // check payload and show error or successful + this.notifyOperationStatus(defineLicenseLabelResponse, successfulMessageContentDef, errorMessageContentDef); + this.loadAllLicenses(); + }); + } + // delete license /** * Delete selected license. If none license is selected do nothing. diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts index 75793460e1c..2551f700017 100644 --- a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts @@ -182,7 +182,7 @@ export class DefineLicenseFormComponent implements OnInit { * @private */ private loadAndAssignClarinLicenseLabels() { - this.clarinLicenseLabelService.findAll({}, false) + this.clarinLicenseLabelService.findAll({ elementsPerPage: 100 }, false) .pipe(getFirstSucceededRemoteListPayload()) .subscribe(res => { res.forEach(clarinLicenseLabel => { diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html index 69bbe0f4248..a78a285f638 100644 --- a/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html @@ -25,7 +25,7 @@