@c8y/ng1-modules 1018.486.5 → 1018.496.6

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 (90) hide show
  1. package/NOTICES +1 -1
  2. package/administration-alarmMapping/views/index.html +2 -2
  3. package/administration-auditLogs/views/list.html +8 -7
  4. package/administration-deviceUsers/views/list.html +55 -18
  5. package/app-logs/app-logs/app-logs.html +10 -9
  6. package/applicationLinks/index.js +1 -1
  7. package/binaryArtefactsManagement/views/list.html +63 -23
  8. package/core/core/services/measurements.js +1 -1
  9. package/core/locales/de.po +246 -102
  10. package/core/locales/en.po +34 -15
  11. package/core/locales/es.po +21 -103
  12. package/core/locales/fr.po +20 -102
  13. package/core/locales/ja_JP.po +20 -102
  14. package/core/locales/ko.po +20 -102
  15. package/core/locales/nl.po +20 -102
  16. package/core/locales/pl.po +21 -103
  17. package/core/locales/pt_BR.po +38 -120
  18. package/core/locales/ru.po +21 -103
  19. package/core/locales/zh_CN.po +21 -103
  20. package/core/locales/zh_TW.po +21 -103
  21. package/core/ui/directives/map2.js +1 -1
  22. package/core/ui/itemSelector/itemSelector.html +1 -1
  23. package/core/ui/services/measurementsReport.js +1 -1
  24. package/core/ui/user/editUser.directive.html +3 -3
  25. package/core/ui/user/rolesUiStrings.constant.js +1 -1
  26. package/core/ui/views/modal.html +1 -1
  27. package/dataBroker/connectors/connectors.html +87 -32
  28. package/dataPointExplorer/controllers/dataPointExplorer.js +1 -1
  29. package/dataPointExplorer/index.js +1 -1
  30. package/dataPointExplorer/views/explorer.html +6 -2
  31. package/dataPointExplorer/views/widgetConfig.html +1 -0
  32. package/dataPointTable/index.js +1 -1
  33. package/dataPointTable/views/widgetConfig.html +1 -3
  34. package/device-protocol-deviceDatabase4/device-type-protocol-base.provider.js +1 -1
  35. package/device-protocols/deviceProtocolList.html +4 -4
  36. package/device-protocols/deviceProtocolView.html +34 -14
  37. package/deviceDatabase4/cumulocity.json +4 -6
  38. package/deviceDatabase4/detail/device-type-detail.component.js +1 -1
  39. package/deviceDatabase4/detail/device-type-detail.html +1 -0
  40. package/deviceDatabase4/modals/configure-register.component.js +1 -1
  41. package/deviceDatabase4/modals/configure-register.html +2 -2
  42. package/deviceDatabase4/validate-measurement-fragment.directive.js +1 -0
  43. package/deviceList/views/index.html +4 -1
  44. package/devicemanagement-alarmList/views/index.html +57 -19
  45. package/devicemanagement-availability/controllers/availability.js +1 -1
  46. package/devicemanagement-availability/views/detail.html +19 -8
  47. package/devicemanagement-eventList/views/index.html +6 -2
  48. package/enterpriseEdition/enterpriseEdition.module.js +1 -1
  49. package/eventList/index.js +1 -1
  50. package/export/directives/timespan.js +1 -1
  51. package/export/services/filters.js +1 -1
  52. package/export/views/detail.html +1 -1
  53. package/export/views/list.html +21 -0
  54. package/export/views/properties.html +3 -3
  55. package/export/views/timespan.html +38 -9
  56. package/measurements/fragmentChart/fragmentChart.component.js +1 -1
  57. package/measurements/measurements2/series.service.js +1 -1
  58. package/modbusConfiguration4/fieldbus-config.html +2 -1
  59. package/modbusConfiguration4/fieldbus-device-list.html +3 -1
  60. package/package.json +1 -1
  61. package/platformConfiguration/cumulocity.json +1 -1
  62. package/platformConfiguration/platformConfiguration.component.js +1 -0
  63. package/platformConfiguration/platformConfiguration.html +22 -0
  64. package/platformConfiguration/platformConfigurationUi.provider.js +1 -1
  65. package/scada/config.controller.js +1 -1
  66. package/scada/views/componentConfig.html +28 -14
  67. package/scada/widget.controller.js +1 -1
  68. package/tenantPolicies/tenantPolicyList/tenantPolicyList.html +90 -25
  69. package/tenantStatistics/tenant-statistics.html +23 -14
  70. package/tenants/views/detail.html +1 -1
  71. package/userRoles/inventoryRolesTab/inventoryRolesTab.component.js +1 -1
  72. package/userRoles/inventoryRolesTab/inventoryRolesTab.html +16 -10
  73. package/users/userListView/userListView.html +47 -17
  74. package/users/usersUi.provider.js +1 -1
  75. package/deviceControlMessage/controllers/deviceControlMessageWidget.js +0 -1
  76. package/deviceControlMessage/cumulocity.json +0 -15
  77. package/deviceControlMessage/img/message-widget-pr.png +0 -0
  78. package/deviceControlMessage/index.js +0 -1
  79. package/deviceControlMessage/views/deviceControlMessageWidget.html +0 -26
  80. package/infoGauge/cumulocity.json +0 -20
  81. package/infoGauge/img/info-gauge-widget-pr.png +0 -0
  82. package/infoGauge/index.js +0 -1
  83. package/infoGauge/infoGauge.controller.js +0 -1
  84. package/infoGauge/infoGauge.service.js +0 -1
  85. package/infoGauge/infoGaugeConfig.controller.js +0 -1
  86. package/infoGauge/infoGaugeWidget.config.html +0 -58
  87. package/infoGauge/infoGaugeWidget.html +0 -32
  88. package/infoGauge/style.less +0 -0
  89. package/platformConfiguration/platformConfigurationForm.component.js +0 -1
  90. package/platformConfiguration/platformConfigurationForm.html +0 -50
@@ -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 _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function e(e,t,a,o,n,i,r){var u,l,d,s,m,c,g,S=this,f="elementForm",I={IS_REQUIRED:"required",IS_VALID_NAME:"valid-name",IS_VALID_BIT_RANGE:"valid-bit-range",IS_VALID_MEASUREMENT:"valid-measurement",IS_VALUE_IN_REGISTER_RANGE:"value-in-register-range",IS_VALID_NO_BITS_FOR_SIGNED_REGISTER:"no-bits-for-signed-register",IS_VALID_MESSAGEID:"valid-messageID",IS_VALID_BROWSEPATH:"valid-browsePath",IS_VALID_OID:"valid-oid",IS_MIN:"min",IS_MAX:"max",IS_UNIQUE:"unique",PATTERN:"pattern",HEXNUMBER:"hexnumber"},p=i("Value out of range. Allowed values from {{min | number}} to {{max | number}}."),v=i('This will be matched with the message ID extracted from the protocol\'s data according to the "Source" setting.');function y(){"read"===S.readWriteMutexValue?(l.meta.showStatus=!0,l.meta.updateStatus=!1):(l.meta.showStatus=!1,l.meta.updateStatus=!0)}function E(e){e=S.features.functionalities[e];return e&&(!e.showIf||e.showIf(S.element))}function h(){return _.get(u,"number.min",1)}function V(){return _.get(u,"number.max",65536)}function b(e){var t=_.get(u,"noBits.max");return _.isNumber(t)&&_.isNumber(e)?t-e:t}_.assign(S,{$onInit:function(){var e=S.resolve;l=e.element,d=e.existingElements,s=e.existingCategories,m=e.deviceType,c=e.fieldbusType,function(){var e=l.input?"input":"holding";u=S.resolve.features["".concat(e,"Registers")],_.assign(S,{features:u,dataTypes:_.get(u,"dataType.choices"),accessTypes:_.get(u,"accessType.choices")})}(),S.element=o.addRegisterMeta(l,m),S.categories=s,S.deviceType=m,S.fieldbusType=c,function(){var e;_defineProperty(e={},I.IS_REQUIRED,i("This field is required.")),_defineProperty(e,I.IS_VALID_NAME,_.get(u,"validation.invalidName",i("Name must be unique among registers."))),_defineProperty(e,I.IS_VALID_BIT_RANGE,i("Selected number, start bit or number of bits overlap with another register.")),_defineProperty(e,I.IS_VALID_MEASUREMENT,_.get(u,"validation.invalidMeasurement",i("Selected measurement type and series are already used by another register."))),_defineProperty(e,I.IS_MIN,i("Value cannot be lower than minimum.")),_defineProperty(e,I.IS_MAX,i("Value cannot be greater than maximum.")),_defineProperty(e,I.IS_UNIQUE,i("Value cannot be used more than once.")),_defineProperty(e,I.IS_VALID_NO_BITS_FOR_SIGNED_REGISTER,i("At least two bits needed for signed register.")),_defineProperty(e,I.IS_VALID_MESSAGEID,i("Invalid hexadecimal number.")),_defineProperty(e,I.IS_VALID_BROWSEPATH,i("Invalid browse path.")),_defineProperty(e,I.IS_VALID_OID,_.get(u,"validation.invalidOid",i("OID must be unique among components."))),_defineProperty(e,I.PATTERN,i("Dots not allowed.")),_defineProperty(e,I.HEXNUMBER,i("Must be a valid hexadecimal number.")),g=e}(),u.functionalities.readWriteMutex&&(S.readWriteMutexValue="read",l.meta.updateStatus&&(S.readWriteMutexValue="write"),y())},PATTERN_VALIDATE_FRAGMENT_SERIES:"^[^.]*$",alarmSeverities:n.severityList,getValuePlaceholder:function(e){var t=r.getString("no value");_.isUndefined(e)||_.isNaN(e)||(t=e);return"(".concat(t,")")},addEnumValue:o.addEmptyEnumValue,removeEnumValue:o.removeEnumValue,invalid:function(e){return function(e){{var t,n;"number"===e&&_.get(u,"number.useHex")&&(e=_.get(S,"".concat(f,".number")),(n=_.get(e,"$modelValue"))?(n.startsWith("0x")&&(n=n.substring(2)),t=parseInt(n,16),n=t.toString(16)===n.toLowerCase(),e.$setValidity(I.IS_VALID_MESSAGEID,n),e.$setValidity(I.IS_MIN,!n||t>=h()),e.$setValidity(I.IS_MAX,!n||t<=V())):e.$setValidity(I.IS_VALID_MESSAGEID,!0))}}(e),function(e){var t=S[f];"browsePath"===e&&(e=t.browsePath.$viewValue,t.browsePath.$setValidity(I.IS_VALID_BROWSEPATH,/^|((\d)+:[^/]+)([/](\d)+:[^/]+)*$/.test(e)))}(e),function(){var t=S[f].name,n=_.get(l,"meta"),e=_.isUndefined(t.$modelValue)||_.every(d,function(e){return e.name===_.get(n,"original.name")||e.name!==t.$modelValue});t.$setValidity(I.IS_VALID_NAME,e)}(),function(){var e=S[f],n=e.number,a=e.startBit,i=e.noBits,r=_.get(l,"meta"),e=!n||_.isUndefined(n.$modelValue)||_.isUndefined(a.$modelValue)||_.isUndefined(i.$modelValue)||!_.some(d,function(e){var t=n.$modelValue;_.get(u,"number.useHex")&&t&&-1===t.indexOf("0x")&&(t="0x".concat(t));return(!r||!(_.get(r,"original.number")===e.number&&r.original.startBit===e.startBit))&&e.input===l.input&&o.areOverlappingRegisters(e,{number:t,startBit:a.$modelValue,noBits:i.$modelValue},u)});n&&n.$setValidity(I.IS_VALID_BIT_RANGE,e);a&&a.$setValidity(I.IS_VALID_BIT_RANGE,e);i&&i.$setValidity(I.IS_VALID_BIT_RANGE,e)}(),function(){var e=S[f],i=_.get(e,"messageTypeId.$modelValue"),t=e.measurementType,r=_.get(t,"$modelValue"),e=e.measurementSeries,o=_.get(e,"$modelValue"),s=_.get(l,"meta"),n=!_.get(s,"sendMeasurement")||_.isUndefined(r)||_.isUndefined(o)||!_.some(d,function(e){var t=!1,n=_.get(l,"id")===_.get(e,"id"),a=u.number&&_.get(s,"original.number")===e.number&&_.get(s,"original.startBit")===e.startBit&&_.get(s,"original.input")===e.input;return t=n||a?t:(!u.messageTypeId||_.get(e,"messageTypeId")===i)&&_.get(e,"measurementMapping.type")===r&&_.get(e,"measurementMapping.series")===o});t&&t.$setValidity(I.IS_VALID_MEASUREMENT,n);e&&e.$setValidity(I.IS_VALID_MEASUREMENT,n)}(),function(){var e=_.get(S,"".concat(f,".noBits"));{var t;e&&(t=!l.signed||l.signed&&!_.isUndefined(e.$modelValue)&&1<e.$modelValue,e.$setValidity(I.IS_VALID_NO_BITS_FOR_SIGNED_REGISTER,t))}}(),function(e){var t=S[f];{var n,a;"oid"===e&&(n=t.oid,a=_.get(l,"meta"),e=_.isUndefined(n.$modelValue)||_.every(d,function(e){return e.oid===_.get(a,"original.oid")||e.oid!==n.$modelValue}),n.$setValidity(I.IS_VALID_OID,e))}}(e),a.invalid(S,f,e)},validationHints:function(e,t){var n=_.cloneDeep(g),t=_.get(t,"validateValueInRegisterRange");t&&(n[I.IS_VALUE_IN_REGISTER_RANGE]=r.getString(p,t));return a.validationHints(e,n)},onAccessTypeChange:function(){E("showStatus")||(S.element.meta.showStatus=!1);!S.element.input&&E("updateStatus")||(S.element.meta.updateStatus=!1);S.shouldEnableShowStatusStandardFunctionalities()&&E("sendMeasurement")||(S.element.meta.sendMeasurement=!1);S.shouldEnableShowStatusStandardFunctionalities()&&E("raiseAlarm")||(S.element.meta.raiseAlarm=!1);S.shouldEnableShowStatusStandardFunctionalities()&&E("sendEvent")||(S.element.meta.sendEvent=!1)},onUpdateStatusCheckboxChange:function(){l.meta.updateStatus&&(l.meta.showStatus=!0)},onStatusMappingRadiosChange:y,save:function(){(function(){var e=[];S.features.functionalities.readWriteMutex&&(e=["measurementMapping","eventMapping","alarmMapping"],"read"===S.readWriteMutexValue)&&(e=["min","max"]);l.noBits<=8&&e.push("littleEndian");_.forEach(e,function(e){return _.unset(l,e)})})(),S.close({$value:o.removeRegisterMeta(l)})},messageTypeIdMax:function(){var e=void 0;return _.get(m,"c8y_MessageIdConfiguration.source")!==o.MessageIdSources.PAYLOAD.value?e:(e=_.get(m,"c8y_MessageIdConfiguration.messageIdMapping.noBits"),Math.pow(2,e)-1)},startBitMax:function(){return _.get(u,"startBit.max")},noBitsMax:b,getNumberMin:h,getNumberMax:V,shouldShowOptions:function(){return _.some(S.features.options,Boolean)},shouldShowNormalisationSection:function(){return _.some([S.features.multiplier,S.features.divisor,S.features.offset,S.features.decimalPlaces,S.features.unit,_.get(S.element,"meta.updateStatus",!1)],Boolean)},shouldShowFunctionalities:function(){var e=S.features.functionalities,t=e.readWriteMutex,n=e.showStatus&&S.shouldShowFunctionality("showStatus"),a=e.updateStatus&&!S.element.input&&S.shouldShowFunctionality("updateStatus"),i=S.shouldEnableShowStatusStandardFunctionalities()&&(S.shouldShowFunctionality("sendMeasurement")||S.shouldShowFunctionality("raiseAlarm")||S.shouldShowFunctionality("sendEvent")),e=e.sendManagedObjectUpdate;return t||n||a||i||e},shouldEnableShowStatusStandardFunctionalities:function(){return!(S.features.functionalities.readWriteMutex&&"write"===S.readWriteMutexValue)},shouldShowFunctionality:E,messageIdTooltip:v}),e.$watch("vm.element.startBit",function(){var e=b(l.startBit);l.noBits>e&&(l.noBits=e)}),e.$watchGroup(["vm.element.min","vm.element.max","vm.element.noBits","vm.element.multiplier","vm.element.divisor","vm.element.decimalPlaces","vm.element.signed","vm.element.meta.dataType"],function(){var e=l.meta;e&&(e.valuesRange=o.getValuesRange(l))})}e.$inject=["$scope","$q","c8yBase","c8yDeviceDatabase","c8yAlarms","gettext","gettextCatalog"],angular.module("c8y.deviceDatabase4").component("c8yConfigureRegisterModal",{templateUrl:":::PLUGIN_PATH:::/modals/configure-register.html",bindings:{resolve:"<",close:"&",dismiss:"&"},controllerAs:"vm",controller:e})}();
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 _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function e(e,t,a,o,n,i,r){var u,l,d,s,m,c,g,S=this,f="elementForm",I={IS_REQUIRED:"required",IS_VALID_NAME:"valid-name",IS_VALID_BIT_RANGE:"valid-bit-range",IS_VALID_MEASUREMENT:"valid-measurement",IS_VALUE_IN_REGISTER_RANGE:"value-in-register-range",IS_VALID_NO_BITS_FOR_SIGNED_REGISTER:"no-bits-for-signed-register",IS_VALID_MESSAGEID:"valid-messageID",IS_VALID_BROWSEPATH:"valid-browsePath",IS_VALID_OID:"valid-oid",IS_MIN:"min",IS_MAX:"max",IS_UNIQUE:"unique",PATTERN:"pattern",HEXNUMBER:"hexnumber",MEASUREMENT_FRAGMENT:"measurement-fragment"},p=i("Value out of range. Allowed values from {{min | number}} to {{max | number}}."),v=i('This will be matched with the message ID extracted from the protocol\'s data according to the "Source" setting.');function y(){"read"===S.readWriteMutexValue?(l.meta.showStatus=!0,l.meta.updateStatus=!1):(l.meta.showStatus=!1,l.meta.updateStatus=!0)}function E(e){e=S.features.functionalities[e];return e&&(!e.showIf||e.showIf(S.element))}function h(){return _.get(u,"number.min",1)}function V(){return _.get(u,"number.max",65536)}function b(e){var t=_.get(u,"noBits.max");return _.isNumber(t)&&_.isNumber(e)?t-e:t}_.assign(S,{$onInit:function(){var e=S.resolve;l=e.element,d=e.existingElements,s=e.existingCategories,m=e.deviceType,c=e.fieldbusType,function(){var e=l.input?"input":"holding";u=S.resolve.features["".concat(e,"Registers")],_.assign(S,{features:u,dataTypes:_.get(u,"dataType.choices"),accessTypes:_.get(u,"accessType.choices")})}(),S.element=o.addRegisterMeta(l,m),S.categories=s,S.deviceType=m,S.fieldbusType=c,function(){var e;_defineProperty(e={},I.IS_REQUIRED,i("This field is required.")),_defineProperty(e,I.IS_VALID_NAME,_.get(u,"validation.invalidName",i("Name must be unique among registers."))),_defineProperty(e,I.IS_VALID_BIT_RANGE,i("Selected number, start bit or number of bits overlap with another register.")),_defineProperty(e,I.IS_VALID_MEASUREMENT,_.get(u,"validation.invalidMeasurement",i("Selected measurement type and series are already used by another register."))),_defineProperty(e,I.IS_MIN,i("Value cannot be lower than minimum.")),_defineProperty(e,I.IS_MAX,i("Value cannot be greater than maximum.")),_defineProperty(e,I.IS_UNIQUE,i("Value cannot be used more than once.")),_defineProperty(e,I.IS_VALID_NO_BITS_FOR_SIGNED_REGISTER,i("At least two bits needed for signed register.")),_defineProperty(e,I.IS_VALID_MESSAGEID,i("Invalid hexadecimal number.")),_defineProperty(e,I.IS_VALID_BROWSEPATH,i("Invalid browse path.")),_defineProperty(e,I.IS_VALID_OID,_.get(u,"validation.invalidOid",i("OID must be unique among components."))),_defineProperty(e,I.PATTERN,i("Must be a valid number.")),_defineProperty(e,I.HEXNUMBER,i("Must be a valid hexadecimal number.")),_defineProperty(e,I.MEASUREMENT_FRAGMENT,i("Must not contain whitespaces nor the special characters .,*[]()@$")),g=e}(),u.functionalities.readWriteMutex&&(S.readWriteMutexValue="read",l.meta.updateStatus&&(S.readWriteMutexValue="write"),y())},PATTERN_VALIDATE_FRAGMENT_SERIES:"^[^.]*$",alarmSeverities:n.severityList,getValuePlaceholder:function(e){var t=r.getString("no value");_.isUndefined(e)||_.isNaN(e)||(t=e);return"(".concat(t,")")},addEnumValue:o.addEmptyEnumValue,removeEnumValue:o.removeEnumValue,invalid:function(e){return function(e){{var t,n;"number"===e&&_.get(u,"number.useHex")&&(e=_.get(S,"".concat(f,".number")),(n=_.get(e,"$modelValue"))?(n.startsWith("0x")&&(n=n.substring(2)),t=parseInt(n,16),n=t.toString(16)===n.toLowerCase(),e.$setValidity(I.IS_VALID_MESSAGEID,n),e.$setValidity(I.IS_MIN,!n||t>=h()),e.$setValidity(I.IS_MAX,!n||t<=V())):e.$setValidity(I.IS_VALID_MESSAGEID,!0))}}(e),function(e){var t=S[f];"browsePath"===e&&(e=t.browsePath.$viewValue,t.browsePath.$setValidity(I.IS_VALID_BROWSEPATH,/^|((\d)+:[^/]+)([/](\d)+:[^/]+)*$/.test(e)))}(e),function(){var t=S[f].name,n=_.get(l,"meta"),e=_.isUndefined(t.$modelValue)||_.every(d,function(e){return e.name===_.get(n,"original.name")||e.name!==t.$modelValue});t.$setValidity(I.IS_VALID_NAME,e)}(),function(){var e=S[f],n=e.number,a=e.startBit,i=e.noBits,r=_.get(l,"meta"),e=!n||_.isUndefined(n.$modelValue)||_.isUndefined(a.$modelValue)||_.isUndefined(i.$modelValue)||!_.some(d,function(e){var t=n.$modelValue;_.get(u,"number.useHex")&&t&&-1===t.indexOf("0x")&&(t="0x".concat(t));return(!r||!(_.get(r,"original.number")===e.number&&r.original.startBit===e.startBit))&&e.input===l.input&&o.areOverlappingRegisters(e,{number:t,startBit:a.$modelValue,noBits:i.$modelValue},u)});n&&n.$setValidity(I.IS_VALID_BIT_RANGE,e);a&&a.$setValidity(I.IS_VALID_BIT_RANGE,e);i&&i.$setValidity(I.IS_VALID_BIT_RANGE,e)}(),function(){var e=S[f],i=_.get(e,"messageTypeId.$modelValue"),t=e.measurementType,r=_.get(t,"$modelValue"),e=e.measurementSeries,o=_.get(e,"$modelValue"),s=_.get(l,"meta"),n=!_.get(s,"sendMeasurement")||_.isUndefined(r)||_.isUndefined(o)||!_.some(d,function(e){var t=!1,n=_.get(l,"id")===_.get(e,"id"),a=u.number&&_.get(s,"original.number")===e.number&&_.get(s,"original.startBit")===e.startBit&&_.get(s,"original.input")===e.input;return t=n||a?t:(!u.messageTypeId||_.get(e,"messageTypeId")===i)&&_.get(e,"measurementMapping.type")===r&&_.get(e,"measurementMapping.series")===o});t&&t.$setValidity(I.IS_VALID_MEASUREMENT,n);e&&e.$setValidity(I.IS_VALID_MEASUREMENT,n)}(),function(){var e=_.get(S,"".concat(f,".noBits"));{var t;e&&(t=!l.signed||l.signed&&!_.isUndefined(e.$modelValue)&&1<e.$modelValue,e.$setValidity(I.IS_VALID_NO_BITS_FOR_SIGNED_REGISTER,t))}}(),function(e){var t=S[f];{var n,a;"oid"===e&&(n=t.oid,a=_.get(l,"meta"),e=_.isUndefined(n.$modelValue)||_.every(d,function(e){return e.oid===_.get(a,"original.oid")||e.oid!==n.$modelValue}),n.$setValidity(I.IS_VALID_OID,e))}}(e),a.invalid(S,f,e)},validationHints:function(e,t){var n=_.cloneDeep(g),t=_.get(t,"validateValueInRegisterRange");t&&(n[I.IS_VALUE_IN_REGISTER_RANGE]=r.getString(p,t));return a.validationHints(e,n)},onAccessTypeChange:function(){E("showStatus")||(S.element.meta.showStatus=!1);!S.element.input&&E("updateStatus")||(S.element.meta.updateStatus=!1);S.shouldEnableShowStatusStandardFunctionalities()&&E("sendMeasurement")||(S.element.meta.sendMeasurement=!1);S.shouldEnableShowStatusStandardFunctionalities()&&E("raiseAlarm")||(S.element.meta.raiseAlarm=!1);S.shouldEnableShowStatusStandardFunctionalities()&&E("sendEvent")||(S.element.meta.sendEvent=!1)},onUpdateStatusCheckboxChange:function(){l.meta.updateStatus&&(l.meta.showStatus=!0)},onStatusMappingRadiosChange:y,save:function(){(function(){var e=[];S.features.functionalities.readWriteMutex&&(e=["measurementMapping","eventMapping","alarmMapping"],"read"===S.readWriteMutexValue)&&(e=["min","max"]);l.noBits<=8&&e.push("littleEndian");_.forEach(e,function(e){return _.unset(l,e)})})(),S.close({$value:o.removeRegisterMeta(l)})},messageTypeIdMax:function(){var e=void 0;return _.get(m,"c8y_MessageIdConfiguration.source")!==o.MessageIdSources.PAYLOAD.value?e:(e=_.get(m,"c8y_MessageIdConfiguration.messageIdMapping.noBits"),Math.pow(2,e)-1)},startBitMax:function(){return _.get(u,"startBit.max")},noBitsMax:b,getNumberMin:h,getNumberMax:V,shouldShowOptions:function(){return _.some(S.features.options,Boolean)},shouldShowNormalisationSection:function(){return _.some([S.features.multiplier,S.features.divisor,S.features.offset,S.features.decimalPlaces,S.features.unit,_.get(S.element,"meta.updateStatus",!1)],Boolean)},shouldShowFunctionalities:function(){var e=S.features.functionalities,t=e.readWriteMutex,n=e.showStatus&&S.shouldShowFunctionality("showStatus"),a=e.updateStatus&&!S.element.input&&S.shouldShowFunctionality("updateStatus"),i=S.shouldEnableShowStatusStandardFunctionalities()&&(S.shouldShowFunctionality("sendMeasurement")||S.shouldShowFunctionality("raiseAlarm")||S.shouldShowFunctionality("sendEvent")),e=e.sendManagedObjectUpdate;return t||n||a||i||e},shouldEnableShowStatusStandardFunctionalities:function(){return!(S.features.functionalities.readWriteMutex&&"write"===S.readWriteMutexValue)},shouldShowFunctionality:E,messageIdTooltip:v}),e.$watch("vm.element.startBit",function(){var e=b(l.startBit);l.noBits>e&&(l.noBits=e)}),e.$watchGroup(["vm.element.min","vm.element.max","vm.element.noBits","vm.element.multiplier","vm.element.divisor","vm.element.decimalPlaces","vm.element.signed","vm.element.meta.dataType"],function(){var e=l.meta;e&&(e.valuesRange=o.getValuesRange(l))})}e.$inject=["$scope","$q","c8yBase","c8yDeviceDatabase","c8yAlarms","gettext","gettextCatalog"],angular.module("c8y.deviceDatabase4").component("c8yConfigureRegisterModal",{templateUrl:":::PLUGIN_PATH:::/modals/configure-register.html",bindings:{resolve:"<",close:"&",dismiss:"&"},controllerAs:"vm",controller:e})}();
@@ -1035,7 +1035,7 @@
1035
1035
  class="form-control"
1036
1036
  id="measurementType"
1037
1037
  name="measurementType"
1038
- ng-pattern="vm.PATTERN_VALIDATE_FRAGMENT_SERIES"
1038
+ validate-measurement-fragment
1039
1039
  ng-model="vm.element.measurementMapping.type"
1040
1040
  placeholder="{{ 'e.g.' | translate }} c8y_Temperature"
1041
1041
  ng-required="vm.element.meta.sendMeasurement"
@@ -1055,7 +1055,7 @@
1055
1055
  class="form-control"
1056
1056
  id="measurementSeries"
1057
1057
  name="measurementSeries"
1058
- ng-pattern="vm.PATTERN_VALIDATE_FRAGMENT_SERIES"
1058
+ validate-measurement-fragment
1059
1059
  ng-model="vm.element.measurementMapping.series"
1060
1060
  placeholder="{{ 'e.g.' | translate }} T"
1061
1061
  ng-required="vm.element.meta.sendMeasurement"
@@ -0,0 +1 @@
1
+ "use strict";angular.module("c8y.deviceDatabase4").directive("validateMeasurementFragment",function(){return{restrict:"A",require:"ngModel",link:function(e,t,r,n){var a=/^[^.,*[\]()@$]*$/;n.$validators["measurement-fragment"]=function(e){return a.test(e)}}}});
@@ -1,4 +1,7 @@
1
1
  <div ng-controller="DeviceListCtrl as ctrl">
2
2
  <c8y-help src="/users-guide/device-management/#viewing-devices"></c8y-help>
3
- <c8y-device-list parent-device-id="ctrl.deviceId" set-titles="true"></c8y-device-list>
3
+ <c8y-device-list
4
+ set-titles="true"
5
+ parent-device-id="ctrl.deviceId"
6
+ ></c8y-device-list>
4
7
  </div>
@@ -15,40 +15,58 @@
15
15
 
16
16
  <div ng-controller="alarmListCtrl as vm">
17
17
  <c8y-ui-action-bar-set>
18
- <li class="navbar-form" action-bar-position="left">
18
+ <li
19
+ class="navbar-form"
20
+ action-bar-position="left"
21
+ >
19
22
  <div class="btn-group btn-group-sm">
20
23
  <button
24
+ class="btn btn-default btn-sm d-flex a-i-center"
25
+ ng-class="{ active: severity.active }"
21
26
  title="{{ severity.name | lowercase | humanize | translate }}"
22
- ng-repeat="severity in vm.severities"
23
27
  type="button"
24
- class="btn btn-default btn-sm d-flex a-i-center"
28
+ ng-repeat="severity in vm.severities"
25
29
  ng-model="severity.active"
26
30
  ng-click="severity.toggleActive()"
27
- ng-class="{ active: severity.active }"
28
31
  >
29
32
  <i
30
- c8y-icon="{{ vm.icon(severity.name) }}"
31
33
  class="status m-r-4 icon-14 stroked-icon"
32
34
  ng-class="severity.name | lowercase"
35
+ c8y-icon="{{ vm.icon(severity.name) }}"
33
36
  ></i>
34
37
 
35
38
  <span
36
39
  class="hidden-md hidden-sm text-truncate m-r-4"
37
40
  ng-bind="severity.name | lowercase | humanize | translate"
38
41
  ></span>
39
- <span ng-if="severity.active" class="badge badge-info flex-no-shrink">
42
+ <span
43
+ class="badge badge-info flex-no-shrink"
44
+ ng-if="severity.active"
45
+ >
40
46
  <span ng-if="severity.countLoading">
41
- <i c8y-icon="circle-o-notch" class="icon-spin"></i>
47
+ <i
48
+ class="icon-spin"
49
+ c8y-icon="circle-o-notch"
50
+ ></i>
42
51
  </span>
43
- <span ng-if="!severity.countLoading" ng-bind="severity.count"></span>
52
+ <span
53
+ ng-if="!severity.countLoading"
54
+ ng-bind="severity.count"
55
+ ></span>
44
56
  </span>
45
57
  </button>
46
58
  </div>
47
59
  </li>
48
60
  </c8y-ui-action-bar-set>
49
61
  <c8y-ui-action-bar-set>
50
- <li class="navbar-form" action-bar-position="right">
51
- <label class="c8y-switch" aria-label="{{ 'Show cleared alarms' | translate }}">
62
+ <li
63
+ class="navbar-form"
64
+ action-bar-position="right"
65
+ >
66
+ <label
67
+ class="c8y-switch"
68
+ aria-label="{{ 'Show cleared alarms' | translate }}"
69
+ >
52
70
  <input
53
71
  type="checkbox"
54
72
  ng-model="vm.unresolved"
@@ -57,7 +75,10 @@
57
75
  ng-false-value="true"
58
76
  />
59
77
  <span></span>
60
- <span title="{{ 'Show cleared alarms' | translate }}" class="text-truncate">
78
+ <span
79
+ class="text-truncate"
80
+ title="{{ 'Show cleared alarms' | translate }}"
81
+ >
61
82
  {{ 'Show cleared alarms' | translate }}
62
83
  </span>
63
84
  </label>
@@ -66,13 +87,19 @@
66
87
  <c8y-ui-action-bar-set>
67
88
  <li action-bar-position="right">
68
89
  <button
90
+ class="btn btn-link d-flex a-i-center"
69
91
  title="{{ 'Clear all alarms' | translate }}"
70
92
  type="button"
71
- class="btn btn-link d-flex a-i-center"
72
93
  ng-click="vm.resolveAll()"
73
94
  >
74
- <i c8y-icon="c8y-alert-idle" class="m-r-4"></i>
75
- <span class="text-truncate" title="{{ 'Clear all`alarms`' | translate }}">
95
+ <i
96
+ class="m-r-4"
97
+ c8y-icon="c8y-alert-idle"
98
+ ></i>
99
+ <span
100
+ class="text-truncate"
101
+ title="{{ 'Clear all`alarms`' | translate }}"
102
+ >
76
103
  {{ 'Clear all`alarms`' | translate }}
77
104
  </span>
78
105
  </button>
@@ -80,19 +107,30 @@
80
107
  </c8y-ui-action-bar-set>
81
108
  <c8y-ui-action-bar-set>
82
109
  <li action-bar-position="right">
83
- <c8y-realtime-switch class="d-contents" state="vm.realtime"></c8y-realtime-switch>
110
+ <c8y-realtime-switch
111
+ class="d-contents"
112
+ state="vm.realtime"
113
+ ></c8y-realtime-switch>
84
114
  </li>
85
115
  </c8y-ui-action-bar-set>
86
116
  <c8y-ui-action-bar-set>
87
117
  <li action-bar-position="right">
88
118
  <button
119
+ class="btn btn-link d-flex a-i-center"
89
120
  title="{{ 'Refresh alarm list contents' | translate }}"
90
121
  type="button"
91
- class="btn btn-link d-flex a-i-center"
92
122
  ng-click="vm.refresh()"
93
123
  >
94
- <i c8y-icon="refresh" ng-class="{ 'icon-spin': vm.isRefreshing() }"></i>
95
- <span class="m-l-4 text-truncate" translate>Reload</span>
124
+ <i
125
+ ng-class="{ 'icon-spin': vm.isRefreshing() }"
126
+ c8y-icon="refresh"
127
+ ></i>
128
+ <span
129
+ class="m-l-4 text-truncate"
130
+ translate
131
+ >
132
+ Reload
133
+ </span>
96
134
  </button>
97
135
  </li>
98
136
  </c8y-ui-action-bar-set>
@@ -102,13 +140,13 @@
102
140
  <div class="row">
103
141
  <c8y-alarm-list
104
142
  class="col-lg-6 c8y-alarm-list"
143
+ data-title="{text:(severity.name | lowercase | humanize | translate), icon:vm.icon(severity.name), class:(severity.name | lowercase)}"
105
144
  ng-repeat="severity in vm.severities"
106
145
  ng-if="severity.active"
107
146
  filter="severity.filters"
108
147
  active-severities="{[severity.name]: true}"
109
148
  realtime="vm.realtime"
110
149
  hide-header-actions="true"
111
- data-title="{text:(severity.name | lowercase | humanize | translate), icon:vm.icon(severity.name), class:(severity.name | lowercase)}"
112
150
  refresh-loading="severity.refreshing"
113
151
  ></c8y-alarm-list>
114
152
  </div>
@@ -1 +1 @@
1
- "use strict";!function(){function t(n,t,o,l,a,r){var i,u=t.deviceId,c={},t=a("Availability percentage is based on the number of critical alarms raised and cleared."),e=a("Operability chart displays how many devices had their average availability on particular level in the last month."),d=o.createEnum([{name:"DAY",value:"day",label:a("Last 24 hours availability")},{name:"WEEK",value:"week",label:a("Last 7 days availability")},{name:"MONTH",value:"month",label:a("Last 30 days availability")}]),m=o.createEnum([{name:"DOWNTIME",value:"downtime",label:a("Downtime"),color:"#d9534f"},{name:"UPTIME",value:"uptime",label:a("Uptime"),color:"#5cb85c"}]);function v(r){t=r,a=moment().add(1,"day"),t=moment().subtract(1,t.value),e=o.dateFullFormat;var t,a,e,i={dateFrom:t.format(e),dateTo:a.format(e),id:u};return(i.id?l.reports.downtimeDuration(i):l.reports.downtimeDurationAggregation(i)).then(function(t){var a,e,n;a=r,e=i,t=t.data,n=t.downtimeDuration,e=f(i,t)-n,c[a.name]={name:a.name,label:a.label,order:a.ordinal,data:[{key:m.DOWNTIME.value,val:n},{key:m.UPTIME.value,val:e}]}})}function f(t,a){var a=1<arguments.length&&void 0!==a?a:{},e=moment(t.dateFrom),t=moment(t.dateTo),n=1;return"number"==typeof a.deviceCount?n=a.deviceCount:Array.isArray(a.availabilityStats)&&(n=a.availabilityStats.length),t.diff(e,"seconds")*(n||1)}function s(t){var a=_.find(t,{key:m.UPTIME.value}).val;return a/(a+_.find(t,{key:m.DOWNTIME.value}).val)*100}_.assign(n,{intervalsData:c,availabilityTooltip:t,operabilityTooltip:e,x:function(){return function(t){return t.key}},y:function(){return function(t){return t.val}},xGraph:function(){return function(t){return t[0]}},yGraph:function(){return function(t){return t[1]}},xTickFormat:function(){return function(t){return"".concat(t,"%")}},color:function(){return function(t){return _.find(m,{value:t.data.key}).color}},colorGraph:function(){return function(){return m.UPTIME.color}},tooltip:function(){return function(t){return r.getString(_.find(m,{value:t}).label)}},tooltipGraph:function(){return function(t,a,e){e=Math.round(e);return r.getPlural(e,"1 device","{{$count}} devices",{})}},percentage:s,percentageClass:function(t){return 50<s(t)?"text-success":"text-danger"}}),d.values().forEach(v),u||(a=o.dateFullFormat,i={dateFrom:moment().subtract(1,"month").format(a),dateTo:moment().add(1,"day").format(a)},l.reports.downtimeDuration(i).then(function(t){var a,e;a=i,t=(t=t.data).availabilityStats,e=f(a),a=t.map(function(t){var a=t.downtimeDuration;return t.percent=100*(e-a)/e,t}),n.graphData=[{key:"operability",values:function(a){for(var n=10,r=[],t=function(){var e=i*n,t=a.filter(function(t){return a=e,(t=t).percent<=a&&t.percent>a-n;var a}).length;r.push([e,t])},i=0;i<=10;i++)t();return r}(a)}]}))}t.$inject=["$scope","$routeParams","c8yBase","c8yAlarms","gettext","gettextCatalog"],angular.module("c8y.parts.availability").controller("availabilityReportCtrl",t)}();
1
+ "use strict";!function(){function t(n,t,o,l,a,r){var i,u=t.deviceId,c={},t=a("Availability percentage is based on the number of critical alarms raised and cleared."),e=a("Operability chart displays how many devices had their average availability on particular level in the last 30 days."),d=o.createEnum([{name:"DAY",value:1,label:a("Last 24 hours availability")},{name:"WEEK",value:7,label:a("Last 7 days availability")},{name:"MONTH",value:30,label:a("Last 30 days availability")}]),v=o.createEnum([{name:"DOWNTIME",value:"downtime",label:a("Downtime"),color:"#d9534f"},{name:"UPTIME",value:"uptime",label:a("Uptime"),color:"#5cb85c"}]);function m(r){t=r,a=moment(),t=moment().subtract(t.value,"days"),e=o.dateFullFormat;var t,a,e,i={dateFrom:t.format(e),dateTo:a.format(e),id:u};return(i.id?l.reports.downtimeDuration(i):l.reports.downtimeDurationAggregation(i)).then(function(t){var a,e,n;a=r,e=i,t=t.data,n=t.downtimeDuration,e=f(i,t)-n,c[a.name]={name:a.name,label:a.label,order:a.ordinal,data:[{key:v.DOWNTIME.value,val:n},{key:v.UPTIME.value,val:e}]}})}function f(t,a){var a=1<arguments.length&&void 0!==a?a:{},e=moment(t.dateFrom),t=moment(t.dateTo),n=1;return"number"==typeof a.deviceCount?n=a.deviceCount:Array.isArray(a.availabilityStats)&&(n=a.availabilityStats.length),t.diff(e,"seconds")*(n||1)}function s(t){var a=_.find(t,{key:v.UPTIME.value}).val;return a/(a+_.find(t,{key:v.DOWNTIME.value}).val)*100}_.assign(n,{intervalsData:c,availabilityTooltip:t,operabilityTooltip:e,x:function(){return function(t){return t.key}},y:function(){return function(t){return t.val}},xGraph:function(){return function(t){return t[0]}},yGraph:function(){return function(t){return t[1]}},xTickFormat:function(){return function(t){return"".concat(t,"%")}},color:function(){return function(t){return _.find(v,{value:t.data.key}).color}},colorGraph:function(){return function(){return v.UPTIME.color}},tooltip:function(){return function(t){return r.getString(_.find(v,{value:t}).label)}},tooltipGraph:function(){return function(t,a,e){e=Math.round(e);return r.getPlural(e,"1 device","{{$count}} devices",{})}},percentage:s,percentageClass:function(t){return 50<s(t)?"text-success":"text-danger"}}),d.values().forEach(m),u||(a=o.dateFullFormat,i={dateFrom:moment().subtract(30,"day").format(a),dateTo:moment().format(a)},l.reports.downtimeDuration(i).then(function(t){var a,e;a=i,t=(t=t.data).availabilityStats,e=f(a),a=t.map(function(t){var a=t.downtimeDuration;return t.percent=100*(e-a)/e,t}),n.graphData=[{key:"operability",values:function(a){for(var n=10,r=[],t=function(){var e=i*n,t=a.filter(function(t){return a=e,(t=t).percent<=a&&t.percent>a-n;var a}).length;r.push([e,t])},i=0;i<=10;i++)t();return r}(a)}]}))}t.$inject=["$scope","$routeParams","c8yBase","c8yAlarms","gettext","gettextCatalog"],angular.module("c8y.parts.availability").controller("availabilityReportCtrl",t)}();
@@ -1,15 +1,18 @@
1
1
  <c8y-breadcrumbs-set>
2
2
  <c8y-breadcrumbs-item
3
- label="{{ 'Availability' | translate }}"
4
3
  icon="signal"
4
+ label="{{ 'Availability' | translate }}"
5
+ ></c8y-breadcrumbs-item>
6
+ <c8y-breadcrumbs-item
7
+ icon="exchange"
8
+ label="{{ 'Devices' | translate }}"
5
9
  ></c8y-breadcrumbs-item>
6
- <c8y-breadcrumbs-item label="{{ 'Devices' | translate }}" icon="exchange"></c8y-breadcrumbs-item>
7
10
  </c8y-breadcrumbs-set>
8
11
 
9
12
  <div class="card-group">
10
13
  <div
11
- ng-repeat="intervalData in intervalsData | orderBy:'order'"
12
14
  class="availabilityPie col-md-4 col-xs-12"
15
+ ng-repeat="intervalData in intervalsData | orderBy:'order'"
13
16
  >
14
17
  <div class="card">
15
18
  <div class="card-header">
@@ -20,13 +23,16 @@
20
23
  <hr />
21
24
  <div class="card-block">
22
25
  <div class="p-relative">
23
- <span class="percentage" ng-class="percentageClass(intervalData.data)">
24
- {{ percentage(intervalData.data) | number: 0 }}%
26
+ <span
27
+ class="percentage"
28
+ ng-class="percentageClass(intervalData.data)"
29
+ >
30
+ {{ percentage(intervalData.data) | number : 0 }}%
25
31
  </span>
26
32
  <nvd3-pie-chart
27
- data="intervalData.data"
28
33
  id="interval{{ $index }}"
29
34
  height="500"
35
+ data="intervalData.data"
30
36
  width="600"
31
37
  x="x()"
32
38
  y="y()"
@@ -50,14 +56,19 @@
50
56
  <div ng-if="graphData">
51
57
  <div class="card availabilityGraph">
52
58
  <div class="card-header">
53
- <div class="card-title" translate>Last 30 days operability</div>
59
+ <div
60
+ class="card-title"
61
+ translate
62
+ >
63
+ Last 30 days operability
64
+ </div>
54
65
  </div>
55
66
  <hr />
56
67
  <div class="card-block">
57
68
  <nvd3-multi-bar-chart
58
- data="graphData"
59
69
  id="availabilityGraph"
60
70
  height="300"
71
+ data="graphData"
61
72
  width="1000"
62
73
  x="xGraph()"
63
74
  y="yGraph()"
@@ -1,4 +1,8 @@
1
- <div ng-controller='eventListCtrl as vm'>
1
+ <div ng-controller="eventListCtrl as vm">
2
2
  <c8y-help src="/users-guide/device-management/#events-all"></c8y-help>
3
- <c8y-event-list filters="vm.filters" initial-realtime-state="true" show-page-titles="true"/>
3
+ <c8y-event-list
4
+ show-page-titles="true"
5
+ filters="vm.filters"
6
+ initial-realtime-state="true"
7
+ />
4
8
  </div>
@@ -1 +1 @@
1
- "use strict";!function(){function n(t,n,e){c.$inject=["manageCertificateSvc"],s.$inject=["c8yEnterpriseEditionAvailability"],a.$inject=["$scope"];var i=["ROLE_INVENTORY_ADMIN","ROLE_OPTION_MANAGEMENT_ADMIN","ROLE_APPLICATION_MANAGEMENT_ADMIN","ROLE_APPLICATION_MANAGEMENT_READ"];function r(i){return["c8yTenant",function(n){var t=this;n.isEnterpriseEditionTenant().then(function(n){t.title=n?e("Enterprise tenant"):i})}]}function o(i){return["c8yTenant","c8yApplication",function(n,t){return n.isEnterpriseEditionTenant().then(function(n){return!n&&t.isAnyAvailable(i)})}]}function a(n){n.optionsGroups=["twoFactorAuthenticationOptions","supportLinkOptions","passwordResetOptions","emailServerOptions","dataExportOptions","storageLimitOptions","suspendingTenantsOptions"]}function s(n){return n.isAvailable()}function c(n){return n.hasCustomLoadBalancer().then(function(n){return!n})}_.each(["/enterprise","/branding"],function(n){return t.when(n,{template:'\n <c8y-ui-title-set title="vm.title"></c8y-ui-title-set>\n <c8y-branding-configuration-form></c8y-branding-configuration-form>\n ',name:n=e("Branding"),icon:"paint-brush",controller:r(n),controllerAs:"vm"})}),_.each(["/enterprise","/domain_name"],function(n){return t.when(n,{template:'\n <c8y-ui-title-set title="vm.title"></c8y-ui-title-set>\n <c8y-manage-certificate-form></c8y-manage-certificate-form>\n ',name:n=e("Domain name"),icon:"certificate",controller:r(n),controllerAs:"vm",showIf:c})}),n.addNavigation({name:e("Enterprise tenant"),parent:e("Settings"),icon:"enterprise-resource-planning",priority:1e3,path:"enterprise",routerLinkExact:!1,showIf:s,showIfPermissions:{allRoles:i}}),n.addNavigation({name:e("Branding"),parent:e("Settings"),icon:"paint-brush",priority:1e3,path:"branding",showIf:o([{name:"branding"},{name:"feature-branding"}]),showIfPermissions:{allRoles:i}}),n.addNavigation({name:e("Domain name"),parent:e("Settings"),icon:"certificate",priority:1e3,path:"domain_name",showIf:o([{name:"sslmanagement"}]),showIfPermissions:{allRoles:i}}),t.when("/enterprise",{template:'<c8y-platform-configuration-form options-groups="optionsGroups"></c8y-platform-configuration-form>',name:e("Configuration"),icon:"cog",controller:a})}n.$inject=["c8yViewsProvider","c8yNavigatorProvider","gettext"],angular.module("c8y.enterpriseEdition",["c8y.custom-branding"]).config(n)}();
1
+ "use strict";!function(){function n(t,n,e){c.$inject=["manageCertificateSvc"],s.$inject=["c8yEnterpriseEditionAvailability"],a.$inject=["$scope"];var i=["ROLE_INVENTORY_ADMIN","ROLE_OPTION_MANAGEMENT_ADMIN","ROLE_APPLICATION_MANAGEMENT_ADMIN","ROLE_APPLICATION_MANAGEMENT_READ"];function r(i){return["c8yTenant",function(n){var t=this;n.isEnterpriseEditionTenant().then(function(n){t.title=n?e("Enterprise tenant"):i})}]}function o(i){return["c8yTenant","c8yApplication",function(n,t){return n.isEnterpriseEditionTenant().then(function(n){return!n&&t.isAnyAvailable(i)})}]}function a(n){n.optionsGroups=["twoFactorAuthenticationOptions","supportLinkOptions","passwordResetOptions","emailServerOptions","dataExportOptions","storageLimitOptions","suspendingTenantsOptions"]}function s(n){return n.isAvailable()}function c(n){return n.hasCustomLoadBalancer().then(function(n){return!n})}_.each(["/enterprise","/branding"],function(n){return t.when(n,{template:'\n <c8y-ui-title-set title="vm.title"></c8y-ui-title-set>\n <c8y-branding-configuration-form></c8y-branding-configuration-form>\n ',name:n=e("Branding"),icon:"paint-brush",controller:r(n),controllerAs:"vm"})}),_.each(["/enterprise","/domain_name"],function(n){return t.when(n,{template:'\n <c8y-ui-title-set title="vm.title"></c8y-ui-title-set>\n <c8y-manage-certificate-form></c8y-manage-certificate-form>\n ',name:n=e("Domain name"),icon:"certificate",controller:r(n),controllerAs:"vm",showIf:c})}),n.addNavigation({name:e("Enterprise tenant"),parent:e("Settings"),icon:"enterprise-resource-planning",priority:1e3,path:"enterprise",routerLinkExact:!1,showIf:s,showIfPermissions:{allRoles:i}}),n.addNavigation({name:e("Branding"),parent:e("Settings"),icon:"paint-brush",priority:1e3,path:"branding",showIf:o([{name:"branding"},{name:"feature-branding"}]),showIfPermissions:{allRoles:i}}),n.addNavigation({name:e("Domain name"),parent:e("Settings"),icon:"certificate",priority:1e3,path:"domain_name",showIf:o([{name:"sslmanagement"}]),showIfPermissions:{allRoles:i}}),t.when("/enterprise",{template:'<c8y-platform-configuration options-groups="optionsGroups"></c8y-platform-configuration>',name:e("Configuration"),icon:"cog",controller:a})}n.$inject=["c8yViewsProvider","c8yNavigatorProvider","gettext"],angular.module("c8y.enterpriseEdition",["c8y.custom-branding"]).config(n)}();
@@ -1 +1 @@
1
- "use strict";!function(){function e(e,t){e.add({name:"Event list",nameDisplay:t("Event list"),description:t("Displays the list of events for selected device."),templateUrl:":::PLUGIN_PATH:::/views/eventList.html",configTemplateUrl:":::PLUGIN_PATH:::/views/eventListConfig.html",previewImage:":::PLUGIN_PATH:::/img/events-list-widget-pr.png",options:{groupsSelectable:!0},displaySettings:{globalTimeContext:!0}})}e.$inject=["c8yComponentsProvider","gettext"],angular.module("c8y.eventList",[]).config(e)}();
1
+ "use strict";!function(){function e(e,t){e.add({name:"Event list",nameDisplay:t("Event list"),description:t("Displays the list of events for selected device."),templateUrl:":::PLUGIN_PATH:::/views/eventList.html",configTemplateUrl:":::PLUGIN_PATH:::/views/eventListConfig.html",previewImage:":::PLUGIN_PATH:::/img/events-list-widget-pr.png",options:{groupsSelectable:!0},displaySettings:{globalTimeContext:!0,globalRealtimeContext:!0}})}e.$inject=["c8yComponentsProvider","gettext"],angular.module("c8y.eventList",[]).config(e)}();
@@ -1 +1 @@
1
- "use strict";angular.module("c8y.cockpit.export").directive("c8yExportTimespan",["gettext",function(e){return{restrict:"AE",link:function(t){t.types={LAST_WEEK:e("Last week"),LAST_MONTH:e("Last month"),LAST_YEAR:e("Last year"),CUSTOM:e("Custom")}},scope:{timespan:"=c8yExportTimespan"},templateUrl:":::PLUGIN_PATH:::/views/timespan.html"}}]);
1
+ "use strict";angular.module("c8y.cockpit.export").directive("c8yExportTimespan",["gettext",function(e){return{restrict:"AE",link:function(t){t.types={LAST_24HOURS:e("Last 24 hours"),LAST_7DAYS:e("Last 7 days"),LAST_30DAYS:e("Last 30 days"),LAST_WEEK:e("Last week"),LAST_MONTH:e("Last month"),LAST_YEAR:e("Last year"),CUSTOM:e("Custom")}},scope:{timespan:"=c8yExportTimespan"},templateUrl:":::PLUGIN_PATH:::/views/timespan.html"}}]);
@@ -1 +1 @@
1
- "use strict";angular.module("c8y.cockpit.export").factory("c8yExportFilters",["$q","c8yBase","c8yInventory","c8yGroups",function(e,o,a,t){function r(e,t){this.name=e,this.onLoad(t)}function n(e,t){r.call(this,e,t)}function i(e,t,o){r.call(this,e,t,o)}return r.prototype.onLoad=function(e){this.value=e.queryParameters[this.name],this.enabled=Boolean(e.queryParameters[this.name])},r.prototype.onSave=function(e){this.enabled&&(e.queryParameters[this.name]=this.value)},(n.prototype=Object.create(r.prototype)).onLoad=function(e){e=e.queryParameters;this.value=e.source||e.groupId,this.enabled=Boolean(this.value),this.loadSource()},n.prototype.loadSource=function(){var t=this;return this.value?a.detail(this.value).then(o.getResData).then(function(e){t.value=e}):e.when()},n.prototype.onSave=function(e){e=e.queryParameters;delete e.source,delete e.groupId,this.enabled&&this.value&&(t.isGroup(this.value)?e.groupId=this.value.id:e.source=this.value.id)},(i.prototype=Object.create(r.prototype)).onLoad=function(e){var t=e.queryParameters;this.value={dateType:t.dateType||"LAST_WEEK",from:t.from,to:t.to},this.enabled=void 0!==t.dateType||""===e.name},i.prototype.onSave=function(e){e=e.queryParameters;delete e.dateType,delete e.from,delete e.to,this.enabled&&_.merge(e,this.value)},{Filter:r,SourceFilter:n,DateRangeFilter:i}}]);
1
+ "use strict";angular.module("c8y.cockpit.export").factory("c8yExportFilters",["$q","c8yBase","c8yInventory","c8yGroups",function(e,o,a,t){function r(e,t){this.name=e,this.onLoad(t)}function n(e,t){r.call(this,e,t)}function i(e,t,o){r.call(this,e,t,o)}return r.prototype.onLoad=function(e){this.value=e.queryParameters[this.name],this.enabled=Boolean(e.queryParameters[this.name])},r.prototype.onSave=function(e){this.enabled&&(e.queryParameters[this.name]=this.value)},(n.prototype=Object.create(r.prototype)).onLoad=function(e){e=e.queryParameters;this.value=e.source||e.groupId,this.enabled=Boolean(this.value),this.loadSource()},n.prototype.loadSource=function(){var t=this;return this.value?a.detail(this.value).then(o.getResData).then(function(e){t.value=e}):e.when()},n.prototype.onSave=function(e){e=e.queryParameters;delete e.source,delete e.groupId,this.enabled&&this.value&&(t.isGroup(this.value)?e.groupId=this.value.id:e.source=this.value.id)},(i.prototype=Object.create(r.prototype)).onLoad=function(e){var t=e.queryParameters;this.value={dateType:t.dateType||"LAST_7DAYS",from:t.from,to:t.to},this.enabled=void 0!==t.dateType||""===e.name},i.prototype.onSave=function(e){e=e.queryParameters;delete e.dateType,delete e.from,delete e.to,this.enabled&&_.merge(e,this.value)},{Filter:r,SourceFilter:n,DateRangeFilter:i}}]);
@@ -13,7 +13,7 @@
13
13
 
14
14
  <form name="exportForm" novalidate>
15
15
  <div class="row">
16
- <div class="col-md-8 col-xs-12">
16
+ <div class="col-md-10 col-xs-12">
17
17
  <div class="card card--fullpage">
18
18
  <div class="card-header separator">
19
19
  <div class="card-title">
@@ -151,6 +151,27 @@
151
151
  </span>
152
152
  </div>
153
153
  <div class="col-4">
154
+ <span ng-show="::row.config.queryParameters.dateType == 'LAST_24HOURS'">
155
+ <i
156
+ class="m-r-4"
157
+ c8y-icon="calendar"
158
+ ></i>
159
+ <translate>Last 24 hours</translate>
160
+ </span>
161
+ <span ng-show="::row.config.queryParameters.dateType == 'LAST_7DAYS'">
162
+ <i
163
+ class="m-r-4"
164
+ c8y-icon="calendar"
165
+ ></i>
166
+ <translate>Last 7 days</translate>
167
+ </span>
168
+ <span ng-show="::row.config.queryParameters.dateType == 'LAST_30DAYS'">
169
+ <i
170
+ class="m-r-4"
171
+ c8y-icon="calendar"
172
+ ></i>
173
+ <translate>Last 30 days</translate>
174
+ </span>
154
175
  <span ng-show="::row.config.queryParameters.dateType == 'LAST_WEEK'">
155
176
  <i
156
177
  class="m-r-4"
@@ -76,7 +76,7 @@
76
76
  </tbody>
77
77
  </table>
78
78
  </div>
79
- <div class="m-t-8 m-b-16 d-flex">
79
+ <div class="m-t-8 m-b-16 d-flex gap-8 flex-wrap">
80
80
  <button
81
81
  class="btn btn-default"
82
82
  type="button"
@@ -87,7 +87,7 @@
87
87
  {{ 'Add' | translate }}
88
88
  </button>
89
89
  <button
90
- class="btn btn-default m-l-8 m-l-xs-0"
90
+ class="btn btn-default m-l-xs-0"
91
91
  type="button"
92
92
  title="{{ 'Add predefined' | translate }}"
93
93
  ng-click="api.addPredefined();"
@@ -95,5 +95,5 @@
95
95
  <i c8y-icon="plus-circle"></i>
96
96
  {{ 'Add predefined' | translate }}
97
97
  </button>
98
- <div class="flex-grow m-l-8 m-l-xs-0" ng-if="api.template" ng-include="api.template"></div>
98
+ <div class="flex-grow m-l-xs-0" ng-if="api.template" ng-include="api.template"></div>
99
99
  </div>
@@ -1,14 +1,43 @@
1
1
  <div class="row export-timespan">
2
- <div class="col-sm-4 col-xs-12">
3
- <div class="c8y-select-wrapper">
4
- <select
5
- aria-label="{{ 'Time range' | translate }}"
6
- class="form-control input-sm"
7
- ng-model="timespan.dateType"
8
- ng-options="key as (label | translate) for (key, label) in types"
9
- ></select>
10
- <span></span>
2
+ <div class="form-group">
3
+ <div class="col-sm-4 col-xs-12">
4
+ <div class="c8y-select-wrapper" >
5
+ <select
6
+ aria-label="{{ 'Time range' | translate }}"
7
+ class="form-control input-sm"
8
+ ng-model="timespan.dateType"
9
+ ng-options="key as (label | translate) for (key, label) in types"
10
+ ></select>
11
+ <span ></span>
12
+ </div>
11
13
  </div>
14
+ <button
15
+ ng-show="timespan.dateType === 'LAST_MONTH'"
16
+ class="btn-help btn-help--sm"
17
+ type="button"
18
+ aria-label="{{ 'Help' | translate }}"
19
+ uib-popover="{{ 'From midnight last month to now. More in documentation.' | translate }}"
20
+ popover-placement="right"
21
+ popover-trigger="'focus'"
22
+ ></button>
23
+ <button
24
+ ng-show="timespan.dateType === 'LAST_WEEK'"
25
+ class="btn-help btn-help--sm"
26
+ type="button"
27
+ aria-label="{{ 'Help' | translate }}"
28
+ uib-popover="{{ 'From midnight last week to now. More in documentation.' | translate }}"
29
+ popover-placement="right"
30
+ popover-trigger="'focus'"
31
+ ></button>
32
+ <button
33
+ ng-show="timespan.dateType === 'LAST_YEAR'"
34
+ class="btn-help btn-help--sm"
35
+ type="button"
36
+ aria-label="{{ 'Help' | translate }}"
37
+ uib-popover="{{ 'From midnight last year to now. More in documentation.' | translate }}"
38
+ popover-placement="right"
39
+ popover-trigger="'focus'"
40
+ ></button>
12
41
  </div>
13
42
  <div class="col-xs-12" ng-if="timespan.dateType === 'CUSTOM'">
14
43
  <div class="row">
@@ -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 _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function e(a,n,e){var o,u=this,m=d3.scale.category10();function r(e){var t=e.currentValue,e=e.previousValue;return!_.isEmpty(t)&&!_.isEmpty(e)&&!_.isEqual(t,e)}function i(e){u.fragmentSeriesPairs=_.groupBy(e,"fragment")}function c(){u.channel="/measurements/".concat(o)}function f(){var n,r,i,e=_.get(u.fragmentSeriesPairs,u.fragment),e=_.reduce(e,function(e,t){var n=t.series,t=t.unit;return _.assign(e,_defineProperty({},n,{unit:t}))},{}),e=(n=0,r=u.fragment,i={__target:{id:o},fragment:r,lineType:"line",renderType:"area"},_.map(e,function(e,t){return _.assign({series:t,unit:e.unit,label:a.humanizeFragment("".concat(r," => ").concat(t)),color:m(n++),__active:!0},i)}));_.set(u,"dataPoints",e)}u.aggregation="MINUTELY",u.interval=e._defaultDuration,_.assign(u,{$onChanges:function(e){var t=e.device,e=e.fragment;u.device&&u.fragment&&((r(t)||r(e))&&(u.fragmentSeriesPairs=void 0),o=a.getId(u.device),u.fragmentSeriesPairs?(c(),f()):n.getSupportedSeries(o,{withUnits:!0}).then(i).then(function(){c(),f()}))},$onInit:function(){u.dateFrom=moment().subtract(1,"hour").toDate(),u.dateTo=new Date},onUpdateDates:function(e,t){u.dateFrom=e;e=moment().diff(moment(t),"seconds")<10;u.realtime&&!e&&(u.realtime=!1);u.dateTo=t},updateScale:function(e){_.forEach(e.series,function(e){var t,n=e.dataPoint,r=_.find(u.dataPoints,function(e){return e.fragment===n.fragment&&e.series===n.series});r&&(e=e.values,(t=_.minBy(e,"val.min").val.min)===(e=_.maxBy(e,"val.max").val.max)&&(--t,e+=1),r.min=t,r.max=e)})}})}e.$inject=["c8yBase","c8yDevices","INTERVAL_CONSTANTS"],angular.module("c8y.core.measurements2").component("c8yMeasurementsFragmentChart",{templateUrl:":::PLUGIN_PATH:::/fragmentChart/fragmentChart.html",controllerAs:"vm",controller:e,bindings:{fragment:"<",device:"<",dateFrom:"=",dateTo:"=",realtime:"=?",hideRealtimeButton:"=?"}})}();
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 _defineProperty(e,t,n){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"===_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!==_typeof(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);n=n.call(e,t||"default");if("object"!==_typeof(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}!function(){function e(a,n,e){var o,u=this,m=d3.scale.category10();function r(e){var t=e.currentValue,e=e.previousValue;return!_.isEmpty(t)&&!_.isEmpty(e)&&!_.isEqual(t,e)}function i(e){u.fragmentSeriesPairs=_.groupBy(e,"fragment")}function c(){u.channel="/measurements/".concat(o)}function f(){var n,r,i,e=_.get(u.fragmentSeriesPairs,u.fragment),e=_.reduce(e,function(e,t){var n=t.series,t=t.unit;return _.assign(e,_defineProperty({},n,{unit:t}))},{}),e=(n=0,r=u.fragment,i={__target:{id:o},fragment:r,lineType:"line",renderType:"area"},_.map(e,function(e,t){return _.assign({series:t,unit:e.unit,label:a.humanizeFragment("".concat(r," => ").concat(t)),color:m(n++),__active:!0},i)}));_.set(u,"dataPoints",e)}u.aggregation="MINUTELY",u.interval=e._defaultDuration,_.assign(u,{$onChanges:function(e){var t=e.device,e=e.fragment;u.device&&u.fragment&&((r(t)||r(e))&&(u.fragmentSeriesPairs=void 0),o=a.getId(u.device),u.fragmentSeriesPairs?(c(),f()):n.getSupportedSeries(o).then(i).then(function(){c(),f()}))},$onInit:function(){u.dateFrom=moment().subtract(1,"hour").toDate(),u.dateTo=new Date},onUpdateDates:function(e,t){u.dateFrom=e;e=moment().diff(moment(t),"seconds")<10;u.realtime&&!e&&(u.realtime=!1);u.dateTo=t},updateScale:function(e){_.forEach(e.series,function(e){var t,n=e.dataPoint,r=_.find(u.dataPoints,function(e){return e.fragment===n.fragment&&e.series===n.series});r&&(e=e.values,(t=_.minBy(e,"val.min").val.min)===(e=_.maxBy(e,"val.max").val.max)&&(--t,e+=1),r.min=t,r.max=e)})}})}e.$inject=["c8yBase","c8yDevices","INTERVAL_CONSTANTS"],angular.module("c8y.core.measurements2").component("c8yMeasurementsFragmentChart",{templateUrl:":::PLUGIN_PATH:::/fragmentChart/fragmentChart.html",controllerAs:"vm",controller:e,bindings:{fragment:"<",device:"<",dateFrom:"=",dateTo:"=",realtime:"=?",hideRealtimeButton:"=?"}})}();
@@ -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){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,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(e,r,a,s){var i;function o(e,t,n,r,i){return a.listForDataPoint(e,t,n,"NONE"!==r?r:void 0,i)}function t(e,t){var n=this;return n.chart=e,n.dataPoint=t,n.hoverItems=[],n.values=[],n.implicitDomain={},n.bisect=d3.bisector(function(e){return e.time}).right,n.loadSeriesData=r.latest(o),n}return i=e.has("ngZone")?e.get("ngZone"):{runOutsideAngular:function(e){return e()}},t.prototype={defaultRenderType:"min",defaultLineType:"line",loadDataAndRender:function(e,t,n){var r=this;r.loadData(e,t,n).finally(function(){r.chart.render()})},loadData:function(e,t,n){var r=this,i=r.dataPoint,a=r._aggregation;return this.loadSeriesData(i,e,t,n,r.chart).then(function(e){return a!==n&&(r.values.length=0,r._aggregation=n,r.resetImplicitDomain()),r.appendValues(e.values),e})},appendValues:function(e){var i=this,a=i.values,o=i.implicitDomain;return _.forEach(e,function(e){var t,n,r;_.isFinite(e.min)&&_.isFinite(e.max)&&(r=new Date(e.time),t=r.getTime(),n=_.find(a,function(e){return t===e.time.getTime()}),r={time:r,val:{min:e.min,max:e.max}},a.length&&_.last(a).time.getTime()>t&&(i._valuesSortingNeeded=!0),n?_.assign(n,r):a.push(r),(_.isUndefined(o.min)||e.min<o.min)&&(o.min=e.min),_.isUndefined(o.max)||e.max>o.max)&&(o.max=e.max)}),a},destroy:function(){this.svg&&this.svg.remove(),this.hoverItems=[],delete this.svg},resetImplicitDomain:function(){this.implicitDomain.min=void 0,this.implicitDomain.max=void 0},domain:function(){var e=this.dataPoint,t=this.implicitDomain,n=_.isUndefined(e.min)||""===e.min||_.isNull(e.min)?t.min:Number(e.min),e=_.isUndefined(e.max)||""===e.max||_.isNull(e.max)?t.max:Number(e.max);return(_.isUndefined(n)||Number.isNaN(n))&&(n=d3.min(this.values,function(e){return e.val.min}),_.isUndefined(n)||(t.min=n),n=n||0),(_.isUndefined(e)||Number.isNaN(e))&&(e=d3.max(this.values,function(e){return e.val.max}),_.isUndefined(e)||(t.max=e),e=e||0),n===e&&(--n,e+=1),[n,e]},scale:function(){return this.chart.scaleY().domain(this.domain())},getRenderType:function(){return this.dataPoint.renderType||this.renderType||this.defaultRenderType},getLineType:function(){return this.dataPoint.lineType||this.lineType||this.defaultLineType},render:function(){var e,t=this,n=t.chart.svgSeries,r=t.getRenderType(),i=t.getLineType(),a=t.values,o=t.svg;!o||o.minOrMax===r&&o.chartType===r||t.destroy(),t.svg||(e=t.chart.margins,t.svg=n.append("g").attr("transform",s.translate(e.l,e.t)).attr("class","series"),(o=t.svg).minOrMax=r,o.chartType=i),t._valuesSortingNeeded&&(delete t._valuesSortingNeeded,a.sort(function(e,t){return e.time>t.time?1:e.time<t.time?-1:0})),t.chart.allowSelectFocusTime||t.removeOldHiddenValues(),"bars"===i?t._render_bars():"area"!==r?t._render_path(r):t._render_area()},removeOldHiddenValues:function(){var e=this.values,n=this.chart.axisX._from,r=0;_.forEach(e,function(e,t){return!moment(e.time).isSameOrAfter(n)||(r=t-1,!1)}),r&&e.splice(0,r)},_render_path:function(t){var n=this,e=n.svg._path;function r(e){return n.chart.axisX.scale()(e.time)}function i(e){return n.scale()(e.val[t])}function a(){return n.dataPoint.color}e||(n.svg._path=n.svg.append("path"),(e=n.svg._path).style({"pointer-events":"none"})),n._create_update_focusPoint(1),n._render_path_line(e,r,i,a),n._render_path_points(r,i,a)},_render_path_line:function(e,t,n,r){var i=this,a=i.getLineType()||"linear",o=d3.svg.line().interpolate(a).x(t).y(n);_.includes(["bars","points"],i.getLineType())?(e.remove(),i.svg._path=void 0):e.attr("d",function(){return o(i.values)}).style({fill:"transparent",stroke:r})},_render_path_points:function(e,t,n){var r;_.includes(["points","linePoints"],this.getLineType())?((r=this.svg.selectAll("circle.point").data(this.values)).enter().append("circle").attr("class","point"),r.exit().remove(),r.attr("cx",e).attr("cy",t).attr("r",4).attr("fill","transparent").attr("stroke",n)):this.svg.selectAll("circle.point").remove()},_render_bars:function(){var r=this,e=_.filter(r.chart.series,function(e){return e.getLineType()===r.getLineType()}),n=e.length,i=_.findIndex(e,function(e){return e===r}),a=r.svg.minOrMax,e=function(){var t=r.chart.axisX.scale();if(r._aggregation)return function(e){return t(e.time)-n*s()/2+i*s()};return function(e){return t(e.time)}}(),t=c(),o=u(t),s=function(){var e=1;{var t;r._aggregation&&(t=function(e){var t=r.chart.axisX.scale(),n=_slicedToArray(t.domain(),1)[0],e=moment(n).add(1,{MINUTELY:"minute",HOURLY:"hour",DAILY:"day"}[e]).toDate();return t(e)-t(n)}(r._aggregation),(e=20<(e=t/(n+1))?20:e)<1)&&(e=1)}return _.constant(e)}();function c(e){var t=r.scale(),n=(n=e)||("area"===a?"max":a);return function(e){return t(e.val[n])}}function l(t){var n=_.max(r.scale().range());return function(e){e=t(e);return n<e?n:e}}function u(t){var n=r.scale().range();return function(e){return Math.abs(_.max(n)-t(e))}}var e={x:e,y:l(t),width:s,height:o,fill:function(){return r.dataPoint.color}},t=r.svg.selectAll(".bars").data(r.values),o=t.enter().append("g").style("pointer-events","none").attr("class",function(e,t){return"bar index".concat(t)});o.append("rect").attr("class","barmain"),t.exit().remove(),t.select(".barmain").attr(e),"area"===a&&r._aggregation&&(o.append("rect").attr("class","barmin").style("opacity","0.2"),o=c("min"),o=_.defaults({fill:"#000",y:l(o),height:u(o)},e),t.select(".barmin").attr(o)),r._aggregation||r._create_update_focusPoint(1)},hover:function(e){var t=this,n=t.getRenderType(),r=t.getLineType(),i=t.values[e];(t.overPoint=i)&&(t._focusPointTime=i.time,"bars"===r)&&this._hover_bars(e),t._render_focusPoint(1,"area"!==n?n:"max"),t._render_focusPoint(2,"area"!==n?n:"min")},_hover_bars:function(e){this.svg.select(".hover").classed("hover",!1).style({opacity:1}),this.svg.select(".index".concat(e," .barmain")).classed("hover",!0).style({opacity:.5})},mouseleave:function(){"bars"===this.getLineType()&&this.svg.select(".hover").classed("hover",!1).style({opacity:1})},_create_update_focusPoint:function(e){var t=this,e="focusPoint".concat(e),n=t.svg[e];n||(t.svg[e]=t.svg.append("circle").style({visibility:t.chart.hoverItemsVisible?"visible":"hidden","pointer-events":"all"}).attr({cx:0,cy:0,r:3}),n=t.svg[e],t.addFocusPointEvent(n),t.hoverItems.push(n)),n.attr({fill:function(){return t.dataPoint.color}})},_render_focusPoint:function(e,t){var n=this.chart.axisX.scale(),r=this.scale(),i=this.svg,a=this.overPoint,e=i&&i["focusPoint".concat(e)];e&&(a?(i=i.xFocusScale?i.xFocusScale(a):n(a.time),n=r(a.val[t]),e.attr({cx:i,cy:n})):e.style("visibility","hidden"))},_render_area:function(){var t=this,e=t.getLineType()||"linear";function n(e){return t.chart.axisX.scale()(e.time)}function r(e){return t.scale()(e.val.max)}function i(e){return t.scale()(e.val.min)}function a(){return t.dataPoint.color}var o=d3.svg.area().interpolate(e).x(n).y0(r).y1(i),e=t.svg._path;e||(t.svg._path=t.svg.append("path").style({"pointer-events":"none",opacity:.8})),e=t.svg._path,t._create_update_focusPoint(1),t._create_update_focusPoint(2),e.attr("d",function(){return o(t.values)}).style({"pointer-events":"none",stroke:a,fill:a}),_.includes(["points","linePoints"],t.getLineType())?(t.svg.selectAll("circle.point.max").data(t.values).enter().append("circle").attr("class","point max"),t.svg.selectAll("circle.point.min").data(t.values).enter().append("circle").attr("class","point min"),t.svg.selectAll("circle.point.max").attr("cx",n).attr("cy",r).attr("r",4).attr("fill","transparent").attr("stroke",a),t.svg.selectAll("circle.point.min").attr("cx",n).attr("cy",i).attr("r",4).attr("fill","transparent").attr("stroke",a)):t.svg.selectAll("circle.point").remove()},onMove:function(e,t){var n=this.getNearIndex(e);this.hover(n,e,t)},hoverValue:function(){var e,t=this.getRenderType(),n=this.overPoint,r=this.dataPoint.unit||"",i=" -- ";return i=n&&(e=(n=n.val).min,n=n.max,"min"===t&&(i="".concat(e," ").concat(r)),"max"===t&&(i="".concat(n," ").concat(r)),"area"===t)?"".concat(e," ").concat(r," — ").concat(n," ").concat(r):i},hoverTime:function(){var e=this.overPoint;return e?moment(e.time):"--"},getNearIndex:function(e){var t=e,n=this.values,r=n.length-1,e=this.bisect(n,e,1,r),r=n[e-1]&&n[e-1].time,n=n[e]&&n[e].time;return!_.isUndefined(r)&&(_.isUndefined(n)||t-r<n-t)?e-1:e},measurementFits:function(e){return a.rtMeasurementForDatapoint(this.dataPoint)(e)},addFocusPointEvent:function(e){var n=this,r=n.chart;e.on("click",function(){var e,t;r.allowSelectFocusTime&&(e={target:(n.dataPoint.__target||{}).id,date:moment(n._focusPointTime).format("YYYY-MM-DDTHH:mm:ss.SSSZ")},(t=r.selectedPoint)&&moment(e.date).isSame(moment(t.date))?r.clearSelectPoint():r.setSelectPoint(e))}),e.on("mouseenter",function(){r.allowSelectFocusTime&&e.style({cursor:"pointer"}).attr({r:6})}),e.on("mouseleave",function(){r.allowSelectFocusTime&&e.style({cursor:"default"}).attr({r:3})})},realtimeMeasurement:function(e){function t(){r.appendValues(_.flattenDeep(r.__realtimeToAppend)),r.__realtimeToAppend=[],r.__realtimeToAppendTimout=void 0,r.chart.render()}var n,r=this,e=r.measurementFits(e);return e&&(r.__realtimeToAppend||(r.__realtimeToAppend=[]),r.__realtimeToAppend.push(e.values),(n=r.chart.axisX.getDebouncePreference()).reset?(clearTimeout(r.__realtimeToAppendTimout),t()):r.__realtimeToAppendTimout||i.runOutsideAngular(function(){r.__realtimeToAppendTimout=setTimeout(t,n.debounceTime)})),e}},t}e.$inject=["$injector","c8yBase","c8yMeasurements","c8yChartCommon"],angular.module("c8y.core.measurements2").factory("c8ySeries",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,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(){function e(e,r,a,s){var i;function o(e,t,n,r,i){return a.listForDataPoint(e,t,n,"NONE"!==r?r:void 0,i)}function t(e,t){var n=this;return n.chart=e,n.dataPoint=t,n.hoverItems=[],n.values=[],n.implicitDomain={},n.bisect=d3.bisector(function(e){return e.time}).right,n.loadSeriesData=r.latest(o),n}return i=e.has("ngZone")?e.get("ngZone"):{runOutsideAngular:function(e){return e()}},t.prototype={defaultRenderType:"min",defaultLineType:"line",loadDataAndRender:function(e,t,n){var r=this;return r.loadData(e,t,n).finally(function(){r.chart.render()})},loadData:function(e,t,n){var r=this,i=r.dataPoint,a=r._aggregation;return this.loadSeriesData(i,e,t,n,r.chart).then(function(e){return a!==n&&(r.values.length=0,r._aggregation=n,r.resetImplicitDomain()),r.appendValues(e.values),i.unit=e.dataPoint.unit,e})},appendValues:function(e){var i=this,a=i.values,o=i.implicitDomain;return _.forEach(e,function(e){var t,n,r;_.isFinite(e.min)&&_.isFinite(e.max)&&(r=new Date(e.time),t=r.getTime(),n=_.find(a,function(e){return t===e.time.getTime()}),r={time:r,val:{min:e.min,max:e.max}},a.length&&_.last(a).time.getTime()>t&&(i._valuesSortingNeeded=!0),n?_.assign(n,r):a.push(r),(_.isUndefined(o.min)||e.min<o.min)&&(o.min=e.min),_.isUndefined(o.max)||e.max>o.max)&&(o.max=e.max)}),a},destroy:function(){this.svg&&this.svg.remove(),this.hoverItems=[],delete this.svg},resetImplicitDomain:function(){this.implicitDomain.min=void 0,this.implicitDomain.max=void 0},domain:function(){var e=this.dataPoint,t=this.implicitDomain,n=_.isUndefined(e.min)||""===e.min||_.isNull(e.min)?t.min:Number(e.min),e=_.isUndefined(e.max)||""===e.max||_.isNull(e.max)?t.max:Number(e.max);return(_.isUndefined(n)||Number.isNaN(n))&&(n=d3.min(this.values,function(e){return e.val.min}),_.isUndefined(n)||(t.min=n),n=n||0),(_.isUndefined(e)||Number.isNaN(e))&&(e=d3.max(this.values,function(e){return e.val.max}),_.isUndefined(e)||(t.max=e),e=e||0),n===e&&(--n,e+=1),[n,e]},scale:function(){return this.chart.scaleY().domain(this.domain())},getRenderType:function(){return this.dataPoint.renderType||this.renderType||this.defaultRenderType},getLineType:function(){return this.dataPoint.lineType||this.lineType||this.defaultLineType},render:function(){var e,t=this,n=t.chart.svgSeries,r=t.getRenderType(),i=t.getLineType(),a=t.values,o=t.svg;!o||o.minOrMax===r&&o.chartType===r||t.destroy(),t.svg||(e=t.chart.margins,t.svg=n.append("g").attr("transform",s.translate(e.l,e.t)).attr("class","series"),(o=t.svg).minOrMax=r,o.chartType=i),t._valuesSortingNeeded&&(delete t._valuesSortingNeeded,a.sort(function(e,t){return e.time>t.time?1:e.time<t.time?-1:0})),t.chart.allowSelectFocusTime||t.removeOldHiddenValues(),"bars"===i?t._render_bars():"area"!==r?t._render_path(r):t._render_area()},removeOldHiddenValues:function(){var e=this.values,n=this.chart.axisX._from,r=0;_.forEach(e,function(e,t){return!moment(e.time).isSameOrAfter(n)||(r=t-1,!1)}),r&&e.splice(0,r)},_render_path:function(t){var n=this,e=n.svg._path;function r(e){return n.chart.axisX.scale()(e.time)}function i(e){return n.scale()(e.val[t])}function a(){return n.dataPoint.color}e||(n.svg._path=n.svg.append("path"),(e=n.svg._path).style({"pointer-events":"none"})),n._create_update_focusPoint(1),n._render_path_line(e,r,i,a),n._render_path_points(r,i,a)},_render_path_line:function(e,t,n,r){var i=this,a=i.getLineType()||"linear",o=d3.svg.line().interpolate(a).x(t).y(n);_.includes(["bars","points"],i.getLineType())?(e.remove(),i.svg._path=void 0):e.attr("d",function(){return o(i.values)}).style({fill:"transparent",stroke:r})},_render_path_points:function(e,t,n){var r;_.includes(["points","linePoints"],this.getLineType())?((r=this.svg.selectAll("circle.point").data(this.values)).enter().append("circle").attr("class","point"),r.exit().remove(),r.attr("cx",e).attr("cy",t).attr("r",4).attr("fill","transparent").attr("stroke",n)):this.svg.selectAll("circle.point").remove()},_render_bars:function(){var r=this,e=_.filter(r.chart.series,function(e){return e.getLineType()===r.getLineType()}),n=e.length,i=_.findIndex(e,function(e){return e===r}),a=r.svg.minOrMax,e=function(){var t=r.chart.axisX.scale();if(r._aggregation)return function(e){return t(e.time)-n*s()/2+i*s()};return function(e){return t(e.time)}}(),t=c(),o=u(t),s=function(){var e=1;{var t;r._aggregation&&(t=function(e){var t=r.chart.axisX.scale(),n=_slicedToArray(t.domain(),1)[0],e=moment(n).add(1,{MINUTELY:"minute",HOURLY:"hour",DAILY:"day"}[e]).toDate();return t(e)-t(n)}(r._aggregation),(e=20<(e=t/(n+1))?20:e)<1)&&(e=1)}return _.constant(e)}();function c(e){var t=r.scale(),n=(n=e)||("area"===a?"max":a);return function(e){return t(e.val[n])}}function l(t){var n=_.max(r.scale().range());return function(e){e=t(e);return n<e?n:e}}function u(t){var n=r.scale().range();return function(e){return Math.abs(_.max(n)-t(e))}}var e={x:e,y:l(t),width:s,height:o,fill:function(){return r.dataPoint.color}},t=r.svg.selectAll(".bars").data(r.values),o=t.enter().append("g").style("pointer-events","none").attr("class",function(e,t){return"bar index".concat(t)});o.append("rect").attr("class","barmain"),t.exit().remove(),t.select(".barmain").attr(e),"area"===a&&r._aggregation&&(o.append("rect").attr("class","barmin").style("opacity","0.2"),o=c("min"),o=_.defaults({fill:"#000",y:l(o),height:u(o)},e),t.select(".barmin").attr(o)),r._aggregation||r._create_update_focusPoint(1)},hover:function(e){var t=this,n=t.getRenderType(),r=t.getLineType(),i=t.values[e];(t.overPoint=i)&&(t._focusPointTime=i.time,"bars"===r)&&this._hover_bars(e),t._render_focusPoint(1,"area"!==n?n:"max"),t._render_focusPoint(2,"area"!==n?n:"min")},_hover_bars:function(e){this.svg.select(".hover").classed("hover",!1).style({opacity:1}),this.svg.select(".index".concat(e," .barmain")).classed("hover",!0).style({opacity:.5})},mouseleave:function(){"bars"===this.getLineType()&&this.svg.select(".hover").classed("hover",!1).style({opacity:1})},_create_update_focusPoint:function(e){var t=this,e="focusPoint".concat(e),n=t.svg[e];n||(t.svg[e]=t.svg.append("circle").style({visibility:t.chart.hoverItemsVisible?"visible":"hidden","pointer-events":"all"}).attr({cx:0,cy:0,r:3}),n=t.svg[e],t.addFocusPointEvent(n),t.hoverItems.push(n)),n.attr({fill:function(){return t.dataPoint.color}})},_render_focusPoint:function(e,t){var n=this.chart.axisX.scale(),r=this.scale(),i=this.svg,a=this.overPoint,e=i&&i["focusPoint".concat(e)];e&&(a?(i=i.xFocusScale?i.xFocusScale(a):n(a.time),n=r(a.val[t]),e.attr({cx:i,cy:n})):e.style("visibility","hidden"))},_render_area:function(){var t=this,e=t.getLineType()||"linear";function n(e){return t.chart.axisX.scale()(e.time)}function r(e){return t.scale()(e.val.max)}function i(e){return t.scale()(e.val.min)}function a(){return t.dataPoint.color}var o=d3.svg.area().interpolate(e).x(n).y0(r).y1(i),e=t.svg._path;e||(t.svg._path=t.svg.append("path").style({"pointer-events":"none",opacity:.8})),e=t.svg._path,t._create_update_focusPoint(1),t._create_update_focusPoint(2),e.attr("d",function(){return o(t.values)}).style({"pointer-events":"none",stroke:a,fill:a}),_.includes(["points","linePoints"],t.getLineType())?(t.svg.selectAll("circle.point.max").data(t.values).enter().append("circle").attr("class","point max"),t.svg.selectAll("circle.point.min").data(t.values).enter().append("circle").attr("class","point min"),t.svg.selectAll("circle.point.max").attr("cx",n).attr("cy",r).attr("r",4).attr("fill","transparent").attr("stroke",a),t.svg.selectAll("circle.point.min").attr("cx",n).attr("cy",i).attr("r",4).attr("fill","transparent").attr("stroke",a)):t.svg.selectAll("circle.point").remove()},onMove:function(e,t){var n=this.getNearIndex(e);this.hover(n,e,t)},hoverValue:function(){var e,t=this.getRenderType(),n=this.overPoint,r=this.dataPoint.unit||"",i=" -- ";return i=n&&(e=(n=n.val).min,n=n.max,"min"===t&&(i="".concat(e," ").concat(r)),"max"===t&&(i="".concat(n," ").concat(r)),"area"===t)?"".concat(e," ").concat(r," — ").concat(n," ").concat(r):i},hoverTime:function(){var e=this.overPoint;return e?moment(e.time):"--"},getNearIndex:function(e){var t=e,n=this.values,r=n.length-1,e=this.bisect(n,e,1,r),r=n[e-1]&&n[e-1].time,n=n[e]&&n[e].time;return!_.isUndefined(r)&&(_.isUndefined(n)||t-r<n-t)?e-1:e},measurementFits:function(e){return a.rtMeasurementForDatapoint(this.dataPoint)(e)},addFocusPointEvent:function(e){var n=this,r=n.chart;e.on("click",function(){var e,t;r.allowSelectFocusTime&&(e={target:(n.dataPoint.__target||{}).id,date:moment(n._focusPointTime).format("YYYY-MM-DDTHH:mm:ss.SSSZ")},(t=r.selectedPoint)&&moment(e.date).isSame(moment(t.date))?r.clearSelectPoint():r.setSelectPoint(e))}),e.on("mouseenter",function(){r.allowSelectFocusTime&&e.style({cursor:"pointer"}).attr({r:6})}),e.on("mouseleave",function(){r.allowSelectFocusTime&&e.style({cursor:"default"}).attr({r:3})})},realtimeMeasurement:function(e){function t(){r.appendValues(_.flattenDeep(r.__realtimeToAppend)),r.__realtimeToAppend=[],r.__realtimeToAppendTimout=void 0,r.chart.render()}var n,r=this,e=r.measurementFits(e);return e&&(r.__realtimeToAppend||(r.__realtimeToAppend=[]),r.__realtimeToAppend.push(e.values),(n=r.chart.axisX.getDebouncePreference()).reset?(clearTimeout(r.__realtimeToAppendTimout),t()):r.__realtimeToAppendTimout||i.runOutsideAngular(function(){r.__realtimeToAppendTimout=setTimeout(t,n.debounceTime)})),e}},t}e.$inject=["$injector","c8yBase","c8yMeasurements","c8yChartCommon"],angular.module("c8y.core.measurements2").factory("c8ySeries",e)}();
@@ -241,7 +241,7 @@
241
241
  <div class="col-lg-12 col-lg-max">
242
242
  <div class="card">
243
243
  <div class="card-header separator">
244
- <div class="h4" translate>SNMP communication</div>
244
+ <div class="h4" data-cy="fieldbus-config--heading-SNMP-communication"translate>SNMP communication </div>
245
245
  </div>
246
246
  <form class="card-block p-b-0" name="vm.fieldbusCommunicationForm">
247
247
  <div ng-if="false" class="row">
@@ -346,6 +346,7 @@
346
346
  <div class="input-group-btn">
347
347
  <button
348
348
  title="{{ 'Start autodiscovery' | translate }}"
349
+ data-cy="fieldbus-config--Start-autodiscovery-button"
349
350
  ng-class="{ 'btn-pending': vm.autoDiscoveryInProgress }"
350
351
  class="btn btn-primary"
351
352
  ng-click="vm.triggerAutodiscovery(vm.fieldbusCommunicationForm); $event.preventDefault();"
@@ -291,7 +291,7 @@
291
291
  <div class="col-lg-12 col-lg-max">
292
292
  <div class="card">
293
293
  <div class="card-header separator">
294
- <div class="h4" translate>SNMP devices</div>
294
+ <div class="h4" data-cy="fieldbus-device-list--heading-SNMP-devices" translate>SNMP devices</div>
295
295
  </div>
296
296
  <div class="card-block">
297
297
  <div class="c8y-list__group">
@@ -1238,6 +1238,7 @@
1238
1238
  placeholder="{{ 'Select protocol' | translate }}"
1239
1239
  title="{{ $select.selected.label | translate }}"
1240
1240
  ng-bind="$select.selected.label | translate"
1241
+ data-cy="fieldbus-device-list--privacy--protocol"
1241
1242
  ></ui-select-match>
1242
1243
  <ui-select-choices
1243
1244
  repeat="protocol.value as protocol in vm.snmpAuthPrivProtocols | orderBy:'label' | filter:$select.search"
@@ -1326,6 +1327,7 @@
1326
1327
  class="btn btn-default m-b-0"
1327
1328
  type="button"
1328
1329
  title="{{ 'Add SNMP device' | translate }}"
1330
+ data-cy="fieldbus-device-list--Add-SNMP-device"
1329
1331
  ng-click="vm.startAddingNewDevice();"
1330
1332
  >
1331
1333
  <i c8y-icon="plus-circle"></i>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c8y/ng1-modules",
3
- "version": "1018.486.5",
3
+ "version": "1018.496.6",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Cumulocity",
6
6
  "description": "AngularJS modules for Cumulocity IoT applications.",