@c8y/ng1-modules 1021.80.1 → 1022.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alarmsEventsExplorer/alarmsEventsTimelinesConfig/alarmsEventsTimelinesConfig.html +1 -1
- package/assetPropertyWidget/img/asset-properties-widget-pr.png +0 -0
- package/assetPropertyWidget/views/config.html +1 -1
- package/assetTable/assetTable2/img/asset-table-widget-pr.png +0 -0
- package/assetTable/img/asset-table-widget-pr.png +0 -0
- package/core/core/services/audits.js +1 -1
- package/core/core/services/retentions.js +1 -1
- package/core/core/services/tenant.js +1 -1
- package/core/core/services/user.js +1 -1
- package/core/cumulocity.json +0 -1
- package/core/locales/de.po +472 -720
- package/core/locales/es.po +422 -671
- package/core/locales/fr.po +501 -751
- package/core/locales/ja_JP.po +494 -740
- package/core/locales/ko.po +421 -671
- package/core/locales/nl.po +424 -672
- package/core/locales/pl.po +422 -672
- package/core/locales/pt_BR.po +519 -768
- package/core/locales/zh_CN.po +421 -671
- package/core/locales/zh_TW.po +422 -671
- package/core/ui/properties/propertySelector.html +156 -109
- package/core/ui/views/auditList.html +2 -2
- package/core/ui/views/eventList.html +2 -2
- package/core/ui/views/filePicker.html +1 -1
- package/dataBroker/connectors/connectors.service.js +1 -1
- package/dataPointExplorer/img/data-points-graph-widget-pr.png +0 -0
- package/dataPointExplorer/views/widgetConfig.html +92 -94
- package/device-protocols/object-mapping.component.js +1 -1
- package/device-protocols/object-mapping.html +1 -1
- package/deviceDatabase4/modals/configure-discrete-io.html +1 -1
- package/deviceDatabase4/modals/configure-register.html +1 -1
- package/deviceDetail/cumulocity.json +1 -2
- package/deviceStatusWidget/ownerStatus.html +2 -2
- package/deviceStatusWidget/requiredAvailabilityIntervalSetting.html +4 -4
- package/devicemanagement-eventList/index.js +1 -1
- package/enterpriseEdition/cumulocity.json +0 -13
- package/enterpriseEdition/enterpriseEdition.module.js +1 -1
- package/eventList/img/events-list-widget-pr.png +0 -0
- package/eventList/views/eventListConfig.html +39 -32
- package/export/cumulocity.json +0 -1
- package/export/index.js +1 -1
- package/export/services/config.js +1 -1
- package/htmlWidget/index.js +1 -1
- package/kpi/img/data-points-list-widget-pr.png +0 -0
- package/kpi/views/gaugeConfig.html +28 -34
- package/kpi/views/listConfig.html +14 -18
- package/kpi/views/pieChartConfig.html +30 -36
- package/modbusConfiguration4/fieldbus-device-list.component.js +1 -1
- package/modbusWidget4/widget-config.html +74 -84
- package/package.json +11 -13
- package/propertiesLibrary/index.js +1 -1
- package/roles/list/rolesList.html +0 -2
- package/scada/views/componentConfig.html +23 -23
- package/scada/views/mapping.html +41 -39
- package/smartRules/controllers/add.js +1 -1
- package/smartRules/controllers/list.js +1 -1
- package/smartRules/list/smartRulesList.component.js +1 -1
- package/smartRules/list/smartRulesList.html +2 -2
- package/smartRules/services/smartRules.js +1 -1
- package/smartRules/views/add.html +32 -10
- package/smartRules/views/list.html +4 -3
- package/trafficLightWidget/states-mapping.html +82 -69
- package/administration-config/administration-config.module.js +0 -1
- package/administration-config/cumulocity.json +0 -13
- package/asset-notes/assetNotes.component.js +0 -1
- package/asset-notes/assetNotes.html +0 -93
- package/asset-notes/assetNotes.module.js +0 -1
- package/asset-notes/assetNotes.service.js +0 -1
- package/asset-notes/cumulocity.json +0 -13
- package/core/ui/forms/ssh-key-input.html +0 -33
- package/core/ui/forms/ssh-key-input.js +0 -1
- package/devicemanagement-deviceListMap/controllers/deviceListMap.js +0 -1
- package/devicemanagement-deviceListMap/cumulocity.json +0 -19
- package/devicemanagement-deviceListMap/index.js +0 -1
- package/devicemanagement-deviceListMap/views/index.html +0 -21
- package/enterpriseEdition/customBranding/brandingConfiguration.constants.js +0 -1
- package/enterpriseEdition/customBranding/brandingConfiguration.service.js +0 -1
- package/enterpriseEdition/customBranding/brandingConfigurationForm.component.js +0 -1
- package/enterpriseEdition/customBranding/brandingConfigurationForm.html +0 -141
- package/enterpriseEdition/customBranding/brandingConfigurationUi.provider.js +0 -1
- package/enterpriseEdition/customBranding/brandingDeploy.service.js +0 -1
- package/enterpriseEdition/customBranding/brandingProcessExecution.component.js +0 -1
- package/enterpriseEdition/customBranding/brandingProcessExecution.html +0 -120
- package/enterpriseEdition/customBranding/custom-branding.module.js +0 -1
- package/enterpriseEdition/customBranding/microservice.value.js +0 -1
- package/enterpriseEdition/ui-assets/index.js +0 -1
- package/enterpriseEdition/ui-assets/public-options.service.js +0 -1
- package/enterpriseEdition/ui-assets/static-assets.service.js +0 -1
- package/enterpriseEdition/ui-assets/ui-assets.service.js +0 -1
- package/export/controllers/list.js +0 -1
- package/export/views/list.html +0 -298
- package/remoteAccess/clients/remoteAccessClients.service.js +0 -1
- package/remoteAccess/clients/terminal/index.html +0 -30
- package/remoteAccess/clients/terminal/index.js +0 -1
- package/remoteAccess/clients/terminal/shell-adapter.js +0 -1
- package/remoteAccess/clients/terminal/style.css +0 -25
- package/remoteAccess/clients/terminal/telnet-negotiator.js +0 -1
- package/remoteAccess/clients/vnc/vncClient.html +0 -60
- package/remoteAccess/clients/vnc/vncClient.js +0 -1
- package/remoteAccess/cumulocity.json +0 -69
- package/remoteAccess/remoteAccess.module.js +0 -1
- package/remoteAccess/remoteAccess.service.js +0 -1
- package/remoteAccess/remoteAccessEndpointCard/remoteAccessEndpointCard.component.js +0 -1
- package/remoteAccess/remoteAccessEndpointCard/remoteAccessEndpointCard.html +0 -89
- package/remoteAccess/remoteAccessEndpointModal/remoteAccessEndpointModal.component.js +0 -1
- package/remoteAccess/remoteAccessEndpointModal/remoteAccessEndpointModal.html +0 -484
- package/remoteAccess/remoteAccessEndpointModal/suggestedIPAddressTemplate.html +0 -8
- package/remoteAccess/remoteAccessEndpointsList/remoteAccessEndpointsList.component.js +0 -1
- package/remoteAccess/remoteAccessEndpointsList/remoteAccessEndpointsList.html +0 -75
- package/remoteAccess/remoteAccessSettings/remoteAccessSettings.component.js +0 -1
- package/remoteAccess/remoteAccessSettings/remoteAccessSettings.html +0 -37
- package/remoteAccess/remoteAccessUI.provider.js +0 -1
|
@@ -1,35 +1,170 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
<fieldset class="c8y-fieldset">
|
|
2
|
+
<legend>{{ 'Properties' | translate }}</legend>
|
|
3
|
+
<table class="table table-vertical-middle table-condensed" style="table-layout: fixed;">
|
|
4
|
+
<colgroup>
|
|
5
|
+
<col style="width: 5%" />
|
|
6
|
+
<col style="width: 7%" />
|
|
7
|
+
<col style="width: 28%" />
|
|
8
|
+
<col style="width: 28%" />
|
|
9
|
+
<col
|
|
10
|
+
ng-if="showRenderType()"
|
|
11
|
+
style="width: 28%"
|
|
12
|
+
/>
|
|
13
|
+
<col style="width: 5%" />
|
|
14
|
+
</colgroup>
|
|
15
|
+
<thead>
|
|
16
|
+
<th></th>
|
|
17
|
+
<th>
|
|
18
|
+
<span>{{ 'Show' | translate }}</span>
|
|
19
|
+
</th>
|
|
20
|
+
<th>
|
|
21
|
+
<span>{{ 'Label' | translate }}</span>
|
|
22
|
+
</th>
|
|
23
|
+
<th>
|
|
24
|
+
<span>{{ 'Property' | translate }}</span>
|
|
25
|
+
</th>
|
|
26
|
+
<th
|
|
27
|
+
ng-if="showRenderType()"
|
|
9
28
|
>
|
|
10
|
-
<
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
</
|
|
14
|
-
|
|
29
|
+
<span>{{ 'Render type' | translate }}</span>
|
|
30
|
+
</th>
|
|
31
|
+
<th></th>
|
|
32
|
+
</thead>
|
|
33
|
+
|
|
34
|
+
<tbody
|
|
35
|
+
ui-sortable="{handle: '.handle', stop: onPropertiesOrderChanged}"
|
|
36
|
+
ng-model="properties"
|
|
37
|
+
>
|
|
38
|
+
<tr
|
|
39
|
+
class="property"
|
|
40
|
+
ng-repeat="property in properties"
|
|
41
|
+
>
|
|
42
|
+
<td
|
|
43
|
+
class="handle"
|
|
44
|
+
>
|
|
45
|
+
<i
|
|
46
|
+
c8y-icon="bars"
|
|
47
|
+
style="cursor: move"
|
|
48
|
+
></i>
|
|
49
|
+
</td>
|
|
50
|
+
<td>
|
|
51
|
+
<label
|
|
52
|
+
class="c8y-checkbox"
|
|
53
|
+
title="{{ 'Show' | translate }}"
|
|
54
|
+
>
|
|
55
|
+
<input
|
|
56
|
+
type="checkbox"
|
|
57
|
+
ng-change="updateOptions()"
|
|
58
|
+
ng-model="property.__active"
|
|
59
|
+
/>
|
|
60
|
+
<span></span>
|
|
61
|
+
</label>
|
|
62
|
+
</td>
|
|
63
|
+
<td>
|
|
64
|
+
<input
|
|
65
|
+
class="form-control property-label input-sm"
|
|
66
|
+
data-ng-model="property.label"
|
|
67
|
+
/>
|
|
68
|
+
</td>
|
|
69
|
+
<td>
|
|
70
|
+
<button
|
|
71
|
+
class="btn btn-xs btn-default"
|
|
72
|
+
aria-label="{{ 'Configure computed property' | translate }}"
|
|
73
|
+
uib-tooltip="{{ 'Configure computed property' | translate }}"
|
|
74
|
+
tooltip-popup-delay="500"
|
|
75
|
+
tooltip-append-to-body="true"
|
|
76
|
+
type="button"
|
|
77
|
+
ng-show="!!property.configSchema"
|
|
78
|
+
ng-click="configComputeProperty(property)"
|
|
79
|
+
>
|
|
80
|
+
<i c8y-icon="bolt"></i>
|
|
81
|
+
{{ displayKeyPath(property.keyPath) }}
|
|
82
|
+
</button>
|
|
83
|
+
<span
|
|
84
|
+
class="text-truncate"
|
|
85
|
+
title="{{ displayKeyPath(property.keyPath) }}"
|
|
86
|
+
ng-hide="!!property.configSchema"
|
|
87
|
+
>
|
|
88
|
+
{{ displayKeyPath(property.keyPath) }}
|
|
89
|
+
</span>
|
|
90
|
+
</td>
|
|
91
|
+
<td
|
|
92
|
+
ng-if="showRenderType()"
|
|
93
|
+
>
|
|
94
|
+
<div class="input-group d-flex">
|
|
95
|
+
<div class="c8y-select-wrapper">
|
|
96
|
+
<select
|
|
97
|
+
class="form-control input-sm"
|
|
98
|
+
name="renderType"
|
|
99
|
+
ng-disabled="property.isAction"
|
|
100
|
+
ng-model="property.renderType"
|
|
101
|
+
ng-options="render.name as render.humanName | translate for render in renderTypes"
|
|
102
|
+
></select>
|
|
103
|
+
</div>
|
|
104
|
+
<span class="m-l-4">
|
|
105
|
+
<button
|
|
106
|
+
class="btn btn-xs pull-right"
|
|
107
|
+
ng-class="{
|
|
108
|
+
'btn-danger': !property.renderConfig,
|
|
109
|
+
'btn-default': property.renderConfig
|
|
110
|
+
}"
|
|
111
|
+
title="{{ 'Config renderer' | translate }}"
|
|
112
|
+
type="button"
|
|
113
|
+
ng-click="configRenderer(property)"
|
|
114
|
+
ng-show="rendererHasConfig(property.renderType)"
|
|
115
|
+
>
|
|
116
|
+
<i c8y-icon="sliders"></i>
|
|
117
|
+
</button>
|
|
118
|
+
</span>
|
|
119
|
+
</div>
|
|
120
|
+
</td>
|
|
121
|
+
<td>
|
|
122
|
+
<button
|
|
123
|
+
class="btn btn-dot btn-dot--danger showOnHover pull-right"
|
|
124
|
+
title="{{ 'Delete property' | translate }}"
|
|
125
|
+
type="button"
|
|
126
|
+
ng-click="removeProperty(property)"
|
|
127
|
+
>
|
|
128
|
+
<i c8y-icon="minus-circle"></i>
|
|
129
|
+
</button>
|
|
130
|
+
</td>
|
|
131
|
+
</tr>
|
|
132
|
+
</tbody>
|
|
133
|
+
</table>
|
|
134
|
+
<div class="m-t-16 m-b-16 d-flex gap-8 a-i-center">
|
|
135
|
+
<a
|
|
136
|
+
class="btn btn-default btn-sm"
|
|
137
|
+
title="{{ 'Add property' | translate }}"
|
|
138
|
+
data-ng-click="addProperty()"
|
|
139
|
+
>
|
|
140
|
+
<i c8y-icon="plus-circle"></i>
|
|
141
|
+
{{ 'Add property' | translate }}
|
|
142
|
+
</a>
|
|
143
|
+
<div
|
|
144
|
+
class="dropdown"
|
|
145
|
+
ng-hide="hideActions"
|
|
146
|
+
uib-dropdown
|
|
147
|
+
>
|
|
15
148
|
<button
|
|
16
|
-
class="btn btn-default btn-
|
|
17
|
-
type="button"
|
|
149
|
+
class="btn btn-default btn-sm dropdown-toggle c8y-dropdown"
|
|
18
150
|
title="{{ 'Add action' | translate }}"
|
|
151
|
+
aria-haspopup="true"
|
|
152
|
+
type="button"
|
|
19
153
|
data-cy="property-selector--add-action"
|
|
20
154
|
uib-dropdown-toggle
|
|
21
|
-
aria-haspopup="true"
|
|
22
155
|
>
|
|
23
|
-
<i c8y-icon="plus"></i>
|
|
24
156
|
{{ 'Add action' | translate }}
|
|
157
|
+
<span class="caret"></span>
|
|
25
158
|
</button>
|
|
26
|
-
<ul
|
|
159
|
+
<ul
|
|
160
|
+
class="dropdown-menu dropdown-menu-right m-t-8"
|
|
161
|
+
uib-dropdown-menu
|
|
162
|
+
>
|
|
27
163
|
<li ng-repeat="action in actions">
|
|
28
164
|
<button
|
|
29
|
-
|
|
165
|
+
title="{{ action.config.label | translate }}"
|
|
30
166
|
type="button"
|
|
31
167
|
data-cy="property-selector--{{ action.config.label }}"
|
|
32
|
-
title="{{ action.config.label | translate }}"
|
|
33
168
|
ng-click="addAction(action)"
|
|
34
169
|
>
|
|
35
170
|
{{ action.config.label | translate }}
|
|
@@ -38,94 +173,6 @@
|
|
|
38
173
|
</ul>
|
|
39
174
|
</div>
|
|
40
175
|
</div>
|
|
41
|
-
</
|
|
176
|
+
</fieldset>
|
|
42
177
|
|
|
43
|
-
<table class="table table-vertical-middle form-group">
|
|
44
|
-
<thead>
|
|
45
|
-
<th style="width: 5%"></th>
|
|
46
|
-
<th style="width: 5%">
|
|
47
|
-
<label>{{ 'Show' | translate }}</label>
|
|
48
|
-
</th>
|
|
49
|
-
<th style="width: 28%">
|
|
50
|
-
<label>{{ 'Label' | translate }}</label>
|
|
51
|
-
</th>
|
|
52
|
-
<th style="width: 28%">
|
|
53
|
-
<label>{{ 'Property' | translate }}</label>
|
|
54
|
-
</th>
|
|
55
|
-
<th style="width: 28%" ng-if="showRenderType()">
|
|
56
|
-
<label>{{ 'Render type' | translate }}</label>
|
|
57
|
-
</th>
|
|
58
|
-
<th style="width: 5%"></th>
|
|
59
|
-
</thead>
|
|
60
|
-
|
|
61
|
-
<tbody ui-sortable="{handle: '.handle', stop: onPropertiesOrderChanged}" ng-model="properties">
|
|
62
|
-
<tr class="property" ng-repeat="property in properties">
|
|
63
|
-
<td style="width: 5%" class="handle">
|
|
64
|
-
<i c8y-icon="bars" style="cursor: move"></i>
|
|
65
|
-
</td>
|
|
66
|
-
<td style="width: 5%">
|
|
67
|
-
<input type="checkbox" ng-change="updateOptions()" ng-model="property.__active" />
|
|
68
|
-
</td>
|
|
69
|
-
<td style="width: 28%">
|
|
70
|
-
<input class="form-control property-label" data-ng-model="property.label" />
|
|
71
|
-
</td>
|
|
72
|
-
<td style="width: 28%">
|
|
73
|
-
<button
|
|
74
|
-
class="btn btn-xs btn-default"
|
|
75
|
-
type="button"
|
|
76
|
-
aria-label="{{ 'Configure computed property' | translate }}"
|
|
77
|
-
uib-tooltip="{{ 'Configure computed property' | translate }}"
|
|
78
|
-
tooltip-popup-delay="500"
|
|
79
|
-
tooltip-append-to-body="true"
|
|
80
|
-
ng-show="!!property.configSchema"
|
|
81
|
-
ng-click="configComputeProperty(property)"
|
|
82
|
-
>
|
|
83
|
-
<i c8y-icon="bolt"></i>
|
|
84
|
-
{{ displayKeyPath(property.keyPath) }}
|
|
85
|
-
</button>
|
|
86
|
-
<span ng-hide="!!property.configSchema">{{ displayKeyPath(property.keyPath) }}</span>
|
|
87
|
-
</td>
|
|
88
|
-
<td style="width: 28%" ng-if="showRenderType()">
|
|
89
|
-
<div class="input-group d-flex">
|
|
90
|
-
<div class="c8y-select-wrapper">
|
|
91
|
-
<select
|
|
92
|
-
class="form-control"
|
|
93
|
-
name="renderType"
|
|
94
|
-
ng-disabled="property.isAction"
|
|
95
|
-
ng-model="property.renderType"
|
|
96
|
-
ng-options="render.name as render.humanName | translate for render in renderTypes"
|
|
97
|
-
>
|
|
98
|
-
<span></span>
|
|
99
|
-
</select>
|
|
100
|
-
</div>
|
|
101
|
-
<span class="m-l-4">
|
|
102
|
-
<button
|
|
103
|
-
class="btn btn-xs pull-right"
|
|
104
|
-
type="button"
|
|
105
|
-
title="{{ 'Config renderer' | translate }}"
|
|
106
|
-
ng-click="configRenderer(property)"
|
|
107
|
-
ng-show="rendererHasConfig(property.renderType)"
|
|
108
|
-
ng-class="{
|
|
109
|
-
'btn-danger': !property.renderConfig,
|
|
110
|
-
'btn-default': property.renderConfig
|
|
111
|
-
}"
|
|
112
|
-
>
|
|
113
|
-
<i c8y-icon="sliders"></i>
|
|
114
|
-
</button>
|
|
115
|
-
</span>
|
|
116
|
-
</div>
|
|
117
|
-
</td>
|
|
118
|
-
<td style="width: 5%">
|
|
119
|
-
<button
|
|
120
|
-
class="btn btn-dot btn-dot--danger showOnHover pull-right"
|
|
121
|
-
type="button"
|
|
122
|
-
title="{{ 'Delete property' | translate }}"
|
|
123
|
-
ng-click="removeProperty(property)"
|
|
124
|
-
>
|
|
125
|
-
<i c8y-icon="times"></i>
|
|
126
|
-
</button>
|
|
127
|
-
</td>
|
|
128
|
-
</tr>
|
|
129
|
-
</tbody>
|
|
130
|
-
</table>
|
|
131
178
|
<ng-form name="propertiesHiddenForm"></ng-form>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
</button>
|
|
81
81
|
<i
|
|
82
82
|
class="text-gray-medium-dark"
|
|
83
|
-
c8y-icon="
|
|
83
|
+
c8y-icon="online1"
|
|
84
84
|
ng-if="!convertTypeIcon(audit.type)"
|
|
85
85
|
></i>
|
|
86
86
|
</div>
|
|
@@ -160,4 +160,4 @@
|
|
|
160
160
|
</div>
|
|
161
161
|
</div>
|
|
162
162
|
<c8y-load-more></c8y-load-more>
|
|
163
|
-
</div>
|
|
163
|
+
</div>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
ng-if="!$parent.child.templateUrl && !hideHeaderActions && ctrl.showOverviewBreadcrumbs"
|
|
81
81
|
>
|
|
82
82
|
<c8y-breadcrumbs-item
|
|
83
|
-
icon="
|
|
83
|
+
icon="online1"
|
|
84
84
|
label="{{ 'Events' | translate }}"
|
|
85
85
|
></c8y-breadcrumbs-item>
|
|
86
86
|
<c8y-breadcrumbs-item
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
|
|
166
166
|
<!-- empty state -->
|
|
167
167
|
<c8y-ui-empty-state
|
|
168
|
-
[icon]="'
|
|
168
|
+
[icon]="'online1'"
|
|
169
169
|
[title]="'No events to display.' | translate"
|
|
170
170
|
ng-if="events.length == 0"
|
|
171
171
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{function e(a,o,r,c,
|
|
1
|
+
(()=>{function e(a,o,r,i,c,u,l){var s=i.url("databroker/connectors"),n=i.contentHeaders("connector",!0),e=i.createEnum([{name:"ALARM",value:"alarm",label:u("Alarms"),icon:"bell"},{name:"EVENT",value:"event",label:u("Events"),icon:"online1"},{name:"MEASUREMENT",value:"measurement",label:u("Measurements"),icon:"line-chart"},{name:"MANAGED_OBJECT",value:"managedObject",label:u("Managed objects"),icon:"cubes"},{name:"OPERATION",value:"operation",label:u("Operations"),icon:"code"},{name:"ALL",value:"*",hidden:!0}]),d=i.createEnum([{name:"ACTIVE",label:u("active`connector`")},{name:"ACTIVATING",label:u("activating`connector`")},{name:"SUSPENDED",label:u("suspended`connector`")},{name:"WAITING",label:u("waiting`connector`")}]),g=i.createEnum([{name:"ACTIVE",label:u("active`connector`")},{name:"SUSPENDED",label:u("suspended`connector`")},{name:"WAITING",label:u("waiting`connector`")}]),m=i.createEnum([{name:"ACTIVE",label:u("active`connector`")},{name:"ACTIVATING",label:u("activating`connector`")},{name:"PENDING",label:u("pending`connector`")},{name:"SUSPENDED",label:u("suspended`connector`")},{name:"WAITING",label:u("waiting`connector`")}]),p=["name","description","filters"],t=["id","status","destinationStatus","instanceUrl","tenantId","username","password","code","self","suspendReason"];return{getConnectors:function e(){var t={params:i.pageSizeNoTotalFilter()};var n=i.cleanListCallback("connectors",e,t.params);return o.get(s,t).then(n).then(function(e){return _.forEach(e,E),e})},saveConnector:function(e){{var t;t=i.hasId(e)?(t=_.pick(e,p),f(i.getId(e),t)):T(e)}return t},createConnector:T,updateConnector:f,toggleConnectorStatus:function(t){t.status===d.ACTIVE.value?t.status=d.SUSPENDED.value:t.status=d.ACTIVE.value;return _.unset(t,"visibleStatus"),f(t.id,{status:t.status}).then(function(e){t.status=e.status,E(t)})},getConnector:function(e){return o.get(v(e)).then(i.getResData).then(E)},getConnectorStub:function(){return{name:"",instanceUrl:"",description:"",filters:[]}},getConnectorDuplicate:function(e){return o.get(v(e)).then(i.getResData).then(function(e){return e.name=l.getString("Duplicate of {{name}}",e),_.omit(e,t)})},deleteConnector:function(e){return o({method:"DELETE",url:v(e)})},updateConnectorName:function(t,n){var e=a.when();t.id?e=f(t.id,{name:n}).then(function(e){return t.name=n,e}):t.name=n;return e},convertToViewModel:function(e){e=_.cloneDeep(e);return e.filters=_.map(e.filters,function(e){return e.apis=_.transform(e.apis,function(e,t){e[t]=!0},{}),e.fragmentsToFilter=I(e.fragmentsToFilter),e.copyAllFragments=_.isNull(e.fragmentsToCopy)||_.isUndefined(e.fragmentsToCopy),e.fragmentsToCopy=I(e.fragmentsToCopy),e.selectedGroupOrDevice=(e=>{var t,e=e.deviceGroupId||e.sourceId;return t=e?{id:e}:t})(e),e}),e},convertToBackendModel:function(e){e=_.cloneDeep(e);return e.filters=_.map(e.filters,function(e){a=e.apis;var t,n,a=_(a).map(function(e,t){return e?t:void 0}).compact().value(),o=A(e.fragmentsToFilter),r=e.copyAllFragments?null:A(e.fragmentsToCopy),i=e.selectedGroupOrDevice;return i&&i.isDevice&&(t=i.id),i&&!i.isDevice&&(n=i.id),_.assign(e,{isOpen:void 0,apis:a,fragmentsToFilter:o,fragmentsToCopy:r,copyAllFragments:void 0,sourceId:t,deviceGroupId:n,selectedGroupOrDevice:void 0})}),e},getFilterFragmentsSummary:function(e){var t=A(_.get(e,"fragmentsToFilter",[])),n=A(_.get(e,"fragmentsToCopy",[])),e=_.get(e,"copyAllFragments"),a="",o="";a=0<t.length?l.getString("Filter: {{fragments}}",{fragments:t.join(", ")}):l.getString("Filter: none");o=e?l.getString("Copy: all"):0<n.length?l.getString("Copy: {{fragments}}",{fragments:n.join(", ")}):l.getString("Copy: standard only");return[a,o].join("; ")},navigateToList:function(){var e=c.CONNECTOR_BASE_URL;r.path(e)},navigateToNew:function(e){var t="new",n=c.CONNECTOR_BASE_URL,a="";i.hasId(e)&&(t=i.getId(e),a="/duplicate");r.path("".concat(n,"/").concat(t).concat(a))},navigateToDetails:function(e){e=i.getId(e),e="".concat(c.CONNECTOR_BASE_URL,"/").concat(e);r.path(e)},getMappedStatus:S,getStatusTooltip:function(e){var t={},n=d.WAITING.value,a=d.ACTIVE.value,o=d.ACTIVATING.value,r=d.SUSPENDED.value,i=g.ACTIVE.value,c=g.WAITING.value,s=g.SUSPENDED.value,n=(t[n]=u("Connector not bootstrapped yet."),t[a]={},t[a][i]=u("Connector is working."),t[o]={},t[o][i]=u("Inventory structure synchronization in progress."),t[a][s]=u("Subscription in destination tenant disabled."),t[r]={},t[r][c]=u("Connector not bootstrapped but suspended by source tenant."),t[r][i]=u("Connector suspended by source tenant."),t[r][s]=u("Subscription in destination tenant disabled and then connector suspended by source tenant."),t[e.status]);return(e.status===r?l.getString(e.suspendReason):void 0)||_.get(n,e.destinationStatus)||n},APIS:e,STATUS:d,MAPPED_STATUS:m,DESTINATION_STATUS:g};function v(e){return[s,e].join("/")}function T(e){return o({method:"POST",url:s,data:e,headers:n}).then(i.getResData)}function f(e,t){return o({method:"PUT",url:v(e),data:t,headers:n}).then(i.getResData)}function E(e){return e.visibleStatus=S(e),e}function S(e){var t={},n=d.WAITING.value,a=d.ACTIVE.value,o=d.ACTIVATING.value,r=d.SUSPENDED.value,i=g.ACTIVE.value,c=g.SUSPENDED.value,n=(t[n]=m.WAITING,t[a]={},t[a][i]=m.ACTIVE,t[o]={},t[o][i]=m.ACTIVATING,t[a][c]=m.PENDING,t[r]=m.SUSPENDED,t[e.status]);return _.get(n,e.destinationStatus)||n}function I(e){e=e||[];return e.length||e.push(""),_.map(e,C)}function C(e){return{fragment:e}}function A(e){return _(e).map("fragment").compact().value()}}e.$inject=["$q","$http","$location","c8yBase","dataBrokerConstants","gettext","gettextCatalog"],angular.module("c8y.dataBroker").factory("dataBrokerConnectorsSvc",e)})();
|
|
Binary file
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
<div
|
|
2
|
+
class="row no-card-context"
|
|
2
3
|
ng-controller="DataPointWidgetConfigCtrl"
|
|
3
4
|
ng-init="disableLocalStorage = true"
|
|
4
|
-
class="row no-card-context d-flex"
|
|
5
|
-
style="height: calc(100vh - 422px);"
|
|
6
5
|
>
|
|
7
|
-
<div class="col-md-
|
|
8
|
-
<div class="
|
|
6
|
+
<div class="col-md-12 a-s-stretch">
|
|
7
|
+
<div class="bg-inherit p-t-8">
|
|
9
8
|
<div class="form-group m-b-0 p-b-16 separator-bottom">
|
|
10
9
|
<label for="dateSelection">
|
|
11
10
|
{{ 'Date selection' | translate }}
|
|
12
11
|
<button
|
|
13
|
-
type="button"
|
|
14
12
|
class="btn-help btn-help--sm"
|
|
15
13
|
aria-label="{{ 'Help' | translate }}"
|
|
14
|
+
type="button"
|
|
16
15
|
uib-popover-html="dateSelectionHelpPopoverText | translate"
|
|
17
16
|
popover-placement="right"
|
|
18
17
|
popover-trigger="'focus'"
|
|
@@ -21,10 +20,10 @@
|
|
|
21
20
|
</label>
|
|
22
21
|
<div class="c8y-select-wrapper">
|
|
23
22
|
<select
|
|
24
|
-
id="dateSelection"
|
|
25
23
|
class="form-control"
|
|
26
24
|
title="{{ 'Date selection' | translate }}"
|
|
27
25
|
aria-label="{{ 'Date selection' | translate }}"
|
|
26
|
+
id="dateSelection"
|
|
28
27
|
ng-model="dateSelection"
|
|
29
28
|
>
|
|
30
29
|
<option
|
|
@@ -49,96 +48,95 @@
|
|
|
49
48
|
</div>
|
|
50
49
|
</div>
|
|
51
50
|
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
aggregation="data.aggregation"
|
|
124
|
-
show-time="!data.widgetInstanceGlobalTimeContext"
|
|
125
|
-
on-data="(onData)"
|
|
126
|
-
on-update-dates="onUpdateDates($dateFrom, $dateTo)"
|
|
127
|
-
on-update-displayed-dates="onUpdateDisplayedDates($dateFrom, $dateTo)"
|
|
128
|
-
on-box-changed="onBoxChanged(box)"
|
|
129
|
-
></c8y-chart>
|
|
51
|
+
<div class="p-b-8 separator-bottom">
|
|
52
|
+
<div class="p-r-24 p-t-8">
|
|
53
|
+
<div
|
|
54
|
+
class="data-point-explorer d-flex d-col"
|
|
55
|
+
ng-controller="c8yDataPointExplorerCtrl"
|
|
56
|
+
>
|
|
57
|
+
<div class="m-b-4 m-t-4 d-flex j-c-start gap-8">
|
|
58
|
+
<c8y-realtime-button
|
|
59
|
+
class="top-right-control"
|
|
60
|
+
ng-show="!data.widgetInstanceGlobalTimeContext"
|
|
61
|
+
channel="{{ channel }}"
|
|
62
|
+
state="data.realtime"
|
|
63
|
+
on-data="onData($data)"
|
|
64
|
+
></c8y-realtime-button>
|
|
65
|
+
<c8y-realtime-button
|
|
66
|
+
ng-show="false"
|
|
67
|
+
channel="{{ alarmsChannel }}"
|
|
68
|
+
state="data.realtime"
|
|
69
|
+
on-data="onAlarm($data)"
|
|
70
|
+
on-data-update="onAlarm($data)"
|
|
71
|
+
></c8y-realtime-button>
|
|
72
|
+
<c8y-realtime-button
|
|
73
|
+
ng-show="false"
|
|
74
|
+
channel="{{ eventsChannel }}"
|
|
75
|
+
state="data.realtime"
|
|
76
|
+
on-data="onEvent($data)"
|
|
77
|
+
></c8y-realtime-button>
|
|
78
|
+
<c8y-aggregation
|
|
79
|
+
class="top-right-control"
|
|
80
|
+
ng-show="!data.widgetInstanceGlobalTimeContext"
|
|
81
|
+
date-from="data.dateFrom"
|
|
82
|
+
date-to="data.dateTo"
|
|
83
|
+
aggregation="data.aggregation"
|
|
84
|
+
realtime="data.realtime"
|
|
85
|
+
auto="true"
|
|
86
|
+
></c8y-aggregation>
|
|
87
|
+
<c8y-interval
|
|
88
|
+
class="top-right-control"
|
|
89
|
+
ng-show="!data.widgetInstanceGlobalTimeContext"
|
|
90
|
+
date-from="data.dateFrom"
|
|
91
|
+
date-to="data.dateTo"
|
|
92
|
+
interval="data.interval"
|
|
93
|
+
></c8y-interval>
|
|
94
|
+
</div>
|
|
95
|
+
<c8y-widget-preview-wrapper>
|
|
96
|
+
<div class="c8yGraphFill">
|
|
97
|
+
<c8y-chart
|
|
98
|
+
datapoints="data.graphDataPoints"
|
|
99
|
+
date-from="data.dateFrom"
|
|
100
|
+
date-to="data.dateTo"
|
|
101
|
+
realtime="data.realtime"
|
|
102
|
+
aggregation="data.aggregation"
|
|
103
|
+
show-time="!data.widgetInstanceGlobalTimeContext"
|
|
104
|
+
on-data="(onData)"
|
|
105
|
+
on-update-dates="onUpdateDates($dateFrom, $dateTo)"
|
|
106
|
+
on-update-displayed-dates="onUpdateDisplayedDates($dateFrom, $dateTo)"
|
|
107
|
+
on-box-changed="onBoxChanged(box)"
|
|
108
|
+
></c8y-chart>
|
|
109
|
+
</div>
|
|
110
|
+
<c8y-alarms-events-timelines-chart
|
|
111
|
+
alarms-events-configs="data.graphAlarmsEventsConfigs"
|
|
112
|
+
date-from="data.displayedDateFrom"
|
|
113
|
+
date-to="data.displayedDateTo"
|
|
114
|
+
on-update-dates="onUpdateDates($dateFrom, $dateTo)"
|
|
115
|
+
realtime="data.realtime"
|
|
116
|
+
on-realtime-alarm-fn="onRealtimeAlarmFn(onRealtimeAlarm)"
|
|
117
|
+
on-realtime-event-fn="onRealtimeEventFn(onRealtimeEvent)"
|
|
118
|
+
chart-box="chartBox"
|
|
119
|
+
></c8y-alarms-events-timelines-chart>
|
|
120
|
+
</c8y-widget-preview-wrapper>
|
|
121
|
+
</div>
|
|
130
122
|
</div>
|
|
131
|
-
<c8y-alarms-events-timelines-chart
|
|
132
|
-
alarms-events-configs="data.graphAlarmsEventsConfigs"
|
|
133
|
-
date-from="data.displayedDateFrom"
|
|
134
|
-
date-to="data.displayedDateTo"
|
|
135
|
-
on-update-dates="onUpdateDates($dateFrom, $dateTo)"
|
|
136
|
-
realtime="data.realtime"
|
|
137
|
-
on-realtime-alarm-fn="onRealtimeAlarmFn(onRealtimeAlarm)"
|
|
138
|
-
on-realtime-event-fn="onRealtimeEventFn(onRealtimeEvent)"
|
|
139
|
-
chart-box="chartBox"
|
|
140
|
-
></c8y-alarms-events-timelines-chart>
|
|
141
123
|
</div>
|
|
142
124
|
</div>
|
|
125
|
+
|
|
126
|
+
<c8y-data-point-list
|
|
127
|
+
class="bg-inherit separator-bottom"
|
|
128
|
+
datapoints="data.datapoints"
|
|
129
|
+
allow-adding-data-points-from-context-mo-only="dashboard.deviceType && dashboard.deviceTypeValue"
|
|
130
|
+
dont-save="true"
|
|
131
|
+
no-target
|
|
132
|
+
no-yellow-range
|
|
133
|
+
no-red-range
|
|
134
|
+
></c8y-data-point-list>
|
|
135
|
+
<c8y-alarms-events-timelines-config
|
|
136
|
+
class="d-block bg-inherit separator-top"
|
|
137
|
+
style="padding-top: 1px"
|
|
138
|
+
configs="data.alarmsEventsConfigs"
|
|
139
|
+
allow-alarms-events-from-context-mo-only="dashboard.deviceType && dashboard.deviceTypeValue"
|
|
140
|
+
></c8y-alarms-events-timelines-config>
|
|
143
141
|
</div>
|
|
144
142
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{s.$inject=["c8yAlarms"],a.$inject=["c8yObjectMappings"];var e={templateUrl:":::PLUGIN_PATH:::/object-mapping.html",controllerAs:"vm",controller:s,bindings:{autoObserveParams:"<",hideAutoObserve:"@",hideAlarmStatus:"<",mapping:"<",customActions:"<"}},t={template:'\n <span ng-show="!vm.hasMeasurement && !vm.hasAlarm && !vm.hasEvent" class="text-muted">--</span>\n <i c8y-icon="line-chart" uib-tooltip="{{\'Measurements\' | translate}}" ng-show="vm.hasMeasurement"></i>\n <i c8y-icon="bell" uib-tooltip="{{\'Alarms\' | translate}}" ng-show="vm.hasAlarm"></i>\n <i c8y-icon="
|
|
1
|
+
(()=>{s.$inject=["c8yAlarms"],a.$inject=["c8yObjectMappings"];var e={templateUrl:":::PLUGIN_PATH:::/object-mapping.html",controllerAs:"vm",controller:s,bindings:{autoObserveParams:"<",hideAutoObserve:"@",hideAlarmStatus:"<",mapping:"<",customActions:"<"}},t={template:'\n <span ng-show="!vm.hasMeasurement && !vm.hasAlarm && !vm.hasEvent" class="text-muted">--</span>\n <i c8y-icon="line-chart" uib-tooltip="{{\'Measurements\' | translate}}" ng-show="vm.hasMeasurement"></i>\n <i c8y-icon="bell" uib-tooltip="{{\'Alarms\' | translate}}" ng-show="vm.hasAlarm"></i>\n <i c8y-icon="online1" uib-tooltip="{{\'Events\' | translate}}" ng-show="vm.hasEvent"></i>\n <i c8y-icon="eye" uib-tooltip="{{\'Auto observe\' | translate}}" ng-show="vm.mapping.observeParameters.autoObserve"></i>\n <i c8y-icon="wrench" uib-tooltip="{{\'Custom action\' | translate}}" ng-show="vm.hasCustomAction"></i>\n ',controllerAs:"vm",controller:s,bindings:{mapping:"<"}},n={bindings:{data:"<"},template:'\n <span class="text-label-small visible-xs-inline m-r-4">{{\'Resources\' | translate}}</span>\n <div class="c8y-icon-badge" title="{{::vm.count(vm.data)}} {{\'Resources\' | translate}}">\n <i c8y-icon="tasks"></i>\n <span class="badge badge-info">{{::vm.count(vm.data)}}</span></div>',controller:a,controllerAs:"vm"};function a(e){this.count=e.countResources}function s(e){var t="measurementCreation",n="alarmCreation",a="eventCreation",s="customAction",o="observeParameters.autoObserve",i=!0,c=this;function r(){c.autoObserveLocked=!1,!i||c.hasMeasurement||c.hasEvent||c.hasAlarm||c.hasCustomAction||(c.autoObserveLocked=!0,_.unset(c.mapping,o))}_.assign(c,{alarmSeverities:e.severityList,alarmStatus:e.statusList,$onInit:function(){_.isUndefined(c.hideAutoObserve)&&(c.hideAutoObserve=!1);_.isUndefined(c.hideAlarmStatus)&&(c.hideAlarmStatus=!1)},$onChanges:function(e){e.mapping&&(()=>{var e=c.mapping;c.hasMeasurement=!!_.get(e,t),c.hasEvent=!!_.get(e,a),c.hasAlarm=!!_.get(e,n),c.hasCustomAction=!!_.get(e,s),r()})()},updateMeasurementKey:function(e){e||_.unset(c.mapping,t);r()},updateAlarmKey:function(e){e||_.unset(c.mapping,n);r()},updateEventKey:function(e){e||_.unset(c.mapping,a);r()},updateCustomActionKey:function(e){e?_.set(c.mapping,"".concat(s,".type"),null):_.unset(c.mapping,s);r()},formName:"mappingForm"})}angular.module("c8y.deviceProtocols").component("c8yObjectMapping",e).component("c8yObjectMappingStatusIcons",t).component("c8yDeviceProtocolRowCountResources",n)})();
|