@c8y/ng1-modules 1021.60.1 → 1021.62.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.
@@ -1,481 +0,0 @@
1
- <c8y-ui-title-set title="tenant.company"></c8y-ui-title-set>
2
-
3
- <c8y-breadcrumbs-set>
4
- <c8y-breadcrumbs-item
5
- icon="c8y-sub-tenants"
6
- path="#tenants"
7
- label="{{ 'Subtenants' | translate }}"
8
- ></c8y-breadcrumbs-item>
9
- <c8y-breadcrumbs-item
10
- icon="c8y-sub-tenants"
11
- label="{{ 'Tenants' | translate }}"
12
- ></c8y-breadcrumbs-item>
13
- </c8y-breadcrumbs-set>
14
-
15
- <form
16
- name="tenantForm"
17
- autocomplete="off"
18
- novalidate
19
- >
20
- <div class="card content-fullpage d-grid grid__col--8-4--md">
21
- <div class="inner-scroll bg-level-0">
22
- <div class="card-header separator large-padding sticky-top">
23
- <div
24
- class="card-title"
25
- translate
26
- >
27
- Identification
28
- </div>
29
- </div>
30
- <div class="card-block large-padding">
31
- <div
32
- class="form-group"
33
- ng-if="!isNew || ((!isNew || !host) && !isEnterpriseEditionTenant)"
34
- >
35
- <label translate>ID</label>
36
- <input
37
- class="form-control"
38
- placeholder="{{ 'e.g. my-tenant`used in URL`' | translate }}"
39
- name="id"
40
- type="text"
41
- required
42
- ng-model="tenant.id"
43
- ng-pattern="validation.tenantId.pattern"
44
- ng-maxlength="32"
45
- ng-disabled="!isNew"
46
- />
47
- <span
48
- class="help-block"
49
- ng-if="isNew && !(tenantForm.id.$touched && tenantForm.id.$invalid)"
50
- >
51
- {{ tenantIdDomainHelpText | translate }}
52
- </span>
53
- <c8y-error-feedback field="tenantForm.id">
54
- <span ng-message="pattern">
55
- {{ validation.tenantId.message | translate }}
56
- </span>
57
- </c8y-error-feedback>
58
- </div>
59
-
60
- <div
61
- class="form-group"
62
- ng-if="isNew && host"
63
- >
64
- <label translate>Domain/URL</label>
65
- <div class="input-group">
66
- <input
67
- class="form-control"
68
- placeholder="{{ 'e.g. my-tenant`used in URL`' | translate }}"
69
- name="id"
70
- type="text"
71
- required
72
- ng-model="tenant.id"
73
- ng-pattern="validation.tenantId.pattern"
74
- ng-maxlength="32"
75
- />
76
- <span class="input-group-addon">
77
- {{ host }}
78
- </span>
79
- </div>
80
- <span
81
- class="help-block"
82
- ng-if="!(tenantForm.id.$touched && tenantForm.id.$invalid)"
83
- >
84
- {{ tenantIdDomainHelpText | translate }}
85
- </span>
86
- <c8y-error-feedback field="tenantForm.id">
87
- <span ng-message="pattern">
88
- {{ validation.tenantId.message | translate }}
89
- </span>
90
- </c8y-error-feedback>
91
- </div>
92
-
93
- <div
94
- class="form-group"
95
- ng-if="!isNew || !host"
96
- >
97
- <label translate>Domain/URL</label>
98
- <input
99
- class="form-control"
100
- placeholder="{{ 'e.g. my-tenant.example.com' | translate }}"
101
- name="domain"
102
- type="text"
103
- required
104
- ng-model="tenant.domain"
105
- ng-pattern="validation.domain.pattern"
106
- ng-maxlength="256"
107
- ng-disabled="!isNew"
108
- />
109
- <span
110
- class="help-block"
111
- ng-if="isNew && !(tenantForm.id.$touched && tenantForm.id.$invalid)"
112
- >
113
- {{ tenantIdDomainHelpText | translate }}
114
- </span>
115
- <c8y-error-feedback field="tenantForm.domain">
116
- <span ng-message="pattern">
117
- {{ validation.domain.message | translate }}
118
- </span>
119
- </c8y-error-feedback>
120
- </div>
121
-
122
- <div class="form-group">
123
- <label translate>Name</label>
124
- <input
125
- class="form-control"
126
- placeholder="{{ 'e.g. Company A' | translate }}"
127
- name="company"
128
- type="text"
129
- required
130
- ng-model="tenant.company"
131
- ng-maxlength="256"
132
- />
133
- <c8y-error-feedback field="tenantForm.company"></c8y-error-feedback>
134
- </div>
135
-
136
- <div class="form-group">
137
- <label
138
- for="contactName"
139
- translate
140
- >
141
- Contact name
142
- </label>
143
- <input
144
- class="form-control"
145
- id="contactName"
146
- name="contactName"
147
- type="text"
148
- ng-model="tenant.contactName"
149
- ng-maxlength="30"
150
- />
151
- <c8y-error-feedback field="tenantForm.contactName"></c8y-error-feedback>
152
- </div>
153
-
154
- <div class="form-group">
155
- <label translate>Contact phone</label>
156
- <input
157
- class="form-control"
158
- placeholder="{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}"
159
- name="contactPhone"
160
- type="text"
161
- c8y-autocomplete="off"
162
- c8y-phone-number
163
- ng-model="tenant.contactPhone"
164
- ng-required="true"
165
- ng-maxlength="20"
166
- />
167
- <c8y-error-feedback field="tenantForm.contactPhone"></c8y-error-feedback>
168
- </div>
169
-
170
- <div class="form-group">
171
- <label><span translate>Administrator's email</span></label>
172
- <input
173
- class="form-control"
174
- placeholder="{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}"
175
- name="adminEmail"
176
- type="email"
177
- ng-model="tenant.adminEmail"
178
- ng-maxlength="256"
179
- c8y-autocomplete="off"
180
- ng-required="true"
181
- ng-disabled="!isNew"
182
- />
183
- <c8y-error-feedback field="tenantForm.adminEmail"></c8y-error-feedback>
184
- </div>
185
-
186
- <div class="form-group">
187
- <label><span translate>Administrator's username</span></label>
188
- <input
189
- class="form-control"
190
- placeholder="{{ 'e.g. joe`LOCALIZE`' | translate }}"
191
- name="adminName"
192
- type="text"
193
- ng-model="tenant.adminName"
194
- ng-maxlength="256"
195
- ng-required="true"
196
- ng-disabled="!isNew"
197
- ng-pattern="validation.user.pattern"
198
- c8y-autocomplete="off"
199
- />
200
- <c8y-error-feedback field="tenantForm.adminName">
201
- <span ng-message="pattern">
202
- {{ validation.user.message | translate }}
203
- </span>
204
- </c8y-error-feedback>
205
- </div>
206
-
207
- <div
208
- class="form-group"
209
- ng-if="isNew"
210
- >
211
- <label
212
- class="c8y-checkbox"
213
- title="{{ 'Send password reset link as email' | translate }}"
214
- >
215
- <input
216
- name="sendPasswordResetEmail"
217
- type="checkbox"
218
- ng-model="tenant.sendPasswordResetEmail"
219
- ng-click="tenant.adminPass = null; $parent.confirmPassword = null;"
220
- />
221
- <span></span>
222
- <span>{{ 'Send password reset link as email' | translate }}</span>
223
- </label>
224
- </div>
225
-
226
- <div ng-if="!tenant.sendPasswordResetEmail">
227
- <div
228
- class="row content-flex-50"
229
- ng-if="isNew"
230
- >
231
- <div class="col-7">
232
- <div class="form-group">
233
- <label><span translate>Administrator's password</span></label>
234
- <input
235
- class="form-control"
236
- name="adminPass"
237
- type="password"
238
- required
239
- ng-model="tenant.adminPass"
240
- ng-change="changePasswordConfirm()"
241
- ng-pattern="validation.password.pattern"
242
- ng-disabled="!isNew && !tenant.adminName"
243
- c8y-autocomplete="off"
244
- />
245
- <c8y-error-feedback field="tenantForm.adminPass">
246
- <span ng-message="pattern">
247
- {{ validation.password.message | translate }}
248
- </span>
249
- <span
250
- ng-message="password-strength"
251
- translate
252
- >
253
- Password is not strong enough, use a stronger password. Check the requirements
254
- listed on the right.
255
- </span>
256
- </c8y-error-feedback>
257
- </div>
258
-
259
- <div class="form-group">
260
- <label translate>Confirm password</label>
261
- <input
262
- class="form-control"
263
- name="confirmPassword"
264
- type="password"
265
- required
266
- ng-init="$parent.confirmPassword = ''"
267
- ng-model="$parent.confirmPassword"
268
- ng-change="changePasswordConfirm()"
269
- c8y-autocomplete="off"
270
- />
271
- <c8y-error-feedback field="tenantForm.confirmPassword">
272
- <span
273
- ng-message="password-mismatch"
274
- translate
275
- >
276
- Passwords do not match.
277
- </span>
278
- </c8y-error-feedback>
279
- </div>
280
- </div>
281
- <div class="col-5">
282
- <div class="m-t-32">
283
- <c8y-password-strength-checklist
284
- password="tenantForm.adminPass.$viewValue"
285
- strength-enforced="passwordStrengthEnforced"
286
- requirements-fulfilled="onRequirementsFulfilledChange(value)"
287
- ></c8y-password-strength-checklist>
288
- </div>
289
- </div>
290
- </div>
291
- </div>
292
- <div
293
- class="form-group"
294
- ng-if="storageLimitation.storageLimitFeatureEnabled"
295
- >
296
- <div class="checkbox">
297
- <label title="{{ 'Limit storage per device' | translate }}">
298
- <input
299
- name="storageLimitPerDeviceEnabled"
300
- type="checkbox"
301
- ng-model="storageLimitation.storageLimitPerDeviceEnabled"
302
- />
303
- <span></span>
304
- <span>{{ 'Limit storage per device' | translate }}</span>
305
- </label>
306
- </div>
307
- </div>
308
-
309
- <div
310
- class="form-group"
311
- ng-if="
312
- storageLimitation.storageLimitFeatureEnabled &&
313
- storageLimitation.storageLimitPerDeviceEnabled
314
- "
315
- >
316
- <label
317
- class="m-r-8"
318
- translate
319
- >
320
- Storage limit per device (MB)
321
- </label>
322
- <input
323
- class="form-control"
324
- style="max-width: 300px"
325
- placeholder="{{ 'e.g.' | translate }} 256"
326
- name="storageLimitPerDevice"
327
- type="number"
328
- required
329
- ng-model="tenant.storageLimitPerDevice"
330
- min="1"
331
- max="{{ maxStorageLimitPerDevice }}"
332
- />
333
- <c8y-error-feedback field="tenantForm.storageLimitPerDevice"></c8y-error-feedback>
334
- </div>
335
-
336
- <div
337
- class="form-group"
338
- ng-if="selectTenantPolicy"
339
- >
340
- <label translate>Tenant policy</label>
341
- <div class="c8y-select-wrapper">
342
- <select
343
- class="form-control"
344
- title="{{ 'Tenant policy' | translate }}"
345
- name="tenantPolicyId"
346
- ng-model="tenant.tenantPolicyId"
347
- ng-options="policy.id as policy.name for policy in tenantPolicies"
348
- ></select>
349
- <span></span>
350
- </div>
351
- </div>
352
-
353
- <div
354
- class="form-group"
355
- ng-if="shouldShowSubtenantCheckbox()"
356
- >
357
- <label
358
- class="c8y-checkbox"
359
- title="{{ 'Allow creation of subtenants' | translate }}"
360
- >
361
- <input
362
- name="allowCreateTenants"
363
- type="checkbox"
364
- ng-model="tenant.allowCreateTenants"
365
- />
366
- <span></span>
367
- <span>{{ 'Allow creation of subtenants' | translate }}</span>
368
- </label>
369
- </div>
370
- </div>
371
- </div>
372
- <div
373
- class="inner-scroll bg-level-1"
374
- ng-if="!isNew"
375
- >
376
- <div class="card-header separator sticky-top large-padding">
377
- <div class="card-title fit-w">
378
- <i
379
- class="c8y-icon c8y-icon-c8y-support"
380
- ng-class="{ 'c8y-icon-duocolor': tenant.supportUser.enabled }"
381
- ></i>
382
- {{ 'Support user access' | translate }}
383
- </div>
384
- <a
385
- class="btn btn-default btn-xs"
386
- title="{{ 'Log in' | translate }}"
387
- target="_blank"
388
- rel="noopener noreferrer"
389
- ng-if="tenant.supportUser.enabled && supportUser && isTopTenant"
390
- ng-href="//{{ tenant.domain }}/apps/administration/?user={{ supportUser }}"
391
- >
392
- <i c8y-icon="external-link"></i>
393
- {{ 'Log in' | translate }}
394
- </a>
395
- </div>
396
- <div class="card-block large-padding">
397
- <div class="form-group">
398
- <label>{{ 'Status' | translate }}</label>
399
- <div>
400
- <p class="form-control-static">
401
- <span
402
- title="{{ 'Disabled' | translate }}"
403
- ng-if="!tenant.supportUser.enabled"
404
- >
405
- <i
406
- class="text-danger"
407
- c8y-icon="ban"
408
- ></i>
409
- {{ 'Disabled' | translate }}
410
- </span>
411
- <span
412
- title="{{ 'Enabled' | translate }}"
413
- ng-if="tenant.supportUser.enabled"
414
- >
415
- <i
416
- class="text-success"
417
- c8y-icon="check-circle"
418
- ></i>
419
- {{ 'Enabled' | translate }}
420
- </span>
421
- </p>
422
- </div>
423
- </div>
424
- <div class="form-group">
425
- <label>{{ 'Active requests count' | translate }}</label>
426
-
427
- <p class="form-control-static">
428
- <span ng-if="tenant.supportUser.activeRequestCount">
429
- <span class="badge badge-danger">
430
- {{ tenant.supportUser.activeRequestCount }}
431
- </span>
432
- </span>
433
- <span
434
- ng-if="!tenant.supportUser.enabled && tenant.supportUser.activeRequestCount === 0"
435
- >
436
- {{ 'No active requests' | translate }}
437
- </span>
438
- <span ng-if="tenant.supportUser.enabled && tenant.supportUser.activeRequestCount === 0">
439
- {{ 'Not applicable' | translate }}
440
- </span>
441
- </p>
442
- </div>
443
- <div
444
- class="form-group"
445
- ng-if="tenant.supportUser.enabled"
446
- >
447
- <label>{{ 'Expiry date' | translate }}</label>
448
- <div>
449
- <p class="form-control-static">
450
- <span ng-if="tenant.supportUser.expiryDate">
451
- {{ tenant.supportUser.expiryDate | absoluteDateTimeShort }}
452
- </span>
453
- <span ng-if="!tenant.supportUser.expiryDate">{{ 'No limit' | translate }}</span>
454
- </p>
455
- </div>
456
- </div>
457
- </div>
458
- </div>
459
- <div class="card-footer separator large-padding grid__col--fullspan">
460
- <button
461
- class="btn btn-default"
462
- title="{{ 'Cancel' | translate }}"
463
- type="button"
464
- ng-click="cancel()"
465
- c8y-key-shortcut="Escape"
466
- >
467
- {{ 'Cancel' | translate }}
468
- </button>
469
- <button
470
- class="btn btn-primary save-tenant-prop"
471
- title="{{ 'Save' | translate }}"
472
- type="submit"
473
- ng-click="save(tenant, tenantForm)"
474
- ng-show="tenant"
475
- ng-disabled="tenantForm.$invalid || !tenantForm.$dirty || saveInProgress || !requirementsFulfilled"
476
- >
477
- {{ 'Save' | translate }}
478
- </button>
479
- </div>
480
- </div>
481
- </form>