From b5f39d5c5bb9278280929c9682a5323374fa69e4 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 1 Aug 2014 16:46:33 +0200 Subject: [PATCH] webui status tab: change the implementation back to static columns --- src/webui/static/app/extensions.js | 8 +++ src/webui/static/app/status.js | 101 ++++++++++------------------- 2 files changed, 43 insertions(+), 66 deletions(-) diff --git a/src/webui/static/app/extensions.js b/src/webui/static/app/extensions.js index cd6583dc..abd485ed 100644 --- a/src/webui/static/app/extensions.js +++ b/src/webui/static/app/extensions.js @@ -347,6 +347,7 @@ Ext.reg("multiselect", Ext.ux.Multiselect); /** * 22/07/2014: ceiling support backported from version 1.2, by Kai Sommerfeld + * 01/08/2014: tvh_renderer fcn added by Jaroslav Kysela */ Ext.namespace('Ext.ux.grid'); @@ -402,7 +403,14 @@ Ext.extend(Ext.ux.grid.ProgressColumn, Ext.util.Observable, { this.grid.startEditing(rowIndex, colIndex); } }, + tvh_renderer: function (v, p, record) { + return v; + }, renderer: function(v, p, record) { + v = this.tvh_renderer(v, p, record); + if (typeof v === "string") + return v; // custom string + var style = ''; var textClass = (v < (this.ceiling / 1.818)) ? 'x-progress-text-back' : 'x-progress-text-front' + (Ext.isIE6 ? '-ie6' : ''); diff --git a/src/webui/static/app/status.js b/src/webui/static/app/status.js index 7c8e78b5..5375d124 100644 --- a/src/webui/static/app/status.js +++ b/src/webui/static/app/status.js @@ -269,10 +269,41 @@ tvheadend.status_streams = function() { dataIndex: 'cc' }]); - var has_signal_rel = false; - var has_signal_dbm = false; - var has_snr_rel = false; - var has_snr_db = false; + cm.config.push(new Ext.ux.grid.ProgressColumn({ + header: "SNR", + dataIndex: 'snr', + width: 85, + colored: true, + ceiling: 65535, + tvh_renderer: function(v, p, record) { + var scale = record.get('snr_scale'); + if (scale == 1) + return v; + if (scale == 2 && v > 0) { + var snr = v * 0.0001; + return snr.toFixed(1) + " dB"; + } + return 'Unknown'; + } + })); + + cm.config.push(new Ext.ux.grid.ProgressColumn({ + header: "Signal Strength", + dataIndex: 'signal', + width: 85, + colored: true, + ceiling: 65535, + tvh_renderer: function(v, p, record) { + var scale = record.get('snr_scale'); + if (scale == 1) + return v; + if (scale == 2 && v > 0) { + var snr = v * 0.0001; + return snr.toFixed(1) + " dBm"; + } + return 'Unknown'; + } + })); tvheadend.comet.on('input_status', function(m) { if (m.reload != null) @@ -296,68 +327,6 @@ tvheadend.status_streams = function() { r.data.ec_block = m.ec_block; r.data.tc_block = m.tc_block; - if (r.data.snr_scale == 1 /* scale_relative */) { - if (!has_snr_rel) { - cm.config.push(new Ext.ux.grid.ProgressColumn({ - header: "SNR (%)", - dataIndex: 'snr', - width: 85, - colored: true, - ceiling: 65535 - })); - has_snr_rel = true; - } - } - else if (r.data.snr_scale == 2 /* scale_decibel */) { - if (!has_snr_db) { - cm.config.push(new Ext.grid.Column({ - width: 50, - header: "SNR (dB)", - dataIndex: 'snr', - renderer: function(value) { - if (value > 0) { - var snr = value * 0.0001; - return snr.toFixed(1) + " dB"; - } else { - return 'Unknown'; - } - } - })); - has_snr_db = true; - } - } - - if (r.data.signal_scale == 1 /* scale_relative */) { - if (!has_signal_rel) { - cm.config.push(new Ext.ux.grid.ProgressColumn({ - header: "Signal Strength (%)", - dataIndex: 'signal', - width: 85, - colored: true, - ceiling: 65535 - })); - has_signal_rel = true; - } - } - else if (r.data.signal_scale == 2 /* scale_decibel */) { - if (!has_signal_dbm) { - cm.config.push(new Ext.grid.Column({ - width: 50, - header: "Signal Strength (dBm)", - dataIndex: 'signal', - renderer: function(value) { - if (value > 0) { - var snr = value * 0.0001; - return snr.toFixed(1) + " dBm"; - } else { - return 'Unknown'; - } - } - })); - has_signal_dbm = true; - } - } - tvheadend.streamStatusStore.afterEdit(r); tvheadend.streamStatusStore.fireEvent('updated', tvheadend.streamStatusStore,