Commit db9b5141 by Ooh-Ao

datamanager

parent cd544c60
...@@ -59,19 +59,6 @@ ...@@ -59,19 +59,6 @@
min-height: 600px; /* min-h-[600px] */ min-height: 600px; /* min-h-[600px] */
} }
/* Syncfusion specific styles */
.e-dashboardlayout .e-panel .e-panel-container .e-panel-header {
font-size: 16px;
font-weight: bold;
}
.e-dashboardlayout .e-panel .e-panel-container .e-panel-content {
padding: 10px;
text-align: center;
font-style: italic;
color: #888;
}
/* Button styles (assuming ti-btn is a base class) */ /* Button styles (assuming ti-btn is a base class) */
.ti-btn { .ti-btn {
font-weight: bold; font-weight: bold;
...@@ -124,4 +111,4 @@ ...@@ -124,4 +111,4 @@
&:hover { &:hover {
background-color: #4b5563; background-color: #4b5563;
} }
} }
\ No newline at end of file
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
<!-- Chart --> <!-- Chart -->
<ejs-chart *ngIf="!isLoading && !hasError" [primaryXAxis]="primaryXAxis" [primaryYAxis]="primaryYAxis"> <ejs-chart *ngIf="!isLoading && !hasError" [primaryXAxis]="primaryXAxis" [primaryYAxis]="primaryYAxis">
<e-series-collection> <e-series-collection>
<e-series [dataSource]="chartData" type="Column" xName="x" yName="y" name="Data"></e-series> <e-series [dataSource]="chartData.executeLocal(query)" type="Column" xName="x" yName="y" name="Data"></e-series>
</e-series-collection> </e-series-collection>
</ejs-chart> </ejs-chart>
</div> </div>
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { ChartModule, ColumnSeriesService, CategoryService, LegendService, TooltipService, DataLabelService } from '@syncfusion/ej2-angular-charts'; import { ChartModule, ColumnSeriesService, CategoryService, LegendService, TooltipService, DataLabelService } from '@syncfusion/ej2-angular-charts';
import { DataManager, Query } from '@syncfusion/ej2-data'; // Added DataManager and Query import
import { DashboardStateService } from '../../services/dashboard-state.service'; import { DashboardStateService } from '../../services/dashboard-state.service';
import { BaseWidgetComponent } from '../base-widget.component'; import { BaseWidgetComponent } from '../base-widget.component';
...@@ -12,27 +13,29 @@ import { BaseWidgetComponent } from '../base-widget.component'; ...@@ -12,27 +13,29 @@ import { BaseWidgetComponent } from '../base-widget.component';
templateUrl: './syncfusion-chart-widget.component.html', templateUrl: './syncfusion-chart-widget.component.html',
}) })
export class SyncfusionChartWidgetComponent extends BaseWidgetComponent { export class SyncfusionChartWidgetComponent extends BaseWidgetComponent {
public chartData: Object[]; public chartData: DataManager = new DataManager([]); // Changed type and initialized
public primaryXAxis: Object; public primaryXAxis: Object;
public primaryYAxis: Object; public primaryYAxis: Object;
public query: Query = new Query(); // Added Query instance
constructor(protected override dashboardStateService: DashboardStateService) { constructor(protected override dashboardStateService: DashboardStateService) {
super(dashboardStateService); super(dashboardStateService);
} }
onDataUpdate(data: any[]): void { onDataUpdate(data: any[]): void {
this.chartData = data.map(item => ({ x: item[this.config.xField], y: item[this.config.yField] })); const dm = new DataManager(data);
this.chartData = new DataManager(dm.executeLocal(new Query()).map((item: any) => ({ x: item[this.config.xField], y: item[this.config.yField] })));
this.primaryXAxis = { valueType: 'Category', title: this.config.xAxisTitle || '' }; this.primaryXAxis = { valueType: 'Category', title: this.config.xAxisTitle || '' };
this.primaryYAxis = { title: this.config.yAxisTitle || '' }; this.primaryYAxis = { title: this.config.yAxisTitle || '' };
} }
onReset(): void { onReset(): void {
this.title = 'Syncfusion Chart (Default)'; this.title = 'Syncfusion Chart (Default)';
this.chartData = [ this.chartData = new DataManager([
{ x: 'Jan', y: 35 }, { x: 'Feb', y: 28 }, { x: 'Jan', y: 35 }, { x: 'Feb', y: 28 },
{ x: 'Mar', y: 34 }, { x: 'Apr', y: 32 }, { x: 'Mar', y: 34 }, { x: 'Apr', y: 32 },
{ x: 'May', y: 40 }, { x: 'Jun', y: 30 }, { x: 'May', y: 40 }, { x: 'Jun', y: 30 },
]; ]);
this.primaryXAxis = { valueType: 'Category', title: 'Month' }; this.primaryXAxis = { valueType: 'Category', title: 'Month' };
this.primaryYAxis = { title: 'Sales' }; this.primaryYAxis = { title: 'Sales' };
} }
......
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { GridModule, PageService, SortService, FilterService, GroupService } from '@syncfusion/ej2-angular-grids'; import { GridModule, PageService, SortService, FilterService, GroupService } from '@syncfusion/ej2-angular-grids';
import { DataManager, UrlAdaptor } from '@syncfusion/ej2-data'; // Added DataManager import
import { DashboardStateService } from '../../services/dashboard-state.service'; import { DashboardStateService } from '../../services/dashboard-state.service';
import { BaseWidgetComponent } from '../base-widget.component'; import { BaseWidgetComponent } from '../base-widget.component';
...@@ -12,7 +13,7 @@ import { BaseWidgetComponent } from '../base-widget.component'; ...@@ -12,7 +13,7 @@ import { BaseWidgetComponent } from '../base-widget.component';
templateUrl: './syncfusion-datagrid-widget.component.html', templateUrl: './syncfusion-datagrid-widget.component.html',
}) })
export class SyncfusionDatagridWidgetComponent extends BaseWidgetComponent { export class SyncfusionDatagridWidgetComponent extends BaseWidgetComponent {
public data: object[] = []; public data: DataManager = new DataManager([]); // Changed type and initialized
public columns: any[] = []; public columns: any[] = [];
public pageSettings: Object = { pageSize: 10 }; public pageSettings: Object = { pageSize: 10 };
...@@ -21,12 +22,12 @@ export class SyncfusionDatagridWidgetComponent extends BaseWidgetComponent { ...@@ -21,12 +22,12 @@ export class SyncfusionDatagridWidgetComponent extends BaseWidgetComponent {
} }
onDataUpdate(data: any[]): void { onDataUpdate(data: any[]): void {
this.data = data; this.data = new DataManager(data); // Initialize DataManager with the data
if (this.config.columns && this.config.columns.length > 0) { if (this.config.columns && this.config.columns.length > 0) {
this.columns = this.config.columns; this.columns = this.config.columns;
} else if (this.data.length > 0) { } else if (data.length > 0) { // Changed this.data.length to data.length
// Auto-generate columns if not provided in config // Auto-generate columns if not provided in config
this.columns = Object.keys(this.data[0]).map(key => ({ this.columns = Object.keys(data[0]).map(key => ({ // Changed this.data[0] to data[0]
field: key, field: key,
headerText: this.formatHeader(key), headerText: this.formatHeader(key),
width: 150 width: 150
...@@ -36,7 +37,7 @@ export class SyncfusionDatagridWidgetComponent extends BaseWidgetComponent { ...@@ -36,7 +37,7 @@ export class SyncfusionDatagridWidgetComponent extends BaseWidgetComponent {
onReset(): void { onReset(): void {
this.title = 'Data Grid (Default)'; this.title = 'Data Grid (Default)';
this.data = []; this.data = new DataManager([]); // Initialize with empty DataManager
this.columns = [{ field: 'Message', headerText: 'Please select a dataset' }]; this.columns = [{ field: 'Message', headerText: 'Please select a dataset' }];
} }
......
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { PivotViewModule, IDataSet, FieldListService, CalculatedFieldService, ToolbarService, GroupingBarService, ConditionalFormattingService } from '@syncfusion/ej2-angular-pivotview'; import { PivotViewModule, IDataSet, FieldListService, CalculatedFieldService, ToolbarService, GroupingBarService, ConditionalFormattingService } from '@syncfusion/ej2-angular-pivotview';
import { DataManager, UrlAdaptor } from '@syncfusion/ej2-data'; // Added DataManager import
import { DashboardStateService } from '../../services/dashboard-state.service'; import { DashboardStateService } from '../../services/dashboard-state.service';
import { BaseWidgetComponent } from '../base-widget.component'; import { BaseWidgetComponent } from '../base-widget.component';
...@@ -13,12 +14,19 @@ import { BaseWidgetComponent } from '../base-widget.component'; ...@@ -13,12 +14,19 @@ import { BaseWidgetComponent } from '../base-widget.component';
}) })
export class SyncfusionPivotWidgetComponent extends BaseWidgetComponent { export class SyncfusionPivotWidgetComponent extends BaseWidgetComponent {
public dataSourceSettings: { public dataSourceSettings: {
dataSource: IDataSet[]; dataSource: DataManager; // Changed type to DataManager
expandAll: boolean; expandAll: boolean;
rows: any[]; rows: any[];
columns: any[]; columns: any[];
values: any[]; values: any[];
filters: any[]; filters: any[];
} = {
dataSource: new DataManager([]), // Initialized with empty DataManager
expandAll: false,
rows: [],
columns: [],
values: [],
filters: [],
}; };
constructor(protected override dashboardStateService: DashboardStateService) { constructor(protected override dashboardStateService: DashboardStateService) {
...@@ -27,7 +35,7 @@ export class SyncfusionPivotWidgetComponent extends BaseWidgetComponent { ...@@ -27,7 +35,7 @@ export class SyncfusionPivotWidgetComponent extends BaseWidgetComponent {
onDataUpdate(data: IDataSet[]): void { onDataUpdate(data: IDataSet[]): void {
this.dataSourceSettings = { this.dataSourceSettings = {
dataSource: data, dataSource: new DataManager(data), // Initialize DataManager with the data
expandAll: this.config.expandAll || false, expandAll: this.config.expandAll || false,
rows: this.config.rows || [], rows: this.config.rows || [],
columns: this.config.columns || [], columns: this.config.columns || [],
...@@ -39,11 +47,11 @@ export class SyncfusionPivotWidgetComponent extends BaseWidgetComponent { ...@@ -39,11 +47,11 @@ export class SyncfusionPivotWidgetComponent extends BaseWidgetComponent {
onReset(): void { onReset(): void {
this.title = 'Pivot Table (Default)'; this.title = 'Pivot Table (Default)';
this.dataSourceSettings = { this.dataSourceSettings = {
dataSource: [ dataSource: new DataManager([
{ 'Sold': 31, 'Amount': 52824, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015' }, { 'Sold': 31, 'Amount': 52824, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2015' },
{ 'Sold': 51, 'Amount': 91915, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2016' }, { 'Sold': 51, 'Amount': 91915, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2016' },
{ 'Sold': 90, 'Amount': 173155, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2017' }, { 'Sold': 90, 'Amount': 173155, 'Country': 'France', 'Products': 'Mountain Bikes', 'Year': 'FY 2017' },
], ]),
expandAll: false, expandAll: false,
rows: [{ name: 'Country' }], rows: [{ name: 'Country' }],
columns: [{ name: 'Year' }], columns: [{ name: 'Year' }],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment