@c8y/ng1-modules 1021.81.0 → 1022.4.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/deviceShell.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 +481 -720
- package/core/locales/es.po +431 -671
- package/core/locales/fr.po +510 -751
- package/core/locales/ja_JP.po +503 -740
- package/core/locales/ko.po +431 -671
- package/core/locales/nl.po +433 -672
- package/core/locales/pl.po +431 -672
- package/core/locales/pt_BR.po +528 -768
- package/core/locales/zh_CN.po +431 -671
- package/core/locales/zh_TW.po +431 -671
- package/core/ui/properties/propertySelector.html +156 -109
- package/core/ui/services/measurementsReport.js +1 -1
- 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-protocol-canbus/canbus-device.provider.js +1 -1
- package/device-protocol-canopen/canopen-device.provider.js +1 -1
- package/device-protocol-modbus/modbus-device.provider.js +1 -1
- package/device-protocol-opcua/opcua-device.provider.js +1 -1
- package/device-protocol-profibus/profibus-device.provider.js +1 -1
- package/device-protocols/device-protocol-import-button.component.js +1 -1
- package/device-protocols/object-mapping.component.js +1 -1
- package/device-protocols/object-mapping.html +1 -1
- package/deviceDatabase4/detail/device-type-detail.component.js +1 -1
- package/deviceDatabase4/device-database.service.js +1 -1
- package/deviceDatabase4/device-type-list.component.js +1 -1
- package/deviceDatabase4/modals/configure-discrete-io.html +1 -1
- package/deviceDatabase4/modals/configure-register.html +1 -1
- package/deviceDatabase4/modals/import-device-type.component.js +1 -1
- package/deviceDetail/cumulocity.json +1 -2
- package/deviceStatusWidget/deviceStatus.component.js +1 -1
- 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/modbus-widget.service.js +1 -1
- package/modbusWidget4/widget-config.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>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _regeneratorRuntime(){_regeneratorRuntime=function(){return a};var u,a={},t=Object.prototype,s=t.hasOwnProperty,l=Object.defineProperty||function(t,e,r){t[e]=r.value},e="function"==typeof Symbol?Symbol:{},n=e.iterator||"@@iterator",r=e.asyncIterator||"@@asyncIterator",o=e.toStringTag||"@@toStringTag";function i(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{i({},"")}catch(u){i=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o,i,a,c,e=e&&e.prototype instanceof m?e:m,e=Object.create(e.prototype),n=new R(n||[]);return l(e,"_invoke",{value:(o=t,i=r,a=n,c=h,function(t,e){if(c===d)throw Error("Generator is already running");if(c===y){if("throw"===t)throw e;return{value:u,done:!0}}for(a.method=t,a.arg=e;;){var r=a.delegate;if(r){r=function t(e,r){var n=r.method,o=e.iterator[n];if(o===u)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=u,t(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),v;n=f(o,e.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,v;o=n.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=u),r.delegate=null,v):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,v)}(r,a);if(r){if(r===v)continue;return r}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(c===h)throw c=y,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);c=d;r=f(o,i,a);if("normal"===r.type){if(c=a.done?y:p,r.arg===v)continue;return{value:r.arg,done:a.done}}"throw"===r.type&&(c=y,a.method="throw",a.arg=r.arg)}})}),e}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}a.wrap=c;var h="suspendedStart",p="suspendedYield",d="executing",y="completed",v={};function m(){}function g(){}function w(){}var e={},b=(i(e,n,function(){return this}),Object.getPrototypeOf),b=b&&b(b(F([]))),_=(b&&b!==t&&s.call(b,n)&&(e=b),w.prototype=m.prototype=Object.create(e));function E(t){["next","throw","return"].forEach(function(e){i(t,e,function(t){return this._invoke(e,t)})})}function x(a,c){var e;l(this,"_invoke",{value:function(r,n){function t(){return new c(function(t,e){!function e(t,r,n,o){var i,t=f(a[t],a,r);if("throw"!==t.type)return(r=(i=t.arg).value)&&"object"==_typeof(r)&&s.call(r,"__await")?c.resolve(r.__await).then(function(t){e("next",t,n,o)},function(t){e("throw",t,n,o)}):c.resolve(r).then(function(t){i.value=t,n(i)},function(t){return e("throw",t,n,o)});o(t.arg)}(r,n,t,e)})}return e=e?e.then(t,t):t()}})}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function S(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function R(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(L,this),this.reset(!0)}function F(e){if(e||""===e){var r,t=e[n];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return r=-1,(t=function t(){for(;++r<e.length;)if(s.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=u,t.done=!0,t}).next=t}throw new TypeError(_typeof(e)+" is not iterable")}return l(_,"constructor",{value:g.prototype=w,configurable:!0}),l(w,"constructor",{value:g,configurable:!0}),g.displayName=i(w,o,"GeneratorFunction"),a.isGeneratorFunction=function(t){t="function"==typeof t&&t.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},a.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,i(t,o,"GeneratorFunction")),t.prototype=Object.create(_),t},a.awrap=function(t){return{__await:t}},E(x.prototype),i(x.prototype,r,function(){return this}),a.AsyncIterator=x,a.async=function(t,e,r,n,o){void 0===o&&(o=Promise);var i=new x(c(t,e,r,n),o);return a.isGeneratorFunction(e)?i:i.next().then(function(t){return t.done?t.value:i.next()})},E(_),i(_,o,"Generator"),i(_,n,function(){return this}),i(_,"toString",function(){return"[object Generator]"}),a.keys=function(t){var e,r=Object(t),n=[];for(e in r)n.push(e);return n.reverse(),function t(){for(;n.length;){var e=n.pop();if(e in r)return t.value=e,t.done=!1,t}return t.done=!0,t}},a.values=F,R.prototype={constructor:R,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=u,this.done=!1,this.delegate=null,this.method="next",this.arg=u,this.tryEntries.forEach(S),!t)for(var e in this)"t"===e.charAt(0)&&s.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=u)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var n=this;function t(t,e){return i.type="throw",i.arg=r,n.next=t,e&&(n.method="next",n.arg=u),!!e}for(var e=this.tryEntries.length-1;0<=e;--e){var o=this.tryEntries[e],i=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var a=s.call(o,"catchLoc"),c=s.call(o,"finallyLoc");if(a&&c){if(this.prev<o.catchLoc)return t(o.catchLoc,!0);if(this.prev<o.finallyLoc)return t(o.finallyLoc)}else if(a){if(this.prev<o.catchLoc)return t(o.catchLoc,!0)}else{if(!c)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return t(o.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;0<=r;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}var i=(o=o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc?null:o)?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(t){for(var e=this.tryEntries.length-1;0<=e;--e){var r,n,o=this.tryEntries[e];if(o.tryLoc===t)return"throw"===(r=o.completion).type&&(n=r.arg,S(o)),n}throw Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:F(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=u),v}},a}function asyncGeneratorStep(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void r(t)}c.done?e(u):Promise.resolve(u).then(n,o)}function _asyncToGenerator(c){return function(){var t=this,a=arguments;return new Promise(function(e,r){var n=c.apply(t,a);function o(t){asyncGeneratorStep(n,e,r,o,i,"next",t)}function i(t){asyncGeneratorStep(n,e,r,o,i,"throw",t)}o(void 0)})}}(()=>{function t(c,u,s,l,f,h,p,d,o){var y=this;this.downloadReportForDevice=function(t,e,r,n){e=_.get(e,"id",e),r=_(r).map(_.partial(y.createPairFromSeries,e)).value();return new y.Downloader(t,n,r).start()},this.downloadReportForDatapoints=function(e,t,r){var n=_(t).filter(function(t){return!0===t.__active}).map(y.getDpRequestParams).value();return n.length?o.current().then(function(t){return o.hasRole(t,"ROLE_MEASUREMENT_READ")?new y.Downloader(e,r,n).start():c.reject(new Error(h("Could not download the report. You need this global permission to download reports: Measurements Read.")))}):c.reject(new Error(h("At least 1 data point must be selected")))},this.createPairFromSeries=function(t,e){return{source:t,fragmentType:e}},this.getDpRequestParams=function(t){return{source:t.__target.id,valueFragmentType:t.fragment,valueFragmentSeries:t.series}},this.generateFileName=function(t,e){if(_.isEmpty(t.source&&e)||_.isEmpty(t.valueFragmentType||t.fragmentType))throw new Error("Unable to generate a file name for given data");var r=t.valueFragmentType?[t.valueFragmentType,t.valueFragmentSeries].join("."):t.fragmentType;return[t.source,r,e].join(".")},this.Downloader=function(r,n,t){var o=this,e=_.uniqBy(t,function(t){return JSON.stringify(t)});function i(){return(i=_asyncToGenerator(_regeneratorRuntime().mark(function t(r){var n,o,e;return _regeneratorRuntime().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(n=c.defer(),403!==r.status)t.next=14;else{if(r.data instanceof Blob)return t.next=5,d.detail(r.config.params.source);t.next=11}break;case 5:o=t.sent,(e=new FileReader).addEventListener("loadend",function(t){try{var e=JSON.parse(_.get(t,"srcElement.result"));n.resolve({type:"danger",text:p.getString('Could not download data for "{{name}}": access denied.',o.data),detailedData:e})}catch(t){n.resolve(a(r))}}),e.readAsText(r.data),t.next=12;break;case 11:n.resolve(a(r));case 12:t.next=15;break;case 14:n.resolve({type:"danger",text:h("An error occurred. Please try again later."),detailedData:r});case 15:return t.abrupt("return",n.promise);case 16:case"end":return t.stop()}},t)}))).apply(this,arguments)}function a(t){return{text:h("Access denied."),type:"danger",detailedData:t}}this.downloadReports=function(){var t=_(e).map(o.downloadReportForDpRequestParams).value();return c.all(t).then(o.onDownloads)},this.start=function(){return l({templateUrl:":::PLUGIN_PATH:::/ui/views/measurementsReport.html",title:h("Generating report"),controller:["$scope","$timeout",function(r,n){r.completed=0,r.total=e.length,r.reportFileName="report.zip",r.close=function(){var t,e;void 0!==window.navigator.msSaveBlob?(t=r.blob,window.navigator.msSaveBlob(t,r.reportFileName)):(e=r.url,n(function(){window.URL.revokeObjectURL(e)},5e3)),r.$close()},o.scope=r,o.downloadReports()}]})},this.downloadReportForDpRequestParams=function(e,t){t=o.getFilter(e,t);return u.list(t,r).then(function(t){return o.onDownload(e,t)}).catch(function(t){return o.onDownloadError(t)})},this.onDownload=function(t,e){return o.scope.completed+=1,e.name=y.generateFileName(t,r.name),e},this.onDownloadError=function(t){return t.async?(o.scope.completed+=1,c.resolve(null)):(o.displayError(t),c.resolve(void 0))},this.displayError=function(t){!function(){return i.apply(this,arguments)}(t).then(f.add)},this.onDownloads=function(t){var t=t.filter(function(t){return void 0!==t}),e=t.filter(_.identity),t=t.length-e.length;return 0<t&&(t=p.getPlural(t,"You will get a CSV/Excel file for 1 series via email.","You will get CSV/Excel files for {{$count}} series via email.",{}),f.success(t)),0===e.length?c.when():s.zipFiles(e).then(function(t){o.scope.blob=t,o.scope.url=window.URL.createObjectURL(t)})},this.getFilter=function(t,e){e=_.isArray(n)?n[e]:n;return _.merge({},e,t)}}}t.$inject=["$q","c8yMeasurements","c8yZip","c8yModal","c8yAlert","gettext","gettextCatalog","c8yInventory","c8yUser"],angular.module("c8y.ui").service("MeasurementsReportSvc",t)})();
|
|
1
|
+
function _regenerator(){var g,e="function"==typeof Symbol?Symbol:{},r=e.iterator||"@@iterator",t=e.toStringTag||"@@toStringTag";function n(e,r,t,n){var o,a,i,c,u,s,l,f,d,r=r&&r.prototype instanceof m?r:m,r=Object.create(r.prototype);return _regeneratorDefine2(r,"_invoke",(o=e,a=t,l=n||[],f=!1,d={p:s=0,n:0,v:g,a:p,f:p.bind(g,4),d:function(e,r){return i=e,c=0,u=g,d.n=r,v}},function(e,r,t){if(1<s)throw TypeError("Generator is already running");for(f&&1===r&&p(r,t),c=r,u=t;(y=c<2?g:u)||!f;){i||(c?c<3?(1<c&&(d.n=-1),p(c,u)):d.n=u:d.v=u);try{if(s=2,i){if(y=i[e=c?e:"next"]){if(!(y=y.call(i,u)))throw TypeError("iterator result is not an object");if(!y.done)return y;u=y.value,c<2&&(c=0)}else 1===c&&(y=i.return)&&y.call(i),c<2&&(u=TypeError("The iterator does not provide a '"+e+"' method"),c=1);i=g}else if((y=(f=d.n<0)?u:o.call(a,d))!==v)break}catch(e){i=g,c=1,u=e}finally{s=1}}return{value:y,done:f}}),!0),r;function p(e,r){for(c=e,u=r,y=0;!f&&s&&!t&&y<l.length;y++){var t,n=l[y],o=d.p,a=n[2];3<e?(t=a===r)&&(u=n[(c=n[4])?5:c=3],n[4]=n[5]=g):n[0]<=o&&((t=e<2&&o<n[1])?(c=0,d.v=r,d.n=n[1]):o<a&&(t=e<3||n[0]>r||a<r)&&(n[4]=e,n[5]=r,d.n=a,c=0))}if(t||1<e)return v;throw f=!0,r}}var v={};function m(){}function o(){}function a(){}var y=Object.getPrototypeOf,e=[][r]?y(y([][r]())):(_regeneratorDefine2(y={},r,function(){return this}),y),i=a.prototype=m.prototype=Object.create(e);function c(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,a):(e.__proto__=a,_regeneratorDefine2(e,t,"GeneratorFunction")),e.prototype=Object.create(i),e}return _regeneratorDefine2(i,"constructor",o.prototype=a),_regeneratorDefine2(a,"constructor",o),_regeneratorDefine2(a,t,o.displayName="GeneratorFunction"),_regeneratorDefine2(i),_regeneratorDefine2(i,t,"Generator"),_regeneratorDefine2(i,r,function(){return this}),_regeneratorDefine2(i,"toString",function(){return"[object Generator]"}),(_regenerator=function(){return{w:n,m:c}})()}function _regeneratorDefine2(e,r,t,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(_regeneratorDefine2=function(e,r,t,n){r?o?o(e,r,{value:t,enumerable:!n,configurable:!n,writable:!n}):e[r]=t:((n=function(r,t){_regeneratorDefine2(e,r,function(e){return this._invoke(r,t,e)})})("next",0),n("throw",1),n("return",2))})(e,r,t,n)}function asyncGeneratorStep(e,r,t,n,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void t(e)}c.done?r(u):Promise.resolve(u).then(n,o)}function _asyncToGenerator(c){return function(){var e=this,i=arguments;return new Promise(function(r,t){var n=c.apply(e,i);function o(e){asyncGeneratorStep(n,r,t,o,a,"next",e)}function a(e){asyncGeneratorStep(n,r,t,o,a,"throw",e)}o(void 0)})}}(()=>{function e(c,u,s,l,f,d,p,g,o){var v=this;this.downloadReportForDevice=function(e,r,t,n){r=_.get(r,"id",r),t=_(t).map(_.partial(v.createPairFromSeries,r)).value();return new v.Downloader(e,n,t).start()},this.downloadReportForDatapoints=function(r,e,t){var n=_(e).filter(function(e){return!0===e.__active}).map(v.getDpRequestParams).value();return n.length?o.current().then(function(e){return o.hasRole(e,"ROLE_MEASUREMENT_READ")?new v.Downloader(r,t,n).start():c.reject(new Error(d("Could not download the report. You need this global permission to download reports: Measurements Read.")))}):c.reject(new Error(d("At least 1 data point must be selected")))},this.createPairFromSeries=function(e,r){return{source:e,fragmentType:r}},this.getDpRequestParams=function(e){return{source:e.__target.id,valueFragmentType:e.fragment,valueFragmentSeries:e.series}},this.generateFileName=function(e,r){if(_.isEmpty(e.source&&r)||_.isEmpty(e.valueFragmentType||e.fragmentType))throw new Error("Unable to generate a file name for given data");var t=e.valueFragmentType?[e.valueFragmentType,e.valueFragmentSeries].join("."):e.fragmentType;return[e.source,t,r].join(".")},this.Downloader=function(t,n,e){var o=this,r=_.uniqBy(e,function(e){return JSON.stringify(e)});function a(){return(a=_asyncToGenerator(_regenerator().m(function e(t){var n,o,r;return _regenerator().w(function(e){for(;;)switch(e.n){case 0:if(n=c.defer(),403!==t.status)e.n=4;else{if(t.data instanceof Blob)return e.n=1,g.detail(t.config.params.source);e.n=2}break;case 1:o=e.v,(r=new FileReader).addEventListener("loadend",function(e){try{var r=JSON.parse(_.get(e,"srcElement.result"));n.resolve({type:"danger",text:p.getString('Could not download data for "{{name}}": access denied.',o.data),detailedData:r})}catch(e){n.resolve(i(t))}}),r.readAsText(t.data),e.n=3;break;case 2:n.resolve(i(t));case 3:e.n=5;break;case 4:n.resolve({type:"danger",text:d("An error occurred. Please try again later."),detailedData:t});case 5:return e.a(2,n.promise)}},e)}))).apply(this,arguments)}function i(e){return{text:d("Access denied."),type:"danger",detailedData:e}}this.downloadReports=function(){var e=_(r).map(o.downloadReportForDpRequestParams).value();return c.all(e).then(o.onDownloads)},this.start=function(){return l({templateUrl:":::PLUGIN_PATH:::/ui/views/measurementsReport.html",title:d("Generating report"),controller:["$scope","$timeout",function(t,n){t.completed=0,t.total=r.length,t.reportFileName="report.zip",t.close=function(){var e,r;void 0!==window.navigator.msSaveBlob?(e=t.blob,window.navigator.msSaveBlob(e,t.reportFileName)):(r=t.url,n(function(){window.URL.revokeObjectURL(r)},5e3)),t.$close()},o.scope=t,o.downloadReports()}]})},this.downloadReportForDpRequestParams=function(r,e){e=o.getFilter(r,e);return u.list(e,t).then(function(e){return o.onDownload(r,e)}).catch(function(e){return o.onDownloadError(e)})},this.onDownload=function(e,r){return o.scope.completed+=1,r.name=v.generateFileName(e,t.name),r},this.onDownloadError=function(e){return e.async?(o.scope.completed+=1,c.resolve(null)):(o.displayError(e),c.resolve(void 0))},this.displayError=function(e){!function(){return a.apply(this,arguments)}(e).then(f.add)},this.onDownloads=function(e){var e=e.filter(function(e){return void 0!==e}),r=e.filter(_.identity),e=e.length-r.length;return 0<e&&(e=p.getPlural(e,"You will get a CSV/Excel file for 1 series via email.","You will get CSV/Excel files for {{$count}} series via email.",{}),f.success(e)),0===r.length?c.when():s.zipFiles(r).then(function(e){o.scope.blob=e,o.scope.url=window.URL.createObjectURL(e)})},this.getFilter=function(e,r){r=_.isArray(n)?n[r]:n;return _.merge({},r,e)}}}e.$inject=["$q","c8yMeasurements","c8yZip","c8yModal","c8yAlert","gettext","gettextCatalog","c8yInventory","c8yUser"],angular.module("c8y.ui").service("MeasurementsReportSvc",e)})();
|
|
@@ -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>
|