UNPKG

sense-on-off-switch

Version:

Set a variable in Qlik Sense to true/false using an on-off switch.

1 lines 1.29 kB
define(["jquery","underscore","angular","qlik","./properties","./initialproperties","./lib/js/extensionUtils","text!./lib/css/main.css","text!./lib/partials/template.ng.html"],function($,_,angular,qlik,props,initProps,extensionUtils,cssContent,ngTemplate){"use strict";return extensionUtils.addStyleToHeader(cssContent),{definition:props,initialProperties:initProps,snapshot:{canTakeSnapshot:!1},template:ngTemplate,controller:["$scope",function($scope){function stringToBoolean(string){switch(string.toLowerCase()){case"true":case"yes":case"1":return!0;case"false":case"no":case"0":case null:return!1;default:return Boolean(string)}}var app=qlik.currApp(),varName=$scope.layout.props.varName;$scope.isSelected=null;var init=function(numTries){numTries||(numTries=0),numTries>2||(numTries>0&&angular.noop(),app.variable.getContent(varName).then(function(reply){$scope.isSelected=stringToBoolean(reply.qContent.qString)})["catch"](function(error){numTries++,init(numTries)}))};$scope.$watch("isSelected",function(newVal,oldVal){null!==newVal&&newVal!==oldVal&&app.variable.setContent(varName,"=("+(newVal===!0?1:0)+")").then(function(reply){angular.noop()})["catch"](function(reply){})}),$scope.$watch("layout.props.varName",function(newVal,oldVal){newVal!==oldVal&&init()}),init()}]}});