@c8y/ng1-modules 1018.472.0 → 1018.475.0
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/administration-alarmMapping/views/index.html +86 -49
- package/administration-applications/application-list-view/application-list-view.html +85 -27
- package/administration-retentionRules/views/list.html +78 -27
- package/alarmsEventsExplorer/alarmsEventsTimelinesConfig/alarmsEventsTimelinesConfig.html +88 -27
- package/configurationRepository/views/list.html +47 -30
- package/core/ui/views/alarmList.html +76 -33
- package/core/ui/views/eventList.html +105 -43
- package/dataBroker/subscriptions/subscriptions.html +16 -10
- package/devicemanagement-measurements/views/index.html +18 -4
- package/enterpriseEdition/sslCertificate/manageCertificateForm.html +66 -22
- package/export/views/list.html +61 -25
- package/package.json +1 -1
- package/roles/list/rolesList.html +90 -30
- package/simulators/detail/instructionList.html +40 -15
- package/simulators/list/list.html +54 -17
- package/tenantStatistics/tenant-statistics-columns.service.js +1 -1
|
@@ -1,35 +1,44 @@
|
|
|
1
1
|
<c8y-breadcrumbs-set>
|
|
2
2
|
<c8y-breadcrumbs-item
|
|
3
|
+
icon="c8y-accounts"
|
|
3
4
|
path="#roles"
|
|
4
5
|
label="{{ 'Roles' | translate }}"
|
|
5
|
-
icon="c8y-accounts"
|
|
6
6
|
></c8y-breadcrumbs-item>
|
|
7
7
|
<c8y-breadcrumbs-item
|
|
8
|
-
label="{{ 'Accounts' | translate }}"
|
|
9
8
|
icon="c8y-accounts"
|
|
9
|
+
label="{{ 'Accounts' | translate }}"
|
|
10
10
|
></c8y-breadcrumbs-item>
|
|
11
11
|
</c8y-breadcrumbs-set>
|
|
12
12
|
|
|
13
13
|
<c8y-ui-action-bar-set>
|
|
14
|
-
<li
|
|
14
|
+
<li
|
|
15
|
+
class="navbar-form hidden-xs"
|
|
16
|
+
action-bar-position="left"
|
|
17
|
+
>
|
|
15
18
|
<c8y-list-display-control
|
|
16
19
|
list-length="vm.roles.length"
|
|
17
20
|
on-list-class-change="vm.listClass = listClass"
|
|
18
21
|
></c8y-list-display-control>
|
|
19
22
|
</li>
|
|
20
23
|
|
|
21
|
-
<li
|
|
24
|
+
<li
|
|
25
|
+
class="navbar-form"
|
|
26
|
+
action-bar-position="left"
|
|
27
|
+
>
|
|
22
28
|
<div class="input-group input-group-search">
|
|
23
29
|
<input
|
|
24
|
-
title="{{ 'Filter roles' | translate }}"
|
|
25
|
-
type="search"
|
|
26
30
|
class="form-control"
|
|
31
|
+
title="{{ 'Filter roles' | translate }}"
|
|
32
|
+
id="filter"
|
|
27
33
|
placeholder="{{ 'Filter' | translate }}…"
|
|
34
|
+
type="search"
|
|
28
35
|
ng-model="vm.searchString"
|
|
29
|
-
id="filter"
|
|
30
36
|
/>
|
|
31
37
|
<span class="input-group-addon">
|
|
32
|
-
<i
|
|
38
|
+
<i
|
|
39
|
+
c8y-icon="search"
|
|
40
|
+
ng-if="vm.searchString.length === 0 || !vm.searchString"
|
|
41
|
+
></i>
|
|
33
42
|
<i
|
|
34
43
|
class="text-muted"
|
|
35
44
|
c8y-icon="times"
|
|
@@ -37,15 +46,21 @@
|
|
|
37
46
|
ng-click="vm.searchString = ''"
|
|
38
47
|
></i>
|
|
39
48
|
</span>
|
|
40
|
-
<span
|
|
49
|
+
<span
|
|
50
|
+
class="sr-only"
|
|
51
|
+
for="filter"
|
|
52
|
+
translate
|
|
53
|
+
>
|
|
54
|
+
Filter roles
|
|
55
|
+
</span>
|
|
41
56
|
</div>
|
|
42
57
|
</li>
|
|
43
58
|
|
|
44
59
|
<li action-bar-position="right">
|
|
45
60
|
<button
|
|
61
|
+
class="btn btn-link"
|
|
46
62
|
title="{{ 'Add inventory role' | translate }}"
|
|
47
63
|
type="button"
|
|
48
|
-
class="btn btn-link"
|
|
49
64
|
ng-click="::vm.addRole()"
|
|
50
65
|
ng-show="vm.roles[0].permissions"
|
|
51
66
|
>
|
|
@@ -53,9 +68,9 @@
|
|
|
53
68
|
<span translate>Add inventory role</span>
|
|
54
69
|
</button>
|
|
55
70
|
<button
|
|
71
|
+
class="btn btn-link"
|
|
56
72
|
title="{{ 'Add global role' | translate }}"
|
|
57
73
|
type="button"
|
|
58
|
-
class="btn btn-link"
|
|
59
74
|
ng-click="::vm.addRole()"
|
|
60
75
|
ng-show="!vm.roles[0].permissions"
|
|
61
76
|
>
|
|
@@ -69,10 +84,10 @@
|
|
|
69
84
|
|
|
70
85
|
<!-- Empty state -->
|
|
71
86
|
<c8y-ui-empty-state
|
|
72
|
-
ng-if="vm.roles.length === 0"
|
|
73
87
|
[icon]="'c8y-users'"
|
|
74
88
|
[title]="'No roles to display.' | translate"
|
|
75
89
|
[subtitle]="'Click below to add your first role.' | translate"
|
|
90
|
+
ng-if="vm.roles.length === 0"
|
|
76
91
|
>
|
|
77
92
|
<button
|
|
78
93
|
class="btn btn-primary"
|
|
@@ -90,7 +105,10 @@
|
|
|
90
105
|
>
|
|
91
106
|
{{ 'Add global role' | translate }}
|
|
92
107
|
</button>
|
|
93
|
-
<p
|
|
108
|
+
<p
|
|
109
|
+
class="m-t-4"
|
|
110
|
+
c8y-guide-docs
|
|
111
|
+
>
|
|
94
112
|
<small translate>
|
|
95
113
|
Find out more in the
|
|
96
114
|
<a c8y-guide-href="users-guide/administration/#managing-permissions">
|
|
@@ -101,8 +119,14 @@
|
|
|
101
119
|
</p>
|
|
102
120
|
</c8y-ui-empty-state>
|
|
103
121
|
|
|
104
|
-
<div
|
|
105
|
-
|
|
122
|
+
<div
|
|
123
|
+
class="card-group"
|
|
124
|
+
ng-class="vm.listClass"
|
|
125
|
+
>
|
|
126
|
+
<div
|
|
127
|
+
class="page-sticky-header hidden-xs"
|
|
128
|
+
ng-if="vm.roles.length > 0"
|
|
129
|
+
>
|
|
106
130
|
<div class="d-flex">
|
|
107
131
|
<div class="card-header">
|
|
108
132
|
<p translate>Name</p>
|
|
@@ -112,7 +136,10 @@
|
|
|
112
136
|
<span translate>Description</span>
|
|
113
137
|
</div>
|
|
114
138
|
</div>
|
|
115
|
-
<div
|
|
139
|
+
<div
|
|
140
|
+
class="card-footer card-column-30 m-r-8"
|
|
141
|
+
ng-if="vm.roles[0].permissions"
|
|
142
|
+
>
|
|
116
143
|
<span translate>Permissions</span>
|
|
117
144
|
</div>
|
|
118
145
|
</div>
|
|
@@ -122,22 +149,34 @@
|
|
|
122
149
|
ng-repeat="role in vm.roles | filter:vm.searchString as filtered"
|
|
123
150
|
ng-click="::vm.edit(role)"
|
|
124
151
|
>
|
|
125
|
-
<div
|
|
126
|
-
|
|
127
|
-
|
|
152
|
+
<div
|
|
153
|
+
class="card card--d-col"
|
|
154
|
+
ng-click="vm.edit(role)"
|
|
155
|
+
>
|
|
156
|
+
<div
|
|
157
|
+
class="card-actions"
|
|
158
|
+
ng-click="$event.stopPropagation()"
|
|
159
|
+
>
|
|
160
|
+
<div
|
|
161
|
+
class="dropdown settings"
|
|
162
|
+
uib-dropdown
|
|
163
|
+
>
|
|
128
164
|
<button
|
|
129
|
-
type="button"
|
|
130
|
-
title="{{ 'Actions' | translate }}"
|
|
131
165
|
class="dropdown-toggle c8y-dropdown"
|
|
132
|
-
|
|
166
|
+
title="{{ 'Actions' | translate }}"
|
|
133
167
|
aria-haspopup="true"
|
|
168
|
+
type="button"
|
|
169
|
+
uib-dropdown-toggle
|
|
134
170
|
ng-click="::$event.stopPropagation()"
|
|
135
171
|
>
|
|
136
172
|
<span>
|
|
137
173
|
<i c8y-icon="ellipsis-v"></i>
|
|
138
174
|
</span>
|
|
139
175
|
</button>
|
|
140
|
-
<ul
|
|
176
|
+
<ul
|
|
177
|
+
class="dropdown-menu dropdown-menu-right"
|
|
178
|
+
uib-dropdown-menu
|
|
179
|
+
>
|
|
141
180
|
<li>
|
|
142
181
|
<button
|
|
143
182
|
title="{{ 'Edit' | translate }}"
|
|
@@ -175,15 +214,30 @@
|
|
|
175
214
|
|
|
176
215
|
<div class="card-header separator">
|
|
177
216
|
<div class="card-icon">
|
|
178
|
-
<i
|
|
179
|
-
|
|
217
|
+
<i
|
|
218
|
+
class="text-gray-darker"
|
|
219
|
+
c8y-icon="connected-people"
|
|
220
|
+
ng-if="role.customProperties"
|
|
221
|
+
></i>
|
|
222
|
+
<i
|
|
223
|
+
class="text-gray-darker"
|
|
224
|
+
c8y-icon="insurance-agent"
|
|
225
|
+
ng-if="!role.customProperties"
|
|
226
|
+
></i>
|
|
180
227
|
</div>
|
|
181
|
-
<div
|
|
228
|
+
<div
|
|
229
|
+
class="card-title text-truncate"
|
|
230
|
+
title="{{::role.name | translate}}"
|
|
231
|
+
>
|
|
182
232
|
<span>{{::role.name | translate}}</span>
|
|
183
233
|
</div>
|
|
184
234
|
</div>
|
|
185
235
|
<div class="card-block card-column-70">
|
|
186
|
-
<span
|
|
236
|
+
<span
|
|
237
|
+
class="text-label-small"
|
|
238
|
+
title="{{ connector.description }}"
|
|
239
|
+
translate
|
|
240
|
+
>
|
|
187
241
|
Description
|
|
188
242
|
</span>
|
|
189
243
|
<small ng-show="role.description">
|
|
@@ -195,8 +249,14 @@
|
|
|
195
249
|
</small>
|
|
196
250
|
</span>
|
|
197
251
|
</div>
|
|
198
|
-
<div
|
|
199
|
-
|
|
252
|
+
<div
|
|
253
|
+
class="card-footer separator card-column-30"
|
|
254
|
+
ng-if="role.permissions"
|
|
255
|
+
>
|
|
256
|
+
<span
|
|
257
|
+
class="badge badge-info"
|
|
258
|
+
ng-bind="::role.permissions.length"
|
|
259
|
+
></span>
|
|
200
260
|
<span
|
|
201
261
|
class="text-label-small"
|
|
202
262
|
translate
|
|
@@ -212,10 +272,10 @@
|
|
|
212
272
|
|
|
213
273
|
<!-- no results empty state -->
|
|
214
274
|
<c8y-ui-empty-state
|
|
215
|
-
ng-if="filtered.length === 0 && vm.searchString.length > 0"
|
|
216
275
|
[icon]="'search'"
|
|
217
276
|
[title]="'No results to display.' | translate"
|
|
218
277
|
[subtitle]="'Refine your search terms or check your spelling.' | translate"
|
|
278
|
+
ng-if="filtered.length === 0 && vm.searchString.length > 0"
|
|
219
279
|
></c8y-ui-empty-state>
|
|
220
280
|
|
|
221
281
|
<c8y-load-more></c8y-load-more>
|
|
@@ -1,33 +1,52 @@
|
|
|
1
1
|
<div class="bg-level-1 flex-grow">
|
|
2
|
-
<ul
|
|
2
|
+
<ul
|
|
3
|
+
class="c8y-nav-stacked"
|
|
4
|
+
ui-sortable="vm.uiSortableOptions"
|
|
5
|
+
ng-model="vm.instructions"
|
|
6
|
+
>
|
|
3
7
|
<li
|
|
4
8
|
class="c8y-stacked-item"
|
|
5
|
-
ng-repeat="instruction in vm.instructions"
|
|
6
|
-
ng-style="vm.checkClickable(instruction)"
|
|
7
9
|
ng-class="{ active: vm.isInstructionSelected(instruction) }"
|
|
10
|
+
ng-style="vm.checkClickable(instruction)"
|
|
11
|
+
ng-repeat="instruction in vm.instructions"
|
|
8
12
|
>
|
|
9
13
|
<i
|
|
14
|
+
class="text-muted showOnHover handle"
|
|
10
15
|
c8y-icon="reorder"
|
|
11
|
-
ng-show="vm.canDrag(instruction)"
|
|
12
16
|
title="{{ 'Drag to reorder' | translate }}"
|
|
13
|
-
|
|
17
|
+
ng-show="vm.canDrag(instruction)"
|
|
14
18
|
></i>
|
|
15
19
|
<button
|
|
16
20
|
class="btn-clean d-flex fit-w text-truncate"
|
|
17
21
|
type="button"
|
|
18
22
|
ng-click="vm.select(instruction)"
|
|
19
23
|
>
|
|
20
|
-
<i
|
|
21
|
-
|
|
24
|
+
<i
|
|
25
|
+
class="icon-20 m-r-4"
|
|
26
|
+
c8y-icon="{{ vm.icons[instruction.type] }}"
|
|
27
|
+
></i>
|
|
28
|
+
<span
|
|
29
|
+
class="text-truncate"
|
|
30
|
+
title="{{ vm.title(instruction) | translate }}"
|
|
31
|
+
>
|
|
22
32
|
<span ng-bind="vm.title(instruction) | translate"></span>
|
|
23
33
|
|
|
24
|
-
<span
|
|
34
|
+
<span
|
|
35
|
+
class="text-muted"
|
|
36
|
+
ng-show="instruction.type === 'message'"
|
|
37
|
+
>
|
|
25
38
|
{{ instruction.templateId }} / {{ instruction.messageId }}
|
|
26
39
|
</span>
|
|
27
|
-
<span
|
|
40
|
+
<span
|
|
41
|
+
class="text-muted"
|
|
42
|
+
ng-show="instruction.type === 'builtin'"
|
|
43
|
+
>
|
|
28
44
|
{{ instruction.messageId }}
|
|
29
45
|
</span>
|
|
30
|
-
<span
|
|
46
|
+
<span
|
|
47
|
+
class="text-muted"
|
|
48
|
+
ng-show="instruction.type === 'sleep'"
|
|
49
|
+
>
|
|
31
50
|
<em translate>{{ instruction.seconds }} seconds</em>
|
|
32
51
|
</span>
|
|
33
52
|
</span>
|
|
@@ -35,30 +54,36 @@
|
|
|
35
54
|
|
|
36
55
|
<button
|
|
37
56
|
class="m-l-auto btn btn-icon p-l-8 p-r-8 showOnHover"
|
|
38
|
-
type="button"
|
|
39
57
|
aria-label="{{ 'Remove' | translate }}"
|
|
40
58
|
uib-tooltip="{{ 'Remove' | translate }}"
|
|
41
59
|
tooltip-popup-delay="500"
|
|
42
60
|
tooltip-trigger="'mouseenter'"
|
|
43
61
|
tooltip-placement="left"
|
|
62
|
+
type="button"
|
|
44
63
|
ng-click="vm.remove(instruction)"
|
|
45
64
|
>
|
|
46
|
-
<i
|
|
65
|
+
<i
|
|
66
|
+
class="text-danger"
|
|
67
|
+
c8y-icon="minus-circle"
|
|
68
|
+
></i>
|
|
47
69
|
</button>
|
|
48
70
|
</li>
|
|
49
71
|
|
|
50
72
|
<li class="p-24">
|
|
51
73
|
<c8y-ui-empty-state
|
|
52
|
-
ng-show="vm.instructions.length === 0"
|
|
53
74
|
[icon]="'installing-updates'"
|
|
54
75
|
[title]="'No instructions.' | translate"
|
|
55
76
|
[subtitle]="'Click below to add the first one.' | translate"
|
|
77
|
+
ng-show="vm.instructions.length === 0"
|
|
56
78
|
>
|
|
57
|
-
<small
|
|
79
|
+
<small
|
|
80
|
+
c8y-guide-docs
|
|
81
|
+
translate
|
|
82
|
+
>
|
|
58
83
|
Find out more in the
|
|
59
84
|
<a
|
|
60
|
-
c8y-guide-href="users-guide/device-management/#simulator"
|
|
61
85
|
target="_blank"
|
|
86
|
+
c8y-guide-href="users-guide/device-management/#simulator"
|
|
62
87
|
rel="noopener noreferrer"
|
|
63
88
|
>
|
|
64
89
|
User guide`KEEP_ORIGINAL`
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
<c8y-breadcrumbs-set>
|
|
2
2
|
<c8y-breadcrumbs-item
|
|
3
|
-
label="{{ 'Simulators' | translate }}"
|
|
4
3
|
icon="c8y-simulator"
|
|
4
|
+
label="{{ 'Simulators' | translate }}"
|
|
5
|
+
></c8y-breadcrumbs-item>
|
|
6
|
+
<c8y-breadcrumbs-item
|
|
7
|
+
icon="exchange"
|
|
8
|
+
label="{{ 'Devices' | translate }}"
|
|
5
9
|
></c8y-breadcrumbs-item>
|
|
6
|
-
<c8y-breadcrumbs-item label="{{ 'Devices' | translate }}" icon="exchange"></c8y-breadcrumbs-item>
|
|
7
10
|
</c8y-breadcrumbs-set>
|
|
8
11
|
|
|
9
12
|
<c8y-ui-action-bar-set>
|
|
10
|
-
<li
|
|
13
|
+
<li
|
|
14
|
+
class="navbar-form hidden-xs"
|
|
15
|
+
action-bar-position="left"
|
|
16
|
+
>
|
|
11
17
|
<c8y-list-display-control
|
|
12
18
|
list-length="vm.simulators.length"
|
|
13
19
|
on-list-class-change="vm.listClass = listClass"
|
|
@@ -23,7 +29,10 @@
|
|
|
23
29
|
ng-click="vm.load()"
|
|
24
30
|
ng-disabled="vm.loading"
|
|
25
31
|
>
|
|
26
|
-
<i
|
|
32
|
+
<i
|
|
33
|
+
ng-class="{ 'icon-spin': vm.loading }"
|
|
34
|
+
c8y-icon="refresh"
|
|
35
|
+
></i>
|
|
27
36
|
{{ 'Reload' | translate }}
|
|
28
37
|
</button>
|
|
29
38
|
</c8y-ui-action-bar-set>
|
|
@@ -32,10 +41,10 @@
|
|
|
32
41
|
|
|
33
42
|
<!-- empty state -->
|
|
34
43
|
<c8y-ui-empty-state
|
|
35
|
-
ng-if="vm.simulators.length === 0"
|
|
36
44
|
[icon]="'c8y-simulator'"
|
|
37
45
|
[title]="'No simulators to display.' | translate"
|
|
38
46
|
[subtitle]="'Click below to add your first simulator.' | translate"
|
|
47
|
+
ng-if="vm.simulators.length === 0"
|
|
39
48
|
>
|
|
40
49
|
<c8y-simulator-add on-added="vm.onSimulatorAdded(simulator)"></c8y-simulator-add>
|
|
41
50
|
|
|
@@ -48,8 +57,14 @@
|
|
|
48
57
|
</p>
|
|
49
58
|
</c8y-ui-empty-state>
|
|
50
59
|
|
|
51
|
-
<div
|
|
52
|
-
|
|
60
|
+
<div
|
|
61
|
+
class="card-group"
|
|
62
|
+
ng-class="vm.listClass"
|
|
63
|
+
>
|
|
64
|
+
<div
|
|
65
|
+
class="page-sticky-header hidden-xs"
|
|
66
|
+
ng-if="vm.simulators.length > 0"
|
|
67
|
+
>
|
|
53
68
|
<div class="d-flex">
|
|
54
69
|
<div class="card-actions"></div>
|
|
55
70
|
<div class="card-header card-column-40">
|
|
@@ -75,20 +90,29 @@
|
|
|
75
90
|
class="col-xs-12 col-sm-6 col-md-4 col-lg-3"
|
|
76
91
|
ng-repeat="simulator in vm.simulators | orderBy:'name'"
|
|
77
92
|
>
|
|
78
|
-
<div
|
|
93
|
+
<div
|
|
94
|
+
class="card"
|
|
95
|
+
ng-click="vm.edit(simulator)"
|
|
96
|
+
>
|
|
79
97
|
<div class="card-actions">
|
|
80
|
-
<div
|
|
98
|
+
<div
|
|
99
|
+
class="dropdown settings"
|
|
100
|
+
uib-dropdown
|
|
101
|
+
>
|
|
81
102
|
<button
|
|
82
103
|
class="dropdown-toggle c8y-dropdown"
|
|
83
|
-
type="button"
|
|
84
104
|
title="{{ 'Actions' | translate }}"
|
|
85
|
-
uib-dropdown-toggle
|
|
86
105
|
aria-haspopup="true"
|
|
106
|
+
type="button"
|
|
107
|
+
uib-dropdown-toggle
|
|
87
108
|
ng-click="$event.stopPropagation()"
|
|
88
109
|
>
|
|
89
110
|
<span><i c8y-icon="ellipsis-v"></i></span>
|
|
90
111
|
</button>
|
|
91
|
-
<ul
|
|
112
|
+
<ul
|
|
113
|
+
class="dropdown-menu dropdown-menu-right"
|
|
114
|
+
uib-dropdown-menu
|
|
115
|
+
>
|
|
92
116
|
<li>
|
|
93
117
|
<button
|
|
94
118
|
title="{{ 'Edit' | translate }}"
|
|
@@ -127,7 +151,10 @@
|
|
|
127
151
|
<div class="card-icon">
|
|
128
152
|
<i c8y-icon="c8y-simulator c8y-icon-duocolor"></i>
|
|
129
153
|
</div>
|
|
130
|
-
<div
|
|
154
|
+
<div
|
|
155
|
+
class="text-truncate card-title"
|
|
156
|
+
title="{{ simulator.name }}"
|
|
157
|
+
>
|
|
131
158
|
{{ simulator.name }}
|
|
132
159
|
</div>
|
|
133
160
|
</div>
|
|
@@ -135,8 +162,8 @@
|
|
|
135
162
|
<div class="card-block card-column-30 m-r-0">
|
|
136
163
|
<div ng-switch="simulator.state">
|
|
137
164
|
<label
|
|
138
|
-
title="{{ 'Toggle simulator state' | translate }}"
|
|
139
165
|
class="c8y-switch c8y-switch--inline"
|
|
166
|
+
title="{{ 'Toggle simulator state' | translate }}"
|
|
140
167
|
ng-click="$event.stopPropagation()"
|
|
141
168
|
>
|
|
142
169
|
<input
|
|
@@ -147,8 +174,8 @@
|
|
|
147
174
|
<span></span>
|
|
148
175
|
<span
|
|
149
176
|
class="text-capitalize"
|
|
150
|
-
ng-switch-default
|
|
151
177
|
title="{{ simulator.state | translate | lowercase }}"
|
|
178
|
+
ng-switch-default
|
|
152
179
|
>
|
|
153
180
|
{{ simulator.state.toLowerCase() | translate }}
|
|
154
181
|
</span>
|
|
@@ -159,14 +186,24 @@
|
|
|
159
186
|
<div class="card-footer separator card-column-30">
|
|
160
187
|
<div class="d-flex fit-w">
|
|
161
188
|
<div class="card-column-50 flex-grow">
|
|
162
|
-
<span
|
|
189
|
+
<span
|
|
190
|
+
class="text-label-small"
|
|
191
|
+
translate
|
|
192
|
+
>
|
|
193
|
+
Instances
|
|
194
|
+
</span>
|
|
163
195
|
<span title=" {{ simulator.instances }} {{ 'Instances' | translate }}">
|
|
164
196
|
<i c8y-icon="{{ vm.icons.simulator }}"></i>
|
|
165
197
|
{{ simulator.instances }}
|
|
166
198
|
</span>
|
|
167
199
|
</div>
|
|
168
200
|
<div class="card-column-50">
|
|
169
|
-
<span
|
|
201
|
+
<span
|
|
202
|
+
class="text-label-small"
|
|
203
|
+
translate
|
|
204
|
+
>
|
|
205
|
+
Instructions
|
|
206
|
+
</span>
|
|
170
207
|
<span title="{{ simulator.commandQueue.length }} {{ 'Instructions' | translate }}">
|
|
171
208
|
<i c8y-icon="{{ vm.icons.instruction }}"></i>
|
|
172
209
|
{{ simulator.commandQueue.length }}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(){function e(n,i,e){return{getTenantNameColumn:function(){return n.getColumn({name:"tenantName",header:e("Tenant"),cell:{template:'<a ng-href="#{{getTenantDetails(item)}}">\n {{item.tenantCompany}}\n </a>',scopeExtensions:{getTenantDetails:function(e){return"/tenants/".concat(e.tenantId)}}},filteringByPattern:{itemProperty:"tenantCompany"},sortingByPath:{itemProperty:"tenantCompany"},getCsvHeaders:function(){return[e("Tenant")]},getCsvValues:function(e){return[e.tenantCompany]}})},getTenantIdColumn:function(){return n.getColumn({name:"tenantId",header:e("ID"),cell:{template:"{{item.tenantId}}"},filteringByPattern:{itemProperty:"tenantId"},sortingByPath:{itemProperty:"tenantId"},getCsvValues:function(e){return[e.tenantId]}})},getTenantDomainColumn:function(){return n.getColumn({name:"tenantDomain",header:e("Domain"),cell:{template:'<a \n ng-href="{{getTenantUrl(item)}}"\n target="_blank"\n rel="noopener noreferrer"\n >\n {{item.tenantDomain}}\n </a>',scopeExtensions:{getTenantUrl:function(e){return"https://".concat(e.tenantDomain)}}},filteringByPattern:{itemProperty:"tenantDomain"},sortingByPath:{itemProperty:"tenantDomain"},getCsvHeaders:function(){return[e("Domain")]},getCsvValues:function(e){return[e.tenantDomain]}})},getCustomPropertyColumn:function(r){var e=r.key,t=["tenantCustomProperties",e],e={name:e,priority:_.startsWith(e,"limit.")?-1e3:0,header:r.title,cell:{template:"<div\n ng-bind=\"getValue(item, '".concat(e,"') |\n formatBySchema:getSchema(tenantCustomProperties, '").concat(e,"')\">\n </div>"),scopeExtensions:{getValue:function(e,t){return _.get(e,["tenantCustomProperties",t])},getSchema:function(e,t){return _.get(e,[t,"schema"])}}},getCsvHeaders:function(){return[r.title]},getCsvValues:function(e){return[(e=e,t=r,n=_.get(t,"schema.default"),_.get(e,["tenantCustomProperties",t.key],n))];var t,n}};return _.merge(e,function(e){var t=i.getType(e).filteringKey,e={itemProperty:["tenantCustomProperties",e.key]},n={};return _.set(n,t,e),_.set(n,"sortingByPath",e),n}(r)),_.set(e.cell.scopeExtensions,t,r),n.getColumn(e)},getApiRequestsColumn:function(){return n.getColumn({name:"requestCount",header:e("API requests"),cell:{template:"{{item.requestCount}}"},filteringByMinMax:{itemProperty:"requestCount"},sortingByPath:{itemProperty:"requestCount"},getCsvValues:function(e){return[e.requestCount]}})},getDeviceApiRequestsColumn:function(){return n.getColumn({name:"deviceRequestCount",header:e("Device API requests"),cell:{template:"{{item.deviceRequestCount}}"},filteringByMinMax:{itemProperty:"deviceRequestCount"},sortingByPath:{itemProperty:"deviceRequestCount"},getCsvValues:function(e){return[e.deviceRequestCount]}})},getStorageQuotaColumn:function(){return n.getColumn({name:"storageQuota",header:e("Storage quota (MB)"),cell:{template:'<span ng-if="item.storageLimitPerDevice">{{item.storageQuota}}</span>'},filteringByMinMax:{itemProperty:"storageQuota"},sortingByPath:{itemProperty:"storageQuota"},getCsvValues:function(e){return[e.storageQuota||""]}})},getStorageSizeColumn:function(){return n.getColumn({name:"storageSize",header:e("Storage (MB)"),cell:{template:"{{item.storageSize}}"},filteringByMinMax:{itemProperty:"storageSize"},getCsvValues:function(e){return[e.storageSize]}})},getPeakStorageSizeColumn:function(){return n.getColumn({name:"peakStorageSize",header:e("Peak storage (MB)"),cell:{template:"{{item.peakStorageSize}}"},filteringByMinMax:{itemProperty:"peakStorageSize"},getCsvValues:function(e){return[e.peakStorageSize]}})},getRootDevicesColumn:function(){return n.getColumn({name:"deviceCount",header:{text:e("Root devices"),tooltip:{icon:"question-circle-o",text:e("Number of root devices, excluding child devices")}},cell:{template:"{{item.deviceCount}}"},filteringByMinMax:{itemProperty:"deviceCount"},sortingByPath:{itemProperty:"deviceCount"},getCsvValues:function(e){return[e.deviceCount]}})},getPeakRootDevicesColumn:function(){return n.getColumn({name:"peakDeviceCount",header:{text:e("Peak root devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of root devices, excluding child devices")}},cell:{template:"{{item.peakDeviceCount}}"},filteringByMinMax:{itemProperty:"peakDeviceCount"},sortingByPath:{itemProperty:"peakDeviceCount"},getCsvValues:function(e){return[e.peakDeviceCount]}})},getDevicesColumn:function(){return n.getColumn({name:"deviceWithChildrenCount",header:{text:e("Devices"),tooltip:{icon:"question-circle-o",text:e("Number of devices, including child devices")}},cell:{template:"{{item.deviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"deviceWithChildrenCount"},sortingByPath:{itemProperty:"deviceWithChildrenCount"},getCsvValues:function(e){return[e.deviceWithChildrenCount]}})},getPeakDevicesColumn:function(){return n.getColumn({name:"peakDeviceWithChildrenCount",header:{text:e("Peak devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of devices, including child devices")}},cell:{template:"{{item.peakDeviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"peakDeviceWithChildrenCount"},sortingByPath:{itemProperty:"peakDeviceWithChildrenCount"},getCsvValues:function(e){return[e.peakDeviceWithChildrenCount]}})},getSubscribedApplicationsColumn:function(){return n.getColumn({name:"subscribedApplications",header:e("Subscribed applications"),cell:{template:"{{(item.subscribedApplications || []).length}}"},filteringByMinMax:{itemProperty:"subscribedApplications.length"},sortingByPath:{itemProperty:"subscribedApplications.length"},getCsvValues:function(e){return[_.join(e.subscribedApplications," ")]}})},getCreationTimeColumn:function(){return n.getColumn({name:"creationTime",header:e("Creation time"),cell:{template:"{{item.creationTime | absoluteDate}}"},filteringByMinMaxDate:{itemProperty:"creationTime"},sortingByPath:{itemProperty:"creationTime"},getCsvValues:function(e){return[e.creationTime&&moment(e.creationTime).format("L")]}})},getParentTenantIdColumn:function(){return n.getColumn({name:"parentTenantId",header:e("Parent tenant"),cell:{template:"{{item.parentTenantId}}"},filteringByPattern:{itemProperty:"parentTenantId"},sortingByPath:{itemProperty:"parentTenantId"},getCsvValues:function(e){return[e.parentTenantId]}})},getDeviceEndpointCountColumn:function(){return n.getColumn({name:"deviceEndpointCount",header:{text:e("Endpoint devices"),tooltip:{icon:"question-circle-o",text:e("Leaf machines (without gateways and edges)")}},cell:{template:"{{item.deviceEndpointCount}}"},filteringByPattern:{itemProperty:"deviceEndpointCount"},sortingByPath:{itemProperty:"deviceEndpointCount"},getCsvValues:function(e){return[e.deviceEndpointCount]}})},getAlarmsCreatedCountColumn:function(){return n.getColumn({name:"alarmsCreated",header:e("Alarms created"),cell:{template:"{{item.alarmsCreatedCount}}"},filteringByPattern:{itemProperty:"alarmsCreatedCount"},sortingByPath:{itemProperty:"alarmsCreatedCount"},getCsvValues:function(e){return[e.alarmsCreatedCount]}})},getAlarmsUpdatedCountColumn:function(){return n.getColumn({name:"alarmsUpdated",header:e("Alarms updated"),cell:{template:"{{item.alarmsUpdatedCount}}"},filteringByPattern:{itemProperty:"alarmsUpdatedCount"},sortingByPath:{itemProperty:"alarmsUpdatedCount"},getCsvValues:function(e){return[e.alarmsUpdatedCount]}})},getInventoriesCreatedCountColumn:function(){return n.getColumn({name:"inventoriesCreated",header:e("Inventories created"),cell:{template:"{{item.inventoriesCreatedCount}}"},filteringByPattern:{itemProperty:"inventoriesCreatedCount"},sortingByPath:{itemProperty:"inventoriesCreatedCount"},getCsvValues:function(e){return[e.inventoriesCreatedCount]}})},getInventoriesUpdatedCountColumn:function(){return n.getColumn({name:"inventoriesUpdated",header:e("Inventories updated"),cell:{template:"{{item.inventoriesUpdatedCount}}"},filteringByPattern:{itemProperty:"inventoriesUpdatedCount"},sortingByPath:{itemProperty:"inventoriesUpdatedCount"},getCsvValues:function(e){return[e.inventoriesUpdatedCount]}})},getEventsCreatedCountColumn:function(){return n.getColumn({name:"eventsCreated",header:e("Events created"),cell:{template:"{{item.eventsCreatedCount}}"},filteringByPattern:{itemProperty:"eventsCreatedCount"},sortingByPath:{itemProperty:"eventsCreatedCount"},getCsvValues:function(e){return[e.eventsCreatedCount]}})},getEventsUpdatedCountColumn:function(){return n.getColumn({name:"eventsUpdated",header:e("Events updated"),cell:{template:"{{item.eventsUpdatedCount}}"},filteringByPattern:{itemProperty:"eventsUpdatedCount"},sortingByPath:{itemProperty:"eventsUpdatedCount"},getCsvValues:function(e){return[e.eventsUpdatedCount]}})},getMeasurementsCreatedCountColumn:function(){return n.getColumn({name:"measurementsCreated",header:e("Measurements created"),cell:{template:"{{item.measurementsCreatedCount}}"},filteringByPattern:{itemProperty:"measurementsCreatedCount"},sortingByPath:{itemProperty:"measurementsCreatedCount"},getCsvValues:function(e){return[e.measurementsCreatedCount]}})},getTotalInboundTransferColumn:function(){return n.getColumn({name:"totalInboundTransfer",header:e("Total inbound transfer"),cell:{template:"{{item.totalResourceCreateAndUpdateCount}}"},filteringByPattern:{itemProperty:"totalResourceCreateAndUpdateCount"},sortingByPath:{itemProperty:"totalResourceCreateAndUpdateCount"},getCsvValues:function(e){return[e.totalResourceCreateAndUpdateCount]}})},getCpuUsageColumn:function(){return n.getColumn({name:"cpuUsage",header:{text:e("CPU (m)"),tooltip:{icon:"question-circle-o",text:e("Sum of CPU daily usage in CPU milliseconds")}},cell:{template:"{{item.resources.cpu}}"},filteringByPattern:{itemProperty:"resources.cpu"},sortingByPath:{itemProperty:"resources.cpu"},getCsvValues:function(e){return[_.get(e,"resources.cpu")]}})},getMemoryUsageColumn:function(){return n.getColumn({name:"memoryUsage",header:{text:e("Memory (MB)"),tooltip:{icon:"question-circle-o",text:e("Sum of memory daily usage")}},cell:{template:"{{item.resources.memory}}"},filteringByPattern:{itemProperty:"resources.memory"},sortingByPath:{itemProperty:"resources.memory"},getCsvValues:function(e){return[_.get(e,"resources.memory")]}})}}}e.$inject=["c8yFilteringSortingCollections","SchemaPropertiesSvc","gettext"],angular.module("c8y.tenantStatistics").factory("c8yTenantStatisticsColumns",e)}();
|
|
1
|
+
"use strict";!function(){function e(n,i,e){return{getTenantNameColumn:function(){return n.getColumn({name:"tenantName",header:e("Tenant"),cell:{template:'<a ng-href="#{{getTenantDetails(item)}}">\n {{item.tenantCompany}}\n </a>',scopeExtensions:{getTenantDetails:function(e){return"/tenants/".concat(e.tenantId)}}},filteringByPattern:{itemProperty:"tenantCompany"},sortingByPath:{itemProperty:"tenantCompany"},getCsvHeaders:function(){return[e("Tenant")]},getCsvValues:function(e){return[e.tenantCompany]}})},getTenantIdColumn:function(){return n.getColumn({name:"tenantId",header:e("ID"),cell:{template:"{{item.tenantId}}"},filteringByPattern:{itemProperty:"tenantId"},sortingByPath:{itemProperty:"tenantId"},getCsvValues:function(e){return[e.tenantId]}})},getTenantDomainColumn:function(){return n.getColumn({name:"tenantDomain",header:e("Domain"),cell:{template:'<a\n ng-href="{{getTenantUrl(item)}}"\n target="_blank"\n rel="noopener noreferrer"\n >\n {{item.tenantDomain}}\n </a>',scopeExtensions:{getTenantUrl:function(e){return"https://".concat(e.tenantDomain)}}},filteringByPattern:{itemProperty:"tenantDomain"},sortingByPath:{itemProperty:"tenantDomain"},getCsvHeaders:function(){return[e("Domain")]},getCsvValues:function(e){return[e.tenantDomain]}})},getCustomPropertyColumn:function(r){var e=r.key,t=["tenantCustomProperties",e],e={name:e,priority:_.startsWith(e,"limit.")?-1e3:0,header:r.title,cell:{template:"<div\n ng-bind=\"getValue(item, '".concat(e,"') |\n formatBySchema:getSchema(tenantCustomProperties, '").concat(e,"')\">\n </div>"),scopeExtensions:{getValue:function(e,t){return _.get(e,["tenantCustomProperties",t])},getSchema:function(e,t){return _.get(e,[t,"schema"])}}},getCsvHeaders:function(){return[r.title]},getCsvValues:function(e){return[(e=e,t=r,n=_.get(t,"schema.default"),_.get(e,["tenantCustomProperties",t.key],n))];var t,n}};return _.merge(e,function(e){var t=i.getType(e).filteringKey,e={itemProperty:["tenantCustomProperties",e.key]},n={};return _.set(n,t,e),_.set(n,"sortingByPath",e),n}(r)),_.set(e.cell.scopeExtensions,t,r),n.getColumn(e)},getApiRequestsColumn:function(){return n.getColumn({name:"requestCount",header:e("API requests"),cell:{template:"{{item.requestCount}}"},filteringByMinMax:{itemProperty:"requestCount"},sortingByPath:{itemProperty:"requestCount"},getCsvValues:function(e){return[e.requestCount]}})},getDeviceApiRequestsColumn:function(){return n.getColumn({name:"deviceRequestCount",header:e("Device API requests"),cell:{template:"{{item.deviceRequestCount}}"},filteringByMinMax:{itemProperty:"deviceRequestCount"},sortingByPath:{itemProperty:"deviceRequestCount"},getCsvValues:function(e){return[e.deviceRequestCount]}})},getStorageQuotaColumn:function(){return n.getColumn({name:"storageQuota",header:e("Storage quota (MB)"),cell:{template:'<span ng-if="item.storageLimitPerDevice">{{item.storageQuota}}</span>'},filteringByMinMax:{itemProperty:"storageQuota"},sortingByPath:{itemProperty:"storageQuota"},getCsvValues:function(e){return[e.storageQuota||""]}})},getStorageSizeColumn:function(){return n.getColumn({name:"storageSize",header:e("Storage (MB)"),cell:{template:"{{item.storageSize}}"},filteringByMinMax:{itemProperty:"storageSize"},getCsvValues:function(e){return[e.storageSize]}})},getPeakStorageSizeColumn:function(){return n.getColumn({name:"peakStorageSize",header:e("Peak storage (MB)"),cell:{template:"{{item.peakStorageSize}}"},filteringByMinMax:{itemProperty:"peakStorageSize"},getCsvValues:function(e){return[e.peakStorageSize]}})},getRootDevicesColumn:function(){return n.getColumn({name:"deviceCount",header:{text:e("Root devices"),tooltip:{icon:"question-circle-o",text:e("Number of root devices, excluding child devices")}},cell:{template:"{{item.deviceCount}}"},filteringByMinMax:{itemProperty:"deviceCount"},sortingByPath:{itemProperty:"deviceCount"},getCsvValues:function(e){return[e.deviceCount]}})},getPeakRootDevicesColumn:function(){return n.getColumn({name:"peakDeviceCount",header:{text:e("Peak root devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of root devices, excluding child devices")}},cell:{template:"{{item.peakDeviceCount}}"},filteringByMinMax:{itemProperty:"peakDeviceCount"},sortingByPath:{itemProperty:"peakDeviceCount"},getCsvValues:function(e){return[e.peakDeviceCount]}})},getDevicesColumn:function(){return n.getColumn({name:"deviceWithChildrenCount",header:{text:e("Devices"),tooltip:{icon:"question-circle-o",text:e("Number of devices, including child devices")}},cell:{template:"{{item.deviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"deviceWithChildrenCount"},sortingByPath:{itemProperty:"deviceWithChildrenCount"},getCsvValues:function(e){return[e.deviceWithChildrenCount]}})},getPeakDevicesColumn:function(){return n.getColumn({name:"peakDeviceWithChildrenCount",header:{text:e("Peak devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of devices, including child devices")}},cell:{template:"{{item.peakDeviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"peakDeviceWithChildrenCount"},sortingByPath:{itemProperty:"peakDeviceWithChildrenCount"},getCsvValues:function(e){return[e.peakDeviceWithChildrenCount]}})},getSubscribedApplicationsColumn:function(){return n.getColumn({name:"subscribedApplications",header:e("Subscribed applications"),cell:{template:"{{(item.subscribedApplications || []).length}}"},filteringByMinMax:{itemProperty:"subscribedApplications.length"},sortingByPath:{itemProperty:"subscribedApplications.length"},getCsvValues:function(e){return[_.join(e.subscribedApplications," ")]}})},getCreationTimeColumn:function(){return n.getColumn({name:"creationTime",header:e("Creation time"),cell:{template:"{{item.creationTime | absoluteDate}}"},filteringByMinMaxDate:{itemProperty:"creationTime"},sortingByPath:{itemProperty:"creationTime"},getCsvValues:function(e){return[e.creationTime&&moment(e.creationTime).format("L")]}})},getParentTenantIdColumn:function(){return n.getColumn({name:"parentTenantId",header:e("Parent tenant"),cell:{template:"{{item.parentTenantId}}"},filteringByPattern:{itemProperty:"parentTenantId"},sortingByPath:{itemProperty:"parentTenantId"},getCsvValues:function(e){return[e.parentTenantId]}})},getDeviceEndpointCountColumn:function(){return n.getColumn({name:"deviceEndpointCount",header:{text:e("Endpoint devices"),tooltip:{icon:"question-circle-o",text:e("Leaf machines (without gateways and edges)")}},cell:{template:"{{item.deviceEndpointCount}}"},filteringByPattern:{itemProperty:"deviceEndpointCount"},sortingByPath:{itemProperty:"deviceEndpointCount"},getCsvValues:function(e){return[e.deviceEndpointCount]}})},getAlarmsCreatedCountColumn:function(){return n.getColumn({name:"alarmsCreated",header:e("Alarms created"),cell:{template:"{{item.alarmsCreatedCount}}"},filteringByPattern:{itemProperty:"alarmsCreatedCount"},sortingByPath:{itemProperty:"alarmsCreatedCount"},getCsvValues:function(e){return[e.alarmsCreatedCount]}})},getAlarmsUpdatedCountColumn:function(){return n.getColumn({name:"alarmsUpdated",header:e("Alarms updated"),cell:{template:"{{item.alarmsUpdatedCount}}"},filteringByPattern:{itemProperty:"alarmsUpdatedCount"},sortingByPath:{itemProperty:"alarmsUpdatedCount"},getCsvValues:function(e){return[e.alarmsUpdatedCount]}})},getInventoriesCreatedCountColumn:function(){return n.getColumn({name:"inventoriesCreated",header:e("Inventories created"),cell:{template:"{{item.inventoriesCreatedCount}}"},filteringByPattern:{itemProperty:"inventoriesCreatedCount"},sortingByPath:{itemProperty:"inventoriesCreatedCount"},getCsvValues:function(e){return[e.inventoriesCreatedCount]}})},getInventoriesUpdatedCountColumn:function(){return n.getColumn({name:"inventoriesUpdated",header:e("Inventories updated"),cell:{template:"{{item.inventoriesUpdatedCount}}"},filteringByPattern:{itemProperty:"inventoriesUpdatedCount"},sortingByPath:{itemProperty:"inventoriesUpdatedCount"},getCsvValues:function(e){return[e.inventoriesUpdatedCount]}})},getEventsCreatedCountColumn:function(){return n.getColumn({name:"eventsCreated",header:e("Events created"),cell:{template:"{{item.eventsCreatedCount}}"},filteringByPattern:{itemProperty:"eventsCreatedCount"},sortingByPath:{itemProperty:"eventsCreatedCount"},getCsvValues:function(e){return[e.eventsCreatedCount]}})},getEventsUpdatedCountColumn:function(){return n.getColumn({name:"eventsUpdated",header:e("Events updated"),cell:{template:"{{item.eventsUpdatedCount}}"},filteringByPattern:{itemProperty:"eventsUpdatedCount"},sortingByPath:{itemProperty:"eventsUpdatedCount"},getCsvValues:function(e){return[e.eventsUpdatedCount]}})},getMeasurementsCreatedCountColumn:function(){return n.getColumn({name:"measurementsCreated",header:e("Measurements created"),cell:{template:"{{item.measurementsCreatedCount}}"},filteringByPattern:{itemProperty:"measurementsCreatedCount"},sortingByPath:{itemProperty:"measurementsCreatedCount"},getCsvValues:function(e){return[e.measurementsCreatedCount]}})},getTotalInboundTransferColumn:function(){return n.getColumn({name:"totalInboundTransfer",header:e("Total inbound transfer"),cell:{template:"{{item.totalResourceCreateAndUpdateCount}}"},filteringByPattern:{itemProperty:"totalResourceCreateAndUpdateCount"},sortingByPath:{itemProperty:"totalResourceCreateAndUpdateCount"},getCsvValues:function(e){return[e.totalResourceCreateAndUpdateCount]}})},getCpuUsageColumn:function(){return n.getColumn({name:"cpuUsage",header:{text:e("CPU (m)"),tooltip:{icon:"question-circle-o",text:e("Sum of CPU daily usage in CPU millicores")}},cell:{template:"{{item.resources.cpu}}"},filteringByPattern:{itemProperty:"resources.cpu"},sortingByPath:{itemProperty:"resources.cpu"},getCsvValues:function(e){return[_.get(e,"resources.cpu")]}})},getMemoryUsageColumn:function(){return n.getColumn({name:"memoryUsage",header:{text:e("Memory (MB)"),tooltip:{icon:"question-circle-o",text:e("Sum of memory daily usage")}},cell:{template:"{{item.resources.memory}}"},filteringByPattern:{itemProperty:"resources.memory"},sortingByPath:{itemProperty:"resources.memory"},getCsvValues:function(e){return[_.get(e,"resources.memory")]}})}}}e.$inject=["c8yFilteringSortingCollections","SchemaPropertiesSvc","gettext"],angular.module("c8y.tenantStatistics").factory("c8yTenantStatisticsColumns",e)}();
|