Allow Dmps to un-finalize if they are not published or not having a DOI (ref #272)

Remove_explore
George Kalampokis 4 years ago
parent 2b9c2ee1e7
commit 62c61a8119

@ -266,6 +266,17 @@ public class DMPs extends BaseController {
}
}
@Transactional
@RequestMapping(method = RequestMethod.POST, value = {"/unfinalize/{id}"})
public ResponseEntity<ResponseItem<DMP>> undoFinalize(@PathVariable String id, Principal principal) {
try {
this.dataManagementPlanManager.undoFinalize(UUID.fromString(id), principal);
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DMP>().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully Data Datamanagement Plan made active."));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<DMP>().status(ApiMessageCode.ERROR_MESSAGE).message(e.getMessage()));
}
}
/*
* DOI Generation
* */

@ -794,7 +794,9 @@ public class DataManagementPlanManager {
});
UserInfo user = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().find(principal.getId());
sendNotification(dmp, user, NotificationType.DMP_PUBLISH);
this.createZenodoDoi(dmp.getId(), principal, null, true);
if (dmp.getDoi() != null && !dmp.getDoi().isEmpty()) {
this.createZenodoDoi(dmp.getId(), principal, null, true);
}
}
public void makeFinalize(UUID id, Principal principal, DatasetsToBeFinalized datasetsToBeFinalized) throws Exception {
@ -850,6 +852,17 @@ public class DataManagementPlanManager {
this.updateDatasetsIndex(indexDatasets);
}
public void undoFinalize(UUID id, Principal principal) throws Exception {
DMP dmp = this.apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().find(id);
if (!isUserOwnerOfDmp(dmp, principal))
throw new Exception("User does not have the privilege to do this action.");
if (dmp.getStatus().equals(DMP.DMPStatus.ACTIVE.getValue()))
throw new Exception("DMP is already Active");
dmp.setStatus(DMP.DMPStatus.ACTIVE.getValue());
apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().createOrUpdate(dmp);
this.updateIndex(dmp);
}
/*
* Export Data
* */

@ -92,6 +92,10 @@ export class DmpService {
return this.http.post<DmpModel>(this.actionUrl + 'finalize/' + id, datasetsToBeFinalized, { headers: this.headers });
}
unfinalize( id: String): Observable<DmpModel> {
return this.http.post<DmpModel>(this.actionUrl + 'unfinalize/' + id, { headers: this.headers });
}
getDoi(id: string): Observable<string> {
return this.http.post<string>(this.actionUrl + 'createZenodoDoi/' + id, { headers: this.headers });
}

@ -33,6 +33,7 @@
</div>
<div class="col-auto d-flex flex-wrap p-2">
<button *ngIf="(isFinalizedDmp(dmp) && hasDoi(dmp) && !isPublishedDMP(dmp)) && isUserOwner" mat-raised-button class="lightblue-btn mt-2 ml-2" color="primary" (click)="reverse()" type="button">{{ 'DMP-LISTING.ACTIONS.UNFINALIZE' | translate }}</button>
<button *ngIf="isDraftDmp(dmp) && isUserOwner" mat-raised-button color="primary" (click)="editClicked(dmp)" class="lightblue-btn mt-2 ml-2">
<mat-icon>edit</mat-icon> {{ 'DMP-LISTING.ACTIONS.EDIT' | translate }}
</button>

@ -528,6 +528,17 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit {
return this.configurationService.doiLink + id;
}
reverse() {
this.dmpService.unfinalize(this.dmp.id).pipe(takeUntil(this._destroyed))
.subscribe(
complete => {
this.dmp.status = DmpStatus.Draft;
this.onCallbackSuccess()
},
error => this.onFinalizeCallbackError(error)
);;
}
// advancedClicked() {
// const dialogRef = this.dialog.open(ExportMethodDialogComponent, {
// maxWidth: '500px',

@ -412,6 +412,7 @@
"EXPORT": "Export",
"PUBLISH": "Publish",
"FINALIZE": "Finalize",
"UNFINALIZE": "Undo Finalization",
"ADV-EXP": "Advanced Export",
"EXP-AS": "Export As",
"DOWNLOAD-XML": "Download XML",

@ -412,6 +412,7 @@
"EXPORT": "Expertar",
"PUBLISH": "Publicar",
"FINALIZE": "Finalizar",
"UNFINALIZE": "Undo Finalization",
"ADV-EXP": "Exportar avanzado",
"EXP-AS": "Exportar como",
"DOWNLOAD-XML": "Descargar XML",

@ -412,6 +412,7 @@
"EXPORT": "Εξαγωγή",
"PUBLISH": "Δημοσίευση",
"FINALIZE": "Οριστικοποίηση",
"UNFINALIZE": "Undo Finalization",
"ADV-EXP": "Προχωρημένη Εξαγωγή",
"EXP-AS": "Εξαγωγή ως",
"DOWNLOAD-XML": "Λήψη XML",

Loading…
Cancel
Save