add refresh option for updating the gui automatically
authorMike Frysinger <vapier@gentoo.org>
Sat, 24 Aug 2013 07:08:44 +0000 (03:08 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sat, 24 Aug 2013 07:08:44 +0000 (03:08 -0400)
main.html
main.js

index 8f5e3c46165c6e4e434fbe2dbcb2778cf5eae497..8793bf6f3c4aa034c12a274ec44a5e26bb86323b 100644 (file)
--- a/main.html
+++ b/main.html
@@ -90,17 +90,23 @@ div#footer {
 <table>
  <tr>
   <td>Host:</td>
-  <td><input type='text' id='host' value='192.168.0.2'></td>
+  <td><input type='text' id='host'></td>
  </tr>
  <tr>
   <td>Port:</td>
-  <td><input type='number' id='port' value='6600'></td>
- </tr>
- <tr>
   <td colspan=2>
+   <input type='number' id='port' style='width:60px'>
+   &nbsp;&nbsp;&nbsp;
    <input type='button' id='connect' value='connect'>
+  </td>
+ </tr>
+ <tr>
+  <td>Refresh (sec):</td>
+  <td>
+   <input type='number' id='refresh' style='width:40px'>
    &nbsp;&nbsp;&nbsp;
-   Sync Settings:<input type='checkbox' id='sync' checked></td>
+   Sync Settings:<input type='checkbox' id='sync' checked>
+  </td>
  </tr>
 </table>
 </div>
diff --git a/main.js b/main.js
index 08efb7289631455ab61597c35011b54d6091429c..7e12e9fe4948b04d5d10b512e84475bd252753d8 100644 (file)
--- a/main.js
+++ b/main.js
@@ -3,6 +3,7 @@
 /* Globals to allow easy manipulation via javascript console */
 var mpc;
 var tcpclient;
+var refresh_id = NaN;
 
 function TcpClientSender(tcpclient) {
        this.tcpclient = tcpclient;
@@ -24,12 +25,13 @@ window.onload = function() {
                'sync',
        ];
        var sync_keys = [
-               'host', 'port',
+               'host', 'port', 'refresh',
        ];
        var options = {
                'host': '192.168.0.2',
                'port': 6600,
                'sync': true,
+               'refresh': 5,
        };
 
        chrome.storage.local.get(local_keys, function(settings) {
@@ -78,6 +80,7 @@ function mpc_connect(host, port) {
                mpc = new Mpc(mpc_sender, update_ui);
                console.log('connected to ' + host + ':' + port);
                mpc_refresh();
+               update_refresh_timer();
        });
 }
 
@@ -142,6 +145,19 @@ function show_page(page) {
        }
 }
 
+function do_refresh() {
+       mpc_refresh();
+       refresh_id = window.setTimeout(do_refresh, window['opts_refresh'].value * 1000);
+}
+
+function update_refresh_timer() {
+       if (refresh_id != NaN)
+               window.clearTimeout(refresh_id);
+       var rate = window['opts_refresh'].value * 1000;
+       if (rate > 0)
+               refresh_id = window.setTimeout(do_refresh, rate);
+}
+
 function update_local_settings() {
        var setting = {};
        setting[this.id] = this.checked;
@@ -153,6 +169,12 @@ function update_sync_settings() {
        setting[this.id] = this.value;
        var storage = sync_storage(window['opts_sync'].checked);
        storage.set(setting);
+
+       switch (this.id) {
+       case 'refresh':
+               update_refresh_timer();
+               break;
+       }
 }
 
 function init_ui(local_keys, sync_keys, options) {