5 changed files with 164 additions and 6 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,74 @@ |
|||
<!-- |
|||
|
|||
Copyright © 2016-2022 The Thingsboard Authors |
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0 |
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
|
|||
--> |
|||
<section class="tb-widget-settings" [formGroup]="entitiesHierarchyWidgetSettingsForm" fxLayout="column"> |
|||
<fieldset class="fields-group"> |
|||
<legend class="group-title" translate>widgets.entities-hierarchy.hierarchy-data-settings</legend> |
|||
<tb-js-func formControlName="nodeRelationQueryFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.relations-query-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/node_relation_query_fn"> |
|||
</tb-js-func> |
|||
<tb-js-func formControlName="nodeHasChildrenFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.has-children-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/node_has_children_fn"> |
|||
</tb-js-func> |
|||
</fieldset> |
|||
<fieldset class="fields-group"> |
|||
<legend class="group-title" translate>widgets.entities-hierarchy.node-state-settings</legend> |
|||
<tb-js-func formControlName="nodeOpenedFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.node-opened-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/node_opened_fn"> |
|||
</tb-js-func> |
|||
<tb-js-func formControlName="nodeDisabledFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.node-disabled-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/node_disabled_fn"> |
|||
</tb-js-func> |
|||
</fieldset> |
|||
<fieldset class="fields-group"> |
|||
<legend class="group-title" translate>widgets.entities-hierarchy.display-settings</legend> |
|||
<tb-js-func formControlName="nodeIconFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.node-icon-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/node_icon_fn"> |
|||
</tb-js-func> |
|||
<tb-js-func formControlName="nodeTextFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.node-text-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/node_text_fn"> |
|||
</tb-js-func> |
|||
</fieldset> |
|||
<fieldset class="fields-group"> |
|||
<legend class="group-title" translate>widgets.entities-hierarchy.sort-settings</legend> |
|||
<tb-js-func formControlName="nodesSortFunction" |
|||
[globalVariables]="functionScopeVariables" |
|||
[functionArgs]="['nodeCtx1', 'nodeCtx2']" |
|||
functionTitle="{{ 'widgets.entities-hierarchy.nodes-sort-function' | translate }}" |
|||
helpId="widget/lib/entities_hierarchy/nodes_sort_fn"> |
|||
</tb-js-func> |
|||
</fieldset> |
|||
</section> |
|||
|
|||
@ -0,0 +1,64 @@ |
|||
///
|
|||
/// Copyright © 2016-2022 The Thingsboard Authors
|
|||
///
|
|||
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|||
/// you may not use this file except in compliance with the License.
|
|||
/// You may obtain a copy of the License at
|
|||
///
|
|||
/// http://www.apache.org/licenses/LICENSE-2.0
|
|||
///
|
|||
/// Unless required by applicable law or agreed to in writing, software
|
|||
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|||
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
/// See the License for the specific language governing permissions and
|
|||
/// limitations under the License.
|
|||
///
|
|||
|
|||
import { Component } from '@angular/core'; |
|||
import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; |
|||
import { FormBuilder, FormGroup } from '@angular/forms'; |
|||
import { Store } from '@ngrx/store'; |
|||
import { AppState } from '@core/core.state'; |
|||
|
|||
@Component({ |
|||
selector: 'tb-entities-hierarchy-widget-settings', |
|||
templateUrl: './entities-hierarchy-widget-settings.component.html', |
|||
styleUrls: ['./widget-settings.scss'] |
|||
}) |
|||
export class EntitiesHierarchyWidgetSettingsComponent extends WidgetSettingsComponent { |
|||
|
|||
entitiesHierarchyWidgetSettingsForm: FormGroup; |
|||
|
|||
constructor(protected store: Store<AppState>, |
|||
private fb: FormBuilder) { |
|||
super(store); |
|||
} |
|||
|
|||
protected settingsForm(): FormGroup { |
|||
return this.entitiesHierarchyWidgetSettingsForm; |
|||
} |
|||
|
|||
protected defaultSettings(): WidgetSettings { |
|||
return { |
|||
nodeRelationQueryFunction: '', |
|||
nodeHasChildrenFunction: '', |
|||
nodeOpenedFunction: '', |
|||
nodeDisabledFunction: '', |
|||
nodeIconFunction: '', |
|||
nodeTextFunction: '', |
|||
nodesSortFunction: '', |
|||
}; |
|||
} |
|||
|
|||
protected onSettingsSet(settings: WidgetSettings) { |
|||
this.entitiesHierarchyWidgetSettingsForm = this.fb.group({ |
|||
nodeRelationQueryFunction: [settings.nodeRelationQueryFunction, []], |
|||
nodeHasChildrenFunction: [settings.nodeHasChildrenFunction, []], |
|||
nodeOpenedFunction: [settings.nodeOpenedFunction, []], |
|||
nodeDisabledFunction: [settings.nodeDisabledFunction, []], |
|||
nodeIconFunction: [settings.nodeIconFunction, []], |
|||
nodeTextFunction: [settings.nodeTextFunction, []], |
|||
nodesSortFunction: [settings.nodesSortFunction, []] |
|||
}); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue