diff --git a/dmp-frontend/src/app/datasets_new/dataset-listing.component.html b/dmp-frontend/src/app/datasets_new/dataset-listing.component.html index a87ed6ea5..495384bed 100644 --- a/dmp-frontend/src/app/datasets_new/dataset-listing.component.html +++ b/dmp-frontend/src/app/datasets_new/dataset-listing.component.html @@ -1,7 +1,7 @@

{{'DATASET-LISTING.TITLE' | translate}}

- + @@ -37,9 +37,15 @@ {{row.description}} + + + {{'DATASET-LISTING.COLUMNS.CREATED' | translate}} + {{row.created}} + + - {{'PROJECT-LISTING.COLUMNS.ACTIONS' | translate}} + {{'DATASET-LISTING.COLUMNS.ACTIONS' | translate}} diff --git a/dmp-frontend/src/app/datasets_new/dataset-listing.component.ts b/dmp-frontend/src/app/datasets_new/dataset-listing.component.ts index 960d081d1..6d9e0bfd0 100644 --- a/dmp-frontend/src/app/datasets_new/dataset-listing.component.ts +++ b/dmp-frontend/src/app/datasets_new/dataset-listing.component.ts @@ -4,8 +4,8 @@ import { Router } from "@angular/router"; import { TranslateService } from "@ngx-translate/core"; import { DataSource } from "@angular/cdk/table"; -import { ProjectCriteriaComponent } from "../shared/components/criteria/projects/projects-criteria.component"; -import { ProjectCriteria } from "../models/criteria/project/ProjectCriteria"; +import { DatasetCriteriaComponent } from "../shared/components/criteria/datasets/datasets-criteria.component"; +import { DatasetCriteria } from "../models/criteria/dataset/DatasetCriteria"; import { Observable } from "rxjs/Observable"; import { DataTableRequest } from "../models/data-table/DataTableRequest"; import { SnackBarNotificationComponent } from "../shared/components/notificaiton/snack-bar-notification.component"; @@ -24,10 +24,10 @@ export class DatasetListingComponent implements OnInit, AfterViewInit { @ViewChild(MatPaginator) _paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; - @ViewChild(ProjectCriteriaComponent) criteria: ProjectCriteriaComponent; + @ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent; dataSource: DatasetDataSource | null; - displayedColumns: String[] = ['label', 'reference', 'uri', 'status', 'description', 'actions']; + displayedColumns: String[] = ['label', 'reference', 'uri', 'status', 'description', 'created', 'actions']; constructor( private datasetService: DatasetService, @@ -51,15 +51,15 @@ export class DatasetListingComponent implements OnInit, AfterViewInit { } refresh() { - this.dataSource = new DatasetDataSource(this.datasetService, this._paginator, this.sort, this.languageService, this.snackBar, this.criteria, ); + this.dataSource = new DatasetDataSource(this.datasetService, this._paginator, this.sort, this.languageService, this.snackBar, this.criteria); } rowClick(rowId: String) { this.router.navigate(['/project/' + rowId]); } - getDefaultCriteria(): ProjectCriteria { - const defaultCriteria = new ProjectCriteria(); + getDefaultCriteria(): DatasetCriteria { + const defaultCriteria = new DatasetCriteria(); return defaultCriteria; } @@ -76,7 +76,7 @@ export class DatasetDataSource extends DataSource { private _sort: MatSort, private _languageService: TranslateService, private _snackBar: MatSnackBar, - private _criteria: ProjectCriteriaComponent + private _criteria: DatasetCriteriaComponent ) { super(); @@ -113,7 +113,7 @@ export class DatasetDataSource extends DataSource { setTimeout(() => { this.isLoadingResults = false; }); - return result.data; + return result.payload; }) .map(result => { if (!result) { return []; } diff --git a/dmp-frontend/src/app/homepage/homepage.component.ts b/dmp-frontend/src/app/homepage/homepage.component.ts index a7c8c6a8d..35f06d7a8 100644 --- a/dmp-frontend/src/app/homepage/homepage.component.ts +++ b/dmp-frontend/src/app/homepage/homepage.component.ts @@ -33,7 +33,8 @@ export class HomepageComponent implements OnInit{ } ); - this.dashBoardService.getStatistics().subscribe(data =>{ + this.dashBoardService.getStatistics().subscribe(results =>{ + let data = results['payload']; this.dashboardStatisticsData = new JsonSerializer().fromJSONObject(data,DashboardStatisticsModel); }) diff --git a/dmp-frontend/src/app/models/criteria/dataset/DatasetCriteria.ts b/dmp-frontend/src/app/models/criteria/dataset/DatasetCriteria.ts new file mode 100644 index 000000000..0e219a6c7 --- /dev/null +++ b/dmp-frontend/src/app/models/criteria/dataset/DatasetCriteria.ts @@ -0,0 +1,6 @@ +import { BaseCriteria } from "../BaseCriteria"; + +export class DatasetCriteria extends BaseCriteria { + public Name: String; + public Status: Number; +} diff --git a/dmp-frontend/src/app/models/criteria/dataset/DatasetCriteriaErrorModel.ts b/dmp-frontend/src/app/models/criteria/dataset/DatasetCriteriaErrorModel.ts new file mode 100644 index 000000000..bfd401872 --- /dev/null +++ b/dmp-frontend/src/app/models/criteria/dataset/DatasetCriteriaErrorModel.ts @@ -0,0 +1,6 @@ +import { BaseCriteriaErrorModel } from "../BaseCriteriaErrorModel"; + +export class DatasetCriteriaErrorModel extends BaseCriteriaErrorModel{ + public Name: String; + public Status: Number; +} diff --git a/dmp-frontend/src/app/models/datasets/DatasetListingModel.ts b/dmp-frontend/src/app/models/datasets/DatasetListingModel.ts index c5d218824..633ab7fcc 100644 --- a/dmp-frontend/src/app/models/datasets/DatasetListingModel.ts +++ b/dmp-frontend/src/app/models/datasets/DatasetListingModel.ts @@ -2,11 +2,12 @@ import { Serializable } from "../Serializable"; export class DatasetListingModel implements Serializable { public id: String; - private label:String; - private reference: String; - private uri: String; - private description: String; - private status: Number; + public label:String; + public reference: String; + public uri: String; + public description: String; + public status: Number; + public created: Date; fromJSONObject(item: any): DatasetListingModel { this.id = item.id; @@ -15,6 +16,7 @@ export class DatasetListingModel implements Serializable { this.uri = item.uri; this.status = item.status; this.description = item.description; + this.created = item.created; return this; } diff --git a/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.css b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.css new file mode 100644 index 000000000..e69de29bb diff --git a/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.html b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.html new file mode 100644 index 000000000..dafcd3bba --- /dev/null +++ b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.html @@ -0,0 +1,37 @@ +
+ +
+ +
+ + + {{baseErrorModel['Criteria.Name']}} + +
+
+ + + {{baseErrorModel['Criteria.Status']}} + +
+
+
+
+ + \ No newline at end of file diff --git a/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts new file mode 100644 index 000000000..a47ecc2fb --- /dev/null +++ b/dmp-frontend/src/app/shared/components/criteria/datasets/datasets-criteria.component.ts @@ -0,0 +1,69 @@ +import { TranslateService } from '@ngx-translate/core'; +import { Component, OnInit } from '@angular/core'; +import { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { BaseCriteriaComponent } from '../base/base-criteria.component'; +import { ValidationContext, Validation } from '../../../../utilities/validators/ValidationContext'; +import { BackendErrorValidator } from '../../../../utilities/validators/BackendErrorValidator'; +import { DatasetCriteriaErrorModel } from '../../../../models/criteria/dataset/DatasetCriteriaErrorModel'; +import { DatasetCriteria } from '../../../../models/criteria/dataset/DatasetCriteria'; + +@Component({ + selector: 'app-datasets-criteria-component', + templateUrl: './datasets-criteria.component.html', + styleUrls: ['./datasets-criteria.component.css'], + providers: [ + ] +}) + +export class DatasetCriteriaComponent extends BaseCriteriaComponent implements OnInit { + + // public form: ProjectType; + // public formStatus: ProjectStatus; + public criteria: DatasetCriteria= new DatasetCriteria(); + + constructor( + public language: TranslateService, + public formBuilder: FormBuilder + ) { + super(new DatasetCriteriaErrorModel()); + } + + ngOnInit() { + super.ngOnInit(); + if (this.criteria == null) { this.criteria = new DatasetCriteria(); } + if (this.formGroup == null) { this.formGroup = this.buildForm(); } + } + + setCriteria(criteria: DatasetCriteria): void { + this.criteria = criteria; + this.formGroup = this.buildForm(); + } + + public fromJSONObject(item: any): DatasetCriteria { + this.criteria = new DatasetCriteria(); + this.criteria.Name = new String(item.name); + this.criteria.Status = new Number(item.status); + return this.criteria; + } + + buildForm(): FormGroup { + const context: ValidationContext = this.createValidationContext(); + + return this.formBuilder.group({ + name: [this.criteria.Name, context.getValidation('name').validators], + status: [this.criteria.Status, context.getValidation('status').validators], + // created: [this.criteria, context.getValidation('created').validators] + }); + } + + createValidationContext(): ValidationContext { + const validationContext: ValidationContext = new ValidationContext(); + const validationArray: Validation[] = new Array(); + + validationArray.push({ key: 'name', validators: [BackendErrorValidator(this.errorModel, 'Criteria.Name')] }); //must add 'Criteria.' because the criteria validator is inside the request validator + validationArray.push({ key: 'status', validators: [BackendErrorValidator(this.errorModel, 'Criteria.Status')] }); + + validationContext.validation = validationArray; + return validationContext; + } +} diff --git a/dmp-frontend/src/app/shared/shared.module.ts b/dmp-frontend/src/app/shared/shared.module.ts index f34ff67e0..11a5961d9 100644 --- a/dmp-frontend/src/app/shared/shared.module.ts +++ b/dmp-frontend/src/app/shared/shared.module.ts @@ -6,6 +6,7 @@ import { SnackBarNotificationComponent } from './components/notificaiton/snack-b import { MaterialModule } from './material/material.module'; import { TranslateModule } from '@ngx-translate/core'; import { ProjectCriteriaComponent } from './components/criteria/projects/projects-criteria.component'; +import { DatasetCriteriaComponent } from './components/criteria/datasets/datasets-criteria.component'; import { FormsModule } from '@angular/forms'; import { DataManagementPlanCriteriaComponent } from './components/criteria/data-management-plan/dmp-criteria.component'; @@ -22,6 +23,7 @@ import { DataManagementPlanCriteriaComponent } from './components/criteria/data- NavigationComponent, SnackBarNotificationComponent, ProjectCriteriaComponent, + DatasetCriteriaComponent, DataManagementPlanCriteriaComponent ], @@ -29,6 +31,7 @@ import { DataManagementPlanCriteriaComponent } from './components/criteria/data- NavigationComponent, SnackBarNotificationComponent, ProjectCriteriaComponent, + DatasetCriteriaComponent, DataManagementPlanCriteriaComponent ], entryComponents: [ diff --git a/dmp-frontend/src/assets/lang/en.json b/dmp-frontend/src/assets/lang/en.json index b17dd6116..a005cd6ec 100644 --- a/dmp-frontend/src/assets/lang/en.json +++ b/dmp-frontend/src/assets/lang/en.json @@ -34,7 +34,9 @@ "REFERNCE": "Reference", "URI": "Uri", "STATUS": "Status", - "DESCRIPTION": "Description" + "DESCRIPTION": "Description", + "CREATED": "Created", + "ACTIONS": "Actions" } }, "PROJECT-EDITOR": { @@ -78,6 +80,12 @@ "LIKE": "Search", "PERIOD-FROM": "Project Start", "PERIOD-TO": "Project End" + }, + "DATA-SETS": { + "LIKE": "Search", + "PERIOD-FROM": "Start", + "PERIOD-TO": "End", + "STATUS": "Status" } } } \ No newline at end of file