From 15e09d7994c79d1df4e16448b899269e990b5396 Mon Sep 17 00:00:00 2001 From: apapachristou Date: Mon, 13 Jul 2020 13:01:03 +0300 Subject: [PATCH] Adds sort by field on all listings --- .../services/utilities/enum-utils.service.ts | 10 +++++ .../ui/dashboard/drafts/drafts.component.css | 5 +++ .../ui/dashboard/drafts/drafts.component.html | 27 +++++++++---- .../ui/dashboard/drafts/drafts.component.ts | 23 ++++++++--- .../recent-edited-activity.component.css | 5 +++ .../recent-edited-activity.component.html | 27 +++++++++---- .../recent-edited-activity.component.ts | 22 +++++++++-- ...ent-edited-dataset-activity.component.html | 27 +++++++++---- ...ecent-edited-dataset-activity.component.ts | 19 +++++++-- .../recent-edited-dmp-activity.component.html | 27 +++++++++---- .../recent-edited-dmp-activity.component.ts | 19 +++++++-- .../listing/dataset-listing.component.html | 39 +++++++++++++------ .../listing/dataset-listing.component.scss | 5 +++ .../listing/dataset-listing.component.ts | 21 +++++++--- .../ui/dmp/listing/dmp-listing.component.html | 29 ++++++++++---- .../ui/dmp/listing/dmp-listing.component.scss | 5 +++ .../ui/dmp/listing/dmp-listing.component.ts | 17 ++++++-- dmp-frontend/src/assets/css/demo.css | 4 +- dmp-frontend/src/assets/i18n/en.json | 7 ++++ dmp-frontend/src/assets/i18n/es.json | 7 ++++ dmp-frontend/src/assets/i18n/gr.json | 7 ++++ 21 files changed, 276 insertions(+), 76 deletions(-) diff --git a/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts b/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts index 0697372e7..c8e960f3b 100644 --- a/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts +++ b/dmp-frontend/src/app/core/services/utilities/enum-utils.service.ts @@ -9,6 +9,7 @@ import { DmpProfileType } from '../../common/enum/dmp-profile-type'; import { DmpStatus } from '../../common/enum/dmp-status'; import { ValidationType } from '../../common/enum/validation-type'; import { DatasetProfileInternalDmpEntitiesType } from '../../common/enum/dataset-profile-internal-dmp-entities-type'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; @Injectable() export class EnumUtils { @@ -101,4 +102,13 @@ export class EnumUtils { case DatasetProfileInternalDmpEntitiesType.Dmps: return this.language.instant('TYPES.DATASET-PROFILE-INTERNAL-DMP-ENTITIES-TYPE.DMPS'); } } + + toRecentActivityOrderString(status: RecentActivityOrder): string { + switch (status) { + case RecentActivityOrder.CREATED: return this.language.instant('TYPES.RECENT-ACTIVITY-ORDER.CREATED'); + case RecentActivityOrder.LABEL: return this.language.instant('TYPES.RECENT-ACTIVITY-ORDER.LABEL'); + case RecentActivityOrder.MODIFIED: return this.language.instant('TYPES.RECENT-ACTIVITY-ORDER.MODIFIED'); + case RecentActivityOrder.STATUS: return this.language.instant('TYPES.RECENT-ACTIVITY-ORDER.STATUS'); + } + } } diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css index 52f28742f..eae4ece83 100644 --- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css +++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css @@ -190,6 +190,11 @@ input[type="text"] { padding-bottom: 0 !important; } +::ng-deep .sort-form .mat-form-field-wrapper { + background-color: white !important; + padding-bottom: 0 !important; +} + ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix { padding: 0.3rem 0rem 0.6rem 0rem !important; } diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html index 7f646e612..bc9dd7c0d 100644 --- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html +++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.html @@ -1,11 +1,24 @@
- - - search - - {{formGroup.get('like').getError('backendError').message}} - - +
+ + {{'DMP-LISTING.SORT-BY' | translate}}: + + + {{enumUtils.toRecentActivityOrderString(order.MODIFIED)}} + {{enumUtils.toRecentActivityOrderString(order.LABEL)}} + + {{enumUtils.toRecentActivityOrderString(order.CREATED)}} + + + + + + search + + {{formGroup.get('like').getError('backendError').message}} + + +
diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts index 325a3fe11..f14dd85af 100644 --- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.ts @@ -21,6 +21,7 @@ import * as FileSaver from 'file-saver'; import { EnumUtils } from '@app/core/services/utilities/enum-utils.service'; import { UiNotificationService } from '@app/core/services/notification/ui-notification-service'; import { DmpInvitationDialogComponent } from '@app/ui/dmp/invitation/dmp-invitation.component'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; @Component({ selector: 'app-drafts', @@ -40,9 +41,12 @@ export class DraftsComponent extends BaseComponent implements OnInit { startIndex: number = 0; pageSize: number = 5; public formGroup = new FormBuilder().group({ - like: new FormControl() + like: new FormControl(), + order: new FormControl() }); + order = RecentActivityOrder; + constructor( private router: Router, private datasetService: DatasetService, @@ -57,8 +61,10 @@ export class DraftsComponent extends BaseComponent implements OnInit { } ngOnInit() { - const fields: Array = []; - fields.push('-modified'); + // const fields: Array = []; + // fields.push('-modified'); + this.formGroup.get('order').setValue(this.order.MODIFIED); + const fields: Array = ["-" + this.formGroup.get('order').value]; const dmpDataTableRequest: DataTableRequest = new DataTableRequest(0, 5, { fields: fields }); dmpDataTableRequest.criteria = new DatasetCriteria(); dmpDataTableRequest.criteria.status = DmpStatus.Draft; @@ -70,6 +76,9 @@ export class DraftsComponent extends BaseComponent implements OnInit { this.formGroup.get('like').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => this.refresh()); + this.formGroup.get('order').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.refresh()); } redirect(id: string, type: RecentActivityType) { @@ -242,8 +251,9 @@ export class DraftsComponent extends BaseComponent implements OnInit { } refresh(): void { - const fields: Array = []; - fields.push('-modified'); + // const fields: Array = []; + // fields.push('-modified'); + const fields: Array = ["-" + this.formGroup.get('order').value]; this.startIndex = 0; const dmpDataTableRequest: DataTableRequest = new DataTableRequest(0, 5, { fields: fields }); dmpDataTableRequest.criteria = new DatasetCriteria(); @@ -258,7 +268,8 @@ export class DraftsComponent extends BaseComponent implements OnInit { public loadMore() { this.startIndex = this.startIndex + this.pageSize; - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); request.criteria = new DatasetCriteria(); request.criteria.status = DmpStatus.Draft; diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css index 5efa85d74..911680e6f 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css @@ -190,6 +190,11 @@ input[type="text"] { padding-bottom: 0 !important; } +::ng-deep .sort-form .mat-form-field-wrapper { + background-color: white !important; + padding-bottom: 0 !important; +} + ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix { padding: 0.3rem 0rem 0.6rem 0rem !important; } diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html index 8094f8733..2245e95ac 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html @@ -1,11 +1,24 @@
- - - search - - {{formGroup.get('like').getError('backendError').message}} - - +
+ + {{'DMP-LISTING.SORT-BY' | translate}}: + + + {{enumUtils.toRecentActivityOrderString(order.MODIFIED)}} + {{enumUtils.toRecentActivityOrderString(order.LABEL)}} + {{enumUtils.toRecentActivityOrderString(order.STATUS)}} + {{enumUtils.toRecentActivityOrderString(order.CREATED)}} + + + + + + search + + {{formGroup.get('like').getError('backendError').message}} + + +
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts index a460e8abd..294db8807 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts @@ -29,6 +29,7 @@ import { UserInfoListingModel } from '@app/core/model/user/user-info-listing'; import { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service'; import { FormControl, FormBuilder } from '@angular/forms'; import { DatasetCopyDialogueComponent } from '@app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; @Component({ selector: 'app-recent-edited-activity', @@ -46,9 +47,12 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn startIndex: number = 0; pageSize: number = 5; public formGroup = new FormBuilder().group({ - like: new FormControl() + like: new FormControl(), + order: new FormControl() }); + order = RecentActivityOrder; + constructor( private router: Router, public enumUtils: EnumUtils, @@ -65,10 +69,13 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn ngOnInit() { if (this.isAuthenticated()) { - const fields: Array = ["-modified"]; + const fields: Array = []; + // const fields: Array = ["-modified"]; const allDataTableRequest: DataTableRequest = new DataTableRequest(0, 5, { fields: fields }); allDataTableRequest.criteria = new RecentActivityCriteria(); allDataTableRequest.criteria.like = ""; + this.formGroup.get('order').setValue(this.order.MODIFIED); + allDataTableRequest.criteria.order = this.formGroup.get('order').value; this.dashboardService .getRecentActivity(allDataTableRequest) .subscribe(response => { @@ -78,6 +85,9 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn this.formGroup.get('like').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => this.refresh()); + this.formGroup.get('order').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.refresh()); } } @@ -382,11 +392,13 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn } refresh(): void { - const fields: Array = ["-modified"]; + const fields: Array = []; + // const fields: Array = ["-modified"]; this.startIndex = 0; const allDataTableRequest: DataTableRequest = new DataTableRequest(0, this.pageSize, { fields: fields }); allDataTableRequest.criteria = new RecentActivityCriteria(); allDataTableRequest.criteria.like = this.formGroup.get("like").value; + allDataTableRequest.criteria.order = this.formGroup.get("order").value; this.dashboardService .getRecentActivity(allDataTableRequest) .subscribe(response => { @@ -397,10 +409,12 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn public loadMore() { this.startIndex = this.startIndex + this.pageSize; - const fields: Array = ["-modified"]; + const fields: Array = []; + // const fields: Array = ["-modified"]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); request.criteria = new RecentActivityCriteria(); request.criteria.like = this.formGroup.get("like").value ? this.formGroup.get("like").value : ""; + request.criteria.order = this.formGroup.get("order").value; this.dashboardService.getRecentActivity(request).pipe(takeUntil(this._destroyed)).subscribe(result => { if (!result) { return []; } diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.html index 9cf42cbf8..0e9e23882 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.html +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.html @@ -1,11 +1,24 @@
- - - search - - {{formGroup.get('like').getError('backendError').message}} - - +
+ + {{'DMP-LISTING.SORT-BY' | translate}}: + + + {{enumUtils.toRecentActivityOrderString(order.MODIFIED)}} + {{enumUtils.toRecentActivityOrderString(order.LABEL)}} + {{enumUtils.toRecentActivityOrderString(order.STATUS)}} + {{enumUtils.toRecentActivityOrderString(order.CREATED)}} + + + + + + search + + {{formGroup.get('like').getError('backendError').message}} + + +
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts index 2aa02ea42..f005f863d 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts @@ -21,6 +21,7 @@ import { UiNotificationService } from '@app/core/services/notification/ui-notifi import { SnackBarNotificationLevel } from '@common/modules/notification/ui-notification-service'; import { DatasetStatus } from '@app/core/common/enum/dataset-status'; import { DmpInvitationDialogComponent } from '@app/ui/dmp/invitation/dmp-invitation.component'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; @Component({ selector: 'app-recent-edited-dataset-activity', @@ -36,10 +37,13 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen startIndex: number = 0; pageSize: number = 5; public formGroup = new FormBuilder().group({ - like: new FormControl() + like: new FormControl(), + order: new FormControl() }); // publicMode = false; + order = RecentActivityOrder; + constructor( private authentication: AuthService, private datasetService: DatasetService, @@ -55,7 +59,9 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen ngOnInit() { if (this.isAuthenticated()) { - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + this.formGroup.get('order').setValue(this.order.MODIFIED); + const fields: Array = ["-" + this.formGroup.get('order').value]; const datasetDataTableRequest: DataTableRequest = new DataTableRequest(0, this.pageSize, { fields: fields }); datasetDataTableRequest.criteria = new DatasetCriteria(); datasetDataTableRequest.criteria.like = ""; @@ -69,11 +75,15 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen this.formGroup.get('like').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => this.refresh()); + this.formGroup.get('order').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.refresh()); } } refresh(): void { - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; this.startIndex = 0; const datasetDataTableRequest: DataTableRequest = new DataTableRequest(0, this.pageSize, { fields: fields }); datasetDataTableRequest.criteria = new DatasetCriteria(); @@ -89,7 +99,8 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen public loadMore() { this.startIndex = this.startIndex + this.pageSize; - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); request.criteria = new DatasetCriteria(); diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html index 4ba44cac9..99583c62a 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.html @@ -1,11 +1,24 @@
- - - search - - {{formGroup.get('like').getError('backendError').message}} - - +
+ + {{'DMP-LISTING.SORT-BY' | translate}}: + + + {{enumUtils.toRecentActivityOrderString(order.MODIFIED)}} + {{enumUtils.toRecentActivityOrderString(order.LABEL)}} + {{enumUtils.toRecentActivityOrderString(order.STATUS)}} + {{enumUtils.toRecentActivityOrderString(order.CREATED)}} + + + + + + search + + {{formGroup.get('like').getError('backendError').message}} + + +
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts index df5a3c08f..65021bf36 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.ts @@ -21,6 +21,7 @@ import { DatasetService } from '@app/core/services/dataset/dataset.service'; import { DatasetListingModel } from '@app/core/model/dataset/dataset-listing'; import { Role } from '@app/core/common/enum/role'; import { FormBuilder, FormControl } from '@angular/forms'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; @Component({ selector: 'app-recent-edited-dmp-activity', @@ -40,9 +41,12 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O startIndex: number = 0; pageSize: number = 5; public formGroup = new FormBuilder().group({ - like: new FormControl() + like: new FormControl(), + order: new FormControl() }); + order = RecentActivityOrder; + constructor( private router: Router, public enumUtils: EnumUtils, @@ -58,7 +62,9 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O ngOnInit() { if (this.isAuthenticated()) { - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + this.formGroup.get('order').setValue(this.order.MODIFIED); + const fields: Array = ["-" + this.formGroup.get('order').value]; const dmpDataTableRequest: DataTableRequest = new DataTableRequest(0, 5, { fields: fields }); dmpDataTableRequest.criteria = new DmpCriteria(); dmpDataTableRequest.criteria.like = ""; @@ -81,6 +87,9 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O this.formGroup.get('like').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => this.refresh()); + this.formGroup.get('order').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.refresh()); // const datasetDataTableRequest: DataTableRequest = new DataTableRequest(0, 5, { fields: fields }); // datasetDataTableRequest.criteria = new DatasetCriteria(); @@ -296,7 +305,8 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O } refresh(): void { - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; this.startIndex = 0; const dmpDataTableRequest: DataTableRequest = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); dmpDataTableRequest.criteria = new DmpCriteria(); @@ -312,7 +322,8 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O public loadMore() { this.startIndex = this.startIndex + this.pageSize; - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); request.criteria = new DmpCriteria(); diff --git a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.html b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.html index 1147e4731..4e8f75c88 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.html +++ b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.html @@ -6,11 +6,11 @@

{{'DATASET-LISTING.TEXT-INFO' | translate}} {{'DATASET-LISTING.LINK-PUBLIC-DATASETS' | translate}} {{'DATASET-LISTING.TEXT-INFO-REST' | translate}}

{{'DATASET-LISTING.TEXT-INFO-PAR' | translate}} -

- -
+
+ +
@@ -21,13 +21,28 @@
- - - search - - {{formGroup.get('like').getError('backendError').message}} - - +
+
+ + {{'DMP-LISTING.SORT-BY' | translate}}: + + + {{enumUtils.toRecentActivityOrderString(order.MODIFIED)}} + {{enumUtils.toRecentActivityOrderString(order.LABEL)}} + {{enumUtils.toRecentActivityOrderString(order.STATUS)}} + {{enumUtils.toRecentActivityOrderString(order.CREATED)}} + + + + + + search + + {{formGroup.get('like').getError('backendError').message}} + + +
+
diff --git a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.scss b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.scss index ec91a8459..656256f4d 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.scss +++ b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.scss @@ -165,6 +165,11 @@ padding-bottom: 0 !important; } +::ng-deep .sort-form .mat-form-field-wrapper { + background-color: white !important; + padding-bottom: 0 !important; +} + ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix { padding: 0.3rem 0rem 0.6rem 0rem !important; } diff --git a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts index 10a7b6075..0081ce8e5 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts +++ b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts @@ -22,6 +22,8 @@ import { isNullOrUndefined } from 'util'; import { DatasetCriteriaDialogComponent } from './criteria/dataset-criteria-dialogue/dataset-criteria-dialog.component'; import { MatDialog } from '@angular/material'; import { FormGroup, FormBuilder, FormControl } from '@angular/forms'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; +import { EnumUtils } from '@app/core/services/utilities/enum-utils.service'; @Component({ selector: 'app-dataset-listing-component', @@ -51,10 +53,12 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB criteria: DatasetCriteria; criteriaFormGroup: FormGroup; public formGroup = new FormBuilder().group({ - like: new FormControl() + like: new FormControl(), + order: new FormControl() }); scrollbar: boolean; + order = RecentActivityOrder; constructor( private datasetService: DatasetService, @@ -63,13 +67,15 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB public dialog: MatDialog, private dmpService: DmpService, private language: TranslateService, - private authService: AuthService + private authService: AuthService, + public enumUtils: EnumUtils ) { super(); } ngOnInit() { this.isPublic = this.router.url === '/explore'; + this.formGroup.get('order').setValue(this.order.MODIFIED); if (!this.isPublic && isNullOrUndefined(this.authService.current())) { this.router.navigateByUrl("/explore"); } @@ -118,6 +124,9 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB this.formGroup.get('like').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => this.controlModified()); + this.formGroup.get('order').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.refresh()); } ngAfterContentChecked(): void { @@ -140,9 +149,10 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB // if (this._paginator.pageSize === undefined) this._paginator.pageSize = 10; // if (resetPages) this._paginator.pageIndex = 0; // const startIndex = this._paginator.pageIndex * this._paginator.pageSize; - let fields: Array = new Array(); - fields.push('-modified'); + // let fields: Array = new Array(); + // fields.push('-modified'); //if (this.sort && this.sort.active) { fields = this.sort.direction === 'asc' ? ['+' + this.sort.active] : ['-' + this.sort.active]; } + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); this.criteria.isPublic = this.isPublic; request.criteria = this.criteria; @@ -157,7 +167,8 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB public loadMore() { this.startIndex = this.startIndex + this.pageSize; - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); this.criteria.isPublic = this.isPublic; request.criteria = this.criteria; diff --git a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.html b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.html index 370519786..b52cd2f86 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.html +++ b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.html @@ -16,13 +16,28 @@
- - - search - - {{formGroup.get('like').getError('backendError').message}} - - +
+
+ + {{'DMP-LISTING.SORT-BY' | translate}}: + + + {{enumUtils.toRecentActivityOrderString(order.MODIFIED)}} + {{enumUtils.toRecentActivityOrderString(order.LABEL)}} + {{enumUtils.toRecentActivityOrderString(order.STATUS)}} + {{enumUtils.toRecentActivityOrderString(order.CREATED)}} + + + + + + search + + {{formGroup.get('like').getError('backendError').message}} + + +
+
diff --git a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.scss b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.scss index fbebe8c46..bd0fdb41b 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.scss +++ b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.scss @@ -227,6 +227,11 @@ padding-bottom: 0 !important; } +::ng-deep .sort-form .mat-form-field-wrapper { + background-color: white !important; + padding-bottom: 0 !important; +} + ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix { padding: 0.3rem 0rem 0.6rem 0rem !important; } diff --git a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts index dab5e41c7..02e4aa33c 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts @@ -25,6 +25,7 @@ import { isNullOrUndefined } from 'util'; import { AuthService } from '@app/core/services/auth/auth.service'; import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; import { DmpCriteriaDialogComponent } from './criteria/dmp-criteria-dialog.component'; +import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order'; @Component({ @@ -56,10 +57,12 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread criteria: DmpCriteria; criteriaFormGroup: FormGroup; public formGroup = new FormBuilder().group({ - like: new FormControl() + like: new FormControl(), + order: new FormControl() }); scrollbar: boolean; + order = RecentActivityOrder; constructor( private dmpService: DmpService, @@ -77,6 +80,7 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread ngOnInit() { this.isPublic = this.router.url.startsWith('/explore-plans'); + this.formGroup.get('order').setValue(this.order.MODIFIED); if (!this.isPublic && isNullOrUndefined(this.authService.current())) { this.router.navigateByUrl("/explore-plans"); } @@ -164,6 +168,9 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread this.formGroup.get('like').valueChanges .pipe(takeUntil(this._destroyed)) .subscribe(x => this.controlModified()); + this.formGroup.get('order').valueChanges + .pipe(takeUntil(this._destroyed)) + .subscribe(x => this.refresh()); } ngAfterContentChecked(): void { @@ -175,9 +182,10 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread // if (resetPages) this._paginator.pageIndex = 0; // const startIndex = this._paginator.pageIndex * this._paginator.pageSize; - let fields: Array = new Array(); + // let fields: Array = new Array(); // if (this.sort && this.sort.active) { fields = this.sort.direction === 'asc' ? ['+' + this.sort.active] : ['-' + this.sort.active]; } - fields.push('-modified'); + // fields.push('-modified'); + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); this.setPublicCriteria(); @@ -200,7 +208,8 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread public loadMore() { this.startIndex = this.startIndex + this.pageSize; - const fields: Array = ["-modified"]; + // const fields: Array = ["-modified"]; + const fields: Array = ["-" + this.formGroup.get('order').value]; const request = new DataTableRequest(this.startIndex, this.pageSize, { fields: fields }); this.setPublicCriteria(); request.criteria = this.criteria; diff --git a/dmp-frontend/src/assets/css/demo.css b/dmp-frontend/src/assets/css/demo.css index 158a19232..ffc0cdfef 100644 --- a/dmp-frontend/src/assets/css/demo.css +++ b/dmp-frontend/src/assets/css/demo.css @@ -396,7 +396,7 @@ input[type=email], select { opacity: 1; } -textarea { +/* textarea { width: 100%; height: 142px; padding: 16px; @@ -404,7 +404,7 @@ textarea { border: 1px solid #D1D1D1; border-radius: 4px; opacity: 1; -} +} */ p { text-align: left; diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index 9a2775a24..1ba767d40 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -404,6 +404,7 @@ "TEXT-INFO-QUESTION": "Not sure how a DMP looks in practice? Browse Public DMPs and", "LINK-ZENODO": "LIBER community in Zenodo", "GET-IDEA": "to get an idea!", + "SORT-BY": "Sort by", "COLUMNS": { "NAME": "Name", "GRANT": "Grant", @@ -1028,6 +1029,12 @@ "DMPS": "DMPs", "DATASETS": "Dataset Descriptions", "EXTERNAL-SOURCE-HINT": "List of values provided by external source(s)" + }, + "RECENT-ACTIVITY-ORDER": { + "CREATED": "Created", + "LABEL": "Label", + "MODIFIED": "Modified", + "STATUS": "Status" } }, "ADDRESEARCHERS-EDITOR": { diff --git a/dmp-frontend/src/assets/i18n/es.json b/dmp-frontend/src/assets/i18n/es.json index daa44f273..ca573b3e8 100644 --- a/dmp-frontend/src/assets/i18n/es.json +++ b/dmp-frontend/src/assets/i18n/es.json @@ -403,6 +403,7 @@ "TEXT-INFO-QUESTION": "Not sure how a DMP looks in practice? Browse Public DMPs and", "LINK-ZENODO": "LIBER community in Zenodo", "GET-IDEA": "to get an idea!", + "SORT-BY": "Sort by", "COLUMNS": { "NAME": "Nombre", "GRANT": "Subvención", @@ -1023,6 +1024,12 @@ "DMPS": "PGDs", "DATASETS": "Descripciones del Dataset", "EXTERNAL-SOURCE-HINT": "Lista de valores para seleccionar la(s) fuente(s) externa(s)" + }, + "RECENT-ACTIVITY-ORDER": { + "CREATED": "Created", + "LABEL": "Label", + "MODIFIED": "Modified", + "STATUS": "Status" } }, "ADDRESEARCHERS-EDITOR": { diff --git a/dmp-frontend/src/assets/i18n/gr.json b/dmp-frontend/src/assets/i18n/gr.json index 11fa6209a..6de70cb29 100644 --- a/dmp-frontend/src/assets/i18n/gr.json +++ b/dmp-frontend/src/assets/i18n/gr.json @@ -403,6 +403,7 @@ "TEXT-INFO-QUESTION": "Not sure how a DMP looks in practice? Browse Public DMPs and", "LINK-ZENODO": "LIBER community in Zenodo", "GET-IDEA": "to get an idea!", + "SORT-BY": "Sort by", "COLUMNS": { "NAME": "Τίτλος", "GRANT": "Επιχορήγηση", @@ -1024,6 +1025,12 @@ "DMPS": "Σχέδια Διαχείρισης Δεδομένων", "DATASETS": "Περιγραφές Συνόλων Δεδομένων", "EXTERNAL-SOURCE-HINT": "Κατάλογος τιμών που παρέχονται από εξωτερικές πηγές" + }, + "RECENT-ACTIVITY-ORDER": { + "CREATED": "Created", + "LABEL": "Label", + "MODIFIED": "Modified", + "STATUS": "Status" } }, "ADDRESEARCHERS-EDITOR": {