Changes in / [20:30]


Ignore:
Files:
30 added
3 edited

Legend:

Unmodified
Added
Removed
  • /trunk/J_Freebox.js

    r20 r30  
    1 var Freebox_browserIE = false; 
    2 var Freebox_parseXml = undefined; 
    3  
    4 var FREEBOX_SID = 'urn:freebox-fr:serviceId:Freebox1'; 
     1var Freebox = { 
     2    timeoutVar : undefined, 
     3    timeoutVar2 : undefined, 
     4    browserIE : false, 
     5    parseXml : undefined, 
     6 
     7    prevNetDevices : undefined, 
     8    prevPhoneCalls : undefined, 
     9 
     10    SID : 'urn:freebox-fr:serviceId:Freebox1', 
     11 
     12    buttonBgColor : '#3295F8', 
     13    offButtonBgColor : '#3295F8', 
     14    onButtonBgColor : '#025CB6', 
     15    tableTitleBgColor : '#025CB6' 
     16}; 
    517 
    618function Freebox_showNetDevices (device) 
    719{ 
     20    if (typeof Freebox.timeoutVar != 'undefined') { 
     21        clearTimeout(Freebox.timeoutVar); 
     22    } 
     23 
    824    Freebox_detectBrowser(); 
     25    Freebox_defineUIStyle(); 
    926 
    1027    Freebox_initXMLParser(); 
     
    1633    html += '<tr>'; 
    1734    html += '<td>'; 
    18     html += '<select id="filter">'; 
     35    html += '<select id="filter" onChange="Freebox_refreshNetDevices('+device+', true);">'; 
    1936    html += '<option selected value="ALL">Tous les peripheriques</option>'; 
    2037    html += '<option value="REACHABLE">Peripheriques joignables</option>'; 
    2138    html += '<option value="UNREACHABLE">Peripheriques injoignables</option>'; 
    2239    html += '</select>'; 
    23     html += '<button type="button" style="margin-left: 10px; background-color:lightblue; height: 25px; width: 50px" onclick="Freebox_filterNetDevices('+device+');">Filtrer</button>'; 
     40    html += '<button type="button" style="margin-left: 10px; background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 75px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_updateNetDevices('+device+');">Rafraichir</button>'; 
    2441    html += '</td>'; 
    2542    html += '</tr>'; 
     
    3451    set_panel_html(html); 
    3552 
    36     Freebox_filterNetDevices(device); 
    37 } 
    38  
    39 function Freebox_filterNetDevices(device) 
    40 { 
    41     if ($('filter').selectedIndex >= 0) { 
    42         var filter = $('filter').options[$('filter').selectedIndex].value; 
    43         Freebox_updateNetDevicesTable(device, filter); 
    44     } 
    45 } 
    46  
    47 function Freebox_updateNetDevicesTable (device, filter) 
    48 { 
    49     var html = '<table border="1" >'; 
    50     html += '<tr align="center" bgcolor="LightBlue">'; 
    51     html += '<th>Nom</td>'; 
    52     html += '<th>IP</td>'; 
    53     html += '<th>MAC</td>'; 
    54     html += '<th>Wifi</td>'; 
    55     if (filter == 'ALL') { 
    56         html += '<th>Joignable</td>'; 
    57     } 
    58     html += '</tr>'; 
    59     html += '<tr>'; 
    60  
    61     var xmlnetDevices 
    62     var netDevices = get_device_state(device, FREEBOX_SID, "PeripheriquesReseau", 1); 
    63     if (netDevices != undefined && netDevices != "") { 
    64         xmlnetDevices = Freebox_parseXml(netDevices); 
    65     } 
    66     if (typeof xmlnetDevices != 'undefined') { 
    67         var device = xmlnetDevices.getElementsByTagName("device"); 
    68         if (device.length > 0) { 
    69             for (i=0; i<device.length; i++) { 
    70                 var reachable = Freebox_extractXmlTag(device[i], 'reachable'); 
    71                 if (filter == 'ALL' 
    72                         || (filter == 'REACHABLE' && reachable == 'true') 
    73                         || (filter == 'UNREACHABLE' && reachable != 'true')) { 
    74                     var name = Freebox_extractXmlTag(device[i], 'name'); 
    75                     var mac = Freebox_extractXmlTag(device[i], 'mac'); 
    76                     var ip = Freebox_extractXmlTag(device[i], 'ip'); 
    77                     var wifi = Freebox_extractXmlTag(device[i], 'wifi'); 
    78                     if (filter == 'ALL') { 
     53    Freebox.prevNetDevices = undefined; 
     54 
     55    Freebox_refreshNetDevices(device, false); 
     56} 
     57 
     58function Freebox_updateNetDevices(device) 
     59{ 
     60    Freebox_call_action (device, Freebox.SID, 'RafraichirReseau', {} ); 
     61} 
     62 
     63function Freebox_refreshNetDevices (device, force) 
     64{ 
     65    var netDevices = get_device_state(device, Freebox.SID, "PeripheriquesReseau", 1); 
     66    if (force || (netDevices != Freebox.prevNetDevices)) { 
     67        var filter = 'ALL'; 
     68        if (jQuery('#filter option:selected').index() >= 0) { 
     69            filter = jQuery('#filter').val(); 
     70        } 
     71 
     72        var html = '<table border="1" >'; 
     73        html += '<tr align="center" style="background-color: '+ Freebox.tableTitleBgColor + '; color: white">'; 
     74        html += '<th>Nom</td>'; 
     75        html += '<th>IP</td>'; 
     76        html += '<th>MAC</td>'; 
     77        html += '<th>Wifi</td>'; 
     78        if (filter == 'ALL') { 
     79            html += '<th>Joignable</td>'; 
     80        } 
     81        html += '</tr>'; 
     82        html += '<tr>'; 
     83 
     84        var xmlnetDevices 
     85        if (netDevices != undefined && netDevices != "") { 
     86            xmlnetDevices = Freebox.parseXml(netDevices); 
     87        } 
     88        if (typeof xmlnetDevices != 'undefined') { 
     89            var devices = xmlnetDevices.getElementsByTagName("device"); 
     90            if (devices.length > 0) { 
     91                for (i=0; i<devices.length; i++) { 
     92                    var reachable = Freebox_extractXmlTag(devices[i], 'reachable'); 
     93                    if (filter == 'ALL' 
     94                            || (filter == 'REACHABLE' && reachable == 'true') 
     95                            || (filter == 'UNREACHABLE' && reachable != 'true')) { 
     96                        var name = Freebox_extractXmlTag(devices[i], 'name'); 
     97                        var mac = Freebox_extractXmlTag(devices[i], 'mac'); 
     98                        var ip = Freebox_extractXmlTag(devices[i], 'ip'); 
     99                        var wifi = Freebox_extractXmlTag(devices[i], 'wifi'); 
     100                        if (filter == 'ALL') { 
     101                            if (reachable == 'true') { 
     102                                html += '<tr align="center">'; 
     103                            } 
     104                            else { 
     105                                html += '<tr align="center" bgcolor="LightGrey">'; 
     106                            } 
     107                        } 
     108                        else { 
     109                            html += '<tr align="center">'; 
     110                        } 
     111                        html += '<td>' + name + '</td>'; 
     112                        html += '<td>' + ip + '</td>'; 
     113                        html += '<td>' + mac + '</td>'; 
    79114                        if (reachable == 'true') { 
    80                             html += '<tr align="center">'; 
     115                            if (wifi == 'true') { 
     116                                html += '<td>oui</td>'; 
     117                            } 
     118                            else { 
     119                                html += '<td>non</td>'; 
     120                            } 
    81121                        } 
    82122                        else { 
    83                             html += '<tr align="center" bgcolor="LightGrey">'; 
    84                         } 
     123                            html += '<td></td>'; 
     124                        } 
     125                        if (filter == 'ALL') { 
     126                            if (reachable == 'true') { 
     127                                html += '<td>oui</td>'; 
     128                            } 
     129                            else { 
     130                                html += '<td>non</td>'; 
     131                            } 
     132                        } 
     133                        html += '</tr>'; 
    85134                    } 
    86                     else { 
    87                         html += '<tr align="center">'; 
    88                     } 
    89                     html += '<td>' + name + '</td>'; 
    90                     html += '<td>' + ip + '</td>'; 
    91                     html += '<td>' + mac + '</td>'; 
    92                     if (reachable == 'true') { 
    93                         if (wifi == 'true') { 
    94                             html += '<td>oui</td>'; 
    95                         } 
    96                         else { 
    97                             html += '<td>non</td>'; 
    98                         } 
    99                     } 
    100                     else { 
    101                         html += '<td></td>'; 
    102                     } 
    103                     if (filter == 'ALL') { 
    104                         if (reachable == 'true') { 
    105                             html += '<td>oui</td>'; 
    106                         } 
    107                         else { 
    108                             html += '<td>non</td>'; 
    109                         } 
    110                     } 
    111                     html += '</tr>'; 
    112135                } 
    113136            } 
    114137        } 
    115     } 
    116     html += '</table>'; 
    117  
    118     $('devicesTable').innerHTML = html; 
     138        html += '</table>'; 
     139 
     140        jQuery('#devicesTable').html(html); 
     141 
     142        Freebox.prevNetDevices = netDevices; 
     143    } 
     144 
     145    if (force == false) { 
     146        Freebox.timeoutVar = setTimeout("Freebox_refreshNetDevices("+device+", false)", 1000); 
     147    } 
    119148} 
    120149 
    121150function Freebox_showPhoneCalls (device) 
    122151{ 
     152    if (typeof Freebox.timeoutVar2 != 'undefined') { 
     153        clearTimeout(Freebox.timeoutVar2); 
     154    } 
     155 
    123156    Freebox_detectBrowser(); 
     157    Freebox_defineUIStyle(); 
    124158 
    125159    Freebox_initXMLParser(); 
     
    131165    html += '<tr>'; 
    132166    html += '<td>'; 
    133     html += '<select id="filter">'; 
     167    html += '<select id="filter" onChange="Freebox_refreshPhoneCalls('+device+', true);">'; 
    134168    html += '<option value="ALL">Tous les appels</option>'; 
    135169    html += '<option selected value="UNREAD">Appels non lus</option>'; 
     
    138172    html += '<option value="OUTGOING">Appels sortants</option>'; 
    139173    html += '</select>'; 
    140     html += '<button type="button" style="margin-left: 10px; background-color:lightblue; height: 25px; width: 50px" onclick="Freebox_filterPhoneCalls('+device+');">Filtrer</button>'; 
    141     html += '<button type="button" style="margin-left: 10px; background-color:lightblue; height: 25px; width: 170px" onclick="Freebox_markPhoneCallsAsRead('+device+');">Tout marquer comme lu</button>'; 
    142     html += '<button type="button" style="margin-left: 10px; background-color:lightblue; height: 25px; width: 120px" onclick="Freebox_removePhoneCalls('+device+');">Vider historique</button>'; 
     174    html += '<button type="button" style="margin-left: 10px; background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 170px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_markPhoneCallsAsRead('+device+');">Tout marquer comme lu</button>'; 
     175    html += '<button type="button" style="margin-left: 10px; background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 120px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_removePhoneCalls('+device+');">Vider historique</button>'; 
     176    html += '<button type="button" style="margin-left: 10px; background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 75px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_updatePhoneCalls('+device+');">Rafraichir</button>'; 
    143177    html += '</td>'; 
    144178    html += '</tr>'; 
     
    153187    set_panel_html(html); 
    154188 
    155     Freebox_filterPhoneCalls(device); 
    156 } 
    157  
    158 function Freebox_filterPhoneCalls(device) 
    159 { 
    160     if ($('filter').selectedIndex >= 0) { 
    161         var filter = $('filter').options[$('filter').selectedIndex].value; 
    162         Freebox_updatePhoneCallsTable(device, filter); 
    163     } 
     189    Freebox.prevPhoneCalls = undefined; 
     190 
     191    Freebox_refreshPhoneCalls(device, false); 
     192} 
     193 
     194function Freebox_updatePhoneCalls(device) 
     195{ 
     196    Freebox_call_action (device, Freebox.SID, 'RafraichirAppels', {} ); 
    164197} 
    165198 
    166199function Freebox_markPhoneCallsAsRead(device) 
    167200{ 
    168     Freebox_call_action (device, FREEBOX_SID, 'MarquerAppelsCommeLus', {} ); 
     201    Freebox_call_action (device, Freebox.SID, 'MarquerAppelsCommeLus', {} ); 
    169202} 
    170203 
    171204function Freebox_removePhoneCalls(device) 
    172205{ 
    173     Freebox_call_action (device, FREEBOX_SID, 'ViderHistoriqueAppels', {} ); 
    174 } 
    175  
    176 function Freebox_updatePhoneCallsTable (device, filter) 
    177 { 
    178     var html = '<table border="1">'; 
    179     html += '<tr align="center" bgcolor="LightBlue">'; 
    180     html += '<th>Numeros</td>'; 
    181     if (filter == 'ALL' || filter == 'UNREAD' || filter == 'IN') { 
    182         html += '<th>Type</td>'; 
    183     } 
    184     html += '<th>Date et heure</td>'; 
    185     html += '<th>Duree</td>'; 
    186     html += '</tr>'; 
    187     html += '<tr>'; 
    188  
    189     var xmlphoneCalls 
    190     var phoneCalls = get_device_state(device, FREEBOX_SID, "Appels", 1); 
    191     if (phoneCalls != undefined && phoneCalls != "") { 
    192         xmlphoneCalls = Freebox_parseXml(phoneCalls); 
    193     } 
    194     if (typeof xmlphoneCalls != 'undefined') { 
    195         var call = xmlphoneCalls.getElementsByTagName("call"); 
    196         if (call.length > 0) { 
    197             for (i=0; i<call.length; i++) { 
    198                 var type = Freebox_extractXmlTag(call[i], 'type'); 
    199                 var unread = Freebox_extractXmlTag(call[i], 'unread'); 
    200                 if (filter == 'ALL' 
    201                         || (filter == 'IN' && (type == 'accepted' || type == 'missed')) 
    202                         || (filter == 'MISSED' && type == 'missed') 
    203                         || (filter == 'OUTGOING' && type == 'outgoing') 
    204                         || (filter == 'UNREAD' && unread == 'true')) { 
    205                     var number = Freebox_extractXmlTag(call[i], 'number'); 
    206                     if (number == '') { 
    207                         number = 'Numero masque'; 
     206    Freebox_call_action (device, Freebox.SID, 'ViderHistoriqueAppels', {} ); 
     207} 
     208 
     209function Freebox_refreshPhoneCalls (device, force) 
     210{ 
     211    var phoneCalls = get_device_state(device, Freebox.SID, "Appels", 1); 
     212    if (force || (phoneCalls != Freebox.prevPhoneCalls)) { 
     213        var filter = 'ALL'; 
     214        if (jQuery('#filter option:selected').index() >= 0) { 
     215            filter = jQuery('#filter').val(); 
     216        } 
     217 
     218        var html = '<table border="1">'; 
     219        html += '<tr align="center" style="background-color: '+ Freebox.tableTitleBgColor + '; color: white">'; 
     220        html += '<th>Numeros</td>'; 
     221        if (filter == 'ALL' || filter == 'UNREAD' || filter == 'IN') { 
     222            html += '<th>Type</td>'; 
     223        } 
     224        html += '<th>Date et heure</td>'; 
     225        html += '<th>Duree</td>'; 
     226        html += '</tr>'; 
     227        html += '<tr>'; 
     228 
     229        var xmlphoneCalls 
     230        if (phoneCalls != undefined && phoneCalls != "") { 
     231            xmlphoneCalls = Freebox.parseXml(phoneCalls); 
     232        } 
     233        if (typeof xmlphoneCalls != 'undefined') { 
     234            var call = xmlphoneCalls.getElementsByTagName("call"); 
     235            if (call.length > 0) { 
     236                for (i=0; i<call.length; i++) { 
     237                    var type = Freebox_extractXmlTag(call[i], 'type'); 
     238                    var unread = Freebox_extractXmlTag(call[i], 'unread'); 
     239                    if (filter == 'ALL' 
     240                            || (filter == 'IN' && (type == 'accepted' || type == 'missed')) 
     241                            || (filter == 'MISSED' && type == 'missed') 
     242                            || (filter == 'OUTGOING' && type == 'outgoing') 
     243                            || (filter == 'UNREAD' && unread == 'true')) { 
     244                        var number = Freebox_extractXmlTag(call[i], 'number'); 
     245                        if (number == '') { 
     246                            number = 'Numero masque'; 
     247                        } 
     248                        var name = Freebox_extractXmlTag(call[i], 'name'); 
     249                        if (name != '') { 
     250                            number = name + ' (' + number + ')'; 
     251                        } 
     252                        if (type == 'missed') { 
     253                            type = 'entrant non decroche'; 
     254                        } 
     255                        else if (type == 'accepted') { 
     256                            type = 'entrant decroche'; 
     257                        } 
     258                        else if (type == 'outgoing') { 
     259                            type = 'sortant'; 
     260                        } 
     261                        var datetime = Freebox_extractXmlTag(call[i], 'datetime'); 
     262                        var duration = Freebox_extractXmlTag(call[i], 'duration'); 
     263                        html += '<tr align="center">'; 
     264                        html += '<td>' + number + '</td>'; 
     265                        if (filter == 'ALL' || filter == 'UNREAD' || filter == 'IN') { 
     266                            html += '<td>' + type + '</td>'; 
     267                        } 
     268                        html += '<td>' + datetime + '</td>'; 
     269                        html += '<td>' + duration + ' s</td>'; 
     270                        html += '</tr>'; 
    208271                    } 
    209                     var name = Freebox_extractXmlTag(call[i], 'name'); 
    210                     if (name != '') { 
    211                         number = name + ' (' + number + ')'; 
    212                     } 
    213                     if (type == 'missed') { 
    214                         type = 'entrant non decroche'; 
    215                     } 
    216                     else if (type == 'accepted') { 
    217                         type = 'entrant decroche'; 
    218                     } 
    219                     else if (type == 'outgoing') { 
    220                         type = 'sortant'; 
    221                     } 
    222                     var datetime = Freebox_extractXmlTag(call[i], 'datetime'); 
    223                     var duration = Freebox_extractXmlTag(call[i], 'duration'); 
    224                     html += '<tr align="center">'; 
    225                     html += '<td>' + number + '</td>'; 
    226                     if (filter == 'ALL' || filter == 'UNREAD' || filter == 'IN') { 
    227                         html += '<td>' + type + '</td>'; 
    228                     } 
    229                     html += '<td>' + datetime + '</td>'; 
    230                     html += '<td>' + duration + ' s</td>'; 
    231                     html += '</tr>'; 
    232272                } 
    233273            } 
    234274        } 
    235     } 
    236     html += '</table>'; 
    237  
    238     $('callsTable').innerHTML = html; 
     275        html += '</table>'; 
     276 
     277        jQuery('#callsTable').html(html); 
     278 
     279        Freebox.prevPhoneCalls = phoneCalls; 
     280    } 
     281 
     282    if (force == false) { 
     283        Freebox.timeoutVar2 = setTimeout("Freebox_refreshPhoneCalls("+device+", false)", 1000); 
     284    } 
    239285} 
    240286 
     
    242288{ 
    243289    Freebox_detectBrowser(); 
     290    Freebox_defineUIStyle(); 
    244291 
    245292    var players = [ [ "PLAYER1", "Player 1" ], 
     
    255302    ]; 
    256303 
    257     var defaultPlayer = get_device_state(device, FREEBOX_SID, "Player", 1); 
     304    var defaultPlayer = get_device_state(device, Freebox.SID, "Player", 1); 
    258305    if (defaultPlayer == 'hd2.freebox.fr') { 
    259306        defaultPlayer = 'PLAYER2'; 
     
    263310    } 
    264311 
    265     var remoteID = get_device_state(device, FREEBOX_SID, "Telecommande", 1); 
     312    var remoteID = get_device_state(device, Freebox.SID, "Telecommande", 1); 
    266313    if (remoteID == undefined) { 
    267314        remoteID = ''; 
     
    283330    } 
    284331    html += '</select>'; 
    285     html += '<button type="button" style="background-color:lightblue; height: 25px; width: 75px" onclick="Freebox_setRemote('+device+');">Sauver</button>'; 
     332    html += '<button type="button" style="background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 75px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_setRemote('+device+');">Sauver</button>'; 
    286333    html += '</DIV>'; 
    287334 
     
    313360    html += '<label>Nombre (numero chaine):</label>'; 
    314361    html += '<input id="number" type="text" size="3" maxlength="3" style="margin-left: 10px"/>'; 
    315     html += '<button type="button" style="margin-left: 10px; background-color:lightblue; height: 25px; width: 75px" onclick="Freebox_runPlayerNumberCmd('+device+');">Envoyer</button>'; 
     362    html += '<button type="button" style="margin-left: 10px; background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 75px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_runPlayerNumberCmd('+device+');">Envoyer</button>'; 
    316363    html += '</DIV>'; 
    317364 
     
    323370function Freebox_setRemote (device) 
    324371{ 
    325     var remoteID = $('remoteID').value; 
    326     var player = $('player').value; 
     372    var remoteID = jQuery('#remoteID').val(); 
     373    var player = jQuery('#player').val(); 
    327374    if (remoteID != '') { 
    328         Freebox_call_action (device, FREEBOX_SID, 'DefinirTelecommande', {'Player':player, 'Telecommande':remoteID} ); 
     375        Freebox_call_action (device, Freebox.SID, 'DefinirTelecommande', {'Player':player, 'Telecommande':remoteID} ); 
    329376    } 
    330377} 
     
    332379function Freebox_runPlayerCmd (device, key, longPress) 
    333380{ 
    334     var remoteID = $('remoteID').value; 
    335     var player = $('player').value; 
     381    var remoteID = jQuery('#remoteID').val(); 
     382    var player = jQuery('#player').val(); 
    336383    if (remoteID != '') { 
    337         //$('debug').innerHTML = player + ' ' + remoteID + ' ' + key + ' ' + longPress; 
    338         Freebox_call_action (device, FREEBOX_SID, 'CommanderPlayer', {'Player':player, 'Telecommande':remoteID, 'Touche':key, 'AppuiLong':longPress} ); 
     384        //jQuery('#debug').html(player + ' ' + remoteID + ' ' + key + ' ' + longPress); 
     385        Freebox_call_action (device, Freebox.SID, 'CommanderPlayer', {'Player':player, 'Telecommande':remoteID, 'Touche':key, 'AppuiLong':longPress} ); 
    339386    } 
    340387} 
     
    342389function Freebox_runPlayerNumberCmd (device) 
    343390{ 
    344     var key = $('number').value; 
     391    var key = jQuery('#number').val(); 
    345392    if (key != '') { 
    346         Freebox_call_action (device, FREEBOX_SID, 'CommanderPlayer', {'Touche':key} ); 
     393        Freebox_call_action (device, Freebox.SID, 'CommanderPlayer', {'Touche':key} ); 
    347394    } 
    348395} 
     
    351398{ 
    352399    Freebox_detectBrowser(); 
     400    Freebox_defineUIStyle(); 
    353401 
    354402    var html = ''; 
     
    359407    var engines = [ [ "GOOGLE", "Google" ], 
    360408                    [ "OSX_TTS_SERVER", 'OSX TTS server' ] ]; 
    361     var defaultEngine = get_device_state(device, FREEBOX_SID, "MoteurTTS", 1); 
     409    var defaultEngine = get_device_state(device, Freebox.SID, "MoteurTTS", 1); 
    362410    if (defaultEngine == undefined) { 
    363411        defaultEngine = 'GOOGLE'; 
     
    368416                        [ "es", "Espagnol" ], 
    369417                        [ "ru", 'Russe' ] ]; 
    370     var defaultLanguage = get_device_state(device, FREEBOX_SID, "LangueTTS", 1); 
     418    var defaultLanguage = get_device_state(device, Freebox.SID, "LangueTTS", 1); 
    371419    if (defaultLanguage == undefined) { 
    372420        defaultLanguage = 'en'; 
    373421    } 
    374422 
    375     var serverURL = get_device_state(device, FREEBOX_SID, "URLServeurOSXTTS", 1); 
     423    var serverURL = get_device_state(device, Freebox.SID, "URLServeurOSXTTS", 1); 
    376424    if (serverURL == undefined) { 
    377425        serverURL = ''; 
     
    399447    } 
    400448    html += '</select>'; 
    401     html += '<input id="language" type="text" value="' + defaultLanguage + '" style="margin-left: 5px; width: 20px"/>'; 
     449    html += '<input id="language" type="text" value="' + defaultLanguage + '" style="margin-left: 5px; width: 30px"/>'; 
    402450    html += '</td>'; 
    403451    html += '</tr>'; 
     
    427475    html += '<tr>'; 
    428476    html += '<td>'; 
    429     html += '<button id="say" type="button" style="background-color:lightblue; height: 25px; width: 75px" onclick="Freebox_say('+device+');">Dire</button>'; 
     477    html += '<button id="say" type="button" style="background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 75px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_say('+device+');">Dire</button>'; 
    430478    html += '</td>'; 
    431479    html += '<td></td>'; 
     
    435483    html += '<td>Langue par defaut:</td>'; 
    436484    html += '<td>'; 
    437     html += '<input id="defaultLanguage" type="text" value="' + defaultLanguage + '" style="width: 20px"/>'; 
     485    html += '<input id="defaultLanguage" type="text" value="' + defaultLanguage + '" style="width: 30px"/>'; 
    438486    html += '</td>'; 
    439487    html += '</tr>'; 
     
    463511    html += '<tr>'; 
    464512    html += '<td>'; 
    465     html += '<button id="setupTTS" type="button" style="background-color:lightblue; height: 25px; width: 75px" onclick="Freebox_setupTTS('+device+');">Modifier</button>'; 
     513    html += '<button id="setupTTS" type="button" style="background-color:' + Freebox.buttonBgColor + '; color: white; height: 25px; width: 75px; -moz-border-radius: 6px; -webkit-border-radius: 6px; -khtml-border-radius: 6px; border-radius: 6px" onclick="Freebox_setupTTS('+device+');">Modifier</button>'; 
    466514    html += '</td>'; 
    467515    html += '<td></td>'; 
     
    477525function Freebox_selectLang() 
    478526{ 
    479     if ($('language1').selectedIndex >= 0) { 
    480         $('language').value = $('language1').options[$('language1').selectedIndex].value; 
     527    if (jQuery('#language1 option:selected').index() >= 0) { 
     528        jQuery('#language').val(jQuery('#language1').val()); 
    481529    } 
    482530} 
     
    484532function Freebox_say(device) 
    485533{ 
    486     var text = $('text').value; 
    487     var language = $('language').value; 
    488     var engine = $('engine').value; 
    489     var receiver = $('receiver').value; 
    490     //$('debug').innerHTML = text + ' ' + language + ' ' + engine + ' ' + receiver; 
     534    var text = encodeURIComponent(jQuery('#text').val()); 
     535    var language = jQuery('#language').val(); 
     536    var engine = jQuery('#engine').val(); 
     537    var receiver = encodeURIComponent(jQuery('#receiver').val()); 
     538    //jQuery('#debug').html(text + ' ' + language + ' ' + engine + ' ' + receiver); 
    491539    if (text != "") { 
    492         Freebox_call_action (device, FREEBOX_SID, 'Dire', {'Destinataire':receiver, 'Texte':text, 'Langue':language, 'Moteur':engine} ); 
     540        Freebox_call_action (device, Freebox.SID, 'Dire', {'Destinataire':receiver, 'Texte':text, 'Langue':language, 'Moteur':engine} ); 
    493541    } 
    494542} 
     
    496544function Freebox_setupTTS(device) 
    497545{ 
    498     var language = $('defaultLanguage').value; 
    499     var engine = $('defaultEngine').value; 
    500     var url = $('TTSserverURL').value; 
    501     Freebox_call_action (device, FREEBOX_SID, 'ConfigurerTTS', {'Langue':language, 'Moteur':engine, 'URLServeurOSX':url} ); 
     546    var language = jQuery('#defaultLanguage').val(); 
     547    var engine = jQuery('#defaultEngine').val(); 
     548    var url = encodeURIComponent(jQuery('#TTSserverURL').val()); 
     549    Freebox_call_action (device, Freebox.SID, 'ConfigurerTTS', {'Langue':language, 'Moteur':engine, 'URLServeurOSX':url} ); 
    502550} 
    503551 
    504552function Freebox_detectBrowser() 
    505553{ 
    506     var place = navigator.userAgent.toLowerCase().indexOf('msie'); 
    507     if (place == -1) { 
    508         Freebox_browserIE = false; 
     554    if (navigator.userAgent.toLowerCase().indexOf('msie') >= 0 
     555        || navigator.userAgent.toLowerCase().indexOf('trident') >= 0) { 
     556        Freebox.browserIE = true; 
    509557    } 
    510558    else { 
    511         Freebox_browserIE = true; 
     559        Freebox.browserIE = false; 
     560    } 
     561} 
     562 
     563function Freebox_defineUIStyle() 
     564{ 
     565    if (typeof api !== 'undefined') { 
     566        Freebox.buttonBgColor = '#006E47'; 
     567        Freebox.offButtonBgColor = '#006E47'; 
     568        Freebox.onButtonBgColor = '#00A652'; 
     569        Freebox.tableTitleBgColor = '#00A652'; 
     570    } 
     571    else { 
     572        Freebox.buttonBgColor = '#3295F8'; 
     573        Freebox.offButtonBgColor = '#3295F8'; 
     574        Freebox.onButtonBgColor = '#025CB6'; 
     575        Freebox.tableTitleBgColor = '#025CB6'; 
    512576    } 
    513577} 
     
    515579function Freebox_initXMLParser() 
    516580{ 
    517     if (typeof Freebox_parseXml == 'undefined') { 
     581    if (typeof Freebox.parseXml == 'undefined') { 
    518582        if (typeof window.DOMParser != "undefined") { 
    519             Freebox_parseXml = function(xmlStr) { 
     583            Freebox.parseXml = function(xmlStr) { 
    520584                return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml"); 
    521585            }; 
    522586        } 
    523587        else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) { 
    524             Freebox_parseXml = function(xmlStr) { 
     588            Freebox.parseXml = function(xmlStr) { 
    525589                var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); 
    526590                xmlDoc.async = "false"; 
     
    530594        } 
    531595        else { 
    532             Freebox_parseXml = function(xmlStr) { 
     596            Freebox.parseXml = function(xmlStr) { 
    533597                return undefined; 
    534598            }; 
     
    557621        'action':actname 
    558622    }; 
    559     var key, count = 0; 
    560     for(key in args) { 
    561         count++; 
    562     } 
    563     if (count > 0) { 
    564         Object.extend(q, args); 
    565     } 
    566     if (Freebox_browserIE) { 
    567         Object.extend(q, {timestamp: new Date().getTime()}); //we need this to avoid IE caching of the AJAX get 
     623    var key; 
     624    for (key in args) { 
     625        q[key] = args[key]; 
     626    } 
     627    if (Freebox.browserIE) { 
     628        q['timestamp'] = new Date().getTime(); //we need this to avoid IE caching of the AJAX get 
    568629    } 
    569630    new Ajax.Request (command_url+'/data_request', { 
  • /trunk/L_Freebox.lua

    r20 r30  
    1515 
    1616 
    17 local PLUGIN_VERSION = "0.5" 
     17local PLUGIN_VERSION = "0.7" 
    1818 
    1919local THIS_DEVICE = 0 
     
    744744 
    745745    -- Search for the receiver and check its capabilities 
     746    local receiverNameOk = false 
    746747    local receiverOk = false 
    747748    local url = string.format(baseUrl, serverIp) .. "/airmedia/receivers/" 
     
    760761                    break 
    761762                end 
     763                if (data.result[i].name == receiverName) then 
     764                    receiverNameOk = true 
     765                end 
    762766                if (mediaLocation ~= nil and mediaLocation ~= "" 
    763767                    and data.result[i].name == receiverName 
     
    807811            warning("Echec requête: " .. data.msg .. " ( " .. data.error_code .. " )") 
    808812        end 
     813    elseif (not receiverNameOk) then 
     814        warning("Nom du destinataire AirMedia inconnu") 
     815        task("Nom du destinataire AirMedia inconnu", TASK_ERROR) 
     816    else 
     817        warning("Type media incompatible avec le destinataire AirMedia") 
     818        task("Type media incompatible avec le destinataire AirMedia", TASK_ERROR) 
    809819    end 
    810820end 
     
    11741184    task("Démarrage plugin Freebox", TASK_SUCCESS) 
    11751185     
     1186    luup.set_failure(false) 
     1187 
    11761188    THIS_DEVICE = lul_device 
    11771189 
  • /trunk/D_Freebox.json

    r20 r30  
    11{ 
    22    "flashicon": "http://t0.gstatic.com/images?q=tbn:ANd9GcRGh4fNzwueLZvpdS_F7x6fnc-ybolpFnmVj6csFTFnCojEH5MzZA", 
     3    "default_icon": "http://t0.gstatic.com/images?q=tbn:ANd9GcRGh4fNzwueLZvpdS_F7x6fnc-ybolpFnmVj6csFTFnCojEH5MzZA", 
    34    "imgIconBody": "", 
    45    "imgIconDimmable": "", 
     
    2930                    "scenegroup": "1", 
    3031                    "isSingle": "1" 
     32                }, 
     33                { 
     34                    "id": "2", 
     35                    "scenegroup": "2", 
     36                    "isSingle": "1" 
     37                }, 
     38                { 
     39                    "id": "3", 
     40                    "scenegroup": "3", 
     41                    "isSingle": "1" 
     42                }, 
     43                { 
     44                    "id": "4", 
     45                    "scenegroup": "4", 
     46                    "isSingle": "1" 
    3147                } 
    3248            ], 
     
    3753                    "left": "0", 
    3854                    "x": "2", 
    39                     "y": "4" 
     55                    "y": "1" 
     56                }, 
     57                { 
     58                    "id": "2", 
     59                    "top": "1", 
     60                    "left": "0", 
     61                    "x": "2", 
     62                    "y": "1" 
     63                }, 
     64                { 
     65                    "id": "3", 
     66                    "top": "2", 
     67                    "left": "0", 
     68                    "x": "2", 
     69                    "y": "1" 
     70                }, 
     71                { 
     72                    "id": "4", 
     73                    "top": "3", 
     74                    "left": "0", 
     75                    "x": "2", 
     76                    "y": "1" 
    4077                } 
    4178            ], 
     
    5188                    }, 
    5289                    "Display": { 
    53                         "Top": 15, 
     90                        "Top": 10, 
    5491                        "Left": 25, 
    5592                        "Width": 75, 
     
    65102                        "Service": "urn:freebox-fr:serviceId:Freebox1", 
    66103                        "Variable": "PluginVersion", 
    67                         "Top": 15, 
     104                        "Top": 10, 
    68105                        "Left": 135, 
    69106                        "Width": 75, 
     
    72109                }, 
    73110                { 
    74                     "ControlGroup": "1", 
    75                     "ControlType": "label", 
    76                     "top": "1.25", 
     111                    "ControlGroup": "2", 
     112                    "ControlType": "label", 
     113                    "top": "0.25", 
    77114                    "left": "0", 
    78115                    "Label": { 
     
    81118                    }, 
    82119                    "Display": { 
    83                         "Top": 15, 
     120                        "Top": 10, 
    84121                        "Left": 300, 
    85122                        "Width": 75, 
     
    88125                }, 
    89126                { 
    90                     "ControlGroup": "1", 
     127                    "ControlGroup": "2", 
    91128                    "ControlType": "variable", 
    92                     "top": "1.25", 
     129                    "top": "0.25", 
    93130                    "left": "1", 
    94131                    "Display": { 
    95132                        "Service": "urn:freebox-fr:serviceId:Freebox1", 
    96133                        "Variable": "EtatConnexion", 
    97                         "Top": 15, 
     134                        "Top": 10, 
    98135                        "Left": 400, 
    99136                        "Width": 75, 
     
    108145                    }, 
    109146                    "Display": { 
    110                         "Top": 40, 
     147                        "Top": 38, 
    111148                        "Left": 25, 
    112149                        "Width": 100, 
     
    126163                        "Service": "urn:freebox-fr:serviceId:Freebox1", 
    127164                        "Variable": "StatusAuthentification", 
    128                         "Top": 35, 
     165                        "Top": 30, 
    129166                        "Left": 135, 
    130167                        "Width": 200, 
     
    141178                    }, 
    142179                    "Display": { 
    143                         "Top": 50, 
     180                        "Top": 45, 
    144181                        "Left": 135, 
    145182                        "Width": 200, 
     
    154191                    }, 
    155192                    "Display": { 
    156                         "Top": 75, 
     193                        "Top": 66, 
    157194                        "Left": 25, 
    158195                        "Width": 75, 
     
    165202                        "Service": "urn:freebox-fr:serviceId:Freebox1", 
    166203                        "Variable": "FrequenceMiseAJourReseau", 
    167                         "Top": 75, 
     204                        "Top": 66, 
    168205                        "Left": 300, 
    169206                        "Width": 25, 
     
    178215                    }, 
    179216                    "Display": { 
    180                         "Top": 75, 
     217                        "Top": 66, 
    181218                        "Left": 340, 
    182219                        "Width": 40, 
     
    189226                    "Style": "numeric", 
    190227                    "Display":{ 
    191                         "Top": 70, 
     228                        "Top": 65, 
    192229                        "Left": 410, 
    193230                        "Width": 30, 
     
    202239                    }, 
    203240                    "Display": { 
    204                         "Top": 70, 
     241                        "Top": 65, 
    205242                        "Left": 450, 
    206243                        "Width": 75, 
     
    225262                    }, 
    226263                    "Display": { 
    227                         "Top": 105, 
     264                        "Top": 96, 
    228265                        "Left": 25, 
    229266                        "Width": 75, 
     
    236273                        "Service": "urn:freebox-fr:serviceId:Freebox1", 
    237274                        "Variable": "FrequenceMiseAJourAppels", 
    238                         "Top": 105, 
     275                        "Top": 96, 
    239276                        "Left": 300, 
    240277                        "Width": 25, 
     
    249286                    }, 
    250287                    "Display": { 
    251                         "Top": 105, 
     288                        "Top": 96, 
    252289                        "Left": 340, 
    253290                        "Width": 40, 
     
    260297                    "Style": "numeric", 
    261298                    "Display":{ 
    262                         "Top": 100, 
     299                        "Top": 95, 
    263300                        "Left": 410, 
    264301                        "Width": 30, 
     
    273310                    }, 
    274311                    "Display": { 
    275                         "Top": 100, 
     312                        "Top": 95, 
    276313                        "Left": 450, 
    277314                        "Width": 75, 
     
    296333                    }, 
    297334                    "Display": { 
    298                         "Top": 135, 
     335                        "Top": 126, 
    299336                        "Left": 25, 
    300337                        "Width": 75, 
     
    307344                        "Service": "urn:freebox-fr:serviceId:Freebox1", 
    308345                        "Variable": "StatusConfigFreebox", 
    309                         "Top": 135, 
     346                        "Top": 126, 
    310347                        "Left": 300, 
    311348                        "Width": 100, 
     
    320357                    }, 
    321358                    "Display": { 
    322                         "Top": 130, 
     359                        "Top": 125, 
    323360                        "Left": 400, 
    324361                        "Width": 85, 
     
    338375                    }, 
    339376                    "Display": { 
    340                         "Top": 165, 
     377                        "Top": 156, 
    341378                        "Left": 25, 
    342379                        "Width": 75, 
     
    354391                        "Variable": "WifiActif", 
    355392                        "Value": "1", 
    356                         "Top": 160, 
     393                        "Top": 155, 
    357394                        "Left": 100, 
    358395                        "Width": 85, 
     
    375412                        "Variable": "WifiActif", 
    376413                        "Value": "0", 
    377                         "Top": 160, 
     414                        "Top": 155, 
    378415                        "Left": 200, 
    379416                        "Width": 85, 
     
    393430                    }, 
    394431                    "Display": { 
    395                         "Top": 165, 
     432                        "Top": 156, 
    396433                        "Left": 300, 
    397434                        "Width": 75, 
     
    409446                        "Variable": "FtpActif", 
    410447                        "Value": "1", 
    411                         "Top": 160, 
     448                        "Top": 155, 
    412449                        "Left": 400, 
    413450                        "Width": 85, 
     
    430467                        "Variable": "FtpActif", 
    431468                        "Value": "0", 
    432                         "Top": 160, 
     469                        "Top": 155, 
    433470                        "Left": 500, 
    434471                        "Width": 85, 
     
    448485                    }, 
    449486                    "Display": { 
    450                         "Top": 195, 
     487                        "Top": 186, 
    451488                        "Left": 25, 
    452489                        "Width": 75, 
     
    464501                        "Variable": "UPnPAVActif", 
    465502                        "Value": "1", 
    466                         "Top": 190, 
     503                        "Top": 185, 
    467504                        "Left": 100, 
    468505                        "Width": 85, 
     
    485522                        "Variable": "UPnPAVActif", 
    486523                        "Value": "0", 
    487                         "Top": 190, 
     524                        "Top": 185, 
    488525                        "Left": 200, 
    489526                        "Width": 85, 
     
    503540                    }, 
    504541                    "Display": { 
    505                         "Top": 195, 
     542                        "Top": 186, 
    506543                        "Left": 300, 
    507544                        "Width": 75, 
     
    519556                        "Variable": "AirMediaActif", 
    520557                        "Value": "1", 
    521                         "Top": 190, 
     558                        "Top": 185, 
    522559                        "Left": 400, 
    523560                        "Width": 85, 
     
    540577                        "Variable": "AirMediaActif", 
    541578                        "Value": "0", 
    542                         "Top": 190, 
     579                        "Top": 185, 
    543580                        "Left": 500, 
    544581                        "Width": 85, 
     
    558595                    }, 
    559596                    "Display": { 
    560                         "Top": 225, 
     597                        "Top": 216, 
    561598                        "Left": 25, 
    562599                        "Width": 75, 
     
    574611                        "Variable": "PartageFichiersWinActif", 
    575612                        "Value": "1", 
    576                         "Top": 220, 
     613                        "Top": 215, 
    577614                        "Left": 300, 
    578615                        "Width": 85, 
     
    595632                        "Variable": "PartageFichiersWinActif", 
    596633                        "Value": "0", 
    597                         "Top": 220, 
     634                        "Top": 215, 
    598635                        "Left": 400, 
    599636                        "Width": 85, 
     
    613650                    }, 
    614651                    "Display": { 
    615                         "Top": 255, 
     652                        "Top": 246, 
    616653                        "Left": 25, 
    617654                        "Width": 75, 
     
    629666                        "Variable": "PartageImprimantesWinActif", 
    630667                        "Value": "1", 
    631                         "Top": 250, 
     668                        "Top": 245, 
    632669                        "Left": 300, 
    633670                        "Width": 85, 
     
    650687                        "Variable": "PartageImprimantesWinActif", 
    651688                        "Value": "0", 
    652                         "Top": 250, 
     689                        "Top": 245, 
    653690                        "Left": 400, 
    654691                        "Width": 85, 
     
    662699                }, 
    663700                { 
    664                     "ControlGroup": "1", 
    665                     "ControlType": "label", 
    666                     "top": "2.25", 
     701                    "ControlGroup": "3", 
     702                    "ControlType": "label", 
     703                    "top": "0.25", 
    667704                    "left": "0", 
    668705                    "Label": { 
     
    671708                    }, 
    672709                    "Display": { 
    673                         "Top": 315, 
     710                        "Top": 276, 
    674711                        "Left": 25, 
    675712                        "Width": 75, 
     
    678715                }, 
    679716                { 
    680                     "ControlGroup": "1", 
    681                     "ControlType": "button", 
    682                     "top": "2", 
     717                    "ControlGroup": "3", 
     718                    "ControlType": "button", 
     719                    "top": "0", 
    683720                    "left": "1", 
    684721                    "Label": { 
     
    687724                    }, 
    688725                    "Display": { 
    689                         "Top": 310, 
     726                        "Service": "urn:freebox-fr:serviceId:Freebox1",  
     727                        "Top": 275, 
    690728                        "Left": 135, 
    691729                        "Width": 85, 
     
    699737                }, 
    700738                { 
    701                     "ControlGroup": "1", 
    702                     "ControlType": "label", 
    703                     "top": "3.25", 
     739                    "ControlGroup": "4", 
     740                    "ControlType": "label", 
     741                    "top": "0.25", 
    704742                    "left": "0", 
    705743                    "Label": { 
     
    708746                    }, 
    709747                    "Display": { 
    710                         "Top": 315, 
     748                        "Top": 276, 
    711749                        "Left": 300, 
    712750                        "Width": 75, 
     
    715753                }, 
    716754                { 
    717                     "ControlGroup": "1", 
    718                     "ControlType": "button", 
    719                     "top": "3", 
     755                    "ControlGroup": "4", 
     756                    "ControlType": "button", 
     757                    "top": "0", 
    720758                    "left": "1", 
    721759                    "Label": { 
     
    724762                    }, 
    725763                    "Display": { 
    726                         "Top": 310, 
     764                        "Service": "urn:freebox-fr:serviceId:Freebox1",  
     765                        "Top": 275, 
    727766                        "Left": 400, 
    728767                        "Width": 85, 
     
    794833        { 
    795834            "Label": { 
    796                 "lang_tag": "logs", 
    797                 "text": "Logs" 
    798             }, 
    799             "Position": "6", 
    800             "TabType": "javascript", 
    801             "ScriptName": "shared.js", 
    802             "Function": "device_logs" 
    803         }, 
    804         { 
    805             "Label": { 
    806835                "lang_tag": "notifications", 
    807836                "text": "Notifications" 
    808837            }, 
    809             "Position": "7", 
     838            "Position": "6", 
    810839            "TabType": "javascript", 
    811840            "ScriptName": "shared.js", 
Note: See TracChangeset for help on using the changeset viewer.