diff --git a/src/webui/static/app/cwceditor.js b/src/webui/static/app/cwceditor.js index 87c4bd1f..db507e4f 100644 --- a/src/webui/static/app/cwceditor.js +++ b/src/webui/static/app/cwceditor.js @@ -8,25 +8,50 @@ tvheadend.cwceditor = function() { width: 60 }); + function setMetaAttr(meta, record){ + var enabled = record.get('enabled'); + if(!enabled) return; + + var connected = record.get('connected'); + if(connected == 1){ + meta.attr = 'style="color:green;"'; + } else { + meta.attr = 'style="color:red;"'; + } + } + var cm = new Ext.grid.ColumnModel([ enabledColumn, { header: "Hostname", dataIndex: 'hostname', width: 200, + renderer: function(value, metadata, record, row, col, store) { + setMetaAttr(metadata, record); + return value; + }, editor: new fm.TextField({allowBlank: false}) },{ header: "Port", dataIndex: 'port', + renderer: function(value, metadata, record, row, col, store) { + setMetaAttr(metadata, record); + return value; + }, editor: new fm.TextField({allowBlank: false}) },{ header: "Username", dataIndex: 'username', + renderer: function(value, metadata, record, row, col, store) { + setMetaAttr(metadata, record); + return value; + }, editor: new fm.TextField({allowBlank: false}) },{ header: "Password", dataIndex: 'password', renderer: function(value, metadata, record, row, col, store) { + setMetaAttr(metadata, record); return 'Hidden'; }, editor: new fm.TextField({allowBlank: false}) @@ -35,6 +60,7 @@ tvheadend.cwceditor = function() { dataIndex: 'deskey', width: 300, renderer: function(value, metadata, record, row, col, store) { + setMetaAttr(metadata, record); return 'Hidden'; }, editor: new fm.TextField({allowBlank: false}) @@ -42,15 +68,35 @@ tvheadend.cwceditor = function() { header: "Comment", dataIndex: 'comment', width: 400, + renderer: function(value, metadata, record, row, col, store) { + setMetaAttr(metadata, record); + return value; + }, editor: new fm.TextField() } ]); var rec = Ext.data.Record.create([ - 'enabled','hostname','port','username','password','deskey','comment' + 'enabled','connected','hostname','port','username','password','deskey','comment' ]); + store = new Ext.data.JsonStore({ + root: 'entries', + fields: rec, + url: "tablemgr", + autoLoad: true, + id: 'id', + baseParams: {table: 'cwc', op: "get"} + }); + + tvheadend.comet.on('cwcStatus', function(server) { + var rec = store.getById(server.id); + if(rec){ + rec.set('connected', server.connected); + } + }); + return new tvheadend.tableEditor('Code Word Client', 'cwc', cm, rec, - [enabledColumn], null, + [enabledColumn], store, 'config_cwc.html', 'key'); }