From 5ef8689e545c062ff42de109388f68646302d561 Mon Sep 17 00:00:00 2001 From: Ioannis Kalyvas Date: Thu, 25 Jan 2018 10:14:43 +0200 Subject: [PATCH] no message --- .../controllers/DatasetProfileController.java | 108 +++++++++--------- .../controllers/DatasetWizardController.java | 2 +- .../main/java/eu/eudat/entities/Dataset.java | 1 + .../eu/eudat/managers/DatasetManager.java | 11 ++ .../datasetwizard/DatasetWizardModel.java | 9 +- .../dataset-wizard.component.html | 10 +- .../dataset-wizard.component.ts | 65 ++--------- .../src/app/form/dynamic-form.component.ts | 64 +++++------ .../app/models/datasets/DatasetWizardModel.ts | 1 + .../dataset-wizard/dataset-wizard.service.ts | 17 ++- 10 files changed, 124 insertions(+), 164 deletions(-) diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java index 30acfb337..4a598fbae 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetProfileController.java @@ -9,6 +9,7 @@ import java.util.UUID; import eu.eudat.models.components.commons.datafield.AutoCompleteData; import eu.eudat.models.helpers.responses.ResponseItem; import eu.eudat.models.user.composite.DatasetProfile; +import eu.eudat.models.user.composite.PagedDatasetProfile; import eu.eudat.services.ApiContext; import eu.eudat.types.ApiMessageCode; import org.json.JSONObject; @@ -36,65 +37,58 @@ import eu.eudat.utilities.builders.XmlBuilder; @RestController @CrossOrigin -public class DatasetProfileController extends BaseController{ +public class DatasetProfileController extends BaseController { - @Autowired - public DatasetProfileController(ApiContext apiContext) { - super(apiContext); - } + @Autowired + public DatasetProfileController(ApiContext apiContext) { + super(apiContext); + } - @RequestMapping(method = RequestMethod.GET, value = { "/datasetwizard/get/{id}" }, produces="application/json") - public ResponseEntity> getSingle(@PathVariable String id){ - try { - eu.eudat.entities.Dataset dataset = this.getApiContext().getDatabaseRepository().getDatasetDao().find(UUID.fromString(id)); - eu.eudat.models.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(dataset.getProfile()); - datasetprofile.setStatus(dataset.getStatus()); - if(dataset.getProperties()!=null){ - JSONObject jobject = new JSONObject(dataset.getProperties()); - Map properties = (Map)jobject.toMap(); - datasetprofile.fromJsonObject(properties); - } - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE).payload(datasetprofile)); - } - catch(Exception ex) { - ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); - } - } - - @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/datasetprofile/save/{id}" }, consumes="application/json",produces="application/json") - public ResponseEntity updateDataset(@PathVariable String id,@RequestBody PropertiesModel properties){ - try { - eu.eudat.entities.Dataset dataset = this.getApiContext().getDatabaseRepository().getDatasetDao().find(UUID.fromString(id)); - Map values = new HashMap(); - properties.toMap(values); - JSONObject jobject = new JSONObject(values); - dataset.setProperties(jobject.toString()); - dataset.setStatus((short)properties.getStatus()); - this.getApiContext().getDatabaseRepository().getDatasetDao().createOrUpdate(dataset); //TODO + @RequestMapping(method = RequestMethod.GET, value = {"/datasetwizard/get/{id}"}, produces = "application/json") + public ResponseEntity> getSingle(@PathVariable String id) { + try { + eu.eudat.entities.DatasetProfile profile = this.getApiContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); + eu.eudat.models.user.composite.DatasetProfile datasetprofile = UserManager.generateDatasetProfileModel(profile); + PagedDatasetProfile pagedDatasetProfile = new PagedDatasetProfile(); + pagedDatasetProfile.buildPagedDatasetProfile(datasetprofile); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE).payload(datasetprofile)); + } catch (Exception ex) { + ex.printStackTrace(); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); + } + } - return ResponseEntity.status(HttpStatus.OK).body(properties); - } - catch(Exception ex) { - ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage()); - } - } - - @RequestMapping(method = RequestMethod.POST, value = { "/search/autocomplete" }, consumes="application/json",produces="application/json") - public ResponseEntity getDataForAutocomplete(@RequestBody AutoCompleteLookupItem lookupItem){ - try { - eu.eudat.entities.Dataset dataset = this.getApiContext().getDatabaseRepository().getDatasetDao().find(UUID.fromString(lookupItem.getProfileID())); - eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field modelfield = new eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field(); - AutoCompleteData data = new AutoCompleteData().fromData(modelfield.getData()); + @Transactional + @RequestMapping(method = RequestMethod.POST, value = {"/datasetprofile/save/{id}"}, consumes = "application/json", produces = "application/json") + public ResponseEntity updateDataset(@PathVariable String id, @RequestBody PropertiesModel properties) { + try { + eu.eudat.entities.Dataset dataset = this.getApiContext().getDatabaseRepository().getDatasetDao().find(UUID.fromString(id)); + Map values = new HashMap(); + properties.toMap(values); + JSONObject jobject = new JSONObject(values); + dataset.setProperties(jobject.toString()); + dataset.setStatus((short) properties.getStatus()); + this.getApiContext().getDatabaseRepository().getDatasetDao().createOrUpdate(dataset); //TODO - URL url = new URL(data.getUrl()+lookupItem.getSearchTerm()); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); - return ResponseEntity.status(HttpStatus.OK).body(null); - } - catch(Exception ex) { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: "+ex.getMessage()); - } - } + return ResponseEntity.status(HttpStatus.OK).body(properties); + } catch (Exception ex) { + ex.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: " + ex.getMessage()); + } + } + + @RequestMapping(method = RequestMethod.POST, value = {"/search/autocomplete"}, consumes = "application/json", produces = "application/json") + public ResponseEntity getDataForAutocomplete(@RequestBody AutoCompleteLookupItem lookupItem) { + try { + eu.eudat.entities.Dataset dataset = this.getApiContext().getDatabaseRepository().getDatasetDao().find(UUID.fromString(lookupItem.getProfileID())); + eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field modelfield = new eu.eudat.entities.xmlmodels.datasetprofiledefinition.Field(); + AutoCompleteData data = new AutoCompleteData().fromData(modelfield.getData()); + + URL url = new URL(data.getUrl() + lookupItem.getSearchTerm()); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + return ResponseEntity.status(HttpStatus.OK).body(null); + } catch (Exception ex) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Serialization issue: " + ex.getMessage()); + } + } } diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetWizardController.java b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetWizardController.java index ed579df76..9efdac60c 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/DatasetWizardController.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/DatasetWizardController.java @@ -82,7 +82,7 @@ public class DatasetWizardController extends BaseController { public @ResponseBody ResponseEntity> createOrUpdate(@RequestBody DatasetWizardModel profile, Principal principal) { try { eu.eudat.entities.Dataset dataset = DatasetManager.createOrUpdate(this.getApiContext(), profile); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created").payload(dataset)); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE).message("Created").payload(null)); } catch (Exception ex) { ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); diff --git a/dmp-backend/src/main/java/eu/eudat/entities/Dataset.java b/dmp-backend/src/main/java/eu/eudat/entities/Dataset.java index b017350ef..df72f03ed 100644 --- a/dmp-backend/src/main/java/eu/eudat/entities/Dataset.java +++ b/dmp-backend/src/main/java/eu/eudat/entities/Dataset.java @@ -314,6 +314,7 @@ public class Dataset implements DataEntity { this.setProperties(entity.getProperties()); this.setExternalDatasets(entity.getExternalDatasets()); this.setStatus(entity.getStatus()); + if(entity.getCreator()!=null) this.creator = entity.getCreator(); } @Override diff --git a/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java b/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java index e97578888..02258a4d7 100644 --- a/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java +++ b/dmp-backend/src/main/java/eu/eudat/managers/DatasetManager.java @@ -14,6 +14,7 @@ import eu.eudat.models.helpers.DataTableData; import eu.eudat.models.listingmodels.DatasetListingModel; import eu.eudat.models.project.Project; import eu.eudat.models.project.ProjectTableRequest; +import eu.eudat.models.properties.PropertiesModel; import eu.eudat.models.security.Principal; import eu.eudat.models.user.composite.PagedDatasetProfile; import eu.eudat.queryable.QueryableList; @@ -22,6 +23,7 @@ import eu.eudat.utilities.builders.DomainModelConverter; import org.json.JSONObject; import java.text.ParseException; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @@ -63,6 +65,7 @@ public class DatasetManager { public static eu.eudat.entities.Dataset createOrUpdate(ApiContext apiContext, DatasetWizardModel profile) throws Exception { eu.eudat.entities.Dataset dataset = profile.toDataModel(); + propertiesModelToString(profile,dataset); createRegistriesIfTheyDontExist(apiContext.getDatabaseRepository().getRegistryDao(), dataset); createDataRepositoriesIfTheyDontExist(apiContext.getDatabaseRepository().getDataRepositoryDao(), dataset); createServicesIfTheyDontExist(apiContext.getDatabaseRepository().getServiceDao(), dataset); @@ -70,6 +73,14 @@ public class DatasetManager { return apiContext.getDatabaseRepository().getDatasetDao().createOrUpdate(dataset); } + private static void propertiesModelToString(DatasetWizardModel datasetWizardModel,eu.eudat.entities.Dataset dataset){ + Map values = new HashMap(); + PropertiesModel properties = datasetWizardModel.getProperties(); + properties.toMap(values); + JSONObject jobject = new JSONObject(values); + dataset.setProperties(jobject.toString()); + } + private static void createRegistriesIfTheyDontExist(RegistryDao registryDao, eu.eudat.entities.Dataset dataset) { if (dataset.getRegistries() != null && !dataset.getRegistries().isEmpty()) { diff --git a/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java b/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java index 8c03baf9d..d9719c02a 100644 --- a/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java +++ b/dmp-backend/src/main/java/eu/eudat/models/datasetwizard/DatasetWizardModel.java @@ -11,6 +11,7 @@ import eu.eudat.models.datasetprofile.DatasetProfileListingModel; import eu.eudat.models.dmp.DataManagementPlan; import eu.eudat.models.externaldataset.ExternalDatasetListingModel; import eu.eudat.models.listingmodels.DatasetListingModel; +import eu.eudat.models.properties.PropertiesModel; import eu.eudat.models.user.composite.DatasetProfile; import eu.eudat.models.user.composite.PagedDatasetProfile; import eu.eudat.utilities.builders.DomainModelConverter; @@ -29,7 +30,6 @@ public class DatasetWizardModel implements DataModel { private String uri; private String description; private short status; - private String properties; private Date created; private DataManagementPlan dmp; private PagedDatasetProfile datasetProfileDefinition; @@ -38,6 +38,7 @@ public class DatasetWizardModel implements DataModel { private List dataRepositories; private List externalDatasets; private DatasetProfileListingModel profile; + private PropertiesModel properties; public UUID getId() { return id; @@ -87,11 +88,11 @@ public class DatasetWizardModel implements DataModel { this.status = status; } - public String getProperties() { + public PropertiesModel getProperties() { return properties; } - public void setProperties(String properties) { + public void setProperties(PropertiesModel properties) { this.properties = properties; } @@ -163,7 +164,6 @@ public class DatasetWizardModel implements DataModel { public void fromDataModel(Dataset entity) throws InstantiationException, IllegalAccessException { this.id = entity.getId(); this.label = entity.getLabel(); - this.properties = entity.getProperties(); this.status = entity.getStatus(); this.reference = entity.getReference(); this.description = entity.getDescription(); @@ -185,7 +185,6 @@ public class DatasetWizardModel implements DataModel { entity.setLabel(this.label); entity.setReference(this.reference); entity.setUri(this.uri); - entity.setProperties(this.properties); entity.setStatus(this.status); entity.setDmp(dmp.toDataModel()); entity.setDescription(this.description); diff --git a/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.html b/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.html index be0b9c5e6..34d568b7c 100644 --- a/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.html +++ b/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.html @@ -1,7 +1,7 @@
-

New {{datasetWizardModel?.dmp?.project?.label}} Dataset

-

{{datasetWizardModel?.dmp?.project?.label}} Dataset

- +

New {{datasetWizardModel?.dmp?.project?.label}} Dataset

+

{{datasetWizardModel?.dmp?.project?.label}} Dataset

+
{{'DATASET-WIZARD.FIRST-STEP.TITLE' | translate}} @@ -80,13 +80,13 @@
{{'DATASET-WIZARD.THIRD-STEP.TITLE' | translate}} - + diff --git a/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.ts index ee1812b0d..16e282a67 100644 --- a/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/dataset-wizard/dataset-wizard.component.ts @@ -15,7 +15,7 @@ import { DataManagementPlanModel } from "../models/data-managemnt-plans/DataMana import { JsonSerializer } from "../utilities/JsonSerializer"; import { Observable } from "rxjs/Observable"; import { RequestItem } from "../models/criteria/RequestItem"; -import { MatPaginator, MatSort, MatSnackBar, MatStepper } from "@angular/material"; +import { MatPaginator, MatSort, MatSnackBar } from "@angular/material"; import { SnackBarNotificationComponent } from "../shared/components/notificaiton/snack-bar-notification.component"; import { DatasetProfileModel } from '../models/datasetprofile/DatasetProfileModel'; import { ExternalSourcesItemModel } from '../models/external-sources/ExternalSourcesItemModel'; @@ -25,11 +25,10 @@ import { ExternalSourcesService } from '../services/external-sources/external-so selector: 'app-dataset-wizard-component', templateUrl: 'dataset-wizard.component.html', styleUrls: ['./dataset-wizard.component.scss'], - providers: [DatasetWizardService, ExternalSourcesService, DataManagementPlanService, MatStepper], + providers: [DatasetWizardService, ExternalSourcesService, DataManagementPlanService], encapsulation: ViewEncapsulation.None }) -export class DatasetWizardComponent implements AfterViewInit { - @ViewChild('stepper') stepper: MatStepper; +export class DatasetWizardComponent { //dmpAutoCompleteConfiguration: AutoCompleteConfiguration; //datasetProfileAutoCompleteConfiguration: AutoCompleteConfiguration; @@ -47,7 +46,7 @@ export class DatasetWizardComponent implements AfterViewInit { filtereddataRepositories: ExternalSourcesItemModel[]; filteredRegistries: ExternalSourcesItemModel[]; filteredServices: ExternalSourcesItemModel[]; - filteredExternalDatasets: ExternalSourcesItemModel[]; + filteredExternalDatasets: ExternalSourcesItemModel[]; constructor( private datasetWizardService: DatasetWizardService, @@ -70,7 +69,7 @@ export class DatasetWizardComponent implements AfterViewInit { ngOnInit() { let dmpRequestItem: RequestItem = new RequestItem(); dmpRequestItem.criteria = new DataManagementPlanCriteria(); - //this.dmpAutoCompleteConfiguration = new AutoCompleteConfiguration(this.datasetWizardService.userDmps.bind(this.datasetWizardService), dmpRequestItem); + this.route.params.subscribe((params: Params) => { const itemId = params['id']; @@ -81,7 +80,7 @@ export class DatasetWizardComponent implements AfterViewInit { .subscribe(data => { this.datasetWizardModel = JsonSerializer.fromJSONObject(data, DatasetWizardModel); this.formGroup = this.datasetWizardModel.buildForm(); - this.loadDatasetProfiles(); + this.loadDatasetProfiles(); }); } else if (dmpId != null) { this.isNew = true; @@ -110,39 +109,19 @@ export class DatasetWizardComponent implements AfterViewInit { this.availableProfiles = JsonSerializer.fromJSONArray(items, DatasetProfileModel); }); } - ngAfterViewInit() { - this.route.params.subscribe((params: Params) => { - let itemId = params['id']; - if(itemId !=null) this.stepper.selectedIndex = 2; - }) - } - - // this.route.params.subscribe((params: Params) => { - // const itemId = params['id']; - - // if (itemId != null) { - // this.isNew = false; - // this.dataManagementPlanService.getSingle(itemId).map(data => data as DataManagementPlanModel) - // .subscribe(data => { - // this.dataManagementPlan = new JsonSerializer().fromJSONObject(data, DataManagementPlanModel); - // this.formGroup = this.dataManagementPlan.buildForm(); - // }); - // } else { - // this.dataManagementPlan = new DataManagementPlanModel(); - // setTimeout(() => { - // this.formGroup = this.dataManagementPlan.buildForm(); - // }); - // } - // }); public cancel(): void { //this.router.navigate(['/dataManagementPlans']); } + getDefinition() { + this.datasetWizardService.getDefinition(this.datasetWizardModel.profile.id).subscribe(item => { + this.datasetWizardModel.datasetProfileDefinition = item; + }) + } + formSubmit(): void { - //this.touchAllFormFields(this.formGroup); - //if(this.isNew)return; if (!this.isFormValid()) { return; } this.onSubmit(); } @@ -175,7 +154,6 @@ export class DatasetWizardComponent implements AfterViewInit { onCallbackError(error: any) { this.setErrorModel(error.error); - //this.validateAllFormFields(this.formGroup); } public setErrorModel(errorModel: BaseErrorModel) { @@ -193,11 +171,6 @@ export class DatasetWizardComponent implements AfterViewInit { this.externalSourcesService.searchDatasetRepository(value).subscribe(items => { this.filtereddataRepositories = items; this.filtereddataRepositoriesAsync = false; - - // this.filteredOrganisations = items.filter((filteredObj: any) => { - // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true; - // }); - }); } } @@ -212,10 +185,6 @@ export class DatasetWizardComponent implements AfterViewInit { this.filteredRegistries = items; this.filteredRegistriesAsync = false; - // this.filteredOrganisations = items.filter((filteredObj: any) => { - // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true; - // }); - }); } } @@ -229,11 +198,6 @@ export class DatasetWizardComponent implements AfterViewInit { this.externalSourcesService.searchDatasetService(value).subscribe(items => { this.filteredServices = items; this.filteredServicesAsync = false; - - // this.filteredOrganisations = items.filter((filteredObj: any) => { - // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true; - // }); - }); } } @@ -248,11 +212,6 @@ export class DatasetWizardComponent implements AfterViewInit { this.externalSourcesService.searchDatasetSExternalDatasetservice(value).subscribe(items => { this.filteredExternalDatasets = items; this.filteredExternalDatasetsAsync = false; - - // this.filteredOrganisations = items.filter((filteredObj: any) => { - // return this.objectsModel ? this.objectsModel.indexOf(filteredObj) < 0 : true; - // }); - }); } } diff --git a/dmp-frontend/src/app/form/dynamic-form.component.ts b/dmp-frontend/src/app/form/dynamic-form.component.ts index 2d7dcadf5..61c799184 100644 --- a/dmp-frontend/src/app/form/dynamic-form.component.ts +++ b/dmp-frontend/src/app/form/dynamic-form.component.ts @@ -12,7 +12,7 @@ import { NgForm } from '@angular/forms'; import { Router, ActivatedRoute, ParamMap, Params } from '@angular/router'; import 'rxjs/add/operator/switchMap'; import { Location } from '@angular/common'; -import {MatSidenavModule} from '@angular/material/sidenav'; +import { MatSidenavModule } from '@angular/material/sidenav'; import { BaseHttpService } from '../utilities/cite-http-service-module/base-http.service'; import { DatasetWizardService } from '../services/dataset-wizard/dataset-wizard.service'; @@ -60,48 +60,38 @@ export class DynamicFormComponent implements OnInit { ngOnInit() { - this.datasetProfileDefinitionModel = this.dataModel.datasetProfileDefinition - //this.pages = this.getPages(this.datasetProfileDefinitionModel); - this.createPagination(); - this.form = this.datasetProfileDefinitionModel.buildForm(); - this.visibilityRulesService.formGroup = this.form; - let rules: Rule[] = JsonSerializer.fromJSONArray(this.datasetProfileDefinitionModel.rules, Rule); - this.visibilityRulesService.buildVisibilityRules(rules) - this.progressbar = true; - - this.route.fragment.subscribe((fragment: string) => { - var self = this; - setTimeout(function () { self.scrollTo(fragment) }); - }); - - this.route.queryParams.subscribe((params) => { - if (params && "page" in params) - this.changeCurrentPage(params["page"]); - }); - /* else{ - - this.addSection(); - } - this.dataModel = new JsonSerializer().fromJSONObject(TestModel,DatasetModel); - this.form = this.dataModel.buildForm(); + this.datasetProfileDefinitionModel = this.dataModel.datasetProfileDefinition + this.createPagination(); + this.form = this.datasetProfileDefinitionModel.buildForm(); this.visibilityRulesService.formGroup = this.form; - let rules:Rule[] = new JsonSerializer().fromJSONArray(TestModel.rules,Rule); - this.visibilityRulesService.buildVisibilityRules(rules) */ - } - - submit(){ - this.datasetWizardService.saveDataset(this.dataModel.id, this.dataModel.status, this.form.value).subscribe(data => { - this.router.navigateByUrl("/datasets/" + this.dataModel.dmp.id); - }); + let rules: Rule[] = JsonSerializer.fromJSONArray(this.datasetProfileDefinitionModel.rules, Rule); + this.visibilityRulesService.buildVisibilityRules(rules) + this.progressbar = true; + + this.route.fragment.subscribe((fragment: string) => { + var self = this; + setTimeout(function () { self.scrollTo(fragment) }); + }); + + this.route.queryParams.subscribe((params) => { + if (params && "page" in params) + this.changeCurrentPage(params["page"]); + }); } - save(){ - this.dataModel.status= "0"; + submit() { + this.datasetWizardService.saveDataset(this.dataModel, this.form.value).subscribe(data => { + this.router.navigateByUrl("/datasets/" + this.dataModel.dmp.id); + }); + } + + save() { + this.dataModel.status = "0"; this.submit(); } saveFinalize() { - this.dataModel.status= "1"; + this.dataModel.status = "1"; this.submit(); } @@ -140,7 +130,7 @@ export class DynamicFormComponent implements OnInit { var element = document.querySelector('#' + sectionID); if (!element) return; element.scrollIntoView(); - this.visibleSidebar = true; + this.visibleSidebar = true; var scrollElement = document.querySelector('.scrollableContent'); //scrollElement.scrollTop = topElement.offsetTop; } diff --git a/dmp-frontend/src/app/models/datasets/DatasetWizardModel.ts b/dmp-frontend/src/app/models/datasets/DatasetWizardModel.ts index 74de67257..b51e93554 100644 --- a/dmp-frontend/src/app/models/datasets/DatasetWizardModel.ts +++ b/dmp-frontend/src/app/models/datasets/DatasetWizardModel.ts @@ -26,6 +26,7 @@ export class DatasetWizardModel implements Serializable { public externalDatasets: ExternalDatasetModel[] = []; public dmp: DataManagementPlanModel = new DataManagementPlanModel(); public datasetProfileDefinition = new DatasetProfileDefinitionModel(); + public properties :any; public errorModel: BaseErrorModel = new BaseErrorModel(); fromJSONObject(item: any): DatasetWizardModel { diff --git a/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts b/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts index 46d89affe..c02fe8e28 100644 --- a/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts +++ b/dmp-frontend/src/app/services/dataset-wizard/dataset-wizard.service.ts @@ -1,3 +1,4 @@ +import { DatasetProfileDefinitionModel } from '../../models/DatasetProfileDefinitionModel'; import { DatasetWizardModel } from '../../models/datasets/DatasetWizardModel'; import { DatasetProfileCriteria } from '../../models/criteria/dataset-profile/DatasetProfileCriteria'; import 'rxjs/add/operator/map'; @@ -35,16 +36,20 @@ export class DatasetWizardService { return this.http.post(this.actionUrl + 'getAvailableProfiles/', criteria, { headers: this.headers }); } - public getSingle(id:String): Observable { - return this.http.get(this.actionUrl + 'getSingle/'+id,{ headers: this.headers }); + public getSingle(id: String): Observable { + return this.http.get(this.actionUrl + 'getSingle/' + id, { headers: this.headers }); } createDataset(datasetModel: DatasetWizardModel): Observable { - return this.http.post(this.actionUrl + 'createOrUpdate', datasetModel, { headers: this.headers }); + return this.http.post(this.actionUrl + 'createOrUpdate', datasetModel, { headers: this.headers }); } - public saveDataset(datasetId:String, datasetStatus:String, formValue){ - formValue.status = datasetStatus; - return this.http.post(HostConfiguration.Server +'datasetprofile/save/'+datasetId, formValue, { headers: this.headers }) + public saveDataset(datasetWizard: DatasetWizardModel, formValue) { + datasetWizard.properties = formValue; + return this.createDataset(datasetWizard) + } + + public getDefinition(id: String): Observable { + return this.http.get(this.actionUrl + 'get/' + id, { headers: this.headers }); } }