webui: updated UI to new API calls. Still crap, but hey ho!

This commit is contained in:
Adam Sutton 2013-08-15 12:06:00 +01:00
parent 0218b3842a
commit 43d50f2d9b
4 changed files with 66 additions and 76 deletions

View file

@ -7,10 +7,10 @@ tvheadend.idnode_get_enum = function ( conf )
{
/* Build key */
var key = conf.url;
if (conf.event)
key += conf.event;
if (conf.params)
key += '?' + Ext.util.JSON.encode(conf.params);
if (conf.event)
key += '+' + conf.event;
/* Use cached */
if (key in tvheadend.idnode_enum_stores)
@ -22,6 +22,7 @@ tvheadend.idnode_get_enum = function ( conf )
url : conf.url,
baseParams : conf.params || {},
fields : conf.fields || [ 'key', 'val' ],
id : conf.id || 'key',
autoLoad : true,
});
tvheadend.idnode_enum_stores[key] = st;
@ -206,13 +207,11 @@ tvheadend.idnode_editor = function(item, conf)
handler : function() {
var node = panel.getForm().getFieldValues();
node.uuid = item.uuid;
var params = {
op : 'save',
nodes : Ext.util.JSON.encode([node])
};
Ext.Ajax.request({
url : 'api/idnode',
params : params,
url : 'api/idnode/save',
params : {
args : Ext.encode({node: node})
},
success : function(d) {
}
});
@ -259,10 +258,12 @@ tvheadend.idnode_create = function(conf)
params['uuid'] = puuid;
if (pclass)
params['class'] = pclass
params['conf'] = Ext.util.JSON.encode(panel.getForm().getFieldValues());
params['conf'] = panel.getForm().getFieldValues();
Ext.Ajax.request({
url : conf.create.url || conf.url,
params : params,
url : conf.create.url || conf.url + '/create',
params : {
args : Ext.util.JSON.encode(params)
},
success : function(d) {
win.close();
}
@ -294,7 +295,7 @@ tvheadend.idnode_create = function(conf)
/* Create window */
win = new Ext.Window({
title : 'Add ' + conf.title,
title : 'Add ' + conf.titleS,
layout : 'fit',
autoWidth : true,
autoHeight : true,
@ -379,7 +380,7 @@ tvheadend.idnode_create = function(conf)
win.show();
} else {
Ext.Ajax.request({
url : conf.url,
url : conf.url + '/class',
params : conf.params,
success : function(d) {
d = json_decode(d);
@ -458,15 +459,12 @@ tvheadend.idnode_grid = function(panel, conf)
/* Store */
var store = new Ext.data.JsonStore({
root : 'entries',
url : conf.url,
url : conf.url + '/grid',
autoLoad : true,
id : 'uuid',
totalProperty : 'total',
fields : fields,
remoteSort : true,
baseParams : {
op : 'list',
}
remoteSort : true
});
/* Model */
@ -507,10 +505,9 @@ tvheadend.idnode_grid = function(panel, conf)
out[x].uuid = mr[x].id;
}
Ext.Ajax.request({
url : 'api/idnode',
url : 'api/idnode/save',
params : {
op : 'save',
nodes : Ext.encode(out)
args : Ext.encode({node : out})
},
success : function(d)
{
@ -555,10 +552,9 @@ tvheadend.idnode_grid = function(panel, conf)
for ( var i = 0; i < r.length; i++ )
uuids.push(r[i].id)
Ext.Ajax.request({
url : conf.url,
url : 'api/idnode/delete',
params : {
op: 'delete',
args : Ext.util.JSON.encode({ uuids: uuids})
args : Ext.util.JSON.encode({ uuid: uuids})
},
success : function(d)
{
@ -580,9 +576,8 @@ tvheadend.idnode_grid = function(panel, conf)
if (r) {
if (conf.edittree) {
var p = tvheadend.idnode_tree({
url : 'api/idnode',
url : 'api/idnode/tree',
params : {
op : 'childs',
root : r.id
}
});
@ -598,15 +593,14 @@ tvheadend.idnode_grid = function(panel, conf)
w.show();
} else {
Ext.Ajax.request({
url : 'api/idnode',
url : 'api/idnode/load',
params : {
op: 'get',
uuid: r.id
},
success : function(d)
{
d = json_decode(d);
var p = tvheadend.idnode_editor(d, {});
var p = tvheadend.idnode_editor(d[0], {});
var w = new Ext.Window({
title : 'Edit ' + conf.titleS,
layout : 'fit',
@ -678,10 +672,7 @@ tvheadend.idnode_grid = function(panel, conf)
/* Request data */
if (!conf.fields) {
Ext.Ajax.request({
url : conf.url,
params : {
op: 'class'
},
url : conf.url + '/class',
success : function(d)
{
build(json_decode(d).props);
@ -696,7 +687,6 @@ tvheadend.idnode_tree = function (conf)
{
var current = null;
var params = conf.params || {};
params.op = 'childs';
var loader = new Ext.tree.TreeLoader({
dataUrl : conf.url,
baseParams : params,

View file

@ -2,39 +2,47 @@
* DVB network
*/
tvheadend.network_classes = new Ext.data.JsonStore({
autoLoad : true,
tvheadend.network_builders = new Ext.data.JsonStore({
url : 'api/mpegts/network/builders',
root : 'entries',
fields : [ 'class', 'caption', 'props' ],
id : 'class',
url : 'api/mpegts/network',
baseParams : {
op: 'class_list'
}
fields : [ 'class', 'caption', 'props' ],
id : 'class',
autoLoad : true,
});
tvheadend.network_list = new Ext.data.JsonStore({
url : 'api/idnode/load',
baseParams : { class : 'mpegts_network', enum: 1 },
root : 'entries',
fields : [ 'uuid', 'title' ],
id : 'uuid',
autoLoad : true,
});
tvheadend.comet.on('mpegts_network', function() {
tvheadend.network_classes.reload();
// TODO: Might be a bit excessive
tvheadend.network_builders.reload();
tvheadend.network_list.reload();
});
tvheadend.networks = function(panel)
{
tvheadend.idnode_grid(panel, {
titleS : 'Network',
titleP : 'Networks',
url : 'api/mpegts/network',
comet : 'mpegts_network',
titleS : 'Network',
titleP : 'Networks',
add : {
url : 'api/mpegts/network',
title : 'Network',
titleS : 'Network',
select : {
caption : 'Type',
store : tvheadend.network_classes,
label : 'Type',
store : tvheadend.network_builders,
displayField : 'caption',
valueField : 'class',
propField : 'props',
},
create : {
params : { op: 'create' }
url : 'api/mpegts/network/create'
}
},
del : true
@ -44,24 +52,23 @@ tvheadend.networks = function(panel)
tvheadend.muxes = function(panel)
{
tvheadend.idnode_grid(panel, {
titleS : 'Mux',
titleP : 'Muxes',
url : 'api/mpegts/mux',
comet : 'mpegts_mux',
add : {
title : 'Mux',
url : 'api/mpegts/network',
select : {
caption : 'Network',
params : { op: 'list', limit: -1 },
displayField : 'networkname',
titleS : 'Mux',
titleP : 'Muxes',
add : {
titleS : 'Mux',
select : {
label : 'Network',
store : tvheadend.network_list,
displayField : 'title',
valueField : 'uuid',
clazz : {
params : { op: 'mux_class' }
url : 'api/mpegts/network/mux_class'
}
},
create : {
params : { op: 'mux_create' }
create : {
url : 'api/mpegts/network/mux_create',
}
},
del : true
@ -72,9 +79,9 @@ tvheadend.services = function(panel)
{
tvheadend.idnode_grid(panel, {
url : 'api/mpegts/service',
comet : 'service',
titleS : 'Service',
titleP : 'Services',
comet : 'service',
add : false,
del : false
});
@ -83,20 +90,11 @@ tvheadend.services = function(panel)
tvheadend.satconfs = function(panel)
{
tvheadend.idnode_grid(panel, {
titleS : 'Satconf',
titleP : 'Satconfs',
url : 'api/linuxdvb/satconf',
comet : 'linuxdvb_satconf',
add : {
title : 'Satconf',
url : 'api/linuxdvb/satconf',
create : {
params : { op: 'create' }
},
params : {
op: 'class'
}
},
titleS : 'Satconf',
titleP : 'Satconfs',
add : {},
del : true,
edittree : true,
});

View file

@ -1,4 +1,4 @@
tvheadend.tvadapters = function() {
// return tvheadend.item_browser('tvadapters', 'TV Adapters');
return tvheadend.idnode_tree({ url: 'tvadapters', title: 'TV adapters'});
return tvheadend.idnode_tree({ url: 'api/tvadapter/tree', title: 'TV adapters'});
}

View file

@ -267,7 +267,9 @@ function accessUpdate(o) {
tvheadend.capabilities.indexOf('v4l') != -1) {
tabs2.push(new tvheadend.tvadapters);
}
/*
tabs2.push(new tvheadend.iptv);
*/
tvheadend.conf_dvbin = new Ext.TabPanel({
activeTab: 0,
autoScroll: true,