@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.
- package/NOTICES +1 -1
- package/administration-alarmMapping/views/index.html +2 -2
- package/administration-auditLogs/views/list.html +8 -7
- package/administration-deviceUsers/views/list.html +55 -18
- package/app-logs/app-logs/app-logs.html +10 -9
- package/applicationLinks/index.js +1 -1
- package/binaryArtefactsManagement/views/list.html +63 -23
- package/core/core/services/measurements.js +1 -1
- package/core/locales/de.po +246 -102
- package/core/locales/en.po +34 -15
- package/core/locales/es.po +21 -103
- package/core/locales/fr.po +20 -102
- package/core/locales/ja_JP.po +20 -102
- package/core/locales/ko.po +20 -102
- package/core/locales/nl.po +20 -102
- package/core/locales/pl.po +21 -103
- package/core/locales/pt_BR.po +38 -120
- package/core/locales/ru.po +21 -103
- package/core/locales/zh_CN.po +21 -103
- package/core/locales/zh_TW.po +21 -103
- package/core/ui/directives/map2.js +1 -1
- package/core/ui/itemSelector/itemSelector.html +1 -1
- package/core/ui/services/measurementsReport.js +1 -1
- package/core/ui/user/editUser.directive.html +3 -3
- package/core/ui/user/rolesUiStrings.constant.js +1 -1
- package/core/ui/views/modal.html +1 -1
- package/dataBroker/connectors/connectors.html +87 -32
- package/dataPointExplorer/controllers/dataPointExplorer.js +1 -1
- package/dataPointExplorer/index.js +1 -1
- package/dataPointExplorer/views/explorer.html +6 -2
- package/dataPointExplorer/views/widgetConfig.html +1 -0
- package/dataPointTable/index.js +1 -1
- package/dataPointTable/views/widgetConfig.html +1 -3
- package/device-protocol-deviceDatabase4/device-type-protocol-base.provider.js +1 -1
- package/device-protocols/deviceProtocolList.html +4 -4
- package/device-protocols/deviceProtocolView.html +34 -14
- package/deviceDatabase4/cumulocity.json +4 -6
- package/deviceDatabase4/detail/device-type-detail.component.js +1 -1
- package/deviceDatabase4/detail/device-type-detail.html +1 -0
- package/deviceDatabase4/modals/configure-register.component.js +1 -1
- package/deviceDatabase4/modals/configure-register.html +2 -2
- package/deviceDatabase4/validate-measurement-fragment.directive.js +1 -0
- package/deviceList/views/index.html +4 -1
- package/devicemanagement-alarmList/views/index.html +57 -19
- package/devicemanagement-availability/controllers/availability.js +1 -1
- package/devicemanagement-availability/views/detail.html +19 -8
- package/devicemanagement-eventList/views/index.html +6 -2
- package/enterpriseEdition/enterpriseEdition.module.js +1 -1
- package/eventList/index.js +1 -1
- package/export/directives/timespan.js +1 -1
- package/export/services/filters.js +1 -1
- package/export/views/detail.html +1 -1
- package/export/views/list.html +21 -0
- package/export/views/properties.html +3 -3
- package/export/views/timespan.html +38 -9
- package/measurements/fragmentChart/fragmentChart.component.js +1 -1
- package/measurements/measurements2/series.service.js +1 -1
- package/modbusConfiguration4/fieldbus-config.html +2 -1
- package/modbusConfiguration4/fieldbus-device-list.html +3 -1
- package/package.json +1 -1
- package/platformConfiguration/cumulocity.json +1 -1
- package/platformConfiguration/platformConfiguration.component.js +1 -0
- package/platformConfiguration/platformConfiguration.html +22 -0
- package/platformConfiguration/platformConfigurationUi.provider.js +1 -1
- package/scada/config.controller.js +1 -1
- package/scada/views/componentConfig.html +28 -14
- package/scada/widget.controller.js +1 -1
- package/tenantPolicies/tenantPolicyList/tenantPolicyList.html +90 -25
- package/tenantStatistics/tenant-statistics.html +23 -14
- package/tenants/views/detail.html +1 -1
- package/userRoles/inventoryRolesTab/inventoryRolesTab.component.js +1 -1
- package/userRoles/inventoryRolesTab/inventoryRolesTab.html +16 -10
- package/users/userListView/userListView.html +47 -17
- package/users/usersUi.provider.js +1 -1
- package/deviceControlMessage/controllers/deviceControlMessageWidget.js +0 -1
- package/deviceControlMessage/cumulocity.json +0 -15
- package/deviceControlMessage/img/message-widget-pr.png +0 -0
- package/deviceControlMessage/index.js +0 -1
- package/deviceControlMessage/views/deviceControlMessageWidget.html +0 -26
- package/infoGauge/cumulocity.json +0 -20
- package/infoGauge/img/info-gauge-widget-pr.png +0 -0
- package/infoGauge/index.js +0 -1
- package/infoGauge/infoGauge.controller.js +0 -1
- package/infoGauge/infoGauge.service.js +0 -1
- package/infoGauge/infoGaugeConfig.controller.js +0 -1
- package/infoGauge/infoGaugeWidget.config.html +0 -58
- package/infoGauge/infoGaugeWidget.html +0 -32
- package/infoGauge/style.less +0 -0
- package/platformConfiguration/platformConfigurationForm.component.js +0 -1
- 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("
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
47
|
+
<i
|
|
48
|
+
class="icon-spin"
|
|
49
|
+
c8y-icon="circle-o-notch"
|
|
50
|
+
></i>
|
|
42
51
|
</span>
|
|
43
|
-
<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
|
|
51
|
-
|
|
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
|
|
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
|
|
75
|
-
|
|
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
|
|
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
|
|
95
|
-
|
|
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
|
|
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
|
|
24
|
-
|
|
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
|
|
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=
|
|
1
|
+
<div ng-controller="eventListCtrl as vm">
|
|
2
2
|
<c8y-help src="/users-guide/device-management/#events-all"></c8y-help>
|
|
3
|
-
<c8y-event-list
|
|
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
|
|
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)}();
|
package/eventList/index.js
CHANGED
|
@@ -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||"
|
|
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}}]);
|
package/export/views/detail.html
CHANGED
package/export/views/list.html
CHANGED
|
@@ -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-
|
|
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-
|
|
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="
|
|
3
|
-
<div class="
|
|
4
|
-
<select
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
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>
|