no message

This commit is contained in:
annabakouli 2018-01-19 11:31:05 +02:00
parent 24ce69db63
commit 6a93ed8ef8
55 changed files with 524 additions and 169 deletions

View File

@ -25,7 +25,6 @@ export class FormComponent {
constructor(public restBase: RestBase, private datasetProfileService: DatasetProfileService, private route: ActivatedRoute) { constructor(public restBase: RestBase, private datasetProfileService: DatasetProfileService, private route: ActivatedRoute) {
this.profileID = route.snapshot.params['id']; this.profileID = route.snapshot.params['id'];
} }
ngOnInit() { ngOnInit() {
@ -34,19 +33,14 @@ export class FormComponent {
this.form = this.dataModel.buildForm(); this.form = this.dataModel.buildForm();
if (this.profileID) { if (this.profileID) {
this.datasetProfileService.getDatasetProfileById(this.profileID).subscribe((data) => { this.datasetProfileService.getDatasetProfileById(this.profileID).subscribe((data) => {
this.dataModel = new JsonSerializer<DatasetProfileModel>().fromJSONObject(data, DatasetProfileModel); this.dataModel = new JsonSerializer<DatasetProfileModel>().fromJSONObject(data, DatasetProfileModel);
this.form = this.dataModel.buildForm(); this.form = this.dataModel.buildForm();
}); });
} }
else{ else {
this.addSection();
this.addSection(); this.addPage(0);
this.addPage(0);
} }
// this.dataModel = new JsonSerializer<DatasetProfileModel>().fromJSONObject(TestModel, DatasetProfileModel);
// this.form = this.dataModel.buildForm();
} }
onIsMultiplicityEnabledChange(isMultiplicityEnabled: boolean) { onIsMultiplicityEnabledChange(isMultiplicityEnabled: boolean) {
@ -63,31 +57,31 @@ export class FormComponent {
} }
addPage(number) { addPage(number) {
let page: Page = new Page(this.dataModel.pages.length); let page: Page = new Page(this.dataModel.pages.length);
this.dataModel.pages.push(page); this.dataModel.pages.push(page);
(<FormArray>this.form.get("pages")).push(page.buildForm()); (<FormArray>this.form.get("pages")).push(page.buildForm());
} }
DeleteSection(index) { DeleteSection(index) {
this.dataModel.sections.splice(index,1); this.dataModel.sections.splice(index, 1);
(<FormArray>this.form.get("sections")).removeAt(index) (<FormArray>this.form.get("sections")).removeAt(index)
} }
DeletePage(index) { DeletePage(index) {
this.dataModel.pages.splice(index, 1); this.dataModel.pages.splice(index, 1);
(<FormArray>this.form.get("pages")).removeAt(index) (<FormArray>this.form.get("pages")).removeAt(index)
} }
createForm(data) { createForm(data) {
return this.restBase.post("/admin/addDmp", data); return this.restBase.post("/admin/addDmp", data);
} }
updateForm(id,data) { updateForm(id, data) {
return this.restBase.post("/admin/addDmp/"+id, data); return this.restBase.post("/admin/addDmp/" + id, data);
} }
onSubmit() { onSubmit() {
let data = this.form.value; let data = this.form.value;
if(this.profileID) this.updateForm(this.profileID, data).subscribe(); if (this.profileID) this.updateForm(this.profileID, data).subscribe();
else this.createForm(data).subscribe(); else this.createForm(data).subscribe();
} }

View File

@ -24,36 +24,21 @@ export class SectionFormComponent {
constructor() { } constructor() { }
ngOnInit() { ngOnInit() {
var self = this; var self = this;
this.form.root.get("pages").valueChanges.subscribe(function (value) {
this.form.root.get("pages").valueChanges.subscribe(function(value) { self.keepPageSelectionValid(value);
self.keepPageSelectionValid(value); });
});
} }
// addGroupField() {
// let fieldGroup: FieldGroup = new FieldGroup();
// if (this.dataModel.fieldGroups)
// this.dataModel.fieldGroups.push(fieldGroup);
// (<FormArray>this.form.get("fieldGroups")).push(fieldGroup.buildForm());
// }
addField() { addField() {
let fieldSet: FieldSet = new FieldSet(); let fieldSet: FieldSet = new FieldSet();
let field: Field = new Field(); let field: Field = new Field();
//let fieldGroup: FieldGroup = new FieldGroup();
fieldSet.fields.push(field); fieldSet.fields.push(field);
//fieldGroup.compositeFields.push(fieldSet);
if (this.dataModel.fieldSets) if (this.dataModel.fieldSets)
this.dataModel.fieldSets.push(fieldSet); this.dataModel.fieldSets.push(fieldSet);
(<FormArray>this.form.get("fieldSets")).push(fieldSet.buildForm()); (<FormArray>this.form.get("fieldSets")).push(fieldSet.buildForm());
} }
// DeleteFieldGroup(index) {
// this.dataModel.fieldGroups.splice(index, 1);
// (<FormArray>this.form.get("fieldGroups")).removeAt(index)
// }
addSectioninSection() { addSectioninSection() {
let section: Section = new Section(); let section: Section = new Section();
this.dataModel.sections.push(section); this.dataModel.sections.push(section);
@ -65,15 +50,15 @@ export class SectionFormComponent {
(<FormArray>this.form.get("sections")).removeAt(index); (<FormArray>this.form.get("sections")).removeAt(index);
} }
DeleteFieldSet(index){ DeleteFieldSet(index) {
this.dataModel.fieldSets.splice(index, 1); this.dataModel.fieldSets.splice(index, 1);
(<FormArray>this.form.get("fieldSets")).removeAt(index); (<FormArray>this.form.get("fieldSets")).removeAt(index);
} }
keepPageSelectionValid(pagesJson: Array<any>) { keepPageSelectionValid(pagesJson: Array<any>) {
let selectedPage = this.form.get("page").value as number; let selectedPage = this.form.get("page").value as String;
let pages: Array<Page> = new JsonSerializer<Page>().fromJSONArray(pagesJson, Page); let pages: Array<Page> = new JsonSerializer<Page>().fromJSONArray(pagesJson, Page);
if (!isNaN(selectedPage) && pages.find(elem => elem.id === selectedPage) === undefined) if (pages.find(elem => elem.id === selectedPage) === undefined)
this.form.get("page").reset(); this.form.get("page").reset();
} }
} }

View File

@ -3,7 +3,7 @@
<div class="col-sm-6 col-md-4 col-md-offset-4"> <div class="col-sm-6 col-md-4 col-md-offset-4">
<h1 class="text-center login-title"></h1> <h1 class="text-center login-title"></h1>
<div class="account-wall"> <div class="account-wall">
<img class="profile-img" src="/admin-ui/assets/icons/user-icon.png"> <img class="profile-img" src="assets/icons/user-icon.png">
<form class="form-signin" [formGroup]="nativeLoginForm"> <form class="form-signin" [formGroup]="nativeLoginForm">
<input type="text" class="form-control" [(ngModel)]="creds.username" formControlName="username" placeholder="Username or Email" required autofocus> <input type="text" class="form-control" [(ngModel)]="creds.username" formControlName="username" placeholder="Username or Email" required autofocus>
<input type="password" class="form-control" [(ngModel)]="creds.password" formControlName="password" placeholder="Password" required> <input type="password" class="form-control" [(ngModel)]="creds.password" formControlName="password" placeholder="Password" required>

View File

@ -5,25 +5,28 @@ import { Serializable } from '../interfaces/Serializable';
export class Page extends BaseModel implements Serializable<Page>, FormGenerator<FormGroup>{ export class Page extends BaseModel implements Serializable<Page>, FormGenerator<FormGroup>{
public title: string; public title: string;
public id: number; public id: string;
public ordinal: number;
constructor(id?: number) { constructor(ordinal?: number) {
super(); super();
if (isNaN(id)) this.id = 0; if (isNaN(ordinal)) this.ordinal = 0;
else this.id = id; else this.ordinal = ordinal;
this.id = "page_" + this.ordinal;
} }
fromJSONObject(item: any): Page { fromJSONObject(item: any): Page {
this.title = item.title; this.title = item.title;
this.id = item.id; this.id = item.id;
this.ordinal = item.ordinal;
return this; return this;
} }
buildForm(): FormGroup { buildForm(): FormGroup {
let formGroup = this.formBuilder.group({ let formGroup = this.formBuilder.group({
title: [this.title], title: [this.title],
id: [this.id] id: [this.id],
ordinal: [this.ordinal]
}); });
return formGroup; return formGroup;
} }

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>DmpAdmin</title> <title>DmpAdmin</title>
<base href="/admin-ui/"> <base href="/">
<meta name="csrf-token" content="2c64def7de30197c40276fe1a7ea874ca8871f70be7d7dc3305465a4d5c565e4"> <meta name="csrf-token" content="2c64def7de30197c40276fe1a7ea874ca8871f70be7d7dc3305465a4d5c565e4">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
@ -27,17 +27,17 @@
<!-- XML to json and vice versa lib --> <!-- XML to json and vice versa lib -->
<script src="/admin-ui/assets/xml2json.min.js"></script> <script src="assets/xml2json.min.js"></script>
<!-- Json formatter lib --> <!-- Json formatter lib -->
<link rel="stylesheet" type="text/css" href="/admin-ui/assets/jquery.json-viewer.css"> <link rel="stylesheet" type="text/css" href="assets/jquery.json-viewer.css">
<script src="/admin-ui/assets/jquery.json-viewer.js"></script> <script src="assets/jquery.json-viewer.js"></script>
<!-- lib 4 pretty-printing xml and json --> <!-- lib 4 pretty-printing xml and json -->
<script src="/admin-ui/assets/vkbeautify.0.99.00.js"></script> <script src="assets/vkbeautify.0.99.00.js"></script>
<!-- Nice BS notifications --> <!-- Nice BS notifications -->
<script src="/admin-ui/assets/bootstrap-notify.min.js"></script> <script src="assets/bootstrap-notify.min.js"></script>
<!-- that's google sign in library --> <!-- that's google sign in library -->
<script src="https://apis.google.com/js/platform.js"></script> <script src="https://apis.google.com/js/platform.js"></script>
@ -47,8 +47,8 @@
<!-- my custom global code and css --> <!-- my custom global code and css -->
<link rel="stylesheet" type="text/css" href="/admin-ui/assets/custom.css"> <link rel="stylesheet" type="text/css" href="assets/custom.css">
<script src="/admin-ui/assets/custom.js"></script> <script src="assets/custom.js"></script>
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/x-icon" href="favicon.ico">

View File

@ -31,19 +31,19 @@ import java.util.Map;
@RestController @RestController
@CrossOrigin @CrossOrigin
@RequestMapping( value = { "/datasetwizard" }) @RequestMapping(value = {"/datasetwizard"})
public class DatasetWizardController extends BaseController{ public class DatasetWizardController extends BaseController {
@Autowired @Autowired
public DatasetWizardController(ApiContext apiContext) { public DatasetWizardController(ApiContext apiContext) {
super(apiContext); super(apiContext);
} }
@RequestMapping(method = RequestMethod.POST, value = { "/userDmps" }, produces="application/json") @RequestMapping(method = RequestMethod.POST, value = {"/userDmps"}, produces = "application/json")
public @ResponseBody public @ResponseBody
ResponseItem<List<DataManagentPlanListingModel>> getUserDmps(@RequestBody DatasetWizardAutocompleteRequest datasetWizardAutocompleteRequest, Principal principal) { ResponseItem<List<DataManagentPlanListingModel>> getUserDmps(@RequestBody DatasetWizardAutocompleteRequest datasetWizardAutocompleteRequest, Principal principal) {
try { try {
List<DataManagentPlanListingModel> dataManagementPlans = DatasetWizardManager.getUserDmps(this.getApiContext().getDatabaseRepository().getDmpDao(),datasetWizardAutocompleteRequest,principal); List<DataManagentPlanListingModel> dataManagementPlans = DatasetWizardManager.getUserDmps(this.getApiContext().getDatabaseRepository().getDmpDao(), datasetWizardAutocompleteRequest, principal);
return new ResponseItem<List<DataManagentPlanListingModel>>().status(HttpStatus.OK).payload(dataManagementPlans); return new ResponseItem<List<DataManagentPlanListingModel>>().status(HttpStatus.OK).payload(dataManagementPlans);
} catch (Exception ex) { } catch (Exception ex) {
@ -52,10 +52,11 @@ public class DatasetWizardController extends BaseController{
} }
} }
@RequestMapping(method = RequestMethod.POST, value = { "/getAvailableProfiles" }, produces="application/json") @RequestMapping(method = RequestMethod.POST, value = {"/getAvailableProfiles"}, produces = "application/json")
public @ResponseBody ResponseItem<List<AssociatedProfile>> getAvailableProfiles(@RequestBody DatasetProfileWizardAutocompleteRequest datasetProfileWizardAutocompleteRequest, Principal principal) { public @ResponseBody
ResponseItem<List<AssociatedProfile>> getAvailableProfiles(@RequestBody DatasetProfileWizardAutocompleteRequest datasetProfileWizardAutocompleteRequest, Principal principal) {
try { try {
List<AssociatedProfile> dataManagementPlans = DatasetWizardManager.getAvailableProfiles(this.getApiContext().getDatabaseRepository().getDmpDao(),datasetProfileWizardAutocompleteRequest); List<AssociatedProfile> dataManagementPlans = DatasetWizardManager.getAvailableProfiles(this.getApiContext().getDatabaseRepository().getDmpDao(), datasetProfileWizardAutocompleteRequest);
return new ResponseItem<List<AssociatedProfile>>().status(HttpStatus.OK).payload(dataManagementPlans); return new ResponseItem<List<AssociatedProfile>>().status(HttpStatus.OK).payload(dataManagementPlans);
} catch (Exception ex) { } catch (Exception ex) {
@ -64,11 +65,11 @@ public class DatasetWizardController extends BaseController{
} }
} }
@RequestMapping(method = RequestMethod.GET, value = { "/getSingle/{id}" }, produces="application/json") @RequestMapping(method = RequestMethod.GET, value = {"/getSingle/{id}"}, produces = "application/json")
public @ResponseBody ResponseItem<DatasetWizardModel> getPaged(@PathVariable String id,Principal principal) { public @ResponseBody
ResponseItem<DatasetWizardModel> getPaged(@PathVariable String id, Principal principal) {
try { try {
DatasetWizardModel dataset = new DatasetManager().getSingle(this.getApiContext().getDatabaseRepository().getDatasetDao(), id); DatasetWizardModel dataset = new DatasetManager().getSingle(this.getApiContext().getDatabaseRepository().getDatasetDao(), id);
return new ResponseItem<DatasetWizardModel>().status(HttpStatus.OK).payload(dataset); return new ResponseItem<DatasetWizardModel>().status(HttpStatus.OK).payload(dataset);
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
@ -77,10 +78,11 @@ public class DatasetWizardController extends BaseController{
} }
@Transactional @Transactional
@RequestMapping(method = RequestMethod.POST, value = { "/createOrUpdate" }, consumes = "application/json",produces="application/json") @RequestMapping(method = RequestMethod.POST, value = {"/createOrUpdate"}, consumes = "application/json", produces = "application/json")
public @ResponseBody ResponseItem<eu.eudat.entities.Dataset> createOrUpdate(@RequestBody DatasetWizardModel profile,Principal principal) { public @ResponseBody
ResponseItem<eu.eudat.entities.Dataset> createOrUpdate(@RequestBody DatasetWizardModel profile, Principal principal) {
try { try {
eu.eudat.entities.Dataset dataset= DatasetManager.createOrUpdate(this.getApiContext(),profile); eu.eudat.entities.Dataset dataset = DatasetManager.createOrUpdate(this.getApiContext(), profile);
return new ResponseItem<eu.eudat.entities.Dataset>().status(HttpStatus.OK).payload(dataset); return new ResponseItem<eu.eudat.entities.Dataset>().status(HttpStatus.OK).payload(dataset);
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();

View File

@ -56,7 +56,7 @@ public class DMPDaoImpl implements DMPDao {
@Override @Override
public DMP find(UUID id) { public DMP find(UUID id) {
return databaseService.getQueryable(DMP.class).where((builder, root) -> builder.equal((root.get("id")),id)).toList().get(0); return databaseService.getQueryable(DMP.class).where((builder, root) -> builder.equal((root.get("id")),id)).getSingle();
} }
public Long count(){ public Long count(){

View File

@ -48,7 +48,7 @@ public class DatasetDaoImpl implements DatasetDao {
@Override @Override
public Dataset find(UUID id) { public Dataset find(UUID id) {
return databaseService.getQueryable(Dataset.class).where((builder, root) -> builder.equal((root.get("id")), id)).toList().get(0); return databaseService.getQueryable(Dataset.class).where((builder, root) -> builder.equal((root.get("id")), id)).getSingle();
} }
public Long count() { public Long count() {

View File

@ -39,7 +39,7 @@ public class DatasetProfileDaoImpl implements DatasetProfileDao {
@Override @Override
public DatasetProfile find(UUID id) { public DatasetProfile find(UUID id) {
return databaseService.getQueryable(DatasetProfile.class).where((builder, root) -> builder.equal(root.get("id"),id)).toList().get(0); return databaseService.getQueryable(DatasetProfile.class).where((builder, root) -> builder.equal(root.get("id"),id)).getSingle();
} }
@Override @Override

View File

@ -33,7 +33,7 @@ public class ExternalDatasetDaoImpl implements ExternalDatasetDao {
@Override @Override
public ExternalDataset find(UUID id) { public ExternalDataset find(UUID id) {
return this.databaseService.getQueryable(ExternalDataset.class).where((builder, root) -> builder.equal(root.get("id"),id)).toList().get(0); return this.databaseService.getQueryable(ExternalDataset.class).where((builder, root) -> builder.equal(root.get("id"),id)).getSingle();
} }
@Override @Override

View File

@ -31,7 +31,7 @@ public class InvitationDaoImpl implements InvitationDao{
@Override @Override
public Invitation find(UUID id) { public Invitation find(UUID id) {
return this.databaseService.getQueryable(Invitation.class).where((builder, root) -> builder.equal(root.get("id"),id)).toList().get(0); return this.databaseService.getQueryable(Invitation.class).where((builder, root) -> builder.equal(root.get("id"),id)).getSingle();
} }
@Override @Override

View File

@ -44,7 +44,7 @@ public class ProjectDaoImpl implements ProjectDao {
@Override @Override
public Project find(UUID id) { public Project find(UUID id) {
return databaseService.getQueryable(Project.class).where((builder, root) -> builder.equal((root.get("id")),id)).toList().get(0); return databaseService.getQueryable(Project.class).where((builder, root) -> builder.equal((root.get("id")),id)).getSingle();
} }
public Long count(){ public Long count(){

View File

@ -40,7 +40,7 @@ public class UserInfoDaoImpl implements UserInfoDao {
@Override @Override
public UserInfo find(UUID id) { public UserInfo find(UUID id) {
return this.databaseService.getQueryable(UserInfo.class).where((builder, root) -> builder.equal(root.get("id"),id)).toList().get(0); return this.databaseService.getQueryable(UserInfo.class).where((builder, root) -> builder.equal(root.get("id"),id)).getSingle();
} }
@Override @Override

View File

@ -17,8 +17,10 @@ import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@Table(name = "\"DMP\"") @Table(name = "\"DMP\"")
@NamedEntityGraphs({ @NamedEntityGraphs({
@NamedEntityGraph( @NamedEntityGraph(
name = "organisationsAndResearchers", name = "dataManagementPlanListingModel",
attributeNodes = {@NamedAttributeNode("organisations"), @NamedAttributeNode("researchers")}), attributeNodes = {@NamedAttributeNode("organisations"), @NamedAttributeNode("researchers"),
@NamedAttributeNode("project"), @NamedAttributeNode("profile")}
),
@NamedEntityGraph( @NamedEntityGraph(
name = "fullyDetailed", name = "fullyDetailed",
attributeNodes = { attributeNodes = {
@ -31,7 +33,7 @@ public class DMP implements Serializable, DataEntity<DMP> {
return hints; return hints;
} }
private static final Set<String> hints = new HashSet<>(Arrays.asList("organisationsAndResearchers", "fullyDetailed")); private static final Set<String> hints = new HashSet<>(Arrays.asList("dataManagementPlanListingModel", "fullyDetailed"));
private static final long serialVersionUID = -8263056535208547615L; private static final long serialVersionUID = -8263056535208547615L;
@ -272,7 +274,7 @@ public class DMP implements Serializable, DataEntity<DMP> {
/* /*
public String toString() { public String toString() {
try { try {
return new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT).writeValueAsString(this); return new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT).writeValueAsString(this);
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {

View File

@ -16,20 +16,16 @@ import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@Table(name="\"Dataset\"") @Table(name="\"Dataset\"")
@NamedEntityGraphs({ @NamedEntityGraphs({
@NamedEntityGraph( @NamedEntityGraph(
name = "datasetreferences", name = "datasetListingModel",
attributeNodes = {@NamedAttributeNode("services"),@NamedAttributeNode("dataRepositories"),@NamedAttributeNode("registries")}), attributeNodes = {@NamedAttributeNode("services"),@NamedAttributeNode("dataRepositories"),@NamedAttributeNode("registries"),
@NamedEntityGraph( @NamedAttributeNode("dmp"),@NamedAttributeNode("profile")})
name = "datasetFullyDetailed",
attributeNodes = {
@NamedAttributeNode("dmp"),@NamedAttributeNode("profile"),@NamedAttributeNode("creator"),
@NamedAttributeNode("services"),@NamedAttributeNode("dataRepositories"),@NamedAttributeNode("registries")})
}) })
public class Dataset implements DataEntity<Dataset> { public class Dataset implements DataEntity<Dataset> {
public static Set<String> getHints() { public static Set<String> getHints() {
return hints; return hints;
} }
private static final Set<String> hints = new HashSet<>(Arrays.asList("datasetreferences", "datasetFullyDetailed")); private static final Set<String> hints = new HashSet<>(Arrays.asList("datasetListingModel"));
private static final long serialVersionUID = 3575723814399553259L; private static final long serialVersionUID = 3575723814399553259L;

View File

@ -0,0 +1,55 @@
package eu.eudat.entities.xmlmodels.datasetprofiledefinition;
import eu.eudat.utilities.XmlSerializable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Created by ikalyvas on 1/19/2018.
*/
public class Page implements DatabaseViewStyleDefinition,XmlSerializable<Page> {
private String id;
private int ordinal;
private String title;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getOrdinal() {
return ordinal;
}
public void setOrdinal(int ordinal) {
this.ordinal = ordinal;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public Element toXml(Document doc) {
Element root = doc.createElement("page");
root.setAttribute("title",this.title);
root.setAttribute("ordinal",""+this.ordinal);
root.setAttribute("id",this.id);
return root;
}
@Override
public Page fromXml(Element item) {
this.ordinal = Integer.parseInt(item.getAttribute("ordinal"));
this.id = item.getAttribute("id");
this.title = item.getAttribute("title");
return this;
}
}

View File

@ -15,7 +15,7 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
private String id; private String id;
private int ordinal; private int ordinal;
private boolean defaultVisibility; private boolean defaultVisibility;
private int page; private String page;
private String title; private String title;
private String description; private String description;
private String extendedDescription; private String extendedDescription;
@ -39,10 +39,10 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
public void setDefaultVisibility(boolean defaultVisibility) { public void setDefaultVisibility(boolean defaultVisibility) {
this.defaultVisibility = defaultVisibility; this.defaultVisibility = defaultVisibility;
} }
public int getPage() { public String getPage() {
return page; return page;
} }
public void setPage(int page) { public void setPage(String page) {
this.page = page; this.page = page;
} }
public String getTitle() { public String getTitle() {
@ -124,7 +124,7 @@ public class Section implements DatabaseViewStyleDefinition,XmlSerializable<Sect
this.id = element.getAttribute("id"); this.id = element.getAttribute("id");
this.ordinal = Integer.parseInt(element.getAttribute("ordinal")); this.ordinal = Integer.parseInt(element.getAttribute("ordinal"));
this.defaultVisibility = Boolean.getBoolean(element.getAttribute("defaultVisibility")); this.defaultVisibility = Boolean.getBoolean(element.getAttribute("defaultVisibility"));
this.page = Integer.parseInt(element.getAttribute("page")); this.page = element.getAttribute("page");
Element description = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"description"); Element description = XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"description");
if(description!=null) this.description = description.getTextContent(); if(description!=null) this.description = description.getTextContent();

View File

@ -2,7 +2,6 @@ package eu.eudat.entities.xmlmodels.datasetprofiledefinition;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import org.w3c.dom.Node; import org.w3c.dom.Node;
@ -11,46 +10,71 @@ import org.w3c.dom.NodeList;
import eu.eudat.utilities.XmlSerializable; import eu.eudat.utilities.XmlSerializable;
import eu.eudat.utilities.builders.XmlBuilder; import eu.eudat.utilities.builders.XmlBuilder;
public class ViewStyleModel implements XmlSerializable<ViewStyleModel>{ public class ViewStyleModel implements XmlSerializable<ViewStyleModel> {
private List<Section> sections; private List<Section> sections;
private List<Page> pages;
public List<Section> getSections() { public List<Section> getSections() {
return sections; return sections;
} }
public void setSections(List<Section> sections) { public void setSections(List<Section> sections) {
this.sections = sections; this.sections = sections;
} }
@Override public List<Page> getPages() {
public Element toXml(Document doc) { return pages;
Element root = doc.createElement("root"); }
Element sections = doc.createElement("sections");
for(Section section: this.sections){ public void setPages(List<Page> pages) {
sections.appendChild(section.toXml(doc)); this.pages = pages;
} }
root.appendChild(sections); @Override
return root; public Element toXml(Document doc) {
} Element root = doc.createElement("root");
Element sections = doc.createElement("sections");
Element pages = doc.createElement("pages");
for (Section section : this.sections) {
sections.appendChild(section.toXml(doc));
}
@Override for (Page page : this.pages) {
public ViewStyleModel fromXml(Element element) { pages.appendChild(page.toXml(doc));
}
this.sections = new LinkedList(); root.appendChild(pages);
Element sections = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "sections"); root.appendChild(sections);
if(sections!=null){ return root;
NodeList sectionElements = sections.getChildNodes(); }
for (int temp = 0; temp < sectionElements.getLength(); temp++) {
Node sectionElement = sectionElements.item(temp); @Override
if (sectionElement.getNodeType() == Node.ELEMENT_NODE) { public ViewStyleModel fromXml(Element element) {
this.sections.add(new Section().fromXml((Element)sectionElement));
} this.sections = new LinkedList();
} Element sections = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "sections");
} if (sections != null) {
return this; NodeList sectionElements = sections.getChildNodes();
} for (int temp = 0; temp < sectionElements.getLength(); temp++) {
Node sectionElement = sectionElements.item(temp);
if (sectionElement.getNodeType() == Node.ELEMENT_NODE) {
this.sections.add(new Section().fromXml((Element) sectionElement));
}
}
}
this.pages = new LinkedList<>();
Element pages = (Element) XmlBuilder.getNodeFromListByTagName(element.getChildNodes(),"pages");
if(pages!=null){
NodeList pagesElements = sections.getChildNodes();
for (int temp = 0; temp < pagesElements.getLength(); temp++) {
Node pageElement = pagesElements.item(temp);
if (pageElement.getNodeType() == Node.ELEMENT_NODE) {
this.pages.add(new Page().fromXml((Element) pageElement));
}
}
}
return this;
}
} }

View File

@ -23,6 +23,7 @@ public class AdminManager {
public static eu.eudat.entities.DatasetProfile generateViewStyleDefinition(DatasetProfile profile){ public static eu.eudat.entities.DatasetProfile generateViewStyleDefinition(DatasetProfile profile){
ViewStyleModel viewStyleModel = new ViewStyleModel(); ViewStyleModel viewStyleModel = new ViewStyleModel();
viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section.class)); viewStyleModel.setSections(new ModelBuilder().toViewStyleDefinition(profile.getSections(), eu.eudat.entities.xmlmodels.datasetprofiledefinition.Section.class));
viewStyleModel.setPages(new ModelBuilder().toViewStyleDefinition(profile.getPages(), eu.eudat.entities.xmlmodels.datasetprofiledefinition.Page.class));
Document viewStyleDoc = XmlBuilder.getDocument(); Document viewStyleDoc = XmlBuilder.getDocument();
Element elementViewStyle = viewStyleModel.toXml(viewStyleDoc); Element elementViewStyle = viewStyleModel.toXml(viewStyleDoc);
viewStyleDoc.appendChild(elementViewStyle); viewStyleDoc.appendChild(elementViewStyle);

View File

@ -10,6 +10,7 @@ import eu.eudat.entities.DMP;
import eu.eudat.entities.Project; import eu.eudat.entities.Project;
import eu.eudat.entities.UserInfo; import eu.eudat.entities.UserInfo;
import eu.eudat.exceptions.UnauthorisedException; import eu.eudat.exceptions.UnauthorisedException;
import eu.eudat.models.HintedModelFactory;
import eu.eudat.models.criteria.DataManagementPlanCriteria; import eu.eudat.models.criteria.DataManagementPlanCriteria;
import eu.eudat.models.criteria.OrganisationCriteria; import eu.eudat.models.criteria.OrganisationCriteria;
import eu.eudat.models.criteria.ProjectCriteria; import eu.eudat.models.criteria.ProjectCriteria;
@ -33,8 +34,7 @@ public class DataManagementPlanManager {
QueryableList<DMP> authItems = apiContext.getDatabaseRepository().getDmpDao().getAuthenticated(items, userInfo); QueryableList<DMP> authItems = apiContext.getDatabaseRepository().getDmpDao().getAuthenticated(items, userInfo);
QueryableList<DMP> pagedItems = PaginationManager.applyPaging(authItems, dataManagementPlanTableRequest); QueryableList<DMP> pagedItems = PaginationManager.applyPaging(authItems, dataManagementPlanTableRequest);
if (dataManagementPlanTableRequest.getWithHint()) pagedItems.withHint("fullyDetailed"); List<DataManagementPlanListingModel> datamanagementPlans = new DomainModelConverter<eu.eudat.entities.DMP, DataManagementPlanListingModel>().fromDataModel(pagedItems.withHint(HintedModelFactory.getHint(DataManagementPlanListingModel.class)).toList(), DataManagementPlanListingModel.class);
List<DataManagementPlanListingModel> datamanagementPlans = new DomainModelConverter<eu.eudat.entities.DMP, DataManagementPlanListingModel>().fromDataModel(pagedItems.toList(), DataManagementPlanListingModel.class);
DataTableData<DataManagementPlanListingModel> dataTable = new DataTableData<DataManagementPlanListingModel>(); DataTableData<DataManagementPlanListingModel> dataTable = new DataTableData<DataManagementPlanListingModel>();
dataTable.setData(datamanagementPlans); dataTable.setData(datamanagementPlans);
dataTable.setTotalCount(items.count()); dataTable.setTotalCount(items.count());
@ -43,7 +43,7 @@ public class DataManagementPlanManager {
public eu.eudat.models.dmp.DataManagementPlan getSingle(DMPDao dmpsRepository, String id, Principal principal) throws InstantiationException, IllegalAccessException { public eu.eudat.models.dmp.DataManagementPlan getSingle(DMPDao dmpsRepository, String id, Principal principal) throws InstantiationException, IllegalAccessException {
DMP dataManagementPlanEntity = dmpsRepository.find(UUID.fromString(id)); DMP dataManagementPlanEntity = dmpsRepository.find(UUID.fromString(id));
if (dataManagementPlanEntity.getCreator().getId()!=principal.getId()&&dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getId() == principal.getId()).collect(Collectors.toList()).size() == 0) if (dataManagementPlanEntity.getCreator().getId() != principal.getId() && dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getId() == principal.getId()).collect(Collectors.toList()).size() == 0)
throw new UnauthorisedException(); throw new UnauthorisedException();
eu.eudat.models.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.dmp.DataManagementPlan(); eu.eudat.models.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.dmp.DataManagementPlan();
datamanagementPlan.fromDataModel(dataManagementPlanEntity); datamanagementPlan.fromDataModel(dataManagementPlanEntity);

View File

@ -2,6 +2,7 @@ package eu.eudat.managers;
import eu.eudat.dao.entities.*; import eu.eudat.dao.entities.*;
import eu.eudat.entities.UserInfo; import eu.eudat.entities.UserInfo;
import eu.eudat.models.HintedModelFactory;
import eu.eudat.models.criteria.DataRepositoryCriteria; import eu.eudat.models.criteria.DataRepositoryCriteria;
import eu.eudat.models.criteria.RegistryCriteria; import eu.eudat.models.criteria.RegistryCriteria;
import eu.eudat.models.criteria.ServiceCriteria; import eu.eudat.models.criteria.ServiceCriteria;
@ -13,6 +14,7 @@ import eu.eudat.models.listingmodels.DatasetListingModel;
import eu.eudat.models.project.Project; import eu.eudat.models.project.Project;
import eu.eudat.models.project.ProjectTableRequest; import eu.eudat.models.project.ProjectTableRequest;
import eu.eudat.models.security.Principal; import eu.eudat.models.security.Principal;
import eu.eudat.models.user.composite.PagedDatasetProfile;
import eu.eudat.queryable.QueryableList; import eu.eudat.queryable.QueryableList;
import eu.eudat.services.ApiContext; import eu.eudat.services.ApiContext;
import eu.eudat.utilities.builders.DomainModelConverter; import eu.eudat.utilities.builders.DomainModelConverter;
@ -34,8 +36,7 @@ public class DatasetManager {
QueryableList<eu.eudat.entities.Dataset> items = apiContext.getDatabaseRepository().getDatasetDao().getWithCriteria(datasetTableRequest.getCriteria()); QueryableList<eu.eudat.entities.Dataset> items = apiContext.getDatabaseRepository().getDatasetDao().getWithCriteria(datasetTableRequest.getCriteria());
QueryableList<eu.eudat.entities.Dataset> authItems = apiContext.getDatabaseRepository().getDatasetDao().getAuthenticated(items,userInfo); QueryableList<eu.eudat.entities.Dataset> authItems = apiContext.getDatabaseRepository().getDatasetDao().getAuthenticated(items,userInfo);
QueryableList<eu.eudat.entities.Dataset> pagedItems = PaginationManager.applyPaging( authItems ,datasetTableRequest); QueryableList<eu.eudat.entities.Dataset> pagedItems = PaginationManager.applyPaging( authItems ,datasetTableRequest);
if(datasetTableRequest.getWithHint())pagedItems.withHint("datasetFullyDetailed"); List<DatasetListingModel> datasets = new DomainModelConverter<eu.eudat.entities.Dataset, DatasetListingModel>().fromDataModel( pagedItems.withHint(HintedModelFactory.getHint(DatasetListingModel.class)).toList(), DatasetListingModel.class);
List<DatasetListingModel> datasets = new DomainModelConverter<eu.eudat.entities.Dataset, DatasetListingModel>().fromDataModel( pagedItems.toList(), DatasetListingModel.class);
DataTableData<DatasetListingModel> dataTable = new DataTableData<DatasetListingModel>(); DataTableData<DatasetListingModel> dataTable = new DataTableData<DatasetListingModel>();
dataTable.setData(datasets); dataTable.setData(datasets);
dataTable.setTotalCount(items.count()); dataTable.setTotalCount(items.count());
@ -52,7 +53,9 @@ public class DatasetManager {
Map<String,Object> properties = (Map<String, Object>)jobject.toMap(); Map<String,Object> properties = (Map<String, Object>)jobject.toMap();
datasetprofile.fromJsonObject(properties); datasetprofile.fromJsonObject(properties);
} }
dataset.setDatasetProfileDefinition(datasetprofile); PagedDatasetProfile pagedDatasetProfile = new PagedDatasetProfile();
pagedDatasetProfile.buildPagedDatasetProfile(datasetprofile);
dataset.setDatasetProfileDefinition(pagedDatasetProfile);
dataset.fromDataModel(datasetEntity); dataset.fromDataModel(datasetEntity);
return dataset; return dataset;
} }

View File

@ -5,4 +5,5 @@ import eu.eudat.entities.DataEntity;
public interface DataModel<T extends DataEntity> { public interface DataModel<T extends DataEntity> {
void fromDataModel(T entity) throws InstantiationException, IllegalAccessException; void fromDataModel(T entity) throws InstantiationException, IllegalAccessException;
T toDataModel() throws Exception; T toDataModel() throws Exception;
String getHint();
} }

View File

@ -0,0 +1,19 @@
package eu.eudat.models;
/**
* Created by ikalyvas on 1/18/2018.
*/
public class HintedModelFactory {
public static <T extends DataModel> String getHint(Class<T> clazz) {
try {
return clazz.newInstance().getHint();
} catch (InstantiationException e) {
e.printStackTrace();
return null;
} catch (IllegalAccessException e) {
e.printStackTrace();
return null;
}
}
}

View File

@ -0,0 +1,57 @@
package eu.eudat.models.admin.components.datasetprofile;
import eu.eudat.entities.xmlmodels.datasetprofiledefinition.*;
import eu.eudat.utilities.ViewStyleDefinition;
/**
* Created by ikalyvas on 1/19/2018.
*/
public class Page implements Comparable,ViewStyleDefinition<eu.eudat.entities.xmlmodels.datasetprofiledefinition.Page> {
private String id;
private Integer ordinal;
private String title;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getOrdinal() {
return ordinal;
}
public void setOrdinal(int ordinal) {
this.ordinal = ordinal;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public eu.eudat.entities.xmlmodels.datasetprofiledefinition.Page toDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Page item) {
item.setId(this.id);
item.setOrdinal(this.ordinal);
item.setTitle(this.title);
return item;
}
@Override
public void fromDatabaseDefinition(eu.eudat.entities.xmlmodels.datasetprofiledefinition.Page item) {
this.title = item.getTitle();
this.ordinal = item.getOrdinal();
this.id = item.getId();
}
@Override
public int compareTo(Object o) {
return this.ordinal.compareTo((Integer)o);
}
}

View File

@ -11,7 +11,7 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
private List<Section> sections; private List<Section> sections;
private List<FieldSet> fieldSets; private List<FieldSet> fieldSets;
private Boolean defaultVisibility; private Boolean defaultVisibility;
private int page; private String page;
private Integer ordinal; private Integer ordinal;
private String id; private String id;
private String title; private String title;
@ -37,10 +37,10 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
public void setDefaultVisibility(Boolean defaultVisibility) { public void setDefaultVisibility(Boolean defaultVisibility) {
this.defaultVisibility = defaultVisibility; this.defaultVisibility = defaultVisibility;
} }
public int getPage() { public String getPage() {
return page; return page;
} }
public void setPage(int page) { public void setPage(String page) {
this.page = page; this.page = page;
} }
public String getId() { public String getId() {

View File

@ -10,7 +10,7 @@ import eu.eudat.models.admin.components.datasetprofile.*;
public class DatasetProfile { public class DatasetProfile {
private String label; private String label;
private List<Section> sections; private List<Section> sections;
private List<Page> pages;
public List<Section> getSections() { public List<Section> getSections() {
return sections; return sections;
} }
@ -31,5 +31,11 @@ public class DatasetProfile {
this.sections = new ModelBuilder().fromViewStyleDefinition(viewStyle.getSections(), Section.class); this.sections = new ModelBuilder().fromViewStyleDefinition(viewStyle.getSections(), Section.class);
} }
public List<Page> getPages() {
return pages;
}
public void setPages(List<Page> pages) {
this.pages = pages;
}
} }

View File

@ -55,4 +55,9 @@ public class DataRepository implements DataModel<eu.eudat.entities.DataRepositor
public String generateLabel() { public String generateLabel() {
return this.getName(); return this.getName();
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -164,4 +164,8 @@ public class Dataset implements DataModel<eu.eudat.entities.Dataset>{
return entity; return entity;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -81,4 +81,9 @@ public class Registry implements DataModel<eu.eudat.entities.Registry>,LabelGene
eu.eudat.entities.Registry entity = new eu.eudat.entities.Registry(); eu.eudat.entities.Registry entity = new eu.eudat.entities.Registry();
return entity; return entity;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -85,4 +85,9 @@ public class Service implements DataModel<eu.eudat.entities.Service>,LabelGenera
public String generateLabel() { public String generateLabel() {
return this.label; return this.label;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -42,4 +42,9 @@ public class DatasetProfileAutocompleteItem implements DataModel<DatasetProfile>
profile.setId(this.id); profile.setId(this.id);
return profile; return profile;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -94,4 +94,9 @@ public class DatasetProfileListingModel implements DataModel<DatasetProfile> {
profile.setId(this.id); profile.setId(this.id);
return profile; return profile;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -37,4 +37,9 @@ public class DataManagentPlanListingModel implements DataModel<DMP>{
public DMP toDataModel() { public DMP toDataModel() {
return null; return null;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -12,6 +12,7 @@ import eu.eudat.models.dmp.DataManagementPlan;
import eu.eudat.models.externaldataset.ExternalDatasetListingModel; import eu.eudat.models.externaldataset.ExternalDatasetListingModel;
import eu.eudat.models.listingmodels.DatasetListingModel; import eu.eudat.models.listingmodels.DatasetListingModel;
import eu.eudat.models.user.composite.DatasetProfile; import eu.eudat.models.user.composite.DatasetProfile;
import eu.eudat.models.user.composite.PagedDatasetProfile;
import eu.eudat.utilities.builders.DomainModelConverter; import eu.eudat.utilities.builders.DomainModelConverter;
import java.util.*; import java.util.*;
@ -31,7 +32,7 @@ public class DatasetWizardModel implements DataModel<Dataset> {
private String properties; private String properties;
private Date created; private Date created;
private DataManagementPlan dmp; private DataManagementPlan dmp;
private eu.eudat.models.user.composite.DatasetProfile datasetProfileDefinition; private PagedDatasetProfile datasetProfileDefinition;
private List<Registry> registries; private List<Registry> registries;
private List<Service> services; private List<Service> services;
private List<DataRepository> dataRepositories; private List<DataRepository> dataRepositories;
@ -110,11 +111,11 @@ public class DatasetWizardModel implements DataModel<Dataset> {
this.dmp = dmp; this.dmp = dmp;
} }
public DatasetProfile getDatasetProfileDefinition() { public PagedDatasetProfile getDatasetProfileDefinition() {
return datasetProfileDefinition; return datasetProfileDefinition;
} }
public void setDatasetProfileDefinition(DatasetProfile datasetProfileDefinition) { public void setDatasetProfileDefinition(PagedDatasetProfile datasetProfileDefinition) {
this.datasetProfileDefinition = datasetProfileDefinition; this.datasetProfileDefinition = datasetProfileDefinition;
} }
@ -163,6 +164,7 @@ public class DatasetWizardModel implements DataModel<Dataset> {
this.id = entity.getId(); this.id = entity.getId();
this.label = entity.getLabel(); this.label = entity.getLabel();
this.properties = entity.getProperties(); this.properties = entity.getProperties();
this.status = entity.getStatus();
this.reference = entity.getReference(); this.reference = entity.getReference();
this.description = entity.getDescription(); this.description = entity.getDescription();
this.profile = new DatasetProfileListingModel(); this.profile = new DatasetProfileListingModel();
@ -218,4 +220,9 @@ public class DatasetWizardModel implements DataModel<Dataset> {
} }
return entity; return entity;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -178,4 +178,9 @@ public class DataManagementPlan implements DataModel<DMP>{
dataManagementPlanEntity.setCreated(this.created!=null?this.created:new Date()); dataManagementPlanEntity.setCreated(this.created!=null?this.created:new Date());
return dataManagementPlanEntity; return dataManagementPlanEntity;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -65,4 +65,9 @@ public class Organisation implements DataModel<eu.eudat.entities.Organisation>,L
public String generateLabel() { public String generateLabel() {
return this.getName(); return this.getName();
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -66,4 +66,9 @@ public class Researcher implements DataModel<eu.eudat.entities.Researcher>,Label
public String generateLabel() { public String generateLabel() {
return this.getName(); return this.getName();
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -88,4 +88,9 @@ public class ExternalDatasetListingModel implements DataModel<ExternalDataset> {
externalDataset.setReference(this.reference); externalDataset.setReference(this.reference);
return externalDataset; return externalDataset;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -96,5 +96,8 @@ public class DataManagementPlanListingModel implements DataModel<DMP> {
return null; return null;
} }
@Override
public String getHint() {
return "dataManagementPlanListingModel";
}
} }

View File

@ -134,4 +134,9 @@ public class DatasetListingModel implements DataModel<Dataset> {
public Dataset toDataModel() { public Dataset toDataModel() {
return null; return null;
} }
@Override
public String getHint() {
return "datasetListingModel";
}
} }

View File

@ -215,4 +215,9 @@ public class Project implements DataModel<eu.eudat.entities.Project> {
entity.setDescription(this.description); entity.setDescription(this.description);
return entity; return entity;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -31,4 +31,9 @@ public class ProjectCriteriaModel implements DataModel<eu.eudat.entities.Project
project.setId(this.id); project.setId(this.id);
return project; return project;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -202,4 +202,9 @@ public class ProjectListingModel implements DataModel<eu.eudat.entities.Project>
public eu.eudat.entities.Project toDataModel() throws Exception { public eu.eudat.entities.Project toDataModel() throws Exception {
throw new Exception("Not Implemented"); throw new Exception("Not Implemented");
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -12,7 +12,7 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
private List<Section> sections; private List<Section> sections;
private List<FieldSet> fieldSets; private List<FieldSet> fieldSets;
private Boolean defaultVisibility; private Boolean defaultVisibility;
private int page; private String page;
private Integer ordinal; private Integer ordinal;
private String id; private String id;
private String title; private String title;
@ -39,10 +39,10 @@ public class Section implements Comparable,ViewStyleDefinition<eu.eudat.entities
public void setDefaultVisibility(Boolean defaultVisibility) { public void setDefaultVisibility(Boolean defaultVisibility) {
this.defaultVisibility = defaultVisibility; this.defaultVisibility = defaultVisibility;
} }
public int getPage() { public String getPage() {
return page; return page;
} }
public void setPage(int page) { public void setPage(String page) {
this.page = page; this.page = page;
} }
public String getId() { public String getId() {

View File

@ -1,5 +1,6 @@
package eu.eudat.models.user.composite; package eu.eudat.models.user.composite;
import eu.eudat.models.admin.components.datasetprofile.Page;
import eu.eudat.utilities.builders.ModelBuilder; import eu.eudat.utilities.builders.ModelBuilder;
import eu.eudat.utilities.helpers.ModelBuilderCollector; import eu.eudat.utilities.helpers.ModelBuilderCollector;
@ -12,6 +13,7 @@ import eu.eudat.models.user.components.commons.Rule;
public class DatasetProfile implements PropertiesModelBuilder{ public class DatasetProfile implements PropertiesModelBuilder{
private List<Section> sections; private List<Section> sections;
private List<Rule> rules; private List<Rule> rules;
private List<Page> pages;
private int status; private int status;
public List<Section> getSections() { public List<Section> getSections() {
return sections; return sections;
@ -38,8 +40,17 @@ public class DatasetProfile implements PropertiesModelBuilder{
this.status = status; this.status = status;
} }
public void buildProfile( eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewStyle){ public List<Page> getPages() {
return pages;
}
public void setPages(List<Page> pages) {
this.pages = pages;
}
public void buildProfile(eu.eudat.entities.xmlmodels.datasetprofiledefinition.ViewStyleModel viewStyle){
this.sections = new ModelBuilder().fromViewStyleDefinition(viewStyle.getSections(), Section.class); this.sections = new ModelBuilder().fromViewStyleDefinition(viewStyle.getSections(), Section.class);
this.pages = new ModelBuilder().fromViewStyleDefinition(viewStyle.getPages(), Page.class);
this.rules = ModelBuilderCollector.collectRules(viewStyle.getSections()); this.rules = ModelBuilderCollector.collectRules(viewStyle.getSections());
} }

View File

@ -0,0 +1,37 @@
package eu.eudat.models.user.composite;
import eu.eudat.models.user.components.datasetprofile.Section;
import java.util.List;
/**
* Created by ikalyvas on 1/19/2018.
*/
public class DatasetProfilePage {
private Integer ordinal;
private String title;
private List<Section> sections;
public Integer getOrdinal() {
return ordinal;
}
public void setOrdinal(Integer ordinal) {
this.ordinal = ordinal;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<Section> getSections() {
return sections;
}
public void setSections(List<Section> sections) {
this.sections = sections;
}
}

View File

@ -0,0 +1,56 @@
package eu.eudat.models.user.composite;
import eu.eudat.models.admin.components.datasetprofile.Page;
import eu.eudat.models.user.components.commons.Rule;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
* Created by ikalyvas on 1/19/2018.
*/
public class PagedDatasetProfile {
private List<DatasetProfilePage> pages;
private List<Rule> rules;
private int status;
public List<DatasetProfilePage> getPages() {
return pages;
}
public void setPages(List<DatasetProfilePage> pages) {
this.pages = pages;
}
public List<Rule> getRules() {
return rules;
}
public void setRules(List<Rule> rules) {
this.rules = rules;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public PagedDatasetProfile buildPagedDatasetProfile(DatasetProfile profile) {
this.status = profile.getStatus();
this.rules = profile.getRules();
this.pages = new LinkedList<>();
List<Page> pages = profile.getPages();
for (Page page : pages) {
DatasetProfilePage datasetProfilePage = new DatasetProfilePage();
datasetProfilePage.setOrdinal(page.getOrdinal());
datasetProfilePage.setTitle(page.getTitle());
datasetProfilePage.setSections(profile.getSections().stream().filter(item -> item.getPage().equals(page.getId())).collect(Collectors.toList()));
}
return this;
}
}

View File

@ -110,5 +110,8 @@ public class UserInfo implements DataModel<eu.eudat.entities.UserInfo>{
return null; return null;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -53,4 +53,9 @@ public class UserInfoInvitationModel implements DataModel<eu.eudat.entities.User
userInfo.setName(this.name); userInfo.setName(this.name);
return userInfo; return userInfo;
} }
@Override
public String getHint() {
return null;
}
} }

View File

@ -17,6 +17,8 @@ public interface QueryableList<T extends DataEntity<T>> {
List<T> toList(); List<T> toList();
T getSingle();
QueryableList<T> skip(Integer offset); QueryableList<T> skip(Integer offset);
QueryableList<T> take(Integer length); QueryableList<T> take(Integer length);
@ -26,6 +28,6 @@ public interface QueryableList<T extends DataEntity<T>> {
QueryableList<T> orderByAsc(OrderByPredicate<T> predicate); QueryableList<T> orderByAsc(OrderByPredicate<T> predicate);
QueryableList<T> orderByDesc(OrderByPredicate<T> predicate); QueryableList<T> orderByDesc(OrderByPredicate<T> predicate);
QueryableList<T> setHints(Set<String> hints); QueryableList<T> setHints(Set<String> hints);
void withHint(String hint); QueryableList<T> withHint(String hint);
Long count(); Long count();
} }

View File

@ -40,8 +40,9 @@ public class QueryableHibernateList<T extends DataEntity<T>> implements Queryabl
return this; return this;
} }
public void withHint(String hint) { public QueryableList<T> withHint(String hint) {
this.hint = hint; this.hint = hint;
return this;
} }
public QueryableList<T> setHints(Set<String> hints) { public QueryableList<T> setHints(Set<String> hints) {
@ -122,11 +123,20 @@ public class QueryableHibernateList<T extends DataEntity<T>> implements Queryabl
if (this.length != null) typedQuery.setMaxResults(this.length); if (this.length != null) typedQuery.setMaxResults(this.length);
if (this.hint != null && this.hints.contains(hint)) { if (this.hint != null && this.hints.contains(hint)) {
List ids = typedQuery.getResultList().stream().map(item -> item.getKeys()[0]).collect(Collectors.toList()); List ids = typedQuery.getResultList().stream().map(item -> item.getKeys()[0]).collect(Collectors.toList());
typedQuery = queryWithHint(ids); if (ids != null && !ids.isEmpty()) typedQuery = queryWithHint(ids);
} }
return typedQuery.getResultList(); return typedQuery.getResultList();
} }
public T getSingle() {
Predicate[] array = new Predicate[this.predicates.size()];
this.predicates.toArray(array);
this.query.where(array);
TypedQuery<T> typedQuery = this.manager.createQuery(this.query);
return typedQuery.getSingleResult();
}
private TypedQuery<T> queryWithHint(List ids) { private TypedQuery<T> queryWithHint(List ids) {
CriteriaBuilder criteriaBuilder = this.manager.getCriteriaBuilder(); CriteriaBuilder criteriaBuilder = this.manager.getCriteriaBuilder();
CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(tClass); CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(tClass);

View File

@ -1,6 +1,6 @@
export const HostConfiguration = { export const HostConfiguration = {
Server: 'http://dl043.madgik.di.uoa.gr:8080/', Server: 'http://localhost:8080/',
App: 'http://dl043.madgik.di.uoa.gr:8080/' App: 'http://localhost:8080/'
//CASHost: 'https://login-devel.uoa.gr/login', //CASHost: 'https://login-devel.uoa.gr/login',
//Service: 'http://elkefinman/login' //Service: 'http://elkefinman/login'
} }

View File

@ -13,7 +13,7 @@
</auto-complete> --> </auto-complete> -->
<mat-form-field> <mat-form-field>
<mat-select placeholder=" {{'DATASET-WIZARD.FIRST-STEP.PROFILE'| translate}}" formControlName="profile"> <mat-select placeholder=" {{'DATASET-WIZARD.FIRST-STEP.PROFILE'| translate}}" formControlName="profile">
<mat-option *ngFor="let profile of availableProfiles" [value]=" formGroup.get('profile').value"> <mat-option *ngFor="let profile of availableProfiles" [value]="profile">
{{profile.label}} {{profile.label}}
</mat-option> </mat-option>
</mat-select> </mat-select>

View File

@ -7,7 +7,6 @@ import { Serializable } from "../Serializable";
export class DatasetProfileModel implements Serializable<DatasetProfileModel> { export class DatasetProfileModel implements Serializable<DatasetProfileModel> {
public id: String; public id: String;
public label: String; public label: String;
public errorModel: BaseErrorModel = new BaseErrorModel();
fromJSONObject(item: any): DatasetProfileModel { fromJSONObject(item: any): DatasetProfileModel {
this.id = item.id; this.id = item.id;
@ -19,7 +18,7 @@ export class DatasetProfileModel implements Serializable<DatasetProfileModel> {
if (context == null) { context = this.createValidationContext(); } if (context == null) { context = this.createValidationContext(); }
const formGroup = new FormBuilder().group({ const formGroup = new FormBuilder().group({
id: [{ value: this.id, disabled: disabled }, context.getValidation('id').validators] id: [{ value: this.id, disabled: disabled }]
}); });
return formGroup; return formGroup;
@ -27,7 +26,7 @@ export class DatasetProfileModel implements Serializable<DatasetProfileModel> {
createValidationContext(): ValidationContext { createValidationContext(): ValidationContext {
const baseContext: ValidationContext = new ValidationContext(); const baseContext: ValidationContext = new ValidationContext();
baseContext.validation.push({ key: 'id', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'id')] }); //baseContext.validation.push({ key: 'id', validators: [Validators.required, BackendErrorValidator(this.errorModel, 'id')] });
return baseContext; return baseContext;
} }
} }

View File

@ -16,7 +16,7 @@ import { ExternalDatasetModel } from '@app/models/external-dataset/ExternalDatas
export class DatasetWizardModel implements Serializable<DatasetWizardModel> { export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
public id: String; public id: String;
public label: String; public label: String;
public profile: DatasetProfileModel = new DatasetProfileModel; public profile: DatasetProfileModel = new DatasetProfileModel();
public uri: String; public uri: String;
public status: String; public status: String;
public description: String; public description: String;
@ -39,7 +39,7 @@ export class DatasetWizardModel implements Serializable<DatasetWizardModel> {
this.registries = JsonSerializer.fromJSONArray(item.registries, RegisterModel); this.registries = JsonSerializer.fromJSONArray(item.registries, RegisterModel);
this.dataRepositories = JsonSerializer.fromJSONArray(item.dataRepositories, DataRepositoryModel); this.dataRepositories = JsonSerializer.fromJSONArray(item.dataRepositories, DataRepositoryModel);
this.dmp = JsonSerializer.fromJSONObject(item.dmp, DataManagementPlanModel); this.dmp = JsonSerializer.fromJSONObject(item.dmp, DataManagementPlanModel);
this.profile = JsonSerializer.fromJSONObject(item.profile, DatasetWizardModel); this.profile = JsonSerializer.fromJSONObject(item.profile, DatasetProfileModel);
this.datasetProfileDefinition = JsonSerializer.fromJSONObject(item.datasetProfileDefinition, DatasetProfileDefinitionModel); this.datasetProfileDefinition = JsonSerializer.fromJSONObject(item.datasetProfileDefinition, DatasetProfileDefinitionModel);
return this; return this;
} }