Skip to content

Commit 991cf08

Browse files
Merge pull request #2464 from IgniteUI/ddimitrov/formattedFilteringStrategy
Add Formatted Filtering Strategy Samples
2 parents db8a3ad + 9954301 commit 991cf08

21 files changed

+220
-8
lines changed

live-editing/configs/GridConfigGenerator.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1234,6 +1234,16 @@ export class GridConfigGenerator implements IConfigGenerator {
12341234
})
12351235
}));
12361236

1237+
configs.push(new Config({
1238+
component: 'GridFormattedFilteringStrategyComponent',
1239+
additionalFiles: ["/src/app/directives/prevent-scroll.directive.ts", "/src/app/data/nwindData.ts"],
1240+
appModuleConfig: new AppModuleConfig({
1241+
imports: ['GridFormattedFilteringStrategyComponent', 'IgxGridModule', 'IgxPreventDocumentScrollModule'],
1242+
ngDeclarations: ['GridFormattedFilteringStrategyComponent'],
1243+
ngImports: ['IgxPreventDocumentScrollModule', 'IgxGridModule']
1244+
})
1245+
}));
1246+
12371247
return configs;
12381248
}
12391249
}

live-editing/configs/HierarchicalGridConfigGenerator.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -719,15 +719,15 @@ export class HierarchicalGridConfigGenerator implements IConfigGenerator {
719719

720720
const hGridSaveStateSampleConfig = new Config({
721721
additionalFiles: [
722-
"/src/app/directives/prevent-scroll.directive.ts",
722+
"/src/app/directives/prevent-scroll.directive.ts",
723723
"/src/app/hierarchical-grid/data.ts",
724724
"/src/app/hierarchical-grid/hierarchical-grid-save-state/about.component.ts",
725725
"/src/app/hierarchical-grid/hierarchical-grid-save-state/about.component.html"
726726
],
727727
appModuleConfig: new AppModuleConfig({
728728
imports: ['IgxHierarchicalGridModule', 'HGridSaveStateComponent', 'HGridAboutComponent', 'IgxPreventDocumentScrollModule', 'Router', 'RouterModule'],
729729
ngDeclarations: ['HGridSaveStateComponent', 'HGridAboutComponent'],
730-
ngImports: ['IgxPreventDocumentScrollModule', 'IgxHierarchicalGridModule',
730+
ngImports: ['IgxPreventDocumentScrollModule', 'IgxHierarchicalGridModule',
731731
"RouterModule.forRoot([\{component: HGridAboutComponent, path: 'hGrid-state-about'},\{component: HGridSaveStateComponent, path: 'hGrid-state'},\{ path: '', redirectTo: '/hGrid-state', pathMatch: 'full' }])"]
732732
}),
733733
component: 'HGridSaveStateComponent'
@@ -781,6 +781,17 @@ export class HierarchicalGridConfigGenerator implements IConfigGenerator {
781781
component: 'HGridAddRowSampleComponent'
782782
}));
783783

784+
configs.push(new Config({
785+
additionalFiles: ["/src/app/directives/prevent-scroll.directive.ts", "/src/app/hierarchical-grid/data.ts"],
786+
appModuleConfig: new AppModuleConfig({
787+
imports: ['IgxHierarchicalGridModule', 'HGridFormattedFilteringStrategyComponent', 'IgxPreventDocumentScrollModule'],
788+
ngDeclarations: ['HGridFormattedFilteringStrategyComponent'],
789+
ngImports: ['IgxPreventDocumentScrollModule', 'IgxHierarchicalGridModule']
790+
}),
791+
component: 'HGridFormattedFilteringStrategyComponent'
792+
}));
793+
794+
784795
return configs;
785796
}
786797
}

live-editing/configs/TreeGridConfigGenerator.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,6 +1004,17 @@ export class TreeGridConfigGenerator implements IConfigGenerator {
10041004
shortenComponentPathBy: "/tree-grid/"
10051005
}));
10061006

1007+
configs.push(new Config({
1008+
additionalFiles: ["/src/app/directives/prevent-scroll.directive.ts", "/src/app/tree-grid/data/foods.ts"],
1009+
appModuleConfig: new AppModuleConfig({
1010+
imports: ['IgxPreventDocumentScrollModule', 'IgxTreeGridModule', 'TreeGridFormattedFilteringStrategyComponent'],
1011+
ngDeclarations: ['TreeGridFormattedFilteringStrategyComponent'],
1012+
ngImports: ['IgxPreventDocumentScrollModule', 'IgxTreeGridModule']
1013+
}),
1014+
component: 'TreeGridFormattedFilteringStrategyComponent',
1015+
shortenComponentPathBy: "/tree-grid/"
1016+
}));
1017+
10071018
return configs;
10081019
}
10091020
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<div class="grid__wrapper">
2+
<igx-grid igxPreventDocumentScroll #grid1 [data]="data" [autoGenerate]="false" height="600px" width="100%"
3+
[allowFiltering]="true" [filterMode]="'excelStyleFilter'" [filterStrategy]="filterStrategy">
4+
<igx-column field="ProductName" header="Product Name" [sortable]="true" [disableHiding]="true" [dataType]="'string'">
5+
</igx-column>
6+
<igx-column field="QuantityPerUnit" header="Quantity Per Unit" [sortable]="true" [disableHiding]="true" [dataType]="'string'">
7+
</igx-column>
8+
<igx-column field="UnitPrice" header="Unit Price Category" [sortable]="true" [disableHiding]="true" dataType="string" [formatter]="formatPrice">
9+
</igx-column>
10+
<igx-column field="OrderDate" header="Order Date" [sortable]="true" [disableHiding]="true" [dataType]="'date'">
11+
</igx-column>
12+
<igx-column field="Discontinued" header="Discontinued" [sortable]="true" [disableHiding]="true" [dataType]="'boolean'">
13+
<ng-template igxCell let-cell="cell" let-val>
14+
<img *ngIf="val" src="assets/images/grid/active.png" title="Continued" alt="Continued" />
15+
<img *ngIf="!val" src="assets/images/grid/expired.png" title="Discontinued" alt="Discontinued" />
16+
</ng-template>
17+
</igx-column>
18+
</igx-grid>
19+
</div>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.grid__wrapper {
2+
margin: 16px;
3+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { Component, OnInit, ViewChild } from "@angular/core";
2+
import { IgxGridComponent, FormattedValuesFilteringStrategy } from "igniteui-angular";
3+
import { DATA } from "../../data/nwindData";
4+
5+
@Component({
6+
selector: "grid-sample",
7+
styleUrls: ["./grid-formatted-filtering-strategy.component.scss"],
8+
templateUrl: "grid-formatted-filtering-strategy.component.html"
9+
})
10+
export class GridFormattedFilteringStrategyComponent implements OnInit {
11+
@ViewChild("grid1", { read: IgxGridComponent, static: true })
12+
public grid1: IgxGridComponent;
13+
14+
public data: any[];
15+
public filterStrategy = new FormattedValuesFilteringStrategy();
16+
17+
public ngOnInit(): void {
18+
this.data = DATA;
19+
}
20+
21+
public formatPrice(value: number) {
22+
return value < 15 ? 'low' : value > 50 ? 'high' : 'medium';
23+
}
24+
}

src/app/grid/grid-routes-data.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,5 +107,6 @@ export const gridsRoutesData = {
107107
"grid-sorting-indicators": {displayName: "Grid Sorting Indicators", parentName: "Grid"},
108108
"exporting-visualization": {displayName: "Exporting Visualization", parentName: "Grid"},
109109
"grid-editing-lifecycle": {displayName: "Grid editing lifecycle", parentName: "Grid"},
110-
"grid-select": {displayName: "Grid with Select as Editor Provider", parentName: "Grid"}
110+
"grid-select": {displayName: "Grid with Select as Editor Provider", parentName: "Grid"},
111+
"grid-formatted-filtering-strategy": { displayName: "Grid Formatted Filtering Strategy", parentName: "Grid" }
111112
};

src/app/grid/grids-routing.module.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ import {
112112
import { GridSortingIndicatorsComponent } from './grid-sorting-indicators/grid-sorting-indicators.component';
113113
import { GridExportVisualizationComponent } from "./grid-export-visualization/grid-export-visualization.component";
114114
import { GridSelectComponent } from './grid-select/grid-select-sample.component'
115+
import { GridFormattedFilteringStrategyComponent } from "./grid-formatted-filtering-strategy/grid-formatted-filtering-strategy.component";
115116
// tslint:enable:max-line-length
116117

117118
export const gridsRoutes: Routes = [
@@ -644,6 +645,11 @@ export const gridsRoutes: Routes = [
644645
component: GridSelectComponent,
645646
data: gridsRoutesData["grid-select"],
646647
path: "grid-select"
648+
},
649+
{
650+
component: GridFormattedFilteringStrategyComponent,
651+
data: gridsRoutesData["grid-formatted-filtering-strategy"],
652+
path: "grid-formatted-filtering-strategy"
647653
}
648654
];
649655

src/app/grid/grids.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ import { GridMultiColumnHeadersComponent } from "./multi-column-headers/multi-co
121121
import { GridSortingIndicatorsComponent } from './grid-sorting-indicators/grid-sorting-indicators.component';
122122
import { GridExportVisualizationComponent } from './grid-export-visualization/grid-export-visualization.component';
123123
import {GridSelectComponent} from './grid-select/grid-select-sample.component';
124+
import { GridFormattedFilteringStrategyComponent } from "./grid-formatted-filtering-strategy/grid-formatted-filtering-strategy.component";
124125

125126
@NgModule({
126127
declarations: [
@@ -232,7 +233,8 @@ import {GridSelectComponent} from './grid-select/grid-select-sample.component';
232233
GridSortingIndicatorsComponent,
233234
GridExportVisualizationComponent,
234235
GridEditingLifecycleComponent,
235-
GridSelectComponent
236+
GridSelectComponent,
237+
GridFormattedFilteringStrategyComponent
236238
],
237239
imports: [
238240
CommonModule,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<div class="wrapper">
2+
<igx-hierarchical-grid igxPreventDocumentScroll class="hgrid" [data]="localdata" [autoGenerate]="false"
3+
[allowFiltering]='true' filterMode="excelStyleFilter" [filterStrategy]="filterStrategy"
4+
height="600px" [width]="'100%'" #hierarchicalGrid>
5+
<igx-column field="Artist" [sortable]="true" [disableHiding]="true"></igx-column>
6+
<igx-column field="Debut" header="Debut Decade" [sortable]="true" [disableHiding]="true" [formatter]="decadeFormatter"></igx-column>
7+
<igx-column field="GrammyNominations" header="Grammy Nominations" dataType="number" [sortable]="true" [disableHiding]="true"></igx-column>
8+
<igx-column field="GrammyAwards" header="Grammy Awards" dataType="number" [sortable]="true" [disableHiding]="true"></igx-column>
9+
10+
<igx-row-island [key]="'Albums'" [autoGenerate]="false" [allowFiltering]='true' filterMode="excelStyleFilter">
11+
<igx-column field="Album" [sortable]="true" [disableHiding]="true"></igx-column>
12+
<igx-column field="LaunchDate" header="Launch Date" [sortable]="true" [disableHiding]="true" [dataType]="'date'"></igx-column>
13+
<igx-column field="BillboardReview" header="Billboard Review" [sortable]="true" [disableHiding]="true" dataType="number"></igx-column>
14+
<igx-column field="USBillboard200" header="US Billboard 200" [sortable]="true" [disableHiding]="true" dataType="number"></igx-column>
15+
<igx-row-island [key]="'Songs'" [autoGenerate]="false" >
16+
<igx-column field="Number" header="No."></igx-column>
17+
<igx-column field="Title"></igx-column>
18+
<igx-column field="Released" dataType="date"></igx-column>
19+
<igx-column field="Genre"></igx-column>
20+
</igx-row-island>
21+
</igx-row-island>
22+
23+
<igx-row-island [key]="'Tours'" [autoGenerate]="false">
24+
<igx-column field="Tour"></igx-column>
25+
<igx-column field="StartedOn" header="Started on"></igx-column>
26+
<igx-column field="Location"></igx-column>
27+
<igx-column field="Headliner"></igx-column>
28+
</igx-row-island>
29+
</igx-hierarchical-grid>
30+
</div>

0 commit comments

Comments
 (0)