@c8y/ng1-modules 1019.24.6 → 1020.0.8

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 (150) hide show
  1. package/NOTICES +8357 -6666
  2. package/app-logs/app-logs.service.js +1 -1
  3. package/asset-notes/assetNotes.component.js +1 -1
  4. package/assetPropertyWidget/main.controller.js +1 -1
  5. package/cell-id-information-activator/cell-id-information-activator.config.js +1 -1
  6. package/cell-id-information-activator/cell-id-information-activator.service.js +1 -1
  7. package/cell-id-usage-statistics/cell-id-usage-statistics.component.js +1 -1
  8. package/cell-id-usage-statistics/cell-id-usage-statistics.service.js +1 -1
  9. package/commandTemplates/controllers/commandTemplates.js +1 -1
  10. package/commandTemplates/views/commandTemplates.html +83 -41
  11. package/core/core/services/alarms.js +1 -1
  12. package/core/core/services/application.js +1 -1
  13. package/core/core/services/auth.js +1 -1
  14. package/core/core/services/base.js +1 -1
  15. package/core/core/services/deviceShell.js +1 -1
  16. package/core/core/services/devices.js +1 -1
  17. package/core/core/services/dynamicGroups.js +1 -1
  18. package/core/core/services/geo.js +1 -1
  19. package/core/core/services/groups.js +1 -1
  20. package/core/core/services/inventory.js +1 -1
  21. package/core/core/services/kpi.js +1 -1
  22. package/core/core/services/measurements.js +1 -1
  23. package/core/core/services/settings.js +1 -1
  24. package/core/core/services/tenant.js +1 -1
  25. package/core/core/services/user.js +1 -1
  26. package/core/core/services/util.js +1 -1
  27. package/core/locales/de.po +553 -306
  28. package/core/locales/en.po +69 -0
  29. package/core/locales/es.po +562 -314
  30. package/core/locales/fr.po +560 -313
  31. package/core/locales/ja_JP.po +587 -299
  32. package/core/locales/ko.po +334 -327
  33. package/core/locales/nl.po +636 -389
  34. package/core/locales/pl.po +558 -310
  35. package/core/locales/pt_BR.po +575 -328
  36. package/core/locales/ru.po +21 -320
  37. package/core/locales/zh_CN.po +330 -323
  38. package/core/locales/zh_TW.po +330 -323
  39. package/core/ui/components/passwordStrengthChecklist.html +1 -1
  40. package/core/ui/configurable-device-list-columns/configurable-columns.service.js +1 -1
  41. package/core/ui/configurable-device-list-columns/modal-columns-configure.component.js +1 -1
  42. package/core/ui/controllers/deviceList.js +1 -1
  43. package/core/ui/controllers/eventList.js +1 -1
  44. package/core/ui/csvExporter/csvExporter.controller.js +1 -1
  45. package/core/ui/directives/alarmList.js +1 -1
  46. package/core/ui/directives/map.js +1 -1
  47. package/core/ui/directives/map2.js +1 -1
  48. package/core/ui/operations/operations-timeline.html +24 -10
  49. package/core/ui/properties/lastDeviceMessage.computedProperty.js +1 -1
  50. package/core/ui/schemaForm/schemaForm.component.js +1 -1
  51. package/core/ui/services/deviceListColumns.js +1 -1
  52. package/core/ui/services/measurementsReport.js +1 -1
  53. package/core/ui/user/editUser.directive.html +2 -0
  54. package/core/ui/views/eventList.html +3 -1
  55. package/dataBroker/connectors/connectors.html +1 -0
  56. package/dataBroker/connectorsAlarms/connectorAlarms.component.js +1 -1
  57. package/device-protocol-actility/actility-device.provider.js +1 -1
  58. package/device-protocol-canbus/canbus-device.provider.js +1 -1
  59. package/device-protocol-canopen/canopen-device.provider.js +1 -1
  60. package/device-protocol-deviceDatabase4/device-type-protocol-base.provider.js +1 -1
  61. package/device-protocol-lora/lora-device.provider.js +1 -1
  62. package/device-protocol-lpwan/lpwan-device.provider.js +1 -1
  63. package/device-protocol-modbus/modbus-device.provider.js +1 -1
  64. package/device-protocol-opcua/opcua-device.provider.js +1 -1
  65. package/device-protocol-profibus/profibus-device.provider.js +1 -1
  66. package/device-protocol-sigfox/sigfox-device.provider.js +1 -1
  67. package/device-protocol-snmp/snmp-device.provider.js +1 -1
  68. package/device-protocols/device-protocol-import-button.component.js +1 -1
  69. package/deviceDatabase4/detail/device-type-detail.component.js +1 -1
  70. package/deviceDatabase4/device-database.service.js +1 -1
  71. package/deviceDatabase4/device-type-list.component.js +1 -1
  72. package/deviceDatabase4/modals/configure-discrete-io.component.js +1 -1
  73. package/deviceDatabase4/modals/configure-register.component.js +1 -1
  74. package/deviceDatabase4/modals/import-device-type.component.js +1 -1
  75. package/deviceDatabase4/unique.directive.js +1 -1
  76. package/deviceDetail/cumulocity.json +0 -1
  77. package/deviceSelector/controllers/deviceSelectorComboCtrl.js +1 -1
  78. package/deviceStatusWidget/deviceStatus.component.js +1 -1
  79. package/deviceStatusWidget/ownerStatus.component.js +1 -1
  80. package/devicemanagement-availability/controllers/availability.js +1 -1
  81. package/devicemanagement-availability/views/detail.html +2 -2
  82. package/devicemanagement-eventList/controllers/eventList.js +1 -1
  83. package/enterpriseEdition/customBranding/brandingConfigurationUi.provider.js +1 -1
  84. package/enterpriseEdition/sslCertificate/manageCertificateForm.html +1 -1
  85. package/eventList/eventList.controller.js +1 -1
  86. package/generic-ui/generic-ui-inventory-property.component.js +1 -1
  87. package/groupsHierarchy/controllers/groupsListCtrl.js +1 -1
  88. package/kpi/controllers/pieChart.js +1 -1
  89. package/measurements/fragmentChart/fragmentChart.component.js +1 -1
  90. package/modbusConfiguration4/fieldbus-config.component.js +1 -1
  91. package/modbusConfiguration4/fieldbus-device-list.component.js +1 -1
  92. package/modbusWidget4/modbus-widget.service.js +1 -1
  93. package/modbusWidget4/widget-config.component.js +1 -1
  94. package/modbusWidget4/widget.component.js +1 -1
  95. package/package.json +5 -5
  96. package/remoteAccess/remoteAccess.service.js +1 -1
  97. package/remoteAccess/remoteAccessSettings/remoteAccessSettings.component.js +1 -1
  98. package/roles/detail/roleDetailInventory.html +33 -14
  99. package/scada/mapping.directive.js +1 -1
  100. package/simulators/simulatorsUi.provider.js +1 -1
  101. package/smartRestEditor/views/list.html +1 -0
  102. package/smartRules/directives/smartRuleParamInputKpi.js +1 -1
  103. package/smartRules/list/smartRulesList.html +25 -0
  104. package/smartRules/views/edit.html +95 -27
  105. package/smartRules/views/list.html +39 -5
  106. package/tenantStatistics/tenant-statistics.component.js +1 -1
  107. package/userRoles/inventoryRolesTab/inventoryRolesTab.component.js +1 -1
  108. package/users/userListView/userListView.component.js +1 -1
  109. package/users/userListView/userListView.html +1 -0
  110. package/users/userRemovalModal/userRemovalModal.component.html +1 -0
  111. package/alarmAssets/cumulocity.json +0 -14
  112. package/alarmAssets/img/all-critical-alarms-widget-pr.png +0 -0
  113. package/alarmAssets/index.js +0 -1
  114. package/alarmAssets/views/component.html +0 -8
  115. package/alarms/cumulocity.json +0 -21
  116. package/alarms/img/alarm-list-widget-pr.png +0 -0
  117. package/alarms/index.js +0 -1
  118. package/alarms/index.mock.js +0 -1
  119. package/alarms/severity.directive.js +0 -1
  120. package/alarms/severity.html +0 -13
  121. package/alarms/styles.css +0 -3
  122. package/alarms/widget-config.controller.js +0 -1
  123. package/alarms/widget-config.html +0 -116
  124. package/alarms/widget.config.js +0 -1
  125. package/alarms/widget.controller.js +0 -1
  126. package/alarms/widget.html +0 -15
  127. package/alarms/widget.module.js +0 -1
  128. package/alarms/widget.module.mock.js +0 -1
  129. package/cockpit-alarmRecent/cumulocity.json +0 -18
  130. package/cockpit-alarmRecent/img/recent-alarms-widget-pr.png +0 -0
  131. package/cockpit-alarmRecent/index.js +0 -1
  132. package/cockpit-alarmRecent/views/component.html +0 -7
  133. package/devicemanagement-aclManagement/controllers/aclManagementCtrl.js +0 -1
  134. package/devicemanagement-aclManagement/cumulocity.json +0 -21
  135. package/devicemanagement-aclManagement/index.js +0 -1
  136. package/devicemanagement-aclManagement/views/index.html +0 -207
  137. package/devicemanagement-alarmList/controllers/alarmList.js +0 -1
  138. package/devicemanagement-alarmList/cumulocity.json +0 -24
  139. package/devicemanagement-alarmList/gallery/alarms.png +0 -0
  140. package/devicemanagement-alarmList/index.js +0 -1
  141. package/devicemanagement-alarmList/views/index.html +0 -155
  142. package/devicemanagement-tracking/controllers/config.js +0 -1
  143. package/devicemanagement-tracking/controllers/tracking.js +0 -1
  144. package/devicemanagement-tracking/cumulocity.json +0 -19
  145. package/devicemanagement-tracking/index.js +0 -1
  146. package/devicemanagement-tracking/views/index.html +0 -103
  147. package/devicemanagement-vendMeDeviceControl/controllers/vendMeDeviceControl.js +0 -1
  148. package/devicemanagement-vendMeDeviceControl/cumulocity.json +0 -18
  149. package/devicemanagement-vendMeDeviceControl/index.js +0 -1
  150. package/devicemanagement-vendMeDeviceControl/views/index.html +0 -229
@@ -1,207 +0,0 @@
1
- <div ng-controller="aclManagementCtrl">
2
- <div class="navbar">
3
- <div class="nav navbar-right">
4
- <form class="navbar-form">
5
- <span
6
- class="btn-link"
7
- uib-popover="{{ helpText | translate }}"
8
- popover-placement="bottom"
9
- popover-trigger="focus"
10
- >
11
- <i c8y-icon="question-circle-o"></i>
12
- </span>
13
- <button
14
- class="btn btn-link"
15
- type="button"
16
- title="{{ 'Add permission' | translate }}"
17
- ng-show="allowEdit"
18
- ng-click="toggleAddPermission()"
19
- >
20
- <i c8y-icon="plus"></i>
21
- {{ 'Add permission' | translate }}
22
- </button>
23
- </form>
24
- </div>
25
- </div>
26
-
27
- <div class="alert alert-warning">
28
- <i c8y-icon="exclamation-triangle" class="icon-2x pull-left"></i>
29
- <span translate>
30
- This feature is deprecated. You should rather use
31
- <a href="/apps/administration#roles">Roles</a>
32
- to set permissions.
33
- </span>
34
- </div>
35
- <div class="panel panel-clean" uib-collapse="addPermission">
36
- <div class="panel-heading">
37
- <i c8y-icon="key"></i>
38
- {{ 'New permission' | translate }}
39
- </div>
40
- <form name="newPermission" class="panel-body" novalidate>
41
- <div class="row">
42
- <div class="form-group col-lg-3">
43
- <label class="control-label text-capitalize">
44
- {{ sourceType.value | translate }}
45
- </label>
46
- <ui-select ng-model="permission.source" class="form-control">
47
- <ui-select-match placeholder="{{ 'Select or search' | translate }}">
48
- {{ $select.selected.name }}
49
- </ui-select-match>
50
- <ui-select-choices repeat="item in sources | filter: $select.search | orderBy:'name'">
51
- <div ng-bind="item.name"></div>
52
- </ui-select-choices>
53
- </ui-select>
54
- <div class="btn-group pull-left">
55
- <button
56
- class="btn btn-primary text-capitalize"
57
- ng-class="{ active: sourceType == type }"
58
- type="button"
59
- title="{{ type.value | translate | lowercase }}"
60
- ng-click="setSourceType(type)"
61
- ng-repeat="type in sourceTypes"
62
- >
63
- {{ type.value | translate | lowercase }}
64
- </button>
65
- </div>
66
- </div>
67
- <c8y-device-permission
68
- data-scope="permission.scope"
69
- data-permission-type="permission.type"
70
- data-access="permission.access"
71
- data-device="device"
72
- ></c8y-device-permission>
73
- </div>
74
-
75
- <div class="pull-right">
76
- <button
77
- class="btn btn-primary"
78
- type="submit"
79
- title="{{ 'Save' | translate }}"
80
- ng-click="create(permission)"
81
- ng-disabled="!isValid(permission)"
82
- >
83
- {{ 'Save' | translate }}
84
- </button>
85
- <button
86
- class="btn btn-default"
87
- type="button"
88
- title="{{ 'Cancel' | translate }}"
89
- ng-click="cancel()"
90
- >
91
- Cancel
92
- </button>
93
- </div>
94
- </form>
95
- </div>
96
-
97
- <div class="panel panel-clean">
98
- <div class="panel-heading">
99
- <i c8y-icon="user"></i>
100
- {{ 'Check user permissions' | translate }}
101
- </div>
102
-
103
- <div class="panel-body">
104
- <div>
105
- <label translate>User</label>
106
- <ui-select ng-model="user.selected" class="form-control" style="width: 300px">
107
- <ui-select-match placeholder="{{ 'Select or search user' | translate }}">
108
- {{ $select.selected.id }}
109
- </ui-select-match>
110
- <ui-select-choices
111
- repeat="item in users | filter: $select.search | orderBy:'id'"
112
- position="bottom"
113
- >
114
- <div ng-bind="item.id"></div>
115
- </ui-select-choices>
116
- </ui-select>
117
- </div>
118
- <div class="alert alert-warning" data-ng-show="permissions.length == 0" translate>
119
- No permissions for user.
120
- </div>
121
- <table class="table table-hover" ng-show="permissions.length">
122
- <tr>
123
- <th translate>Has right to</th>
124
- </tr>
125
- <tbody>
126
- <tr ng-repeat="permission in permissions">
127
- <td>
128
- {{ humanizeAccess(permission.access.value) }}
129
- <strong>{{ humanizeScope(permission.scope.value) }}</strong>
130
- {{ 'with' | translate }}
131
- <strong>{{ humanizeFragment(permission.type) }}</strong>
132
- {{ 'fragment' | translate }}
133
- </td>
134
- </tr>
135
- </tbody>
136
- </table>
137
- </div>
138
- </div>
139
- <div class="panel panel-clean">
140
- <div class="panel-heading">
141
- <i c8y-icon="shield"></i>
142
- {{ 'Granted permission' | translate }}
143
- </div>
144
-
145
- <table class="table table-permissions panel-body">
146
- <thead>
147
- <tr>
148
- <th translate>User</th>
149
- <th translate>Permissions</th>
150
- <th>&nbsp;</th>
151
- </tr>
152
- </thead>
153
- <tbody ng-repeat="userPermission in userPermissions">
154
- <tr ng-repeat="permission in userPermission.permissions track by $index">
155
- <td ng-if="$first" style="width: 200px" rowspan="{{ userPermission.permissions.length }}">
156
- {{ userPermission.source.id }}
157
- </td>
158
- <td>
159
- {{ translatePermission(permission) }}
160
- </td>
161
- <td class="text-right">
162
- <button
163
- class="btn btn-dot btn-dot--danger showOnHover"
164
- title="{{ 'Remove permission' | translate }}"
165
- ng-show="allowEdit"
166
- ng-click="removeUserPermission(userPermission, permission)"
167
- >
168
- <i c8y-icon="times"></i>
169
- </button>
170
- </td>
171
- </tr>
172
- </tbody>
173
- <thead>
174
- <tr>
175
- <th translate>Group</th>
176
- <th translate>Permissions</th>
177
- <th>&nbsp;</th>
178
- </tr>
179
- </thead>
180
- <tbody ng-repeat="groupPermission in groupPermissions">
181
- <tr ng-repeat="permission in groupPermission.permissions track by $index">
182
- <td
183
- ng-if="$first"
184
- style="width: 200px"
185
- rowspan="{{ groupPermission.permissions.length }}"
186
- >
187
- {{ groupPermission.source.name }}
188
- </td>
189
- <td>
190
- {{ translatePermission(permission) }}
191
- </td>
192
- <td class="text-right">
193
- <button
194
- class="btn btn-dot btn-dot--danger showOnHover"
195
- type="button"
196
- title="{{ 'Remove permission' | translate }}"
197
- ng-show="allowEdit"
198
- ng-click="removeGroupPermission(groupPermission, permission)"
199
- >
200
- <i c8y-icon="times"></i>
201
- </button>
202
- </td>
203
- </tr>
204
- </tbody>
205
- </table>
206
- </div>
207
- </div>
@@ -1 +0,0 @@
1
- "use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ownKeys(t,e){var r,i=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),i.push.apply(i,r)),i}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,_toPropertyKey(i.key),i)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function e(r,e,t,i,n,o,s,c,a){var u,l,f=this,d={pageSize:10},y=new WeakMap,v=new WeakMap,p=function(){function t(e){_classCallCheck(this,t),this.name=e,this.active=!1,this.filters={},this.count=null,this.countLoading=!1}return _createClass(t,[{key:"active",get:function(){return y.get(this)},set:function(e){y.set(this,e),this.reloadCount()}},{key:"toggleActive",value:function(){this.active=!this.active}},{key:"filters",get:function(){return v.get(this)},set:function(e){v.set(this,e),this.reloadCount()}},{key:"reloadCount",value:function(){var t=this;this.active&&(this.countLoading=!0,_.isUndefined(this.filters.source)||_.assign(this.filters,{withSourceAssets:!0,withSourceDevices:!0}),i.getDisplayCount(_.omit(this.filters,this.filters.resolved?["pageSize","resolved"]:"pageSize")).then(function(e){t.count=e}).finally(function(){t.countLoading=!1}))}}]),t}(),m="/alarmsWithChildren",h=(_.assign(f,{icon:i.icon,realtime:!0,onVmUnresolvedChange:C,clientSideUnresolved:function(){return e.deviceId?f.unresolved:void 0},resolveAll:function(){return o({title:a("Confirm clearing alarms?"),body:a("Do you really want to clear all alarms of selected severities?"),status:"danger"}).then(E).then(function(e){e.resolvedImmediately?c.success(a("Alarms cleared.")):c.success(a("Alarms are being cleared in background."))}).then(j)},refresh:j,isRefreshing:function(){return _.some(f.severities,"refreshing")}}),_.reverse(_.cloneDeep(i.severityList)));function b(){f.severities.forEach(function(e){e.filters=_objectSpread(_objectSpread({},d),{},{severity:e.name})})}function g(e,t){n.addListener(r.$id,u,e,t)}function w(){j()}function P(e,t){var r,i=_.find(f.severities,{name:t.severity});_.isString(i.count)?i.reloadCount():(r=0,"CREATE"===e&&("ACTIVE"!==t.status&&"ACKNOWLEDGED"!==t.status||(r=i.filters.resolved?0:1),"CLEARED"===t.status)&&(r=i.filters.resolved?1:0),"UPDATE"===e&&"CLEARED"===t.status&&(r=i.filters.resolved?1:-1),i.count+=r)}function S(){n.switchRealtime(r.$id,u)}function C(){d.resolved=!f.unresolved,b()}function E(){var e=_.filter(f.severities,"active"),e=_.map(e,function(e){var e=_objectSpread({resolved:!1},_.pick(e.filters,["source","severity"])),t=(_.isUndefined(e.source)||_.assign(e,{withSourceAssets:!0,withSourceDevices:!0}),{status:i.status.CLEARED});return i.updateBulk(e,t)});return t.all(e).then(function(e){return{resolvedImmediately:_.every(e,function(e){return 200===e.status})}})}function j(){r.$broadcast("alarmListRefresh"),f.severities.forEach(function(e){return e.reloadCount()})}f.severities=_.map(h,function(e){return new p(e)}),f.unresolved=!0,C(),e.deviceId&&(d.source=e.deviceId),b(),f.severities.forEach(function(e){e.active=!0}),s.changeTitle({title:a("Alarms")}),function(){var e="".concat(m,"/*");d.source&&(e="".concat(m,"/").concat(d.source));if(u){if(e===u)return;n.removeSubscriber(r.$id,u),l()}u=e,g("".concat(r.$id,"-subscribed"),w),g("CREATE",P),g("UPDATE",P),l=r.$on("$destroy",function(){n.removeSubscriber(r.$id,u)}),f.realtime&&S()}(),r.$watch("vm.realtime",function(){f.realtime&&j();f.realtime!==n.getStatus(r.$id,u)&&S()})}e.$inject=["$scope","$routeParams","$q","c8yAlarms","c8yRealtime","c8yModal","c8yTitle","c8yAlert","gettext"],angular.module("c8y.parts.alarmList").controller("alarmListCtrl",e)}();
@@ -1,24 +0,0 @@
1
- {
2
- "name": "Alarm management",
3
- "ngModules": [
4
- "c8y.parts.alarmList"
5
- ],
6
- "imports": [
7
- "core/smartRules"
8
- ],
9
- "category": "Alarm",
10
- "icon": "bell",
11
- "color": "#F2DF0F",
12
- "description": "Monitor alarms from all device in a common place. Simplify cooperation of monitoring personell with personalized alarm acknowledgment. Filter alarms based on their severity. View alarm details and jump directly to the impacted device. Contributes to the navigator and provides seperate views to browser alarms.",
13
- "gallery": [
14
- "gallery/alarms.png"
15
- ],
16
- "js": [
17
- "index.js",
18
- "controllers/alarmList.js"
19
- ],
20
- "folderName": "alarmList",
21
- "appsInclude": [
22
- "devicemanagement"
23
- ]
24
- }
@@ -1 +0,0 @@
1
- "use strict";angular.module("c8y.parts.alarmList",[]).config(["c8yNavigatorProvider","c8yViewsProvider","gettext",function(e,i,a){var r="bell",t=a("Overviews");e.addNavigation({parent:t,name:a("Alarms"),priority:2480,icon:r,path:"alarms",featureId:"alarms"}),i.when("/alarms",{templateUrl:":::PLUGIN_PATH:::/views/index.html"}),i.when("/device/:deviceId",{name:a("Alarms"),priority:800,icon:r,templateUrl:":::PLUGIN_PATH:::/views/index.html"}),i.when("/service/:deviceId",{name:a("Alarms"),priority:800,icon:r,templateUrl:":::PLUGIN_PATH:::/views/index.html"})}]);
@@ -1,155 +0,0 @@
1
- <!--
2
- TODO: This view is used both in devide management and cockpit
3
- we need to check the context to display the proper breadcrumbs
4
-
5
- <c8y-breadcrumbs-set>
6
- <c8y-breadcrumbs-item
7
- label="{{ 'Alarms' | translate }}"
8
- icon="bell"
9
- ></c8y-breadcrumbs-item>
10
- <c8y-breadcrumbs-item
11
- label="{{ 'Overviews' | translate }}"
12
- icon="c8y-overviews"
13
- ></c8y-breadcrumbs-item>
14
- </c8y-breadcrumbs-set> -->
15
-
16
- <div ng-controller="alarmListCtrl as vm">
17
- <c8y-ui-action-bar-set>
18
- <li
19
- class="navbar-form"
20
- action-bar-position="left"
21
- >
22
- <div class="btn-group btn-group-sm">
23
- <button
24
- class="btn btn-default btn-sm d-flex a-i-center"
25
- ng-class="{ active: severity.active }"
26
- title="{{ severity.name | lowercase | humanize | translate }}"
27
- type="button"
28
- ng-repeat="severity in vm.severities"
29
- ng-model="severity.active"
30
- ng-click="severity.toggleActive()"
31
- >
32
- <i
33
- class="status m-r-4 icon-14 stroked-icon"
34
- ng-class="severity.name | lowercase"
35
- c8y-icon="{{ vm.icon(severity.name) }}"
36
- ></i>
37
-
38
- <span
39
- class="hidden-md hidden-sm text-truncate m-r-4"
40
- ng-bind="severity.name | lowercase | humanize | translate"
41
- ></span>
42
- <span
43
- class="badge badge-info flex-no-shrink"
44
- ng-if="severity.active"
45
- >
46
- <span ng-if="severity.countLoading">
47
- <i
48
- class="icon-spin"
49
- c8y-icon="circle-o-notch"
50
- ></i>
51
- </span>
52
- <span
53
- ng-if="!severity.countLoading"
54
- ng-bind="severity.count"
55
- ></span>
56
- </span>
57
- </button>
58
- </div>
59
- </li>
60
- </c8y-ui-action-bar-set>
61
- <c8y-ui-action-bar-set>
62
- <li
63
- class="navbar-form"
64
- action-bar-position="right"
65
- >
66
- <label
67
- class="c8y-switch"
68
- aria-label="{{ 'Show cleared alarms' | translate }}"
69
- >
70
- <input
71
- type="checkbox"
72
- ng-model="vm.unresolved"
73
- ng-change="vm.onVmUnresolvedChange()"
74
- ng-true-value="false"
75
- ng-false-value="true"
76
- />
77
- <span></span>
78
- <span
79
- class="text-truncate"
80
- title="{{ 'Show cleared alarms' | translate }}"
81
- >
82
- {{ 'Show cleared alarms' | translate }}
83
- </span>
84
- </label>
85
- </li>
86
- </c8y-ui-action-bar-set>
87
- <c8y-ui-action-bar-set>
88
- <li action-bar-position="right">
89
- <button
90
- class="btn btn-link d-flex a-i-center"
91
- title="{{ 'Clear all alarms' | translate }}"
92
- type="button"
93
- ng-click="vm.resolveAll()"
94
- >
95
- <i
96
- class="m-r-4"
97
- c8y-icon="c8y-alert-idle"
98
- ></i>
99
- <span
100
- class="text-truncate"
101
- title="{{ 'Clear all`alarms`' | translate }}"
102
- >
103
- {{ 'Clear all`alarms`' | translate }}
104
- </span>
105
- </button>
106
- </li>
107
- </c8y-ui-action-bar-set>
108
- <c8y-ui-action-bar-set>
109
- <li action-bar-position="right">
110
- <c8y-realtime-switch
111
- class="d-contents"
112
- state="vm.realtime"
113
- ></c8y-realtime-switch>
114
- </li>
115
- </c8y-ui-action-bar-set>
116
- <c8y-ui-action-bar-set>
117
- <li action-bar-position="right">
118
- <button
119
- class="btn btn-link d-flex a-i-center"
120
- title="{{ 'Refresh alarm list contents' | translate }}"
121
- type="button"
122
- ng-click="vm.refresh()"
123
- >
124
- <i
125
- ng-class="{ 'icon-spin': vm.isRefreshing() }"
126
- c8y-icon="refresh"
127
- ></i>
128
- <span
129
- class="m-l-4 text-truncate"
130
- translate
131
- >
132
- Reload
133
- </span>
134
- </button>
135
- </li>
136
- </c8y-ui-action-bar-set>
137
-
138
- <c8y-help
139
- src="/docs/device-management-application/monitoring-and-controlling-devices/#working-with-alarms"
140
- ></c8y-help>
141
-
142
- <div class="row">
143
- <c8y-alarm-list
144
- class="col-lg-6 c8y-alarm-list"
145
- data-title="{text:(severity.name | lowercase | humanize | translate), icon:vm.icon(severity.name), class:(severity.name | lowercase)}"
146
- ng-repeat="severity in vm.severities"
147
- ng-if="severity.active"
148
- filter="severity.filters"
149
- active-severities="{[severity.name]: true}"
150
- realtime="vm.realtime"
151
- hide-header-actions="true"
152
- refresh-loading="severity.refreshing"
153
- ></c8y-alarm-list>
154
- </div>
155
- </div>
@@ -1 +0,0 @@
1
- "use strict";!function(){function e(o,a,r,s,u,d,g){var t=o.$watch("device",function(e){e&&e.id&&(e=e,o.geofence=e.c8y_Geofence&&e.c8y_Geofence.active,o.motion=e.c8y_MotionTracking&&e.c8y_MotionTracking.active||!1,o.radius=e.c8y_Geofence&&e.c8y_Geofence.radius||100,t())});_.assign(o,{supports:function(e){return s.supportsOperation(o.device,e)},updateConfig:function(){var e,t=[],n=o.device,c=n.id,i=n.c8y_Position;o.geofence&&!i?(e=g("Device current position not defined"),o.$emit("message",{text:e,type:"error"})):(s.supportsOperation(n,"c8y_Geofence")&&t.push(function(e,t,n,c){c=g(c?"Activate geofence":"Deactivate geofence");return r.create({deviceId:e,description:c,c8y_Geofence:{lat:t&&t.lat,lng:t&&t.lng,radius:n,active:!0}})}(c,i,o.radius,o.geofence)),s.supportsOperation(n,"c8y_MotionTracking")&&t.push(function(e,t){var n=g(t?"Activate motion tracking":"Deactivate motion tracking");return r.create({deviceId:e,description:n,c8y_MotionTracking:{active:!!t}})}(c,o.motion)),t.length?a.all(t).then(function(){o.$emit("message",{text:g("Operations created"),type:"success"})}):_.isUndefined(o.radius)||(_.assign(n,{c8y_Radius:{value:o.radius}},{c8y_CopyPosition:_.cloneDeep(n.c8y_Position)}),u.save(n).then(function(){d.success(g("Changes saved."))})))}})}e.$inject=["$scope","$q","c8yDeviceControl","c8yDevices","c8yInventory","c8yAlert","gettext"],angular.module("c8y.parts.tracking").controller("trackingConfigCtrl",e)}();
@@ -1 +0,0 @@
1
- "use strict";!function(){function e(e,t,r,a,n,o,c,i,m,l){var d=this,s=(d.deviceId=t.deviceId,{gps:!0,gsm:!0}),t=[{txt:o("Last hour"),time:"hour"},{txt:o("Last day"),time:"day"},{txt:o("Last week"),time:"week"},{txt:o("Last month"),time:"month"},{txt:o("Custom"),time:"custom"}];function k(){return d.map&&d.map.tracker&&d.map.tracker.loadMore&&d.map.tracker.loadMore[d.deviceId]}d.markers={},d.noMarkers=!0,d.checkDateTo=function(){var e=moment(d.dateFrom);d.dateTo&&0<=e.diff(moment(d.dateTo),"days")&&(d.dateTo=e.clone().add("day",1).toDate())},d.toggle=function(e,t){var a;d.markers["p".concat(e)]?(d.map.leafletMap.removeLayer(d.markers["p".concat(e)]),delete d.markers["p".concat(e)]):(a=n.getLocationFragment(t))&&(d.markers["p".concat(e)]=L.marker(L.latLng(a.lat,a.lng)).bindPopup(r("date")(t.time,"medium")).addTo(d.map.leafletMap)),d.noMarkers=!Object.keys(d.markers).length},d.hideAll=function(){_.forEach(d.markers,function(e){d.map.leafletMap.removeLayer(e)}),d.markers={},d.noMarkers=!0},d.events=function(){var e=d.map&&d.map.tracker.events[d.deviceId];return _.filter(e,{type:"c8y_LocationUpdate"})},d.hasLoadMore=k,d.loadMore=function(){var e=k();return e&&e()},d.markerTemplate=c.tracking.markerTemplate||null,d.realtime=c.tracking.realtime||!1,d.legend=c.tracking.legend||!1,d.eventText=c.tracking.eventText||!1,d.timeIntervals=t,d.onTrackingOptionChange=function(){d.hideAll(),s={gps:"all"===d.trackingOption||"gps"===d.trackingOption,gsm:"all"===d.trackingOption||"gsm"===d.trackingOption},d.map.tracker.activate(d.deviceId,s)},d.showTrackingOptions=!1,m.detail(d.deviceId).then(a.getResData).then(l.gsmTrackingAvailable).then(function(e){d.showTrackingOptions=e}),d.trackingOption="all",e.$on("search",function(){d.hideAll();var e=d.dateFrom,t=d.dateTo;d.map.tracker.changeInterval({dateFrom:e&&moment(e).format(a.dateFullFormat),dateTo:t&&moment(t).format(a.dateFullFormat)}).then(function(){d.map.tracker.activate(d.deviceId,s)})})}e.$inject=["$scope","$routeParams","$filter","c8yBase","c8yGeo","gettext","c8yConfig","c8yApplication","c8yDevices","c8yCombain"],angular.module("c8y.parts.tracking").controller("trackingCtrl",e)}();
@@ -1,19 +0,0 @@
1
- {
2
- "name": "AssetTrack",
3
- "ngModules": [
4
- "c8y.parts.tracking"
5
- ],
6
- "category": "Verticals",
7
- "icon": "home",
8
- "color": "#F03F0F",
9
- "description": "View the historic locations of a device, browser its trace for a given time period. This plugin contributes a new view to the device details.",
10
- "js": [
11
- "index.js",
12
- "controllers/tracking.js",
13
- "controllers/config.js"
14
- ],
15
- "folderName": "tracking",
16
- "appsInclude": [
17
- "devicemanagement"
18
- ]
19
- }
@@ -1 +0,0 @@
1
- "use strict";!function(){function e(e,i){e.when("/device/:deviceId",{name:i("Tracking"),templateUrl:":::PLUGIN_PATH:::/views/index.html",icon:"crosshairs",showIf:["$routeParams","c8yDevices",function(e,i){e=e.deviceId;return i.detailCached(e).then(function(e){e=e.data;return e&&e.c8y_Position})}]})}e.$inject=["c8yViewsProvider","gettext"],angular.module("c8y.parts.tracking",[]).config(e)}();
@@ -1,103 +0,0 @@
1
- <div ng-controller="trackingCtrl as ctrl">
2
- <c8y-ui-action-bar-set>
3
- <c8y-realtime-switch
4
- get-state="ctrl.map.state()"
5
- on-start="ctrl.map.startRt()"
6
- on-stop="ctrl.map.stopRt()"
7
- ></c8y-realtime-switch>
8
-
9
- <li class="navbar-form">
10
- <form class="form-inline">
11
- <div class="c8y-select-wrapper" ng-if="ctrl.showTrackingOptions">
12
- <select
13
- class="form-control"
14
- ng-model="ctrl.trackingOption"
15
- ng-change="ctrl.onTrackingOptionChange()"
16
- >
17
- <option value="all" translate>Show all data</option>
18
- <option value="gps" translate>Show GPS data only</option>
19
- <option value="gsm" translate>Show GSM data only</option>
20
- </select>
21
- <span></span>
22
- </div>
23
- <c8y-time-interval date-from="ctrl.dateFrom" date-to="ctrl.dateTo"></c8y-time-interval>
24
- </form>
25
- </li>
26
- </c8y-ui-action-bar-set>
27
-
28
- <div class="card content-fullpage card--grid grid__col--8-4--md">
29
- <div
30
- class="p-relative"
31
- style="min-height: 30vh"
32
- c8y-map-internal
33
- map="ctrl.map"
34
- marker-template="ctrl.markerTemplate"
35
- c8y-legend="ctrl.legend"
36
- device-id="ctrl.deviceId"
37
- realtime="ctrl.realtime"
38
- ></div>
39
- <div class="d-flex d-col bg-inherit content-fullpage">
40
- <div class="card-header separator">
41
- <div class="card-title" translate>Tracking events</div>
42
- </div>
43
- <div class="inner-scroll">
44
- <div class="card-block" ng-show="ctrl.events().length == 0">
45
- <div class="c8y-empty-state text-left">
46
- <div class="h1 c8y-icon c8y-icon-location c8y-icon-duocolor"></div>
47
- <p>{{ 'No tracking events found' | translate }}</p>
48
- </div>
49
- </div>
50
-
51
- <div class="card-block p-t-0 p-b-0">
52
- <div class="list-group">
53
- <div
54
- class="list-group-item d-flex p-l-0 p-r-0"
55
- ng-repeat="event in ctrl.events()"
56
- data-cy="index--event-list"
57
- ng-class="{ 'text-info': !!ctrl.markers['p' + $index] }"
58
- ng-click="ctrl.toggle($index, event)"
59
- >
60
- <div class="list-item-icon">
61
- <i c8y-icon="c8y-location"></i>
62
- </div>
63
- <div class="list-item-body">
64
- <div class="d-flex">
65
- <span class="m-r-8">
66
- {{ event.time | date: 'mediumDate' }}
67
- </span>
68
- <span class="m-l-auto">
69
- {{ event.time | date: 'mediumTime' }}
70
- </span>
71
- </div>
72
-
73
- <span ng-if="ctrl.eventText">{{ event.text }}</span>
74
- </div>
75
- </div>
76
- </div>
77
- </div>
78
- </div>
79
- <div>
80
- <button
81
- type="button"
82
- title="{{ 'Load more' | translate }}"
83
- class="btn btn-link fit-w sticky-bottom separator-top"
84
- ng-click="ctrl.loadMore()"
85
- ng-if="ctrl.hasLoadMore()"
86
- >
87
- {{ 'Load more' | translate }}
88
- </button>
89
- </div>
90
- <div class="card-footer separator" ng-show="ctrl.events().length">
91
- <button
92
- title="{{ 'Deselect all markers' | translate }}"
93
- type="button"
94
- class="btn btn-default"
95
- ng-disabled="ctrl.noMarkers"
96
- ng-click="ctrl.hideAll()"
97
- >
98
- {{ 'Deselect all markers' | translate }}
99
- </button>
100
- </div>
101
- </div>
102
- </div>
103
- </div>
@@ -1 +0,0 @@
1
- "use strict";angular.module("c8y.parts.vendMeDeviceControl").controller("vendMeDeviceControlCtrl",["$scope","c8yDeviceControl","c8yDevices","c8yModal","c8yInventory","c8yAlert","gettext",function(a,t,n,o,e,i,c){var r,s=[{text:c("Executive"),code:"EXE",bitmask:"0x0001",val:"a"},{text:c("MDB"),code:"MDB",bitmask:"0x0002",val:"m"},{text:c("Free vend"),code:"FREE",bitmask:"0x0008",val:"f"},{text:c("DDCMP on RS232 #1"),code:"DDCMP1",bitmask:"0x0004",val:"d"},{text:c("DEX on RS232 #1"),code:"DEX1",bitmask:"0x0010",val:"x"},{text:c("DDCMP on RS232 #2"),code:"DDCMP2",bitmask:"0x0100",val:"D"},{text:c("DEX on RS232 #2"),code:"DEX2",bitmask:"0x0200",val:"X"}],d=[{text:c("Operate as MDB Communications Gateway"),code:"MDB_COMMGW",val:"0x00000001",require:"m"},{text:c("VMC supports undefined credit"),code:"MDB_UNCREDIT",val:"0x00000002",require:"m"},{text:c("Force not to use display"),code:"MDB_NODISPLAY",val:"0x00000004",require:"m"},{text:c("Use FTL File Id 2 (default 1)"),code:"MDB_2FTL",val:"0x00000008",require:"m"},{text:c("Deactivate MDB sniffer mode"),code:"MDB_NOSNIFFER",val:"0x00000010",require:"m"},{text:c("Sielaff OLM2 variant of Communications Gateway"),code:"MDB_CGWOLM",val:"0x00000020",require:"m"},{text:c("Sielaff CGW variant of Communications Gateway"),code:"MDB_CGWSIE",val:"0x00000040",require:"m"},{text:c("Remote cashless"),code:"REMOTECL",val:"0x00000080",require:"m"},{text:c("Use DDCMP list #2, RS232 #2"),code:"DDCMP_2LIST2",val:"0x00000400",require:"D"},{text:c("Use enhanced DDCMP @ 2400 on RS232 #2"),code:"DDCMP_ENHANCED2",val:"0x00000800",require:"D"},{text:c("Use DDCMP list 2 on RS232 #1"),code:"DDCMP_2LIST1",val:"0x00004000",require:"d"},{text:c("Use enhanced DDCMP @ 2400 on RS232 #1"),code:"DDCMP_ENHANCED1",val:"0x00008000",require:"d"}];function u(){a.$emit("message",{type:"success",text:c("Operation created")}),a.$emit("update","devicecontrol")}function l(){return s.filter(function(e){return e.active}).map(function(e){return e.val}).join("")}function v(e){var t=l();return!e.require||!(!t||!t.match(e.require))}a.$watch("device",function(e){var t,n,o,i;_.isObjectLike(e)&&0<_.keys(e).length&&(e=e.com_nsn_startups_vendme_fragments_MachineTechnicalInformation)&&((t=e).maxCredit&&(a.credit=t.maxCredit),t.useResetCounters&&(a.useResetCounters=t.useResetCounters),a.coinChanger="DISABLED"!==t.coinChanger,a.billValidator="DISABLED"!==t.bill_validator,a.cashless2="DISABLED"!==t.cashless2,a.cashless1="DISABLED"!==t.cashless1,e.protocolInfo)&&(t=e.protocolInfo.id,e=e.protocolInfo.configuration,t&&(i=t,s.forEach(function(e){var t=new RegExp(e.val);e.active=t.test(i)})),e)&&(n=e)&&(o=parseInt(n,16),isNaN(n)||d.forEach(function(e){var t=parseInt(e.val,16);e.selected=(t|n)===o}))}),a.$watch(l,function(){d.forEach(function(e){e.selected=e.selected&&v(e)})}),a.visible=function(){var e=a.device;return e&&(n.supportsOperation(e,"v4e_Protocol")||n.supportsOperation(e,"v4e_SetMaxCredit"))},a.bitmask=d,a.setProtocol=function(){var e={deviceId:a.device.id,v4e_Protocol:{val:l(),bitmask:"0x".concat(a.bitmask.filter(function(e){return e.selected}).reduce(function(e,t){return e|parseInt(t.val,16)},0).toString(16))},description:c("Set protocol")};t.create(e).then(u,_.noop)},a.updateDevice=function(){e.update({id:a.device.id,com_nsn_startups_vendme_fragments_MachineTechnicalInformation:a.device.com_nsn_startups_vendme_fragments_MachineTechnicalInformation}).then(_.partial(i.success,"Vending machine updated!"))},a.setCredit=function(e){e=Math.round(100*e),e={deviceId:a.device.id,v4e_SetMaxCredit:{value:e},description:c("Set max credit to ")+e+c("cents")},t.create(e).then(u,_.noop)},a.getDeviceLog=function(){var e={deviceId:a.device.id,v4e_Log:{},description:c("Request device Log")};t.create(e).then(u,_.noop)},a.showOption=v,a.confirmFreeVend=function(e){e&&o({title:c("Confirm Free vend mode?"),body:c("This setting will enable all the products to be retrieved without payment. Are you sure you want to activate Free vend?")}).then(null,function(){a.proto.FREE.active=!1})},a.setVendingMachineSettings=function(e,t,n){e.com_nsn_startups_vendme_fragments_MachineTechnicalInformation[t]=n?null:"DISABLED"},a.setUseResetCounters=function(e,t){e.com_nsn_startups_vendme_fragments_MachineTechnicalInformation.useResetCounters=t},a.proto={},r=a.proto,s.forEach(function(e){r[e.code]=e})}]);
@@ -1,18 +0,0 @@
1
- {
2
- "name": "VendMe device control",
3
- "ngModules": [
4
- "c8y.parts.vendMeDeviceControl"
5
- ],
6
- "category": "Verticals",
7
- "icon": "home",
8
- "color": "#F03F0F",
9
- "description": "Configure vending telemetry device specific aspects, including protocols used to communicate with the vending machine. This plugin contributes a view to the device details.",
10
- "js": [
11
- "index.js",
12
- "controllers/vendMeDeviceControl.js"
13
- ],
14
- "folderName": "vendMeDeviceControl",
15
- "appsInclude": [
16
- "devicemanagement"
17
- ]
18
- }
@@ -1 +0,0 @@
1
- "use strict";angular.module("c8y.parts.vendMeDeviceControl",[]).config(["c8yViewsProvider","gettext",function(e,t){e.when("/device/:deviceId",{templateUrl:":::PLUGIN_PATH:::/views/index.html",icon:"coffee",name:t("Vendme"),controller:["$scope","$routeParams","c8yBase","c8yDevices",function(t,e,c,n){t.device={},n.detail(e.deviceId).then(c.getResData).then(function(e){t.device=e})}],showIf:["$routeParams","c8yDevices",function(e,t){e=e.deviceId;return t.detailCached(e).then(function(e){e=e.data;return e&&t.isVendme(e)})}]})}]);