From f5773589ff3702584e634444e31d5575a5ffbc68 Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 19 May 2020 18:35:50 +0300 Subject: [PATCH] When selecting profiles from DMP editor or DMP wizard. All templates will be sorted alphabetically (ref #268) --- .../DatasetProfileAutocompleteRequest.java | 9 ++++++++- .../eu/eudat/logic/managers/DatasetProfileManager.java | 3 ++- .../ui/dmp/editor/general-tab/general-tab.component.ts | 2 +- .../ui/dmp/listing/criteria/dmp-criteria.component.ts | 2 +- .../ui/dmp/wizard/editor/dmp-wizard-editor.component.ts | 4 +++- .../src/app/ui/external/zenodo/zenodo.component.ts | 1 - .../dmp-editor/dmp-editor-wizard.component.ts | 3 ++- 7 files changed, 17 insertions(+), 7 deletions(-) diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/query/items/item/datasetprofile/DatasetProfileAutocompleteRequest.java b/dmp-backend/data/src/main/java/eu/eudat/data/query/items/item/datasetprofile/DatasetProfileAutocompleteRequest.java index 7418102b6..2cda2c5cd 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/query/items/item/datasetprofile/DatasetProfileAutocompleteRequest.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/query/items/item/datasetprofile/DatasetProfileAutocompleteRequest.java @@ -2,12 +2,14 @@ package eu.eudat.data.query.items.item.datasetprofile; import eu.eudat.data.dao.criteria.DatasetProfileCriteria; import eu.eudat.data.entities.DatasetProfile; +import eu.eudat.data.query.PaginationService; import eu.eudat.data.query.definition.Query; +import eu.eudat.data.query.definition.TableQuery; import eu.eudat.queryable.QueryableList; import java.util.UUID; -public class DatasetProfileAutocompleteRequest extends Query { +public class DatasetProfileAutocompleteRequest extends TableQuery { @Override public QueryableList applyCriteria() { QueryableList query = this.getQuery(); @@ -15,4 +17,9 @@ public class DatasetProfileAutocompleteRequest extends Query builder.like(builder.upper(root.get("label")), "%" + this.getCriteria().getLike().toUpperCase() + "%")); return query; } + + @Override + public QueryableList applyPaging(QueryableList items) { + return PaginationService.applyPaging(items, this); + } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java index 9a171ade0..2eb487f65 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DatasetProfileManager.java @@ -66,7 +66,8 @@ public class DatasetProfileManager { public List getWithCriteria(DatasetProfileAutocompleteRequest datasetProfileAutocompleteRequest) throws IllegalAccessException, InstantiationException { QueryableList items = databaseRepository.getDatasetProfileDao().getWithCriteria(datasetProfileAutocompleteRequest.getCriteria()); - List datasetProfiles = items.select(item -> new DatasetProfileAutocompleteItem().fromDataModel(item)); + QueryableList pagedItems = datasetProfileAutocompleteRequest.applyPaging(items); + List datasetProfiles = pagedItems.select(item -> new DatasetProfileAutocompleteItem().fromDataModel(item)); return datasetProfiles; } diff --git a/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts b/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts index 1435dfaef..3f6abf65b 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts @@ -145,7 +145,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit { filterProfiles(value: string): Observable { - const request = new RequestItem(); + const request = new DataTableRequest(null, null, {fields: ['+label']}); const criteria = new DatasetProfileCriteria(); criteria.like = value; request.criteria = criteria; diff --git a/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts b/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts index a073e4ca8..2a990faec 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts @@ -177,7 +177,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni filterDatasetTemplate(query: string): Observable { const fields: Array = new Array(); - fields.push('asc'); + fields.push('+label'); const datasetTemplateRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); datasetTemplateRequestItem.criteria = new DatasetProfileCriteria(); datasetTemplateRequestItem.criteria.like = query; diff --git a/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts b/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts index 90ba33cee..e7eabc512 100644 --- a/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts +++ b/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts @@ -20,6 +20,8 @@ import { BaseComponent } from '@common/base/base.component'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; import { map, takeUntil } from 'rxjs/operators'; +import { DataTableData } from '@app/core/model/data-table/data-table-data'; +import { DataTableRequest } from '@app/core/model/data-table/data-table-request'; @Component({ selector: 'app-dmp-wizard-editor-component', @@ -166,7 +168,7 @@ export class DmpWizardEditorComponent extends BaseComponent implements OnInit { this.filteredProfiles = undefined; this.filteredProfilesAsync = true; - const request = new RequestItem(); + const request = new DataTableRequest(null, null, { fields: ['+label'] }); const criteria = new DatasetProfileCriteria(); criteria.like = value; request.criteria = criteria; diff --git a/dmp-frontend/src/app/ui/external/zenodo/zenodo.component.ts b/dmp-frontend/src/app/ui/external/zenodo/zenodo.component.ts index 5ce4e21f1..bf9d18321 100644 --- a/dmp-frontend/src/app/ui/external/zenodo/zenodo.component.ts +++ b/dmp-frontend/src/app/ui/external/zenodo/zenodo.component.ts @@ -19,7 +19,6 @@ export class ZenodoComponent extends BaseComponent implements OnInit { ngOnInit() { this.route.paramMap.pipe(takeUntil(this._destroyed)).subscribe((params: Params) => { const id = params.params.id; - console.log(params.params); this.router.navigate([`/explore-plans/publicOverview/${id}`]); }); } diff --git a/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts b/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts index 99d898a15..4a6a00f82 100644 --- a/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts +++ b/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts @@ -17,6 +17,7 @@ import { ValidationErrorModel } from '@common/forms/validation/error-model/valid import { TranslateService } from '@ngx-translate/core'; import { Observable, of as observableOf } from 'rxjs'; import { DmpEditorWizardModel } from './dmp-editor-wizard-model'; +import { DataTableRequest } from '@app/core/model/data-table/data-table-request'; @Component({ @@ -116,7 +117,7 @@ export class DmpEditorWizardComponent extends BaseComponent implements OnInit, I this.filteredProfiles = undefined; this.filteredProfilesAsync = true; - const request = new RequestItem(); + const request = new DataTableRequest(null, null, { fields: ['+label']}); const criteria = new DatasetProfileCriteria(); criteria.like = value; request.criteria = criteria;