@c8y/ng1-modules 1018.346.0 → 1018.348.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 (558) hide show
  1. package/NOTICES +0 -34
  2. package/aclManagement/controllers/permissionEditorCtrl.js +1 -1
  3. package/actilityProviderSettings/actilityProviderSettings.module.js +1 -1
  4. package/administration-alarmMapping/controllers/alarmMapping.js +1 -1
  5. package/administration-applicationSettings/controllers/applicationSettings.js +1 -1
  6. package/administration-applications/appWizard/appWizardExternalStep.component.js +1 -1
  7. package/administration-applications/appWizard/appWizardSmartAppStep.component.js +1 -1
  8. package/administration-applications/appWizard/appWizardUploadStep.component.js +1 -1
  9. package/administration-applications/appWizard/context-path.directive.js +1 -1
  10. package/administration-applications/application-detail/application-detail.component.js +1 -1
  11. package/administration-applications/application-list-view/application-list-view.component.js +1 -1
  12. package/administration-applications/controllers/applicationAccessEditor.js +1 -1
  13. package/administration-archivesEditor/list.controller.js +1 -1
  14. package/administration-auditLogs/filter.directive.js +1 -1
  15. package/administration-deviceUsers/controllers/deviceUserDetail.js +1 -1
  16. package/administration-homeAdministration/home-administration.component.js +1 -1
  17. package/administration-statistics/controllers/statistics.js +1 -1
  18. package/administration-storageLimitEmail/controllers/storageLimitCtrl.js +1 -1
  19. package/alarms/widget-config.controller.js +1 -1
  20. package/alarms/widget.controller.js +1 -1
  21. package/alarmsEventsExplorer/alarmsEventsTimelinesChart/alarmsEventsTimelinesChart.component.js +1 -1
  22. package/alarmsEventsExplorer/alarmsEventsTimelinesChart/alarmsEventsTimelinesChart.service.js +1 -1
  23. package/alarmsEventsExplorer/alarmsEventsTimelinesConfig/alarmsEventsTimelinesConfigModal.controller.js +1 -1
  24. package/app-logs/app-instance-logs/app-instance-logs.component.js +1 -1
  25. package/app-logs/app-logs/app-logs.component.js +1 -1
  26. package/app-logs/app-logs.service.js +1 -1
  27. package/app-status/app-status/app-status.component.js +1 -1
  28. package/app-status/app-tenant-subscriptions-list/app-tenant-subscriptions-list.component.js +1 -1
  29. package/app-status/index.js +1 -1
  30. package/app-status-ui/index.js +1 -1
  31. package/applicationLinks/applications.controller.js +1 -1
  32. package/asset-notes/assetNotes.service.js +1 -1
  33. package/assetPropertyWidget/main.controller.js +1 -1
  34. package/assetTable/assetTable2/assets.controller.js +1 -1
  35. package/assetTable/assetTable2/assets.service.js +1 -1
  36. package/assetTable/assetTable2/index.js +1 -1
  37. package/assetTable/assetTable2/rendererButton.controller.js +1 -1
  38. package/assetTable/assetTable2/rendererButtonConfig.controller.js +1 -1
  39. package/assetTable/assetTable2/rendererIcon.controller.js +1 -1
  40. package/assetTable/assetTable2/sort.directive.js +1 -1
  41. package/assetTable/assets.controller.js +1 -1
  42. package/assetTable/assetsConfig.controller.js +1 -1
  43. package/assetTable/comparisons.service.js +1 -1
  44. package/assetTable/counterColumns.service.js +1 -1
  45. package/binary-file-download/binary-file-download.component.js +1 -1
  46. package/binary-file-download/binary-file-download.config.js +1 -1
  47. package/binaryArtefactsManagement/controllers/list.js +1 -1
  48. package/binaryArtefactsManagement/index.js +1 -1
  49. package/cell-id-information-activator/cell-id-information-activator.config.js +1 -1
  50. package/cell-id-information-activator/cell-id-information-activator.service.js +1 -1
  51. package/cell-id-usage-statistics/cell-id-usage-statistics.component.js +1 -1
  52. package/cell-id-usage-statistics/cell-id-usage-statistics.service.js +1 -1
  53. package/cockpit-assetCount/services/assetCount.js +1 -1
  54. package/cockpit-cockpitConfig/services/navigator.js +1 -1
  55. package/cockpit-reports/reports.service.js +1 -1
  56. package/cockpit-smartRulesUI/index.js +1 -1
  57. package/commandTemplates/controllers/commandTemplates.js +1 -1
  58. package/configurationRepository/configurationRepository.service.js +1 -1
  59. package/configurationRepository/list.controller.js +1 -1
  60. package/connectivityV2/connectivityV2.component.js +1 -1
  61. package/connectivityV2/connectivityV2.module.js +1 -1
  62. package/connectivityV2/connectivityV2.service.js +1 -1
  63. package/connectivityV2/sms.component.js +1 -1
  64. package/connectivityV2/status.component.js +1 -1
  65. package/core/angularStart.js +1 -1
  66. package/core/bootstrap.js +1 -1
  67. package/core/core/index.js +1 -1
  68. package/core/core/locales.js +1 -1
  69. package/core/core/services/actility.js +1 -1
  70. package/core/core/services/alarms.js +1 -1
  71. package/core/core/services/application.js +1 -1
  72. package/core/core/services/audits.js +1 -1
  73. package/core/core/services/auth.js +1 -1
  74. package/core/core/services/base.js +1 -1
  75. package/core/core/services/binary.js +1 -1
  76. package/core/core/services/binaryCommon.js +1 -1
  77. package/core/core/services/combain.js +1 -1
  78. package/core/core/services/connectivity.js +1 -1
  79. package/core/core/services/counter.js +1 -1
  80. package/core/core/services/deviceBulkControl.js +1 -1
  81. package/core/core/services/deviceControl.js +1 -1
  82. package/core/core/services/deviceGroup.js +1 -1
  83. package/core/core/services/deviceShell.js +1 -1
  84. package/core/core/services/deviceStatus.js +1 -1
  85. package/core/core/services/devices.js +1 -1
  86. package/core/core/services/dynamicGroups.js +1 -1
  87. package/core/core/services/events.js +1 -1
  88. package/core/core/services/geo.js +1 -1
  89. package/core/core/services/groupTypesConfig.js +1 -1
  90. package/core/core/services/groups.js +1 -1
  91. package/core/core/services/identity.js +1 -1
  92. package/core/core/services/inventory.js +1 -1
  93. package/core/core/services/jsonSchemas.js +1 -1
  94. package/core/core/services/kpi.js +1 -1
  95. package/core/core/services/license.js +1 -1
  96. package/core/core/services/loginOptions.js +1 -1
  97. package/core/core/services/measurements.js +1 -1
  98. package/core/core/services/messaging.js +1 -1
  99. package/core/core/services/notifications.js +1 -1
  100. package/core/core/services/permissions.js +1 -1
  101. package/core/core/services/promise.js +1 -1
  102. package/core/core/services/queriesUtil.js +1 -1
  103. package/core/core/services/realtime.js +1 -1
  104. package/core/core/services/realtimeLongPollingTransport.js +1 -1
  105. package/core/core/services/retentions.js +1 -1
  106. package/core/core/services/roles.js +1 -1
  107. package/core/core/services/settings.js +1 -1
  108. package/core/core/services/simulator.js +1 -1
  109. package/core/core/services/smartRestTemplates.js +1 -1
  110. package/core/core/services/statement.js +1 -1
  111. package/core/core/services/statistics.js +1 -1
  112. package/core/core/services/tenant.js +1 -1
  113. package/core/core/services/tfaSettings.js +1 -1
  114. package/core/core/services/tracker.js +1 -1
  115. package/core/core/services/user.js +1 -1
  116. package/core/core/services/userGroup.js +1 -1
  117. package/core/core/services/userPreferences.js +1 -1
  118. package/core/core/services/util.js +1 -1
  119. package/core/index.js +1 -1
  120. package/core/sdk/directives/repeat.js +1 -1
  121. package/core/sdk/providers/cumulocity.js +1 -1
  122. package/core/ui/components/battery/battery.js +1 -1
  123. package/core/ui/components/errorFeedback.js +1 -1
  124. package/core/ui/components/passwordStrengthChecklist.js +1 -1
  125. package/core/ui/components/signalStrength/signal.js +1 -1
  126. package/core/ui/components/timelinesChart.js +1 -1
  127. package/core/ui/configurable-device-list-columns/configurable-columns.service.js +1 -1
  128. package/core/ui/configurable-device-list-columns/modal-columns-configure.component.js +1 -1
  129. package/core/ui/configurable-device-list-columns/unique-by.directive.js +1 -1
  130. package/core/ui/containers/header.component.js +1 -1
  131. package/core/ui/containers/wizard.component.js +1 -1
  132. package/core/ui/containers/wizardSlide.jquery.js +1 -1
  133. package/core/ui/controllers/deviceList.js +1 -1
  134. package/core/ui/controllers/editRetentionRule.js +1 -1
  135. package/core/ui/controllers/eventList.js +1 -1
  136. package/core/ui/controllers/listPagination/listPagination.controller.js +1 -1
  137. package/core/ui/controllers/loginCtrl.js +1 -1
  138. package/core/ui/controllers/radialGauge.js +1 -1
  139. package/core/ui/csvExporter/csv-escape-formulas-option.decorator.js +1 -1
  140. package/core/ui/csvExporter/csvExporter.controller.js +1 -1
  141. package/core/ui/csvExporter/csvExporter.directive.js +1 -1
  142. package/core/ui/csvExporter/csvExporter.service.js +1 -1
  143. package/core/ui/directives/aggregation.js +1 -1
  144. package/core/ui/directives/alarmList.js +1 -1
  145. package/core/ui/directives/appIcon.js +1 -1
  146. package/core/ui/directives/auditList.js +1 -1
  147. package/core/ui/directives/autocomplete.js +1 -1
  148. package/core/ui/directives/binaryInput.js +1 -1
  149. package/core/ui/directives/binaryOut.js +1 -1
  150. package/core/ui/directives/codeEditor.js +1 -1
  151. package/core/ui/directives/dateTimePicker.js +1 -1
  152. package/core/ui/directives/deviceGroupSelector.js +1 -1
  153. package/core/ui/directives/downloadButton.js +1 -1
  154. package/core/ui/directives/editRetentionRule.js +1 -1
  155. package/core/ui/directives/filePicker.js +1 -1
  156. package/core/ui/directives/icon.js +1 -1
  157. package/core/ui/directives/ifAllowed.js +1 -1
  158. package/core/ui/directives/interval.js +1 -1
  159. package/core/ui/directives/linearGauge.js +1 -1
  160. package/core/ui/directives/loadMore.js +1 -1
  161. package/core/ui/directives/map-plugins/geofence-layer.js +1 -1
  162. package/core/ui/directives/map.js +1 -1
  163. package/core/ui/directives/map2.js +1 -1
  164. package/core/ui/directives/max.js +1 -1
  165. package/core/ui/directives/min.js +1 -1
  166. package/core/ui/directives/number.js +1 -1
  167. package/core/ui/directives/phoneNumber.js +1 -1
  168. package/core/ui/directives/pieChart.js +1 -1
  169. package/core/ui/directives/rdbDump.js +1 -1
  170. package/core/ui/directives/realtimeButton.js +1 -1
  171. package/core/ui/directives/renderer.js +1 -1
  172. package/core/ui/directives/scrollLoad.js +1 -1
  173. package/core/ui/directives/silo.js +1 -1
  174. package/core/ui/directives/sunburstChart.js +1 -1
  175. package/core/ui/directives/textOut.js +1 -1
  176. package/core/ui/directives/validateUniqueExternalId.js +1 -1
  177. package/core/ui/fieldbus/fieldbus.service.js +1 -1
  178. package/core/ui/filteringSorting/filteredSortedList.controller.js +1 -1
  179. package/core/ui/filteringSorting/filteringSortingCollections.service.js +1 -1
  180. package/core/ui/filteringSorting/filteringSortingColumns.service.js +1 -1
  181. package/core/ui/filteringSorting/filteringSortingInventoryQueries.service.js +1 -1
  182. package/core/ui/filters/absoluteDate.js +1 -1
  183. package/core/ui/filters/bytes.js +1 -1
  184. package/core/ui/filters/capitalizestring.js +1 -1
  185. package/core/ui/filters/checkForDate.js +1 -1
  186. package/core/ui/filters/dateParts.js +1 -1
  187. package/core/ui/filters/distance.js +1 -1
  188. package/core/ui/filters/duration.js +1 -1
  189. package/core/ui/filters/filter-translate.decorator.js +1 -1
  190. package/core/ui/filters/filterByFields.js +1 -1
  191. package/core/ui/filters/hex.filter.js +1 -1
  192. package/core/ui/filters/humanize2.js +1 -1
  193. package/core/ui/filters/humanizeAppName.js +1 -1
  194. package/core/ui/filters/orderBy-translate.decorator.js +1 -1
  195. package/core/ui/filters/relativedate.js +1 -1
  196. package/core/ui/filters/safeLinks.js +1 -1
  197. package/core/ui/forms/checkDirty.directive.js +1 -1
  198. package/core/ui/forms/hex-input.directive.js +1 -1
  199. package/core/ui/forms/host-address.validator.js +1 -1
  200. package/core/ui/forms/http-protocol.validator.js +1 -1
  201. package/core/ui/forms/model-options.directive.js +1 -1
  202. package/core/ui/forms/regular-expression.validator.js +1 -1
  203. package/core/ui/forms/required-input-placeholder.directive.js +1 -1
  204. package/core/ui/forms/saveButtonFooter.component.js +1 -1
  205. package/core/ui/forms/search.component.js +1 -1
  206. package/core/ui/forms/ssh-key-input.js +1 -1
  207. package/core/ui/forms/uib-dropdown-dropup.directive.js +1 -1
  208. package/core/ui/forms/uib-dropdown.decorator.js +1 -1
  209. package/core/ui/forms/validate-url-segment.validator.js +1 -1
  210. package/core/ui/groups/group-create-and-assign.component.js +1 -1
  211. package/core/ui/header/action-bar.service.js +1 -1
  212. package/core/ui/header/actions.provider.js +1 -1
  213. package/core/ui/index.js +1 -1
  214. package/core/ui/inputDirectives/colorpicker.js +1 -1
  215. package/core/ui/itemSelector/itemSelector.component.js +1 -1
  216. package/core/ui/leaflet/leaflet-directive.decorator.js +1 -1
  217. package/core/ui/lists/list-display-control.component.js +1 -1
  218. package/core/ui/lists/quickLinksList.service.js +1 -1
  219. package/core/ui/locales/locales.provider.js +1 -1
  220. package/core/ui/navigation/breadcrumbs.component.js +1 -1
  221. package/core/ui/navigation/breadcrumbs.provider.js +1 -1
  222. package/core/ui/navigation/tabs.component.js +1 -1
  223. package/core/ui/navigation/tabs.provider.js +1 -1
  224. package/core/ui/notifications/accessDenied.service.js +1 -1
  225. package/core/ui/notifications/alert.controller.js +1 -1
  226. package/core/ui/notifications/alert.service.js +1 -1
  227. package/core/ui/operations/operations-timeline.component.js +1 -1
  228. package/core/ui/properties/children.computedProperty.js +1 -1
  229. package/core/ui/properties/computedProperties.provider.js +1 -1
  230. package/core/ui/properties/configurationSnapshot.computedProperty.js +1 -1
  231. package/core/ui/properties/counters.computedProperty.js +1 -1
  232. package/core/ui/properties/lastDeviceMessage.computedProperty.js +1 -1
  233. package/core/ui/properties/lastMeasurement.computedProperty.js +1 -1
  234. package/core/ui/properties/propertiesLibrary.service.js +1 -1
  235. package/core/ui/properties/propertySelector.controller.js +1 -1
  236. package/core/ui/properties/schemaProperties.service.js +1 -1
  237. package/core/ui/properties/schemaPropertySelector.controller.js +1 -1
  238. package/core/ui/providers/beta.js +1 -1
  239. package/core/ui/providers/httpCache.js +1 -1
  240. package/core/ui/providers/navigator.js +1 -1
  241. package/core/ui/providers/objectActions.js +1 -1
  242. package/core/ui/providers/renderers.js +1 -1
  243. package/core/ui/providers/search.js +1 -1
  244. package/core/ui/providers/views.js +1 -1
  245. package/core/ui/providers/zip.js +1 -1
  246. package/core/ui/roles/roles-matrix.component.js +1 -1
  247. package/core/ui/sanitize-html/sanitize-html.js +1 -1
  248. package/core/ui/sanitize-html/sanitize-html.service.js +1 -1
  249. package/core/ui/schemaForm/deviceGroupIdPicker.config.js +1 -1
  250. package/core/ui/schemaForm/fileUpload.config.js +1 -1
  251. package/core/ui/schemaForm/fileUpload.directive.js +1 -1
  252. package/core/ui/schemaForm/overrides/decorators/decorators.decorator.js +1 -1
  253. package/core/ui/schemaForm/schemaEditor.component.js +1 -1
  254. package/core/ui/schemaForm/schemaForm.component.js +1 -1
  255. package/core/ui/schemaForm/schemaForm.run.js +1 -1
  256. package/core/ui/schemaForm/schemaFormHelper.service.js +1 -1
  257. package/core/ui/schemaForm/schemaPropertyEditor.component.js +1 -1
  258. package/core/ui/services/contextDetailsShared.service.js +1 -1
  259. package/core/ui/services/deviceListColumns.js +1 -1
  260. package/core/ui/services/docs.js +1 -1
  261. package/core/ui/services/groupsHierarchyNavigator.js +1 -1
  262. package/core/ui/services/groupsHierarchySvc.js +1 -1
  263. package/core/ui/services/loginService.js +1 -1
  264. package/core/ui/services/measurementsReport.js +1 -1
  265. package/core/ui/services/modal.js +1 -1
  266. package/core/ui/services/passwordStrengthCheckerFactory.js +1 -1
  267. package/core/ui/services/support.js +1 -1
  268. package/core/ui/services/uiconfig.js +1 -1
  269. package/core/ui/services/util.js +1 -1
  270. package/core/ui/smartrules/smartRulesAvailability.service.js +1 -1
  271. package/core/ui/title/title.controller.js +1 -1
  272. package/core/ui/title/title.provider.js +1 -1
  273. package/core/ui/user/editUser.controller.js +1 -1
  274. package/core/ui/user/editUser.directive.js +1 -1
  275. package/core/ui/user/measurementUnitPreference.component.js +1 -1
  276. package/core/ui/user/rolesUiStrings.constant.js +1 -1
  277. package/core/ui/user/userPicker.component.js +1 -1
  278. package/core/ui/user/userSettingsBlocks.provider.js +1 -1
  279. package/core/ui/user/userUtil.service.js +1 -1
  280. package/core/ui/utils/copyToClipboard.directive.js +1 -1
  281. package/core/ui/utils/guide-docs.directive.js +1 -1
  282. package/core/ui/utils/uiComponent.directive.js +1 -1
  283. package/core/update-query-params.js +1 -1
  284. package/dashboard2/dashboard/dashboardSelect.controller.js +1 -1
  285. package/dashboard2/dashboard.service.js +1 -1
  286. package/dashboard2/dashboardInventory.service.js +1 -1
  287. package/dataBroker/connectors/connectorEditor.component.js +1 -1
  288. package/dataBroker/connectors/connectors.service.js +1 -1
  289. package/dataBroker/connectorsAlarms/connectorAlarms.component.js +1 -1
  290. package/dataBroker/dataBroker.config.js +1 -1
  291. package/dataBroker/subscriptions/subscriptions.component.js +1 -1
  292. package/dataPointExplorer/controllers/dataPointAdd.js +1 -1
  293. package/dataPointExplorer/controllers/dataPointExplorer.js +1 -1
  294. package/dataPointExplorer/controllers/dataPointItem.js +1 -1
  295. package/dataPointExplorer/controllers/dataPointList.js +1 -1
  296. package/dataPointExplorer/controllers/dataPointWidget.js +1 -1
  297. package/dataPointExplorer/controllers/dataPointWidgetConfig.js +1 -1
  298. package/dataPointExplorer/directives/dataPointValidator.js +1 -1
  299. package/dataPointExplorer/services/dataPoints.js +1 -1
  300. package/dataPointTable/dataPointTable.controller.js +1 -1
  301. package/dataPointTable/dataPointTable.directive.js +1 -1
  302. package/dataPointTable/dataPointTable.service.js +1 -1
  303. package/dataPointTable/realtimeRadioButton.directive.js +1 -1
  304. package/dataPointTable/widget.controller.js +1 -1
  305. package/device-protocol-actility/actility-device.provider.js +1 -1
  306. package/device-protocol-canbus/canbus-device.provider.js +1 -1
  307. package/device-protocol-canopen/canopen-device.provider.js +1 -1
  308. package/device-protocol-deviceDatabase4/device-type-create-step.component.js +1 -1
  309. package/device-protocol-deviceDatabase4/device-type-protocol-base.provider.js +1 -1
  310. package/device-protocol-deviceDatabase4/device-type-row-info.component.js +1 -1
  311. package/device-protocol-impact/impact-detail.component.js +1 -1
  312. package/device-protocol-impact/impact.provider.js +1 -1
  313. package/device-protocol-lora/lora-device.provider.js +1 -1
  314. package/device-protocol-lpwan/lpwan-device.provider.js +1 -1
  315. package/device-protocol-lwm2m/lwm2m.provider.js +1 -1
  316. package/device-protocol-lwm2m/lwm2mFinalStep.component.js +1 -1
  317. package/device-protocol-lwm2m/lwm2mUploadStep.component.js +1 -1
  318. package/device-protocol-lwm2m/lwm2mValidationRules/lwm2mValidationRule.component.js +1 -1
  319. package/device-protocol-lwm2m/lwm2mValidationRules/lwm2mValidationRules.component.js +1 -1
  320. package/device-protocol-modbus/modbus-device.provider.js +1 -1
  321. package/device-protocol-opcua/opcua-device.provider.js +1 -1
  322. package/device-protocol-opcua-v2/opcua-device-v2.provider.js +1 -1
  323. package/device-protocol-opcua-v2/opcua-v2-row-info.component.js +1 -1
  324. package/device-protocol-profibus/profibus-device.provider.js +1 -1
  325. package/device-protocol-sigfox/sigfox-device.provider.js +1 -1
  326. package/device-protocol-snmp/snmp-device.provider.js +1 -1
  327. package/device-protocols/device-protocol-import-button.component.js +1 -1
  328. package/device-protocols/deviceProtocolList.component.js +1 -1
  329. package/device-protocols/deviceProtocolSelect.component.js +1 -1
  330. package/device-protocols/deviceProtocolUi.provider.js +1 -1
  331. package/device-protocols/object-mapping.component.js +1 -1
  332. package/device-protocols/object-mappings.service.js +1 -1
  333. package/deviceActility/actilityUI.provider.js +1 -1
  334. package/deviceActility/deviceActility.module.js +1 -1
  335. package/deviceConfiguration/index.js +1 -1
  336. package/deviceControlMessage/controllers/deviceControlMessageWidget.js +1 -1
  337. package/deviceControlRelay/relayControl/relayControl.controller.js +1 -1
  338. package/deviceControlRelay/relayControl/relayControl.directive.js +1 -1
  339. package/deviceControlRelay/widget.controller.js +1 -1
  340. package/deviceControlRelayArray/relayArrayControl/relayArrayControl.controller.js +1 -1
  341. package/deviceControlRelayArray/widget.controller.js +1 -1
  342. package/deviceDatabase4/detail/device-type-detail.component.js +1 -1
  343. package/deviceDatabase4/detail/holding-registers.component.js +1 -1
  344. package/deviceDatabase4/detail/message-id-configuration-description.component.js +1 -1
  345. package/deviceDatabase4/device-database.service.js +1 -1
  346. package/deviceDatabase4/device-type-list.component.js +1 -1
  347. package/deviceDatabase4/modals/configure-discrete-io.component.js +1 -1
  348. package/deviceDatabase4/modals/configure-register.component.js +1 -1
  349. package/deviceDatabase4/modals/import-device-type.component.js +1 -1
  350. package/deviceDatabase4/modals/select-fieldbus-property.component.js +1 -1
  351. package/deviceDatabase4/parsers/device-type-parser-eds.service.js +1 -1
  352. package/deviceDatabase4/parsers/device-type-parser-json.service.js +1 -1
  353. package/deviceDatabase4/parsers/device-type-parser-mib.service.js +1 -1
  354. package/deviceDatabase4/property-generator.service.js +1 -1
  355. package/deviceDatabase4/unique.directive.js +1 -1
  356. package/deviceDatabase4/validate-value-in-register-range.directive.js +1 -1
  357. package/deviceDatabase4/vendor/ini-legacy.js +1 -1
  358. package/deviceDetail/index.js +1 -1
  359. package/deviceDetailIdentity/controllers/identity.js +1 -1
  360. package/deviceDetailIdentity/index.js +1 -1
  361. package/deviceGroupAssignment/groupAssignment.component.js +1 -1
  362. package/devicePropertyWidget/controllers/config.js +1 -1
  363. package/devicePropertyWidget/controllers/widget.js +1 -1
  364. package/devicePropertyWidget/directives/fragmentCheckboxList.js +1 -1
  365. package/devicePropertyWidget/services/moRealTimeDetails.js +1 -1
  366. package/deviceSelector/controllers/deviceSelectorComboCtrl.js +1 -1
  367. package/deviceSelector/controllers/deviceSelectorCtrl.js +1 -1
  368. package/deviceSelector/controllers/deviceSelectorListCtrl.js +1 -1
  369. package/deviceSelector/directives/deviceSelectorCombo.js +1 -1
  370. package/deviceSelector/directives/deviceSelectorList.js +1 -1
  371. package/deviceStatusWidget/ownerStatus.component.js +1 -1
  372. package/deviceStatusWidget/requiredAvailabilityIntervalSetting.component.js +1 -1
  373. package/devicemanagement-aclManagement/controllers/aclManagementCtrl.js +1 -1
  374. package/devicemanagement-aclManagement/index.js +1 -1
  375. package/devicemanagement-alarmList/controllers/alarmList.js +1 -1
  376. package/devicemanagement-availability/controllers/availability.js +1 -1
  377. package/devicemanagement-deviceNetwork/controllers/network.js +1 -1
  378. package/devicemanagement-deviceNetwork/index.js +1 -1
  379. package/devicemanagement-eventList/controllers/eventList.js +1 -1
  380. package/devicemanagement-location/controllers/location.js +1 -1
  381. package/devicemanagement-location/index.js +1 -1
  382. package/devicemanagement-logViewer/controllers/logViewer.js +1 -1
  383. package/devicemanagement-logViewer/directives/logViewer.js +1 -1
  384. package/devicemanagement-logViewer/providers/logViewer.js +1 -1
  385. package/devicemanagement-measurements/index.js +1 -1
  386. package/devicemanagement-restartDevice/index.js +1 -1
  387. package/devicemanagement-tixiDeviceControl/index.js +1 -1
  388. package/devicemanagement-tracking/controllers/config.js +1 -1
  389. package/devicemanagement-tracking/controllers/tracking.js +1 -1
  390. package/devicemanagement-tracking/index.js +1 -1
  391. package/devicemanagement-vendMeDeviceControl/controllers/vendMeDeviceControl.js +1 -1
  392. package/devicemanagement-vendMeDeviceControl/index.js +1 -1
  393. package/enterpriseEdition/createFile.js +1 -1
  394. package/enterpriseEdition/customBranding/brandingConfigurationForm.component.js +1 -1
  395. package/enterpriseEdition/customBranding/brandingConfigurationUi.provider.js +1 -1
  396. package/enterpriseEdition/customBranding/brandingDeploy.service.js +1 -1
  397. package/enterpriseEdition/customBranding/brandingProcessExecution.component.js +1 -1
  398. package/enterpriseEdition/enterpriseEdition.module.js +1 -1
  399. package/enterpriseEdition/sslCertificate/certificateActivation.component.js +1 -1
  400. package/enterpriseEdition/sslCertificate/manageCertificate.component.js +1 -1
  401. package/enterpriseEdition/sslCertificate/manageCertificate.service.js +1 -1
  402. package/enterpriseEdition/ui-assets/public-options.service.js +1 -1
  403. package/enterpriseEdition/ui-assets/static-assets.service.js +1 -1
  404. package/eventList/eventList.controller.js +1 -1
  405. package/eventsBinary/components/eventBinaryActions/eventBinaryActions.js +1 -1
  406. package/eventsBinary/services/eventsBinary.service.js +1 -1
  407. package/export/controllers/detail.js +1 -1
  408. package/export/services/api.js +1 -1
  409. package/export/services/config.js +1 -1
  410. package/export/services/export.js +1 -1
  411. package/export/services/filters.js +1 -1
  412. package/generic-ui/config-audit/config-audit-diff.component.js +1 -1
  413. package/generic-ui/config-audit/config-audit-modal.component.js +1 -1
  414. package/generic-ui/config-audit/config-audit.component.js +1 -1
  415. package/generic-ui/generic-ui-config.provider.js +1 -1
  416. package/generic-ui/generic-ui-inventory-property.component.js +1 -1
  417. package/generic-ui/generic-ui-inventory.component.js +1 -1
  418. package/generic-ui/generic-ui-operation-list-button.component.js +1 -1
  419. package/generic-ui/generic-ui.component.js +1 -1
  420. package/generic-ui/generic-ui.service.js +1 -1
  421. package/groupsHierarchy/controllers/assetSearchCtrl.js +1 -1
  422. package/groupsHierarchy/controllers/groupDevicesCtrl.js +1 -1
  423. package/groupsHierarchy/controllers/groupsListCtrl.js +1 -1
  424. package/groupsHierarchy/groupsHierarchyUi.provider.js +1 -1
  425. package/htmlWidget/htmlWidget.controller.js +1 -1
  426. package/htmlWidget/htmlWidget.directive.js +1 -1
  427. package/infoGauge/infoGauge.controller.js +1 -1
  428. package/infoGauge/infoGaugeConfig.controller.js +1 -1
  429. package/kpi/controllers/deprecated/edit.js +1 -1
  430. package/kpi/controllers/deprecated/graph.js +1 -1
  431. package/kpi/controllers/deprecated/multipleKpiConfig.js +1 -1
  432. package/kpi/controllers/deprecated/setup.js +1 -1
  433. package/kpi/controllers/gauge.js +1 -1
  434. package/kpi/controllers/kpiConfig.js +1 -1
  435. package/kpi/controllers/list.js +1 -1
  436. package/kpi/controllers/pieChart.js +1 -1
  437. package/kpi/controllers/pieChartConfig.js +1 -1
  438. package/kpi/services/baseWidget.js +1 -1
  439. package/kpi/services/kpi.js +1 -1
  440. package/kpi/services/mostRecentKpi.js +1 -1
  441. package/map/controllers/geofenceEdit.js +1 -1
  442. package/measurements/controllers/lineChart.js +1 -1
  443. package/measurements/controllers/measurements.js +1 -1
  444. package/measurements/directives/lineChart.js +1 -1
  445. package/measurements/directives/timeIntervalChoice.js +1 -1
  446. package/measurements/fragmentChart/fragmentChart.component.js +1 -1
  447. package/measurements/measurements2/axisX.service.js +1 -1
  448. package/measurements/measurements2/axisY.service.js +1 -1
  449. package/measurements/measurements2/chart.controller.js +1 -1
  450. package/measurements/measurements2/chart.service.js +1 -1
  451. package/measurements/measurements2/hoverInfo.service.js +1 -1
  452. package/measurements/measurements2/rtAutoMove.service.js +1 -1
  453. package/measurements/measurements2/series.service.js +1 -1
  454. package/measurements/services/lineChartService.js +1 -1
  455. package/modbusConfiguration4/fieldbus-config.component.js +1 -1
  456. package/modbusConfiguration4/fieldbus-device-list.component.js +1 -1
  457. package/modbusConfiguration4/modbus-configuration-4.config.js +1 -1
  458. package/modbusWidget4/modbus-widget.service.js +1 -1
  459. package/modbusWidget4/widget-config.component.js +1 -1
  460. package/modbusWidget4/widget.component.js +1 -1
  461. package/modbusWidgets/controllers/widget.js +1 -1
  462. package/modbusWidgets/controllers/widgetConfig.js +1 -1
  463. package/modbusWidgets/services/modbusWidget.js +1 -1
  464. package/newsletter/downloadEmailsList.component.js +1 -1
  465. package/oauth/controllers/oauth.js +1 -1
  466. package/package.json +2 -2
  467. package/platformConfiguration/platformConfigurationForm.component.js +1 -1
  468. package/platformConfiguration/platformConfigurationUi.provider.js +1 -1
  469. package/propertiesLibrary/index.js +1 -1
  470. package/propertiesLibrary/jsonSchemaObjectEditor.component.js +1 -1
  471. package/propertiesLibrary/jsonSchemaObjectsList.component.js +1 -1
  472. package/qrCode/controllers/qrCode.js +1 -1
  473. package/qrCode/services/qrCodePrinter.js +1 -1
  474. package/qrCode/services/qrCodeTemplate.js +1 -1
  475. package/relayWidget/relay.service.js +1 -1
  476. package/remoteAccess/clients/remoteAccessClients.service.js +1 -1
  477. package/remoteAccess/clients/terminal/index.js +1 -1
  478. package/remoteAccess/clients/terminal/shell-adapter.js +1 -1
  479. package/remoteAccess/clients/terminal/telnet-negotiator.js +1 -1
  480. package/remoteAccess/clients/vnc/vncClient.js +1 -1
  481. package/remoteAccess/remoteAccess.service.js +1 -1
  482. package/remoteAccess/remoteAccessEndpointCard/remoteAccessEndpointCard.component.js +1 -1
  483. package/remoteAccess/remoteAccessEndpointModal/remoteAccessEndpointModal.component.js +1 -1
  484. package/remoteAccess/remoteAccessEndpointsList/remoteAccessEndpointsList.component.js +1 -1
  485. package/remoteAccess/remoteAccessSettings/remoteAccessSettings.component.js +1 -1
  486. package/remoteAccess/remoteAccessUI.provider.js +1 -1
  487. package/roles/detail/roleDetailGlobal.component.js +1 -1
  488. package/roles/detail/roleInventoryPermissionList.component.js +1 -1
  489. package/roles/list/rolesOverview.controller.js +1 -1
  490. package/roles/rolesUi.provider.js +1 -1
  491. package/scada/config.controller.js +1 -1
  492. package/scada/mapping.directive.js +1 -1
  493. package/scada/svg.directive.js +1 -1
  494. package/scada/util.service.js +1 -1
  495. package/scada/widget.controller.js +1 -1
  496. package/sigfox-provider-settings/sigfox-settings.service.js +1 -1
  497. package/simulators/add/simulatorAdd.component.js +1 -1
  498. package/simulators/detail/detail.controller.js +1 -1
  499. package/simulators/detail/instructionDetail.component.js +1 -1
  500. package/simulators/detail/instructionList.component.js +1 -1
  501. package/simulators/list/list.component.js +1 -1
  502. package/simulators/simulators.service.js +1 -1
  503. package/smartRestEditor/details.controller.js +1 -1
  504. package/smartRestEditor/importTemplate/importTemplate.component.js +1 -1
  505. package/smartRestEditor/requestEditor/requestEditor.component.js +1 -1
  506. package/smartRestEditor/responseEditor/responseEditor.component.js +1 -1
  507. package/smartRestEditor/validators/validateCustomFieldKeyInRequestTemplate.directive.js +1 -1
  508. package/smartRestEditor/validators/validateUniqueMsgIdInTemplate.directive.js +1 -1
  509. package/smartRestEditorUI/index.js +1 -1
  510. package/smartRules/controllers/add.js +1 -1
  511. package/smartRules/controllers/edit.js +1 -1
  512. package/smartRules/controllers/list.js +1 -1
  513. package/smartRules/controllers/smartRuleParamInput.js +1 -1
  514. package/smartRules/directives/smartRuleParamInput.js +1 -1
  515. package/smartRules/directives/smartRuleParamInputAlarmType.js +1 -1
  516. package/smartRules/directives/smartRuleParamInputEscalationSteps.js +1 -1
  517. package/smartRules/directives/smartRuleParamInputFrequency.js +1 -1
  518. package/smartRules/directives/smartRuleParamInputGeofence.js +1 -1
  519. package/smartRules/directives/smartRuleParamInputKpi.js +1 -1
  520. package/smartRules/directives/smartRuleParamInputTimeInterval.js +1 -1
  521. package/smartRules/list/smartRulesList.component.js +1 -1
  522. package/smartRules/services/smartRuleTemplates.js +1 -1
  523. package/smartRules/services/smartRules.js +1 -1
  524. package/switchDisplay/controller/switchDisplayCtrl.js +1 -1
  525. package/tenantApplications/controllers/main.js +1 -1
  526. package/tenantApplications/subscribed-applications/subscribed-applications.component.js +1 -1
  527. package/tenantLicenses/licenseManagement.component.js +1 -1
  528. package/tenantPolicies/retentionRule/retentionRuleRow.component.js +1 -1
  529. package/tenantPolicies/tenantPolicies.service.js +1 -1
  530. package/tenantPolicies/tenantPoliciesConfig.provider.js +1 -1
  531. package/tenantPolicies/tenantPolicyDetail/tenantPolicyDetail.component.js +1 -1
  532. package/tenantStatistics/tenant-statistics-columns.service.js +1 -1
  533. package/tenantStatistics/tenant-statistics.component.js +1 -1
  534. package/tenants/controllers/customProperties.js +1 -1
  535. package/tenants/controllers/detail.js +1 -1
  536. package/tenants/index.js +1 -1
  537. package/trackerConfiguration/controllers/trackerConfiguration.controller.js +1 -1
  538. package/trackerConfiguration/index.js +1 -1
  539. package/trackerConfiguration/services/realtimeLockup.service.js +1 -1
  540. package/trackerConfiguration/services/trackerLocation.service.js +1 -1
  541. package/trackerModels/trackerModels.service.js +1 -1
  542. package/trackerRegistration/index.js +1 -1
  543. package/trackerRegistration/trackerRegistration.controller.js +1 -1
  544. package/trackerRegistration/trackerRegistrationHistory.service.js +1 -1
  545. package/trackingAppConfig/index.js +1 -1
  546. package/trafficLightWidget/states-mapping.component.js +1 -1
  547. package/trafficLightWidget/traffic-light.component.js +1 -1
  548. package/userRoles/inventoryRoleSelector/inventoryRoleSelector.component.js +1 -1
  549. package/userRoles/inventoryRolesTab/inventoryRolesTab.component.js +1 -1
  550. package/userRoles/rolesAssetTree/rolesAssetTree.component.js +1 -1
  551. package/userRoles/userRoles.service.js +1 -1
  552. package/userRoles/userRolesUi.service.js +1 -1
  553. package/users/aclEditor/aclEditor.directive.js +1 -1
  554. package/users/applicationAccess/applicationAccess.directive.js +1 -1
  555. package/users/userDetailView/userApplicationAccess.component.js +1 -1
  556. package/users/userDetailView/userDetailView.component.js +1 -1
  557. package/users/userListView/userListView.component.js +1 -1
  558. package/users/usersUi.provider.js +1 -1
@@ -1 +1 @@
1
- "use strict";!function(){function e(i,o,e){return{getTenantNameColumn:function(){return i.getColumn({name:"tenantName",header:e("Tenant"),cell:{template:'<a ng-href="#{{getTenantDetails(item)}}">\n {{item.tenantCompany}}\n </a>',scopeExtensions:{getTenantDetails:function(e){return"/tenants/".concat(e.tenantId)}}},filteringByPattern:{itemProperty:"tenantCompany"},sortingByPath:{itemProperty:"tenantCompany"},getCsvHeaders:function(){return[e("Tenant")]},getCsvValues:function(e){return[e.tenantCompany]}})},getTenantIdColumn:function(){return i.getColumn({name:"tenantId",header:e("ID"),cell:{template:"{{item.tenantId}}"},filteringByPattern:{itemProperty:"tenantId"},sortingByPath:{itemProperty:"tenantId"},getCsvValues:function(e){return[e.tenantId]}})},getTenantDomainColumn:function(){return i.getColumn({name:"tenantDomain",header:e("Domain"),cell:{template:'<a \n ng-href="{{getTenantUrl(item)}}"\n target="_blank"\n rel="noopener noreferrer"\n >\n {{item.tenantDomain}}\n </a>',scopeExtensions:{getTenantUrl:function(e){return"https://".concat(e.tenantDomain)}}},filteringByPattern:{itemProperty:"tenantDomain"},sortingByPath:{itemProperty:"tenantDomain"},getCsvHeaders:function(){return[e("Domain")]},getCsvValues:function(e){return[e.tenantDomain]}})},getCustomPropertyColumn:function(t){var e=t.key,n=["tenantCustomProperties",e],r={name:e,priority:_.startsWith(e,"limit.")?-1e3:0,header:t.title,cell:{template:"<div\n ng-bind=\"getValue(item, '".concat(e,"') |\n formatBySchema:getSchema(tenantCustomProperties, '").concat(e,"')\">\n </div>"),scopeExtensions:{getValue:function(e,t){return _.get(e,["tenantCustomProperties",t])},getSchema:function(e,t){return _.get(e,[t,"schema"])}}},getCsvHeaders:function(){return[t.title]},getCsvValues:function(e){return[function(e,t){var n=_.get(t,"schema.default");return _.get(e,["tenantCustomProperties",t.key],n)}(e,t)]}};return _.merge(r,function(e){var t=o.getType(e).filteringKey,n={itemProperty:["tenantCustomProperties",e.key]},r={};return _.set(r,t,n),_.set(r,"sortingByPath",n),r}(t)),_.set(r.cell.scopeExtensions,n,t),i.getColumn(r)},getApiRequestsColumn:function(){return i.getColumn({name:"requestCount",header:e("API requests"),cell:{template:"{{item.requestCount}}"},filteringByMinMax:{itemProperty:"requestCount"},sortingByPath:{itemProperty:"requestCount"},getCsvValues:function(e){return[e.requestCount]}})},getDeviceApiRequestsColumn:function(){return i.getColumn({name:"deviceRequestCount",header:e("Device API requests"),cell:{template:"{{item.deviceRequestCount}}"},filteringByMinMax:{itemProperty:"deviceRequestCount"},sortingByPath:{itemProperty:"deviceRequestCount"},getCsvValues:function(e){return[e.deviceRequestCount]}})},getStorageQuotaColumn:function(){return i.getColumn({name:"storageQuota",header:e("Storage quota (MB)"),cell:{template:'<span ng-if="item.storageLimitPerDevice">{{item.storageQuota}}</span>'},filteringByMinMax:{itemProperty:"storageQuota"},sortingByPath:{itemProperty:"storageQuota"},getCsvValues:function(e){return[e.storageQuota||""]}})},getStorageSizeColumn:function(){return i.getColumn({name:"storageSize",header:e("Storage (MB)"),cell:{template:"{{item.storageSize}}"},filteringByMinMax:{itemProperty:"storageSize"},getCsvValues:function(e){return[e.storageSize]}})},getPeakStorageSizeColumn:function(){return i.getColumn({name:"peakStorageSize",header:e("Peak storage (MB)"),cell:{template:"{{item.peakStorageSize}}"},filteringByMinMax:{itemProperty:"peakStorageSize"},getCsvValues:function(e){return[e.peakStorageSize]}})},getRootDevicesColumn:function(){return i.getColumn({name:"deviceCount",header:{text:e("Root devices"),tooltip:{icon:"question-circle-o",text:e("Number of root devices, excluding child devices")}},cell:{template:"{{item.deviceCount}}"},filteringByMinMax:{itemProperty:"deviceCount"},sortingByPath:{itemProperty:"deviceCount"},getCsvValues:function(e){return[e.deviceCount]}})},getPeakRootDevicesColumn:function(){return i.getColumn({name:"peakDeviceCount",header:{text:e("Peak root devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of root devices, excluding child devices")}},cell:{template:"{{item.peakDeviceCount}}"},filteringByMinMax:{itemProperty:"peakDeviceCount"},sortingByPath:{itemProperty:"peakDeviceCount"},getCsvValues:function(e){return[e.peakDeviceCount]}})},getDevicesColumn:function(){return i.getColumn({name:"deviceWithChildrenCount",header:{text:e("Devices"),tooltip:{icon:"question-circle-o",text:e("Number of devices, including child devices")}},cell:{template:"{{item.deviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"deviceWithChildrenCount"},sortingByPath:{itemProperty:"deviceWithChildrenCount"},getCsvValues:function(e){return[e.deviceWithChildrenCount]}})},getPeakDevicesColumn:function(){return i.getColumn({name:"peakDeviceWithChildrenCount",header:{text:e("Peak devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of devices, including child devices")}},cell:{template:"{{item.peakDeviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"peakDeviceWithChildrenCount"},sortingByPath:{itemProperty:"peakDeviceWithChildrenCount"},getCsvValues:function(e){return[e.peakDeviceWithChildrenCount]}})},getSubscribedApplicationsColumn:function(){return i.getColumn({name:"subscribedApplications",header:e("Subscribed applications"),cell:{template:"{{(item.subscribedApplications || []).length}}"},filteringByMinMax:{itemProperty:"subscribedApplications.length"},sortingByPath:{itemProperty:"subscribedApplications.length"},getCsvValues:function(e){return[_.join(e.subscribedApplications," ")]}})},getCreationTimeColumn:function(){return i.getColumn({name:"creationTime",header:e("Creation time"),cell:{template:"{{item.creationTime | absoluteDate}}"},filteringByMinMaxDate:{itemProperty:"creationTime"},sortingByPath:{itemProperty:"creationTime"},getCsvValues:function(e){return[e.creationTime&&moment(e.creationTime).format("L")]}})},getParentTenantIdColumn:function(){return i.getColumn({name:"parentTenantId",header:e("Parent tenant"),cell:{template:"{{item.parentTenantId}}"},filteringByPattern:{itemProperty:"parentTenantId"},sortingByPath:{itemProperty:"parentTenantId"},getCsvValues:function(e){return[e.parentTenantId]}})},getDeviceEndpointCountColumn:function(){return i.getColumn({name:"deviceEndpointCount",header:{text:e("Endpoint devices"),tooltip:{icon:"question-circle-o",text:e("Leaf machines (without gateways and edges)")}},cell:{template:"{{item.deviceEndpointCount}}"},filteringByPattern:{itemProperty:"deviceEndpointCount"},sortingByPath:{itemProperty:"deviceEndpointCount"},getCsvValues:function(e){return[e.deviceEndpointCount]}})},getAlarmsCreatedCountColumn:function(){return i.getColumn({name:"alarmsCreated",header:e("Alarms created"),cell:{template:"{{item.alarmsCreatedCount}}"},filteringByPattern:{itemProperty:"alarmsCreatedCount"},sortingByPath:{itemProperty:"alarmsCreatedCount"},getCsvValues:function(e){return[e.alarmsCreatedCount]}})},getAlarmsUpdatedCountColumn:function(){return i.getColumn({name:"alarmsUpdated",header:e("Alarms updated"),cell:{template:"{{item.alarmsUpdatedCount}}"},filteringByPattern:{itemProperty:"alarmsUpdatedCount"},sortingByPath:{itemProperty:"alarmsUpdatedCount"},getCsvValues:function(e){return[e.alarmsUpdatedCount]}})},getInventoriesCreatedCountColumn:function(){return i.getColumn({name:"inventoriesCreated",header:e("Inventories created"),cell:{template:"{{item.inventoriesCreatedCount}}"},filteringByPattern:{itemProperty:"inventoriesCreatedCount"},sortingByPath:{itemProperty:"inventoriesCreatedCount"},getCsvValues:function(e){return[e.inventoriesCreatedCount]}})},getInventoriesUpdatedCountColumn:function(){return i.getColumn({name:"inventoriesUpdated",header:e("Inventories updated"),cell:{template:"{{item.inventoriesUpdatedCount}}"},filteringByPattern:{itemProperty:"inventoriesUpdatedCount"},sortingByPath:{itemProperty:"inventoriesUpdatedCount"},getCsvValues:function(e){return[e.inventoriesUpdatedCount]}})},getEventsCreatedCountColumn:function(){return i.getColumn({name:"eventsCreated",header:e("Events created"),cell:{template:"{{item.eventsCreatedCount}}"},filteringByPattern:{itemProperty:"eventsCreatedCount"},sortingByPath:{itemProperty:"eventsCreatedCount"},getCsvValues:function(e){return[e.eventsCreatedCount]}})},getEventsUpdatedCountColumn:function(){return i.getColumn({name:"eventsUpdated",header:e("Events updated"),cell:{template:"{{item.eventsUpdatedCount}}"},filteringByPattern:{itemProperty:"eventsUpdatedCount"},sortingByPath:{itemProperty:"eventsUpdatedCount"},getCsvValues:function(e){return[e.eventsUpdatedCount]}})},getMeasurementsCreatedCountColumn:function(){return i.getColumn({name:"measurementsCreated",header:e("Measurements created"),cell:{template:"{{item.measurementsCreatedCount}}"},filteringByPattern:{itemProperty:"measurementsCreatedCount"},sortingByPath:{itemProperty:"measurementsCreatedCount"},getCsvValues:function(e){return[e.measurementsCreatedCount]}})},getTotalInboundTransferColumn:function(){return i.getColumn({name:"totalInboundTransfer",header:e("Total inbound transfer"),cell:{template:"{{item.totalResourceCreateAndUpdateCount}}"},filteringByPattern:{itemProperty:"totalResourceCreateAndUpdateCount"},sortingByPath:{itemProperty:"totalResourceCreateAndUpdateCount"},getCsvValues:function(e){return[e.totalResourceCreateAndUpdateCount]}})},getCpuUsageColumn:function(){return i.getColumn({name:"cpuUsage",header:{text:e("CPU (m)"),tooltip:{icon:"question-circle-o",text:e("Sum of CPU daily usage in CPU milliseconds")}},cell:{template:"{{item.resources.cpu}}"},filteringByPattern:{itemProperty:"resources.cpu"},sortingByPath:{itemProperty:"resources.cpu"},getCsvValues:function(e){return[_.get(e,"resources.cpu")]}})},getMemoryUsageColumn:function(){return i.getColumn({name:"memoryUsage",header:{text:e("Memory (MB)"),tooltip:{icon:"question-circle-o",text:e("Sum of memory daily usage")}},cell:{template:"{{item.resources.memory}}"},filteringByPattern:{itemProperty:"resources.memory"},sortingByPath:{itemProperty:"resources.memory"},getCsvValues:function(e){return[_.get(e,"resources.memory")]}})}}}e.$inject=["c8yFilteringSortingCollections","SchemaPropertiesSvc","gettext"],angular.module("c8y.tenantStatistics").factory("c8yTenantStatisticsColumns",e)}();
1
+ "use strict";!function(){function e(n,i,e){return{getTenantNameColumn:function(){return n.getColumn({name:"tenantName",header:e("Tenant"),cell:{template:'<a ng-href="#{{getTenantDetails(item)}}">\n {{item.tenantCompany}}\n </a>',scopeExtensions:{getTenantDetails:function(e){return"/tenants/".concat(e.tenantId)}}},filteringByPattern:{itemProperty:"tenantCompany"},sortingByPath:{itemProperty:"tenantCompany"},getCsvHeaders:function(){return[e("Tenant")]},getCsvValues:function(e){return[e.tenantCompany]}})},getTenantIdColumn:function(){return n.getColumn({name:"tenantId",header:e("ID"),cell:{template:"{{item.tenantId}}"},filteringByPattern:{itemProperty:"tenantId"},sortingByPath:{itemProperty:"tenantId"},getCsvValues:function(e){return[e.tenantId]}})},getTenantDomainColumn:function(){return n.getColumn({name:"tenantDomain",header:e("Domain"),cell:{template:'<a \n ng-href="{{getTenantUrl(item)}}"\n target="_blank"\n rel="noopener noreferrer"\n >\n {{item.tenantDomain}}\n </a>',scopeExtensions:{getTenantUrl:function(e){return"https://".concat(e.tenantDomain)}}},filteringByPattern:{itemProperty:"tenantDomain"},sortingByPath:{itemProperty:"tenantDomain"},getCsvHeaders:function(){return[e("Domain")]},getCsvValues:function(e){return[e.tenantDomain]}})},getCustomPropertyColumn:function(r){var e=r.key,t=["tenantCustomProperties",e],e={name:e,priority:_.startsWith(e,"limit.")?-1e3:0,header:r.title,cell:{template:"<div\n ng-bind=\"getValue(item, '".concat(e,"') |\n formatBySchema:getSchema(tenantCustomProperties, '").concat(e,"')\">\n </div>"),scopeExtensions:{getValue:function(e,t){return _.get(e,["tenantCustomProperties",t])},getSchema:function(e,t){return _.get(e,[t,"schema"])}}},getCsvHeaders:function(){return[r.title]},getCsvValues:function(e){return[(e=e,t=r,n=_.get(t,"schema.default"),_.get(e,["tenantCustomProperties",t.key],n))];var t,n}};return _.merge(e,function(e){var t=i.getType(e).filteringKey,e={itemProperty:["tenantCustomProperties",e.key]},n={};return _.set(n,t,e),_.set(n,"sortingByPath",e),n}(r)),_.set(e.cell.scopeExtensions,t,r),n.getColumn(e)},getApiRequestsColumn:function(){return n.getColumn({name:"requestCount",header:e("API requests"),cell:{template:"{{item.requestCount}}"},filteringByMinMax:{itemProperty:"requestCount"},sortingByPath:{itemProperty:"requestCount"},getCsvValues:function(e){return[e.requestCount]}})},getDeviceApiRequestsColumn:function(){return n.getColumn({name:"deviceRequestCount",header:e("Device API requests"),cell:{template:"{{item.deviceRequestCount}}"},filteringByMinMax:{itemProperty:"deviceRequestCount"},sortingByPath:{itemProperty:"deviceRequestCount"},getCsvValues:function(e){return[e.deviceRequestCount]}})},getStorageQuotaColumn:function(){return n.getColumn({name:"storageQuota",header:e("Storage quota (MB)"),cell:{template:'<span ng-if="item.storageLimitPerDevice">{{item.storageQuota}}</span>'},filteringByMinMax:{itemProperty:"storageQuota"},sortingByPath:{itemProperty:"storageQuota"},getCsvValues:function(e){return[e.storageQuota||""]}})},getStorageSizeColumn:function(){return n.getColumn({name:"storageSize",header:e("Storage (MB)"),cell:{template:"{{item.storageSize}}"},filteringByMinMax:{itemProperty:"storageSize"},getCsvValues:function(e){return[e.storageSize]}})},getPeakStorageSizeColumn:function(){return n.getColumn({name:"peakStorageSize",header:e("Peak storage (MB)"),cell:{template:"{{item.peakStorageSize}}"},filteringByMinMax:{itemProperty:"peakStorageSize"},getCsvValues:function(e){return[e.peakStorageSize]}})},getRootDevicesColumn:function(){return n.getColumn({name:"deviceCount",header:{text:e("Root devices"),tooltip:{icon:"question-circle-o",text:e("Number of root devices, excluding child devices")}},cell:{template:"{{item.deviceCount}}"},filteringByMinMax:{itemProperty:"deviceCount"},sortingByPath:{itemProperty:"deviceCount"},getCsvValues:function(e){return[e.deviceCount]}})},getPeakRootDevicesColumn:function(){return n.getColumn({name:"peakDeviceCount",header:{text:e("Peak root devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of root devices, excluding child devices")}},cell:{template:"{{item.peakDeviceCount}}"},filteringByMinMax:{itemProperty:"peakDeviceCount"},sortingByPath:{itemProperty:"peakDeviceCount"},getCsvValues:function(e){return[e.peakDeviceCount]}})},getDevicesColumn:function(){return n.getColumn({name:"deviceWithChildrenCount",header:{text:e("Devices"),tooltip:{icon:"question-circle-o",text:e("Number of devices, including child devices")}},cell:{template:"{{item.deviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"deviceWithChildrenCount"},sortingByPath:{itemProperty:"deviceWithChildrenCount"},getCsvValues:function(e){return[e.deviceWithChildrenCount]}})},getPeakDevicesColumn:function(){return n.getColumn({name:"peakDeviceWithChildrenCount",header:{text:e("Peak devices"),tooltip:{icon:"question-circle-o",text:e("Peak number of devices, including child devices")}},cell:{template:"{{item.peakDeviceWithChildrenCount}}"},filteringByMinMax:{itemProperty:"peakDeviceWithChildrenCount"},sortingByPath:{itemProperty:"peakDeviceWithChildrenCount"},getCsvValues:function(e){return[e.peakDeviceWithChildrenCount]}})},getSubscribedApplicationsColumn:function(){return n.getColumn({name:"subscribedApplications",header:e("Subscribed applications"),cell:{template:"{{(item.subscribedApplications || []).length}}"},filteringByMinMax:{itemProperty:"subscribedApplications.length"},sortingByPath:{itemProperty:"subscribedApplications.length"},getCsvValues:function(e){return[_.join(e.subscribedApplications," ")]}})},getCreationTimeColumn:function(){return n.getColumn({name:"creationTime",header:e("Creation time"),cell:{template:"{{item.creationTime | absoluteDate}}"},filteringByMinMaxDate:{itemProperty:"creationTime"},sortingByPath:{itemProperty:"creationTime"},getCsvValues:function(e){return[e.creationTime&&moment(e.creationTime).format("L")]}})},getParentTenantIdColumn:function(){return n.getColumn({name:"parentTenantId",header:e("Parent tenant"),cell:{template:"{{item.parentTenantId}}"},filteringByPattern:{itemProperty:"parentTenantId"},sortingByPath:{itemProperty:"parentTenantId"},getCsvValues:function(e){return[e.parentTenantId]}})},getDeviceEndpointCountColumn:function(){return n.getColumn({name:"deviceEndpointCount",header:{text:e("Endpoint devices"),tooltip:{icon:"question-circle-o",text:e("Leaf machines (without gateways and edges)")}},cell:{template:"{{item.deviceEndpointCount}}"},filteringByPattern:{itemProperty:"deviceEndpointCount"},sortingByPath:{itemProperty:"deviceEndpointCount"},getCsvValues:function(e){return[e.deviceEndpointCount]}})},getAlarmsCreatedCountColumn:function(){return n.getColumn({name:"alarmsCreated",header:e("Alarms created"),cell:{template:"{{item.alarmsCreatedCount}}"},filteringByPattern:{itemProperty:"alarmsCreatedCount"},sortingByPath:{itemProperty:"alarmsCreatedCount"},getCsvValues:function(e){return[e.alarmsCreatedCount]}})},getAlarmsUpdatedCountColumn:function(){return n.getColumn({name:"alarmsUpdated",header:e("Alarms updated"),cell:{template:"{{item.alarmsUpdatedCount}}"},filteringByPattern:{itemProperty:"alarmsUpdatedCount"},sortingByPath:{itemProperty:"alarmsUpdatedCount"},getCsvValues:function(e){return[e.alarmsUpdatedCount]}})},getInventoriesCreatedCountColumn:function(){return n.getColumn({name:"inventoriesCreated",header:e("Inventories created"),cell:{template:"{{item.inventoriesCreatedCount}}"},filteringByPattern:{itemProperty:"inventoriesCreatedCount"},sortingByPath:{itemProperty:"inventoriesCreatedCount"},getCsvValues:function(e){return[e.inventoriesCreatedCount]}})},getInventoriesUpdatedCountColumn:function(){return n.getColumn({name:"inventoriesUpdated",header:e("Inventories updated"),cell:{template:"{{item.inventoriesUpdatedCount}}"},filteringByPattern:{itemProperty:"inventoriesUpdatedCount"},sortingByPath:{itemProperty:"inventoriesUpdatedCount"},getCsvValues:function(e){return[e.inventoriesUpdatedCount]}})},getEventsCreatedCountColumn:function(){return n.getColumn({name:"eventsCreated",header:e("Events created"),cell:{template:"{{item.eventsCreatedCount}}"},filteringByPattern:{itemProperty:"eventsCreatedCount"},sortingByPath:{itemProperty:"eventsCreatedCount"},getCsvValues:function(e){return[e.eventsCreatedCount]}})},getEventsUpdatedCountColumn:function(){return n.getColumn({name:"eventsUpdated",header:e("Events updated"),cell:{template:"{{item.eventsUpdatedCount}}"},filteringByPattern:{itemProperty:"eventsUpdatedCount"},sortingByPath:{itemProperty:"eventsUpdatedCount"},getCsvValues:function(e){return[e.eventsUpdatedCount]}})},getMeasurementsCreatedCountColumn:function(){return n.getColumn({name:"measurementsCreated",header:e("Measurements created"),cell:{template:"{{item.measurementsCreatedCount}}"},filteringByPattern:{itemProperty:"measurementsCreatedCount"},sortingByPath:{itemProperty:"measurementsCreatedCount"},getCsvValues:function(e){return[e.measurementsCreatedCount]}})},getTotalInboundTransferColumn:function(){return n.getColumn({name:"totalInboundTransfer",header:e("Total inbound transfer"),cell:{template:"{{item.totalResourceCreateAndUpdateCount}}"},filteringByPattern:{itemProperty:"totalResourceCreateAndUpdateCount"},sortingByPath:{itemProperty:"totalResourceCreateAndUpdateCount"},getCsvValues:function(e){return[e.totalResourceCreateAndUpdateCount]}})},getCpuUsageColumn:function(){return n.getColumn({name:"cpuUsage",header:{text:e("CPU (m)"),tooltip:{icon:"question-circle-o",text:e("Sum of CPU daily usage in CPU milliseconds")}},cell:{template:"{{item.resources.cpu}}"},filteringByPattern:{itemProperty:"resources.cpu"},sortingByPath:{itemProperty:"resources.cpu"},getCsvValues:function(e){return[_.get(e,"resources.cpu")]}})},getMemoryUsageColumn:function(){return n.getColumn({name:"memoryUsage",header:{text:e("Memory (MB)"),tooltip:{icon:"question-circle-o",text:e("Sum of memory daily usage")}},cell:{template:"{{item.resources.memory}}"},filteringByPattern:{itemProperty:"resources.memory"},sortingByPath:{itemProperty:"resources.memory"},getCsvValues:function(e){return[_.get(e,"resources.memory")]}})}}}e.$inject=["c8yFilteringSortingCollections","SchemaPropertiesSvc","gettext"],angular.module("c8y.tenantStatistics").factory("c8yTenantStatisticsColumns",e)}();
@@ -1 +1 @@
1
- "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _defineProperty(t,e,n){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _toPropertyKey(t){var e=_toPrimitive(t,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(t,e){if("object"!==_typeof(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0===n)return("string"===e?String:Number)(t);var o=n.call(t,e||"default");if("object"!==_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function t(t,e,n,o,r,i,u,a,s,c,l,m,f,g,p){var d=this,y=l.another(l.paths.Tenants),C=c.stringToDate(i.fromThisMonthStartFilter().dateFrom),h=g("No tenants to display.");function b(){d.refreshLoading=!0,a.isCurrentUserTopTenant().then(function(t){d.isTopTenant=t}).then(v).then(S).then(T).then(D).then(w).then(F).then(function(){d.refreshLoading=!1})}function v(){d.storageLimitFeatureEnabled=i.appOption("storageLimitationFeatureEnabled")}function S(){d.dateFrom=c.stringToDate(n.dateFrom)||C,d.dateTo=c.stringToDate(n.dateTo)}function T(){return u.list(P()).then(O)}function P(){return{dateFrom:c.dateToStringWithTimeZone(d.dateFrom),dateTo:void 0!==d.dateTo?c.dateToStringWithTimeZone(moment(d.dateTo).endOf("day")):void 0}}function O(t){d.statistics=function(t){return _.map(t,function(t){return _objectSpread(_objectSpread({},t),{},{storageQuota:j(function(t){var e=t.storageLimitPerDevice,n=t.deviceWithChildrenCount,o=e;o&&(o*=n||1);return o}(t)),storageSize:j(t.storageSize),peakStorageSize:j(t.peakStorageSize)})})}(t)}function j(t){return!_.isUndefined(t)&&Number((t/Math.pow(2,20)).toFixed(2))}function D(){return y.list().then(function(t){return _.filter(t,{id:"c8ySchema!!customProperties"})}).then(function(t){return y.getSchema(t)}).then(function(t){return _.get(t,"properties.customProperties.properties",{})}).then(function(t){return _.map(t,function(t,e){return{title:t.title,key:e,schema:t}})}).then(function(t){d.customProperties=_.sortBy(t,"title")})}function w(){d.columns=_([m.getTenantNameColumn(),m.getTenantIdColumn(),m.getTenantDomainColumn(),m.getApiRequestsColumn(),m.getDeviceApiRequestsColumn(),d.storageLimitFeatureEnabled?m.getStorageQuotaColumn():null,m.getStorageSizeColumn(),m.getPeakStorageSizeColumn(),m.getRootDevicesColumn(),m.getPeakRootDevicesColumn(),m.getDevicesColumn(),m.getPeakDevicesColumn(),m.getDeviceEndpointCountColumn(),m.getSubscribedApplicationsColumn(),m.getCreationTimeColumn(),m.getAlarmsCreatedCountColumn(),m.getAlarmsUpdatedCountColumn(),m.getInventoriesCreatedCountColumn(),m.getInventoriesUpdatedCountColumn(),m.getEventsCreatedCountColumn(),m.getEventsUpdatedCountColumn(),m.getMeasurementsCreatedCountColumn(),m.getTotalInboundTransferColumn(),m.getCpuUsageColumn(),m.getMemoryUsageColumn(),d.isTopTenant?m.getParentTenantIdColumn():null,_.map(d.customProperties,function(t){return m.getCustomPropertyColumn(t)})]).flattenDeep().compact().orderBy([function(t){return t.priority||0}],["desc"]).value(),d.columnsConfig={}}function F(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:d.columnsConfig;d.columnsConfig=t,d.filteredSortedStatistics=f.filterSort(d.statistics,d.columns,d.columnsConfig)}_.assign(d,{noItemsMessage:h,getSubtitle:function(){var t=_.get(d.statistics,"length"),e=p.getPlural(t,"1 tenant","{{$count}} tenants",{});return _.isNumber(t)?e:""},$onInit:b,onColumnsConfigChanged:function(t){F(t)},getCsvHeaders:function(){return _(d.columns).map(function(t){return _.result(t,"getCsvHeaders")||_.get(t,"header.text")||_.get(t,"header")}).flatten().value()},getCsvData:function(){return _.map(d.filteredSortedStatistics,function(e){return _(d.columns).map(function(t){return t.getCsvValues(e)}).flatten().value()})},detail:function(t){o.path("/tenants/".concat(t.tenantId))},filter:function(){_.isEqual(P().dateFrom,C)&&_.isUndefined(P().dateTo)||o.search(P())},clearFilter:function(){d.onColumnsConfigChanged({}),o.search({})},refresh:function(){b()}})}t.$inject=["$scope","$q","$routeParams","$location","$filter","c8yBase","c8yStatistics","c8yTenant","c8yTitle","c8yUtil","c8yPropertiesLibrary","c8yTenantStatisticsColumns","c8yFilteringSortingCollections","gettext","gettextCatalog"],angular.module("c8y.tenantStatistics").component("c8yTenantStatistics",{templateUrl:":::PLUGIN_PATH:::/tenant-statistics.html",controller:t,controllerAs:"vm"})}();
1
+ "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function ownKeys(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)),o}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _defineProperty(t,e,n){return(e=_toPropertyKey(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _toPropertyKey(t){t=_toPrimitive(t,"string");return"symbol"===_typeof(t)?t:String(t)}function _toPrimitive(t,e){if("object"!==_typeof(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0===n)return("string"===e?String:Number)(t);n=n.call(t,e||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function t(t,e,n,o,r,i,u,a,s,c,l,m,f,g,p){var d=this,y=l.another(l.paths.Tenants),C=c.stringToDate(i.fromThisMonthStartFilter().dateFrom),l=g("No tenants to display.");function h(){d.refreshLoading=!0,a.isCurrentUserTopTenant().then(function(t){d.isTopTenant=t}).then(b).then(S).then(v).then(j).then(D).then(w).then(function(){d.refreshLoading=!1})}function b(){d.storageLimitFeatureEnabled=i.appOption("storageLimitationFeatureEnabled")}function S(){d.dateFrom=c.stringToDate(n.dateFrom)||C,d.dateTo=c.stringToDate(n.dateTo)}function v(){return u.list(T()).then(P)}function T(){return{dateFrom:c.dateToStringWithTimeZone(d.dateFrom),dateTo:void 0!==d.dateTo?c.dateToStringWithTimeZone(moment(d.dateTo).endOf("day")):void 0}}function P(t){d.statistics=_.map(t,function(t){return _objectSpread(_objectSpread({},t),{},{storageQuota:O(function(t){var e=t.storageLimitPerDevice,t=t.deviceWithChildrenCount;e&&(e*=t||1);return e}(t)),storageSize:O(t.storageSize),peakStorageSize:O(t.peakStorageSize)})})}function O(t){return!_.isUndefined(t)&&Number((t/Math.pow(2,20)).toFixed(2))}function j(){return y.list().then(function(t){return _.filter(t,{id:"c8ySchema!!customProperties"})}).then(function(t){return y.getSchema(t)}).then(function(t){return _.get(t,"properties.customProperties.properties",{})}).then(function(t){return _.map(t,function(t,e){return{title:t.title,key:e,schema:t}})}).then(function(t){d.customProperties=_.sortBy(t,"title")})}function D(){d.columns=_([m.getTenantNameColumn(),m.getTenantIdColumn(),m.getTenantDomainColumn(),m.getApiRequestsColumn(),m.getDeviceApiRequestsColumn(),d.storageLimitFeatureEnabled?m.getStorageQuotaColumn():null,m.getStorageSizeColumn(),m.getPeakStorageSizeColumn(),m.getRootDevicesColumn(),m.getPeakRootDevicesColumn(),m.getDevicesColumn(),m.getPeakDevicesColumn(),m.getDeviceEndpointCountColumn(),m.getSubscribedApplicationsColumn(),m.getCreationTimeColumn(),m.getAlarmsCreatedCountColumn(),m.getAlarmsUpdatedCountColumn(),m.getInventoriesCreatedCountColumn(),m.getInventoriesUpdatedCountColumn(),m.getEventsCreatedCountColumn(),m.getEventsUpdatedCountColumn(),m.getMeasurementsCreatedCountColumn(),m.getTotalInboundTransferColumn(),m.getCpuUsageColumn(),m.getMemoryUsageColumn(),d.isTopTenant?m.getParentTenantIdColumn():null,_.map(d.customProperties,function(t){return m.getCustomPropertyColumn(t)})]).flattenDeep().compact().orderBy([function(t){return t.priority||0}],["desc"]).value(),d.columnsConfig={}}function w(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:d.columnsConfig;d.columnsConfig=t,d.filteredSortedStatistics=f.filterSort(d.statistics,d.columns,d.columnsConfig)}_.assign(d,{noItemsMessage:l,getSubtitle:function(){var t=_.get(d.statistics,"length"),e=p.getPlural(t,"1 tenant","{{$count}} tenants",{});return _.isNumber(t)?e:""},$onInit:h,onColumnsConfigChanged:function(t){w(t)},getCsvHeaders:function(){return _(d.columns).map(function(t){return _.result(t,"getCsvHeaders")||_.get(t,"header.text")||_.get(t,"header")}).flatten().value()},getCsvData:function(){return _.map(d.filteredSortedStatistics,function(e){return _(d.columns).map(function(t){return t.getCsvValues(e)}).flatten().value()})},detail:function(t){o.path("/tenants/".concat(t.tenantId))},filter:function(){_.isEqual(T().dateFrom,C)&&_.isUndefined(T().dateTo)||o.search(T())},clearFilter:function(){d.onColumnsConfigChanged({}),o.search({})},refresh:function(){h()}})}t.$inject=["$scope","$q","$routeParams","$location","$filter","c8yBase","c8yStatistics","c8yTenant","c8yTitle","c8yUtil","c8yPropertiesLibrary","c8yTenantStatisticsColumns","c8yFilteringSortingCollections","gettext","gettextCatalog"],angular.module("c8y.tenantStatistics").component("c8yTenantStatistics",{templateUrl:":::PLUGIN_PATH:::/tenant-statistics.html",controller:t,controllerAs:"vm"})}();
@@ -1 +1 @@
1
- "use strict";!function(){function t(i,t,e,r,s,n,a,o,c){var u=this,h=e.tenantId,l=n.another(n.paths.Tenants,{tenantId:h}),f="c8ySchema!!customProperties",g={notitle:!0};_.assign(u,{schema:{},form:[],cancel:function(){t.path("tenants")},save:function(t){return s.save(_.pick(u.tenant,["id","applications","customProperties"])).then(function(){o.success(c("Custom properties saved.")),t.$setPristine()})}}),i.all({rootProperty:l.list().then(function(t){return _.filter(t,{id:f})}),isGainsightKeyDefined:_.get(window,"C8Y_APP.gainsightKey")?i.resolve(!!window.C8Y_APP.gainsightKey):a.detailValue({category:"configuration",key:"system.gainsight.api.key"}).then(function(t){return!!t})}).then(function(t){var e=t.rootProperty,n=t.isGainsightKeyDefined;return function(t){return i.all({schema:l.getSchema(t),form:l.getForm(t,g),tenant:s.detail(h).then(r.getResData)})}(e).then(function(t){return{results:t,isGainsightKeyDefined:n}})}).then(function(t){var e=t.results,n=t.isGainsightKeyDefined;u.schema=n?e.schema:function(t){var e=_.cloneDeep(t);return _.unset(e,"properties.customProperties.properties.gainsightEnabled"),e}(e.schema),u.form=e.form,u.tenant=e.tenant})}t.$inject=["$q","$location","$routeParams","c8yBase","c8yTenant","c8yPropertiesLibrary","c8ySettings","c8yAlert","gettext"],angular.module("c8y.tenants").controller("tenantCustomPropertiesCtrl",t)}();
1
+ "use strict";!function(){function t(i,t,e,s,r,n,a,o,c){var u=this,h=e.tenantId,l=n.another(n.paths.Tenants,{tenantId:h}),g="c8ySchema!!customProperties",f={notitle:!0};_.assign(u,{schema:{},form:[],cancel:function(){t.path("tenants")},save:function(t){return r.save(_.pick(u.tenant,["id","applications","customProperties"])).then(function(){o.success(c("Custom properties saved.")),t.$setPristine()})}}),i.all({rootProperty:l.list().then(function(t){return _.filter(t,{id:g})}),isGainsightKeyDefined:_.get(window,"C8Y_APP.gainsightKey")?i.resolve(!!window.C8Y_APP.gainsightKey):a.detailValue({category:"configuration",key:"system.gainsight.api.key"}).then(function(t){return!!t})}).then(function(t){var e=t.rootProperty,n=t.isGainsightKeyDefined;return t=e,i.all({schema:l.getSchema(t),form:l.getForm(t,f),tenant:r.detail(h).then(s.getResData)}).then(function(t){return{results:t,isGainsightKeyDefined:n}})}).then(function(t){var e=t.results,t=t.isGainsightKeyDefined;u.schema=t?e.schema:function(t){t=_.cloneDeep(t);return _.unset(t,"properties.customProperties.properties.gainsightEnabled"),t}(e.schema),u.form=e.form,u.tenant=e.tenant})}t.$inject=["$q","$location","$routeParams","c8yBase","c8yTenant","c8yPropertiesLibrary","c8ySettings","c8yAlert","gettext"],angular.module("c8y.tenants").controller("tenantCustomPropertiesCtrl",t)}();
@@ -1 +1 @@
1
- "use strict";function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return s}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(a,i,r,e,t,o,n,s,c,l,u,d,f,m){var h,g,y,p,v=e.tenantId,P=u("May contain lowercase letters, digits, and hyphens. Must start with a letter; hyphens only allowed in the middle; minimum 2 characters. ");function w(e){var t=e||{};i.storageLimitation.storageLimitPerDeviceEnabled=function(e){return i.storageLimitation.storageLimitFeatureEnabled&&!!e.storageLimitPerDevice}(t),t.storageLimitPerDevice=(t.storageLimitPerDevice||0)/1024/1024,i.tenant=t}function T(e){i.saveInProgress=e}function L(e){i.tenantPolicies=_.union([{name:d.getString("None")}],e)}function b(){var e="c8yTenantPolicies";return!h&&t.has(e)&&(h=t.get(e)),h}_.assign(i,{validation:f.validation,tenantIdDomainHelpText:P,maxStorageLimitPerDevice:(g=Number.MAX_SAFE_INTEGER||9007199254740991,Math.round(g/1024/1024)),passwordStrengthUser:{},cancel:function(){r.path("tenants")},save:function(e,n){i.isNew&&i.host&&(e.domain=e.id+i.host);var t=_.cloneDeep(e);i.storageLimitation.storageLimitPerDeviceEnabled?t.storageLimitPerDevice=1024*t.storageLimitPerDevice*1024:t.storageLimitPerDevice=0;T(!0),o.save(t).then(function(e){var t=e.data;return function(e,t){i.isNew&&r.path("/tenants/".concat(e.id));_.assign(i.tenant,e),c.success(u("Tenant saved.")),t.$setPristine()}(t,n)}).finally(function(){T(!1)})},shouldShowSubtenantCheckbox:function(){var e=i.tenant&&o.isParentTopTenant(i.tenant);return i.isTopTenant&&(e||i.isNew)},storageLimitation:{storageLimitPerDeviceEnabled:!1,storageLimitFeatureEnabled:n.appOption("storageLimitationFeatureEnabled")},humanize:n.humanizeFragment,saveInProgress:!1,changePasswordConfirm:function(){var e=i.tenantForm,t=e.confirmPassword,n=e.adminPass;if(t){var r=t.$modelValue,a=n.$modelValue;t.$setValidity("password-mismatch",r===a)}},changePassword:!1,resetPassword:function(){i.changePassword=!i.changePassword,i.changePassword||(i.tenant.adminPass=null)},shouldDisplayConfirmPassword:function(){return!_.isEmpty(i.tenant.adminPass)}}),i.$watchGroup(["passwordStrengthEnforced","passwordStrengthUser.passwordStrength"],function(e){var t=_slicedToArray(e,2),n=t[0],r=t[1];i.tenantForm&&i.tenantForm.adminPass&&i.tenantForm.adminPass.$setValidity("password-strength",!n||"GREEN"===r)}),i.$watch("tenant.tenantPolicyId",function(e){var t=l.getStrongPasswordSettings(),n=b(),r=_.find(i.tenantPolicies,{id:e});a.all({enforcedOnSystemLevel:t.then(function(e){return e.enforceStrength}),enforcedOnTenantLevel:t.then(function(e){return e.strengthValidity}),enforcedOnTenantPolicyLevel:n&&n.doesEnforceStrongPassword(r)}).then(function(e){var t=e.enforcedOnSystemLevel,n=e.enforcedOnTenantLevel,r=e.enforcedOnTenantPolicyLevel;i.isNew?i.passwordStrengthEnforced=t||r:i.passwordStrengthEnforced=t||n})}),o.current().then(function(e){var t=e.domainName;return".".concat(t.split(".").slice(1).join("."))}).then(function(e){i.host=e}),o.isCurrentUserTopTenant().then(function(e){i.isTopTenant=e}),m.current(!1).then(function(e){(m.hasRole(e,"ROLE_SUPPORT_ADMIN")||m.hasRole(e,"ROLE_SUPPORT_READ"))&&(i.supportUser=encodeURIComponent("".concat(e.id,"$")))}),v&&"new"!==v?o.detail(v).then(function(e){return e.data}).then(w):(w({sendPasswordResetEmail:i.isNew=!0}),s.changeTitle({title:u("New tenant")}),y=b(),p=!1,y&&(p=!0,y.list().then(L)),i.selectTenantPolicy=p),o.isEnterpriseEditionTenant().then(function(e){i.isEnterpriseEditionTenant=e})}e.$inject=["$q","$scope","$location","$routeParams","$injector","c8yTenant","c8yBase","c8yTitle","c8yAlert","c8yLoginOptions","gettext","gettextCatalog","c8yConfig","c8yUser"],angular.module("c8y.tenants").controller("tenantDetailCtrl",e)}();
1
+ "use strict";function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var n;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(n="Object"===(n=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,a=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return s}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(r,a,i,e,t,o,n,s,c,l,u,d,m,f){var h,e=e.tenantId,g=u("May contain lowercase letters, digits, and hyphens. Must start with a letter; hyphens only allowed in the middle; minimum 2 characters. ");(_.assign(a,{validation:m.validation,tenantIdDomainHelpText:g,maxStorageLimitPerDevice:(m=Number.MAX_SAFE_INTEGER||9007199254740991,Math.round(m/1024/1024)),passwordStrengthUser:{},cancel:function(){i.path("tenants")},save:function(e,n){a.isNew&&a.host&&(e.domain=e.id+a.host);e=_.cloneDeep(e);a.storageLimitation.storageLimitPerDeviceEnabled?e.storageLimitPerDevice=1024*e.storageLimitPerDevice*1024:e.storageLimitPerDevice=0;p(!0),o.save(e).then(function(e){var e=e.data,t=n;a.isNew&&i.path("/tenants/".concat(e.id)),_.assign(a.tenant,e),c.success(u("Tenant saved.")),t.$setPristine()}).finally(function(){p(!1)})},shouldShowSubtenantCheckbox:function(){var e=a.tenant&&o.isParentTopTenant(a.tenant);return a.isTopTenant&&(e||a.isNew)},storageLimitation:{storageLimitPerDeviceEnabled:!1,storageLimitFeatureEnabled:n.appOption("storageLimitationFeatureEnabled")},humanize:n.humanizeFragment,saveInProgress:!1,changePasswordConfirm:function(){var e=a.tenantForm,t=e.confirmPassword,e=e.adminPass;{var n;t&&(n=t.$modelValue,e=e.$modelValue,t.$setValidity("password-mismatch",n===e))}},changePassword:!1,resetPassword:function(){a.changePassword=!a.changePassword,a.changePassword||(a.tenant.adminPass=null)},shouldDisplayConfirmPassword:function(){return!_.isEmpty(a.tenant.adminPass)}}),a.$watchGroup(["passwordStrengthEnforced","passwordStrengthUser.passwordStrength"],function(e){var e=_slicedToArray(e,2),t=e[0],e=e[1];a.tenantForm&&a.tenantForm.adminPass&&a.tenantForm.adminPass.$setValidity("password-strength",!t||"GREEN"===e)}),a.$watch("tenant.tenantPolicyId",function(e){var t=l.getStrongPasswordSettings(),n=v(),e=_.find(a.tenantPolicies,{id:e});r.all({enforcedOnSystemLevel:t.then(function(e){return e.enforceStrength}),enforcedOnTenantLevel:t.then(function(e){return e.strengthValidity}),enforcedOnTenantPolicyLevel:n&&n.doesEnforceStrongPassword(e)}).then(function(e){var t=e.enforcedOnSystemLevel,n=e.enforcedOnTenantLevel,e=e.enforcedOnTenantPolicyLevel;a.isNew?a.passwordStrengthEnforced=t||e:a.passwordStrengthEnforced=t||n})}),o.current().then(function(e){e=e.domainName;return".".concat(e.split(".").slice(1).join("."))}).then(function(e){a.host=e}),o.isCurrentUserTopTenant().then(function(e){a.isTopTenant=e}),f.current(!1).then(function(e){(f.hasRole(e,"ROLE_SUPPORT_ADMIN")||f.hasRole(e,"ROLE_SUPPORT_READ"))&&(a.supportUser=encodeURIComponent("".concat(e.id,"$")))}),e&&"new"!==e)?o.detail(e).then(function(e){return e.data}).then(y):(y({sendPasswordResetEmail:a.isNew=!0}),s.changeTitle({title:u("New tenant")}),g=v(),m=!1,g&&(m=!0,g.list().then(P)),a.selectTenantPolicy=m);function y(e){var t,e=e||{};a.storageLimitation.storageLimitPerDeviceEnabled=(t=e,a.storageLimitation.storageLimitFeatureEnabled&&!!t.storageLimitPerDevice),e.storageLimitPerDevice=(e.storageLimitPerDevice||0)/1024/1024,a.tenant=e}function p(e){a.saveInProgress=e}function P(e){a.tenantPolicies=_.union([{name:d.getString("None")}],e)}function v(){var e="c8yTenantPolicies";return h=!h&&t.has(e)?t.get(e):h}o.isEnterpriseEditionTenant().then(function(e){a.isEnterpriseEditionTenant=e})}e.$inject=["$q","$scope","$location","$routeParams","$injector","c8yTenant","c8yBase","c8yTitle","c8yAlert","c8yLoginOptions","gettext","gettextCatalog","c8yConfig","c8yUser"],angular.module("c8y.tenants").controller("tenantDetailCtrl",e)}();
package/tenants/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";!function(){function t(t,e,r,n){n.when("/tenants/new",{templateUrl:":::PLUGIN_PATH:::/views/detail.html",controller:"tenantDetailCtrl"}),t.when("/tenants/:tenantId",{templateUrl:":::PLUGIN_PATH:::/views/detail.html",controller:"tenantDetailCtrl",icon:"new-property",name:r("Properties"),priority:4e3}),t.when("/tenants/:tenantId",{templateUrl:":::PLUGIN_PATH:::/views/customProperties.html",controller:"tenantCustomPropertiesCtrl as vm",icon:"property-script",name:r("Custom properties"),priority:3e3,showIf:["$routeParams",function(t){return _.get(t,"tenantId")}]}),e.addTitle("/tenants/:tenantId",{data:["$routeParams","c8yTenant",function(t,e){var n=t.tenantId;return n?e.detail(n).then(function(t){return{title:t.data.company}}):{title:r("New tenant")}}]})}t.$inject=["c8yViewsProvider","c8yTitleProvider","gettext","$routeProvider"],angular.module("c8y.tenants",[]).config(t)}();
1
+ "use strict";!function(){function t(t,e,n,r){r.when("/tenants/new",{templateUrl:":::PLUGIN_PATH:::/views/detail.html",controller:"tenantDetailCtrl"}),t.when("/tenants/:tenantId",{templateUrl:":::PLUGIN_PATH:::/views/detail.html",controller:"tenantDetailCtrl",icon:"new-property",name:n("Properties"),priority:4e3}),t.when("/tenants/:tenantId",{templateUrl:":::PLUGIN_PATH:::/views/customProperties.html",controller:"tenantCustomPropertiesCtrl as vm",icon:"property-script",name:n("Custom properties"),priority:3e3,showIf:["$routeParams",function(t){return _.get(t,"tenantId")}]}),e.addTitle("/tenants/:tenantId",{data:["$routeParams","c8yTenant",function(t,e){t=t.tenantId;return t?e.detail(t).then(function(t){return{title:t.data.company}}):{title:n("New tenant")}}]})}t.$inject=["c8yViewsProvider","c8yTitleProvider","gettext","$routeProvider"],angular.module("c8y.tenants",[]).config(t)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(e,i,t,n,a,o,r,c,s,l,d,u,f,v,p,g){var m=this;function S(e){var t;m.device=null,m.modelInfo=null,t=e.id||e;var n=a.detailRealtime(t),o=n.then(c.modelByDevice);i.all([n,o]).then(function(e){m.device=e[0],m.modelInfo=e[1],m.device&&m.modelInfo&&(m.restart=new s(m.device,m.modelInfo,m),m.sos=new l(m.device,m.modelInfo,m),m.alarms=new d(m.device,m.modelInfo,m),m.situation=new u(m.device,m.modelInfo,m),m.location=new f(m.device,m.modelInfo,m))})}function h(e,t,n){r.success(g.getString(e,{operation:t,operationResult:n}))}_.assign(m,v),m.scope=t,m.newModel={name:null,save:function(){return a.save({id:m.device.id,c8y_Hardware:_.assign(m.device.c8y_Hardware||{},{model:m.newModel.name})}).then(n.getResData).then(S)}},m.execute=function(t,n){return o.createWithNotifications(t).then(function(e){return e.created.then(function(){h(p('"{{operation.description | translate}}" will be executed.'),t),n.pending=!0}),e.completed.then(function(e){e.status===o.status.SUCCESSFUL?h(p('"{{operation.description | translate}}" completed.'),t,e):e.status===o.status.FAILED&&function(e,t,n,o){o.failureReason?r.danger(g.getString(e,{operation:n,operationResult:o})):r.danger(g.getString(t,{operation:n,operationResult:o}))}(p('"{{operation.description | translate}}" failed due to: "{{operationResult.failureReason | translate}}".'),p('"{{operation.description | translate}}" failed.'),t,e),n.pending=!1}),e})},c.list().then(function(e){m.supportedModels=e}),S(e.deviceId)}e.$inject=["$routeParams","$q","$scope","c8yBase","c8yDevices","c8yDeviceControl","c8yAlert","trackerModelsSvc","trackerRestartSvc","trackerSosSvc","trackerAlarmsSvc","trackerSituationSvc","trackerLocationSvc","UnitConversionHelperSvc","gettext","gettextCatalog"],angular.module("c8y.trackerConfiguration").controller("trackerConfigurationCtrl",e)}();
1
+ "use strict";!function(){function e(e,n,t,o,i,r,c,a,s,l,d,u,v,f,p,g){var m=this;function S(e){m.device=null,m.modelInfo=null,e=e.id||e;var e=i.detailRealtime(e),t=e.then(a.modelByDevice);n.all([e,t]).then(function(e){m.device=e[0],m.modelInfo=e[1],m.device&&m.modelInfo&&(m.restart=new s(m.device,m.modelInfo,m),m.sos=new l(m.device,m.modelInfo,m),m.alarms=new d(m.device,m.modelInfo,m),m.situation=new u(m.device,m.modelInfo,m),m.location=new v(m.device,m.modelInfo,m))})}function h(e,t,n){c.success(g.getString(e,{operation:t,operationResult:n}))}_.assign(m,f),m.scope=t,m.newModel={name:null,save:function(){return i.save({id:m.device.id,c8y_Hardware:_.assign(m.device.c8y_Hardware||{},{model:m.newModel.name})}).then(o.getResData).then(S)}},m.execute=function(i,a){return r.createWithNotifications(i).then(function(e){return e.created.then(function(){h(p('"{{operation.description | translate}}" will be executed.'),i),a.pending=!0}),e.completed.then(function(e){var t,n,o;e.status===r.status.SUCCESSFUL?h(p('"{{operation.description | translate}}" completed.'),i,e):e.status===r.status.FAILED&&(t=p('"{{operation.description | translate}}" failed due to: "{{operationResult.failureReason | translate}}".'),n=p('"{{operation.description | translate}}" failed.'),o=i,(e=e).failureReason?c.danger(g.getString(t,{operation:o,operationResult:e})):c.danger(g.getString(n,{operation:o,operationResult:e}))),a.pending=!1}),e})},a.list().then(function(e){m.supportedModels=e}),S(e.deviceId)}e.$inject=["$routeParams","$q","$scope","c8yBase","c8yDevices","c8yDeviceControl","c8yAlert","trackerModelsSvc","trackerRestartSvc","trackerSosSvc","trackerAlarmsSvc","trackerSituationSvc","trackerLocationSvc","UnitConversionHelperSvc","gettext","gettextCatalog"],angular.module("c8y.trackerConfiguration").controller("trackerConfigurationCtrl",e)}();
@@ -1 +1 @@
1
- "use strict";angular.module("c8y.trackerConfiguration",[]).config(["c8yViewsProvider","gettext",function(e,t){var r=t("Settings");e.when("/device/:deviceId",{name:r,icon:"crosshairs",templateUrl:":::PLUGIN_PATH:::/views/trackerConfiguration.html",controller:"trackerConfigurationCtrl",controllerAs:"tracker",showIf:["$routeParams","c8yBase","c8yDevices",function(e,t,r){return r.detailCached(e.deviceId).then(t.getResData).then(function(e){return!_.isUndefined(e.c8y_MotionTracking)})}]})}]);
1
+ "use strict";angular.module("c8y.trackerConfiguration",[]).config(["c8yViewsProvider","gettext",function(e,t){t=t("Settings");e.when("/device/:deviceId",{name:t,icon:"crosshairs",templateUrl:":::PLUGIN_PATH:::/views/trackerConfiguration.html",controller:"trackerConfigurationCtrl",controllerAs:"tracker",showIf:["$routeParams","c8yBase","c8yDevices",function(e,t,r){return r.detailCached(e.deviceId).then(t.getResData).then(function(e){return!_.isUndefined(e.c8y_MotionTracking)})}]})}]);
@@ -1 +1 @@
1
- "use strict";angular.module("c8y.trackerConfiguration").factory("RealtimeLockupSvc",function(){var n={},c={block:function(n,c){return _.assign(n,{blocked:!!c})},infoChange:function(n,c){return _.assign(n,{changedInfo:!!c})},clearLockup:function(n){return _.assign(n,{blocked:!1},{changedInfo:!1})},getBlock:function(n){if(n)return n.blocked}};return n.RTLU=c,n});
1
+ "use strict";angular.module("c8y.trackerConfiguration").factory("RealtimeLockupSvc",function(){var n={RTLU:{block:function(n,c){return _.assign(n,{blocked:!!c})},infoChange:function(n,c){return _.assign(n,{changedInfo:!!c})},clearLockup:function(n){return _.assign(n,{blocked:!1},{changedInfo:!1})},getBlock:function(n){if(n)return n.blocked}}};return n});
@@ -1 +1 @@
1
- "use strict";!function(){function t(t,c,a,o,n){return function(e,t,i){var r=this;r.units=i.getTimeUnits(),r.getSingle=function(){return i.execute({deviceId:e.id,description:n("Get single location"),c8y_MeasurementRequestOperation:{requestName:"location"}},r.getSingle)},r.setReportIntervalNoMotion=function(){return i.execute({deviceId:e.id,description:n("Position reporting interval if no motion detected"),c8y_Tracking:{interval:i.convertToSeconds(r.reportIntervalNoMotion,r.setReportIntervalNoMotion.unit)}},r.setReportIntervalNoMotion).then(function(t){t.completed.then(function(t){if(t.status===c.status.SUCCESSFUL){var o=e.c8y_RequiredAvailability&&e.c8y_RequiredAvailability.responseInterval,n=i.convertToUnits(r.reportIntervalNoMotion,_.find(r.units,{value:"minutes"}),r.setReportIntervalNoMotion.unit.multiplier);o!==n&&a.save({id:e.id,c8y_RequiredAvailability:{responseInterval:n}})}})})},r.setReportIntervalOnMotion=function(){return i.execute({deviceId:e.id,description:n("Position reporting interval if motion detected"),c8y_MotionTracking:r.getMotionTracking()},r.setReportIntervalOnMotion)},r.getMotionTracking=function(){var t={};return e.c8y_MotionTracking&&!_.isUndefined(e.c8y_MotionTracking.active)&&(t.active=r.motionTracking),t.interval=i.convertToSeconds(r.reportIntervalOnMotion,r.setReportIntervalOnMotion.unit),t},r.setMotionTracking=function(){return i.execute({deviceId:e.id,description:n("Motion tracking"),c8y_MotionTracking:{active:r.motionTracking}},r.setMotionTracking)},r.blockReportIntervalOnMotionChange=function(){o.RTLU.block(r.setReportIntervalOnMotion,!0)},r.blockReportintervalNoMotionChange=function(){o.RTLU.block(r.setReportIntervalNoMotion,!0)},r.blockMotionTrackingChange=function(){o.RTLU.block(r.setMotionTracking.blocked,!0)},r.refreshReportIntervalOnMotion=function(){o.RTLU.clearLockup(r.setReportIntervalOnMotion),r.setReportIntervalOnMotion.unit=r.units[0],r.reportIntervalOnMotion=e.c8y_MotionTracking&&e.c8y_MotionTracking.interval},r.refreshReportIntervalNoMotion=function(){o.RTLU.clearLockup(r.setReportIntervalNoMotion),r.setReportIntervalNoMotion.unit=r.units[0],r.reportIntervalNoMotion=e.c8y_Tracking&&e.c8y_Tracking.interval},r.refreshMotionTracking=function(){o.RTLU.clearLockup(r.setMotionTracking),r.motionTracking=e.c8y_MotionTracking&&e.c8y_MotionTracking.active},r.getSingle.supported=t.supportedOperations.getSingleLocation,r.setReportIntervalNoMotion.supported=t.supportedOperations.reportIntervalNoMotion,r.setReportIntervalOnMotion.supported=t.supportedOperations.reportIntervalOnMotion,r.setMotionTracking.supported=t.supportedOperations.motionTracking,r.setReportIntervalOnMotion.supported&&i.scope.$watch("tracker.device.c8y_MotionTracking.interval",function(t){o.RTLU.getBlock(r.setReportIntervalOnMotion)?o.RTLU.infoChange(r.setReportIntervalOnMotion,!0):r.reportIntervalOnMotion=t}),r.setReportIntervalNoMotion.supported&&i.scope.$watch("tracker.device.c8y_Tracking.interval",function(t){o.RTLU.getBlock(r.setReportIntervalNoMotion)?o.RTLU.infoChange(r.setReportIntervalNoMotion,!0):r.reportIntervalNoMotion=t}),r.setMotionTracking.supported&&i.scope.$watch("tracker.device.c8y_MotionTracking.active",function(t){o.RTLU.getBlock(r.setMotionTracking)?o.RTLU.infoChange(r.setMotionTracking,!0):r.motionTracking=t}),r.setReportIntervalNoMotion.unit=r.units[0],r.setReportIntervalOnMotion.unit=r.setReportIntervalNoMotion.unit}}t.$inject=["c8yBase","c8yDeviceControl","c8yDevices","RealtimeLockupSvc","gettext"],angular.module("c8y.trackerConfiguration").factory("trackerLocationSvc",t)}();
1
+ "use strict";!function(){function t(t,i,r,c,a){return function(o,t,n){var e=this;e.units=n.getTimeUnits(),e.getSingle=function(){return n.execute({deviceId:o.id,description:a("Get single location"),c8y_MeasurementRequestOperation:{requestName:"location"}},e.getSingle)},e.setReportIntervalNoMotion=function(){return n.execute({deviceId:o.id,description:a("Position reporting interval if no motion detected"),c8y_Tracking:{interval:n.convertToSeconds(e.reportIntervalNoMotion,e.setReportIntervalNoMotion.unit)}},e.setReportIntervalNoMotion).then(function(t){t.completed.then(function(t){t.status===i.status.SUCCESSFUL&&(o.c8y_RequiredAvailability&&o.c8y_RequiredAvailability.responseInterval)!==(t=n.convertToUnits(e.reportIntervalNoMotion,_.find(e.units,{value:"minutes"}),e.setReportIntervalNoMotion.unit.multiplier))&&r.save({id:o.id,c8y_RequiredAvailability:{responseInterval:t}})})})},e.setReportIntervalOnMotion=function(){return n.execute({deviceId:o.id,description:a("Position reporting interval if motion detected"),c8y_MotionTracking:e.getMotionTracking()},e.setReportIntervalOnMotion)},e.getMotionTracking=function(){var t={};return o.c8y_MotionTracking&&!_.isUndefined(o.c8y_MotionTracking.active)&&(t.active=e.motionTracking),t.interval=n.convertToSeconds(e.reportIntervalOnMotion,e.setReportIntervalOnMotion.unit),t},e.setMotionTracking=function(){return n.execute({deviceId:o.id,description:a("Motion tracking"),c8y_MotionTracking:{active:e.motionTracking}},e.setMotionTracking)},e.blockReportIntervalOnMotionChange=function(){c.RTLU.block(e.setReportIntervalOnMotion,!0)},e.blockReportintervalNoMotionChange=function(){c.RTLU.block(e.setReportIntervalNoMotion,!0)},e.blockMotionTrackingChange=function(){c.RTLU.block(e.setMotionTracking.blocked,!0)},e.refreshReportIntervalOnMotion=function(){c.RTLU.clearLockup(e.setReportIntervalOnMotion),e.setReportIntervalOnMotion.unit=e.units[0],e.reportIntervalOnMotion=o.c8y_MotionTracking&&o.c8y_MotionTracking.interval},e.refreshReportIntervalNoMotion=function(){c.RTLU.clearLockup(e.setReportIntervalNoMotion),e.setReportIntervalNoMotion.unit=e.units[0],e.reportIntervalNoMotion=o.c8y_Tracking&&o.c8y_Tracking.interval},e.refreshMotionTracking=function(){c.RTLU.clearLockup(e.setMotionTracking),e.motionTracking=o.c8y_MotionTracking&&o.c8y_MotionTracking.active},e.getSingle.supported=t.supportedOperations.getSingleLocation,e.setReportIntervalNoMotion.supported=t.supportedOperations.reportIntervalNoMotion,e.setReportIntervalOnMotion.supported=t.supportedOperations.reportIntervalOnMotion,e.setMotionTracking.supported=t.supportedOperations.motionTracking,e.setReportIntervalOnMotion.supported&&n.scope.$watch("tracker.device.c8y_MotionTracking.interval",function(t){c.RTLU.getBlock(e.setReportIntervalOnMotion)?c.RTLU.infoChange(e.setReportIntervalOnMotion,!0):e.reportIntervalOnMotion=t}),e.setReportIntervalNoMotion.supported&&n.scope.$watch("tracker.device.c8y_Tracking.interval",function(t){c.RTLU.getBlock(e.setReportIntervalNoMotion)?c.RTLU.infoChange(e.setReportIntervalNoMotion,!0):e.reportIntervalNoMotion=t}),e.setMotionTracking.supported&&n.scope.$watch("tracker.device.c8y_MotionTracking.active",function(t){c.RTLU.getBlock(e.setMotionTracking)?c.RTLU.infoChange(e.setMotionTracking,!0):e.motionTracking=t}),e.setReportIntervalNoMotion.unit=e.units[0],e.setReportIntervalOnMotion.unit=e.setReportIntervalNoMotion.unit}}t.$inject=["c8yBase","c8yDeviceControl","c8yDevices","RealtimeLockupSvc","gettext"],angular.module("c8y.trackerConfiguration").factory("trackerLocationSvc",t)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(e,n,t,r){var c=t.dataFilePath("trackers/trackers.json"),a=null,o={category:"trackers",key:"supported.models"},u=null;function i(){return a?n.when(a):(function(){var e=window.c8y&&window.c8y.collections&&window.c8y.collections.trackers;return e&&n.when(_.values(e))}()||e.get(c).then(t.getResData)).then(s).then(function(e){return a=e})}function s(c){return r.getSystemOptionValue(o,u).then(function(e){var r=e?[]:c;return _.forOwn(e,function(e,n){var t=_.find(c,{name:n});r.push(_.merge(t,e))}),r})}return{list:i,modelByDevice:function(e){var n=e&&e.c8y_Hardware&&e.c8y_Hardware.model||e;return i().then(function(e){return _.find(e,{name:n})})}}}e.$inject=["$http","$q","c8yBase","c8ySettings"],angular.module("c8y.trackerModels").factory("trackerModelsSvc",e)}();
1
+ "use strict";!function(){function e(n,t,r,e){var c=r.dataFilePath("trackers/trackers.json"),a=null,o={category:"trackers",key:"supported.models"},u=null;function i(){var e;return a?t.when(a):((e=window.c8y&&window.c8y.collections&&window.c8y.collections.trackers)&&t.when(_.values(e))||n.get(c).then(r.getResData)).then(s).then(function(e){return a=e})}function s(r){return e.getSystemOptionValue(o,u).then(function(e){var t=e?[]:r;return _.forOwn(e,function(e,n){n=_.find(r,{name:n});t.push(_.merge(n,e))}),t})}return{list:i,modelByDevice:function(e){var n=e&&e.c8y_Hardware&&e.c8y_Hardware.model||e;return i().then(function(e){return _.find(e,{name:n})})}}}e.$inject=["$http","$q","c8yBase","c8ySettings"],angular.module("c8y.trackerModels").factory("trackerModelsSvc",e)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(e,t,i){var r="gears",a=i("Tracker registration"),c=i("Devices"),n="trackerregistration";e.addNavigation({parent:c,name:a,priority:3e3,icon:r,path:n}),t.when("/".concat(n),{name:a,icon:r,templateUrl:"".concat(":::PLUGIN_PATH:::/views/","index.html")})}e.$inject=["c8yNavigatorProvider","c8yViewsProvider","gettext"],angular.module("c8y.tracking.trackerRegistration",[]).config(e),e.$inject=["c8yNavigatorProvider","c8yViewsProvider","gettext"]}();
1
+ "use strict";!function(){function e(e,t,i){var r="gears",a=i("Tracker registration"),i=i("Devices"),c="trackerregistration";e.addNavigation({parent:i,name:a,priority:3e3,icon:r,path:c}),t.when("/".concat(c),{name:a,icon:r,templateUrl:"".concat(":::PLUGIN_PATH:::/views/","index.html")})}e.$inject=["c8yNavigatorProvider","c8yViewsProvider","gettext"],angular.module("c8y.tracking.trackerRegistration",[]).config(e),e.$inject=["c8yNavigatorProvider","c8yViewsProvider","gettext"]}();
@@ -1 +1 @@
1
- "use strict";!function(){function t(t,d,e,l,f,m,p,r,k,h,n,i,a,y,v,s,o,T){var c,u=[{action:"registerBySMS",name:y("Register new tracker")},{action:"updateBySMS",name:y("Update tracker connection settings")}],g={required:y("This field is required."),pattern:{userPhoneNumber:y("Valid phone number with country prefix required."),trackerPhoneNumber:y("Valid phone number with country prefix required."),trackerIMEI:y("Valid IMEI number required.")}},S="trackerForm",w="registrationProgress",M=[{caption:y("Tracker registration ready.")},{caption:y("Tracker model selected.")},{caption:y("Action selected.")},{caption:y("SMS for initial configuration sent.")},{caption:y("Configuration complete.")}],R=y('Tracker is now waiting for connection, complete the registration in the "Pending tracker registrations" after it connects to the server.'),b={},D={10:/^[0-9]{10}$/,15:/^[0-9]{15}$/},I=/[\s\S]*/g,$={};function N(t){d.newDeviceRequests||(d.newDeviceRequests=[]),function(t,e){_.forEach(t,function(t){_.includes(e,t.id)||d.newDeviceRequests.push(t)})}(t,_.map(d.newDeviceRequests,"id")),d.paging=t.paging}function C(t,e){_.forEach(d.newDeviceRequests,function(t){t.id===e.id&&(t.status=e.status,f.success(y("New device connected.")))})}function E(t,e){if(p.isDevice(e)){var r=e.c8y_Mobile&&e.c8y_Mobile.imei,n=_.find(d.newDeviceRequests,{id:r});if(n){var i=[],a=function(e){return k.list({fragmentType:"c8y_MyTrackersGroup"}).then(function(t){return t.length||t.push(k.create({name:v.getString("My trackers"),c8y_MyTrackersGroup:{}}).then(m.getResData)),t[0]}).then(function(t){return h.addChildAsset(t,e)})}(e).then(_.partial(U,n)),s=T.find(r),o=s&&s.trackerPhoneNumber;o&&_.merge(e,{c8y_Mobile:{msisdn:s.trackerPhoneNumber}});var c=_.find(d.trackerModels,{name:s&&s.trackerModelName}),u=c&&c.communicationMode;if(u&&_.merge(e,{c8y_CommunicationMode:{mode:c.communicationMode}}),o||u){var g=p.save(e);i.push(g)}i.push(a),l.all(i).then(function(){T.cleanByIMEI(r),f.success(y("New tracker added to group."))})}}}function q(t){d.trackerModels=t}function O(t){d.registration={status:t||0,tracker:{},currentTrackerName:"",action:""}}function P(t){a.changeTitle({title:y("Tracker registration"),subtitle:_.isUndefined(t)?"":v.getString("{{qty}} new devices",{qty:t})})}function A(){B(),function(){if(d.forms.trackerForm&&d.forms.trackerForm.trackerIMEI&&""!==d.forms.trackerForm.trackerIMEI.$modelValue){var t=d.forms.trackerForm.trackerIMEI;t.$setValidity("pattern",function(){return!!t.$modelValue.match(F())})}}()}function B(){d.registration.currentTracker=_.find(d.trackerModels,{name:d.registration.currentTrackerName})}function F(){return d.registration.currentTracker?D[d.registration.currentTracker.IMEILength]:I}function x(){0<d.registration.status&&(d.registrationSaveObject={},_.assign(d.registrationSaveObject,d.registration,{timestamp:moment().local()}),e.localStorage.setItem(w,JSON.stringify(d.registrationSaveObject)),delete d.registrationSaveObject)}function j(){delete d.temporaryRegistration,V()}function V(){e.localStorage.removeItem(w)}function G(){var t=d.registration.currentTracker.supportedOperations[d.registration.action].messages;return 0===t.length||1<t.length||t[0].requiresFeedback}function L(){d.newDeviceRequests=null,d.refreshLoading=!0,d.paging.refresh().then(N).finally(function(){d.refreshLoading=!1}),d.paging=null}function H(){var t={id:d.registration.tracker.trackerIMEI};return r.create(t)}function U(t){var e=_.indexOf(d.newDeviceRequests,t);d.newDeviceRequests.splice(e,1)}function J(){O(),d.registration.tracker={userPhoneNumber:"",trackerPassword:"",trackerIMEI:"",trackerPhoneNumber:""},V()}function W(t){d.registration.status=t}function z(){var n=d.registration,t=n.action,e=n.currentTracker.supportedOperations[t].defaults||{};t&&_.forOwn(e,function(t,e){var r=d.forms[S][e];r&&r.$dirty||(n.tracker[e]=t)})}function K(){W(0),f.warning(R),J(),L()}function Q(){var t;return G()?W(3):t=H().then(K),t}$[r.status.PENDING_ACCEPTANCE]=1,$[r.status.WAITING_FOR_CONNECTION]=2,$[r.status.ACCEPTED]=3,d.$on("$destroy",function(){T.commit()}),d.actionButtons=u,d.forms={},d.registration={},d.statuses=M,d.trackerModels=[],d.variables={},d.cancelTempRegistration=function(){j()},d.confirmTempRegistration=function(){_.assign(d.registration,d.temporaryRegistration),j()},d.doesActionRequireFeedback=G,d.getTrackerIMEIPattern=F,d.invalid=angular.bind(m,m.invalid,d.forms,S),d.isThereActionChoice=function(){return!!(d.registration.status<4&&d.registration.currentTracker&&d.registration.currentTracker.supportedOperations.registerBySMS&&d.registration.currentTracker.supportedOperations.updateBySMS)||(d.registration.currentTracker?(d.registration.status<2&&W(2),d.registration.action=d.registration.currentTracker.supportedOperations.registerBySMS?"registerBySMS":"updateBySMS",z()):d.registration.action="",!1)},d.listOrderExpression=[function(t){return $[t.status]},"id"],d.loadNext=function(){d.paging.loading=!0,d.paging.next().then(N).finally(function(){d.paging.loading=!1})},d.newDeviceRequestsStatus=r.status,d.onClickAccept=function(t){r.accept(t).then(function(){!function(t){var e=_.indexOf(d.newDeviceRequests,t);d.newDeviceRequests[e].status=r.status.ACCEPTED}(t),f.success(y("Device registration accepted."))})},d.onClickCancel=function(t){n({title:y("Confirm cancel?"),body:v.getString("Do you really want to cancel registration request for device with the ID {{id}}?",t),status:"cancel"}).then(function(){r.cancel(t).then(function(){U(t),f.success(y("Device registration cancelled."))})})},d.onClickResetRegistrationData=function(){return n({title:y("Confirm registration data reset?"),body:y("Do you really want to clear all tracker registration data?")}).then(J)},d.refresh=L,d.setActionStatus=function(){W(2),z()},d.sendFirstConfigurationBatch=function(){return W(2),_.forEach(["userPhoneNumber","trackerPhoneNumber"],function(t){d.registration.tracker[t]&&(d.registration.tracker[t]=d.registration.tracker[t].replace(/\+/g,"00"))}),d.registration.messages=[],d.tracker=angular.copy(d.registration.tracker),_.forEach(d.registration.currentTracker.supportedOperations[d.registration.action].messages,function(t){d.registration.messages.push(d.$eval(t.text))}),delete d.tracker,T.add(_.assign({},d.registration.tracker,{trackerModelName:d.registration.currentTrackerName})),o.startRegistration(d.registration).then(Q)},d.sendSecondConfigurationBatch=function(){return o.finishRegistration(d.registration).then(H).then(K)},d.shouldDisplayField=function(t){return(2===d.registration.status||3===d.registration.status)&&d.registration.action&&d.registration.currentTracker.supportedOperations[d.registration.action].variables[t]},d.shouldDisplayFirstSendButton=function(){return(2===d.registration.status||3===d.registration.status)&&d.registration.action},d.shouldDisplaySecondSendButton=function(){return 3===d.registration.status&&G()},d.statusIcon=r.statusIcon,d.statusClass=r.statusClass,d.updateTrackerData=function(){B(),d.registration.action=""},d.validationHints=function(t){return m.validationHints(t,g)},r.list(c).then(N),i.addListener(d.$id,"/bootstrap",i.realtimeActions().UPDATE,C),i.start(d.$id,"/bootstrap"),d.$on("$destroy",function(){i.stop(d.$id,"/bootstrap")}),i.addListener(d.$id,"/managedobjects/*",i.realtimeActions().CREATE,E),i.start(d.$id,"/managedobjects/*"),d.$on("$destroy",function(){i.stop(d.$id,"/managedobjects/*")}),s.list().then(q),O(),P(),d.$watch("registration.currentTrackerName",A),d.$watch("registration.status",x),d.$watch("registration.currentTrackerName",x),d.$watch("registration.action",x),d.$watch("registration.tracker",x,!0),d.$watch("newDeviceRequests.length",P),(b=JSON.parse(e.localStorage.getItem(w)))&&b.status&&0<b.status&&(b.timestamp=t("absoluteDate")(b.timestamp),d.temporaryRegistration={},_.assign(d.temporaryRegistration,b))}t.$inject=["$filter","$scope","$window","$q","c8yAlert","c8yBase","c8yDevices","c8yDeviceRegistration","c8yDeviceGroup","c8yInventory","c8yModal","c8yRealtime","c8yTitle","gettext","gettextCatalog","trackerModelsSvc","trackerRegistrationSvc","trackerRegistrationHistorySvc"],angular.module("c8y.tracking.trackerRegistration").controller("trackerRegistrationCtrl",t)}();
1
+ "use strict";!function(){function t(t,u,e,g,d,l,f,r,m,p,n,i,B,k,h,F,a,y){var x=[{action:"registerBySMS",name:k("Register new tracker")},{action:"updateBySMS",name:k("Update tracker connection settings")}],j={required:k("This field is required."),pattern:{userPhoneNumber:k("Valid phone number with country prefix required."),trackerPhoneNumber:k("Valid phone number with country prefix required."),trackerIMEI:k("Valid IMEI number required.")}},s="trackerForm",o="registrationProgress",V=[{caption:k("Tracker registration ready.")},{caption:k("Tracker model selected.")},{caption:k("Action selected.")},{caption:k("SMS for initial configuration sent.")},{caption:k("Configuration complete.")}],G=k('Tracker is now waiting for connection, complete the registration in the "Pending tracker registrations" after it connects to the server.'),c={},L={10:/^[0-9]{10}$/,15:/^[0-9]{15}$/},H=/[\s\S]*/g,v={};function T(t){u.newDeviceRequests||(u.newDeviceRequests=[]);var e,r=_.map(u.newDeviceRequests,"id");e=r,_.forEach(t,function(t){_.includes(e,t.id)||u.newDeviceRequests.push(t)}),u.paging=t.paging}function U(t,e){_.forEach(u.newDeviceRequests,function(t){t.id===e.id&&(t.status=e.status,d.success(k("New device connected.")))})}function J(t,e){var r,n,i,a,s,o,c;f.isDevice(e)&&(r=e.c8y_Mobile&&e.c8y_Mobile.imei,i=_.find(u.newDeviceRequests,{id:r}))&&(n=[],c=e,i=m.list({fragmentType:"c8y_MyTrackersGroup"}).then(function(t){return t.length||t.push(m.create({name:h.getString("My trackers"),c8y_MyTrackersGroup:{}}).then(l.getResData)),t[0]}).then(function(t){return p.addChildAsset(t,c)}).then(_.partial(E,i)),(a=(o=y.find(r))&&o.trackerPhoneNumber)&&_.merge(e,{c8y_Mobile:{msisdn:o.trackerPhoneNumber}}),(s=(o=_.find(u.trackerModels,{name:o&&o.trackerModelName}))&&o.communicationMode)&&_.merge(e,{c8y_CommunicationMode:{mode:o.communicationMode}}),(a||s)&&(o=f.save(e),n.push(o)),n.push(i),g.all(n).then(function(){y.cleanByIMEI(r),d.success(k("New tracker added to group."))}))}function W(t){u.trackerModels=t}function S(t){u.registration={status:t||0,tracker:{},currentTrackerName:"",action:""}}function w(t){B.changeTitle({title:k("Tracker registration"),subtitle:_.isUndefined(t)?"":h.getString("{{qty}} new devices",{qty:t})})}function z(){var t;M(),u.forms.trackerForm&&u.forms.trackerForm.trackerIMEI&&""!==u.forms.trackerForm.trackerIMEI.$modelValue&&(t=u.forms.trackerForm.trackerIMEI).$setValidity("pattern",function(){return!!t.$modelValue.match(R())})}function M(){u.registration.currentTracker=_.find(u.trackerModels,{name:u.registration.currentTrackerName})}function R(){return u.registration.currentTracker?L[u.registration.currentTracker.IMEILength]:H}function b(){0<u.registration.status&&(u.registrationSaveObject={},_.assign(u.registrationSaveObject,u.registration,{timestamp:moment().local()}),e.localStorage.setItem(o,JSON.stringify(u.registrationSaveObject)),delete u.registrationSaveObject)}function D(){delete u.temporaryRegistration,I()}function I(){e.localStorage.removeItem(o)}function $(){var t=u.registration.currentTracker.supportedOperations[u.registration.action].messages;return 0===t.length||1<t.length||t[0].requiresFeedback}function N(){u.newDeviceRequests=null,u.refreshLoading=!0,u.paging.refresh().then(T).finally(function(){u.refreshLoading=!1}),u.paging=null}function C(){var t={id:u.registration.tracker.trackerIMEI};return r.create(t)}function E(t){t=_.indexOf(u.newDeviceRequests,t);u.newDeviceRequests.splice(t,1)}function q(){S(),u.registration.tracker={userPhoneNumber:"",trackerPassword:"",trackerIMEI:"",trackerPhoneNumber:""},I()}function O(t){u.registration.status=t}function P(){var n=u.registration,t=n.action,e=n.currentTracker.supportedOperations[t].defaults||{};t&&_.forOwn(e,function(t,e){var r=u.forms[s][e];r&&r.$dirty||(n.tracker[e]=t)})}function A(){O(0),d.warning(G),q(),N()}function K(){var t;return $()?O(3):t=C().then(A),t}v[r.status.PENDING_ACCEPTANCE]=1,v[r.status.WAITING_FOR_CONNECTION]=2,v[r.status.ACCEPTED]=3,u.$on("$destroy",function(){y.commit()}),u.actionButtons=x,u.forms={},u.registration={},u.statuses=V,u.trackerModels=[],u.variables={},u.cancelTempRegistration=function(){D()},u.confirmTempRegistration=function(){_.assign(u.registration,u.temporaryRegistration),D()},u.doesActionRequireFeedback=$,u.getTrackerIMEIPattern=R,u.invalid=angular.bind(l,l.invalid,u.forms,s),u.isThereActionChoice=function(){return!!(u.registration.status<4&&u.registration.currentTracker&&u.registration.currentTracker.supportedOperations.registerBySMS&&u.registration.currentTracker.supportedOperations.updateBySMS)||(u.registration.currentTracker?(u.registration.status<2&&O(2),u.registration.action=u.registration.currentTracker.supportedOperations.registerBySMS?"registerBySMS":"updateBySMS",P()):u.registration.action="",!1)},u.listOrderExpression=[function(t){return v[t.status]},"id"],u.loadNext=function(){u.paging.loading=!0,u.paging.next().then(T).finally(function(){u.paging.loading=!1})},u.newDeviceRequestsStatus=r.status,u.onClickAccept=function(e){r.accept(e).then(function(){var t;t=e,t=_.indexOf(u.newDeviceRequests,e),u.newDeviceRequests[t].status=r.status.ACCEPTED,d.success(k("Device registration accepted."))})},u.onClickCancel=function(t){n({title:k("Confirm cancel?"),body:h.getString("Do you really want to cancel registration request for device with the ID {{id}}?",t),status:"cancel"}).then(function(){r.cancel(t).then(function(){E(t),d.success(k("Device registration cancelled."))})})},u.onClickResetRegistrationData=function(){return n({title:k("Confirm registration data reset?"),body:k("Do you really want to clear all tracker registration data?")}).then(q)},u.refresh=N,u.setActionStatus=function(){O(2),P()},u.sendFirstConfigurationBatch=function(){return O(2),_.forEach(["userPhoneNumber","trackerPhoneNumber"],function(t){u.registration.tracker[t]&&(u.registration.tracker[t]=u.registration.tracker[t].replace(/\+/g,"00"))}),u.registration.messages=[],u.tracker=angular.copy(u.registration.tracker),_.forEach(u.registration.currentTracker.supportedOperations[u.registration.action].messages,function(t){u.registration.messages.push(u.$eval(t.text))}),delete u.tracker,y.add(_.assign({},u.registration.tracker,{trackerModelName:u.registration.currentTrackerName})),a.startRegistration(u.registration).then(K)},u.sendSecondConfigurationBatch=function(){return a.finishRegistration(u.registration).then(C).then(A)},u.shouldDisplayField=function(t){return(2===u.registration.status||3===u.registration.status)&&u.registration.action&&u.registration.currentTracker.supportedOperations[u.registration.action].variables[t]},u.shouldDisplayFirstSendButton=function(){return(2===u.registration.status||3===u.registration.status)&&u.registration.action},u.shouldDisplaySecondSendButton=function(){return 3===u.registration.status&&$()},u.statusIcon=r.statusIcon,u.statusClass=r.statusClass,u.updateTrackerData=function(){M(),u.registration.action=""},u.validationHints=function(t){return l.validationHints(t,j)},r.list(void 0).then(T),i.addListener(u.$id,"/bootstrap",i.realtimeActions().UPDATE,U),i.start(u.$id,"/bootstrap"),u.$on("$destroy",function(){i.stop(u.$id,"/bootstrap")}),i.addListener(u.$id,"/managedobjects/*",i.realtimeActions().CREATE,J),i.start(u.$id,"/managedobjects/*"),u.$on("$destroy",function(){i.stop(u.$id,"/managedobjects/*")}),F.list().then(W),S(),w(),u.$watch("registration.currentTrackerName",z),u.$watch("registration.status",b),u.$watch("registration.currentTrackerName",b),u.$watch("registration.action",b),u.$watch("registration.tracker",b,!0),u.$watch("newDeviceRequests.length",w),(c=JSON.parse(e.localStorage.getItem(o)))&&c.status&&0<c.status&&(c.timestamp=t("absoluteDate")(c.timestamp),u.temporaryRegistration={},_.assign(u.temporaryRegistration,c))}t.$inject=["$filter","$scope","$window","$q","c8yAlert","c8yBase","c8yDevices","c8yDeviceRegistration","c8yDeviceGroup","c8yInventory","c8yModal","c8yRealtime","c8yTitle","gettext","gettextCatalog","trackerModelsSvc","trackerRegistrationSvc","trackerRegistrationHistorySvc"],angular.module("c8y.tracking.trackerRegistration").controller("trackerRegistrationCtrl",t)}();
@@ -1 +1 @@
1
- "use strict";!function(){function t(t){var r="registrationDataHistory",n=500,o=1,e="month",i={history:[]},c={};function s(){t.get(r).then(function(t){i=t||i})}return s(),c.commit=function(){!function(){var r=moment().local().subtract(o,e);_.remove(i.history,function(t){return moment(t.timestamp).isBefore(r)})}(),t.set(r,i)},c.pull=s,c.clearHistory=function(){i={history:[]}},c.add=function(t){!function(t){_.merge(t,{timestamp:moment().local().format()})}(t),i.history.push(function(t){var r=_.cloneDeep(t);return delete r.trackerPassword,r}(t)),function(){var t=i.history.length;n<t&&(i.history=_.drop(i.history,t-n))}()},c.list=function(){return i.history},c.find=function(r){return _.findLast(i.history,function(t){return t.trackerIMEI===r})},c.cleanByIMEI=function(r){_.remove(i.history,function(t){return t.trackerIMEI===r})},c}t.$inject=["c8yUserPreferences"],angular.module("c8y.tracking.trackerRegistration").factory("trackerRegistrationHistorySvc",t)}();
1
+ "use strict";!function(){function t(t){var n="registrationDataHistory",r=500,e=1,o="month",i={history:[]},c={};function s(){t.get(n).then(function(t){i=t||i})}return s(),c.commit=function(){var r;r=moment().local().subtract(e,o),_.remove(i.history,function(t){return moment(t.timestamp).isBefore(r)}),t.set(n,i)},c.pull=s,c.clearHistory=function(){i={history:[]}},c.add=function(t){_.merge(t,{timestamp:moment().local().format()}),i.history.push((t=t,delete(t=_.cloneDeep(t)).trackerPassword,t)),t=i.history.length,r<t&&(i.history=_.drop(i.history,t-r))},c.list=function(){return i.history},c.find=function(r){return _.findLast(i.history,function(t){return t.trackerIMEI===r})},c.cleanByIMEI=function(r){_.remove(i.history,function(t){return t.trackerIMEI===r})},c}t.$inject=["c8yUserPreferences"],angular.module("c8y.tracking.trackerRegistration").factory("trackerRegistrationHistorySvc",t)}();
@@ -1 +1 @@
1
- "use strict";angular.module("c8y.tracking.plugin",[]).config(["$routeProvider","gettext","c8yMapConfigProvider","c8yGeofenceLayer","c8yConfig","MARKER_TEMPLATE",function(e,r,a,i,n,o){var t="<div ng-include=\"'".concat(o,"'\"></div>");a.addOverlay("geofence",i);var c={markerTemplate:t,realtime:!0,legend:!0,navigation:{name:r("Map"),priority:1e4,path:"devicemap",icon:"map-marker"}};n.smartRules.exclude=["calculateEnergyConsumption","onMissingMeasurementsCreateAlarm","onAlarmExecuteOperation","explicitThresholdSmartRule"],_.assign(n.deviceListMap,c),_.assign(n.tracking,{realtime:!0,legend:!0,eventText:!0}),e.when("/",{redirectTo:"/devicemap"})}]).run(["c8yTabs",function(e){e.removeForAll("/group/:groupId/info"),e.removeForAll("/group/:groupId/permissions")}]);
1
+ "use strict";angular.module("c8y.tracking.plugin",[]).config(["$routeProvider","gettext","c8yMapConfigProvider","c8yGeofenceLayer","c8yConfig","MARKER_TEMPLATE",function(e,r,i,n,a,o){o="<div ng-include=\"'".concat(o,"'\"></div>"),i.addOverlay("geofence",n),i={markerTemplate:o,realtime:!0,legend:!0,navigation:{name:r("Map"),priority:1e4,path:"devicemap",icon:"map-marker"}};a.smartRules.exclude=["calculateEnergyConsumption","onMissingMeasurementsCreateAlarm","onAlarmExecuteOperation","explicitThresholdSmartRule"],_.assign(a.deviceListMap,i),_.assign(a.tracking,{realtime:!0,legend:!0,eventText:!0}),e.when("/",{redirectTo:"/devicemap"})}]).run(["c8yTabs",function(e){e.removeForAll("/group/:groupId/info"),e.removeForAll("/group/:groupId/permissions")}]);
@@ -1 +1 @@
1
- "use strict";!function(){function e(e,n,t,i,a,c,o,p){var r=this;function s(e){t.detail(e).then(n.getResData).then(function(e){r.device=e})}function d(e){return _.isEmpty(e)?"":o.humanizeMapping(e)}function u(n){c.openSelector({selectSingle:!0,managedObject:r.device}).then(function(e){r.mapping[n]=e})}function g(n){a.openFieldbusSelector({device:r.device}).then(function(e){r.mapping[n]=e})}function l(n){i.edit(n).then(function(e){n.config=e})}function m(){var i=e.$parent.$parent.forms.componentForm;r.hasInvalidMapping=!1,_.forOwn(r.mapping,function(e,n){var t=v(n);r.hasInvalidMapping=r.hasInvalidMapping||t,i.$setValidity("statesMapping-".concat(n),!t)})}function v(e){return _.isEmpty(r.mapping[e])}_.assign(r,{$onInit:function(){_.assign(r,{humanizeProperty:d,selectDevicePropertyForState:u,selectFieldbusPropertyForState:g,editComputedProperty:l,isMappingInvalidForState:v}),s(r.deviceId),r.states={red:p("red"),yellow:p("yellow"),green:p("green")},r.mapping||(r.mapping=_.reduce(_.keys(r.states),function(e,n){return e[n]={},e},{})),e.$watch("vm.mapping",m,!0)},$onChanges:function(e){var n=e.deviceId&&e.deviceId.currentValue;n&&s(n)}})}e.$inject=["$scope","c8yBase","c8yInventory","c8yComputedProperties","c8yDeviceDatabase","SchemaPropertiesSvc","ScadaWidgetUtilSvc","gettext"],angular.module("c8y.trafficLightWidget").component("statesMapping",{templateUrl:":::PLUGIN_PATH:::/states-mapping.html",bindings:{deviceId:"<",mapping:"="},controller:e,controllerAs:"vm"})}();
1
+ "use strict";!function(){function e(e,n,t,i,a,c,o,p){var r=this;function s(e){t.detail(e).then(n.getResData).then(function(e){r.device=e})}function d(e){return _.isEmpty(e)?"":o.humanizeMapping(e)}function u(n){c.openSelector({selectSingle:!0,managedObject:r.device}).then(function(e){r.mapping[n]=e})}function g(n){a.openFieldbusSelector({device:r.device}).then(function(e){r.mapping[n]=e})}function l(n){i.edit(n).then(function(e){n.config=e})}function m(){var i=e.$parent.$parent.forms.componentForm;r.hasInvalidMapping=!1,_.forOwn(r.mapping,function(e,n){var t=f(n);r.hasInvalidMapping=r.hasInvalidMapping||t,i.$setValidity("statesMapping-".concat(n),!t)})}function f(e){return _.isEmpty(r.mapping[e])}_.assign(r,{$onInit:function(){_.assign(r,{humanizeProperty:d,selectDevicePropertyForState:u,selectFieldbusPropertyForState:g,editComputedProperty:l,isMappingInvalidForState:f}),s(r.deviceId),r.states={red:p("red"),yellow:p("yellow"),green:p("green")},r.mapping||(r.mapping=_.reduce(_.keys(r.states),function(e,n){return e[n]={},e},{})),e.$watch("vm.mapping",m,!0)},$onChanges:function(e){e=e.deviceId&&e.deviceId.currentValue;e&&s(e)}})}e.$inject=["$scope","c8yBase","c8yInventory","c8yComputedProperties","c8yDeviceDatabase","SchemaPropertiesSvc","ScadaWidgetUtilSvc","gettext"],angular.module("c8y.trafficLightWidget").component("statesMapping",{templateUrl:":::PLUGIN_PATH:::/states-mapping.html",bindings:{deviceId:"<",mapping:"="},controller:e,controllerAs:"vm"})}();
@@ -1 +1 @@
1
- "use strict";!function(){function t(t,i,n,c){var a=this;function e(){i.detailRealtime(a.config.device.id,t).then(function(t){a.device=t,function(){var t=a.device,i=a.config.mapping;t&&i&&n.attach(t,_.values(i))}()})}function o(){var e=a.device,t=a.config.mapping,i={};return e&&t&&(i=_.transform(t,function(t,i,n){t[n]=Boolean(c.getRawValueForMapping(e,i))},{})),i}_.assign(a,{$onInit:function(){_.assign(a,{updateStateValues:o}),t.$watch("vm.config",e,!0)}})}t.$inject=["$scope","c8yInventory","c8yComputedProperties","ScadaWidgetUtilSvc"],angular.module("c8y.trafficLightWidget").component("trafficLightWidget",{templateUrl:":::PLUGIN_PATH:::/traffic-light.html",bindings:{config:"<"},controller:t,controllerAs:"vm"})}();
1
+ "use strict";!function(){function t(t,i,n,c){var a=this;function e(){i.detailRealtime(a.config.device.id,t).then(function(t){var i;a.device=t,t=a.device,i=a.config.mapping,t&&i&&n.attach(t,_.values(i))})}function o(){var e=a.device,t=a.config.mapping,i={};return i=e&&t?_.transform(t,function(t,i,n){t[n]=Boolean(c.getRawValueForMapping(e,i))},{}):i}_.assign(a,{$onInit:function(){_.assign(a,{updateStateValues:o}),t.$watch("vm.config",e,!0)}})}t.$inject=["$scope","c8yInventory","c8yComputedProperties","ScadaWidgetUtilSvc"],angular.module("c8y.trafficLightWidget").component("trafficLightWidget",{templateUrl:":::PLUGIN_PATH:::/traffic-light.html",bindings:{config:"<"},controller:t,controllerAs:"vm"})}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(t,e,o){var i=this,r=[],n=[];function l(){r=_.clone((i.assignedRoles||{}).roles)||[]}function s(e){return _(e).sortBy(y).map(y).value().join(", ")}function c(e){return _.some(r,{id:e.id})||u(e)}function u(e){return _.some(n,{id:e.id})}function d(){return e("filter")(i.inventoryRoles,i.roleTextFilter)}function a(){var e=d().filter(function(e){return f(e)});return _.every(e,c)}function g(){return r.filter(function(e){return f(e)})}function f(e){return!i.ownerAllowedRoles||_.some(i.ownerAllowedRoles,{id:e.id})}function m(){var e=_.sortBy(_.map((i.assignedRoles||{}).roles,"id")),n=_.sortBy(_.map(r,"id"));i.isUnchanged=_.isEqual(e,n)}function y(e){return o.getString(e.name)}_.assign(i,{displayTextAssigned:function(){return s((i.assignedRoles||{}).roles)},displayTextInherited:function(){return s(n)},$onChanges:function(e){e.assignedRoles&&l();e.inheritedRoles&&(n=i.inheritedRoles)},toggle:function(e){c(e)?_.remove(r,{id:e.id}):(r.push(e),r=_.uniqBy(r,"id"));m()},toggleSelectAll:function(){a()?r.length=0:r=_.reject(d(),u);m()},allSelected:a,isSelected:c,isInherited:u,filteredAssignedRoles:g,apply:function(){var e=g();i.onApply({roles:e}),i.isDropDownOpen=!1},onToggleDropdown:function(e){e||(l(),i.isUnchanged=!0)},isAllowedByOwner:f,isUnchanged:!0,getFormattedInventoryRoleDescription:_.memoize(function(e){var n=o.getString(e.trim());return t.trustAsHtml("\n <div>\n ".concat(n,"\n </div>\n "))}),translateName:y})}e.$inject=["$sce","$filter","gettextCatalog"],angular.module("c8y.userRoles").component("c8yInventoryRoleSelector",{bindings:{assignedRoles:"<",inheritedRoles:"<",inventoryRoles:"<",ownerAllowedRoles:"<",onApply:"&"},templateUrl:":::PLUGIN_PATH:::/inventoryRoleSelector/inventoryRoleSelector.html",controller:e,controllerAs:"vm"})}();
1
+ "use strict";!function(){function e(n,e,t){var o=this,i=[],r=[];function l(){i=_.clone((o.assignedRoles||{}).roles)||[]}function s(e){return _(e).sortBy(y).map(y).value().join(", ")}function c(e){return _.some(i,{id:e.id})||d(e)}function d(e){return _.some(r,{id:e.id})}function u(){return e("filter")(o.inventoryRoles,o.roleTextFilter)}function a(){var e=u().filter(f);return _.every(e,c)}function g(){return i.filter(f)}function f(e){return!o.ownerAllowedRoles||_.some(o.ownerAllowedRoles,{id:e.id})}function m(){var e=_.sortBy(_.map((o.assignedRoles||{}).roles,"id")),n=_.sortBy(_.map(i,"id"));o.isUnchanged=_.isEqual(e,n)}function y(e){return t.getString(e.name)}_.assign(o,{displayTextAssigned:function(){return s((o.assignedRoles||{}).roles)},displayTextInherited:function(){return s(r)},$onChanges:function(e){e.assignedRoles&&l();e.inheritedRoles&&(r=o.inheritedRoles)},toggle:function(e){c(e)?_.remove(i,{id:e.id}):(i.push(e),i=_.uniqBy(i,"id"));m()},toggleSelectAll:function(){a()?i.length=0:i=_.reject(u(),d);m()},allSelected:a,isSelected:c,isInherited:d,filteredAssignedRoles:g,apply:function(){var e=g();o.onApply({roles:e}),o.isDropDownOpen=!1},onToggleDropdown:function(e){e||(l(),o.isUnchanged=!0)},isAllowedByOwner:f,isUnchanged:!0,getFormattedInventoryRoleDescription:_.memoize(function(e){e=t.getString(e.trim());return n.trustAsHtml("\n <div>\n ".concat(e,"\n </div>\n "))}),translateName:y})}e.$inject=["$sce","$filter","gettextCatalog"],angular.module("c8y.userRoles").component("c8yInventoryRoleSelector",{bindings:{assignedRoles:"<",inheritedRoles:"<",inventoryRoles:"<",ownerAllowedRoles:"<",onApply:"&"},templateUrl:":::PLUGIN_PATH:::/inventoryRoleSelector/inventoryRoleSelector.html",controller:e,controllerAs:"vm"})}();
@@ -1 +1 @@
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(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),t.push.apply(t,n)}return t}function _objectSpread(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(t),!0).forEach(function(e){_defineProperty(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(e){var r=_toPrimitive(e,"string");return"symbol"===_typeof(r)?r:String(r)}function _toPrimitive(e,r){if("object"!==_typeof(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0===t)return("string"===r?String:Number)(e);var n=t.call(e,r||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}function _slicedToArray(e,r){return _arrayWithHoles(e)||_iterableToArrayLimit(e,r)||_unsupportedIterableToArray(e,r)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){if(e){if("string"==typeof e)return _arrayLikeToArray(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function _iterableToArrayLimit(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i,s,l=[],a=!0,c=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;a=!1}else for(;!(a=(n=i.call(t)).done)&&(l.push(n.value),l.length!==r);a=!0);}catch(e){c=!0,o=e}finally{try{if(!a&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(c)throw o}}return l}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(e,r,t,o,i,n,s,l){var a=this;function c(){r.listInventoryRoles(a.userId).then(t.getResData).then(function(e){a.assignedRoles=_.keyBy(e.inventoryAssignments,"managedObject")}),r.detail(a.userId).then(t.getResData).then(function(e){a.user=e,a.user.owner?r.listInventoryRoles(a.user.owner).then(t.getResData).then(function(e){a.ownerAssignedRoles=_.keyBy(e.inventoryAssignments,"managedObject"),_.isEmpty(a.ownerAssignedRoles)&&(a.displayNoOwnerRolesAlert=!0),a.failedToFetchOwnerInventoryRoles=!1}).catch(function(){a.failedToFetchOwnerInventoryRoles=!0}):a.failedToFetchOwnerInventoryRoles=!1})}function u(){c(),s.success(l.getPlural(y(),"Inventory role updated","Inventory roles updated",{}))}function y(){return _.filter(a.assignedRoles,"isModified").length}function f(e){var r="replace"===e.process,t=e.roles,n=_.map(a.assignedRoles);return o.copyUserRoles(t,n,a.userId,r).then(c).then(i.successUserRolesCopy)}_.assign(a,{$onChange:function(e){e.user&&c()},onChangeRoles:function(e){var r=e.roles,t=e.managedObjectId;a.assignedRoles[t]=a.assignedRoles[t]||{},_.assign(a.assignedRoles[t],{managedObject:t,roles:r,isModified:!0}),a.assignedRoles=_objectSpread({},a.assignedRoles)},onSaveInventoryRoles:function(){o.onSaveInventoryRoles(a.userId,a.assignedRoles).then(u)},copyRoles:function(){i.copyFromUserDialog(a.userId).then(f)},loadAssignedRoles:c,isUnchanged:function(){return 0===y()},pageSize:20,scrollToTop:function(){var e=_slicedToArray(angular.element(document.querySelector("#inventory-roles-container")),1)[0];e&&e.scrollTo(0,0)},helpLink:n.getUserGuideLink(_.get(i.STRINGS,"LINKS.ROLES_INVENTORY")),displayNoOwnerRolesAlert:!1,failedToFetchOwnerInventoryRoles:null}),c()}e.$inject=["$q","c8yUser","c8yBase","c8yUserInventoryRoles","c8yUserRolesUi","c8yDocs","c8yAlert","gettextCatalog"],angular.module("c8y.userRoles").component("c8yUserInventoryRolesTab",{templateUrl:":::PLUGIN_PATH:::/inventoryRolesTab/inventoryRolesTab.html",controllerAs:"vm",controller:e,bindings:{userId:"<"}})}();
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(r,e){var t,n=Object.keys(r);return Object.getOwnPropertySymbols&&(t=Object.getOwnPropertySymbols(r),e&&(t=t.filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})),n.push.apply(n,t)),n}function _objectSpread(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(t),!0).forEach(function(e){_defineProperty(r,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))})}return r}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,r){if("object"!==_typeof(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0===t)return("string"===r?String:Number)(e);t=t.call(e,r||"default");if("object"!==_typeof(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}function _slicedToArray(e,r){return _arrayWithHoles(e)||_iterableToArrayLimit(e,r)||_unsupportedIterableToArray(e,r)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){var t;if(e)return"string"==typeof e?_arrayLikeToArray(e,r):"Map"===(t="Object"===(t=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:t)||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function _iterableToArrayLimit(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i,s,l=[],a=!0,c=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;a=!1}else for(;!(a=(n=i.call(t)).done)&&(l.push(n.value),l.length!==r);a=!0);}catch(e){c=!0,o=e}finally{try{if(!a&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(c)throw o}}return l}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(e,r,t,n,o,i,s,l){var a=this;function c(){r.listInventoryRoles(a.userId).then(t.getResData).then(function(e){a.assignedRoles=_.keyBy(e.inventoryAssignments,"managedObject")}),r.detail(a.userId).then(t.getResData).then(function(e){a.user=e,a.user.owner?r.listInventoryRoles(a.user.owner).then(t.getResData).then(function(e){a.ownerAssignedRoles=_.keyBy(e.inventoryAssignments,"managedObject"),_.isEmpty(a.ownerAssignedRoles)&&(a.displayNoOwnerRolesAlert=!0),a.failedToFetchOwnerInventoryRoles=!1}).catch(function(){a.failedToFetchOwnerInventoryRoles=!0}):a.failedToFetchOwnerInventoryRoles=!1})}function u(){c(),s.success(l.getPlural(y(),"Inventory role updated","Inventory roles updated",{}))}function y(){return _.filter(a.assignedRoles,"isModified").length}function f(e){var r="replace"===e.process,e=e.roles,t=_.map(a.assignedRoles);return n.copyUserRoles(e,t,a.userId,r).then(c).then(o.successUserRolesCopy)}_.assign(a,{$onChange:function(e){e.user&&c()},onChangeRoles:function(e){var r=e.roles,e=e.managedObjectId;a.assignedRoles[e]=a.assignedRoles[e]||{},_.assign(a.assignedRoles[e],{managedObject:e,roles:r,isModified:!0}),a.assignedRoles=_objectSpread({},a.assignedRoles)},onSaveInventoryRoles:function(){n.onSaveInventoryRoles(a.userId,a.assignedRoles).then(u)},copyRoles:function(){o.copyFromUserDialog(a.userId).then(f)},loadAssignedRoles:c,isUnchanged:function(){return 0===y()},pageSize:20,scrollToTop:function(){var e=_slicedToArray(angular.element(document.querySelector("#inventory-roles-container")),1)[0];e&&e.scrollTo(0,0)},helpLink:i.getUserGuideLink(_.get(o.STRINGS,"LINKS.ROLES_INVENTORY")),displayNoOwnerRolesAlert:!1,failedToFetchOwnerInventoryRoles:null}),c()}e.$inject=["$q","c8yUser","c8yBase","c8yUserInventoryRoles","c8yUserRolesUi","c8yDocs","c8yAlert","gettextCatalog"],angular.module("c8y.userRoles").component("c8yUserInventoryRolesTab",{templateUrl:":::PLUGIN_PATH:::/inventoryRolesTab/inventoryRolesTab.html",controllerAs:"vm",controller:e,bindings:{userId:"<"}})}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(n,e,o){var s,t=this;_.assign(t,{filterAsset:function(e){return!t.ownerAllAssignedRoles||_.get(t.ownerAllAssignedRoles,[e.id,"length"])},onApply:function(e,n){return t.onChangeRoles({managedObjectId:n,roles:e})},$onChanges:function(e){(e.assignedRoles||e.ownerAssignedRoles)&&l.then(u);e.expandGroups&&t.expandGroups&&n.expandAll(s,i)},loadChildren:function(e){e.isOpened?(e._subGroups=[],e.isOpened=!1,i()):(n.loadChildren(e).then(i),e.isOpened=!0)},title:function(e){var n=e._subGroups,s=o.getString("Click to fetch subgroups");Array.isArray(n)&&e.isOpened&&(s=0<n.length?o.getPlural(n.length,"1 subgroup","{{$count}} subgroups",{}):o.getString("No subgroups"));return s}});var r,l=(r=t.user.owner,n.listRootGroups({onlyRootsUser:r}).then(function(e){s=e,i()}));function i(){t.flatAssetTree=n.flatTree(s),u()}function u(){if(t.assignedRoles&&(t.inheritedRoles=a(t.flatAssetTree,t.assignedRoles)),t.ownerAssignedRoles){var e=a(t.flatAssetTree,t.ownerAssignedRoles);t.ownerAllAssignedRoles=_.mergeWith(e,t.ownerAssignedRoles,function(e,n){return n?e?_.uniqBy(e.concat(n.roles),"id"):n.roles:e})}}function a(e,s){return _.reduce(e,function(e,n){return e[n.id]=_(n._parentGroups).map(function(e){return _.get(s,e.id)}).filter(_.identity).map(_.property("roles")).flatten().uniqBy("id").value(),e},{})}e.list().then(function(e){t.inventoryRoles=e})}e.$inject=["c8yUserInventoryRoles","c8yRoles","gettextCatalog"],angular.module("c8y.userRoles").component("c8yRolesAssetTree",{templateUrl:":::PLUGIN_PATH:::/rolesAssetTree/rolesAssetTree.html",controllerAs:"vm",controller:e,bindings:{user:"<",searchFilter:"<",assignedRoles:"<",ownerAssignedRoles:"<",expandGroups:"<",pageSize:"<",paginationOffset:"<",onChangeRoles:"&",onChangeItemCount:"&"}})}();
1
+ "use strict";!function(){function e(n,e,o){var s,t,r=this,l=(_.assign(r,{filterAsset:function(e){return!r.ownerAllAssignedRoles||_.get(r.ownerAllAssignedRoles,[e.id,"length"])},onApply:function(e,n){return r.onChangeRoles({managedObjectId:n,roles:e})},$onChanges:function(e){(e.assignedRoles||e.ownerAssignedRoles)&&l.then(u);e.expandGroups&&r.expandGroups&&n.expandAll(s,i)},loadChildren:function(e){e.isOpened?(e._subGroups=[],e.isOpened=!1,i()):(n.loadChildren(e).then(i),e.isOpened=!0)},title:function(e){var n=e._subGroups,s=o.getString("Click to fetch subgroups");Array.isArray(n)&&e.isOpened&&(s=0<n.length?o.getPlural(n.length,"1 subgroup","{{$count}} subgroups",{}):o.getString("No subgroups"));return s}}),t=r.user.owner,n.listRootGroups({onlyRootsUser:t}).then(function(e){s=e,i()}));function i(){r.flatAssetTree=n.flatTree(s),u()}function u(){var e;r.assignedRoles&&(r.inheritedRoles=a(r.flatAssetTree,r.assignedRoles)),r.ownerAssignedRoles&&(e=a(r.flatAssetTree,r.ownerAssignedRoles),r.ownerAllAssignedRoles=_.mergeWith(e,r.ownerAssignedRoles,function(e,n){return n?e?_.uniqBy(e.concat(n.roles),"id"):n.roles:e}))}function a(e,s){return _.reduce(e,function(e,n){return e[n.id]=_(n._parentGroups).map(function(e){return _.get(s,e.id)}).filter(_.identity).map(_.property("roles")).flatten().uniqBy("id").value(),e},{})}e.list().then(function(e){r.inventoryRoles=e})}e.$inject=["c8yUserInventoryRoles","c8yRoles","gettextCatalog"],angular.module("c8y.userRoles").component("c8yRolesAssetTree",{templateUrl:":::PLUGIN_PATH:::/rolesAssetTree/rolesAssetTree.html",controllerAs:"vm",controller:e,bindings:{user:"<",searchFilter:"<",assignedRoles:"<",ownerAssignedRoles:"<",expandGroups:"<",pageSize:"<",paginationOffset:"<",onChangeRoles:"&",onChangeItemCount:"&"}})}();
@@ -1 +1 @@
1
- "use strict";function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,e){if(r){if("string"==typeof r)return _arrayLikeToArray(r,e);var n=Object.prototype.toString.call(r).slice(8,-1);return"Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(r,e):void 0}}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,e){(null==e||e>r.length)&&(e=r.length);for(var n=0,t=new Array(e);n<e;n++)t[n]=r[n];return t}!function(){function r(l,s,t){return{flatTree:function n(r,e,t){var o=e||0;var a=t||[];if(15<o)throw new Error("Exceeded maximum level of nesting");return _.reduce(r,function(r,e){return e._depth=o,r.push(e),n(e._subGroups,o+1,r)},a)},copyUserRoles:function(r,i,u,e){var n,t=l.when();n=e?(t=l.all(_.map(i,function(r){return s.removeInventoryRoles(u,r.id)})),function(){return l.all(_.map(r,function(r){var e=_.map(r.roles,function(r){return{id:r.id}});return s.assignInventoryRoles(u,r.managedObject,e)}))}):function(){return l.all(_.map(r,function(r){var e=r.managedObject,n=_.find(i,{managedObject:e}),t=_.get(n,"roles"),o=_.get(n,"id"),a=_(_.union(r.roles,t)).uniqBy("id").map(function(r){return{id:r.id}}).value();return o?s.updateInventoryRoles(u,o,a):s.assignInventoryRoles(u,e,a)}))};return t.then(n)},onSaveInventoryRoles:function(e,n){var r=_.filter(n,"isModified").map(function(r){return function(r,e,n){var t,o=(n[e.managedObject]||{}).id;o?t=e.roles.length?s.updateInventoryRoles(r,o,e.roles):s.removeInventoryRoles(r,o):e.roles.length&&(t=s.assignInventoryRoles(r,e.managedObject,e.roles));return t||l.when()}(e,r,n)});return l.all(r)},listRootGroups:function(){var r=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).onlyRootsUser,e={query:"$filter=(".concat("has('c8y_IsDeviceGroup')",")$orderby=name"),onlyRoots:!0,onlyRootsUser:r,withChildren:!1};return t.listAll(e)},loadChildren:i,expandAll:function(r,n){var t=l.defer(),o=0,a=Array.from(r);return function e(){if(o<=5){var r=a.shift();r?(o++,i(r).then(function(r){n&&n(),a.push.apply(a,_toConsumableArray(r)),o--,e()},t.reject),e()):0===o&&t.resolve()}}(),t.promise}};function i(e){var r={query:"$filter=((has('c8y_IsDeviceGroup')) and bygroupid(".concat(e.id,"))"),pageSize:2e3,withChildren:!1,withTotalPages:!1},n=[].concat(_toConsumableArray(e._parentGroups||[]),[e]);return t.list(r).then(function(r){return r.forEach(function(r){r._parentGroups=Array.from(n)}),e._subGroups=_.sortBy(r,"name"),e._subGroups})}}r.$inject=["$q","c8yUser","c8yInventory"],angular.module("c8y.userRoles").factory("c8yUserInventoryRoles",r)}();
1
+ "use strict";function _toConsumableArray(r){return _arrayWithoutHoles(r)||_iterableToArray(r)||_unsupportedIterableToArray(r)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(r,e){var n;if(r)return"string"==typeof r?_arrayLikeToArray(r,e):"Map"===(n="Object"===(n=Object.prototype.toString.call(r).slice(8,-1))&&r.constructor?r.constructor.name:n)||"Set"===n?Array.from(r):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(r,e):void 0}function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function _arrayWithoutHoles(r){if(Array.isArray(r))return _arrayLikeToArray(r)}function _arrayLikeToArray(r,e){(null==e||e>r.length)&&(e=r.length);for(var n=0,t=new Array(e);n<e;n++)t[n]=r[n];return t}!function(){function r(i,u,t){return{flatTree:function n(r,e,t){var o=e||0;e=t||[];if(15<o)throw new Error("Exceeded maximum level of nesting");return _.reduce(r,function(r,e){return e._depth=o,r.push(e),n(e._subGroups,o+1,r)},e)},copyUserRoles:function(r,o,a,e){var n=i.when();e=e?(n=i.all(_.map(o,function(r){return u.removeInventoryRoles(a,r.id)})),function(){return i.all(_.map(r,function(r){var e=_.map(r.roles,function(r){return{id:r.id}});return u.assignInventoryRoles(a,r.managedObject,e)}))}):function(){return i.all(_.map(r,function(r){var e=r.managedObject,n=_.find(o,{managedObject:e}),t=_.get(n,"roles"),n=_.get(n,"id"),r=_(_.union(r.roles,t)).uniqBy("id").map(function(r){return{id:r.id}}).value(),t=n?u.updateInventoryRoles(a,n,r):u.assignInventoryRoles(a,e,r);return t}))};return n.then(e)},onSaveInventoryRoles:function(o,a){var r=_.filter(a,"isModified").map(function(r){var e,n=o,t=a;return(t=(t[r.managedObject]||{}).id)?e=r.roles.length?u.updateInventoryRoles(n,t,r.roles):u.removeInventoryRoles(n,t):r.roles.length&&(e=u.assignInventoryRoles(n,r.managedObject,r.roles)),e||i.when()});return i.all(r)},listRootGroups:function(){var r=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).onlyRootsUser,r={query:"$filter=(".concat("has('c8y_IsDeviceGroup')",")$orderby=name"),onlyRoots:!0,onlyRootsUser:r,withChildren:!1};return t.listAll(r)},loadChildren:l,expandAll:function(r,n){var t=i.defer(),o=0,a=Array.from(r);return function e(){var r;o<=5&&((r=a.shift())?(o++,l(r).then(function(r){n&&n(),a.push.apply(a,_toConsumableArray(r)),o--,e()},t.reject),e()):0===o&&t.resolve())}(),t.promise}};function l(e){var r={query:"$filter=((has('c8y_IsDeviceGroup')) and bygroupid(".concat(e.id,"))"),pageSize:2e3,withChildren:!1,withTotalPages:!1},n=[].concat(_toConsumableArray(e._parentGroups||[]),[e]);return t.list(r).then(function(r){return r.forEach(function(r){r._parentGroups=Array.from(n)}),e._subGroups=_.sortBy(r,"name"),e._subGroups})}}r.$inject=["$q","c8yUser","c8yInventory"],angular.module("c8y.userRoles").factory("c8yUserInventoryRoles",r)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(e,t){u.$inject=["$injector","c8yAlert","$uibModal"],s.$inject=["$routeParams"],o.$inject=["$routeParams"];var r="/users/:userId",n={template:'<c8y-user-inventory-roles-tab user-id="vm.userId"></c8y-user-inventory-roles-tab>',name:t("Inventory roles"),icon:"insurance-agent",controllerAs:"vm",controller:s,showIf:o};function o(e){return e.userId&&"new"!==e.userId}function s(e){this.userId=e.userId}function u(e,r,n){return{STRINGS:function(){try{return e.get("c8yRolesUiStrings")}catch(e){return{}}}(),copyFromUserDialog:function(e){var r={component:"c8yCopyRolesModal",resolve:{userTo:_.constant(e)}};return n.open(r).result},successUserRolesCopy:function(){var e=t("User roles copied.");return r.success(e)}}}return{$get:u,initUi:function(){e.when(r,n)}}}e.$inject=["c8yViewsProvider","gettext"],angular.module("c8y.userRoles").provider("c8yUserRolesUi",e)}();
1
+ "use strict";!function(){function e(e,t){u.$inject=["$injector","c8yAlert","$uibModal"],s.$inject=["$routeParams"],o.$inject=["$routeParams"];var r="/users/:userId",n={template:'<c8y-user-inventory-roles-tab user-id="vm.userId"></c8y-user-inventory-roles-tab>',name:t("Inventory roles"),icon:"insurance-agent",controllerAs:"vm",controller:s,showIf:o};function o(e){return e.userId&&"new"!==e.userId}function s(e){this.userId=e.userId}function u(e,r,n){return{STRINGS:function(){try{return e.get("c8yRolesUiStrings")}catch(e){return{}}}(),copyFromUserDialog:function(e){e={component:"c8yCopyRolesModal",resolve:{userTo:_.constant(e)}};return n.open(e).result},successUserRolesCopy:function(){var e=t("User roles copied.");return r.success(e)}}}return{$get:u,initUi:function(){e.when(r,n)}}}e.$inject=["c8yViewsProvider","gettext"],angular.module("c8y.userRoles").provider("c8yUserRolesUi",e)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(){return{restrict:"EA",scope:{acl:"="},templateUrl:":::PLUGIN_PATH:::/aclEditor/aclEditor.html",controller:n}}function n(t,e,i,r,l){var c,o;function s(){t.newPermission=t.newPermission||{},t.newPermission.deviceSearch=null,t.newPermission.device=null,t.newPermission.scopeType=null,t.newPermission.type=null,t.newPermission.permissionType=null}function n(e){return e&&null!==e&&""!==e}s(),r.current().then(function(e){var n=r.hasRole(e,"ROLE_USER_MANAGEMENT_READ"),i=r.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN");c=n||i,t.allowView=c,o=i,t.allowEdit=o}),t.isValidPermission=function(e){return n(e.device)&&n(e.device.id)&&null!==e.scopeType&&n(e.type)&&null!==e.permissionType},t.add=function(e){var n=e.device.id,i=function(e){return[e.scopeType.value,e.type,e.permissionType.value].join(":")}(e);t.acl[n]||(t.acl[n]=[]),_.includes(t.acl[n],i)||t.acl[n].push(i),s()},t.remove=function(e,n){t.acl[e]=t.acl[e].filter(function(e){return e!==n}),0===t.acl[e].length&&delete t.acl[e]},t.allowView=c,t.allowEdit=o,t.getDevices=function(e){var n={pageSize:20};return e&&(n.text=e),i.list(n).then(function(e){return function(e){return _.uniqBy(e,"id")}(e)})},t.setDevice=function(e){t.newPermission.device=e},t.translatePermissionString=function(e){var n=e.split(":");return[l.getString(n[0]),n[1],l.getString(n[2])].join(":")}}n.$inject=["$scope","$q","c8yInventory","c8yUser","gettextCatalog"],angular.module("c8y.users").directive("c8yAclEditor",e).directive("aclEditor",e)}();
1
+ "use strict";!function(){function e(){return{restrict:"EA",scope:{acl:"="},templateUrl:":::PLUGIN_PATH:::/aclEditor/aclEditor.html",controller:n}}function n(i,e,t,l,n){var r,c;function o(){i.newPermission=i.newPermission||{},i.newPermission.deviceSearch=null,i.newPermission.device=null,i.newPermission.scopeType=null,i.newPermission.type=null,i.newPermission.permissionType=null}function s(e){return e&&null!==e&&""!==e}o(),l.current().then(function(e){var n=l.hasRole(e,"ROLE_USER_MANAGEMENT_READ"),e=l.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN");r=n||e,i.allowView=r,c=e,i.allowEdit=c}),i.isValidPermission=function(e){return s(e.device)&&s(e.device.id)&&null!==e.scopeType&&s(e.type)&&null!==e.permissionType},i.add=function(e){var n=e.device.id,e=[e.scopeType.value,e.type,e.permissionType.value].join(":");i.acl[n]||(i.acl[n]=[]),_.includes(i.acl[n],e)||i.acl[n].push(e),o()},i.remove=function(e,n){i.acl[e]=i.acl[e].filter(function(e){return e!==n}),0===i.acl[e].length&&delete i.acl[e]},i.allowView=r,i.allowEdit=c,i.getDevices=function(e){var n={pageSize:20};return e&&(n.text=e),t.list(n).then(function(e){return _.uniqBy(e,"id")})},i.setDevice=function(e){i.newPermission.device=e},i.translatePermissionString=function(e){return e=e.split(":"),[n.getString(e[0]),e[1],n.getString(e[2])].join(":")}}n.$inject=["$scope","$q","c8yInventory","c8yUser","gettextCatalog"],angular.module("c8y.users").directive("c8yAclEditor",e).directive("aclEditor",e)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(){return{restrict:"EA",scope:{user:"=",allSelected:"=?",allowedApplications:"=",disabledEdit:"=?"},templateUrl:":::PLUGIN_PATH:::/applicationAccess/applicationAccess.html",controller:i}}function i(c,e,i){function t(e){return _.uniqBy(e,"id")}function n(e){c.applications=e,c.marketApps=_.filter(e,{availability:"MARKET"}),c.privateApps=_.filter(e,{availability:"PRIVATE"})}function l(e){return c.allSelected||_.some(c.allowedApplications,a(e))||o(e)}function a(i){return function(e){return _.toNumber(i.id)===_.toNumber(e.id)}}function o(e){var i,t=e.id,n=c.user;if(n&&!c.allSelected){var l=_(_.get(n,"groups.references")).map("group").map("applications").flatten().uniqBy("id").map("id").value();i=_.includes(l,t)}return i}function r(e){var i=_.get(c,"user._owner.applications");return i&&!o(e)&&!_.some(i,{id:e.id})}c.isAccessAllowed=l,c.toggleAccess=function(e){l(e)?function(e){c.allowedApplications=_.reject(c.allowedApplications,a(e))}(e):function(e){c.allowedApplications=c.allowedApplications||[],c.allowedApplications.push({id:e.id,type:e.type})}(e)},c.alreadyInGlobalRole=o,c.isDisabled=function(e){return c.allSelected||c.disabledEdit||o(e)||r(e)},c.notAvailableInOwner=r,c.noOwnerAvailable=function(){return _.get(c,"user")&&!_.get(c,"user._owner")},e.current().then(i.listByUser).then(t).then(n)}i.$inject=["$scope","c8yUser","c8yApplication"],angular.module("c8y.users").directive("c8yApplicationAccess",e).directive("applicationAccessEditor",e)}();
1
+ "use strict";!function(){function e(){return{restrict:"EA",scope:{user:"=",allSelected:"=?",allowedApplications:"=",disabledEdit:"=?"},templateUrl:":::PLUGIN_PATH:::/applicationAccess/applicationAccess.html",controller:i}}function i(n,e,i){function t(e){return _.uniqBy(e,"id")}function l(e){n.applications=e,n.marketApps=_.filter(e,{availability:"MARKET"}),n.privateApps=_.filter(e,{availability:"PRIVATE"})}function c(e){return n.allSelected||_.some(n.allowedApplications,a(e))||o(e)}function a(i){return function(e){return _.toNumber(i.id)===_.toNumber(e.id)}}function o(e){var i,e=e.id,t=n.user;return t&&!n.allSelected&&(t=_(_.get(t,"groups.references")).map("group").map("applications").flatten().uniqBy("id").map("id").value(),i=_.includes(t,e)),i}function r(e){var i=_.get(n,"user._owner.applications");return i&&!o(e)&&!_.some(i,{id:e.id})}n.isAccessAllowed=c,n.toggleAccess=function(e){(c(e)?function(e){n.allowedApplications=_.reject(n.allowedApplications,a(e))}:function(e){n.allowedApplications=n.allowedApplications||[],n.allowedApplications.push({id:e.id,type:e.type})})(e)},n.alreadyInGlobalRole=o,n.isDisabled=function(e){return n.allSelected||n.disabledEdit||o(e)||r(e)},n.notAvailableInOwner=r,n.noOwnerAvailable=function(){return _.get(n,"user")&&!_.get(n,"user._owner")},e.current().then(i.listByUser).then(t).then(l)}i.$inject=["$scope","c8yUser","c8yApplication"],angular.module("c8y.users").directive("c8yApplicationAccess",e).directive("applicationAccessEditor",e)}();
@@ -1 +1 @@
1
- "use strict";!function(){function n(e,n,t,s,i){var r=this;function c(){var n=i("User's application access changed.");return s.success(n)}_.assign(r,{$onInit:function(){r.hasExternalOrigin&&s.warning(t.EXTERNAL_ORIGIN_TEXT)},save:function(){var n=_.pick(r.user,["id","applications"]);return e.save(n).then(c)},cancel:t.gotoList,$onChanges:function(n){n.user&&r.user&&function(n){t.hasAppManagement(n).then(function(n){r.hasAppManagement=n})}(r.user)},hasExternalOrigin:e.hasExternalOrigin(r.user),$onDestroy:function(){s.remove({text:t.EXTERNAL_ORIGIN_TEXT,type:"warning"})}})}n.$inject=["c8yUser","c8yApplication","c8yUsersUi","c8yAlert","gettext"],angular.module("c8y.users").component("c8yUserApplicationAccess",{templateUrl:":::PLUGIN_PATH:::/userDetailView/userApplicationAccess.html",bindings:{user:"<"},controller:n,controllerAs:"vm"})}();
1
+ "use strict";!function(){function n(e,n,t,s,i){var r=this;function c(){var n=i("User's application access changed.");return s.success(n)}_.assign(r,{$onInit:function(){r.hasExternalOrigin&&s.warning(t.EXTERNAL_ORIGIN_TEXT)},save:function(){var n=_.pick(r.user,["id","applications"]);return e.save(n).then(c)},cancel:t.gotoList,$onChanges:function(n){n.user&&r.user&&!function(n){t.hasAppManagement(n).then(function(n){r.hasAppManagement=n})}(r.user)},hasExternalOrigin:e.hasExternalOrigin(r.user),$onDestroy:function(){s.remove({text:t.EXTERNAL_ORIGIN_TEXT,type:"warning"})}})}n.$inject=["c8yUser","c8yApplication","c8yUsersUi","c8yAlert","gettext"],angular.module("c8y.users").component("c8yUserApplicationAccess",{templateUrl:":::PLUGIN_PATH:::/userDetailView/userApplicationAccess.html",bindings:{user:"<"},controller:n,controllerAs:"vm"})}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(c,e,f,n,d,l,E,h,r,t,s,g,p,o,m,v){var i=this;_.assign(i,{cancel:g.gotoList,shouldDisableGlobalRolesCheckbox:S,isUserAndRolesFormPristine:function(){return f.forms.userForm.$pristine&&f.forms.rolesForm.$pristine},isUserFormInvalid:function(){return!(!P(f.currentUser,f.user)||f.hasExternalOrigin)&&f.forms.userForm.$invalid},isRolesFormInvalid:function(){return!S()&&f.forms.rolesForm.$invalid}});var u,a,w,R,N=n.userId,T=["business"];function A(){N?l.detail(N).then(function(e){return e.data}).then(U).then(function(){return l.getUserTfaSettings(f.user).then(d.getResData).then(function(e){f.userTfaEnforced=!!e.tfaEnforced})}):(U({enabled:f.isNew=!0}),L(v("New user"),!0))}function U(e){a=e.email,e.devicePermissions=e.devicePermissions||{},f.user=e,f._groups=y(e),f.password.showPassword=f.isNew,f.hasExternalOrigin=l.hasExternalOrigin(e),f.isNew&&(_.forEach(f.groups,function(e){_.includes(T,e.name)&&(f._groups[e.id]=!0)}),w&&h.warning(g.LOCAL_USER_TEXT)),f.hasExternalOrigin&&o.isSsoClearingUserRolesOnEveryLogin().then(function(e){return f.userCanEditRoles=!e,f.userCanEditRoles}).then(function(e){e?h.warning(g.EXTERNAL_ORIGIN_DYNAMIC_ACCESS_MAPPING_EXCEPTION_TEXT):h.warning(g.EXTERNAL_ORIGIN_TEXT)})}function y(e){return _.reduce(_.get(e,"groups.references"),function(e,n){return e[n.group.id]=!0,e},{})}function I(e){f.groups=e}function O(e){f.currentUser=e}function C(n){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"";f.saving=!0;var r=function(){return h.success(v("User saved."))},t=g.gotoList,s=!(n.id&&!n.groups),o=_(f._groups).map(function(e,n){return e&&parseInt(n,10)}).filter().value(),i=s?function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:n;return E.updateGroups(e,o)}:function(){return c.resolve()},u=f.forms.rolesForm.$dirty,a=f.password.showPassword;try{f.hasExternalOrigin?g.warnAboutUserLogOutIfNeeded(n,{rolesChanged:u,passwordChanged:a}).then(function(){return i()}).then(r).then(t).finally(function(){f.saving=!1}):g.warnAboutUserLogOutIfNeeded(n,{rolesChanged:u,passwordChanged:a}).then(function(){return n.password&&!f.isNew?l.changePassword(n,n.password,e):c.resolve()}).then(function(){return l.current()}).then(function(e){return _.isEqual(e.userName,n.userName)}).then(function(e){m.isActivatedFor("units-conversion")&&(e&&function(e){var n=_.get(e,"measurementUnit.value");p.set("unit",n)}(n),_.unset(n,"measurementUnit"))}).then(function(e){return l.save(_.omit(n,f.isNew?["measurementUnit"]:["measurementUnit","password"]),e)}).then(d.getResData).then(function(e){return i(e)}).then(function(){return l.setUserTfaSettings(n,{tfaEnforced:!!f.userTfaEnforced})}).then(r).then(t).finally(function(){f.saving=!1})}catch(e){h.danger(e.message),f.saving=!1}}function L(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",n=1<arguments.length&&void 0!==arguments[1]&&arguments[1];return r.changeTitle({title:e},{skipTitleTranslation:!n})}function G(e){return l.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||l.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE")}function P(e,n){return!(!e||!n)&&(!n.id||(e.id===n.id?l.hasRole(e,"ROLE_USER_MANAGEMENT_OWN_ADMIN"):l.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||l.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE")))}function M(e){return _.get(f.user,"owner")&&u&&!u[e.id]}function S(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,n=G(f.currentUser),r=!e||!M(e),t=!!f.userCanEditRoles||!f.hasExternalOrigin;return!(n&&r&&t)}f.checkPassword=function(n){var e=!f.isNew,r=f.password.showPassword||function(e){return e.email!==a}(n);return e&&r?s.currentPassword().then(function(e){return C(n,e)}).catch(function(e){e&&h.danger(d.getResErrorMessage(e)),A()}):C(n)},f.$watch("user.userName",L),f.$watch("user.owner",function(e){e?l.detail(e).then(d.getResData).then(function(e){u=y(e),_.forEach(f._groups,function(e,n){f._groups[n]=e&&u[n]})}):u=null}),f.$watch("_groups",function(e){f.enforcedGroup&&(f.topLevelTfaEnforced=e[f.enforcedGroup.id])},!0),f.canEditUser=P,f.canEditUserGroups=G,f.canActivateUser=function(e,n){return!(!e||!n)&&e.id!==n.id},f.forms={},f.password={},f.saving=!1,f.showAcl=function(){var e=_.get(f.user,"devicePermissions"),n=_.keys(e);return d.getFlag("deprecated")||n.length},f.restrictedByOwner=M,f.$on("$destroy",function(){h.remove({text:g.EXTERNAL_ORIGIN_TEXT,type:"warning"}),h.remove({text:g.EXTERNAL_ORIGIN_DYNAMIC_ACCESS_MAPPING_EXCEPTION_TEXT,type:"warning"}),h.remove({text:g.LOCAL_USER_TEXT,type:"warning"})}),E.list(R).then(I).then(o.isSsoEnabled).then(function(e){w=e}).then(A).then(function(){return t.current().then(function(e){return l.getTenantTfaSettings(f.user,e.name)}).then(function(e){f.enforcedGroup=_.find(f.groups,{name:e.enforcedUsersGroup}),f.topLevelTfaEnforced=l.isEnforcedForUser(f.user,e)||f._groups[f.enforcedGroup.id]})}),l.current().then(O),g.userHierarchyActive().then(function(e){i.FEATURE_USER_HIERARCHY=e})}e.$inject=["$q","$injector","$scope","$routeParams","c8yBase","c8yUser","c8yUserGroup","c8yAlert","c8yTitle","c8yTenant","c8yUserUtil","c8yUsersUi","c8yUserPreferences","c8yLoginOptions","c8yBeta","gettext"],angular.module("c8y.users").component("c8yUserDetailView",{templateUrl:":::PLUGIN_PATH:::/userDetailView/userDetailView.html",controller:e,controllerAs:"vm"})}();
1
+ "use strict";!function(){function e(a,e,c,n,f,d,l,E,r,t,s,g,h,o,p,m){var i,u,w,R=this,N=(_.assign(R,{cancel:g.gotoList,shouldDisableGlobalRolesCheckbox:M,isUserAndRolesFormPristine:function(){return c.forms.userForm.$pristine&&c.forms.rolesForm.$pristine},isUserFormInvalid:function(){return!(!G(c.currentUser,c.user)||c.hasExternalOrigin)&&c.forms.userForm.$invalid},isRolesFormInvalid:function(){return!M()&&c.forms.rolesForm.$invalid}}),n.userId),T=["business"];function v(){N?d.detail(N).then(function(e){return e.data}).then(A).then(function(){return d.getUserTfaSettings(c.user).then(f.getResData).then(function(e){c.userTfaEnforced=!!e.tfaEnforced})}):(A({enabled:c.isNew=!0}),C(m("New user"),!0))}function A(e){u=e.email,e.devicePermissions=e.devicePermissions||{},c.user=e,c._groups=U(e),c.password.showPassword=c.isNew,c.hasExternalOrigin=d.hasExternalOrigin(e),c.isNew&&(_.forEach(c.groups,function(e){_.includes(T,e.name)&&(c._groups[e.id]=!0)}),w)&&E.warning(g.LOCAL_USER_TEXT),c.hasExternalOrigin&&o.isSsoClearingUserRolesOnEveryLogin().then(function(e){return c.userCanEditRoles=!e,c.userCanEditRoles}).then(function(e){e?E.warning(g.EXTERNAL_ORIGIN_DYNAMIC_ACCESS_MAPPING_EXCEPTION_TEXT):E.warning(g.EXTERNAL_ORIGIN_TEXT)})}function U(e){return _.reduce(_.get(e,"groups.references"),function(e,n){return e[n.group.id]=!0,e},{})}function I(e){c.groups=e}function O(e){c.currentUser=e}function y(n,e){function r(){return E.success(m("User saved."))}var t=1<arguments.length&&void 0!==e?e:"",e=(c.saving=!0,g.gotoList),s=!(n.id&&!n.groups),o=_(c._groups).map(function(e,n){return e&&parseInt(n,10)}).filter().value(),i=s?function(){return l.updateGroups(0<arguments.length&&void 0!==arguments[0]?arguments[0]:n,o)}:function(){return a.resolve()},s=c.forms.rolesForm.$dirty,u=c.password.showPassword;try{(c.hasExternalOrigin?g.warnAboutUserLogOutIfNeeded(n,{rolesChanged:s,passwordChanged:u}).then(function(){return i()}):g.warnAboutUserLogOutIfNeeded(n,{rolesChanged:s,passwordChanged:u}).then(function(){return n.password&&!c.isNew?d.changePassword(n,n.password,t):a.resolve()}).then(function(){return d.current()}).then(function(e){return _.isEqual(e.userName,n.userName)}).then(function(e){p.isActivatedFor("units-conversion")&&(e&&(e=n,e=_.get(n,"measurementUnit.value"),h.set("unit",e)),_.unset(n,"measurementUnit"))}).then(function(e){return d.save(_.omit(n,c.isNew?["measurementUnit"]:["measurementUnit","password"]),e)}).then(f.getResData).then(function(e){return i(e)}).then(function(){return d.setUserTfaSettings(n,{tfaEnforced:!!c.userTfaEnforced})})).then(r).then(e).finally(function(){c.saving=!1})}catch(e){E.danger(e.message),c.saving=!1}}function C(){return r.changeTitle({title:0<arguments.length&&void 0!==arguments[0]?arguments[0]:""},{skipTitleTranslation:!(1<arguments.length&&void 0!==arguments[1]&&arguments[1])})}function L(e){return d.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||d.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE")}function G(e,n){return!(!e||!n)&&(!n.id||(e.id===n.id?d.hasRole(e,"ROLE_USER_MANAGEMENT_OWN_ADMIN"):d.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||d.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE")))}function P(e){return _.get(c.user,"owner")&&i&&!i[e.id]}function M(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,n=L(c.currentUser),e=!e||!P(e),r=!!c.userCanEditRoles||!c.hasExternalOrigin;return!(n&&e&&r)}c.checkPassword=function(n){var e=!c.isNew,r=c.password.showPassword||function(e){return e.email!==u}(n);return e&&r?s.currentPassword().then(function(e){return y(n,e)}).catch(function(e){e&&E.danger(f.getResErrorMessage(e)),v()}):y(n)},c.$watch("user.userName",C),c.$watch("user.owner",function(e){e?d.detail(e).then(f.getResData).then(function(e){i=U(e),_.forEach(c._groups,function(e,n){c._groups[n]=e&&i[n]})}):i=null}),c.$watch("_groups",function(e){c.enforcedGroup&&(c.topLevelTfaEnforced=e[c.enforcedGroup.id])},!0),c.canEditUser=G,c.canEditUserGroups=L,c.canActivateUser=function(e,n){return!(!e||!n)&&e.id!==n.id},c.forms={},c.password={},c.saving=!1,c.showAcl=function(){var e=_.get(c.user,"devicePermissions"),e=_.keys(e);return f.getFlag("deprecated")||e.length},c.restrictedByOwner=P,c.$on("$destroy",function(){E.remove({text:g.EXTERNAL_ORIGIN_TEXT,type:"warning"}),E.remove({text:g.EXTERNAL_ORIGIN_DYNAMIC_ACCESS_MAPPING_EXCEPTION_TEXT,type:"warning"}),E.remove({text:g.LOCAL_USER_TEXT,type:"warning"})}),l.list(void 0).then(I).then(o.isSsoEnabled).then(function(e){w=e}).then(v).then(function(){return t.current().then(function(e){return d.getTenantTfaSettings(c.user,e.name)}).then(function(e){c.enforcedGroup=_.find(c.groups,{name:e.enforcedUsersGroup}),c.topLevelTfaEnforced=d.isEnforcedForUser(c.user,e)||c._groups[c.enforcedGroup.id]})}),d.current().then(O),g.userHierarchyActive().then(function(e){R.FEATURE_USER_HIERARCHY=e})}e.$inject=["$q","$injector","$scope","$routeParams","c8yBase","c8yUser","c8yUserGroup","c8yAlert","c8yTitle","c8yTenant","c8yUserUtil","c8yUsersUi","c8yUserPreferences","c8yLoginOptions","c8yBeta","gettext"],angular.module("c8y.users").component("c8yUserDetailView",{templateUrl:":::PLUGIN_PATH:::/userDetailView/userDetailView.html",controller:e,controllerAs:"vm"})}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(u,n,i,t,r,e,s,o,a,l,c){var f,g=this;function d(e){return f=e?[]:g.users,g.users=[],i.list(function(){var e=_.get(g.filters,"text"),n=_.map(_.get(g.filters,"globalRoles"),"id"),t=n.length?n.join(","):void 0;return{withSubusersCount:!0,username:e,groups:t,withApps:!1,withGroups:!1,withRoles:!1,onlyRoots:_.isEmpty(e)}}()).then(h)}function h(e){p(e),g.users.paging=e.paging}function p(e){var n=g.users,t=n.paging,s=i.getTfaStrategy(),o=[];return _.forEach(e,function(r){var e=_.find(f,{id:r.id});r.twoFactorAuthenticationEnabled||u.all({enforced:i.isTfaActive(r),strategy:s}).then(function(e){var n=e.enforced,t=e.strategy;"SMS"!==t&&t||n&&(r.twoFactorAuthenticationEnabled=n)}),e&&(r._expanded=e._expanded,o.push(r)),_.some(n,{id:r.id})||(n=n.concat([r]))}),n.paging=t,g.users=n,o.reduce(function(e,n){return e.then(function(){return v(n)})},u.resolve())}function E(e){g.globalRoles=e}function R(e){return e._globalRoles=_.map(_.get(e,"groups.references"),function(e){return _.find(g.globalRoles,{id:e.group.id})}),e}function A(){i.current().then(function(e){g.canAddUser=i.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||g.FEATURE_USER_HIERARCHY&&i.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE"),g.canRevokeTokens=i.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")})}function v(e){return f=g.users,i.listAll({owner:e.id,withSubusersCount:!0}).then(p)}_.assign(g,{ROUTE_NEW_USER:r.ROUTE_NEW_USER,$onInit:function(){u.all([d(),e.global.list({pageSize:1e4}).then(E)]).then(function(){return _.forEach(g.users,R)}),r.userHierarchyActive().then(function(e){g.FEATURE_USER_HIERARCHY=e}).then(A)},loadMore:function(){g.users.paging.loading=!0,g.users.paging.next().then(h).finally(function(){g.users.paging.loading=!1})},loadUsers:d,loadSubusers:v,changeUser:function(n,e){var t="changeGlobalRoles"===e.name;return r.warnAboutUserLogOutIfNeeded(n,{rolesChanged:t}).then(function(){return r.changeUser(n,e)}).then(function(e){return function(e,n){var t,r=n||{};if(r.removeUser){g.users=_.reject(g.users,{id:e.id});var s=_.get(e,"_owner.id");g.users=_.map(g.users,function(e){return s&&s===e.id?(e.subusersCount--,angular.copy(e)):e})}r.refresh||r.removeUser||(t=i.list({username:e.id,withSubusersCount:!0}).then(_.first).then(function(t){var r=t.id,e=_.map(g.users,function(e){var n=r===e.id;return n&&(t._expanded=e._expanded),n?R(t):e});_.assign(e,_.pick(g.users,["statistics","paging"])),g.users=e}));r.refresh&&(t=d());return t}(n,e)})},showExpandCollapse:function(){return g.FEATURE_USER_HIERARCHY&&_.some(g.users,function(e){return 0<e.subusersCount||_.get(e,"_owns.length")})},collapseAll:function(){r.collapseAll(g.users)},expandAll:function(){r.expandAll(g.users),u.all(_.map(g.users,function(e){return e.subusersCount>e._owns.length?v(e).then(function(){return!0}):u.resolve(!1)})).then(function(e){_.some(e)&&n(g.expandAll)})},filters:{},applyFilters:function(){d(!0)},clearFilters:function(){g.filters={},d(!0)},isAnyFilterSelected:function(){return _.some(g.filters,_.identity)},refresh:function(){return d(!0).then(function(){return _.forEach(g.users,R)})},revokeTokens:function(){var n=c.get("c8yAuthBridgeService").getPreferredLoginOption(),e=function(){return i.current().then(function(e){return function(e){return!(!i.hasExternalOrigin(e)&&"BASIC"===n.type)}(e)})};s({title:l("Confirm log out all users?"),body:l('You are about to log out all users currently logged with "OAI-Secure" or "Single sign-on redirect". The JWT tokens retrieved by all devices in the current tenant will also be invalidated. Do you want to proceed?'),status:"warning",size:"sm",labels:{ok:l("Log out all users and invalidate tokens")}}).then(function(){return i.revokeTokens()}).then(function(){return e().then(function(e){return e?t.logoutAndReloadPage():u.resolve()})}).then(function(){return o.success(l("User tokens revoked."))}).catch(function(e){e&&o.danger(a.getResErrorMessage(e))})}})}e.$inject=["$q","$timeout","c8yUser","c8yUserUtil","c8yUsersUi","c8yRoles","c8yModal","c8yAlert","c8yBase","gettext","$injector"],angular.module("c8y.users").component("c8yUserListView",{templateUrl:":::PLUGIN_PATH:::/userListView/userListView.html",controller:e,controllerAs:"vm"})}();
1
+ "use strict";!function(){function e(o,n,u,r,t,e,s,i,a,l,c){var f,g=this;function d(e){return f=e?[]:g.users,g.users=[],u.list((e=_.get(g.filters,"text"),n=(n=_.map(_.get(g.filters,"globalRoles"),"id")).length?n.join(","):void 0,{withSubusersCount:!0,username:e,groups:n,withApps:!1,withGroups:!1,withRoles:!1,onlyRoots:_.isEmpty(e)})).then(h);var n}function h(e){p(e),g.users.paging=e.paging}function p(e){var n=g.users,t=n.paging,r=u.getTfaStrategy(),s=[];return _.forEach(e,function(t){var e=_.find(f,{id:t.id});t.twoFactorAuthenticationEnabled||o.all({enforced:u.isTfaActive(t),strategy:r}).then(function(e){var n=e.enforced,e=e.strategy;"SMS"!==e&&e||n&&(t.twoFactorAuthenticationEnabled=n)}),e&&(t._expanded=e._expanded,s.push(t)),_.some(n,{id:t.id})||(n=n.concat([t]))}),n.paging=t,g.users=n,s.reduce(function(e,n){return e.then(function(){return U(n)})},o.resolve())}function E(e){g.globalRoles=e}function R(e){return e._globalRoles=_.map(_.get(e,"groups.references"),function(e){return _.find(g.globalRoles,{id:e.group.id})}),e}function A(){u.current().then(function(e){g.canAddUser=u.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")||g.FEATURE_USER_HIERARCHY&&u.hasRole(e,"ROLE_USER_MANAGEMENT_CREATE"),g.canRevokeTokens=u.hasRole(e,"ROLE_USER_MANAGEMENT_ADMIN")})}function U(e){return f=g.users,u.listAll({owner:e.id,withSubusersCount:!0}).then(p)}_.assign(g,{ROUTE_NEW_USER:t.ROUTE_NEW_USER,$onInit:function(){o.all([d(),e.global.list({pageSize:1e4}).then(E)]).then(function(){return _.forEach(g.users,R)}),t.userHierarchyActive().then(function(e){g.FEATURE_USER_HIERARCHY=e}).then(A)},loadMore:function(){g.users.paging.loading=!0,g.users.paging.next().then(h).finally(function(){g.users.paging.loading=!1})},loadUsers:d,loadSubusers:U,changeUser:function(s,e){var n="changeGlobalRoles"===e.name;return t.warnAboutUserLogOutIfNeeded(s,{rolesChanged:n}).then(function(){return t.changeUser(s,e)}).then(function(e){var n,t,r=s;return(e=e||{}).removeUser&&(g.users=_.reject(g.users,{id:r.id}),t=_.get(r,"_owner.id"),g.users=_.map(g.users,function(e){return t&&t===e.id?(e.subusersCount--,angular.copy(e)):e})),e.refresh||e.removeUser||(n=u.list({username:r.id,withSubusersCount:!0}).then(_.first).then(function(t){var r=t.id,e=_.map(g.users,function(e){var n=r===e.id;return n&&(t._expanded=e._expanded),n?R(t):e});_.assign(e,_.pick(g.users,["statistics","paging"])),g.users=e})),n=e.refresh?d():n})},showExpandCollapse:function(){return g.FEATURE_USER_HIERARCHY&&_.some(g.users,function(e){return 0<e.subusersCount||_.get(e,"_owns.length")})},collapseAll:function(){t.collapseAll(g.users)},expandAll:function(){t.expandAll(g.users),o.all(_.map(g.users,function(e){return e.subusersCount>e._owns.length?U(e).then(function(){return!0}):o.resolve(!1)})).then(function(e){_.some(e)&&n(g.expandAll)})},filters:{},applyFilters:function(){d(!0)},clearFilters:function(){g.filters={},d(!0)},isAnyFilterSelected:function(){return _.some(g.filters,_.identity)},refresh:function(){return d(!0).then(function(){return _.forEach(g.users,R)})},revokeTokens:function(){function e(){return u.current().then(function(e){return t(e)}).then(function(e){return e?r.logoutAndReloadPage():o.resolve()})}var n=c.get("c8yAuthBridgeService").getPreferredLoginOption(),t=function(e){return!(!u.hasExternalOrigin(e)&&"BASIC"===n.type)};s({title:l("Confirm log out all users?"),body:l('You are about to log out all users currently logged with "OAI-Secure" or "Single sign-on redirect". The JWT tokens retrieved by all devices in the current tenant will also be invalidated. Do you want to proceed?'),status:"warning",size:"sm",labels:{ok:l("Log out all users and invalidate tokens")}}).then(function(){return u.revokeTokens()}).then(e).then(function(){return i.success(l("User tokens revoked."))}).catch(function(e){e&&i.danger(a.getResErrorMessage(e))})}})}e.$inject=["$q","$timeout","c8yUser","c8yUserUtil","c8yUsersUi","c8yRoles","c8yModal","c8yAlert","c8yBase","gettext","$injector"],angular.module("c8y.users").component("c8yUserListView",{templateUrl:":::PLUGIN_PATH:::/userListView/userListView.html",controller:e,controllerAs:"vm"})}();
@@ -1 +1 @@
1
- "use strict";function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){if(e){if("string"==typeof e)return _arrayLikeToArray(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}!function(){function e(e,r,t,C){l.$inject=["$q","$routeParams"],d.$inject=["$q","$location","$uibModal","c8yBase","c8yUser","c8yRoles","c8yUserRolesUi","c8yUserInventoryRoles","c8yUserUtil","c8yPermissions","c8yAlert","$injector","passwordStrengthCheckerFactory","gettextCatalog","c8yModal"];var n="c8y-user",o=["ROLE_USER_MANAGEMENT_READ","ROLE_USER_MANAGEMENT_ADMIN","ROLE_USER_MANAGEMENT_CREATE"],L=c(),O=c("/new"),M=c("/:userId"),a={template:"<c8y-user-list-view></c8y-user-list-view>"},i={priority:1e3,icon:n,name:C("Profile / Global roles"),template:'<c8y-user-detail-view user-id="$resolve.userId"></c8y-user-detail-view>',resolve:{userId:["$route",function(e){return e.current.params.userId}]}},u={priority:-1e3,icon:"c8y-atom",name:C("Application access"),template:'<c8y-user-application-access user="$resolve.user"></c8y-user-application-access>',resolve:{user:["$route","c8yUser","c8yBase",function(e,t,n){return t.detail(e.current.params.userId).then(n.getResData).then(function(r){return r.owner?t.detail(r.owner).then(n.getResData).then(function(e){return r._owner=e,r}).catch(function(){return r}):r})}]}},s={data:l};return{initUi:function(){e.addNavigation({parent:{name:C("Accounts"),icon:"c8y-accounts"},name:C("Users"),path:c().replace(/^\//,""),icon:n,priority:5e3,routerLinkExact:!1,showIfPermissions:{anyRole:o}}),r.when(L,a),r.when(O,i),r.when(M,i),r.when(M,u),t.addTitle(M,s)},$get:d};function c(e){return"/users".concat(e||"")}function l(e,r){return e.when({title:r.userId})}function d(s,r,t,n,i,o,e,a,u,c,l,d,f,g,y){var p,h=f();return i.current().then(function(e){p=e.id}),{ROUTE_NEW_USER:O,fullName:function(e){return"".concat(e.firstName||""," ").concat(e.lastName||"")},toggleExpanded:function(e){var t=!e._expanded;(e._expanded=t)||!function r(e){_.forEach(e,function(e){e._expanded=t,r(e._owns)})}(e._owns);return e},createUserFlatTree:u.createUserFlatTree,visibleInList:function(e){return!_.get(e,"owner")||_.get(e,"_owner._expanded")},expandAll:function(e){_.forEach(e,function(e){e._expanded=!0})},collapseAll:function(e){_.forEach(e,function(e){delete e._expanded})},detailLink:v,editUser:function(e){r.path(v(e))},search:u.search,changeUser:function(e,r){var t={changeGlobalRoles:A,copyInventoryRoles:m,enable:b,disable:E,remove:w,delegate:T,removeDelegate:R},n="string"==typeof r?r:_.get(r,"name");return _.get(t,n,s.reject)(e,_.get(r,"data"))},getPasswordStrength:h.getStrengthForColor,getPasswordColor:h.getHexColorForColor,getPasswordIcon:h.getIconForColor,isTfaAvailable:i.isTfaAvailable,gotoList:function(){r.path(L)},userHierarchyActive:u.userHierarchyActive,hasAppManagement:function(e){return c.hasAnyRole(["ROLE_APPLICATION_MANAGEMENT_READ","ROLE_APPLICATION_MANAGEMENT_ADMIN"],e)},isUndeletable:function(e){return p?S(e)||c.hasRole(e,"ROLE_TENANT_ADMIN"):void 0},isCurrent:S,warnAboutUserLogOutIfNeeded:function(e,r){var t=r.rolesChanged,n=r.passwordChanged||t,o=d.get("c8yAuthBridgeService").getPreferredLoginOption(),a="OAUTH2_INTERNAL"===o.type,i=!_.isUndefined(o.sessionConfiguration);if(!e.id||S(e)&&!t||!a||!i||!n)return s.resolve();var u=S(e)?C("Updating global roles will force you to log out. Do you want to proceed?"):g.getString('Updating password or global roles will force user "{{userName}}" to log out. Do you want to proceed?',e);return y({title:C("Force user to log out"),body:u,status:"warning",size:"sm",labels:{ok:C("Update and log out user")}})},EXTERNAL_ORIGIN_TEXT:C("You cannot edit the user since it is managed via your authorization server."),EXTERNAL_ORIGIN_TEXT_FOR_USERS_LIST_VIEW:C("You cannot edit global roles for user with external origin, since it is managed via your authorization server."),EXTERNAL_ORIGIN_DYNAMIC_ACCESS_MAPPING_EXCEPTION_TEXT:C("You cannot edit the user since it is managed via your authorization server, but the configuration allows for changing global roles."),LOCAL_USER_TEXT:C("You are about to create a local user which will not be able to log in via single sign-on.")};function v(e){return M.replace(/:userId/,e.id)}function A(e,r){var t=_.map(r.roles,"id");return o.global.updateGroups(e,t)}function m(o){return s.all({copy:e.copyFromUserDialog(o),assignedRoles:i.listInventoryRoles(o)}).then(function(e){var r="replace"===e.copy.process,t=e.copy.roles,n=_.keyBy(e.assignedRoles.data.inventoryAssignments,"managedObject");return a.copyUserRoles(t,n,o,r)})}function E(e){return i.disable(e)}function b(e){return i.enable(e)}function w(r){var e=0<r.subusersCount;return t.open({component:"c8yUserRemovalModal",resolve:{user:function(){return r}}}).result.then(function(e){return e.deleteAll?function(e){return I(e,{deep:!0}).then(function(e){return e.reduce(function(e,r){return e.then(function(){return i.remove(r)})},s.resolve())})}(r):_.isUndefined(e.newOwner)?s.resolve():function(e,t){return I(e,{deep:!1}).then(function(e){return e.reduce(function(e,r){return e.then(function(){return i.save({id:r.id,owner:t})})},s.resolve())})}(r,e.newOwner)}).then(function(){return i.remove(r)}).then(function(){return function(e){return l.success(g.getString('User "{{userName}}" deleted.',e))}(r)}).then(function(){return{removeUser:!e,refresh:e}})}function I(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};if(0===e.subusersCount)return s.resolve([]);var a=[];return i.list({owner:e.id,withSubusersCount:!0,pageSize:n.MAX_PAGESIZE}).then(function e(r){a.push.apply(a,_toConsumableArray(r));var t=r.statistics.pageSize,n=r.paging.next,o=r.length>=t;return n&&o?r.paging.next().then(e):s.resolve(a)}).then(function(e){if(!t.deep)return e;var r=e.map(function(e){return I(e,t)});return s.all([].concat(_toConsumableArray(e),_toConsumableArray(r))).then(_.flattenDeep)})}function T(e){return i.delegateTo(e).then(_.partial(N,e))}function N(e){return l.success(g.getString('You delegated to user "{{userName}}".',e))}function R(e){var r={id:e.id,delegatedBy:null};return i.save(r).then(_.partial(U,e))}function U(e){return l.success(g.getString('You removed delegation from user "{{userName}}".',e))}function S(e){return p&&p===e.id}}}e.$inject=["c8yNavigatorProvider","c8yViewsProvider","c8yTitleProvider","gettext"],angular.module("c8y.users").provider("c8yUsersUi",e)}();
1
+ "use strict";function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,r){var t;if(e)return"string"==typeof e?_arrayLikeToArray(e,r):"Map"===(t="Object"===(t=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:t)||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(e,r):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}!function(){function e(e,r,t,S){l.$inject=["$q","$routeParams"],d.$inject=["$q","$location","$uibModal","c8yBase","c8yUser","c8yRoles","c8yUserRolesUi","c8yUserInventoryRoles","c8yUserUtil","c8yPermissions","c8yAlert","$injector","passwordStrengthCheckerFactory","gettextCatalog","c8yModal"];var n="c8y-user",o=["ROLE_USER_MANAGEMENT_READ","ROLE_USER_MANAGEMENT_ADMIN","ROLE_USER_MANAGEMENT_CREATE"],C=c(),L=c("/new"),O=c("/:userId"),a={template:"<c8y-user-list-view></c8y-user-list-view>"},i={priority:1e3,icon:n,name:S("Profile / Global roles"),template:'<c8y-user-detail-view user-id="$resolve.userId"></c8y-user-detail-view>',resolve:{userId:["$route",function(e){return e.current.params.userId}]}},u={priority:-1e3,icon:"c8y-atom",name:S("Application access"),template:'<c8y-user-application-access user="$resolve.user"></c8y-user-application-access>',resolve:{user:["$route","c8yUser","c8yBase",function(e,t,n){return t.detail(e.current.params.userId).then(n.getResData).then(function(r){return r.owner?t.detail(r.owner).then(n.getResData).then(function(e){return r._owner=e,r}).catch(function(){return r}):r})}]}},s={data:l};return{initUi:function(){e.addNavigation({parent:{name:S("Accounts"),icon:"c8y-accounts"},name:S("Users"),path:c().replace(/^\//,""),icon:n,priority:5e3,routerLinkExact:!1,showIfPermissions:{anyRole:o}}),r.when(C,a),r.when(L,i),r.when(O,i),r.when(O,u),t.addTitle(O,s)},$get:d};function c(e){return"/users".concat(e||"")}function l(e,r){return e.when({title:r.userId})}function d(a,r,t,n,i,o,e,u,s,c,l,d,f,g,y){var p,f=f();return i.current().then(function(e){p=e.id}),{ROUTE_NEW_USER:L,fullName:function(e){return"".concat(e.firstName||""," ").concat(e.lastName||"")},toggleExpanded:function(e){var t=!e._expanded;(e._expanded=t)||!function r(e){_.forEach(e,function(e){e._expanded=t,r(e._owns)})}(e._owns);return e},createUserFlatTree:s.createUserFlatTree,visibleInList:function(e){return!_.get(e,"owner")||_.get(e,"_owner._expanded")},expandAll:function(e){_.forEach(e,function(e){e._expanded=!0})},collapseAll:function(e){_.forEach(e,function(e){delete e._expanded})},detailLink:h,editUser:function(e){r.path(h(e))},search:s.search,changeUser:function(e,r){var t={changeGlobalRoles:v,copyInventoryRoles:A,enable:E,disable:m,remove:b,delegate:I,removeDelegate:N},n="string"==typeof r?r:_.get(r,"name");return _.get(t,n,a.reject)(e,_.get(r,"data"))},getPasswordStrength:f.getStrengthForColor,getPasswordColor:f.getHexColorForColor,getPasswordIcon:f.getIconForColor,isTfaAvailable:i.isTfaAvailable,gotoList:function(){r.path(C)},userHierarchyActive:s.userHierarchyActive,hasAppManagement:function(e){return c.hasAnyRole(["ROLE_APPLICATION_MANAGEMENT_READ","ROLE_APPLICATION_MANAGEMENT_ADMIN"],e)},isUndeletable:function(e){return p?U(e)||c.hasRole(e,"ROLE_TENANT_ADMIN"):void 0},isCurrent:U,warnAboutUserLogOutIfNeeded:function(e,r){var t=r.rolesChanged,r=r.passwordChanged||t,n=d.get("c8yAuthBridgeService").getPreferredLoginOption(),o="OAUTH2_INTERNAL"===n.type,n=!_.isUndefined(n.sessionConfiguration);return e.id&&(!U(e)||t)&&o&&n&&r?(t=U(e)?S("Updating global roles will force you to log out. Do you want to proceed?"):g.getString('Updating password or global roles will force user "{{userName}}" to log out. Do you want to proceed?',e),y({title:S("Force user to log out"),body:t,status:"warning",size:"sm",labels:{ok:S("Update and log out user")}})):a.resolve()},EXTERNAL_ORIGIN_TEXT:S("You cannot edit the user since it is managed via your authorization server."),EXTERNAL_ORIGIN_TEXT_FOR_USERS_LIST_VIEW:S("You cannot edit global roles for user with external origin, since it is managed via your authorization server."),EXTERNAL_ORIGIN_DYNAMIC_ACCESS_MAPPING_EXCEPTION_TEXT:S("You cannot edit the user since it is managed via your authorization server, but the configuration allows for changing global roles."),LOCAL_USER_TEXT:S("You are about to create a local user which will not be able to log in via single sign-on.")};function h(e){return O.replace(/:userId/,e.id)}function v(e,r){r=_.map(r.roles,"id");return o.global.updateGroups(e,r)}function A(n){return a.all({copy:e.copyFromUserDialog(n),assignedRoles:i.listInventoryRoles(n)}).then(function(e){var r="replace"===e.copy.process,t=e.copy.roles,e=_.keyBy(e.assignedRoles.data.inventoryAssignments,"managedObject");return u.copyUserRoles(t,e,n,r)})}function m(e){return i.disable(e)}function E(e){return i.enable(e)}function b(r){var e=0<r.subusersCount;return t.open({component:"c8yUserRemovalModal",resolve:{user:function(){return r}}}).result.then(function(e){var t;return e.deleteAll?w(r,{deep:!0}).then(function(e){return e.reduce(function(e,r){return e.then(function(){return i.remove(r)})},a.resolve())}):_.isUndefined(e.newOwner)?a.resolve():(t=e.newOwner,w(r,{deep:!1}).then(function(e){return e.reduce(function(e,r){return e.then(function(){return i.save({id:r.id,owner:t})})},a.resolve())}))}).then(function(){return i.remove(r)}).then(function(){return l.success(g.getString('User "{{userName}}" deleted.',r))}).then(function(){return{removeUser:!e,refresh:e}})}function w(e,r){var o,t=1<arguments.length&&void 0!==r?r:{};return 0===e.subusersCount?a.resolve([]):(o=[],r=function e(r){o.push.apply(o,_toConsumableArray(r));var t=r.statistics.pageSize,n=r.paging.next,t=r.length>=t,n=n&&t?r.paging.next().then(e):a.resolve(o);return n},i.list({owner:e.id,withSubusersCount:!0,pageSize:n.MAX_PAGESIZE}).then(r).then(function(e){var r;return t.deep?(r=e.map(function(e){return w(e,t)}),a.all([].concat(_toConsumableArray(e),_toConsumableArray(r))).then(_.flattenDeep)):e}))}function I(e){return i.delegateTo(e).then(_.partial(T,e))}function T(e){return l.success(g.getString('You delegated to user "{{userName}}".',e))}function N(e){var r={id:e.id,delegatedBy:null};return i.save(r).then(_.partial(R,e))}function R(e){return l.success(g.getString('You removed delegation from user "{{userName}}".',e))}function U(e){return p&&p===e.id}}}e.$inject=["c8yNavigatorProvider","c8yViewsProvider","c8yTitleProvider","gettext"],angular.module("c8y.users").provider("c8yUsersUi",e)}();