Skip to content

Commit d1174f0

Browse files
authored
Merge pull request #184 from Gid733/master
Added support for pagesize & sorting save for plugins
2 parents 0401eea + 282ae7a commit d1174f0

File tree

6 files changed

+78
-4
lines changed

6 files changed

+78
-4
lines changed

eform-client/src/app/plugins/modules/shared/components/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ export * from './pagination-pn/pagination-pn.component';
22
export * from './spinner-pn/spinner-pn.component';
33
export * from './subheader-pn/subheader-pn.component';
44
export * from './text-editor-pn/pell-pn.component';
5+
export * from './page-size-pn/page-size-pn.component';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<ng-select
2+
[items]="pageSizes"
3+
(ngModelChange)="updateCurrentPageSettings($event)"
4+
[clearable]="false"
5+
[(ngModel)]="pageSize"
6+
dropdownPosition="top"
7+
[placeholder]="'Display' | translate">
8+
</ng-select>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import {Component, EventEmitter, Input, Output} from '@angular/core';
2+
3+
@Component({
4+
selector: 'page-size-pn',
5+
templateUrl: './page-size-pn.component.html'
6+
})
7+
export class PageSizePnComponent {
8+
@Input() pageSize: number;
9+
@Output() onPageSizeChanged: EventEmitter<number> = new EventEmitter<number>();
10+
pageSizes = [5, 10, 100, 1000, 100000];
11+
12+
constructor() {
13+
}
14+
15+
updateCurrentPageSettings(e: any) {
16+
this.onPageSizeChanged.emit(e);
17+
}
18+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './shared-pn.service';
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import {HttpClient} from '@angular/common/http';
2+
import {Injectable} from '@angular/core';
3+
import {Router} from '@angular/router';
4+
import {ToastrService} from 'ngx-toastr';
5+
import {
6+
ApplicationPageModel,
7+
PageSettingsModel
8+
} from 'src/app/common/models';
9+
import {BaseService} from 'src/app/common/services/base.service';
10+
11+
@Injectable()
12+
export class SharedPnService extends BaseService {
13+
constructor(private _http: HttpClient, router: Router,
14+
toastrService: ToastrService) {
15+
super(_http, router, toastrService);
16+
}
17+
18+
initLocalPageSettings(localStorageItemName: string, item: ApplicationPageModel) {
19+
if (!localStorage.getItem(localStorageItemName)) {
20+
localStorage.setItem(localStorageItemName, JSON.stringify(item));
21+
}
22+
}
23+
24+
getLocalPageSettings(localStorageItemName: string): ApplicationPageModel {
25+
const localPagesSettings = localStorage.getItem(localStorageItemName);
26+
return <ApplicationPageModel> JSON.parse(localPagesSettings);
27+
}
28+
29+
updateLocalPageSettings(localStorageItemName: string, model: PageSettingsModel) {
30+
const localPagesSettings = <ApplicationPageModel> JSON.parse(localStorage.getItem(localStorageItemName));
31+
localPagesSettings.settings = model;
32+
localStorage.setItem(localStorageItemName, JSON.stringify(localPagesSettings));
33+
}
34+
}
Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
11
import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
3+
import {FormsModule} from '@angular/forms';
4+
import {NgSelectModule} from '@ng-select/ng-select';
35
import {TranslateModule} from '@ngx-translate/core';
4-
import {PaginationPnComponent, PellPnComponent, SpinnerPnComponent, SubheaderPnComponent} from './components';
6+
import {SharedPnService} from 'src/app/plugins/modules/shared/services';
7+
import {
8+
PageSizePnComponent,
9+
PaginationPnComponent,
10+
PellPnComponent,
11+
SpinnerPnComponent,
12+
SubheaderPnComponent
13+
} from './components';
514

615
@NgModule({
716
imports: [
817
CommonModule,
9-
TranslateModule
18+
TranslateModule,
19+
NgSelectModule,
20+
FormsModule
1021
],
11-
declarations: [SpinnerPnComponent, PaginationPnComponent, SubheaderPnComponent, PellPnComponent],
12-
exports: [SpinnerPnComponent, PaginationPnComponent, SubheaderPnComponent, PellPnComponent]
22+
declarations: [SpinnerPnComponent, PaginationPnComponent, SubheaderPnComponent, PellPnComponent, PageSizePnComponent],
23+
exports: [SpinnerPnComponent, PaginationPnComponent, SubheaderPnComponent, PellPnComponent, PageSizePnComponent],
24+
providers: [SharedPnService]
1325
})
1426
export class SharedPnModule { }

0 commit comments

Comments
 (0)