@c8y/ng1-modules 1018.156.0 → 1018.159.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/NOTICES +2171 -3054
- package/administration-applicationSettings/views/index.html +51 -18
- package/core/locales/de.po +164 -87
- package/core/ui/containers/header.html +1 -1
- package/devicemanagement-deviceNetwork/views/network.html +54 -33
- package/devicemanagement-logViewer/views/index.html +98 -40
- package/package.json +1 -1
- package/smartRestEditor/requestEditor/requestEditor.html +123 -49
- package/tenantPolicies/retentionRule/retentionRuleRow.html +29 -12
- package/tenantPolicies/tenantOptions/tenantOptionsRow.html +30 -9
- package/tenantPolicies/tenantPolicyDetail/accordion.html +14 -4
- package/tenantPolicies/tenantPolicyDetail/tenantPolicyDetail.html +65 -22
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
<div
|
|
1
|
+
<div
|
|
2
|
+
class="deviceNetwork row"
|
|
3
|
+
ng-controller="deviceNetworkCtrl"
|
|
4
|
+
>
|
|
2
5
|
<div class="col-lg-12 col-lg-max">
|
|
3
6
|
<form name="wanForm">
|
|
4
7
|
<div class="card">
|
|
@@ -20,9 +23,9 @@
|
|
|
20
23
|
<div class="form-group">
|
|
21
24
|
<label for="apn">{{ 'APN' | translate }}</label>
|
|
22
25
|
<input
|
|
26
|
+
class="form-control"
|
|
23
27
|
id="apn"
|
|
24
28
|
type="text"
|
|
25
|
-
class="form-control"
|
|
26
29
|
ng-model="device.c8y_Network.c8y_WAN.apn"
|
|
27
30
|
/>
|
|
28
31
|
</div>
|
|
@@ -30,8 +33,8 @@
|
|
|
30
33
|
<label for="authType">{{ 'Auth type' | translate }}</label>
|
|
31
34
|
<div class="c8y-select-wrapper">
|
|
32
35
|
<select
|
|
33
|
-
id="authType"
|
|
34
36
|
class="form-control"
|
|
37
|
+
id="authType"
|
|
35
38
|
ng-model="device.c8y_Network.c8y_WAN.authType"
|
|
36
39
|
ng-options="authType.value as (authType.label | translate) for authType in authTypes"
|
|
37
40
|
></select>
|
|
@@ -43,18 +46,18 @@
|
|
|
43
46
|
<div class="form-group">
|
|
44
47
|
<label for="user">{{ 'User' | translate }}</label>
|
|
45
48
|
<input
|
|
49
|
+
class="form-control"
|
|
46
50
|
id="user"
|
|
47
51
|
type="text"
|
|
48
|
-
class="form-control"
|
|
49
52
|
ng-model="device.c8y_Network.c8y_WAN.username"
|
|
50
53
|
/>
|
|
51
54
|
</div>
|
|
52
55
|
<div class="form-group">
|
|
53
56
|
<label for="password">{{ 'Password' | translate }}</label>
|
|
54
57
|
<input
|
|
58
|
+
class="form-control"
|
|
55
59
|
id="password"
|
|
56
60
|
type="text"
|
|
57
|
-
class="form-control"
|
|
58
61
|
ng-model="device.c8y_Network.c8y_WAN.password"
|
|
59
62
|
/>
|
|
60
63
|
</div>
|
|
@@ -65,8 +68,8 @@
|
|
|
65
68
|
<div class="card-footer separator">
|
|
66
69
|
<button
|
|
67
70
|
class="btn btn-primary"
|
|
68
|
-
type="submit"
|
|
69
71
|
title="{{ 'Save' | translate }}"
|
|
72
|
+
type="submit"
|
|
70
73
|
ng-disabled="wanForm.$invalid || wanForm.$pristine"
|
|
71
74
|
ng-click="saveWANviaIP(device)"
|
|
72
75
|
>
|
|
@@ -74,14 +77,13 @@
|
|
|
74
77
|
</button>
|
|
75
78
|
<button
|
|
76
79
|
class="btn btn-primary"
|
|
77
|
-
type="submit"
|
|
78
80
|
title="{{ 'Save (SMS)' | translate }}"
|
|
81
|
+
type="submit"
|
|
79
82
|
ng-disabled="wanForm.$invalid || !smsEnabled || wanForm.$pristine"
|
|
80
83
|
ng-click="saveWANviaSMS(device)"
|
|
81
84
|
>
|
|
82
85
|
{{ 'Save (SMS)' | translate }}
|
|
83
86
|
<i
|
|
84
|
-
ng-if="!smsEnabled"
|
|
85
87
|
c8y-icon="question-circle-o"
|
|
86
88
|
uib-tooltip="{{
|
|
87
89
|
'Messaging provider must be configured to send WAN settings to device via SMS.'
|
|
@@ -89,6 +91,7 @@
|
|
|
89
91
|
}}"
|
|
90
92
|
tooltip-popup-delay="500"
|
|
91
93
|
tooltip-append-to-body="true"
|
|
94
|
+
ng-if="!smsEnabled"
|
|
92
95
|
></i>
|
|
93
96
|
</button>
|
|
94
97
|
</div>
|
|
@@ -97,7 +100,10 @@
|
|
|
97
100
|
</div>
|
|
98
101
|
|
|
99
102
|
<div class="col-lg-12 col-lg-max">
|
|
100
|
-
<form
|
|
103
|
+
<form
|
|
104
|
+
name="lanDhcpForm"
|
|
105
|
+
ng-submit="saveLANandDHCP(device)"
|
|
106
|
+
>
|
|
101
107
|
<div class="card m-b-0">
|
|
102
108
|
<div class="card-header separator">
|
|
103
109
|
<div class="card-title">{{ 'LAN' | translate }}</div>
|
|
@@ -122,19 +128,22 @@
|
|
|
122
128
|
</div>
|
|
123
129
|
|
|
124
130
|
<div class="col-xs-12 col-md-4">
|
|
125
|
-
<div
|
|
131
|
+
<div
|
|
132
|
+
class="form-group"
|
|
133
|
+
ng-class="{ 'has-error': invalid('lanDhcpForm', 'ip') }"
|
|
134
|
+
>
|
|
126
135
|
<label for="ip">{{ 'IP Address' | translate }}</label>
|
|
127
136
|
<input
|
|
137
|
+
class="form-control"
|
|
128
138
|
id="ip"
|
|
139
|
+
placeholder="{{ 'e.g.' | translate }} 192.168.0.1"
|
|
129
140
|
name="ip"
|
|
130
141
|
type="text"
|
|
142
|
+
required
|
|
131
143
|
validate-ip
|
|
132
|
-
class="form-control"
|
|
133
144
|
ng-model="device.c8y_Network.c8y_LAN.ip"
|
|
134
145
|
ng-change="onLanIpChanged(device.c8y_Network.c8y_LAN)"
|
|
135
|
-
placeholder="{{ 'e.g.' | translate }} 192.168.0.1"
|
|
136
146
|
maxlength="15"
|
|
137
|
-
required
|
|
138
147
|
/>
|
|
139
148
|
<c8y-messages>
|
|
140
149
|
<c8y-message
|
|
@@ -146,18 +155,21 @@
|
|
|
146
155
|
</c8y-messages>
|
|
147
156
|
</div>
|
|
148
157
|
|
|
149
|
-
<div
|
|
158
|
+
<div
|
|
159
|
+
class="form-group"
|
|
160
|
+
ng-class="{ 'has-error': invalid('lanDhcpForm', 'netmask') }"
|
|
161
|
+
>
|
|
150
162
|
<label for="netmaskLan">{{ 'Subnet mask' | translate }}</label>
|
|
151
163
|
<input
|
|
164
|
+
class="form-control"
|
|
152
165
|
id="netmaskLan"
|
|
166
|
+
placeholder="{{ 'e.g.' | translate }} 255.255.255.0"
|
|
153
167
|
name="netmask"
|
|
154
168
|
type="text"
|
|
169
|
+
required
|
|
155
170
|
validate-ip
|
|
156
|
-
class="form-control"
|
|
157
171
|
ng-model="device.c8y_Network.c8y_LAN.netmask"
|
|
158
|
-
placeholder="{{ 'e.g.' | translate }} 255.255.255.0"
|
|
159
172
|
maxlength="15"
|
|
160
|
-
required
|
|
161
173
|
/>
|
|
162
174
|
<c8y-messages>
|
|
163
175
|
<c8y-message
|
|
@@ -179,13 +191,13 @@
|
|
|
179
191
|
uib-btn-checkbox
|
|
180
192
|
>
|
|
181
193
|
<i
|
|
182
|
-
c8y-icon="minus-circle"
|
|
183
194
|
class="text-danger"
|
|
195
|
+
c8y-icon="minus-circle"
|
|
184
196
|
ng-show="!device.c8y_Network.c8y_LAN.enabled"
|
|
185
197
|
></i>
|
|
186
198
|
<i
|
|
187
|
-
c8y-icon="check-circle"
|
|
188
199
|
class="text-success"
|
|
200
|
+
c8y-icon="check-circle"
|
|
189
201
|
ng-show="device.c8y_Network.c8y_LAN.enabled"
|
|
190
202
|
></i>
|
|
191
203
|
<span
|
|
@@ -203,7 +215,10 @@
|
|
|
203
215
|
</button>
|
|
204
216
|
</div>
|
|
205
217
|
</div>
|
|
206
|
-
<div
|
|
218
|
+
<div
|
|
219
|
+
class="row"
|
|
220
|
+
ng-model="device.c8y_Network.c8y_DHCP.enabled"
|
|
221
|
+
>
|
|
207
222
|
<label class="c8y-checkbox input-sm p-l-16 col-md-3">
|
|
208
223
|
<input
|
|
209
224
|
type="checkbox"
|
|
@@ -218,11 +233,17 @@
|
|
|
218
233
|
</div>
|
|
219
234
|
</div>
|
|
220
235
|
|
|
221
|
-
<div
|
|
222
|
-
|
|
236
|
+
<div
|
|
237
|
+
class="collapse"
|
|
238
|
+
uib-collapse="!device.c8y_Network.c8y_DHCP.enabled"
|
|
239
|
+
>
|
|
240
|
+
<div
|
|
241
|
+
class="card-block bg-level-1"
|
|
242
|
+
ng-show="device.c8y_Network.c8y_LAN.enabled"
|
|
243
|
+
>
|
|
223
244
|
<fieldset
|
|
224
|
-
name="lanDhcpForm"
|
|
225
245
|
class="c8y-fieldset"
|
|
246
|
+
name="lanDhcpForm"
|
|
226
247
|
ng-model="device.c8y_Network.c8y_LAN.enabled"
|
|
227
248
|
>
|
|
228
249
|
<legend class="m-b-8">{{ 'DHCP' | translate }}</legend>
|
|
@@ -237,14 +258,14 @@
|
|
|
237
258
|
ng-class="{ 'has-error': invalid('lanDhcpForm', 'addressRangeStart') }"
|
|
238
259
|
>
|
|
239
260
|
<input
|
|
261
|
+
class="form-control"
|
|
240
262
|
id="addressRangeStart"
|
|
263
|
+
placeholder="{{ 'e.g.' | translate }} 192.168.0.1"
|
|
241
264
|
name="addressRangeStart"
|
|
242
265
|
type="text"
|
|
243
266
|
validate-ip
|
|
244
|
-
class="form-control"
|
|
245
267
|
ng-model="device.c8y_Network.c8y_DHCP.addressRange.start"
|
|
246
268
|
ng-disabled="!device.c8y_Network.c8y_LAN.enabled"
|
|
247
|
-
placeholder="{{ 'e.g.' | translate }} 192.168.0.1"
|
|
248
269
|
maxlength="15"
|
|
249
270
|
ng-required="device.c8y_Network.c8y_DHCP.enabled"
|
|
250
271
|
/>
|
|
@@ -263,14 +284,14 @@
|
|
|
263
284
|
ng-class="{ 'has-error': invalid('lanDhcpForm', 'addressRangeEnd') }"
|
|
264
285
|
>
|
|
265
286
|
<input
|
|
287
|
+
class="form-control"
|
|
266
288
|
id="addressRangeEnd"
|
|
289
|
+
placeholder="{{ 'e.g.' | translate }} 192.168.0.10"
|
|
267
290
|
name="addressRangeEnd"
|
|
268
291
|
type="text"
|
|
269
292
|
validate-ip
|
|
270
|
-
class="form-control"
|
|
271
293
|
ng-model="device.c8y_Network.c8y_DHCP.addressRange.end"
|
|
272
294
|
ng-disabled="!device.c8y_Network.c8y_LAN.enabled"
|
|
273
|
-
placeholder="{{ 'e.g.' | translate }} 192.168.0.10"
|
|
274
295
|
maxlength="15"
|
|
275
296
|
ng-required="device.c8y_Network.c8y_DHCP.enabled"
|
|
276
297
|
/>
|
|
@@ -289,9 +310,9 @@
|
|
|
289
310
|
<div class="form-group form-group-sm">
|
|
290
311
|
<label for="domainName">{{ 'Domain name' | translate }}</label>
|
|
291
312
|
<input
|
|
313
|
+
class="form-control"
|
|
292
314
|
id="domainName"
|
|
293
315
|
type="text"
|
|
294
|
-
class="form-control"
|
|
295
316
|
ng-model="device.c8y_Network.c8y_DHCP.domainName"
|
|
296
317
|
ng-disabled="!device.c8y_Network.c8y_LAN.enabled"
|
|
297
318
|
/>
|
|
@@ -304,14 +325,14 @@
|
|
|
304
325
|
>
|
|
305
326
|
<label for="dns1">{{ 'DNS' | translate }}</label>
|
|
306
327
|
<input
|
|
328
|
+
class="form-control"
|
|
307
329
|
id="dns1"
|
|
330
|
+
placeholder="{{ 'e.g.' | translate }} 192.168.0.1"
|
|
308
331
|
name="dns1"
|
|
309
332
|
type="text"
|
|
310
333
|
validate-ip
|
|
311
|
-
class="form-control"
|
|
312
334
|
ng-model="device.c8y_Network.c8y_DHCP.dns1"
|
|
313
335
|
ng-disabled="!device.c8y_Network.c8y_LAN.enabled"
|
|
314
|
-
placeholder="{{ 'e.g.' | translate }} 192.168.0.1"
|
|
315
336
|
maxlength="15"
|
|
316
337
|
/>
|
|
317
338
|
<c8y-messages>
|
|
@@ -330,14 +351,14 @@
|
|
|
330
351
|
>
|
|
331
352
|
<label for="dns2">{{ 'DNS 2' | translate }}</label>
|
|
332
353
|
<input
|
|
354
|
+
class="form-control"
|
|
333
355
|
id="dns2"
|
|
356
|
+
placeholder="{{ 'e.g.' | translate }} 192.168.0.2"
|
|
334
357
|
name="dns2"
|
|
335
358
|
type="text"
|
|
336
359
|
validate-ip
|
|
337
|
-
class="form-control"
|
|
338
360
|
ng-model="device.c8y_Network.c8y_DHCP.dns2"
|
|
339
361
|
ng-disabled="!device.c8y_Network.c8y_LAN.enabled"
|
|
340
|
-
placeholder="{{ 'e.g.' | translate }} 192.168.0.2"
|
|
341
362
|
maxlength="15"
|
|
342
363
|
/>
|
|
343
364
|
|
|
@@ -359,8 +380,8 @@
|
|
|
359
380
|
<div class="card-footer separator">
|
|
360
381
|
<button
|
|
361
382
|
class="btn btn-primary"
|
|
362
|
-
type="submit"
|
|
363
383
|
title="{{ 'Save' | translate }}"
|
|
384
|
+
type="submit"
|
|
364
385
|
ng-disabled="lanDhcpForm.$invalid || lanDhcpForm.$pristine"
|
|
365
386
|
>
|
|
366
387
|
{{ 'Save' | translate }}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
<div
|
|
1
|
+
<div
|
|
2
|
+
class="log-viewer"
|
|
3
|
+
ng-controller="logViewerCtrl as vm"
|
|
4
|
+
>
|
|
2
5
|
<c8y-ui-action-bar-set>
|
|
3
6
|
<li>
|
|
4
7
|
<div
|
|
@@ -10,34 +13,46 @@
|
|
|
10
13
|
>
|
|
11
14
|
<button
|
|
12
15
|
class="dropdown-toggle c8y-dropdown"
|
|
13
|
-
type="button"
|
|
14
16
|
title="{{ 'Request log file' | translate }}"
|
|
15
|
-
uib-dropdown-toggle
|
|
16
17
|
aria-haspopup="true"
|
|
18
|
+
type="button"
|
|
19
|
+
uib-dropdown-toggle
|
|
17
20
|
>
|
|
18
21
|
<i c8y-icon="file-text"></i>
|
|
19
22
|
<span translate>Request log file</span>
|
|
20
23
|
<span c8y-icon="caret-down"></span>
|
|
21
24
|
</button>
|
|
22
|
-
<ul
|
|
25
|
+
<ul
|
|
26
|
+
class="dropdown-menu dropdown-menu-right dropdown-menu-action-bar"
|
|
27
|
+
uib-dropdown-menu
|
|
28
|
+
>
|
|
23
29
|
<li class="dropdown-form">
|
|
24
|
-
<form
|
|
25
|
-
|
|
30
|
+
<form
|
|
31
|
+
class="form"
|
|
32
|
+
name="logRequestForm"
|
|
33
|
+
>
|
|
34
|
+
<div
|
|
35
|
+
class="form-group c8y-datetime-picker"
|
|
36
|
+
data-cy="fromDatePicker"
|
|
37
|
+
>
|
|
26
38
|
<label>{{ 'From`date`' | translate }}</label>
|
|
27
39
|
<c8y-date-time-picker
|
|
40
|
+
placeholder="{{ 'From`date`' | translate }}"
|
|
28
41
|
is-open="vm.datePickerFromOpen"
|
|
29
42
|
ng-model="vm.filters.dateFrom"
|
|
30
|
-
placeholder="{{ 'From`date`' | translate }}"
|
|
31
43
|
max-date="vm.filters.dateTo"
|
|
32
44
|
></c8y-date-time-picker>
|
|
33
45
|
</div>
|
|
34
46
|
|
|
35
|
-
<div
|
|
47
|
+
<div
|
|
48
|
+
class="form-group c8y-datetime-picker"
|
|
49
|
+
data-cy="toDatePicker"
|
|
50
|
+
>
|
|
36
51
|
<label>{{ 'To`date`' | translate }}</label>
|
|
37
52
|
<c8y-date-time-picker
|
|
53
|
+
placeholder="{{ 'To`date`' | translate }}"
|
|
38
54
|
is-open="vm.datePickerToOpen"
|
|
39
55
|
ng-model="vm.filters.dateTo"
|
|
40
|
-
placeholder="{{ 'To`date`' | translate }}"
|
|
41
56
|
min-date="vm.filters.dateFrom"
|
|
42
57
|
></c8y-date-time-picker>
|
|
43
58
|
</div>
|
|
@@ -45,9 +60,9 @@
|
|
|
45
60
|
<div class="form-group">
|
|
46
61
|
<label translate>Type of log</label>
|
|
47
62
|
<ui-select
|
|
63
|
+
required
|
|
48
64
|
ng-init="vm.logtypeSelect = $select"
|
|
49
65
|
ng-model="vm.filters.logFile"
|
|
50
|
-
required
|
|
51
66
|
>
|
|
52
67
|
<ui-select-match
|
|
53
68
|
title="{{ $select.selected.name }}"
|
|
@@ -58,7 +73,10 @@
|
|
|
58
73
|
<ui-select-choices
|
|
59
74
|
repeat="logType.name as logType in vm.logTypes | filter: $select.search | orderBy:'name'"
|
|
60
75
|
>
|
|
61
|
-
<div
|
|
76
|
+
<div
|
|
77
|
+
title="{{ logType.name }}"
|
|
78
|
+
ng-bind="logType.name"
|
|
79
|
+
></div>
|
|
62
80
|
</ui-select-choices>
|
|
63
81
|
</ui-select>
|
|
64
82
|
</div>
|
|
@@ -76,17 +94,17 @@
|
|
|
76
94
|
<div class="form-group">
|
|
77
95
|
<label translate>Last lines to display</label>
|
|
78
96
|
<input
|
|
79
|
-
type="number"
|
|
80
97
|
class="form-control"
|
|
81
|
-
ng-model="vm.filters.maximumLines"
|
|
82
98
|
placeholder="{{ 'e.g.' | translate }} 10"
|
|
99
|
+
type="number"
|
|
83
100
|
required
|
|
101
|
+
ng-model="vm.filters.maximumLines"
|
|
84
102
|
/>
|
|
85
103
|
</div>
|
|
86
104
|
<button
|
|
87
105
|
class="btn btn-primary btn-block"
|
|
88
|
-
type="button"
|
|
89
106
|
title="{{ 'Request log file' | translate }}"
|
|
107
|
+
type="button"
|
|
90
108
|
ng-disabled="logRequestForm.$invalid"
|
|
91
109
|
ng-click="requestLogfile(vm.filters); isOpen = !isOpen"
|
|
92
110
|
c8yProductExperience
|
|
@@ -107,13 +125,16 @@
|
|
|
107
125
|
</c8y-ui-action-bar-set>
|
|
108
126
|
|
|
109
127
|
<c8y-ui-empty-state
|
|
110
|
-
ng-show="operations.length === 0"
|
|
111
128
|
[icon]="'file-text'"
|
|
112
129
|
[title]="'No logs found.' | translate"
|
|
130
|
+
ng-show="operations.length === 0"
|
|
113
131
|
></c8y-ui-empty-state>
|
|
114
132
|
|
|
115
133
|
<div class="c8y-list__group">
|
|
116
|
-
<div
|
|
134
|
+
<div
|
|
135
|
+
class="page-sticky-header c8y-list__item hidden-xs"
|
|
136
|
+
ng-if="operations.length > 0"
|
|
137
|
+
>
|
|
117
138
|
<div class="c8y-list__item__block">
|
|
118
139
|
<div class="c8y-list__item__icon">
|
|
119
140
|
<i class="p-l-24"></i>
|
|
@@ -134,20 +155,23 @@
|
|
|
134
155
|
|
|
135
156
|
<div
|
|
136
157
|
class="c8y-list__item collapsible"
|
|
137
|
-
ng-repeat="op in operations track by op.id"
|
|
138
158
|
ng-class="{ expanded: op === selectedLog, 'realtime-animation-list': realtimeAnimation }"
|
|
159
|
+
ng-repeat="op in operations track by op.id"
|
|
139
160
|
>
|
|
140
161
|
<div class="c8y-list__item__block">
|
|
141
162
|
<div class="c8y-list__item__icon">
|
|
142
163
|
<button
|
|
143
164
|
class="btn btn-dot"
|
|
144
|
-
type="button"
|
|
145
165
|
aria-label="{{ op.status | translate }}"
|
|
146
166
|
uib-tooltip="{{ op.status | translate }}"
|
|
147
167
|
tooltip-popup-delay="500"
|
|
148
168
|
tooltip-trigger="'mouseenter'"
|
|
169
|
+
type="button"
|
|
149
170
|
>
|
|
150
|
-
<i
|
|
171
|
+
<i
|
|
172
|
+
ng-class="statusClass(op)"
|
|
173
|
+
c8y-icon="{{ statusIcon(op) }}"
|
|
174
|
+
></i>
|
|
151
175
|
</button>
|
|
152
176
|
</div>
|
|
153
177
|
|
|
@@ -156,9 +180,9 @@
|
|
|
156
180
|
<div class="col-sm-5">
|
|
157
181
|
<button
|
|
158
182
|
class="btn-clean"
|
|
159
|
-
type="button"
|
|
160
|
-
title="{{ getOperationDesc(op) | translate }}"
|
|
161
183
|
ng-class="{ 'no-pointer': !hasLogFile(op) }"
|
|
184
|
+
title="{{ getOperationDesc(op) | translate }}"
|
|
185
|
+
type="button"
|
|
162
186
|
ng-click="selectLogfile(op)"
|
|
163
187
|
>
|
|
164
188
|
{{ getOperationDesc(op) | translate }}
|
|
@@ -169,7 +193,10 @@
|
|
|
169
193
|
class="text-muted"
|
|
170
194
|
ng-if="op.c8y_LogfileRequest.dateFrom && op.c8y_LogfileRequest.dateTo"
|
|
171
195
|
>
|
|
172
|
-
<i
|
|
196
|
+
<i
|
|
197
|
+
class="m-r-4"
|
|
198
|
+
c8y-icon="calendar"
|
|
199
|
+
></i>
|
|
173
200
|
{{ op.c8y_LogfileRequest.dateFrom | absoluteDate }} –
|
|
174
201
|
{{ op.c8y_LogfileRequest.dateTo | absoluteDate }}
|
|
175
202
|
</small>
|
|
@@ -178,14 +205,14 @@
|
|
|
178
205
|
</div>
|
|
179
206
|
<div class="c8y-list__item__actions showOnHover">
|
|
180
207
|
<button
|
|
181
|
-
ng-if="!hasLogFile(op) && isPending(op)"
|
|
182
208
|
class="btn btn-dot a-s-center"
|
|
183
|
-
type="button"
|
|
184
|
-
uib-tooltip="{{ 'Cancel operation' | translate }}"
|
|
185
209
|
aria-label="{{ 'Cancel operation' | translate }}"
|
|
210
|
+
uib-tooltip="{{ 'Cancel operation' | translate }}"
|
|
186
211
|
tooltip-popup-delay="500"
|
|
187
|
-
popover-trigger="'mouseenter focus'"
|
|
188
212
|
tooltip-placement="left"
|
|
213
|
+
type="button"
|
|
214
|
+
ng-if="!hasLogFile(op) && isPending(op)"
|
|
215
|
+
popover-trigger="'mouseenter focus'"
|
|
189
216
|
ng-click="cancel(op)"
|
|
190
217
|
c8yProductExperience
|
|
191
218
|
[actionName]="PRODUCT_EXPERIENCE.EVENT"
|
|
@@ -197,11 +224,11 @@
|
|
|
197
224
|
</button>
|
|
198
225
|
<button
|
|
199
226
|
class="btn btn-dot btn-dot--danger a-s-center"
|
|
200
|
-
type="button"
|
|
201
227
|
aria-label="{{ 'Delete operation' | translate }}"
|
|
202
228
|
uib-tooltip="{{ 'Delete operation' | translate }}"
|
|
203
229
|
tooltip-popup-delay="500"
|
|
204
230
|
tooltip-placement="left"
|
|
231
|
+
type="button"
|
|
205
232
|
ng-click="remove(op)"
|
|
206
233
|
ng-if="!hasLogFile(op) && isFailed(op)"
|
|
207
234
|
>
|
|
@@ -209,31 +236,43 @@
|
|
|
209
236
|
</button>
|
|
210
237
|
<button
|
|
211
238
|
class="collapse-btn"
|
|
212
|
-
type="button"
|
|
213
|
-
title="{{ 'Expand' | translate }}"
|
|
214
239
|
ng-class="{ active: op === selectedLog }"
|
|
240
|
+
title="{{ 'Expand' | translate }}"
|
|
241
|
+
type="button"
|
|
215
242
|
ng-click="op===selectedLog ? selectLogfile({}) :selectLogfile(op);"
|
|
216
243
|
ng-if="hasLogFile(op)"
|
|
217
244
|
>
|
|
218
245
|
<i c8y-icon="chevron-down"></i>
|
|
219
246
|
</button>
|
|
220
247
|
<span
|
|
221
|
-
ng-if="!hasLogFile(op) && !isPending(op) && !isFailed(op)"
|
|
222
248
|
class="dropdown settings m-r-40"
|
|
249
|
+
ng-if="!hasLogFile(op) && !isPending(op) && !isFailed(op)"
|
|
223
250
|
></span>
|
|
224
|
-
<span
|
|
251
|
+
<span
|
|
252
|
+
class="dropdown settings"
|
|
253
|
+
ng-if="hasLogFile(op)"
|
|
254
|
+
is-open="isopen"
|
|
255
|
+
uib-dropdown
|
|
256
|
+
>
|
|
225
257
|
<button
|
|
226
258
|
class="dropdown-toggle c8y-dropdown btn-link"
|
|
227
|
-
type="button"
|
|
228
259
|
title="{{ 'Actions' | translate }}"
|
|
229
|
-
uib-dropdown-toggle
|
|
230
260
|
aria-haspopup="true"
|
|
261
|
+
type="button"
|
|
262
|
+
uib-dropdown-toggle
|
|
231
263
|
>
|
|
232
264
|
<i c8y-icon="ellipsis-v"></i>
|
|
233
265
|
</button>
|
|
234
|
-
<ul
|
|
266
|
+
<ul
|
|
267
|
+
class="dropdown-menu dropdown-menu-right"
|
|
268
|
+
uib-dropdown-menu
|
|
269
|
+
>
|
|
235
270
|
<li>
|
|
236
|
-
<button
|
|
271
|
+
<button
|
|
272
|
+
title="{{ 'Delete log' | translate }}"
|
|
273
|
+
type="button"
|
|
274
|
+
ng-click="remove(op)"
|
|
275
|
+
>
|
|
237
276
|
<i c8y-icon="delete"></i>
|
|
238
277
|
{{ 'Delete' | translate }}
|
|
239
278
|
</button>
|
|
@@ -267,11 +306,22 @@
|
|
|
267
306
|
</span>
|
|
268
307
|
</div>
|
|
269
308
|
</div>
|
|
270
|
-
<div
|
|
309
|
+
<div
|
|
310
|
+
class="collapse"
|
|
311
|
+
uib-collapse="!(op === selectedLog)"
|
|
312
|
+
>
|
|
271
313
|
<div class="c8y-list__collapse__container">
|
|
272
|
-
<div
|
|
314
|
+
<div
|
|
315
|
+
class="row"
|
|
316
|
+
ng-show="op === selectedLog"
|
|
317
|
+
>
|
|
273
318
|
<div class="col-sm-3">
|
|
274
|
-
<div
|
|
319
|
+
<div
|
|
320
|
+
class="legend form-block"
|
|
321
|
+
translate
|
|
322
|
+
>
|
|
323
|
+
Details
|
|
324
|
+
</div>
|
|
275
325
|
<dl
|
|
276
326
|
class="dl-inline small text-muted m-b-0"
|
|
277
327
|
ng-show="selectedLog.c8y_LogfileRequest.dateFrom"
|
|
@@ -301,7 +351,10 @@
|
|
|
301
351
|
ng-show="selectedLog.c8y_LogfileRequest.searchText"
|
|
302
352
|
>
|
|
303
353
|
<dt translate>Filtered by text</dt>
|
|
304
|
-
<dd
|
|
354
|
+
<dd
|
|
355
|
+
class="text-pre"
|
|
356
|
+
ng-bind="selectedLog.c8y_LogfileRequest.searchText"
|
|
357
|
+
></dd>
|
|
305
358
|
</dl>
|
|
306
359
|
<dl
|
|
307
360
|
class="dl-inline small text-muted m-b-0"
|
|
@@ -312,7 +365,12 @@
|
|
|
312
365
|
</dl>
|
|
313
366
|
</div>
|
|
314
367
|
<div class="col-sm-9">
|
|
315
|
-
<div
|
|
368
|
+
<div
|
|
369
|
+
class="legend form-block"
|
|
370
|
+
translate
|
|
371
|
+
>
|
|
372
|
+
Log
|
|
373
|
+
</div>
|
|
316
374
|
<c8y-log-viewer></c8y-log-viewer>
|
|
317
375
|
</div>
|
|
318
376
|
</div>
|