From e98034c4b23e09208fda0f8b8bb2b991b6aa90a7 Mon Sep 17 00:00:00 2001 From: Florent Poittevin <florent.poittevin@unige.ch> Date: Tue, 10 Sep 2019 16:28:38 +0200 Subject: [PATCH] fix: pagination on home page and avoid search when change filter with no value --- package-lock.json | 51 ++++++------------- package.json | 2 +- .../home-browsing-list-archives.routable.scss | 12 ++--- .../home-browsing/home-browsing.routable.scss | 1 + .../home-search/home-search.routable.ts | 2 +- src/app/features/home/stores/home.state.ts | 9 +++- .../shared-data-table.presentational.ts | 9 ++-- .../shared-abstract-list.routable.ts | 2 +- .../environment.defaults.model.ts | 3 +- src/environments/environment.defaults.ts | 3 +- 10 files changed, 40 insertions(+), 54 deletions(-) diff --git a/package-lock.json b/package-lock.json index f411eb30c..bb45c2308 100644 --- a/package-lock.json +++ b/package-lock.json @@ -700,7 +700,7 @@ "@angular/compiler": "^8.1.3", "boxen": "^4.1.0", "colorette": "^1.1.0", - "flat": "git://github.com/lenchvolodymyr/flat.git#ffe77ef", + "flat": "git://github.com/lenchvolodymyr/flat.git#ffe77efe8c33bc80ffb2f7a465537610dea4f611", "gettext-parser": "^4.0.1", "glob": "^7.1.4", "mkdirp": "^0.5.1", @@ -4183,7 +4183,7 @@ "dependencies": { "is-buffer": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "resolved": "https://packages.dlcm.ch/repository/npm-group/is-buffer/-/is-buffer-2.0.3.tgz", "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", "dev": true } @@ -4358,8 +4358,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -4380,14 +4379,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4402,20 +4399,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -4532,8 +4526,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -4545,7 +4538,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4560,7 +4552,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4568,14 +4559,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4594,7 +4583,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -4675,8 +4663,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -4688,7 +4675,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -4774,8 +4760,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -4811,7 +4796,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4831,7 +4815,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4875,14 +4858,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -9241,9 +9222,9 @@ } }, "solidify-frontend": { - "version": "0.1.2", - "resolved": "https://packages.dlcm.ch/repository/npm-group/solidify-frontend/-/solidify-frontend-0.1.2.tgz", - "integrity": "sha512-Kc/UWCCfqMyXj80akDmz0U6yJ2sHlNqdGEr27p5O1A7NDUTaj27Uaps2cXwfyAp1akJm2WzjBlDhjWLHkfAHzA==", + "version": "0.1.3", + "resolved": "https://packages.dlcm.ch/repository/npm-group/solidify-frontend/-/solidify-frontend-0.1.3.tgz", + "integrity": "sha512-rBmN9gmyKzwqoXyd2lD5/mfIxLIKy7XZ5ic7jO5CyNDA0j1nRrhhJwYepb5ZhqV3sop9infVb6GZTeZEpWNPSQ==", "requires": { "tslib": "^1.9.0" } diff --git a/package.json b/package.json index cb5982dc9..df6a36a87 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "primeicons": "1.0.0", "primeng": "8.0.1", "rxjs": "6.5.2", - "solidify-frontend": "0.1.2", + "solidify-frontend": "0.1.3", "sync-pom-version-to-package": "1.3.1", "ts-key-enum": "2.0.0", "tslib": "1.10.0", diff --git a/src/app/features/home/components/routables/home-browsing-list-archives/home-browsing-list-archives.routable.scss b/src/app/features/home/components/routables/home-browsing-list-archives/home-browsing-list-archives.routable.scss index d57db1e50..6ef094420 100644 --- a/src/app/features/home/components/routables/home-browsing-list-archives/home-browsing-list-archives.routable.scss +++ b/src/app/features/home/components/routables/home-browsing-list-archives/home-browsing-list-archives.routable.scss @@ -2,14 +2,12 @@ :host { position: relative; - display: flex; - overflow-y: auto; - justify-content: center; - align-items: center; - flex-wrap: wrap; flex: 1; + display: flex; + flex-direction: column; padding: 20px; flex-basis: 50%; + overflow-y: auto; @include respond-to-smaller-than-breakpoint('lg') { flex-basis: 40%; @@ -22,6 +20,7 @@ @include respond-to-smaller-than-breakpoint('sm') { flex-basis: 100%; display: none; + padding-top: 50px; .close-button { display: block; } @@ -41,7 +40,8 @@ } .archive { - margin: 10px; + margin: 10px 0; + width: 100%; } .close-button { diff --git a/src/app/features/home/components/routables/home-browsing/home-browsing.routable.scss b/src/app/features/home/components/routables/home-browsing/home-browsing.routable.scss index 100e98a13..1ff086514 100644 --- a/src/app/features/home/components/routables/home-browsing/home-browsing.routable.scss +++ b/src/app/features/home/components/routables/home-browsing/home-browsing.routable.scss @@ -5,4 +5,5 @@ :host { display: flex; flex: 1; + width: 100%; } diff --git a/src/app/features/home/components/routables/home-search/home-search.routable.ts b/src/app/features/home/components/routables/home-search/home-search.routable.ts index e69d504a8..95be12827 100644 --- a/src/app/features/home/components/routables/home-search/home-search.routable.ts +++ b/src/app/features/home/components/routables/home-search/home-search.routable.ts @@ -66,7 +66,7 @@ export class HomeSearchRoutable extends SharedAbstractPresentational implements ngOnInit(): void { super.ngOnInit(); - this.store.dispatch(new HomeOrgUnitAction.GetAll(new QueryParameters())); + this.store.dispatch(new HomeOrgUnitAction.GetAll(new QueryParameters(1000))); this.store.dispatch(new HomeAction.GetRss()); this.columns = [ diff --git a/src/app/features/home/stores/home.state.ts b/src/app/features/home/stores/home.state.ts index 16a73cefe..a760a5f70 100644 --- a/src/app/features/home/stores/home.state.ts +++ b/src/app/features/home/stores/home.state.ts @@ -36,6 +36,7 @@ import { ApiService, CollectionTyped, isNullOrUndefined, + isWhiteString, MapUtil, NotificationService, QueryParameters, @@ -45,6 +46,7 @@ import { StringUtil, TRANSLATE, } from "solidify-frontend"; +import {environment} from "../../../../environments/environment"; export interface HomeStateModel extends ResourceStateModel<ArchiveMetadata> { search: string; @@ -62,7 +64,7 @@ export interface HomeStateModel extends ResourceStateModel<ArchiveMetadata> { isLoadingCounter: 0, list: [], current: null, - queryParameters: new QueryParameters(), + queryParameters: new QueryParameters(environment.defaultPageSizeHomePage), rss: undefined, home_organizationalUnit: {isLoadingCounter: 0} as HomeOrganizationalUnitStateModel, }, @@ -115,7 +117,10 @@ export class HomeState { searchScope: action.searchScope, }); sessionStorage.setItem(SessionStorageEnum.homePageSearchScope, action.searchScope); - ctx.dispatch(new HomeAction.Search(true, ctx.getState().search)); + const search = ctx.getState().search; + if (!isWhiteString(search) && !isNullOrUndefined(search)) { + ctx.dispatch(new HomeAction.Search(true, ctx.getState().search)); + } } @Action(HomeAction.Search) diff --git a/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts b/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts index 23d3c5be3..f64f2aebb 100644 --- a/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts +++ b/src/app/shared/components/presentationals/shared-data-table/shared-data-table.presentational.ts @@ -10,13 +10,13 @@ import {SharedAbstractPresentational} from "@app/shared/components/presentationa import {SharedPaginatorPresentational} from "@app/shared/components/presentationals/shared-paginator/shared-paginator.presentational"; import {FieldTypeEnum} from "@app/shared/enums/field-type.enum"; import {DataTableColumns} from "@app/shared/models/data-table-columns.model"; -import * as moment from "moment"; import {LazyLoadEvent} from "primeng/api"; import { BehaviorSubject, Observable, } from "rxjs"; import { + DateUtil, isEmptyString, isNullOrUndefined, MapUtil, @@ -90,8 +90,6 @@ export class SharedDataTablePresentational<T> extends SharedAbstractPresentation fieldTypeString: FieldTypeEnum = FieldTypeEnum.string; private readonly _SEPARATOR: string = "."; - private readonly _FORMAT_TIME_ONLY: string = "LTS"; - private readonly _FORMAT_DATE_ONLY: string = "L"; constructor() { super(); @@ -123,11 +121,10 @@ export class SharedDataTablePresentational<T> extends SharedAbstractPresentation return StringUtil.stringEmpty; } if (type === FieldTypeEnum.date) { - return moment(data).format(this._FORMAT_DATE_ONLY); + return DateUtil.convertDateToDateString(data); } if (type === FieldTypeEnum.datetime) { - const moments = moment(data); - return moments.format(this._FORMAT_DATE_ONLY) + " " + moments.format(this._FORMAT_TIME_ONLY); + return DateUtil.convertDateToDateTimeString(data); } return data; } diff --git a/src/app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable.ts b/src/app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable.ts index d97c26c9f..eecf49a94 100644 --- a/src/app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable.ts +++ b/src/app/shared/components/routables/shared-abstract-list/shared-abstract-list.routable.ts @@ -53,7 +53,7 @@ export abstract class SharedAbstractListRoutable<TResourceModel, UResourceStateM } private getDefaultQueryParameters(): QueryParameters { - const defaultQueryParameters = new QueryParameters(environment.defaultPageSizeOption); + const defaultQueryParameters = new QueryParameters(environment.defaultPageSize); this.computeInitialSorting(defaultQueryParameters); return defaultQueryParameters; } diff --git a/src/environments/environment.defaults.model.ts b/src/environments/environment.defaults.model.ts index 0c36671b4..e620a1614 100644 --- a/src/environments/environment.defaults.model.ts +++ b/src/environments/environment.defaults.model.ts @@ -6,7 +6,8 @@ export interface DlcmEnvironment extends DefaultSolidifyEnvironment { appTitle: string; theme: ThemeEnum; defaultLanguage: LanguagesEnum; - defaultPageSizeOption: number; + defaultPageSize: number; + defaultPageSizeHomePage: number; defaultEnumValuePageSizeOption: number; pageSizeOptions: number[]; diff --git a/src/environments/environment.defaults.ts b/src/environments/environment.defaults.ts index 2dee90cf1..83539d30e 100644 --- a/src/environments/environment.defaults.ts +++ b/src/environments/environment.defaults.ts @@ -12,7 +12,8 @@ export const defaultEnvironment: DlcmEnvironment = { production: false, theme: ThemeEnum.dlcm, defaultLanguage: LanguagesEnum.en, - defaultPageSizeOption: 10, + defaultPageSize: 10, + defaultPageSizeHomePage: 10, defaultEnumValuePageSizeOption: 10000, pageSizeOptions: [5, 10, 25, 50, 100], -- GitLab