summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2010-09-29 15:20:33 +0000
committerAndreas Brachold <vdr07@deltab.de>2010-09-29 15:20:33 +0000
commita5ca0be89829b437961e34e9b7eeccaffced9baf (patch)
tree4d51244f44aa5726d22d74b079f9329dfcf0642d
parent2d07e3db2bb6cbb3d4d48c8702795a613599ecdd (diff)
downloadxxv-a5ca0be89829b437961e34e9b7eeccaffced9baf.tar.gz
xxv-a5ca0be89829b437961e34e9b7eeccaffced9baf.tar.bz2
jason: remote control - allow select recorder
jason: allow editing series timer
-rw-r--r--skins/jason/channels.js4
-rw-r--r--skins/jason/channelspanel.js11
-rw-r--r--skins/jason/form.js6
-rw-r--r--skins/jason/menus.js92
-rw-r--r--skins/jason/monitor.js6
-rw-r--r--skins/jason/recordings.js8
-rw-r--r--skins/jason/remote.js2
7 files changed, 113 insertions, 16 deletions
diff --git a/skins/jason/channels.js b/skins/jason/channels.js
index bb1c5f7..0542218 100644
--- a/skins/jason/channels.js
+++ b/skins/jason/channels.js
@@ -13,10 +13,12 @@ Ext.xxv.storeChannels = function() {
reader: new Ext.xxv.jsonReader({
fields: [
{name: 'id', type: 'string'},
+ {name: 'cid', type: 'string'},
{name: 'name', type: 'string'},
{name: 'group', type: 'string'},
{name: 'position', type: 'int'},
- {name: 'grpname', type: 'string'}
+ {name: 'grpname', type: 'string'},
+ {name: 'host', type: 'string'}
]
}),
proxy : new Ext.data.HttpProxy({
diff --git a/skins/jason/channelspanel.js b/skins/jason/channelspanel.js
index 5f5e69e..26290e6 100644
--- a/skins/jason/channelspanel.js
+++ b/skins/jason/channelspanel.js
@@ -264,8 +264,8 @@ Ext.extend(Ext.xxv.channelsPanel, Ext.tree.TreePanel, {
}
,onLoad : function( store, records, opt ) {
- var node,grpname;
-
+ var node,grpname;
+
for(var i = this.root.childNodes.length; i > 0; i--){
this.root.removeChild(this.root.item(i-1));
}
@@ -284,9 +284,8 @@ Ext.extend(Ext.xxv.channelsPanel, Ext.tree.TreePanel, {
this.additem({
text: records[i].data.name,
channel: records[i].data.id
-// }, (i == 0 ? false: true),(i == 0 ? false: true),node); //Select first node
}, true,true,node);
- }
+ }
}
/******************************************************************************/
,onSwitchSuccess : function( response,options )
@@ -311,7 +310,7 @@ Ext.extend(Ext.xxv.channelsPanel, Ext.tree.TreePanel, {
if(this.SwitchChanneltid) Ext.Ajax.abort(this.SwitchChanneltid);
this.SwitchChanneltid = Ext.Ajax.request({
- url: XXV.help.cmdAJAX('sw',{ data: record.data.id })
+ url: XXV.help.cmdAJAX('sw',{ 'data': record.data.cid, '__vdr': XXV.menu.host })
,success: this.onSwitchSuccess
,failure: this.onSwitchFailure
,scope: this
@@ -373,7 +372,7 @@ Ext.extend(Ext.xxv.channelsPanel, Ext.tree.TreePanel, {
,onWebCastChannel : function( id ) {
var record = this.store.getById(id);
var item = {
- url: XXV.help.cmdHTML('lst',{ data: record.data.position, '__player':'1' })
+ url: XXV.help.cmdHTML('lst',{ 'data': record.data.position, '__vdr': XXV.menu.host, '__player':'1' })
,title: record.data.name
};
diff --git a/skins/jason/form.js b/skins/jason/form.js
index 44f882f..04f9c0e 100644
--- a/skins/jason/form.js
+++ b/skins/jason/form.js
@@ -294,7 +294,11 @@ Ext.extend(Ext.xxv.Question, Ext.Window, {
params['__'+record.data.id] = field.getValue();
break;
case 'date':
- params['__'+record.data.id] = field.getValue().dateFormat('Y-m-d');
+ var f = field.getValue();
+ if(f && typeof(f) ==='date' )
+ params['__'+record.data.id] = f.dateFormat('Y-m-d');
+ else
+ params['__'+record.data.id] = field.getRawValue();
break;
default:
params['__'+record.data.id] = field.getValue();
diff --git a/skins/jason/menus.js b/skins/jason/menus.js
index b373dbf..4787226 100644
--- a/skins/jason/menus.js
+++ b/skins/jason/menus.js
@@ -47,6 +47,8 @@ Ext.xxv.Menu = Ext.extend(Ext.menu.Menu, {
Ext.xxv.MainMenu = function(/*config*/){
+ this.vdrStore = new Ext.xxv.vdrStore();
+
var selTheme = this.initTheme();
XXV.configMenu = new Ext.menu.Menu();
@@ -148,14 +150,16 @@ Ext.xxv.MainMenu = function(/*config*/){
,handler: function() { Ext.xxv.RemoteWindowOpen(); }
,iconCls:"remote-icon"
,cmd: 'r'
+ ,scope:this
},{
text: Ext.xxv.MonitorWindow.prototype.szTitle
,handler: function() { Ext.xxv.MonitorWindowOpen(); }
,iconCls:"monitor-icon"
,cmd: 'r'
- }
- ]
+ ,scope:this
+ }]
});
+
// see this.styles to enum themes
var themes = new Array;
for(var i = 0, len = this.styles.length; i < len; i++){
@@ -247,6 +251,12 @@ Ext.xxv.MainMenu = function(/*config*/){
})
]
});
+
+ this.vdrStore.on({
+ 'load' : this.onVDRLoad
+// ,'loadexception' : this.onVDRLoadException
+ ,scope:this
+ });
};
@@ -335,6 +345,84 @@ Ext.extend(Ext.xxv.MainMenu, Ext.Toolbar, {
);
}, 250);
}
+
+/******************************************************************************/
+ ,onVDRLoad: function( store, records, opt ){
+
+ var r = this.get(3).menu;
+ if(store.data.length > 1) {
+ r.removeAll(true);
+
+ this.host = this.initHost(store);
+
+ var e = !(XXV.help.cmdAllowed('r'));
+
+ r.addItem({
+ text: Ext.xxv.RemoteWindow.prototype.szTitle
+ ,handler: function() { Ext.xxv.RemoteWindowOpen(); }
+ ,iconCls:"remote-icon"
+ ,cmd: 'r'
+ ,disabled: e
+ ,scope:this
+ });
+ r.addItem({
+ text: Ext.xxv.MonitorWindow.prototype.szTitle
+ ,handler: function() { Ext.xxv.MonitorWindowOpen(); }
+ ,iconCls:"monitor-icon"
+ ,cmd: 'r'
+ ,disabled: e
+ ,scope:this
+ });
+
+ r.addSeparator();
+ for(var i = 0, len = store.data.length; i < len; i++){
+ var rec = store.getAt(i);
+ if(!this.host && rec.data.primary) {
+ this.host = rec.data.id;
+ }
+ if(rec.data.active) {
+ r.addItem({
+ text: rec.data.host
+ ,checked: this.host == rec.data.id ? true : false
+ ,group: 'host'
+ ,checkHandler: this.onSelectHost
+ ,scope: this
+ ,disabled: e
+ });
+ }
+ }
+ }
+ }
+ ,initHost: function(store){
+ if(Ext.state.Manager.getProvider()) {
+ var h = Ext.state.Manager.get('host');
+ if(h) {
+ for(var i = 0, len = store.data.length; i < len; i++){
+ var rec = store.getAt(i);
+ if(rec.data.id == h) {
+ this.host = h;
+ return rec.data.id;
+ }
+ }
+ }
+ }
+ return 0;
+ }
+ ,onSelectHost: function(item, checked){
+ if(checked) {
+ for(var i = 0, len = this.vdrStore.data.length; i < len; i++){
+ var rec = this.vdrStore.getAt(i);
+ if(rec.data.host == item.text) {
+ this.host = rec.data.id;
+
+ if(Ext.state.Manager.getProvider()) {
+ Ext.state.Manager.set('host', this.host);
+ }
+ return;
+ }
+ }
+ }
+ }
});
diff --git a/skins/jason/monitor.js b/skins/jason/monitor.js
index 205add3..e6d8839 100644
--- a/skins/jason/monitor.js
+++ b/skins/jason/monitor.js
@@ -143,7 +143,11 @@ Ext.extend(Ext.xxv.MonitorWindow, Ext.Window, {
img.un('load', this.onupdate , this);
img.on('load', this.onupdate , this);
//img.hide();
- img.dom.src = '?cmd=gdisplay&width='+ size.width +'&height='+ size.height +'&_dc=' + (new Date().getTime());
+ img.dom.src = XXV.help.cmdHTML('gdisplay', {
+ 'width': size.width
+ ,'height': size.height
+ ,'_dc': (new Date().getTime())
+ ,'__vdr': XXV.menu.host });
}
,onupdate : function(){
if(this.timer) {
diff --git a/skins/jason/recordings.js b/skins/jason/recordings.js
index 7315ecc..4fe0562 100644
--- a/skins/jason/recordings.js
+++ b/skins/jason/recordings.js
@@ -578,9 +578,9 @@ Ext.extend(Ext.xxv.recordingsDataView, Ext.DataView, {
}
if(store.reader.meta.param) {
var tb = this.ownerCt.getTopToolbar();
- tb.displayMsg = store.reader.meta.param.usage;
- tb.displayMsg += ' - ';
- tb.displayMsg += Ext.PagingToolbar.prototype.displayMsg;
+ //tb.displayMsg = store.reader.meta.param.usage;
+ //tb.displayMsg += ' - ';
+ //tb.displayMsg += Ext.PagingToolbar.prototype.displayMsg;
}
if(store.title) {
this.ownerCt.SetPanelTitle(store.title);
@@ -1003,7 +1003,7 @@ Ext.extend(Ext.xxv.recordingsDataView, Ext.DataView, {
if(this.PlayTransaction) Ext.Ajax.abort(this.PlayTransaction);
if(record.data.isrecording != 0) {
this.PlayTransaction = Ext.Ajax.request({
- url: XXV.help.cmdAJAX('rpv',{ data: record.data.id, '__start':begin })
+ url: XXV.help.cmdAJAX('rpv',{ data: record.data.id, '__start':begin, '__vdr': XXV.menu.host })
,success: this.onPlaySuccess
,failure: this.onPlayFailure
,scope: this
diff --git a/skins/jason/remote.js b/skins/jason/remote.js
index 17aae1f..e612424 100644
--- a/skins/jason/remote.js
+++ b/skins/jason/remote.js
@@ -144,7 +144,7 @@ Ext.extend(Ext.xxv.RemoteWindow, Ext.Window, {
,onRemote : function( rc ) {
if(this.Remotetid) Ext.Ajax.abort(this.Remotetid);
this.Remotetid = Ext.Ajax.request({
- url: XXV.help.cmdAJAX('r',{ data: rc })
+ url: XXV.help.cmdAJAX('r',{ 'data': rc, '__vdr': XXV.menu.host })
,success: this.onRemoteSuccess
,failure: this.onRemoteFailure
,scope: this