From 8eb054f9d2e6a306e5c7de5701f06ce5745de99b Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Fri, 10 Jul 2020 18:41:20 +0300 Subject: [PATCH 1/3] Update language Editor (still not functional) --- .../language-editor.component.ts | 203 +++++++++--------- 1 file changed, 101 insertions(+), 102 deletions(-) diff --git a/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts b/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts index 21dbbe559..dcf941546 100644 --- a/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts +++ b/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts @@ -8,9 +8,9 @@ import { UiNotificationService, SnackBarNotificationLevel } from '@app/core/serv import { Router } from '@angular/router'; @Component({ - selector: 'app-language-editor', - templateUrl: './language-editor.component.html', - styleUrls: ['./language-editor.component.scss'] + selector: 'app-language-editor', + templateUrl: './language-editor.component.html', + styleUrls: ['./language-editor.component.scss'] }) export class LanguageEditorComponent extends BaseComponent implements OnInit, OnDestroy { readonly rowHeight = 100; @@ -26,113 +26,112 @@ export class LanguageEditorComponent extends BaseComponent implements OnInit, On formGroup: FormGroup; formBuilder: FormBuilder; - constructor( - private language: LanguageService, - private uiNotificationService: UiNotificationService, - private translate: TranslateService, - private router: Router, - ) { super(); } + constructor( + private language: LanguageService, + private uiNotificationService: UiNotificationService, + private translate: TranslateService, + private router: Router, + ) { super(); } - ngOnInit() { - this.formBuilder = new FormBuilder(); - this.formGroup = this.formBuilder.group({}); - this.endIndex = this.maxElements; - window.addEventListener('scroll', this.refreshFn, true); - this.language.getCurrentLanguageJSON() - .pipe(takeUntil(this._destroyed)) - .subscribe(response => { - const blob = new Blob([response.body], { type: 'application/json' }); - this.convertBlobToJSON(blob); + ngOnInit() { + this.formBuilder = new FormBuilder(); + this.formGroup = this.formBuilder.group({}); + this.endIndex = this.maxElements; + window.addEventListener('scroll', this.refreshFn, true); + this.language.getCurrentLanguageJSON() + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/json' }); + this.convertBlobToJSON(blob); - }); - } + }); + } - ngOnDestroy() { - window.removeEventListener('scroll', this.refreshFn, true); - } + ngOnDestroy() { + window.removeEventListener('scroll', this.refreshFn, true); + } - convertBlobToJSON(blob: Blob) { - const fr = new FileReader(); - fr.onload = ev => { - const langObj = JSON.parse(fr.result as string); - this.convertObjectToForm(langObj, '', this.formGroup); - this.currentLang = this.language.getCurrentLanguageName(); + convertBlobToJSON(blob: Blob) { + const fr = new FileReader(); + fr.onload = ev => { + const langObj = JSON.parse(fr.result as string); + this.convertObjectToForm(langObj, '', this.formGroup); + this.currentLang = this.language.getCurrentLanguageName(); + this.keys.length = 0; + for (const key of this.allkeys) { + this.keys.push(key); + } + this.visibleKeys = this.keys.slice(this.startIndex, this.endIndex); + this.parseFinished = true; + + }; + fr.readAsText(blob); + } + + convertObjectToForm(obj: any, parentKey: string, form: FormGroup) { + for (let prop in obj) { + const key = parentKey !== '' ? `${parentKey}.${prop}` : prop; + if (typeof obj[prop] === 'object') { + form.addControl(prop, this.formBuilder.group({})); + this.convertObjectToForm(obj[prop], key, form.get(prop) as FormGroup); + continue; + } else { + form.addControl(prop, this.formBuilder.control(obj[prop])); + this.allkeys.push(key); + } + } + return; + } + + updateLang() { + const json = JSON.stringify(this.formGroup.value, null, " "); + this.language.updateLanguage(json).pipe(takeUntil(this._destroyed)) + .subscribe( + complete => { + this.onCallbackSuccess(complete); + }, + error => { + this.onCallbackError(error); + } + ); + + } + + onCallbackSuccess(id?: String): void { + this.uiNotificationService.snackBarNotification(this.translate.instant('GENERAL.SNACK-BAR.SUCCESSFUL-UPDATE'), SnackBarNotificationLevel.Success); + this.router.navigate(['/reload']).then(() => this.router.navigate(['/language-editor'])); + } + + onCallbackError(error: any) { + this.uiNotificationService.snackBarNotification(error, SnackBarNotificationLevel.Error); + //this.validateAllFormFields(this.formGroup); + } + + refreshFn = (ev: Event) => { + if (document.scrollingElement !== undefined) { + this.startIndex = Math.floor(document.scrollingElement.scrollTop / this.rowHeight); + this.endIndex = this.startIndex + this.maxElements; + const tempKeys = this.keys.slice(this.startIndex, this.endIndex); + this.visibleKeys.length = 0; + for (const key of tempKeys) { + this.visibleKeys.push(key); + } + } + } + + findKeys(ev: any) { + let tempKeys = []; + if (ev.value === "") { + tempKeys = this.allkeys; + } else { + tempKeys = this.allkeys.filter((key) => (this.formGroup.get(key).value as string).toLowerCase().includes(ev.value.toLowerCase())); + window.scrollTo({ top: 0 }); + } this.keys.length = 0; - for (const key of this.allkeys) { + for (const key of tempKeys) { this.keys.push(key); } this.visibleKeys = this.keys.slice(this.startIndex, this.endIndex); - this.parseFinished = true; - - }; - fr.readAsText(blob); - } - - convertObjectToForm(obj: any, parentKey: string, form: FormGroup) { - for (let prop in obj) { - const key = parentKey !== '' ? `${parentKey}.${prop}` : prop; - if (typeof obj[prop] === 'object') { - form.addControl(prop, this.formBuilder.group({})); - this.convertObjectToForm(obj[prop], key, form.get(prop) as FormGroup); - continue; - } else { - form.addControl(prop, this.formBuilder.control(obj[prop])); - this.allkeys.push(key); - } - } - return; - } - - updateLang() { - const json = JSON.stringify(this.formGroup.value, null, " "); - this.language.updateLanguage(json).pipe(takeUntil(this._destroyed)) - .subscribe( - complete => { - this.onCallbackSuccess(complete); - }, - error => { - this.onCallbackError(error); - } - ); - - } - - onCallbackSuccess(id?: String): void { - this.uiNotificationService.snackBarNotification( this.translate.instant('GENERAL.SNACK-BAR.SUCCESSFUL-UPDATE'), SnackBarNotificationLevel.Success); - this.router.navigate(['/reload']).then(() => this.router.navigate(['/language-editor'])); -} - -onCallbackError(error: any) { - this.uiNotificationService.snackBarNotification( error, SnackBarNotificationLevel.Error); - //this.validateAllFormFields(this.formGroup); -} - -refreshFn = (ev: Event) => { - - if ((ev.srcElement as HTMLDocument).scrollingElement !== undefined) { - this.startIndex = Math.floor((ev.srcElement as HTMLDocument).scrollingElement.scrollTop / this.rowHeight); - this.endIndex = this.startIndex + this.maxElements; - const tempKeys = this.keys.slice(this.startIndex, this.endIndex); - this.visibleKeys.length = 0; - for (const key of tempKeys) { - this.visibleKeys.push(key); - } } -} - -findKeys(ev: any) { - let tempKeys = []; - if (ev.value === "") { - tempKeys = this.allkeys; - } else { - tempKeys = this.allkeys.filter((key) => (this.formGroup.get(key).value as string).toLowerCase().includes(ev.value.toLowerCase())); - window.scrollTo({top: 0}); - } - this.keys.length = 0; - for (const key of tempKeys) { - this.keys.push(key); - } - this.visibleKeys = this.keys.slice(this.startIndex, this.endIndex); -} } From 74f5019ff3b1509329fef4d1f9c441bb3b6fe6cf Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Mon, 13 Jul 2020 11:41:36 +0300 Subject: [PATCH 2/3] Fix Language Editor --- .../language-editor.component.html | 8 ++------ .../language-editor.component.scss | 10 +++++----- .../language-editor.component.ts | 18 +++++++++++++++--- .../language-editor/language-editor.module.ts | 4 +++- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/dmp-frontend/src/app/ui/language-editor/language-editor.component.html b/dmp-frontend/src/app/ui/language-editor/language-editor.component.html index b0eaa1c83..655293b39 100644 --- a/dmp-frontend/src/app/ui/language-editor/language-editor.component.html +++ b/dmp-frontend/src/app/ui/language-editor/language-editor.component.html @@ -14,12 +14,8 @@
{{key}} : - +
diff --git a/dmp-frontend/src/app/ui/language-editor/language-editor.component.scss b/dmp-frontend/src/app/ui/language-editor/language-editor.component.scss index a02699a28..811aa4ee3 100644 --- a/dmp-frontend/src/app/ui/language-editor/language-editor.component.scss +++ b/dmp-frontend/src/app/ui/language-editor/language-editor.component.scss @@ -1,5 +1,5 @@ .language-editor { - padding-top: 5em; + padding-top: 6em; padding-bottom: 2em; .language-area { @@ -12,13 +12,13 @@ width: 56px !important; bottom: 10px; position: fixed; - right: 10px; + right: 24px; } .sticky { position: fixed; - left: 200px; - right: 200px; + left: 214px; + right: 214px; width: 50%; } @@ -28,7 +28,7 @@ width: 258px !important; top: 100px; position: fixed; - right: 10px; + right: 24px; background-color: white; border: 1px solid rgb(218, 218, 218); border-radius: 6px; diff --git a/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts b/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts index dcf941546..551df1671 100644 --- a/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts +++ b/dmp-frontend/src/app/ui/language-editor/language-editor.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, OnDestroy } from '@angular/core'; +import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; import { LanguageService } from '@app/core/services/language/language.service'; import { BaseComponent } from '@common/base/base.component'; import { takeUntil } from 'rxjs/operators'; @@ -6,6 +6,7 @@ import { FormGroup, FormBuilder } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; import { UiNotificationService, SnackBarNotificationLevel } from '@app/core/services/notification/ui-notification-service'; import { Router } from '@angular/router'; +import { CdkTextareaAutosize } from '@angular/cdk/text-field'; @Component({ selector: 'app-language-editor', @@ -13,6 +14,10 @@ import { Router } from '@angular/router'; styleUrls: ['./language-editor.component.scss'] }) export class LanguageEditorComponent extends BaseComponent implements OnInit, OnDestroy { + + @ViewChild('autosize', {static: false}) autosize: CdkTextareaAutosize; + + readonly rowHeight = 100; readonly maxElements = 12; @@ -63,7 +68,7 @@ export class LanguageEditorComponent extends BaseComponent implements OnInit, On } this.visibleKeys = this.keys.slice(this.startIndex, this.endIndex); this.parseFinished = true; - + this.setupAutosize(); }; fr.readAsText(blob); } @@ -108,8 +113,9 @@ export class LanguageEditorComponent extends BaseComponent implements OnInit, On } refreshFn = (ev: Event) => { + const evDoc = (ev.target); if (document.scrollingElement !== undefined) { - this.startIndex = Math.floor(document.scrollingElement.scrollTop / this.rowHeight); + this.startIndex = Math.floor(evDoc.scrollTop / this.rowHeight); this.endIndex = this.startIndex + this.maxElements; const tempKeys = this.keys.slice(this.startIndex, this.endIndex); this.visibleKeys.length = 0; @@ -134,4 +140,10 @@ export class LanguageEditorComponent extends BaseComponent implements OnInit, On this.visibleKeys = this.keys.slice(this.startIndex, this.endIndex); } + private setupAutosize() { + this.autosize.minRows = 1; + this.autosize.maxRows = 5; + this.autosize.enabled = true; + } + } diff --git a/dmp-frontend/src/app/ui/language-editor/language-editor.module.ts b/dmp-frontend/src/app/ui/language-editor/language-editor.module.ts index ff38b4929..9d8b40f16 100644 --- a/dmp-frontend/src/app/ui/language-editor/language-editor.module.ts +++ b/dmp-frontend/src/app/ui/language-editor/language-editor.module.ts @@ -4,6 +4,7 @@ import { LanguageEditorRoutingModule } from './language-editor.routing'; import { CommonUiModule } from '@common/ui/common-ui.module'; import { CommonFormsModule } from '@common/forms/common-forms.module'; import { ConfirmationDialogModule } from '@common/modules/confirmation-dialog/confirmation-dialog.module'; +import {TextFieldModule} from '@angular/cdk/text-field'; @@ -13,7 +14,8 @@ import { ConfirmationDialogModule } from '@common/modules/confirmation-dialog/co CommonUiModule, CommonFormsModule, ConfirmationDialogModule, - LanguageEditorRoutingModule + LanguageEditorRoutingModule, + TextFieldModule ] }) export class LanguageEditorModule { } From 15e09d7994c79d1df4e16448b899269e990b5396 Mon Sep 17 00:00:00 2001 From: apapachristou Date: Mon, 13 Jul 2020 13:01:03 +0300 Subject: [PATCH 3/3] 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": {