Browse Source

Merge branch 'master' into release-3.6

release-3.6
Igor Kulikov 3 years ago
parent
commit
7183e3193e
  1. 4
      ui-ngx/src/app/core/utils.ts
  2. 6
      ui-ngx/src/app/modules/home/components/widget/config/basic/chart/doughnut-basic-config.component.ts
  3. 2
      ui-ngx/src/app/modules/home/components/widget/lib/chart/doughnut-widget.component.ts
  4. 2
      ui-ngx/src/app/modules/home/components/widget/lib/chart/doughnut-widget.models.ts
  5. 10
      ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/doughnut-widget-settings.component.ts
  6. 16
      ui-ngx/src/app/modules/home/models/dashboard-component.models.ts

4
ui-ngx/src/app/core/utils.ts

@ -817,3 +817,7 @@ export const getOS = (): string => {
export const camelCase = (str: string): string => { export const camelCase = (str: string): string => {
return _.camelCase(str); return _.camelCase(str);
}; };
export const convertKeysToCamelCase = (obj: Record<string, any>): Record<string, any> => {
return _.mapKeys(obj, (value, key) => _.camelCase(key));
};

6
ui-ngx/src/app/modules/home/components/widget/config/basic/chart/doughnut-basic-config.component.ts

@ -40,7 +40,7 @@ import {
doughnutLayoutImages, doughnutLayoutImages,
doughnutLayouts, doughnutLayouts,
doughnutLayoutTranslations, doughnutLayoutTranslations,
DoughnutLegendPosition, doughnutLegendPositions,
doughnutLegendPositionTranslations, doughnutLegendPositionTranslations,
DoughnutTooltipValueType, DoughnutTooltipValueType,
doughnutTooltipValueTypes, doughnutTooltipValueTypes,
@ -83,7 +83,7 @@ export class DoughnutBasicConfigComponent extends BasicWidgetConfigComponent {
doughnutLayoutImageMap: Map<DoughnutLayout, string>; doughnutLayoutImageMap: Map<DoughnutLayout, string>;
doughnutLegendPositions: DoughnutLegendPosition[]; doughnutLegendPositions = doughnutLegendPositions;
doughnutLegendPositionTranslationMap = doughnutLegendPositionTranslations; doughnutLegendPositionTranslationMap = doughnutLegendPositionTranslations;
@ -116,8 +116,6 @@ export class DoughnutBasicConfigComponent extends BasicWidgetConfigComponent {
const params = widgetConfig.typeParameters as any; const params = widgetConfig.typeParameters as any;
this.horizontal = isDefinedAndNotNull(params.horizontal) ? params.horizontal : false; this.horizontal = isDefinedAndNotNull(params.horizontal) ? params.horizontal : false;
this.doughnutLayoutImageMap = this.horizontal ? horizontalDoughnutLayoutImages : doughnutLayoutImages; this.doughnutLayoutImageMap = this.horizontal ? horizontalDoughnutLayoutImages : doughnutLayoutImages;
this.doughnutLegendPositions = this.horizontal ? [DoughnutLegendPosition.left, DoughnutLegendPosition.right] :
[DoughnutLegendPosition.top, DoughnutLegendPosition.bottom];
super.setupConfig(widgetConfig); super.setupConfig(widgetConfig);
} }

2
ui-ngx/src/app/modules/home/components/widget/lib/chart/doughnut-widget.component.ts

@ -264,7 +264,7 @@ export class DoughnutWidgetComponent implements OnInit, OnDestroy, AfterViewInit
if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) {
value = tsValue[1]; value = tsValue[1];
dataItem.hasValue = true; dataItem.hasValue = true;
dataItem.value = value; dataItem.value = Number(value);
} else { } else {
dataItem.hasValue = false; dataItem.hasValue = false;
dataItem.value = 0; dataItem.value = 0;

2
ui-ngx/src/app/modules/home/components/widget/lib/chart/doughnut-widget.models.ts

@ -57,6 +57,8 @@ export enum DoughnutLegendPosition {
right = 'right' right = 'right'
} }
export const doughnutLegendPositions = Object.keys(DoughnutLegendPosition) as DoughnutLegendPosition[];
export const doughnutLegendPositionTranslations = new Map<DoughnutLegendPosition, string>( export const doughnutLegendPositionTranslations = new Map<DoughnutLegendPosition, string>(
[ [
[DoughnutLegendPosition.top, 'widgets.doughnut.legend-position-top'], [DoughnutLegendPosition.top, 'widgets.doughnut.legend-position-top'],

10
ui-ngx/src/app/modules/home/components/widget/lib/settings/chart/doughnut-widget-settings.component.ts

@ -14,20 +14,19 @@
/// limitations under the License. /// limitations under the License.
/// ///
import { Component, Injector } from '@angular/core'; import { Component } from '@angular/core';
import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models';
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { AppState } from '@core/core.state'; import { AppState } from '@core/core.state';
import { formatValue, isDefinedAndNotNull } from '@core/utils'; import { formatValue, isDefinedAndNotNull } from '@core/utils';
import { getDataKey } from '@shared/models/widget-settings.models';
import { import {
doughnutDefaultSettings, doughnutDefaultSettings,
DoughnutLayout, DoughnutLayout,
doughnutLayoutImages, doughnutLayoutImages,
doughnutLayouts, doughnutLayouts,
doughnutLayoutTranslations, doughnutLayoutTranslations,
DoughnutLegendPosition, doughnutLegendPositions,
doughnutLegendPositionTranslations, doughnutLegendPositionTranslations,
DoughnutTooltipValueType, DoughnutTooltipValueType,
doughnutTooltipValueTypes, doughnutTooltipValueTypes,
@ -56,7 +55,7 @@ export class DoughnutWidgetSettingsComponent extends WidgetSettingsComponent {
doughnutLayoutImageMap: Map<DoughnutLayout, string>; doughnutLayoutImageMap: Map<DoughnutLayout, string>;
doughnutLegendPositions: DoughnutLegendPosition[]; doughnutLegendPositions = doughnutLegendPositions;
doughnutLegendPositionTranslationMap = doughnutLegendPositionTranslations; doughnutLegendPositionTranslationMap = doughnutLegendPositionTranslations;
@ -71,7 +70,6 @@ export class DoughnutWidgetSettingsComponent extends WidgetSettingsComponent {
tooltipValuePreviewFn = this._tooltipValuePreviewFn.bind(this); tooltipValuePreviewFn = this._tooltipValuePreviewFn.bind(this);
constructor(protected store: Store<AppState>, constructor(protected store: Store<AppState>,
private $injector: Injector,
private fb: UntypedFormBuilder) { private fb: UntypedFormBuilder) {
super(store); super(store);
} }
@ -84,8 +82,6 @@ export class DoughnutWidgetSettingsComponent extends WidgetSettingsComponent {
const params = widgetConfig.typeParameters as any; const params = widgetConfig.typeParameters as any;
this.horizontal = isDefinedAndNotNull(params.horizontal) ? params.horizontal : false; this.horizontal = isDefinedAndNotNull(params.horizontal) ? params.horizontal : false;
this.doughnutLayoutImageMap = this.horizontal ? horizontalDoughnutLayoutImages : doughnutLayoutImages; this.doughnutLayoutImageMap = this.horizontal ? horizontalDoughnutLayoutImages : doughnutLayoutImages;
this.doughnutLegendPositions = this.horizontal ? [DoughnutLegendPosition.left, DoughnutLegendPosition.right] :
[DoughnutLegendPosition.top, DoughnutLegendPosition.bottom];
} }
protected defaultSettings(): WidgetSettings { protected defaultSettings(): WidgetSettings {

16
ui-ngx/src/app/modules/home/models/dashboard-component.models.ts

@ -27,7 +27,15 @@ import { WidgetLayout, WidgetLayouts } from '@app/shared/models/dashboard.models
import { IDashboardWidget, WidgetAction, WidgetContext, WidgetHeaderAction } from './widget-component.models'; import { IDashboardWidget, WidgetAction, WidgetContext, WidgetHeaderAction } from './widget-component.models';
import { Timewindow } from '@shared/models/time/time.models'; import { Timewindow } from '@shared/models/time/time.models';
import { Observable, of, Subject } from 'rxjs'; import { Observable, of, Subject } from 'rxjs';
import { formattedDataFormDatasourceData, guid, isDefined, isEqual, isUndefined } from '@app/core/utils'; import {
convertKeysToCamelCase,
formattedDataFormDatasourceData,
guid,
isDefined,
isEmpty,
isEqual,
isUndefined
} from '@app/core/utils';
import { IterableDiffer, KeyValueDiffer } from '@angular/core'; import { IterableDiffer, KeyValueDiffer } from '@angular/core';
import { IAliasController, IStateController } from '@app/core/api/widget-api.models'; import { IAliasController, IStateController } from '@app/core/api/widget-api.models';
import { enumerable } from '@shared/decorators/enumerable'; import { enumerable } from '@shared/decorators/enumerable';
@ -479,9 +487,9 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget {
backgroundColor: this.backgroundColor, backgroundColor: this.backgroundColor,
padding: this.padding, padding: this.padding,
margin: this.margin, margin: this.margin,
borderRadius: this.borderRadius || 'unset' }; borderRadius: this.borderRadius };
if (this.widget.config.widgetStyle) { if (!isEmpty(this.widget.config.widgetStyle)) {
this.style = {...this.style, ...this.widget.config.widgetStyle}; this.style = {...this.style, ...convertKeysToCamelCase(this.widget.config.widgetStyle)};
} }
this.showWidgetTitlePanel = this.widgetContext.hideTitlePanel ? false : this.showWidgetTitlePanel = this.widgetContext.hideTitlePanel ? false :

Loading…
Cancel
Save