diff --git a/dmp-frontend/src/app/datasets/dataset.component.ts b/dmp-frontend/src/app/datasets/dataset.component.ts index dee3b502d..37637f632 100644 --- a/dmp-frontend/src/app/datasets/dataset.component.ts +++ b/dmp-frontend/src/app/datasets/dataset.component.ts @@ -6,6 +6,10 @@ import { Project } from '../entities/model/project'; import { Dataset } from '../entities/model/dataset'; import { Dmp } from '../entities/model/dmp'; import { DataTable, DataTableTranslations, DataTableResource } from 'angular-4-data-table-bootstrap-4'; +import { DropdownField } from '../../app/form/fields/dropdown/field-dropdown'; +import { Param } from '../entities/model/param'; + +declare var $ :any; @Component({ selector: 'datasets-table', @@ -31,10 +35,13 @@ export class DatasetsComponent implements OnInit{ returnUrl: string; @Input() datasets: Dataset[]; + @Input() datasetProfileDropDown: DropdownField; datasetResource :DataTableResource; @Input() datasetCount = 0; - - @ViewChild(DataTable) projectsTable; + @Input() dmpIdforDatasets: string; + dataset:any; + + //@ViewChild(DataTable) projectsTable; dataSetValue:boolean @Input() @@ -54,13 +61,26 @@ export class DatasetsComponent implements OnInit{ private route: ActivatedRoute, private router: Router, private ngZone: NgZone){ + this.dataset = { + id:null, + label:'', + reference:'', + uri:'', + properties:'', + profile:{"id": ''}, + dmp:{"id": ''} + } + + this.datasetProfileDropDown = new DropdownField(); + this.datasetProfileDropDown.options = []; } - ngOnInit() { + ngOnInit() {debugger; //this.projects = this.serverService.getDummyProjects(); this.datasets = []; - this.serverService.getAllDataSet().subscribe( + console.log(this.dmpIdforDatasets); + this.serverService.getDatasetForDmp({"id":this.dmpIdforDatasets}).subscribe( response => { console.log("response"); @@ -77,12 +97,27 @@ export class DatasetsComponent implements OnInit{ this.datasetResource.query(params).then(datasets => this.datasets = datasets); }); } - ); + ); + + this.serverService.getAllDatsetsProfile().subscribe( + response => { + console.log("response"); + console.log(response); + //let params = new Param(); + response.forEach((datasetprofile) => { + let params = new Param(); + params.key = datasetprofile.id; + params.value = datasetprofile.label; + this.datasetProfileDropDown.options.push(params); + }); + + } + ) } reloadDatasets(params) { this.datasetResource = new DataTableResource(this.datasets); - this.datasetResource.query(params).then(projects => this.datasets = projects); + this.datasetResource.query(params).then(datasets => this.datasets = datasets); } afterLoad(){ @@ -94,6 +129,37 @@ rowClick(rowEvent){ this.ngZone.run(() => this.router.navigateByUrl('dynamic-form', rowEvent.row.item.id)); } +SaveNewDataset(){debugger; + this.dataset.dmp={"id": this.dmpIdforDatasets} + this.dataset.profile = {"id": this.dataset.profile} + this.serverService.createDatasetForDmp(this.dataset).subscribe( + response=>{ + console.log(response); + + } + ) + $("#newDatasetModal").modal("hide"); + this.serverService.getDatasetForDmp({"id":this.dmpIdforDatasets}).subscribe( + response => { + + console.log("response"); + console.log(response); + this.datasets = []; + response.forEach(resp => { + + let dt = new Dataset(); + dt.id = resp.id; + dt.name = resp.label; + dt.uriDataset = resp.uri; + this.datasets.push(dt); + var params = {limit:8,offset:0, sortAsc:false} + this.afterLoad(); + this.datasetResource.query(params).then(datasets => this.datasets = datasets); + }); + } + ); +} + // special params: translations = { indexColumn: 'Index column', @@ -103,6 +169,26 @@ rowClick(rowEvent){ paginationRange: 'Result range' }; +getDatasetForDmpMethod(dmpid){ + this.serverService.getDatasetForDmp({"id":dmpid}).subscribe( + response => { + console.log("response"); + console.log(response); + this.datasets = []; + response.forEach(resp => { + + let dt = new Dataset(); + dt.id = resp.id; + dt.name = resp.label; + dt.uriDataset = resp.uri; + this.datasets.push(dt); + var params = {limit:8,offset:0, sortAsc:false} + this.afterLoad(); + this.datasetResource.query(params).then(datasets => this.datasets = datasets); + }); + } +); +} } diff --git a/dmp-frontend/src/app/datasets/dataset.html b/dmp-frontend/src/app/datasets/dataset.html index e67e40fe9..3f01d7242 100644 --- a/dmp-frontend/src/app/datasets/dataset.html +++ b/dmp-frontend/src/app/datasets/dataset.html @@ -15,10 +15,65 @@ -->
- +
+ + + \ No newline at end of file diff --git a/dmp-frontend/src/app/dmps/dmp.component.ts b/dmp-frontend/src/app/dmps/dmp.component.ts index 3e455eb38..ad6ce707d 100644 --- a/dmp-frontend/src/app/dmps/dmp.component.ts +++ b/dmp-frontend/src/app/dmps/dmp.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core'; +import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core'; import {GoogleSignInSuccess} from 'angular-google-signin'; import { Router, ActivatedRoute } from '@angular/router'; import { ServerService } from '../../app/services/server.service'; @@ -12,6 +12,9 @@ import { ModalComponent } from '../modal/modal.component'; import { HttpErrorResponse } from '@angular/common/http'; import { FormGroup, FormControl } from '@angular/forms'; //na dw an xreiazontai import { NgForm } from '@angular/forms'; +import { DatasetsComponent } from '../datasets/dataset.component'; + +declare var $ :any; @Component({ selector: 'dmps', @@ -23,22 +26,26 @@ export class DmpComponent implements OnInit{ @Input() dmps: Dmp[]; dmp:any; dmpResource :DataTableResource; + dmpIdforDatasets: string; @Input() dmpCount = 0; @Input() projectsDropDown:DropdownField; - //@Input() dataSetVisibe:boolean; + @Input() dataSetVisibe:boolean; @Input() projects: Project[]; + @ViewChild(DataTable) dmpsTable; @ViewChild(DataTable) datasetsTable; + @ViewChild(DatasetsComponent) datasetsComponent:DatasetsComponent; @ViewChild('isignOutBtn') isignOutBtn; constructor( private serverService: ServerService, private route: ActivatedRoute, private router: Router){ - this.projectsDropDown = new DropdownField(); + this.projectsDropDown = new DropdownField(); this.projectsDropDown.options = []; this.projects = []; + this.dataSetVisibe = false; this.dmp = { label: '', abbreviation:'', @@ -56,14 +63,15 @@ export class DmpComponent implements OnInit{ this.dmps = []; this.serverService.getDmpOfUser().subscribe( response => { - +console.log(response); response.forEach(resp => { - let pr = new Dmp(); - pr.id = resp.id; - pr.id = resp.label; - pr.name = resp.abbreviation; - pr.dataset = resp.definition; - this.dmps.push(pr); + let dmp = new Dmp(); + dmp.id = resp.id; + dmp.label = resp.label; + dmp.version = resp.version; + dmp.dataset = resp.dataset; + dmp.projectLabel = resp.project.label; + this.dmps.push(dmp); var params = {limit:8,offset:0, sortAsc:false} this.afterLoad(); this.dmpResource.query(params).then(dmps => this.dmps = dmps); @@ -111,14 +119,14 @@ afterLoad(){ this.dmpResource.count().then(count => this.dmpCount = count); } -myFunction() { +filterGrid() { var input, filter, table, tr, td, i; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); - table = document.getElementById("projects-grid"); + table = document.getElementById("dmps-grid"); tr = table.getElementsByTagName("tr"); for (i = 0; i < tr.length; i++) { - td = tr[i].getElementsByTagName("td")[3]; + td = tr[i].getElementsByTagName("td")[4]; if (td) { if (td.innerText.toUpperCase().indexOf(filter) > -1) { tr[i].style.display = ""; @@ -141,9 +149,28 @@ SaveNewDmp(){ .subscribe( response =>{ console.log("response"); - console.log(response); + console.log(response); + this.dmps = []; + this.serverService.getDmpOfUser().subscribe( + response => { + response.forEach(resp => { + let dmp = new Dmp(); + dmp.id = resp.id; + dmp.label = resp.label; + dmp.version = resp.version; + dmp.dataset = resp.dataset; + dmp.projectLabel = resp.project.label; + this.dmps.push(dmp); + var params = {limit:8,offset:0, sortAsc:false} + this.afterLoad(); + this.dmpResource.query(params).then(dmps => this.dmps = dmps); + } + ); + }); } ); + + $("#newDmpModal").modal("hide"); } // special params: @@ -159,5 +186,22 @@ signOut() {     this.serverService.logOut(); } +selectDmp(rowEvent){debugger; + this.dmpIdforDatasets = rowEvent.row.item.id; + if(this.dataSetVisibe == false) + this.dataSetVisibe = true; + else + this.datasetsComponent.getDatasetForDmpMethod(rowEvent.row.item.id); +} + +editRow(item){debugger; + this.dmp.label = item.label; + this.dmp.abbreviation = item.abbreviation; + this.dmp.uri = item.uri; + this.dmp.id = item.id; + this.dmp.project = item.project; + $("#newDmpModal").modal("show"); +} + } diff --git a/dmp-frontend/src/app/dmps/dmps.html b/dmp-frontend/src/app/dmps/dmps.html index 61b39922f..339f3b443 100644 --- a/dmp-frontend/src/app/dmps/dmps.html +++ b/dmp-frontend/src/app/dmps/dmps.html @@ -3,14 +3,16 @@
Filter: - +
- + [translations]="translations" [indexColumnHeader]="'#'" [selectOnRowClick]="true" (rowClick)="selectDmp($event)"> + + + @@ -42,7 +44,7 @@
- + - + Sign out \ No newline at end of file diff --git a/dmp-frontend/src/app/entities/model/dmp.ts b/dmp-frontend/src/app/entities/model/dmp.ts index 70af07deb..861f3ea91 100644 --- a/dmp-frontend/src/app/entities/model/dmp.ts +++ b/dmp-frontend/src/app/entities/model/dmp.ts @@ -3,5 +3,11 @@ import { Injectable } from '@angular/core'; export class Dmp { id:string; dataset: string; - name: string; + label: string; + organisations:string; + previous:string; + profile:string; + profileData:string; + projectLabel:string; + version: number; } \ No newline at end of file diff --git a/dmp-frontend/src/app/services/rest-base.ts b/dmp-frontend/src/app/services/rest-base.ts index 467701587..33da83bc4 100644 --- a/dmp-frontend/src/app/services/rest-base.ts +++ b/dmp-frontend/src/app/services/rest-base.ts @@ -15,17 +15,17 @@ export class RestBase { this.xml2jsonOBJ = new X2JS(); } - /* + protocol: string = "http"; hostname: string ="dl010.madgik.di.uoa.gr" ;//"localhost";//"dl010.madgik.di.uoa.gr";// port: number = 8080;//8080;// webappname: string = "dmp-backend";//"dmp-backend-new";// - */ + - protocol: string = "http"; + /* protocol: string = "http"; hostname: string = "dionysus.di.uoa.gr" ; port: number = 7070; - webappname: string = "dmp-backend"; + webappname: string = "dmp-backend";*/ proxyPath : string = this.protocol+"://"+this.hostname+":"+this.port+"/"+this.webappname+"/proxy/"; diff --git a/dmp-frontend/src/app/services/server.service.ts b/dmp-frontend/src/app/services/server.service.ts index faa9210fa..a3e0969ef 100644 --- a/dmp-frontend/src/app/services/server.service.ts +++ b/dmp-frontend/src/app/services/server.service.ts @@ -106,10 +106,21 @@ export class ServerService { public createDmpForCurrentUser(data:any){ - debugger; - return this.restBase.post("dmp/createofuser", data); + return this.restBase.post("dmp/createofuser", data); } + public getDatasetForDmp(data:any){ + return this.restBase.post("/dmp/getdatasets", data); +} + +public createDatasetForDmp(data:any){ + return this.restBase.post("dataset/create", data); +} + +public getAllDatsetsProfile(){ + return this.restBase.get("datasetprofile/getAll"); +} + logOut() { diff --git a/dmp-frontend/src/app/tabs/tabs.component.ts b/dmp-frontend/src/app/tabs/tabs.component.ts index 810811461..e48e6bd6c 100644 --- a/dmp-frontend/src/app/tabs/tabs.component.ts +++ b/dmp-frontend/src/app/tabs/tabs.component.ts @@ -4,12 +4,12 @@ import { Component } from '@angular/core'; selector: 'my-app', template: `