Changeset 389


Ignore:
Timestamp:
2015-03-14 13:31:01 (10 years ago)
Author:
amg0
Message:

Multi State Button functional.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/AltUI/J_ALTUI_uimgr.js

    r388 r389  
    15791579    function _initCustomPages( custompages ) { 
    15801580    }; 
    1581      
     1581 
    15821582    //------------------------------------------------------------   
    15831583    //  CUSTOM PAGE MENU 
     
    15861586    var startpos = null; 
    15871587    var _widgetOnCanvasDraggableOptions = { 
    1588         // grid: [ 5,5 ], 
     1588        grid: [ 5,5 ], 
    15891589        // helper: "clone", 
    15901590        revert: "invalid", 
    1591         snap: true, 
    1592         snapMode: "inner", 
    1593         snapTolerance: 20, 
     1591        // snap: true, 
     1592        // snapMode: "inner", 
     1593        // snapTolerance: 20, 
    15941594        start: function(event, ui) { 
    15951595            startpos = ui.position; 
     
    17171717    }; 
    17181718     
     1719    function _widgetDialogAddCheck(dialog,name, value) 
     1720    { 
     1721        var propertyline = ""; 
     1722        // propertyline += "<div class='checkbox'>"; 
     1723        propertyline +="<label class='checkbox-inline'>"; 
     1724        propertyline +=("  <input type='checkbox' id='altui-widget-"+name+"' " + ( (value==true) ? 'checked' : '') +" value='"+value+"' title='check to invert status value'>"+name); 
     1725        propertyline +="</label>"; 
     1726        // propertyline += "</div>"; 
     1727        $(dialog).find("form").append(propertyline); 
     1728    }; 
     1729     
    17191730    function _widgetDialogAddLine(dialog, name, value) 
    17201731    { 
     1732        value = value ||''; 
    17211733        var propertyline = ""; 
    17221734        propertyline += "<div class='form-group'>"; 
     
    17981810    }; 
    17991811     
    1800     function _widgetDialogAddActions(id, dialog,widget,actiondescriptor,cbfunc) 
     1812    function _widgetDialogAddActions(id, dialog,widget,actiondescriptor,label, cbfunc) 
    18011813    { 
    18021814        // callback when select of actions is changed 
     
    18341846            var propertyline = ""; 
    18351847            propertyline += "<div class='form-group'>"; 
    1836             propertyline += "   <label for='"+id+"'>Action</label>"; 
     1848            propertyline += "   <label for='"+id+"'>"+label+"</label>"; 
    18371849            propertyline +=     result; 
    18381850            propertyline += "</div>"; 
     
    19491961        var dialog = _widgetCreatePropertyDialog('UPnP Action Properties'); 
    19501962        _widgetDialogAddDevices( dialog , widget, function() { 
    1951             _widgetDialogAddActions("altui-widget-action",dialog, widget, widget.properties, function() { 
     1963            _widgetDialogAddActions("altui-widget-action",dialog, widget, widget.properties, 'Action', function() { 
    19521964                // run the show 
    19531965                $('div#dialogModal').modal(); 
     
    19841996        _widgetDialogAddDevices( dialog , widget, function() { 
    19851997            _widgetDialogAddVariables(dialog, widget, function() { 
     1998                _widgetDialogAddCheck(dialog,'Inverted',widget.properties.inverted); 
    19861999                _widgetDialogAddLine(dialog,'OffLabel', widget.properties.labels[0]); 
    1987                 _widgetDialogAddActions("altui-widget-action-on",dialog, widget, widget.properties.action_off, function() { 
     2000                _widgetDialogAddActions("altui-widget-action-off",dialog, widget, widget.properties.action_off, 'Action to switch OFF', function() { 
    19882001                    _widgetDialogAddLine(dialog,'OnLabel', widget.properties.labels[1]); 
    1989                     _widgetDialogAddActions("altui-widget-action-off",dialog, widget, widget.properties.action_on, function() { 
     2002                    _widgetDialogAddActions("altui-widget-action-on",dialog, widget, widget.properties.action_on, 'Action to switch ON', function() { 
    19902003                        // run the show 
    19912004                        $('div#dialogModal').modal(); 
     
    20002013            // save for real this time 
    20012014            real_widget.properties.deviceid = widget.properties.deviceid; 
     2015            real_widget.properties.inverted = $("#altui-widget-Inverted").is(':checked'); 
    20022016 
    20032017            var states = VeraBox.getStates( widget.properties.deviceid ); 
     
    20352049        // clone for temporary storage 
    20362050        var widget = $.extend( true, {}, real_widget ); 
    2037         var dialog = _widgetCreatePropertyDialog('OnOff Button Properties'); 
     2051        var dialog = _widgetCreatePropertyDialog('Device Icon Properties'); 
    20382052         
    20392053        _widgetDialogAddDevices( dialog , widget, function() { 
     
    21262140    }; 
    21272141 
     2142     
     2143    // ------------------------------------------ 
     2144    // public Callback 
     2145    // ------------------------------------------ 
     2146    function _onoffOnClick(widgetid) { 
     2147        // find the widget 
     2148        var pagename = _getActivePageName(); 
     2149        var page = PageManager.getPageFromName( pagename ); 
     2150        var widget=PageManager.getWidgetByID( page, widgetid ); 
     2151        // find the device 
     2152        var device= VeraBox.getDeviceByID( widget.properties.deviceid); 
     2153        // trigger the right action 
     2154        var status = VeraBox.getStatus(widget.properties.deviceid, widget.properties.service, widget.properties.variable); 
     2155        if  ((status==undefined) || (status==false) || (status=='0') ) 
     2156            status = 0; 
     2157        else if ((status=='true') || (status=='1') || (status>=1)) 
     2158            status = 1; 
     2159        var actiondescriptor = (status==1) ? widget.properties.action_off : widget.properties.action_on; 
     2160        if (widget.properties.inverted) 
     2161            status = 1-status; 
     2162        UPnPHelper.UPnPAction( widget.properties.deviceid, actiondescriptor.service, actiondescriptor.action, actiondescriptor.params); 
     2163    }; 
    21282164     
    21292165    // ------------------------------------------ 
     
    22322268            html: _toolHtml(onoffGlyph,"Multi State"), 
    22332269            property: _onPropertyOnOffButton,  
    2234             widgetdisplay: function(widget,bEdit)   {  
    2235                 var status = 0; 
    2236                 return "<button {3} id='{0}' type='button' style='color:{7};' class='{1} btn btn-default' aria-label='Run Scene' onclick='UPnPHelper.UPnPAction( {0}, \"{4}\", \"{5}\", {6} )' >{2}</button>".format( 
     2270            widgetdisplay: function(widget,bEdit)   { 
     2271                var status=0; 
     2272                if (widget.properties.deviceid>0) 
     2273                { 
     2274                    status = VeraBox.getStatus(widget.properties.deviceid, widget.properties.service, widget.properties.variable); 
     2275                    if  ((status==undefined) || (status==false) || (status=='0') ) 
     2276                        status = 0; 
     2277                    else if ((status=='true') || (status=='1') || (status>=1)) 
     2278                        status = 1; 
     2279                    if (widget.properties.inverted==true) 
     2280                        status = 1-status; 
     2281                } 
     2282                return "<button {3} id='{0}' type='button' style='color:{4};' class='{1} btn btn-default' aria-label='Run Scene' onclick='UIManager.onoffOnClick( {5})' >{2}</button>".format( 
    22372283                    widget.properties.deviceid,                 // id 
    22382284                    'altui-widget-2statebtn',                   // class 
    22392285                    onoffGlyph,                                 // content 
    22402286                    (bEdit==true)?'disabled':'',                // editmode 
    2241                     widget.properties.service,                  // action service 
    2242                     widget.properties.action,                   // action name 
    2243                     JSON.stringify(widget.properties.params),   // action parameter 
    2244                     (status==0) ? 'red' : 'green'       // status & color of button 
     2287                    // widget.properties.service,                   // action service 
     2288                    // widget.properties.action,                    // action name 
     2289                    // JSON.stringify(widget.properties.params),    // action parameter 
     2290                    (status==0) ? 'red' : 'green',      // status & color of button 
     2291                    widget.id 
    22452292                    ); 
    22462293            }, 
     
    22492296                service:'',     // display state service 
    22502297                variable:'',    // display state variable 
     2298                inverted:0, // inverted to that onstate is value 0 
    22512299                labels: [],     // 0:onlabel , 1:offlabel 
    22522300                action_off: { 
     
    22902338    }; 
    22912339 
     2340    function _getActivePageName() { 
     2341        var pagename = $("#altui-page-tabs li.active").prop('id'); 
     2342        return pagename.substring( "altui-page-".length); 
     2343    }; 
     2344 
    22922345    function _createPageTabsHtml( bEditMode ) { 
    22932346        var actions = ""; 
     
    23652418    stoprefreshModes    : _stoprefreshModes, 
    23662419    refreshModes        : _refreshModes, 
     2420     
     2421    // custom panel widget callbacks 
     2422    onoffOnClick        : _onoffOnClick, 
    23672423     
    23682424    //drawing functions 
     
    30633119     
    30643120    pageEditPages: function () 
    3065     {        
    3066         function _getActivePageName() { 
    3067             var pagename = $("#altui-page-tabs li.active").prop('id'); 
    3068             return pagename.substring( "altui-page-".length); 
    3069         }; 
    3070          
     3121    {                
    30713122        function _pagePageProperty(pagename) { 
    30723123            var propertyline = ""; 
     
    32773328        $(".altui-leftnav .altui-widget").draggable({ 
    32783329            // containment: ".altui-custompage-canvas", 
    3279             // grid: [ 5,5 ], 
     3330            grid: [ 5,5 ], 
    32803331            helper: "clone", 
    32813332            cursorAt: { left: 5 }, 
    3282             snap: true, 
    3283             snapMode: "inner", 
    3284             snapTolerance: 20, 
     3333            // snap: true, 
     3334            // snapMode: "inner", 
     3335            // snapTolerance: 20, 
    32853336            revert: "invalid" 
    32863337        }); 
     
    33053356                var widgetid = $(this).prop('id'); 
    33063357                var widget=PageManager.getWidgetByID( page, widgetid ); 
     3358                // apply defaults 
     3359                widget.properties = $.extend(true,{}, tool.properties, widget.properties); 
    33073360                (tool.property)( widget ); 
    33083361            } 
Note: See TracChangeset for help on using the changeset viewer.