]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
WEBUI: refresh page when the global view level or persistent level settings is changed
authorJaroslav Kysela <perex@perex.cz>
Wed, 2 Dec 2015 17:29:30 +0000 (18:29 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 2 Dec 2015 17:29:30 +0000 (18:29 +0100)
- sometimes, the simplest solutions are best

src/webui/static/app/config.js
src/webui/static/app/idnode.js
src/webui/static/app/tvheadend.js

index 38a89a47f20f76b825ccb6a67a89a15bd4b12432..2710ef3ef0281ec58e9401df13b330924f1bafc9 100644 (file)
@@ -16,9 +16,14 @@ tvheadend.baseconf = function(panel, index) {
             if (l >= 0) {
                 var tr = {0:'basic',1:'advanced',2:'expert'};
                 l = (l in tr) ? tr[l] : 'basic';
-                tvheadend.change_uilevel(l);
-                abuttons.uilevel.initialConfig.tvh_uilevel_set(l);
+                if (l !== tvheadend.uilevel) {
+                    window.location.reload();
+                    return;
+                }
             }
+            var n = data['uilevel_nochange'] ? true : false;
+            if (n !== tvheadend.uilevel_nochange)
+                window.location.reload();
         },
         help: function() {
             new tvheadend.help(_('General Configuration'), 'config_general.html');
index 84d1655bf40f90362842e2128376b2032d70f015..14d164647f775aaf7a07f8055b501522fb8071af 100644 (file)
@@ -1316,24 +1316,6 @@ tvheadend.idnode_panel = function(conf, panel, dpanel, builder, destroyer)
         tvheadend.paneladd(panel, dpanel, conf.tabIndex);
         tvheadend.panelreg(panel, dpanel, builder, destroyer);
     }
-
-    if (conf.uilevel) {
-        var f = function(l) {
-           var d = panel.findById(dpanel.id);
-           if (!tvheadend.uilevel_match(conf.uilevel, l)) {
-               if (d) {
-                   panel.remove(dpanel);
-                   destroyer();
-               }
-           } else {
-               if (!d) {
-                   tvheadend.paneladd(panel, dpanel, conf.tabIndex);
-                   tvheadend.panelreg(panel, dpanel, builder, destroyer);
-               }
-           }
-        }
-        tvheadend.uilevel_cb.push(f);
-    }
 }
 
 /*
index 1b9d8551cf1c996219c3263bacea742192c52a80..3a22c39efb119d1f10f6688ccca991d1f9ceab72 100644 (file)
@@ -5,7 +5,6 @@ tvheadend.admin = false;
 tvheadend.dialog = null;
 tvheadend.uilevel = 'expert';
 tvheadend.uilevel_nochange = false;
-tvheadend.uilevel_cb = [];
 
 tvheadend.cookieProvider = new Ext.state.CookieProvider({
   // 7 days from now
@@ -45,14 +44,6 @@ tvheadend.uilevel_match = function(target, current) {
     return true;
 }
 
-tvheadend.change_uilevel = function(uilevel) {
-   if (tvheadend.uilevel !== uilevel) {
-       tvheadend.uilevel = uilevel;
-       for (var i = 0; i < tvheadend.uilevel_cb.length; i++)
-           tvheadend.uilevel_cb[i](uilevel);
-   }
-}
-
 /**
  * Displays a help popup window
  */
@@ -430,6 +421,9 @@ function accessUpdate(o) {
 
     tvheadend.admin = o.admin == true;
 
+    if (o.uilevel)
+        tvheadend.uilevel = o.uilevel;
+
     if (o.uilevel_nochange)
         tvheadend.uilevel_nochange = true;
 
@@ -577,9 +571,6 @@ function accessUpdate(o) {
         tvheadend.uilevel = '';
     }
 
-    if (o.uilevel)
-        tvheadend.change_uilevel(o.uilevel);
-
     if (o.admin == true && tvheadend.statuspanel == null) {
         tvheadend.statuspanel = new tvheadend.status;
         tvheadend.rootTabPanel.add(tvheadend.statuspanel);