From: Jaroslav Kysela Date: Tue, 1 Dec 2015 18:54:39 +0000 (+0100) Subject: WEBUI: replace uilevel button with menu, fix general config uilevel settings X-Git-Tag: v4.2.1~1420 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d8a1b95c55fcc4184c4ede4058458142450eae87;p=thirdparty%2Ftvheadend.git WEBUI: replace uilevel button with menu, fix general config uilevel settings --- diff --git a/src/webui/static/app/config.js b/src/webui/static/app/config.js index a482f0b6f..0f5223a91 100644 --- a/src/webui/static/app/config.js +++ b/src/webui/static/app/config.js @@ -11,6 +11,15 @@ tvheadend.baseconf = function(panel, index) { tabIndex: index, comet: 'config', labelWidth: 250, + postsave: function(data, abuttons) { + var l = data['uilevel']; + if (l >= 0) { + var tr = {0:'basic',1:'advanced',2:'expert'}; + l = (l in tr) ? tr[l] : 'basic'; + tvheadend.uilevel = l; + abuttons.uilevel.initialConfig.tvh_uilevel_set(l); + } + }, help: function() { new tvheadend.help(_('General Configuration'), 'config_general.html'); } diff --git a/src/webui/static/app/idnode.js b/src/webui/static/app/idnode.js index 1de95c14d..b49eded08 100644 --- a/src/webui/static/app/idnode.js +++ b/src/webui/static/app/idnode.js @@ -278,7 +278,6 @@ tvheadend.IdNodeField = function(conf) this.get_hidden = function(uilevel) { var hidden = this.hidden; - console.log('init hidden for', this.id, ' is ', hidden); if (uilevel !== 'expert') { if (uilevel === 'advanced' && this.uilevel === 'expert') hidden = true; @@ -576,37 +575,48 @@ tvheadend.IdNode = function(conf) /* * */ -tvheadend.idnode_uilevel_text = function(uilevel) +tvheadend.idnode_uilevel_menu = function(uilevel, handler) { - if (uilevel === 'basic') - return _('Basic'); - if (uilevel === 'advanced') - return _('Advanced'); - return _('Expert'); -} + var b; + + var text = function(uilevel) { + if (uilevel === 'basic') + return _('Basic'); + if (uilevel === 'advanced') + return _('Advanced'); + return _('Expert'); + } -tvheadend.idnode_uilevel_change = function(button, uilevel) -{ - if (uilevel == 'basic') - uilevel = 'advanced'; - else if (uilevel == 'advanced') - uilevel = 'expert'; - else - uilevel = 'basic'; - button.setText(tvheadend.idnode_uilevel_text(uilevel)); - return uilevel; -} + function selected(m) { + b.tvh_uilevel_set(m.initialConfig.tvh_uilevel, 1); + } -tvheadend.idnode_uilevel_button = function(uilevel, handler) -{ - var b = new Ext.Toolbar.Button({ + var m = new Ext.menu.Menu(); + m.add({ + text: _('Basic'), + tvh_uilevel: 'basic', + handler: selected + }); + m.add({ + text: _('Advanced'), + tvh_uilevel: 'advanced', + handler: selected + }); + m.add({ + text: _('Expert'), + tvh_uilevel: 'expert', + handler: selected + }); + b = new Ext.Toolbar.Button({ tooltip: _('Change the user interface level (basic, advanced, expert)'), iconCls: 'uilevel', - text: tvheadend.idnode_uilevel_text(uilevel), - disabled: true, - handler: handler + text: _('View level: ') + text(uilevel), + menu: m, + tvh_uilevel_set: function (l, refresh) { + b.setText(_('View level: ') + text(l)); + handler(l, refresh); + } }); - b.setDisabled(false); return b; } @@ -1072,8 +1082,8 @@ tvheadend.idnode_editor = function(_uilevel, item, conf) buttons.push(applyBtn); } - var uilevelBtn = tvheadend.idnode_uilevel_button(uilevel, function() { - uilevel = tvheadend.idnode_uilevel_change(uilevelBtn, uilevel); + var uilevelBtn = tvheadend.idnode_uilevel_menu(uilevel, function(l) { + uilevel = l; var values = panel.getForm().getFieldValues(); destroy(); build(); @@ -1771,11 +1781,10 @@ tvheadend.idnode_grid = function(panel, conf) } } - abuttons.uilevel = tvheadend.idnode_uilevel_button(uilevel, function () { - uilevel = tvheadend.idnode_uilevel_change(abuttons.uilevel, uilevel); + abuttons.uilevel = tvheadend.idnode_uilevel_menu(uilevel, function (l) { + uilevel = l; for (var i = 0; i < ifields.length; i++) { var h = ifields[i].get_hidden(uilevel); - console.log('idx', i, 'hidden', h); model.setHidden(model.findColumnIndex(ifields[i].id), h); } }); @@ -2139,8 +2148,8 @@ tvheadend.idnode_form_grid = function(panel, conf) } } - abuttons.uilevel = tvheadend.idnode_uilevel_button(uilevel, function () { - uilevel = tvheadend.idnode_uilevel_change(abuttons.uilevel, uilevel); + abuttons.uilevel = tvheadend.idnode_uilevel_menu(uilevel, function (l) { + uilevel = l; var values = null; if (current) values = current.editor.getForm().getFieldValues(); @@ -2519,6 +2528,8 @@ tvheadend.idnode_simple = function(panel, conf) node: Ext.encode(node) }, success: function() { + if (conf.postsave) + conf.postsave(node, abuttons); form_load(true); } }); @@ -2537,8 +2548,10 @@ tvheadend.idnode_simple = function(panel, conf) }); buttons.push(abuttons.undo); - abuttons.uilevel = tvheadend.idnode_uilevel_button(uilevel, function () { - uilevel = tvheadend.idnode_uilevel_change(abuttons.uilevel, uilevel); + abuttons.uilevel = tvheadend.idnode_uilevel_menu(uilevel, function (l, refresh) { + uilevel = l; + if (!refresh) + return; var values = null; if (current) values = current.getForm().getFieldValues();