{"version":3,"sources":["models/_Favorite_model.js"],"names":["angular","module","factory","restmod","appConfig","__Datapoint","f_User","$filter","__Scene","__Device","__MenuEntry","f_Favorites","model","mix","prepareFavorite","this","$UI","UserLevelWrite","getUserLevel","prepareFavoriteByType","resolvePermissions","b","a","UserLevel","canView","UserLevelRead","canWrite","updateFavoriteData","data","FavoriteType","Enabled","MenuEntry","buildAllDatapoints","Device","DatapointConfig","Datapoint","DatapointValue","IsOffline","IsDisabled","DeviceType","ShowOnStartScreen","$buildRaw","$dispatch","Position","vdp","VisualizationDatapoints","DeviceId","o","_type","Scene","me","undefined","CustomActionName","_values","MenuEntryType","SceneId","MenuEntryId","DatapointConfigId","UITags","tags","slicer","encodeUITags","UITag","decodeUITags","tag","$values","push","i","length","indexOf","slice","deserializeUIObject","map","$hooks","UITags._type","VisualizationDatapoints._values","UITags._values","afterRequest","CustomActionDatas._type","afterFeedMany","CustomActionDatas._values","afterFeed","$config","name","plural","afterSave","loading","after-request","beforeSave","after-feed-many","after-feed","req","beforeDestroy","_req","method","after-save","before-save","FavoriteId","$destroy","url","api_host","refresh","p","$getAll","$then","_params","$decorate","before-request","$fetch","removeFavorite","$extend","Record","before-destroy","$refresh","$save","WithDetails","params","beforeRequest","$encode","editmode","addFavorite","$type","extend","u","Favorite","id","fid","getUITag","$byId","$collection","setUITagId","Scope","$find","setFavorites","ordered","apply","List","_what","$orderBy","$getByUIID","UIID"],"mappings":"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","file":"_Favorite_model.js","sourcesContent":["\"use strict\";\r\n\r\nangular.module('app.models.favorite', []).//\r\n\r\nfactory('__Favorite', ['restmod', 'appConfig', '__Datapoint', 'f_User', '$filter','__Scene','__Device','__MenuEntry', 'f_Favorites', function(restmod, appConfig, __Datapoint, f_User, $filter, __Scene, __Device, __MenuEntry, f_Favorites) {\r\n\r\n\r\n //noinspection JSDuplicatedDeclaration\r\n return restmod.model('/Favorite').mix('BaseModel').mix({\r\n //$pk:'DeviceId',\r\n prepareFavorite: function () {\r\n if (!this.$UI) {\r\n this.$UI = {};\r\n }\r\n\r\n if (this.UserLevelWrite <= f_User.getUserLevel()) {\r\n this.$UI.canWrite = true;\r\n }\r\n\r\n this.prepareFavoriteByType();\r\n this.resolvePermissions();\r\n },\r\n resolvePermissions: function () {\r\n var b, a;\r\n var UserLevel = f_User.getUserLevel();\r\n\r\n if (this.UserLevelRead >= UserLevel) {\r\n // normaly API will filter non readable\r\n a = true;\r\n } else {\r\n a = false;\r\n }\r\n this.canView = a;\r\n\r\n if (\r\n (this.UserLevelWrite > UserLevel // We can't write it\r\n )\r\n ) {\r\n b = false;\r\n } else {\r\n b = true;\r\n }\r\n this.canWrite = b;\r\n\r\n },\r\n updateFavoriteData:function(data){\r\n\r\n switch(this.$UI.FavoriteType){\r\n\r\n case \"Scene\":\r\n // Update Enabled, AllActionsRunning\r\n this.Enabled = data.Enabled;\r\n //this.$UI.Scene.Enabled = data.Enabled;\r\n this.ActionIsRunning = data.ActionIsRunning;\r\n this.ConditionIsTrue = data.ConditionIsTrue;\r\n break;\r\n case \"CustomAction\":\r\n //this.$UI.Scene.Enabled = data.Enabled;\r\n\r\n break;\r\n case \"MenuEntry\":\r\n // this.$UI.Scene.Enabled = data.Enabled;\r\n\r\n this.$UI.MenuEntry = data.$UI.MenuEntry;\r\n this.$UI.MenuEntry.$UI.buildAllDatapoints = false;\r\n // this.$UI.MenuEntry.$dispatch('build-datapoints');;//.$dispatch('');\r\n break;\r\n case \"Device\":\r\n\r\n this.$UI.Device = data.$UI.Device;\r\n\r\n\r\n this.$UI.Device.IsOffline = data.IsOffline;\r\n this.$UI.Device.IsDisabled = data.IsDisabled;\r\n this.$UI.Device.DeviceType = data.DeviceType;\r\n\r\n\r\n\r\n break;\r\n case \"Datapoint\":\r\n var o = this;\r\n this.DatapointValue = data.DatapointValue;\r\n this.DatapointConfig = data.DatapointConfig;\r\n this.Datapoint = __Datapoint.$buildRaw(\r\n {\r\n 'DatapointConfig': o.DatapointConfig,\r\n 'DatapointValue': o.DatapointValue\r\n }\r\n );\r\n this.Datapoint.$dispatch('build');\r\n\r\n break;\r\n }\r\n this.IsOffline = data.IsOffline;\r\n this.IsDisabled = data.IsDisabled;\r\n this.Position = data.Position;\r\n this.DisplayName = data.DisplayName;\r\n this.ShowOnStartScreen = data.ShowOnStartScreen;\r\n\r\n },\r\n prepareFavoriteByType: function () {\r\n var o = this;\r\n // if(o.$type != undefined && typeof o.$type == 'string'){o._type = o.$type;};\r\n if (o._type) {\r\n switch (o._type) {\r\n case \"BMS.Shared.Model.System.FavoriteCustomAction, BMS.Shared\":\r\n this.$UI.FavoriteType = 'CustomAction';\r\n break;\r\n case \"BMS.Shared.Model.System.FavoriteMenuEntry, BMS.Shared\":\r\n var me;\r\n if (o.CustomActionName !== undefined) {\r\n me = 'CustomAction';\r\n } else {\r\n me = 'MenuEntry';\r\n }\r\n this.$UI.FavoriteType = me;\r\n var vdp = this.VisualizationDatapoints && this.VisualizationDatapoints._values ? this.VisualizationDatapoints._values : [];\r\n\r\n this.$UI.MenuEntry = __MenuEntry.$buildRaw({\r\n MenuEntryId:this.MenuEntryId,\r\n MenuEntryType:this.MenuEntryType,\r\n DeviceId : this.DeviceId,\r\n VisualizationDatapoints:vdp\r\n }).$dispatch('build-datapoints');\r\n break;\r\n case \"BMS.Shared.Model.System.FavoriteScene, BMS.Shared\":\r\n this.$UI.FavoriteType = 'Scene';\r\n this.$UI.Scene = __Scene.$buildRaw({\r\n SceneId:this.SceneId,\r\n Enabled: this.Enabled\r\n });\r\n break;\r\n case \"BMS.Shared.Model.System.FavoriteDevice, BMS.Shared\":\r\n this.$UI.FavoriteType = 'Device';\r\n var vdp = this.VisualizationDatapoints && this.VisualizationDatapoints._values ? this.VisualizationDatapoints._values : [];\r\n this.$UI.Device = __Device.$buildRaw({\r\n DeviceId : this.DeviceId,\r\n DeviceType : this.DeviceType,\r\n IsOffline : this.IsOffline,\r\n IsDisabled: this.IsDisabled,\r\n VisualizationDatapoints: vdp\r\n }).$dispatch('build-view-datapoints');\r\n break;\r\n case \"BMS.Shared.Model.System.FavoriteDatapoint, BMS.Shared\":\r\n this.$UI.FavoriteType = \"Datapoint\";\r\n // Extend the Value object by Datapoint Config ID,DeviceId and correct Type. So we can refresh Datapoints;\r\n if (o.DatapointConfig !== undefined) {\r\n this.Datapoint = __Datapoint.$buildRaw(\r\n {\r\n 'DatapointConfig': o.DatapointConfig,\r\n 'DatapointValue': o.DatapointValue\r\n }\r\n );\r\n this.Datapoint.$dispatch('build');\r\n }\r\n\r\n break;\r\n }\r\n } else {\r\n if (o.DeviceId !== undefined && o.MenuEntryId === undefined && o.DatapointConfig === undefined) {\r\n this.$UI.FavoriteType = 'Device';\r\n }\r\n if (o.DeviceId !== undefined && o.MenuEntryId !== undefined && o.DatapointConfig === undefined) {\r\n this.$UI.FavoriteType = 'MenuEntry';\r\n }\r\n if (o.SceneId !== undefined) {\r\n this.$UI.FavoriteType = 'Scene';\r\n }\r\n if (o.DatapointConfigId !== undefined) {\r\n this.$UI.FavoriteType = 'Datapoint';\r\n }\r\n if (o.DatapointConfig !== undefined) {\r\n this.$UI.FavoriteType = 'Datapoint';\r\n }\r\n\r\n }\r\n\r\n },\r\n decodeUITags: function () {\r\n var o = this;\r\n o.$UI.UITags = {};\r\n if (o.UITags && o.UITags._values) {\r\n var tags = o.UITags._values;\r\n for (var i = 0; i < tags.length; ++i) {\r\n var slicer = tags[i].indexOf(':');\r\n if (slicer > 0) {\r\n o.$UI.UITags[tags[i].slice(0, slicer)] = this.deserializeUIObject('[' + tags[i].slice(slicer + 1) + ']');\r\n }\r\n }\r\n }\r\n },\r\n encodeUITags: function () {\r\n if (!this.UITags) {\r\n return;\r\n }\r\n var UITags = this.$UI.UITags;\r\n this.UITags.$values = [];\r\n for (var UITag in UITags) {\r\n var tag = UITags[UITag];\r\n UITag += ':';\r\n if (!tag) {\r\n return;\r\n }\r\n for (var i = 0; i < tag.length; ++i) {\r\n UITag += tag[i];\r\n if (i < tag.length - 1) {\r\n UITag += '|';\r\n }\r\n }\r\n this.UITags.$values.push(UITag);\r\n }\r\n },\r\n $pk: 'FavoriteId',\r\n _type: {map: '$type'},\r\n 'UITags._type': {map: '$type'},\r\n 'VisualizationDatapoints._values': {map: '$values'},\r\n 'UITags._values': {map: '$values'},\r\n 'CustomActionDatas._type': {map: '$type'},\r\n 'CustomActionDatas._values': {map: '$values'},\r\n $config: {name: 'ResponseData', plural: 'ResponseData'},\r\n Datapoint: {'hasOne': '__Datapoint'},\r\n\r\n $hooks: {\r\n 'prepareFavorite': function(){\r\n this.prepareFavoriteByType();\r\n },\r\n 'after-request': function (_req) {\r\n\r\n },\r\n 'after-feed-many': function () {\r\n\r\n },\r\n 'after-feed': function (req) {\r\n this.$UI = !this.$UI ? {} : this.$UI;\r\n this.prepareFavorite();\r\n this.decodeUITags();\r\n },\r\n 'after-save':function(){\r\n this.$UI.loading=false;\r\n },\r\n 'before-save':function(){\r\n this.$UI.loading=true;\r\n\r\n if( !this.FavoriteId ){\r\n this.UserLevelWrite = 0;\r\n this.UserLevelRead = 0;\r\n }\r\n\r\n },\r\n 'before-destroy': function (_req) {\r\n _req.url = appConfig().api_host + 'Favorite/RemoveFavorite';\r\n _req.method = 'POST';\r\n\r\n },\r\n 'refresh': function (p) {\r\n var t = this;\r\n this.$getAll().$then(function (data) {\r\n t = data;\r\n t.$dispatch('refresh-values');\r\n });\r\n }\r\n },\r\n $destroy: function (_params) {\r\n return this.$decorate({\r\n 'before-request': function (_req) {\r\n _req.url = appConfig().api_host + 'Favorite/RemoveFavorite';\r\n _req.method = 'POST';\r\n _req.data = {FavoriteId: this.FavoriteId};\r\n //alert()\r\n },\r\n 'after-request' :function(){\r\n\r\n }\r\n }, function () {\r\n // every method from same context called inside this function will be decorated.\r\n return this.$fetch();\r\n }).$then(function () {\r\n f_Favorites.removeFavorite(this);\r\n });\r\n },\r\n $extend: {\r\n\r\n Record: {\r\n hooks: {\r\n 'before-destroy': function (_req) {\r\n\r\n _req.url = appConfig().api_host + 'Favorite/RemoveFavorite';\r\n }\r\n },\r\n $refresh : function () {\r\n return this.$decorate({\r\n 'before-request': function (_req) {\r\n _req.method = 'POST';\r\n _req.data = {'FavoriteId': this.FavoriteId, 'WithDetails': true};\r\n _req.params = null;\r\n _req.url = appConfig().api_host + 'Favorite/GetFavoriteById';\r\n },\r\n 'after-request': function (_req) {\r\n _req.data = _req.data ;\r\n\r\n }\r\n }, function () {\r\n return this.$fetch();\r\n }).$then(function () {\r\n f_Favorites.addFavorite(this);\r\n });\r\n },\r\n $save: function (_token) {\r\n this.encodeUITags();\r\n return this.$decorate({\r\n 'before-request': function (_req) {\r\n /* Transform $save Calls */\r\n _req.url = appConfig().api_host + 'Favorite/AddOrUpdateFavorite';\r\n _req.method = 'POST';\r\n var data = this.$encode();\r\n var o = {$type: data._type};\r\n delete data.editmode;\r\n delete data.canWrite;\r\n delete data.canView;\r\n delete data.DatapointConfig;\r\n delete data.DatapointValue;\r\n delete data.VisualizationDatapoints;\r\n var u = data;\r\n delete u._type;\r\n //alert('Saving '+data.FavoriteId+' //////// '+this.FavoriteId);\r\n if(data.UITags == null){\r\n delete data.UITags;\r\n }\r\n\r\n /* If there is no FavoriteId, the favorite has to be a new one.\r\n Current user *Write/*Read levels are not used anymore. */\r\n if(!data.FavoriteId)\r\n {\r\n u.UserLevelWrite = 0;\r\n u.UserLevelRead = 0;\r\n }\r\n\r\n _req.data = {'Favorite': angular.extend(o, u)};\r\n\r\n },\r\n 'after-request' : function(_req){\r\n if (!this.FavoriteId) {\r\n\r\n var fid = _req.data;\r\n this.FavoriteId = _req.data;\r\n //this.FavoriteId;\r\n _req.data = this.$encode();\r\n // console.log(_req.data);\r\n _req.data.FavoriteId = fid;\r\n // console.log(this);\r\n }else{\r\n _req.data = this.$encode();\r\n }\r\n\r\n }\r\n }, function () {\r\n return this.$fetch();\r\n }).$then(function () {\r\n f_Favorites.addFavorite(this);\r\n });\r\n },\r\n getUITag: function (UITag) {\r\n return this.$UI.UITags[UITag];\r\n },\r\n hasUITagId: function (UITag, id) {\r\n if (!this.$UI.UITags[UITag]) {\r\n return false;\r\n }\r\n\r\n return this.$UI.UITags[UITag].indexOf(id) !== -1;\r\n },\r\n setUITagId: function (UITag, id) {\r\n if (!this.$UI.UITags[UITag]) {\r\n this.$UI.UITags[UITag] = [];\r\n }\r\n\r\n this.$UI.UITags[UITag].push(id);\r\n }\r\n },\r\n Scope: {\r\n $byId: function (params) {\r\n return this.$collection(false).$decorate({\r\n 'before-request': function (_req) {\r\n _req.method = 'POST';\r\n _req.data = {'FavoriteId': params};\r\n _req.params = null;\r\n _req.url = appConfig().api_host + 'Favorite/GetFavoriteById';\r\n },\r\n 'after-request': function (_req) {\r\n _req.data = [_req.data];\r\n\r\n }\r\n }, function () {\r\n return this.$find();\r\n }).$then(function () {\r\n f_Favorites.addFavorite(this);\r\n });\r\n },\r\n $getAll: function (params) {\r\n return this.$collection(params).$decorate({\r\n 'before-request': function (_req) {\r\n _req.method = 'POST';\r\n _req.params = null;\r\n if(!params){ params = {};};\r\n _req.data = params;\r\n _req.url = appConfig().api_host + 'Favorite/GetFavorites';\r\n }\r\n }, function () {\r\n return this.$fetch();\r\n }).$then(function () {\r\n\r\n f_Favorites.setFavorites(this)\r\n });\r\n }\r\n },\r\n List: {\r\n $filter: function (_what) {\r\n var ordered = $filter('filter')(this, _what);\r\n // reset the collection contents:\r\n this.length = 0;\r\n this.push.apply(this, ordered);\r\n return this;\r\n },\r\n $orderBy: function (_what) {\r\n var ordered = $filter('orderBy')(this, _what);\r\n // reset the collection contents:\r\n this.length = 0;\r\n this.push.apply(this, ordered);\r\n return this;\r\n },\r\n $getByUIID: function (UIID) {\r\n for (var i = 0; i < this.length; ++i) {\r\n if (this[i].$UI.UITags && this[i].$UI.UITags.UIID && this[i].$UI.UITags.UIID[0] === UIID) {\r\n return this[i];\r\n }\r\n }\r\n return undefined;\r\n }\r\n }\r\n }\r\n });\r\n}]);\r\n"],"sourceRoot":"../../../app"}