@c8y/ng1-modules 1017.19.0 → 1017.20.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.
Files changed (49) hide show
  1. package/administration-deviceUsers/views/list.html +1 -0
  2. package/alarmsEventsExplorer/alarmsEventsTimelinesConfig/alarmsEventsTimelinesConfig.html +1 -0
  3. package/asset-notes/assetNotes.html +15 -6
  4. package/assetPropertyWidget/views/main.html +2 -2
  5. package/binaryArtefactsManagement/views/list.html +1 -0
  6. package/commandTemplates/views/commandTemplates.html +1 -0
  7. package/core/ui/containers/header.html +1 -0
  8. package/core/ui/forms/search.html +2 -0
  9. package/core/ui/header/actions.html +1 -0
  10. package/core/ui/itemSelector/itemSelector.html +1 -0
  11. package/core/ui/navigation/breadcrumbs.html +3 -1
  12. package/core/ui/properties/propertySelector.html +1 -0
  13. package/core/ui/schemaForm/overrides/decorators/bootstrap/checkbox.html +7 -2
  14. package/core/ui/schemaForm/overrides/decorators/bootstrap/default.html +9 -10
  15. package/core/ui/schemaForm/overrides/decorators/bootstrap/password.html +9 -8
  16. package/core/ui/schemaForm/overrides/decorators/bootstrap/textarea.html +7 -7
  17. package/core/ui/user/editUser.directive.html +1 -0
  18. package/core/ui/views/actions.html +2 -0
  19. package/core/ui/views/filePicker.html +4 -1
  20. package/core/ui/views/loadmore.html +1 -0
  21. package/dataBroker/connectors/connectors.html +1 -0
  22. package/dataBroker/subscriptions/subscription.html +1 -0
  23. package/device-protocol-deviceDatabase4/device-type-create-step.html +11 -10
  24. package/device-protocol-impact/impact-create-step.html +13 -11
  25. package/device-protocol-opcua-v2/opcua-v2-create-step.html +8 -3
  26. package/device-protocols/deviceProtocolList.html +1 -0
  27. package/deviceDatabase4/device-type-list.html +1 -0
  28. package/deviceDatabase4/modals/import-device-type.html +4 -2
  29. package/deviceDetailIdentity/views/identity.html +1 -12
  30. package/deviceStatusWidget/requiredAvailabilityIntervalSetting.html +3 -2
  31. package/devicemanagement-location/views/index.html +5 -6
  32. package/devicemanagement-logViewer/views/index.html +1 -0
  33. package/export/views/list.html +1 -0
  34. package/generic-ui/generic-ui-inventory.html +1 -0
  35. package/groupsHierarchy/views/groupsList.html +1 -0
  36. package/measurements/views/iconBar.html +2 -2
  37. package/package.json +1 -1
  38. package/remoteAccess/remoteAccessEndpointCard/remoteAccessEndpointCard.html +1 -0
  39. package/roles/detail/roleInventoryPermissionList.html +25 -16
  40. package/roles/list/rolesList.html +1 -0
  41. package/simulators/list/list.html +1 -0
  42. package/smartRestEditor/requestEditor/requestEditor.html +2 -2
  43. package/smartRestEditor/valueInput/valueInput.html +1 -3
  44. package/smartRestEditor/views/list.html +1 -0
  45. package/smartRules/views/childAssetsSelector.html +1 -0
  46. package/tenantLicenses/licenseManagement.html +1 -0
  47. package/tenantPolicies/tenantPolicyList/tenantPolicyList.html +1 -0
  48. package/userRoles/inventoryRoleSelector/inventoryRoleSelector.html +2 -0
  49. package/users/userList/userList.html +1 -0
@@ -168,6 +168,7 @@
168
168
  type="button"
169
169
  uib-dropdown-toggle
170
170
  ng-click="::$event.stopPropagation()"
171
+ aria-haspopup="true"
171
172
  >
172
173
  <i c8y-icon="ellipsis-v"></i>
173
174
  </button>
@@ -105,6 +105,7 @@
105
105
  type="button"
106
106
  class="dropdown-toggle c8y-dropdown"
107
107
  uib-dropdown-toggle
108
+ aria-haspopup="true"
108
109
  >
109
110
  <i c8y-icon="ellipsis-v"></i>
110
111
  </button>
@@ -6,20 +6,30 @@
6
6
  <div ng-if="vm.notes && !vm.notes.htmlContent">
7
7
  {{ 'No notes yet.' | translate }}
8
8
  <c8y-if-allowed admin-mos="[vm.config.context]">
9
- <a title="{{ 'Edit' | translate }}" class="small" href="" ng-click="vm.edit()">
9
+ <button
10
+ type="button"
11
+ title="{{ 'Edit' | translate }}"
12
+ class="btn btn-link btn-sm"
13
+ ng-click="vm.edit()"
14
+ >
10
15
  <i c8y-icon="pencil"></i>
11
16
  {{ 'Edit' | translate }}
12
- </a>
17
+ </button>
13
18
  </c8y-if-allowed>
14
19
  </div>
15
20
 
16
21
  <div ng-if="vm.notes && vm.notes.htmlContent" class="text-break-word asset-notes-body">
17
22
  <span ng-bind-html="vm.notes.htmlContent"></span>
18
23
  <c8y-if-allowed admin-mos="[vm.config.context]">
19
- <a title="{{ 'Edit' | translate }}" class="small" href="" ng-click="vm.edit()">
24
+ <button
25
+ type="button"
26
+ title="{{ 'Edit' | translate }}"
27
+ class="btn btn-link btn-sm"
28
+ ng-click="vm.edit()"
29
+ >
20
30
  <i c8y-icon="pencil"></i>
21
31
  {{ 'Edit' | translate }}
22
- </a>
32
+ </button>
23
33
  </c8y-if-allowed>
24
34
  </div>
25
35
 
@@ -34,6 +44,7 @@
34
44
  <div ng-if="vm.editable" class="fit-h flex-grow">
35
45
  <div class="d-flex a-i-stretch fit-h">
36
46
  <textarea
47
+ aria-label="{{ 'Notes' | translate }}"
37
48
  class="form-control fit-h"
38
49
  ng-model="vm.editedNotes.htmlContent"
39
50
  rows="5"
@@ -43,7 +54,6 @@
43
54
  <button
44
55
  type="button"
45
56
  class="btn btn-dot"
46
- aria-label="{{ 'Save' | translate }}"
47
57
  ng-click="vm.save()"
48
58
  title="{{ 'Save' | translate }}"
49
59
  >
@@ -55,7 +65,6 @@
55
65
  type="button"
56
66
  class="btn btn-dot"
57
67
  ng-click="vm.cancel()"
58
- aria-label="{{ 'Cancel' | translate }}"
59
68
  title="{{ 'Cancel' | translate }}"
60
69
  >
61
70
  <i c8y-icon="times"></i>
@@ -9,7 +9,7 @@
9
9
  ></c8y-schema-form>
10
10
  </form>
11
11
  <c8y-if-allowed admin-mos="[managedObject]" class="d-contents">
12
- <div class="p-16 separator-bottom" ng-show="editable && canAddProperties()">
12
+ <div class="p-t-8 p-16" ng-show="editable && canAddProperties()">
13
13
  <button
14
14
  title="{{ 'Add fragment' | translate }}"
15
15
  type="button"
@@ -21,7 +21,7 @@
21
21
  </button>
22
22
  </div>
23
23
 
24
- <div c8y-widget-footer class="p-16 sticky-bottom bg-level-1 separator-top">
24
+ <div c8y-widget-footer class="p-16 sticky-bottom bg-level-0 separator-top">
25
25
  <button
26
26
  title="{{ 'Edit' | translate }}"
27
27
  type="button"
@@ -179,6 +179,7 @@
179
179
  title="{{ 'Actions' | translate }}"
180
180
  type="button"
181
181
  uib-dropdown-toggle
182
+ aria-haspopup="true"
182
183
  >
183
184
  <i c8y-icon="ellipsis-v"></i>
184
185
  </button>
@@ -113,6 +113,7 @@
113
113
  title="{{ 'Actions' | translate }}"
114
114
  type="button"
115
115
  uib-dropdown-toggle
116
+ aria-haspopup="true"
116
117
  >
117
118
  <i c8y-icon="ellipsis-v"></i>
118
119
  </button>
@@ -42,6 +42,7 @@
42
42
  type="button"
43
43
  class=" main-header-button dropdown-toggle c8y-dropdown"
44
44
  uib-dropdown-toggle
45
+ aria-haspopup="true"
45
46
  >
46
47
  <i c8y-icon="th" class="icon-2x"></i>
47
48
  </button>
@@ -11,6 +11,7 @@
11
11
  type="button"
12
12
  class="main-header-button dropdown-toggle c8y-dropdown"
13
13
  uib-dropdown-toggle
14
+ aria-haspopup="true"
14
15
  >
15
16
  <i c8y-icon="search" class="icon-2x"></i>
16
17
  </button>
@@ -34,6 +35,7 @@
34
35
  class="btn btn-link dropdown-toggle"
35
36
  ng-if="vm.searchFunctionList.length > 1"
36
37
  uib-dropdown-toggle
38
+ aria-haspopup="true"
37
39
  >
38
40
  <span class="caret"></span>
39
41
  <i c8y-icon="search"></i>
@@ -4,6 +4,7 @@
4
4
  type="button"
5
5
  class="main-header-button dropdown-toggle c8y-dropdown"
6
6
  uib-dropdown-toggle
7
+ aria-haspopup="true"
7
8
  >
8
9
  <i c8y-icon="plus-circle" class="icon-2x"></i>
9
10
  </button>
@@ -11,6 +11,7 @@
11
11
  title="{{ vm.displayLabel ? vm.displayLabel : vm.placeholder() }}"
12
12
  uib-dropdown-toggle
13
13
  ng-disabled="vm.disabled"
14
+ aria-haspopup="true"
14
15
  >
15
16
  <span class="text-truncate" ng-bind="vm.displayLabel" ng-show="vm.displayLabel"></span>
16
17
  <span
@@ -4,6 +4,8 @@
4
4
  ng-class="{ open: showAll, multiple: breadcrumbs.length > 1 }"
5
5
  >
6
6
  <button
7
+ title="{{ 'Expand/collapse all breadcrumbs' | translate }}"
8
+ aria-label="{{ 'Expand/collapse all breadcrumbs' | translate }}"
7
9
  ng-show="breadcrumbs.length > 1"
8
10
  class="btn-show-all-breadcrumbs pull-left"
9
11
  ng-click="showAll = !showAll"
@@ -11,7 +13,7 @@
11
13
  <i
12
14
  ng-hide="showAll"
13
15
  c8y-icon="caret-right"
14
- uib-tooltip="{{ 'Show all breadcrumbs' | translate }}"
16
+ uib-tooltip="{{ 'Expand all breadcrumbs' | translate }}"
15
17
  tooltip-append-to-body="true"
16
18
  tooltip-placement="auto"
17
19
  tooltip-popup-delay="500"
@@ -17,6 +17,7 @@
17
17
  type="button"
18
18
  class="btn btn-default btn-xs dropdown-toggle c8y-dropdown"
19
19
  uib-dropdown-toggle
20
+ aria-haspopup="true"
20
21
  >
21
22
  <i c8y-icon="plus"></i>
22
23
  {{ 'Add action' | translate }}
@@ -6,7 +6,11 @@
6
6
  'has-success': form.disableSuccessState !== true && hasSuccess()
7
7
  }"
8
8
  >
9
- <label title="{{ form.title | translate }}" class="c8y-checkbox {{ form.labelHtmlClass }}">
9
+ <label
10
+ title="{{ form.title | translate }}"
11
+ class="c8y-checkbox {{ form.labelHtmlClass }}"
12
+ for="sf-{{ form.key.slice(-1)[0] + $id }}"
13
+ >
10
14
  <input
11
15
  type="checkbox"
12
16
  sf-changed="form"
@@ -15,7 +19,8 @@
15
19
  ng-model-options="form.ngModelOptions"
16
20
  schema-validate="form"
17
21
  class="{{ form.fieldHtmlClass }}"
18
- name="{{ form.key.slice(-1)[0] }}"
22
+ title="{{ form.title | translate }}"
23
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
19
24
  />
20
25
  <span></span>
21
26
  <!-- To hide the label set form.labelHtmlClass to 'no-label' -->
@@ -9,7 +9,7 @@
9
9
  <label
10
10
  class="control-label {{ form.labelHtmlClass }}"
11
11
  ng-class="{ 'sr-only': !showTitle() }"
12
- for="{{ form.key.slice(-1)[0] + $id }}"
12
+ for="sf-{{ form.key.slice(-1)[0] + $id }}"
13
13
  >
14
14
  {{ form.title | translate }}
15
15
  </label>
@@ -21,15 +21,14 @@
21
21
  sf-changed="form"
22
22
  placeholder="{{ form.placeholder | translate }}"
23
23
  class="text-truncate form-control {{ form.fieldHtmlClass }}"
24
- id="{{ form.key.slice(-1)[0] + $id }}"
25
24
  ng-model-options="form.ngModelOptions"
26
25
  ng-model="$$value$$"
27
26
  ng-readonly="form.readonly"
28
27
  schema-validate="form"
29
- title="$$value$$"
30
- name="{{ form.key.slice(-1)[0] + $id }}"
31
- id="{{ form.key.slice(-1)[0] + $id }}"
32
- />
28
+ title="{{ form.title | translate }}"
29
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
30
+ name="sf-{{ form.key.slice(-1)[0] + $id }}"
31
+ />
33
32
 
34
33
  <div
35
34
  ng-if="form.fieldAddonLeft || form.fieldAddonRight"
@@ -47,14 +46,14 @@
47
46
  sf-changed="form"
48
47
  placeholder="{{ form.placeholder | translate }}"
49
48
  class="text-truncate form-control {{ form.fieldHtmlClass }}"
50
- id="{{ form.key.slice(-1)[0] + $id }}"
51
49
  ng-model-options="form.ngModelOptions"
52
50
  ng-model="$$value$$"
53
51
  ng-readonly="form.readonly"
54
52
  schema-validate="form"
55
- title="{{ $$value$$ }}"
56
- name="{{ form.key.slice(-1)[0] + $id }}"
57
- />
53
+ title="{{ form.title | translate }}"
54
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
55
+ name="sf-{{ form.key.slice(-1)[0] + $id }}"
56
+ />
58
57
 
59
58
  <span
60
59
  ng-if="form.fieldAddonRight"
@@ -9,7 +9,7 @@
9
9
  <label
10
10
  class="control-label {{ form.labelHtmlClass }}"
11
11
  ng-class="{ 'sr-only': !showTitle() }"
12
- for="{{ form.key.slice(-1)[0] }}"
12
+ for="sf-{{ form.key.slice(-1)[0] + $id }}"
13
13
  >
14
14
  {{ form.title | translate }}
15
15
  </label>
@@ -21,15 +21,15 @@
21
21
  sf-changed="form"
22
22
  placeholder="{{ form.placeholder | translate }}"
23
23
  class="form-control {{ form.fieldHtmlClass }}"
24
- id="{{ form.key.slice(-1)[0] }}"
25
24
  ng-model-options="form.ngModelOptions"
26
25
  ng-model="$$value$$"
27
26
  ng-disabled="form.readonly"
28
27
  schema-validate="form"
29
- name="{{ form.key.slice(-1)[0] }}"
30
- title="$$value$$"
28
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
29
+ name="sf-{{ form.key.slice(-1)[0] + $id }}"
30
+ title="{{ form.title | translate }}"
31
31
  c8y-autocomplete="off"
32
- />
32
+ />
33
33
 
34
34
  <div
35
35
  ng-if="form.fieldAddonLeft || form.fieldAddonRight"
@@ -47,14 +47,15 @@
47
47
  sf-changed="form"
48
48
  placeholder="{{ form.placeholder | translate }}"
49
49
  class="form-control {{ form.fieldHtmlClass }}"
50
- id="{{ form.key.slice(-1)[0] }}"
51
50
  ng-model-options="form.ngModelOptions"
52
51
  ng-model="$$value$$"
53
52
  ng-disabled="form.readonly"
54
53
  schema-validate="form"
55
- name="{{ form.key.slice(-1)[0] }}"
54
+ title="{{ form.title | translate }}"
55
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
56
+ name="sf-{{ form.key.slice(-1)[0] + $id }}"
56
57
  c8y-autocomplete="off"
57
- />
58
+ />
58
59
  <span
59
60
  ng-if="form.fieldAddonRight"
60
61
  class="input-group-addon"
@@ -8,22 +8,22 @@
8
8
  <label
9
9
  class="{{ form.labelHtmlClass }}"
10
10
  ng-class="{ 'sr-only': !showTitle() }"
11
- for="{{ form.key.slice(-1)[0] }}"
11
+ for="sf-{{ form.key.slice(-1)[0] + $id }}"
12
12
  >
13
13
  {{ form.title | translate }}
14
14
  </label>
15
15
  <textarea
16
16
  ng-if="!form.fieldAddonLeft && !form.fieldAddonRight"
17
17
  class="form-control {{ form.fieldHtmlClass }}"
18
- id="{{ form.key.slice(-1)[0] + $id }}"
19
18
  sf-changed="form"
20
19
  placeholder="{{ form.placeholder | translate }}"
21
20
  ng-readonly="form.readonly"
22
21
  ng-model="$$value$$"
23
22
  ng-model-options="form.ngModelOptions"
24
23
  schema-validate="form"
25
- name="{{ form.key.slice(-1)[0] }}"
26
- aria-label="{{ 'Form title' | translate }}"
24
+ name="sf-{{ form.key.slice(-1)[0] + $id }}"
25
+ title="{{ form.title | translate }}"
26
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
27
27
  rows="10"
28
28
  ></textarea>
29
29
  <div
@@ -36,16 +36,16 @@
36
36
  ng-bind-html="form.fieldAddonLeft"
37
37
  ></span>
38
38
  <textarea
39
- aria-label="{{ 'Form title' | translate }}"
40
39
  class="form-control {{ form.fieldHtmlClass }}"
41
- id="{{ form.key.slice(-1)[0] + $id }}"
42
40
  sf-changed="form"
43
41
  placeholder="{{ form.placeholder | translate }}"
44
42
  ng-readonly="form.readonly"
45
43
  ng-model="$$value$$"
46
44
  ng-model-options="form.ngModelOptions"
47
45
  schema-validate="form"
48
- name="{{ form.key.slice(-1)[0] }}"
46
+ name="sf-{{ form.key.slice(-1)[0] + $id }}"
47
+ title="{{ form.title | translate }}"
48
+ id="sf-{{ form.key.slice(-1)[0] + $id }}"
49
49
  ></textarea>
50
50
  <span
51
51
  ng-if="form.fieldAddonRight"
@@ -210,6 +210,7 @@
210
210
  class="btn dropdown-toggle fit-w"
211
211
  data-toggle="dropdown"
212
212
  uib-dropdown-toggle
213
+ aria-haspopup="true"
213
214
  >
214
215
  <span class="d-flex">
215
216
  <span title="{{ user.owner }}" ng-if="user.owner" class="text-truncate">
@@ -9,6 +9,8 @@
9
9
  class="dropdown-toggle c8y-dropdown"
10
10
  ng-show="cogActionsVisible() || buttonActionsVisible()"
11
11
  uib-dropdown-toggle
12
+ aria-haspopup="true"
13
+ title="{{ 'Actions' | translate }}"
12
14
  >
13
15
  <i c8y-icon="cog icon-2x"></i>
14
16
  </button>
@@ -40,9 +40,9 @@
40
40
  </p>
41
41
  <div class="progress">
42
42
  <div
43
+ aria-label="{{ vm.process.progress + '%' }}"
43
44
  class="progress-bar active progress-bar-striped"
44
45
  role="progressbar"
45
- aria-valuenow="{{ vm.process.progress }}"
46
46
  aria-valuemin="0"
47
47
  aria-valuemax="100"
48
48
  style="min-width: 2em"
@@ -68,6 +68,7 @@
68
68
  <span class="input-group-btn">
69
69
  <button
70
70
  title="{{ 'Select file' | translate }}"
71
+ aria-label="{{ 'Select file' | translate }}"
71
72
  type="button"
72
73
  class="btn btn-default"
73
74
  ng-file-select="vm.onFileSelect(file, $files)"
@@ -78,6 +79,7 @@
78
79
  <button
79
80
  class="btn btn-dot btn-dot--danger"
80
81
  title="{{ 'Remove' | translate }}"
82
+ aria-label="{{ 'Remove' | translate }}"
81
83
  type="button"
82
84
  ng-click="vm.remove(file)"
83
85
  ng-show="file.file.name || (vm.multiple && !$first)"
@@ -89,6 +91,7 @@
89
91
  </div>
90
92
  <button
91
93
  title="{{ 'Add file' | translate }}"
94
+ aria-label="{{ 'Add file' | translate }}"
92
95
  type="button"
93
96
  class="btn btn-default"
94
97
  ng-click="vm.add()"
@@ -26,6 +26,7 @@
26
26
  class="btn btn-default dropdown-toggle"
27
27
  uib-dropdown-toggle
28
28
  ng-show="!paging.blind && _pageSizes"
29
+ aria-haspopup="true"
29
30
  >
30
31
  {{ 'Page size' | translate }}
31
32
  <span class="caret"></span>
@@ -125,6 +125,7 @@
125
125
  class="dropdown-toggle c8y-dropdown"
126
126
  uib-dropdown-toggle
127
127
  ng-click="::$event.stopPropagation()"
128
+ aria-haspopup="true"
128
129
  >
129
130
  <span>
130
131
  <i c8y-icon="ellipsis-v"></i>
@@ -6,6 +6,7 @@
6
6
  class="dropdown-toggle c8y-dropdown"
7
7
  uib-dropdown-toggle
8
8
  ng-click="::$event.stopPropagation()"
9
+ aria-haspopup="true"
9
10
  >
10
11
  <i c8y-icon="ellipsis-v"></i>
11
12
  </button>
@@ -1,12 +1,15 @@
1
1
  <div class="modal-inner-scroll">
2
- <p class="text-medium text-center p-l-24 p-r-24 p-t-16 p-b-16 bg-component separator-bottom sticky-top">
2
+ <p
3
+ class="text-medium text-center p-l-24 p-r-24 p-t-16 p-b-16 bg-component separator-bottom sticky-top"
4
+ >
3
5
  {{ vm.wizardCtrl.data.selectedProtocol.name }}
4
6
  </p>
5
7
  <div class="c8y-wizard-body p-t-16">
6
8
  <form class="form" name="modelForm" novalidate>
7
9
  <div class="form-group">
8
- <label translate>Name</label>
10
+ <label for="name" translate>Name</label>
9
11
  <input
12
+ id="name"
10
13
  name="name"
11
14
  class="form-control"
12
15
  ng-model="vm.model.name"
@@ -18,9 +21,10 @@
18
21
  <c8y-error-feedback field="modelForm.name"></c8y-error-feedback>
19
22
  </div>
20
23
  <div class="form-group">
21
- <label translate>Description</label>
24
+ <label for="description" translate>Description</label>
22
25
  <textarea
23
- style="height:150px"
26
+ id="description"
27
+ rows="7"
24
28
  class="form-control"
25
29
  ng-model="vm.model.description"
26
30
  ng-disabled="vm.pending"
@@ -34,26 +38,23 @@
34
38
  title="{{ 'Back' | translate }}"
35
39
  class="btn btn-default"
36
40
  ng-click="vm.wizardCtrl.goToIndex(0)"
37
- translate
38
41
  >
39
- Back
42
+ {{ 'Back' | translate }}
40
43
  </button>
41
44
  <button
42
45
  title="{{ 'Cancel' | translate }}"
43
46
  class="btn btn-default"
44
47
  ng-click="vm.wizardCtrl.dismiss()"
45
- translate
46
48
  >
47
- Cancel
49
+ {{ 'Cancel' | translate }}
48
50
  </button>
49
51
  <button
50
52
  title="{{ 'Create' | translate }}"
51
53
  class="btn btn-primary"
52
54
  ng-click="vm.create(vm.model)"
53
- translate
54
55
  ng-disabled="modelForm.$invalid || vm.pending"
55
56
  >
56
- Create
57
+ {{ 'Create' | translate }}
57
58
  </button>
58
59
  </div>
59
60
  </div>
@@ -1,12 +1,15 @@
1
1
  <div class="modal-inner-scroll">
2
- <p class="text-medium text-center p-l-24 p-r-24 p-t-16 p-b-16 bg-component separator-bottom sticky-top">
2
+ <p
3
+ class="text-medium text-center p-l-24 p-r-24 p-t-16 p-b-16 bg-component separator-bottom sticky-top"
4
+ >
3
5
  {{ vm.wizardCtrl.data.selectedProtocol.name }}
4
6
  </p>
5
7
  <div class="c8y-wizard-body p-t-16">
6
8
  <form class="form" name="modelForm" novalidate>
7
9
  <div class="form-group">
8
- <label translate>ID</label>
10
+ <label for="id" translate>ID</label>
9
11
  <input
12
+ id="id"
10
13
  name="id"
11
14
  class="form-control"
12
15
  ng-model="vm.model.id"
@@ -18,8 +21,9 @@
18
21
  <c8y-error-feedback field="modelForm.id"></c8y-error-feedback>
19
22
  </div>
20
23
  <div class="form-group">
21
- <label translate>Name</label>
24
+ <label for="name" translate>Name</label>
22
25
  <input
26
+ id="name"
23
27
  name="name"
24
28
  class="form-control"
25
29
  ng-model="vm.model.name"
@@ -31,9 +35,10 @@
31
35
  <c8y-error-feedback field="modelForm.name"></c8y-error-feedback>
32
36
  </div>
33
37
  <div class="form-group">
34
- <label translate>Description</label>
38
+ <label for="description" translate>Description</label>
35
39
  <textarea
36
- style="height:150px"
40
+ id="description"
41
+ rows="7"
37
42
  class="form-control"
38
43
  ng-model="vm.model.description"
39
44
  ng-disabled="vm.pending"
@@ -47,26 +52,23 @@
47
52
  title="{{ 'Back' | translate }}"
48
53
  class="btn btn-default"
49
54
  ng-click="vm.wizardCtrl.goToIndex(0)"
50
- translate
51
55
  >
52
- Back
56
+ {{ 'Back' | translate }}
53
57
  </button>
54
58
  <button
55
59
  title="{{ 'Cancel' | translate }}"
56
60
  class="btn btn-default"
57
61
  ng-click="vm.wizardCtrl.dismiss()"
58
- translate
59
62
  >
60
- Cancel
63
+ {{ 'Cancel' | translate }}
61
64
  </button>
62
65
  <button
63
66
  title="{{ 'Create' | translate }}"
64
67
  class="btn btn-primary"
65
68
  ng-click="vm.create(vm.model)"
66
- translate
67
69
  ng-disabled="modelForm.$invalid || vm.pending"
68
70
  >
69
- Create
71
+ {{ 'Create' | translate }}
70
72
  </button>
71
73
  </div>
72
74
  </div>
@@ -7,8 +7,9 @@
7
7
  <form class="form" name="modelForm" novalidate>
8
8
  <div class="c8y-wizard-body p-t-16">
9
9
  <div class="form-group">
10
- <label translate>Name</label>
10
+ <label for="name" translate>Name</label>
11
11
  <input
12
+ id="name"
12
13
  name="name"
13
14
  class="form-control"
14
15
  ng-model="vm.model.name"
@@ -20,8 +21,9 @@
20
21
  <c8y-error-feedback field="modelForm.name"></c8y-error-feedback>
21
22
  </div>
22
23
  <div class="form-group">
23
- <label translate>Description</label>
24
+ <label for="description" translate>Description</label>
24
25
  <textarea
26
+ id="description"
25
27
  rows="4"
26
28
  class="form-control"
27
29
  ng-model="vm.model.description"
@@ -34,7 +36,10 @@
34
36
  <button
35
37
  type="button"
36
38
  class="btn-help btn-help--sm"
37
- aria-label="{{ 'Help' | translate }}"
39
+ aria-label="{{
40
+ 'Selecting a reference server allows you to create device types based on the OPC UA model stored on an OPC UA server. This greatly simplifies the mapping process, since device types can be created based on OPC UA browse paths being actually present on the server.'
41
+ | translate
42
+ }}"
38
43
  uib-popover="{{
39
44
  'Selecting a reference server allows you to create device types based on the OPC UA model stored on an OPC UA server. This greatly simplifies the mapping process, since device types can be created based on OPC UA browse paths being actually present on the server.'
40
45
  | translate
@@ -88,6 +88,7 @@
88
88
  class="dropdown-toggle c8y-dropdown"
89
89
  title="{{ 'Actions' | translate }}"
90
90
  uib-dropdown-toggle
91
+ aria-haspopup="true"
91
92
  >
92
93
  <i c8y-icon="ellipsis-v"></i>
93
94
  </button>
@@ -39,6 +39,7 @@
39
39
  type="button"
40
40
  class="dropdown-toggle c8y-dropdown btn-link"
41
41
  uib-dropdown-toggle
42
+ aria-haspopup="true"
42
43
  >
43
44
  <i c8y-icon="ellipsis-v"></i>
44
45
  </button>
@@ -28,6 +28,7 @@
28
28
  <a
29
29
  class="btn btn-primary btn-xs showOnHover pull-right"
30
30
  uib-tooltip="{{ 'Download' | translate }}"
31
+ aria-label="{{ 'Download' | translate }}"
31
32
  tooltip-popup-delay="500"
32
33
  tooltip-append-to-body="true"
33
34
  download="{{ vm.downloadFileName(deviceTypeInfo) }}"
@@ -54,13 +55,14 @@
54
55
  </ui-select>
55
56
  </div>
56
57
 
57
- <label translate>Or load it from a file</label>
58
+ <label for="file" translate>Or load it from a file</label>
58
59
  <div
59
60
  class="input-group"
60
61
  ng-file-select="vm.onCustomDeviceTypeFileSelected($files)"
61
62
  ng-class="{ 'has-error': vm.customDeviceTypeFeedback.type === 'error' }"
62
63
  >
63
64
  <input
65
+ id="file"
64
66
  class="form-control"
65
67
  ng-model="vm.selection.custom.file.name"
66
68
  placeholder="{{ 'Select file to upload' | translate }}…"
@@ -85,7 +87,7 @@
85
87
  class="form-group"
86
88
  ng-class="{ 'has-error': vm.importForm.name.$dirty && vm.importForm.name.$invalid }"
87
89
  >
88
- <label translate>Name</label>
90
+ <label for="name" translate>Name</label>
89
91
  <input
90
92
  class="form-control"
91
93
  id="name"
@@ -61,7 +61,7 @@
61
61
  </c8y-ui-action-bar-set>
62
62
 
63
63
  <div class="row">
64
- <div class="col-md-8">
64
+ <div class="col-md-12">
65
65
  <c8y-ui-empty-state
66
66
  ng-if="ids.length === 0"
67
67
  [icon]="'barcode'"
@@ -114,16 +114,5 @@
114
114
  </div>
115
115
  </div>
116
116
  </div>
117
- <div class="col-md-4">
118
- <div class="card" data-cy="identity-help-text">
119
- <div class="card-header">
120
- <div class="card-title" translate>External ID</div>
121
- </div>
122
- <hr />
123
- <div class="card-block">
124
- <p class="text-pre-wrap">{{ helpText | translate }}</p>
125
- </div>
126
- </div>
127
- </div>
128
117
  </div>
129
118
  </div>
@@ -14,10 +14,10 @@
14
14
  ng-hide="!!vm.status.maintenanceStatus"
15
15
  ng-click="vm.toggleEdit()"
16
16
  uib-tooltip="{{ 'Edit' | translate }}"
17
- aria-label="{{ 'Edit' | translate }}"
18
17
  tooltip-popup-delay="500"
19
18
  tooltip-append-to-body="true"
20
19
  tooltip-trigger="'mouseenter focus'"
20
+ aria-label="{{ 'Edit' | translate }}"
21
21
  >
22
22
  <i c8y-icon="pencil"></i>
23
23
  </button>
@@ -45,8 +45,8 @@
45
45
  ng-class="{ 'btn-pending': vm.saveInProgress }"
46
46
  ng-disabled="vm.saveInProgress || vm.availabilityForm.$invalid || !!vm.status.maintenanceStatus"
47
47
  ng-click="vm.save()"
48
- aria-label="{{ 'Save' | translate }}"
49
48
  type="button"
49
+ aria-label="{{ 'Save' | translate }}"
50
50
  >
51
51
  <span title="{{ 'Save' | translate }}" ng-hide="vm.saveInProgress" class="text-success">
52
52
  <i c8y-icon="check"></i>
@@ -87,6 +87,7 @@
87
87
  <input
88
88
  id="maintenance"
89
89
  title="{{ 'Enable/disable maintenance' | translate }}"
90
+ aria-label="{{ 'Enable/disable maintenance' | translate }}"
90
91
  type="checkbox"
91
92
  ng-click="vm.switchMaintenance(vm.device)"
92
93
  ng-checked="vm.status.maintenanceStatus"
@@ -30,7 +30,10 @@
30
30
  popover-placement="left"
31
31
  popover-trigger="'focus'"
32
32
  class="btn-help"
33
- aria-label="{{ 'Help' | translate }}"
33
+ aria-label="{{
34
+ 'Device location may be set by the device itself, or manually in the platform'
35
+ | translate
36
+ }}"
34
37
  >
35
38
  <i c8y-icon="question-circle-o"></i>
36
39
  </button>
@@ -117,11 +120,7 @@
117
120
  class="form-control"
118
121
  />
119
122
  <span class="input-group-btn">
120
- <button
121
- title="{{ 'Search' | translate }}"
122
- class="btn btn-dot"
123
- type="submit"
124
- >
123
+ <button title="{{ 'Search' | translate }}" class="btn btn-dot" type="submit">
125
124
  <i c8y-icon="search"></i>
126
125
  </button>
127
126
  </span>
@@ -211,6 +211,7 @@
211
211
  type="button"
212
212
  class="dropdown-toggle c8y-dropdown btn-link"
213
213
  uib-dropdown-toggle
214
+ aria-haspopup="true"
214
215
  >
215
216
  <i c8y-icon="ellipsis-v"></i>
216
217
  </button>
@@ -168,6 +168,7 @@
168
168
  data-cy="Actions"
169
169
  class="dropdown-toggle c8y-dropdown"
170
170
  uib-dropdown-toggle
171
+ aria-haspopup="true"
171
172
  >
172
173
  <i c8y-icon="ellipsis-v"></i>
173
174
  </button>
@@ -48,6 +48,7 @@
48
48
  title="{{ 'Settings' | translate }}"
49
49
  class="dropdown-toggle c8y-dropdown"
50
50
  uib-dropdown-toggle
51
+ aria-haspopup="true"
51
52
  >
52
53
  <i c8y-icon="ellipsis-v"></i>
53
54
  </button>
@@ -27,6 +27,7 @@
27
27
  class="dropdown-toggle c8y-dropdown"
28
28
  ng-click="addNewGroup()"
29
29
  uib-dropdown-toggle
30
+ aria-haspopup="true"
30
31
  >
31
32
  <i c8y-icon="plus-circle"></i>
32
33
  <span>{{ 'Add group' | translate }}</span>
@@ -41,8 +41,8 @@
41
41
  <button
42
42
  type="button"
43
43
  class="btn-help btn-help--sm"
44
- aria-label="{{ 'Help' | translate }}"
45
- uib-popover-html="'Drag x-axis to the left or right to move time.<br>Select time period to zoom.<br>Double click to zoom out.<br>Values in the y-axis may be truncated, hover over the values or the circle in the bottom to display whole values.' | translate"
44
+ aria-label="{{ 'Drag X-Axis to move time.<br>Select time period to zoom.<br>Double click to zoom out.<br>Values in the Y-Axis may be truncated, hover over the values or the circle in the bottom to display whole values.' | translate }}"
45
+ uib-popover-html="'Drag X-Axis to move time.<br>Select time period to zoom.<br>Double click to zoom out.<br>Values in the Y-Axis may be truncated, hover over the values or the circle in the bottom to display whole values.' | translate"
46
46
  popover-placement="right"
47
47
  popover-trigger="'focus'"
48
48
  popover-append-to-body="true"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ng1-modules",
3
- "version": "1017.19.0",
3
+ "version": "1017.20.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "AngularJS modules for Cumulocity IoT applications.",
@@ -59,6 +59,7 @@
59
59
  type="button"
60
60
  class="dropdown-toggle c8y-dropdown"
61
61
  uib-dropdown-toggle
62
+ aria-haspopup="true"
62
63
  >
63
64
  <i c8y-icon="ellipsis-v"></i>
64
65
  </button>
@@ -4,26 +4,29 @@
4
4
  <div class="d-flex">
5
5
  <div class="c8y-list__item__block flex-grow">
6
6
  <div class="c8y-list__item__body text-truncate-wrap p-l-0">
7
- <span class="text-muted"><em translate>No permissions for this scope.</em></span>
7
+ <span class="text-muted"><em translate>No permissions for this scope.</em></span>
8
8
  <button
9
- title="{{ 'Add' | translate }}"
10
- type="button"
11
- ng-click="vm.add()"
12
- class="btn-clean p-8"
13
- >
14
- <i c8y-icon="plus-circle" class="text-primary m-r-4 m-l-4 text-16"></i>
15
- </button>
9
+ title="{{ 'Add' | translate }}"
10
+ type="button"
11
+ ng-click="vm.add()"
12
+ class="btn-clean p-8"
13
+ >
14
+ <i c8y-icon="plus-circle" class="text-primary m-r-4 m-l-4 text-16"></i>
15
+ </button>
16
16
  </div>
17
17
  </div>
18
18
  </div>
19
19
  </li>
20
- <li class="c8y-list__item c8y-list__item--double-actions bg-level-1" ng-repeat="permission in vm.scopedPermissions">
20
+ <li
21
+ class="c8y-list__item c8y-list__item--double-actions bg-level-1"
22
+ ng-repeat="permission in vm.scopedPermissions"
23
+ >
21
24
  <div class="c8y-list__item__block d-flex a-i-center">
22
25
  <div class="c8y-list__item__body text-truncate-wrap p-l-0">
23
26
  <div class="row">
24
27
  <div class="col-sm-8">
25
28
  <div class="d-flex-md a-i-center p-b-xs-8">
26
- <label class="m-b-0 m-r-4">{{ 'Type' | translate }} </label>
29
+ <label class="m-b-0 m-r-4">{{ 'Type' | translate }}</label>
27
30
  <input
28
31
  type="text"
29
32
  class="form-control"
@@ -36,7 +39,7 @@
36
39
  </div>
37
40
  <div class="col-sm-4">
38
41
  <div class="d-flex-md a-i-center">
39
- <label class="m-b-0 m-r-4">{{ 'Permission' | translate }} </label>
42
+ <label class="m-b-0 m-r-4">{{ 'Permission' | translate }}</label>
40
43
  <div class="flex-grow d-flex a-i-center">
41
44
  <div class="c8y-select-wrapper flex-grow">
42
45
  <select
@@ -46,14 +49,20 @@
46
49
  ng-options="access.value as (access.label | translate) for access in vm.accessTypes.values()"
47
50
  ng-model="permission.permission"
48
51
  ng-change="vm.removeId(permission)"
49
- >
50
- </select>
52
+ ></select>
51
53
  </div>
52
54
  <button
53
55
  type="button"
54
56
  ng-show="vm.isOverridden(permission)"
55
57
  class="btn-dot m-l-8"
56
- uib-popover="{{ 'This permission is overridden by a more generic one in this role.' | translate }}"
58
+ uib-popover="{{
59
+ 'This permission is overridden by a more generic one in this role.'
60
+ | translate
61
+ }}"
62
+ aria-label="{{
63
+ 'This permission is overridden by a more generic one in this role.'
64
+ | translate
65
+ }}"
57
66
  popover-append-to-body="true"
58
67
  popover-trigger="'focus'"
59
68
  popover-placement="auto"
@@ -72,14 +81,14 @@
72
81
  class="btn-dot m-l-auto"
73
82
  ng-click="vm.remove(permission)"
74
83
  >
75
- <i c8y-icon="minus-circle" class="text-danger" ></i>
84
+ <i c8y-icon="minus-circle" class="text-danger"></i>
76
85
  </button>
77
86
  <button
78
87
  title="{{ 'Add' | translate }}"
79
88
  type="button"
80
89
  ng-click="vm.add()"
81
90
  class="btn-dot"
82
- ng-show="$index === (vm.scopedPermissions.length - 1)"
91
+ ng-show="$index === vm.scopedPermissions.length - 1"
83
92
  >
84
93
  <i c8y-icon="plus-circle" class="text-primary"></i>
85
94
  </button>
@@ -130,6 +130,7 @@
130
130
  title="{{ 'Actions' | translate }}"
131
131
  class="dropdown-toggle c8y-dropdown"
132
132
  uib-dropdown-toggle
133
+ aria-haspopup="true"
133
134
  ng-click="::$event.stopPropagation()"
134
135
  >
135
136
  <span>
@@ -83,6 +83,7 @@
83
83
  type="button"
84
84
  title="{{ 'Actions' | translate }}"
85
85
  uib-dropdown-toggle
86
+ aria-haspopup="true"
86
87
  ng-click="$event.stopPropagation()"
87
88
  >
88
89
  <span><i c8y-icon="ellipsis-v"></i></span>
@@ -193,7 +193,7 @@
193
193
  <div>
194
194
  <c8y-smart-rest-value-input
195
195
  aria-label="{{ 'Value' | translate }}"
196
- name="mandatoryValueInput"
196
+ name="'mandatoryValueInput' + $index"
197
197
  type="mandatoryValue.type"
198
198
  value="mandatoryValue.value"
199
199
  data-required="false"
@@ -286,7 +286,7 @@
286
286
  <label class="visible-sm visible-xs" translate>Value</label>
287
287
  <c8y-smart-rest-value-input
288
288
  aria-label="{{ 'Value' | translate }}"
289
- name="customValueInput"
289
+ name="'customValueInput' + $index"
290
290
  type="customValue.type"
291
291
  placeholder="'Value' | translate"
292
292
  value="customValue.value"
@@ -1,7 +1,6 @@
1
1
  <span ng-switch="vm.type">
2
2
  <span ng-switch-when="STRING">
3
3
  <input
4
- aria-label="{{ 'Input' | translate }}"
5
4
  name="{{ vm.name }}"
6
5
  placeholder="{{ vm.placeholder }}"
7
6
  type="text"
@@ -14,7 +13,7 @@
14
13
  <c8y-date-time-picker
15
14
  ng-model="vm.value"
16
15
  placeholder="{{ vm.placeholder }}"
17
- class="m-r-16 d-inline-block;"
16
+ class="m-r-16 d-inline-block"
18
17
  ng-required="vm.required"
19
18
  ></c8y-date-time-picker>
20
19
  </div>
@@ -33,7 +32,6 @@
33
32
  </span>
34
33
  <span ng-switch-when="INTEGER">
35
34
  <input
36
- aria-label="{{ 'Input' | translate }}"
37
35
  name="{{ vm.name }}"
38
36
  placeholder="{{ vm.placeholder }}"
39
37
  type="number"
@@ -122,6 +122,7 @@
122
122
  class="dropdown-toggle c8y-dropdown"
123
123
  title="{{ 'Actions' | translate }}"
124
124
  uib-dropdown-toggle
125
+ aria-haspopup="true"
125
126
  >
126
127
  <span>
127
128
  <i c8y-icon="ellipsis-v"></i>
@@ -4,6 +4,7 @@
4
4
  class="btn dropdown-toggle c8y-dropdown"
5
5
  title="{{ ctrl.getSelectedText() }}"
6
6
  uib-dropdown-toggle
7
+ aria-haspopup="true"
7
8
  >
8
9
  <span class="text-truncate">
9
10
  <i c8y-icon="check" ng-class="{'text-success': ctrl.areAllOriginallySelected()}"></i>
@@ -17,6 +17,7 @@
17
17
  uib-dropdown>
18
18
  <button class="dropdown-toggle c8y-dropdown"
19
19
  uib-dropdown-toggle
20
+ aria-haspopup="true"
20
21
  title="{{ 'Actions' | translate }}">
21
22
  <i c8y-icon="ellipsis-v"></i>
22
23
  </button>
@@ -104,6 +104,7 @@
104
104
  class="dropdown-toggle c8y-dropdown"
105
105
  title="{{ 'Actions' | translate }}"
106
106
  uib-dropdown-toggle
107
+ aria-haspopup="true"
107
108
  ng-click="::$event.stopPropagation()"
108
109
  >
109
110
  <i c8y-icon="ellipsis-v"></i>
@@ -11,6 +11,7 @@
11
11
  class="btn dropdown-toggle c8y-dropdown"
12
12
  title="{{ vm.displayTextAssigned() || 'Select inventory roles' | translate }}"
13
13
  uib-dropdown-toggle
14
+ aria-haspopup="true"
14
15
  >
15
16
  <span class="text-truncate">
16
17
  <span class="text-muted" style="opacity: 0.6">{{ vm.displayTextInherited() }}</span>
@@ -117,6 +118,7 @@
117
118
  ng-show="::vm.isInherited(role)"
118
119
  class="text-warning btn-clean"
119
120
  uib-popover="{{::'This role is already assigned to a parent asset.' | translate}}"
121
+ aria-label="{{::'This role is already assigned to a parent asset.' | translate}}"
120
122
  popover-append-to-body="'true'"
121
123
  popover-trigger="'focus'"
122
124
  popover-placement="right"
@@ -141,6 +141,7 @@
141
141
  title="{{ 'Actions' | translate }}"
142
142
  class="dropdown-toggle c8y-dropdown"
143
143
  uib-dropdown-toggle
144
+ aria-haspopup="true"
144
145
  ng-click="::$event.stopPropagation()"
145
146
  >
146
147
  <span><i c8y-icon="ellipsis-v"></i></span>