diff --git a/dmp-admin/src/app/services/rest-base.ts b/dmp-admin/src/app/services/rest-base.ts index dc9ff97e0..1ca5fb519 100644 --- a/dmp-admin/src/app/services/rest-base.ts +++ b/dmp-admin/src/app/services/rest-base.ts @@ -16,7 +16,7 @@ export class RestBase { } protocol: string = "http"; - hostname: string = "localhost";//"dl010.madgik.di.uoa.gr";// + hostname: string = "dionysus.di.uoa.gr";//"dl010.madgik.di.uoa.gr";// port: number = 7070;//8080;// webappname: string = "dmp-backend";//"dmp-backend-new";// restpath: string = "rest"; diff --git a/dmp-db-scema/DataManagementPlanDB.sql b/dmp-db-scema/DataManagementPlanDB.sql index 67cd5b12a..8d8e41ffc 100644 --- a/dmp-db-scema/DataManagementPlanDB.sql +++ b/dmp-db-scema/DataManagementPlanDB.sql @@ -450,9 +450,6 @@ ALTER TABLE ONLY "DatasetService" ADD CONSTRAINT "DatasetServiceServiceReference" FOREIGN KEY ("Service") REFERENCES "Service"("ID"); -DROP table if exists "UserDMP"; -DROP table if exists "UserInfo"; -DROP table if exists "UserAuth"; CREATE TABLE "UserInfo" ( "id" uuid DEFAULT uuid_generate_v4() UNIQUE NOT NULL, @@ -488,13 +485,13 @@ COMMENT ON COLUMN "UserAuth"."password" IS 'This field stores a password hash'; create table "UserDMP" ( "id" uuid DEFAULT uuid_generate_v4() NOT NULL, - "user" uuid NOT NULL, + "usr" uuid NOT NULL, "dmp" uuid NOT NUll, "role" integer ); -ALTER TABLE "UserDMP" ADD CONSTRAINT fkey_userdmp_user FOREIGN KEY ("user") REFERENCES "UserInfo"("id"); -ALTER TABLE "UserDMP" ADD CONSTRAINT fkey_userdmp_dmp FOREIGN KEY ("dmp") REFERENCES "DMP"("ID"); +ALTER TABLE "UserDMP" ADD CONSTRAINT fkey_userdmp_user FOREIGN KEY (usr) REFERENCES "UserInfo"("id"); +ALTER TABLE "UserDMP" ADD CONSTRAINT fkey_userdmp_dmp FOREIGN KEY (dmp) REFERENCES "DMP"("ID"); ALTER TABLE "UserInfo" OWNER TO dmptool; diff --git a/dmp-frontend/package-lock.json b/dmp-frontend/package-lock.json index 69989fb2b..d4ec05e5d 100644 --- a/dmp-frontend/package-lock.json +++ b/dmp-frontend/package-lock.json @@ -175,6 +175,16 @@ "tslib": "1.7.1" } }, + "@angular/platform-server": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-4.4.5.tgz", + "integrity": "sha1-dvI7LDhO1zldwXk8+Fl4iDuiy1A=", + "requires": { + "parse5": "3.0.2", + "tslib": "1.7.1", + "xhr2": "0.1.4" + } + }, "@angular/router": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.3.6.tgz", @@ -240,8 +250,7 @@ "@types/node": { "version": "6.0.88", "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", - "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==", - "dev": true + "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==" }, "@types/q": { "version": "0.0.32", @@ -365,6 +374,57 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, + "angular-2-data-table": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/angular-2-data-table/-/angular-2-data-table-0.1.2.tgz", + "integrity": "sha1-eiz/jPxKpxSpfTMwmLkRaqQourw=" + }, + "angular-4-data-table-bootstrap-4": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/angular-4-data-table-bootstrap-4/-/angular-4-data-table-bootstrap-4-0.2.0.tgz", + "integrity": "sha512-gw+3z96SSXZZFSjzAXEx69JecBZ9O5K2uMl/asCc7HFrLeS9Q2T0+HGrb4syODEBhJtey0JpzX4GGBotXuHfjg==", + "requires": { + "@angular/common": "4.3.6", + "@angular/core": "4.3.6", + "@angular/forms": "4.3.6", + "@angular/platform-browser": "4.3.6", + "@angular/platform-browser-dynamic": "4.3.6", + "@angular/platform-server": "4.4.5", + "@types/node": "8.0.44", + "rxjs": "5.4.3", + "ts-node": "3.3.0", + "zone.js": "0.8.17" + }, + "dependencies": { + "@types/node": { + "version": "8.0.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.44.tgz", + "integrity": "sha512-56TeARKE2uMi7xWhpRRws/QdnpSVx9i7E8esGiPYoj90jnonGfmV1vwRLvHWYjPxF5u5l7p5fgdKwdse+VeAQQ==" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "ts-node": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.3.0.tgz", + "integrity": "sha1-wTxqMCTjC+EYDdUwOPwgkonUv2k=", + "requires": { + "arrify": "1.0.1", + "chalk": "2.1.0", + "diff": "3.3.0", + "make-error": "1.3.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map-support": "0.4.16", + "tsconfig": "6.0.0", + "v8flags": "3.0.0", + "yn": "2.0.0" + } + } + } + }, "angular-google-signin": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/angular-google-signin/-/angular-google-signin-0.1.5.tgz", @@ -690,8 +750,7 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asap": { "version": "2.0.6", @@ -1403,7 +1462,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", - "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", @@ -1414,7 +1472,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, "requires": { "color-convert": "1.9.0" } @@ -1422,14 +1479,12 @@ "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "supports-color": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", - "dev": true, "requires": { "has-flag": "2.0.0" } @@ -1623,7 +1678,6 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -1631,8 +1685,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { "version": "0.3.0", @@ -2268,8 +2321,7 @@ "diff": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz", - "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==", - "dev": true + "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==" }, "diffie-hellman": { "version": "5.0.2", @@ -2717,8 +2769,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escope": { "version": "3.6.0", @@ -5025,8 +5076,7 @@ "make-error": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", - "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", - "dev": true + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=" }, "map-obj": { "version": "1.0.1", @@ -5248,8 +5298,7 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mixin-object": { "version": "2.0.1", @@ -5273,7 +5322,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" } @@ -5881,6 +5929,14 @@ "error-ex": "1.3.1" } }, + "parse5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz", + "integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=", + "requires": { + "@types/node": "6.0.88" + } + }, "parsejson": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", @@ -7777,8 +7833,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-loader": { "version": "0.2.1", @@ -7824,7 +7879,6 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz", "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==", - "dev": true, "requires": { "source-map": "0.5.7" } @@ -8166,8 +8220,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "style-loader": { "version": "0.13.2", @@ -8491,7 +8544,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", - "dev": true, "requires": { "strip-bom": "3.0.0", "strip-json-comments": "2.0.1" @@ -8500,8 +8552,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" } } }, @@ -8776,8 +8827,7 @@ "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, "useragent": { "version": "2.2.1", @@ -8842,7 +8892,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.0.tgz", "integrity": "sha512-AGl+C+4qpeSu2g3JxCD/mGFFOs/vVZ3XREkD3ibQXEqr4Y4zgIrPWW124/IKJFHOIVFIoH8miWrLf0o84HYjwA==", - "dev": true, "requires": { "user-home": "1.1.1" } @@ -9451,6 +9500,11 @@ "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", "dev": true }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, "xml-char-classes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", @@ -9584,8 +9638,7 @@ "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", - "dev": true + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" }, "zone.js": { "version": "0.8.17", diff --git a/dmp-frontend/package.json b/dmp-frontend/package.json index 68d9e8075..46f4eb9c6 100644 --- a/dmp-frontend/package.json +++ b/dmp-frontend/package.json @@ -21,6 +21,8 @@ "@angular/platform-browser": "^4.3.6", "@angular/platform-browser-dynamic": "^4.3.6", "@angular/router": "^4.3.6", + "angular-2-data-table": "^0.1.2", + "angular-4-data-table-bootstrap-4": "^0.2.0", "angular-google-signin": "^0.1.5", "bootstrap": "^3.3.7", "core-js": "^2.4.1", diff --git a/dmp-frontend/src/app/app-routing.module.ts b/dmp-frontend/src/app/app-routing.module.ts index 6bb89a47e..3ff7e5790 100644 --- a/dmp-frontend/src/app/app-routing.module.ts +++ b/dmp-frontend/src/app/app-routing.module.ts @@ -5,6 +5,7 @@ import { DynamicFormComponent } from './form/dynamic-form.component'; import { LoginComponent } from './login/login-page'; import { AuthGuard } from './guards/auth.guard'; import { ProjectsComponent } from './projects/projects.component'; +import { DatasetsComponent } from './datasets/dataset.component'; const appRoutes: Routes = [ { path: 'dynamic-form', component: DynamicFormComponent, canActivate: [AuthGuard] }, diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts index b1d9312ff..58cb2a3c7 100644 --- a/dmp-frontend/src/app/app.module.ts +++ b/dmp-frontend/src/app/app.module.ts @@ -4,8 +4,10 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; import { HttpModule } from '@angular/http'; import { RouterModule, Routes, Router } from '@angular/router'; +import {DataTableModule } from 'angular-4-data-table-bootstrap-4'; import { AppComponent } from './app.component'; +import { RestBase } from './services/rest-base'; import { DynamicFormComponent } from './form/dynamic-form.component'; import { DynamicFormFieldComponent } from './form/fields/dynamic-form-field.component'; import { ServerService } from './services/server.service'; @@ -21,6 +23,8 @@ import { PageNotFoundComponent } from './not-found.component'; import { TocComponent } from './form/tableOfContents/toc.component'; import { ProjectsModule } from './projects/project.module'; import { PaginationService } from './services/pagination.service'; +import { EestoreService } from './services/eestore.service'; +import { DatasetsModule } from './datasets/dataset.module'; @NgModule({ declarations: [ @@ -40,10 +44,12 @@ import { PaginationService } from './services/pagination.service'; HttpModule, HttpClientModule, ProjectsModule, - AppRoutingModule + DatasetsModule, + AppRoutingModule, + DataTableModule ], - providers: [ServerService, dataModelBuilder, AuthGuard, PaginationService, TokenService, LocalStorageService], + providers: [ServerService, dataModelBuilder, AuthGuard, PaginationService, TokenService, LocalStorageService, RestBase, EestoreService], bootstrap: [AppComponent] }) export class AppModule { diff --git a/dmp-frontend/src/app/datasets/dataset-routing.module.ts b/dmp-frontend/src/app/datasets/dataset-routing.module.ts new file mode 100644 index 000000000..36b74623e --- /dev/null +++ b/dmp-frontend/src/app/datasets/dataset-routing.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { DatasetsComponent } from './dataset.component'; +//import { ProjectDetailComponent } from './project.detail'; +import { DynamicFormComponent } from '../form/dynamic-form.component'; +import { AuthGuard } from '../guards/auth.guard'; + +const datasetsRoutes: Routes = [ + { path: 'dataset', component: DatasetsComponent }, + { path: 'dynamic-form/:id', component: DynamicFormComponent, canActivate: [AuthGuard] } +]; + +@NgModule({ + imports: [ + RouterModule.forChild(datasetsRoutes) + ], + exports: [ + RouterModule + ] +}) +export class DatasetRoutingModule { } \ No newline at end of file diff --git a/dmp-frontend/src/app/datasets/dataset.component.ts b/dmp-frontend/src/app/datasets/dataset.component.ts new file mode 100644 index 000000000..e5334bf43 --- /dev/null +++ b/dmp-frontend/src/app/datasets/dataset.component.ts @@ -0,0 +1,94 @@ +import { Component, OnInit, Input, ViewChild, NgZone } from '@angular/core'; +import {GoogleSignInSuccess} from 'angular-google-signin'; +import { Router, ActivatedRoute } from '@angular/router'; +import { ServerService } from '../../app/services/server.service'; +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'; + +@Component({ + selector: 'projects', + templateUrl: 'dataset.html', +// template: ` +//

Projects

+ +// + +// +// `, + providers: [ServerService] +}) + +export class DatasetsComponent implements OnInit{ + + returnUrl: string; + @Input() datasets: Dataset[]; + datasetResource :DataTableResource; + @Input() datasetCount = 0; + + @ViewChild(DataTable) projectsTable; + + constructor( + private serverService: ServerService, + private route: ActivatedRoute, + private router: Router, + private ngZone: NgZone){ + + } + + ngOnInit() { + //this.projects = this.serverService.getDummyProjects(); + this.datasets = []; + this.serverService.getAllDatasets().subscribe( + response => { + + console.log("response"); + console.log(response); + 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); + }); + } + ); + } + + reloadDatasets(params) { + this.datasetResource.query(params).then(projects => this.datasets = projects); +} + +afterLoad(){ + this.datasetResource = new DataTableResource(this.datasets); + this.datasetResource.count().then(count => this.datasetCount = count); +} + +rowClick(rowEvent){ + this.ngZone.run(() => this.router.navigateByUrl('dynamic-form', rowEvent.row.item.id)); +} + + // special params: + translations = { + indexColumn: 'Index column', + expandColumn: 'Expand column', + selectColumn: 'Select column', + paginationLimit: 'Max results', + paginationRange: 'Result range' +}; + + + +} diff --git a/dmp-frontend/src/app/datasets/dataset.html b/dmp-frontend/src/app/datasets/dataset.html new file mode 100644 index 000000000..e67e40fe9 --- /dev/null +++ b/dmp-frontend/src/app/datasets/dataset.html @@ -0,0 +1,24 @@ +
+ + + + + + + + + + + +
+ + +
+ +
\ No newline at end of file diff --git a/dmp-frontend/src/app/datasets/dataset.module.ts b/dmp-frontend/src/app/datasets/dataset.module.ts new file mode 100644 index 000000000..7439526e3 --- /dev/null +++ b/dmp-frontend/src/app/datasets/dataset.module.ts @@ -0,0 +1,24 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import {DataTableModule } from 'angular-4-data-table-bootstrap-4'; + +import { DatasetsComponent } from './dataset.component'; + +import { DatasetRoutingModule } from './dataset-routing.module'; +//import { ProjectDetailComponent } from './project.detail'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + DatasetRoutingModule, + DataTableModule + ], + declarations: [ + DatasetsComponent + //ProjectDetailComponent + ], + providers: [ ] +}) +export class DatasetsModule {} \ No newline at end of file diff --git a/dmp-frontend/src/app/entities/model/dataset.ts b/dmp-frontend/src/app/entities/model/dataset.ts new file mode 100644 index 000000000..b3cd57fbf --- /dev/null +++ b/dmp-frontend/src/app/entities/model/dataset.ts @@ -0,0 +1,7 @@ +import { Injectable } from '@angular/core'; + +export class Dataset { + id:string; + name: string; + uriDataset: string; +} \ 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 new file mode 100644 index 000000000..70af07deb --- /dev/null +++ b/dmp-frontend/src/app/entities/model/dmp.ts @@ -0,0 +1,7 @@ +import { Injectable } from '@angular/core'; + +export class Dmp { + id:string; + dataset: string; + name: string; +} \ No newline at end of file diff --git a/dmp-frontend/src/app/entities/model/project.ts b/dmp-frontend/src/app/entities/model/project.ts index 5253552fa..c65a87a85 100644 --- a/dmp-frontend/src/app/entities/model/project.ts +++ b/dmp-frontend/src/app/entities/model/project.ts @@ -1,7 +1,13 @@ import { Injectable } from '@angular/core'; +import { Dmp } from './dmp' +import { Dataset } from './dataset' export class Project { name: string; id: string; - + abbreviation: string; + definition: string; + uri: string; + dmp: Dmp; + dataset: Dataset; } \ No newline at end of file diff --git a/dmp-frontend/src/app/form/dynamic-form.component.ts b/dmp-frontend/src/app/form/dynamic-form.component.ts index ab1a76db7..a3c18ff6b 100644 --- a/dmp-frontend/src/app/form/dynamic-form.component.ts +++ b/dmp-frontend/src/app/form/dynamic-form.component.ts @@ -169,7 +169,7 @@ export class DynamicFormComponent implements OnInit { //this.dataModel.groups = this.dataModel.groups.slice(this.pager.startIndex, this.pager.endIndex + 1); } -signOut2() {debugger; +signOut2() {     var auth2 = gapi.auth2.getAuthInstance();     auth2.signOut().then(function () {       console.log('User signed out.'); diff --git a/dmp-frontend/src/app/form/fields/field-base.ts b/dmp-frontend/src/app/form/fields/field-base.ts index 1eb4466cd..0863ac18c 100644 --- a/dmp-frontend/src/app/form/fields/field-base.ts +++ b/dmp-frontend/src/app/form/fields/field-base.ts @@ -14,6 +14,7 @@ export class FieldBase{ description:string; attributes: Attribute; regex:string; + url: any; constructor(options: { value?: T, @@ -27,7 +28,8 @@ export class FieldBase{ group?: string description?: string, attributes?: Attribute, - regex?:string + regex?:string, + url?: any } = {}) { this.value = options.value; this.key = options.key || ''; @@ -41,5 +43,6 @@ export class FieldBase{ this.description = options.description || ''; this.attributes = options.attributes || new Attribute(); this.regex = options.regex || ''; + this.url = options.url || {"url":null, "fieldpath":null, "data":null}; } } \ No newline at end of file diff --git a/dmp-frontend/src/app/form/tableOfContents/toc.component.html b/dmp-frontend/src/app/form/tableOfContents/toc.component.html index edd5f6801..1377a1088 100644 --- a/dmp-frontend/src/app/form/tableOfContents/toc.component.html +++ b/dmp-frontend/src/app/form/tableOfContents/toc.component.html @@ -1,9 +1,8 @@