{"version":3,"sources":["components/modals/modal.datapointCustomConfig.js"],"names":["userLevels","$scope","close","Datapoint","Title","ENUM","$timeout","API","__DatapointConfig","parseValue","value","Number","isInteger","parseInt","parseFloat","lvl","userLevelsAll","DisplayName","hasOwnProperty","Config","dpConfig","angular","copy","DatapointConfig","UIElement","revertHappened","PossibleValues","isValueNumber","DefaultValue","interact","undefined","params","api","ClearCustomConfig","$promise","$GetByIds","DatapointConfigId","DeviceType","$then","cleanDatapoint","point","lastIndexOf","UserLevelRead","MaxValue","saveCustomConfigParams","active","UserLevelWrite","MinValue","catch","console","warn","configWithId","DatapointValue","DeviceId","CustomDatapointConfig","then","init","DatapointCustomConfigCtrl","$inject","module","ModalService","showModal","controller","inputs"],"mappings":"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","file":"modal.datapointCustomConfig.js","sourcesContent":["(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.modals.datapointCustomConfig', [])\r\n .factory('datapointCustomConfigModal', ['ModalService', function (ModalService) {\r\n return function (Datapoint,Title) {\r\n return ModalService.showModal({\r\n templateUrl: \"views/modals/datapointCustomConfig.html\",\r\n controller: 'DatapointCustomConfigCtrl',\r\n inputs: {\r\n Datapoint: Datapoint,\r\n Title : Title\r\n }\r\n });\r\n };\r\n }])\r\n .controller('DatapointCustomConfigCtrl', DatapointCustomConfigCtrl)\r\n ;\r\n\r\n\r\n /* @ngInject */\r\n function DatapointCustomConfigCtrl($scope, close, Datapoint, Title, ENUM, $timeout, API, __DatapointConfig) {\r\n\r\n $scope.init = function() {\r\n $scope.userLevels = {};\r\n var userLevelsAll = ENUM.getEnum('BMSUserLevel')['1AsKey'];\r\n for (var lvl in userLevelsAll) {\r\n if (userLevelsAll.hasOwnProperty(lvl)) {\r\n $scope.userLevels[lvl] = userLevelsAll[lvl].DisplayName;\r\n }\r\n }\r\n\r\n if (Datapoint.Config) {\r\n $scope.dpConfig = angular.copy(Datapoint.Config);\r\n $scope.dpConfig.UIElement = Datapoint.DatapointConfig.UIElement;\r\n } else {\r\n $scope.dpConfig = angular.copy(Datapoint.DatapointConfig);\r\n }\r\n\r\n if (Datapoint.DatapointConfig) {\r\n $scope.dpConfig.PossibleValues = Datapoint.DatapointConfig.PossibleValues;\r\n }\r\n\r\n $scope.Title = Title;\r\n $scope.isValueNumber = (typeof($scope.dpConfig.DefaultValue) === 'number');\r\n $scope.revertHappened = false;\r\n\r\n /* First turn all interaction to false so the GUI elements are correctly set to On/Off */\r\n $scope.interact = false;\r\n\r\n /* After the page loads set interaction to true so upon mouseover the switch to false is detected by a slider. */\r\n $timeout(function () {\r\n $scope.interact = true;\r\n }, 0);\r\n };\r\n\r\n $scope.close = function () {\r\n if ($scope.revertHappened) {\r\n close({ 'dpConfig': $scope.dpConfig, 'revertHappened': $scope.revertHappened });\r\n } else {\r\n close({ 'dpConfig': undefined, 'revertHappened': $scope.revertHappened });\r\n }\r\n };\r\n\r\n $scope.revertToDefault = function() {\r\n var api = new API();\r\n\r\n var params = {\r\n \"DeviceId\": Datapoint.DatapointValue.DeviceId,\r\n \"ConfigId\": $scope.dpConfig.DatapointConfigId\r\n };\r\n api.Datapoint.ClearCustomConfig(params).$promise\r\n .then(function() {\r\n __DatapointConfig.$GetByIds([ Datapoint.DatapointConfig.DatapointConfigId ], Datapoint.DatapointConfig.DeviceType)\r\n .$then(function(cleanDatapoint) {\r\n for (var point in $scope.dpConfig) {\r\n if ($scope.dpConfig.hasOwnProperty(point)\r\n && point.lastIndexOf('$', 0) !== 0\r\n && point.lastIndexOf('_', 0) !== 0\r\n && point !== 'PossibleValues'\r\n && cleanDatapoint[0][point] !== $scope.dpConfig[point]) {\r\n $scope.dpConfig[point] = cleanDatapoint[0][point];\r\n }\r\n }\r\n\r\n $scope.revertHappened = true;\r\n });\r\n })\r\n .catch(function () {\r\n console.warn('Error: clearing custom datapoint config failed');\r\n });\r\n };\r\n\r\n $scope.scopeInteraction = function(active) {\r\n $scope.interact = active;\r\n };\r\n\r\n $scope.save = function () {\r\n $scope.dpConfig.UserLevelRead = parseInt($scope.dpConfig.UserLevelRead, 10);\r\n $scope.dpConfig.UserLevelWrite = parseInt($scope.dpConfig.UserLevelWrite, 10);\r\n\r\n $scope.dpConfig.MinValue = parseValue($scope.dpConfig.MinValue);\r\n $scope.dpConfig.MaxValue = parseValue($scope.dpConfig.MaxValue);\r\n $scope.dpConfig.DefaultValue = parseValue($scope.dpConfig.DefaultValue);\r\n\r\n var api = new API();\r\n\r\n var configWithId = $scope.dpConfig;\r\n configWithId.DeviceId = Datapoint.DatapointValue.DeviceId;\r\n\r\n var saveCustomConfigParams = { \"CustomDatapointConfig\": configWithId };\r\n api.Datapoint.SetCustomConfig(saveCustomConfigParams).$promise\r\n .then(function () {\r\n $scope.revertHappened = false;\r\n close({ 'dpConfig': $scope.dpConfig, 'revertHappened': $scope.revertHappened });\r\n })\r\n .catch(function () {\r\n console.warn('Error: saving custom datapoint config failed');\r\n });\r\n };\r\n\r\n function parseValue(value) {\r\n if (typeof(value) === 'number') {\r\n if (Number.isInteger(value)) {\r\n return parseInt(value, 10);\r\n }\r\n else {\r\n return parseFloat(value);\r\n }\r\n } else {\r\n return value;\r\n }\r\n }\r\n\r\n $scope.init();\r\n }\r\n\r\n})();\r\n"],"sourceRoot":"../../../../app"}