admin: { width: 100 },
conn_limit: { width: 160 },
channel_min: { width: 160 },
- channel_max: { width: 160 },
+ channel_max: { width: 160 }
},
tabIndex: index,
edit: {
params: {
- list: list,
- },
+ list: list
+ }
},
add: {
url: 'api/access/entry',
params: {
- list: list,
+ list: list
},
create: { }
},
list: list,
help: function() {
new tvheadend.help('Access Control Entries', 'config_access.html');
- },
+ }
});
};
propField: 'props',
list: list
},
- create: { },
+ create: { }
},
del: true,
move: true,
plugins: [actions],
help: function() {
new tvheadend.help('Conditional Access Client', 'config_caclient.html');
- },
+ }
});
return panel;
var preferPicon = new Ext.ux.form.XCheckbox({
name: 'prefer_picon',
- fieldLabel: 'Prefer picons over channel name',
+ fieldLabel: 'Prefer picons over channel name'
});
var chiconPath = new Ext.form.TextField({
},
help: function() {
new tvheadend.help('Channel Tags', 'config_tags.html');
- },
+ }
});
return panel;
url: 'api/idnode/load',
params: {
uuid: uuid,
- list: 'channel_icon,disp_title,disp_description,status',
+ list: 'channel_icon,disp_title,disp_description,status'
},
success: function(d) {
d = json_decode(d);
tooltip: 'Abort the selected recording',
iconCls: 'cancel',
text: 'Abort',
- disabled: true,
+ disabled: true
});
},
callback: function(conf, e, store, select) {
add: {
url: 'api/dvr/entry',
params: {
- list: list,
+ list: list
},
create: { }
},
edit: {
params: {
- list: list,
+ list: list
}
},
del: true,
beforeedit: beforeedit,
help: function() {
new tvheadend.help('DVR-Upcoming/Current Recordings', 'dvr_upcoming.html');
- },
+ }
});
return panel;
selected: selected,
help: function() {
new tvheadend.help('DVR-Finished Recordings', 'dvr_finished.html');
- },
+ }
});
return panel;
selected: selected,
help: function() {
new tvheadend.help('DVR-Failed Recordings', 'dvr_failed.html');
- },
+ }
});
return panel;
del: true,
help: function() {
new tvheadend.help('DVR', 'config_dvr.html');
- },
+ }
});
return panel;
pri: { width: 80 },
config_name: { width: 120 },
creator: { width: 200 },
- comment: { width: 200 },
+ comment: { width: 200 }
},
add: {
url: 'api/dvr/autorec',
params: {
list: 'enabled,name,title,channel,tag,content_type,minduration,' +
- 'maxduration,weekdays,start,pri,config_name,comment',
+ 'maxduration,weekdays,start,pri,config_name,comment'
},
create: { }
},
},
help: function() {
new tvheadend.help('DVR', 'dvr_autorec.html');
- },
+ }
});
return panel;
pri: { width: 80 },
config_name: { width: 120 },
creator: { width: 200 },
- comment: { width: 200 },
+ comment: { width: 200 }
},
add: {
url: 'api/dvr/timerec',
params: {
- list: 'enabled,name,title,channel,weekdays,start,stop,pri,config_name,comment',
+ list: 'enabled,name,title,channel,weekdays,start,stop,pri,config_name,comment'
},
create: { }
},
},
help: function() {
new tvheadend.help('DVR', 'dvr_timerec.html');
- },
+ }
});
return panel;
autoScroll: true,
title: 'Digital Video Recorder',
iconCls: 'dvr',
- items: [],
+ items: []
});
tvheadend.dvr_upcoming(p, 0);
tvheadend.dvr_finished(p, 1);
id: 'key',
url: 'api/idnode/load',
baseParams: {
- enum: 1,
+ 'enum': 1,
'class': 'dvrconfig'
},
sortInfo: {
reader: new Ext.ux.grid.livegrid.JsonReader({
root: 'entries',
totalProperty: 'totalCount',
- id: 'eventId',
+ id: 'eventId'
},
[
{ name: 'eventId' },
{ name: 'ageRating' },
{ name: 'genre' },
{ name: 'dvrState' },
- { name: 'serieslinkId' },
- ]),
+ { name: 'serieslinkId' }
+ ])
});
function setMetaAttr(meta, record, cursor) {
setMetaAttr(meta, record, value && clickable);
return !value ? '' : (clickable ? lookup : '') + value;
},
- listeners: { click: { fn: clicked } },
+ listeners: { click: { fn: clicked } }
},
{
width: 250,
setMetaAttr(meta, record, value && clickable);
return !value ? '' : (clickable ? lookup : '') + value;
},
- listeners: { click: { fn: clicked } },
+ listeners: { click: { fn: clicked } }
},
{
width: 50,
if (r.length < 1) return "";
return (clickable ? lookup : '') + r.join(',');
},
- listeners: { click: { fn: clicked } },
+ listeners: { click: { fn: clicked } }
}
]
});
/* Really do it */
var conf = {
enabled: 1,
- comment: 'Created from EPG query',
+ comment: 'Created from EPG query'
};
if (params.title) conf.title = params.title;
if (params.channel) conf.channel = params.channel;
var internalCron = new Ext.form.TextArea({
fieldLabel: 'Cron multi-line',
name: 'cron',
- width: 300,
+ width: 300
});
/*
var otaCron = new Ext.form.TextArea({
fieldLabel: 'Over-the-air Cron multi-line',
name: 'ota_cron',
- width: 300,
+ width: 300
});
var otaTimeout = new Ext.form.NumberField({
displayField: 'caption',
valueField: 'class',
propField: 'props',
- list: list,
+ list: list
},
- create: { },
+ create: { }
},
del: true,
help: function() {
var store = null;
/* API fetch */
- if (f.enum.type === 'api') {
+ if (f['enum'].type === 'api') {
return tvheadend.idnode_get_enum({
- url: 'api/' + f.enum.uri,
- params: f.enum.params,
- event: f.enum.event
+ url: 'api/' + f['enum'].uri,
+ params: f['enum'].params,
+ event: f['enum'].event
});
}
switch (f.type) {
case 'str':
- if (f.enum.length > 0 && f.enum[0] instanceof Object)
+ if (f['enum'].length > 0 && f['enum'][0] instanceof Object)
store = new Ext.data.JsonStore({
id: 'key',
fields: ['key', 'val'],
- data: f.enum
+ data: f['enum']
});
else
- store = f.enum;
+ store = f['enum'];
break;
case 'int':
case 'u32':
case 'dbl':
case 'time':
var data = null;
- if (f.enum.length > 0 && f.enum[0] instanceof Object) {
- data = f.enum;
+ if (f['enum'].length > 0 && f['enum'][0] instanceof Object) {
+ data = f['enum'];
} else {
data = [];
- for (i = 0; i < f.enum.length; i++)
- data.push({key: i, val: f.enum[i]});
+ for (i = 0; i < f['enum'].length; i++)
+ data.push({key: i, val: f['enum'][i]});
}
store = new Ext.data.JsonStore({
id: 'key',
this.intsplit = conf.intsplit;
this.hexa = conf.hexa;
this.group = conf.group;
- this.enum = conf.enum;
+ this['enum'] = conf['enum'];
this.store = null;
- if (this.enum)
+ if (this['enum'])
this.store = tvheadend.idnode_enum_store(this);
this.ordered = false;
ftype = 'boolean';
w = 60;
}
- if (this.enum || this.list)
+ if (this['enum'] || this.list)
w = 300;
var props = {
};
/* ComboBox */
- if (this.enum) {
+ if (this['enum']) {
cons = Ext.form.ComboBox;
if (this.list) {
cons = Ext.ux.form.LovCombo;
/*
* Properties
*/
- this.clazz = conf.class;
+ this.clazz = conf['class'];
this.text = conf.caption || this.clazz;
this.event = conf.event;
this.props = conf.props;
d = false;
var value = f.value;
if (value == null)
- value = f.default;
+ value = f['default'];
/* Enumerated (combobox) type */
- if (f.enum) {
+ if (f['enum']) {
var cons = Ext.form.ComboBox;
if (f.list)
cons = Ext.ux.form.LovCombo;
timeConfig: {
altFormats: 'H:i:s',
allowBlank: true,
- increment: 10,
+ increment: 10
},
dateFormat:'d.n.Y',
dateConfig: {
altFormats: 'Y-m-d|Y-n-d',
- allowBlank: true,
+ allowBlank: true
}
});
/* fall thru!!! */
value: '0x' + value.toString(16),
disabled: d,
width: 300,
- maskRe: /[xX0-9a-fA-F\.]/,
+ maskRe: /[xX0-9a-fA-F\.]/
});
}
if (f.intsplit) {
value: value,
disabled: d,
width: 300,
- maskRe: /[0-9\.]/,
+ maskRe: /[0-9\.]/
});
}
return new Ext.form.NumberField({
defaultType: 'textfield',
buttonAlign: 'left',
autoScroll: true,
- buttons: buttons,
+ buttons: buttons
});
tvheadend.idnode_editor_form(item.props || item.params, item.meta, panel,
fields: fields,
remoteSort: true,
pruneModifiedRecords: true,
- sortInfo: conf.sort ? conf.sort : null,
+ sortInfo: conf.sort ? conf.sort : null
});
/* Model */
root: 'entries',
url: listurl || 'api/idnode/load',
baseParams: params || {
- enum: 1,
+ 'enum': 1,
'class': conf.clazz
},
autoLoad: true,
/* Model */
var model = new Ext.grid.ColumnModel({
defaultSortable: conf.move ? false : true,
- columns: columns,
+ columns: columns
});
/* Selection */
if (!tvheadend.network_list) {
tvheadend.network_list = new Ext.data.JsonStore({
url: 'api/idnode/load',
- baseParams: {class: 'mpegts_network', enum: 1},
+ baseParams: { 'class': 'mpegts_network', 'enum': 1 },
root: 'entries',
fields: ['key', 'val'],
id: 'key',
r.data.service = m.service;
r.data.state = m.state;
r.data.errors = m.errors;
- r.data.in = m.in;
+ r.data['in'] = m['in'];
r.data.out = m.out;
store.afterEdit(r);
header: "Input (kb/s)",
dataIndex: 'in',
listeners: { click: { fn: clicked } },
- renderer: renderBw,
+ renderer: renderBw
},
{
width: 50,
header: "Output (kb/s)",
dataIndex: 'out',
listeners: { click: { fn: clicked } },
- renderer: renderBw,
+ renderer: renderBw
}
]);
header: "Bandwidth (kb/s)",
dataIndex: 'bps',
renderer: renderBw,
- listeners: { click: { fn: clicked } },
+ listeners: { click: { fn: clicked } }
},
{
width: 50,
return;
Ext.Ajax.request({
url: 'api/connections/cancel',
- params: { id: id },
+ params: { id: id }
});
}
);
viewConfig: {
forceFit: true
},
- plugins: [actions],
+ plugins: [actions]
});
dpanel.add(grid);
autoScroll: true,
activeTab: 0,
iconCls: 'eye',
- items: [],
+ items: []
});
tvheadend.status_streams(panel);
tvheadend.status_subs(panel);
return;
}
- var input = Math.round(r.data.in / 125);
+ var input = Math.round(r.data['in'] / 125);
var output = Math.round(r.data.out / 125);
- var ratio = new Number(r.data.in / r.data.out).toPrecision(3);
+ var ratio = new Number(r.data['in'] / r.data.out).toPrecision(3);
win.setTitle(r.data.channel);
inputLbl.setText('In: ' + input + ' kb/s');
if (!tvheadend.profiles) {
tvheadend.profiles = tvheadend.idnode_get_enum({
url: 'api/profile/list',
- event: 'profile',
+ event: 'profile'
});
}
editable: false,
triggerAction: 'all',
emptyText: 'Select stream profile...',
- store: tvheadend.profiles,
+ store: tvheadend.profiles
});
selectProfile.on('select', function(c, r) {
profile: 'webtv-h264-aac-matroska',
playlist: false,
mimetype: 'video/x-matroska; codecs="avc1.42E01E, mp4a.40.2"'
- },
+ }
};
return {