@c8y/ng1-modules 1018.379.0 → 1018.380.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.
@@ -1 +1 @@
1
- "use strict";!function(){function e(o){e.$inject=["$scope","$element"];var t=[250,500,1e3];function i(e){if(e.paging&&(e.paging.next||e.paging.blind))return o("More data may be available.")}return{restrict:"EA",replace:!0,templateUrl:":::PLUGIN_PATH:::/ui/views/loadmore.html",link:function(n,e,o){n.hidePageSize=!0,n.getLoadMoreTooltip=_.partial(i,n),o=!_.isUndefined(o.changePageSize),!n.hidePageSize&&o&&(n._pageSizes=_.cloneDeep(t),n.$on("paging.statistics.pageSize",function(e){var e=parseInt(e,10),o=_.cloneDeep(t);e&&(n._pageSizes=_.without(o,e))}))},controller:e};function e(n,o){var t;function i(){var e=jQuery(o),e=_.head(e);t||(e=e.querySelector(".classForObserver"),(t=new IntersectionObserver(a,{root:null,rootMargin:"0px 0px 0px 0px",threshold:1})).observe(e))}function a(e){n.paging&&n.paging.next&&e.forEach(function(e){e.isIntersecting&&n.loadNext()})}n.$watch("paging",function(e){var o;e&&e.next?(o=e.next)===_.noop?n.shouldShowLoadMore=!0:e.noPreFetch?(n.shouldShowLoadMore=!0,i()):o().then(function(e){n.shouldShowLoadMore=!_.isEmpty(e),n.shouldShowLoadMore&&i()}):n.shouldShowLoadMore=!1})}}e.$inject=["gettext"],angular.module("c8y.ui").directive("c8yLoadMore",e)}();
1
+ "use strict";!function(){function e(t){e.$inject=["$scope","$element"];var a=[250,500,1e3];function n(e){if(e.paging&&(e.paging.next||e.paging.blind))return t("More data may be available.")}return{restrict:"EA",replace:!0,templateUrl:":::PLUGIN_PATH:::/ui/views/loadmore.html",link:function(o,e,t){Object.hasOwn(t,"cheapnextcheck")&&(o.cheapNextCheck=!0),o.hidePageSize=!0,o.getLoadMoreTooltip=_.partial(n,o),t=!_.isUndefined(t.changePageSize),!o.hidePageSize&&t&&(o._pageSizes=_.cloneDeep(a),o.$on("paging.statistics.pageSize",function(e){var e=parseInt(e,10),t=_.cloneDeep(a);e&&(o._pageSizes=_.without(t,e))}))},controller:e};function e(o,t){var a;function n(){var e=jQuery(t),e=_.head(e);a||(e=e.querySelector(".classForObserver"),(a=new IntersectionObserver(i,{root:null,rootMargin:"0px 0px 0px 0px",threshold:1})).observe(e))}function i(e){o.paging&&o.paging.next&&e.forEach(function(e){e.isIntersecting&&o.loadNext()})}o.$watch("paging",function(e){var t;e&&e.next?(t=e.next)===_.noop?o.shouldShowLoadMore=!0:e.noPreFetch?(o.shouldShowLoadMore=!0,n()):o.cheapNextCheck&&e.statistics&&e.statistics.currentPage&&e.statistics.totalPages?(o.shouldShowLoadMore=e.statistics.currentPage<e.statistics.totalPages,o.shouldShowLoadMore&&n()):t().then(function(e){o.shouldShowLoadMore=!_.isEmpty(e),o.shouldShowLoadMore&&n()}):o.shouldShowLoadMore=!1})}}e.$inject=["gettext"],angular.module("c8y.ui").directive("c8yLoadMore",e)}();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ng1-modules",
3
- "version": "1018.379.0",
3
+ "version": "1018.380.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "AngularJS modules for Cumulocity IoT applications.",
@@ -1,61 +1,103 @@
1
1
  <div class="page-sticky-header user-list-row hidden-sm hidden-xs">
2
2
  <div class="col-expand"></div>
3
- <label class="col-username" translate>Username and login alias</label>
3
+ <label
4
+ class="col-username"
5
+ translate
6
+ >
7
+ Username and login alias
8
+ </label>
4
9
  <label class="col-subaccounts"></label>
5
- <label class="col-fullname" translate>Name and email</label>
6
- <label class="col-globalroles" translate>Global roles</label>
7
- <label class="col-passwordstrength" translate style="flex: 0 0 92px">Pass strength</label>
10
+ <label
11
+ class="col-fullname"
12
+ translate
13
+ >
14
+ Name and email
15
+ </label>
16
+ <label
17
+ class="col-globalroles"
18
+ translate
19
+ >
20
+ Global roles
21
+ </label>
22
+ <label
23
+ class="col-passwordstrength"
24
+ style="flex: 0 0 92px"
25
+ translate
26
+ >
27
+ Pass strength
28
+ </label>
8
29
  <div class="col-actions"></div>
9
30
  </div>
10
31
 
11
32
  <div
12
33
  class="user-list-row"
13
- ng-repeat="user in vm.userFlatTree | filter:vm.visible"
14
34
  ng-class="::{owned: !!user.owner, owns: user.subusersCount > 0}"
15
35
  ng-style="{ 'margin-left': user._depth * 4, 'margin-right': user._depth * 4 }"
36
+ ng-repeat="user in vm.userFlatTree | filter:vm.visible"
16
37
  >
17
38
  <button
18
39
  class="col-expand interact btn-clean"
19
- type="button"
20
40
  title="{{ 'Direct sub-users' | translate }}"
41
+ type="button"
21
42
  ng-click="::!vm.searchOn() && vm.toggleExpanded(user)"
22
43
  ng-show="::user.subusersCount"
23
44
  >
24
- <label class="hidden-md hidden-lg" translate>Direct sub-users</label>
45
+ <label
46
+ class="hidden-md hidden-lg"
47
+ translate
48
+ >
49
+ Direct sub-users
50
+ </label>
25
51
  <span class="badge badge-info hidden-md hidden-lg">{{ user.subusersCount }}</span>
26
52
  <i c8y-icon="chevron-down" ng-class="{ open: user._expanded }" ng-hide="vm.searchOn()" data-cy="user--with-subusers-expandBtn"></i>
27
53
  </button>
28
- <div class="col-expand" ng-hide="::user.subusersCount"></div>
54
+ <div
55
+ class="col-expand"
56
+ ng-hide="::user.subusersCount"
57
+ ></div>
29
58
 
30
59
  <button
31
60
  class="col-username interact text-truncate btn-clean l-h-1"
32
- type="button"
33
61
  ng-style="{ width: 250 - user._depth * 4 }"
62
+ type="button"
34
63
  ng-click="vm.editUser(user)"
35
64
  >
36
- <div class="user-dot" ng-class="{ 'user-disabled': !user.enabled }">
65
+ <div
66
+ class="user-dot"
67
+ ng-class="{ 'user-disabled': !user.enabled }"
68
+ >
37
69
  {{::user.userName.substr(0,2)}}
38
70
  </div>
39
71
  <span class="username text-truncate">
40
72
  <span
41
- title="{{:: user.userName + (user.displayName ? ' (' + user.displayName + ')' : '')}}"
42
73
  class="h4"
74
+ title="{{:: user.userName + (user.displayName ? ' (' + user.displayName + ')' : '')}}"
43
75
  >
44
76
  {{::user.userName}}
45
77
  </span>
46
78
  <br />
47
79
  <small
48
80
  class="text-muted"
49
- ng-if="user.displayName"
50
81
  title="{{:: user.userName + (user.displayName ? ' (' + user.displayName + ')' : '')}}"
82
+ ng-if="user.displayName"
51
83
  >
52
84
  <em>{{::user.displayName}}</em>
53
85
  </small>
54
86
 
55
87
  <br ng-hide="::user.enabled" />
56
- <small class="disabled" ng-hide="::user.enabled" translate>Disabled</small>
88
+ <small
89
+ class="disabled"
90
+ ng-hide="::user.enabled"
91
+ translate
92
+ >
93
+ Disabled
94
+ </small>
57
95
  <br ng-show="::user.delegatedBy" />
58
- <small class="delegated text-primary" ng-show="::user.delegatedBy" translate>
96
+ <small
97
+ class="delegated text-primary"
98
+ ng-show="::user.delegatedBy"
99
+ translate
100
+ >
59
101
  Delegated by {{::user.delegatedBy}}
60
102
  </small>
61
103
  </span>
@@ -64,11 +106,11 @@
64
106
  <div class="col-subaccounts text-center">
65
107
  <button
66
108
  class="btn-clean"
67
- type="button"
68
109
  aria-label="{{ 'Direct sub-users' | translate }}"
69
110
  uib-tooltip="{{ 'Direct sub-users' | translate }}"
70
111
  tooltip-popup-delay="500"
71
112
  tooltip-placement="right"
113
+ type="button"
72
114
  ng-show="vm.USER_HIERARCHY && user.subusersCount"
73
115
  >
74
116
  <span class="badge badge-info">{{ user.subusersCount }}</span>
@@ -77,8 +119,8 @@
77
119
 
78
120
  <button
79
121
  class="col-fullname interact text-truncate btn-clean l-h-1"
80
- type="button"
81
122
  title="{{ 'Edit user' | translate }}"
123
+ type="button"
82
124
  ng-click="vm.editUser(user)"
83
125
  >
84
126
  <span title="{{::vm.fullName(user)}}">{{::vm.fullName(user)}}</span>
@@ -101,8 +143,8 @@
101
143
  <div class="col-sm-1 p-l-sm-4">
102
144
  <button
103
145
  class="btn-help"
104
- type="button"
105
146
  aria-label="{{ 'Help' | translate }}"
147
+ type="button"
106
148
  uib-popover-html="vm.editGlobalRolesForUserWithExternalOrigin | translate"
107
149
  popover-trigger="'focus'"
108
150
  popover-placement="right"
@@ -116,9 +158,9 @@
116
158
  <!-- Password strength -->
117
159
  <div class="col-passwordstrength">
118
160
  <span
119
- ng-if="user.passwordStrength"
120
161
  class="icon-flex"
121
162
  title="{{::vm.getPasswordStrength(user.passwordStrength) | translate}}"
163
+ ng-if="user.passwordStrength"
122
164
  >
123
165
  <i
124
166
  c8y-icon="{{::vm.getPasswordIcon(user.passwordStrength)}}"
@@ -133,35 +175,44 @@
133
175
  <div class="col-twofactorauth text-right">
134
176
  <i
135
177
  class="text-success"
136
- ng-show="user.twoFactorAuthenticationEnabled"
137
- uib-tooltip="{{ 'TFA active' | translate }} ({{ vm.totpStrategy }})"
138
178
  c8y-icon="key"
179
+ uib-tooltip="{{ 'TFA active' | translate }} ({{ vm.totpStrategy }})"
180
+ ng-show="user.twoFactorAuthenticationEnabled"
139
181
  ></i>
140
182
  </div>
141
183
 
142
184
  <div class="col-actions">
143
- <div class="dropdown" uib-dropdown>
185
+ <div
186
+ class="dropdown"
187
+ uib-dropdown
188
+ >
144
189
  <button
145
190
  class="dropdown-toggle c8y-dropdown"
146
- type="button"
147
191
  title="{{ 'Actions' | translate }}"
148
- uib-dropdown-toggle
149
192
  aria-haspopup="true"
193
+ type="button"
194
+ uib-dropdown-toggle
150
195
  ng-click="::$event.stopPropagation()"
151
196
  >
152
197
  <span><i c8y-icon="ellipsis-v"></i></span>
153
198
  </button>
154
- <ul class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
199
+ <ul
200
+ class="dropdown-menu dropdown-menu-right"
201
+ uib-dropdown-menu
202
+ >
155
203
  <li>
156
- <a title="{{ 'Edit' | translate }}" ng-href="#{{::vm.detailLink(user)}}">
204
+ <a
205
+ title="{{ 'Edit' | translate }}"
206
+ ng-href="#{{::vm.detailLink(user)}}"
207
+ >
157
208
  <i c8y-icon="edit"></i>
158
209
  {{ 'Edit' | translate }}
159
210
  </a>
160
211
  </li>
161
212
  <li>
162
213
  <button
163
- type="button"
164
214
  title="{{ 'Copy inventory roles from' | translate }}…"
215
+ type="button"
165
216
  ng-click="vm.copyInventoryRoles(user)"
166
217
  >
167
218
  <i c8y-icon="clipboard"></i>
@@ -169,15 +220,19 @@
169
220
  </button>
170
221
  </li>
171
222
  <li ng-show="::vm.showDelegate(user)">
172
- <button type="button" title="{{ 'Delegate' | translate }}" ng-click="vm.delegate(user)">
223
+ <button
224
+ title="{{ 'Delegate' | translate }}"
225
+ type="button"
226
+ ng-click="vm.delegate(user)"
227
+ >
173
228
  <i c8y-icon="batch-assign"></i>
174
229
  {{ 'Delegate' | translate }}
175
230
  </button>
176
231
  </li>
177
232
  <li ng-show="::vm.showUndelegate(user)">
178
233
  <button
179
- type="button"
180
234
  title="{{ 'Undelegate' | translate }}"
235
+ type="button"
181
236
  ng-click="vm.removeDelegate(user)"
182
237
  >
183
238
  <i c8y-icon="batch-assign"></i>
@@ -185,21 +240,29 @@
185
240
  </button>
186
241
  </li>
187
242
  <li ng-show="user.enabled && !vm.isCurrent(user)">
188
- <button type="button" title="{{ 'Disable' | translate }}" ng-click="vm.disable(user)">
243
+ <button
244
+ title="{{ 'Disable' | translate }}"
245
+ type="button"
246
+ ng-click="vm.disable(user)"
247
+ >
189
248
  <i c8y-icon="ban"></i>
190
249
  {{ 'Disable' | translate }}
191
250
  </button>
192
251
  </li>
193
252
  <li ng-hide="::(user.enabled)">
194
- <button type="button" title="{{ 'Enable' | translate }}" ng-click="vm.enable(user)">
253
+ <button
254
+ title="{{ 'Enable' | translate }}"
255
+ type="button"
256
+ ng-click="vm.enable(user)"
257
+ >
195
258
  <i c8y-icon="check-circle-o"></i>
196
259
  {{ 'Enable' | translate }}
197
260
  </button>
198
261
  </li>
199
262
  <li>
200
263
  <button
201
- type="button"
202
264
  title="{{ 'Delete' | translate }}"
265
+ type="button"
203
266
  ng-click="vm.remove(user)"
204
267
  ng-hide="::vm.isUndeletable(user)"
205
268
  >
@@ -210,7 +273,10 @@
210
273
  </ul>
211
274
  </div>
212
275
  </div>
213
- <div class="tip" ng-class="{ expanded: user._expanded }"></div>
276
+ <div
277
+ class="tip"
278
+ ng-class="{ expanded: user._expanded }"
279
+ ></div>
214
280
  </div>
215
281
 
216
- <c8y-load-more></c8y-load-more>
282
+ <c8y-load-more cheapNextCheck></c8y-load-more>