/**
* Load all components
*/
+ extjs_load(hq, "static/app/tableeditor.js");
extjs_load(hq, "static/app/cteditor.js");
extjs_load(hq, "static/app/acleditor.js");
extjs_load(hq, "static/app/cwceditor.js");
});
var cm = new Ext.grid.ColumnModel([
- enabledColumn,
+ enabledColumn,
{
- id:'username',
header: "Username",
dataIndex: 'username',
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},{
- id:'password',
header: "Password",
dataIndex: 'password',
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},{
header: "Prefix",
dataIndex: 'prefix',
- editor: new fm.TextField({
- allowBlank: false,
- })
+ editor: new fm.TextField({allowBlank: false})
},
- streamingColumn,
- pvrColumn,
- webuiColumn,
- adminColumn,
-
+ streamingColumn,
+ pvrColumn,
+ webuiColumn,
+ adminColumn,
{
- id:'comment',
header: "Comment",
dataIndex: 'comment',
width: 400,
- editor: new fm.TextField({
-
- })
+ editor: new fm.TextField({})
}
- ]);
-
-
- cm.defaultSortable = true;
+ ]);
var UserRecord = Ext.data.Record.create([
- {name: 'enabled'},
- {name: 'streaming'},
- {name: 'pvr'},
- {name: 'admin'},
- {name: 'webui'},
- {name: 'username'},
- {name: 'prefix'},
- {name: 'password'},
- {name: 'comment'}]);
-
- var store = new Ext.data.JsonStore({root: 'entries',
- fields: UserRecord,
- url: "tablemgr",
- autoLoad: true,
- id: 'id',
- storeid: 'id',
- baseParams: {table: "accesscontrol", op: "get"}
- });
-
-
- function addRecord() {
- Ext.Ajax.request({
- url: "tablemgr", params: {op:"create", table:"accesscontrol"},
- failure:function(response,options){
- Ext.MessageBox.alert('Server Error','Unable to generate new record');
- },
- success:function(response,options){
- var responseData = Ext.util.JSON.decode(response.responseText);
-
- var p = new UserRecord(responseData, responseData.id);
- grid.stopEditing();
- store.insert(0, p);
- grid.startEditing(0, 0);
- }
- })
- };
-
- function delSelected() {
- var selectedKeys = grid.selModel.selections.keys;
- if(selectedKeys.length > 0)
- {
- Ext.MessageBox.confirm('Message',
- 'Do you really want to delete selection?',
- deleteRecord);
- } else {
- Ext.MessageBox.alert('Message',
- 'Please select at least one item to delete');
- }
- };
-
-
- function deleteRecord(btn) {
- if(btn=='yes') {
- var selectedKeys = grid.selModel.selections.keys;
-
- Ext.Ajax.request({
- url: "tablemgr", params: {op:"delete", table:"accesscontrol",
- entries:Ext.encode(selectedKeys)},
- failure:function(response,options){
- Ext.MessageBox.alert('Server Error','Unable to delete');
- },
- success:function(response,options){
- store.reload();
- }
- })
- }
- }
-
-
+ 'enabled','streaming','pvr','admin','webui','username',
+ 'prefix','password','comment'
+ ]);
- function saveChanges() {
- var mr = store.getModifiedRecords();
- var out = new Array();
- for (var x = 0; x < mr.length; x++) {
- v = mr[x].getChanges();
- out[x] = v;
- out[x].id = mr[x].id;
- }
-
- Ext.Ajax.request({url: "tablemgr",
- params: {op:"update", table:"accesscontrol",
- entries:Ext.encode(out)},
- success:function(response,options){
- store.commitChanges();
- },
- failure:function(response,options){
- Ext.MessageBox.alert('Message',response.statusText);
- }
- });
- }
-
- var grid = new Ext.grid.EditorGridPanel({
- title: 'Access Configuration',
- plugins:[enabledColumn,streamingColumn,pvrColumn,adminColumn, webuiColumn],
- store: store,
- clicksToEdit: 2,
- viewConfig: {forceFit:true},
- cm: cm,
- selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),
- tbar: [{
- tooltip: 'Create a new access list entry on the server. ' +
- 'The new entry is initially disabled so it must be enabled before it start taking effect.',
- iconCls:'add',
- text: 'Add entry',
- handler: addRecord
- }, '-', {
- tooltip: 'Delete one or more selected rows',
- iconCls:'remove',
- text: 'Delete selected',
- handler: delSelected
- }, '-', {
- tooltip: 'Save any changes made (Changed cells have red borders).',
- iconCls:'save',
- text: "Save changes",
- handler: saveChanges
- }
- ]
- });
-
- return grid;
+ return new tvheadend.tableEditor('Access control', 'accesscontrol', cm,
+ UserRecord,
+ [enabledColumn, streamingColumn,
+ pvrColumn, webuiColumn,
+ adminColumn]);
}
var cm = new Ext.grid.ColumnModel([
- enabledColumn,
+ enabledColumn,
{
- id:'name',
header: "Name",
dataIndex: 'name',
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},
- internalColumn,
+ internalColumn,
{
- id:'comment',
header: "Comment",
dataIndex: 'comment',
width: 400,
- editor: new fm.TextField({
-
- })
+ editor: new fm.TextField({})
}
- ]);
-
-
- cm.defaultSortable = true;
+ ]);
var ChannelTagRecord = Ext.data.Record.create([
- {name: 'enabled'},
- {name: 'name'},
- {name: 'internal'},
- {name: 'comment'}
+ 'enabled','name','internal','comment'
]);
- var store = new Ext.data.JsonStore({
- root: 'entries',
- fields: ChannelTagRecord,
- url: "tablemgr",
- autoLoad: true,
- id: 'id',
- storeid: 'id',
- baseParams: {table: "channeltags", op: "get"}
- });
-
-
- function addRecord() {
- Ext.Ajax.request({
- url: "tablemgr", params: {op:"create", table:"channeltags"},
- failure:function(response,options){
- Ext.MessageBox.alert('Server Error','Unable to generate new record');
- },
- success:function(response,options){
- var responseData = Ext.util.JSON.decode(response.responseText);
-
- var p = new ChannelTagRecord(responseData, responseData.id);
- grid.stopEditing();
- store.insert(0, p);
- grid.startEditing(0, 0);
- }
- })
- };
-
- function delSelected() {
- var selectedKeys = grid.selModel.selections.keys;
- if(selectedKeys.length > 0)
- {
- Ext.MessageBox.confirm('Message',
- 'Do you really want to delete selection?',
- deleteRecord);
- } else {
- Ext.MessageBox.alert('Message',
- 'Please select at least one item to delete');
- }
- };
-
-
- function deleteRecord(btn) {
- if(btn=='yes') {
- var selectedKeys = grid.selModel.selections.keys;
-
- Ext.Ajax.request({
- url: "tablemgr", params: {op:"delete", table:"channeltags",
- entries:Ext.encode(selectedKeys)},
- failure:function(response,options){
- Ext.MessageBox.alert('Server Error','Unable to delete');
- },
- success:function(response,options){
- store.reload();
- }
- })
- }
- }
-
-
-
- function saveChanges() {
- var mr = store.getModifiedRecords();
- var out = new Array();
- for (var x = 0; x < mr.length; x++) {
- v = mr[x].getChanges();
- out[x] = v;
- out[x].id = mr[x].id;
- }
-
- Ext.Ajax.request({url: "tablemgr",
- params: {op:"update", table:"channeltags",
- entries:Ext.encode(out)},
- success:function(response,options){
- store.commitChanges();
- },
- failure:function(response,options){
- Ext.MessageBox.alert('Message',response.statusText);
- }
- });
- }
-
- var grid = new Ext.grid.EditorGridPanel({
- title: 'Channel Tags',
- plugins:[enabledColumn,internalColumn],
- store: store,
- clicksToEdit: 2,
- cm: cm,
- selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),
- tbar: [{
- tooltip: 'Create a new channel tag entry on the server. ' +
- 'The new entry is initially disabled so it must be enabled before it start taking effect.',
- iconCls:'add',
- text: 'Add entry',
- handler: addRecord
- }, '-', {
- tooltip: 'Delete one or more selected rows',
- iconCls:'remove',
- text: 'Delete selected',
- handler: delSelected
- }, '-', {
- tooltip: 'Save any changes made (Changed cells have red borders).',
- iconCls:'save',
- text: "Save changes",
- handler: saveChanges
- }
- ]
- });
-
- return grid;
+ return new tvheadend.tableEditor('Channel Tags', 'channeltags', cm,
+ ChannelTagRecord,
+ [enabledColumn, internalColumn]);
}
});
var cm = new Ext.grid.ColumnModel([
- enabledColumn,
+ enabledColumn,
{
- id:'hostname',
header: "Hostname",
dataIndex: 'hostname',
width: 200,
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},{
- id:'port',
header: "Port",
dataIndex: 'port',
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},{
- id:'username',
header: "Username",
dataIndex: 'username',
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},{
- id:'password',
header: "Password",
dataIndex: 'password',
- editor: new fm.TextField({
- allowBlank: false
- })
+ editor: new fm.TextField({allowBlank: false})
},{
header: "DES Key",
dataIndex: 'deskey',
width: 300,
- editor: new fm.TextField({
- allowBlank: false,
- })
- },
- {
- id:'comment',
+ editor: new fm.TextField({allowBlank: false})
+ },{
header: "Comment",
dataIndex: 'comment',
width: 400,
- editor: new fm.TextField({
-
- })
+ editor: new fm.TextField()
}
- ]);
-
-
- cm.defaultSortable = true;
-
- var UserRecord = Ext.data.Record.create([
- {name: 'enabled'},
- {name: 'hostname'},
- {name: 'port'},
- {name: 'username'},
- {name: 'password'},
- {name: 'deskey'},
- {name: 'comment'}]);
-
- var store = new Ext.data.JsonStore({root: 'entries',
- fields: UserRecord,
- url: "tablemgr",
- autoLoad: true,
- id: 'id',
- storeid: 'id',
- baseParams: {table: "cwc", op: "get"}
- });
-
-
- function addRecord() {
- Ext.Ajax.request({
- url: "tablemgr", params: {op:"create", table:"cwc"},
- failure:function(response,options){
- Ext.MessageBox.alert('Server Error','Unable to generate new record');
- },
- success:function(response,options){
- var responseData = Ext.util.JSON.decode(response.responseText);
-
- var p = new UserRecord(responseData, responseData.id);
- grid.stopEditing();
- store.insert(0, p);
- grid.startEditing(0, 0);
- }
- })
- };
-
-
-
- function delSelected() {
- var selectedKeys = grid.selModel.selections.keys;
- if(selectedKeys.length > 0)
- {
- Ext.MessageBox.confirm('Message',
- 'Do you really want to delete selection?',
- deleteRecord);
- } else {
- Ext.MessageBox.alert('Message',
- 'Please select at least one item to delete');
- }
- };
-
-
- function deleteRecord(btn) {
- if(btn=='yes') {
- var selectedKeys = grid.selModel.selections.keys;
-
- Ext.Ajax.request({
- url: "tablemgr", params: {op:"delete", table:"cwc",
- entries:Ext.encode(selectedKeys)},
- failure:function(response,options){
- Ext.MessageBox.alert('Server Error','Unable to delete');
- },
- success:function(response,options){
- store.reload();
- }
- })
- }
- }
-
+ ]);
+ var rec = Ext.data.Record.create([
+ 'enabled','hostname','port','username','password','deskey','comment'
+ ]);
- function saveChanges() {
- var mr = store.getModifiedRecords();
- var out = new Array();
- for (var x = 0; x < mr.length; x++) {
- v = mr[x].getChanges();
- out[x] = v;
- out[x].id = mr[x].id;
- }
-
- Ext.Ajax.request({url: "tablemgr",
- params: {op:"update", table:"cwc",
- entries:Ext.encode(out)},
- success:function(response,options){
- store.commitChanges();
- },
- failure:function(response,options){
- Ext.MessageBox.alert('Message',response.statusText);
- }
- });
- }
-
- var grid = new Ext.grid.EditorGridPanel({
- title: 'Code Word Client',
- plugins:[enabledColumn],
- store: store,
- clicksToEdit: 2,
- cm: cm,
- viewConfig: {forceFit:true},
- selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),
- tbar: [{
- tooltip: 'Create a new code word connection entry on the server. ' +
- 'The new entry is initially disabled so it must be enabled before it start taking effect.',
- iconCls:'add',
- text: 'Add entry',
- handler: addRecord
- }, '-', {
- tooltip: 'Delete one or more selected rows',
- iconCls:'remove',
- text: 'Delete selected',
- handler: delSelected
- }, '-', {
- tooltip: 'Save any changes made (Changed cells have red borders).',
- iconCls:'save',
- text: "Save changes",
- handler: saveChanges
- }
- ]
- });
- return grid;
+ return new tvheadend.tableEditor('Code Word Client', 'cwc', cm, rec,
+ [enabledColumn]);
}
--- /dev/null
+console.log("hejja");
+
+tvheadend.tableEditor = function(title, dtable, cm, rec, plugins) {
+ cm.defaultSortable = true;
+
+ var store = new Ext.data.JsonStore({
+ root: 'entries',
+ fields: rec,
+ url: "tablemgr",
+ autoLoad: true,
+ baseParams: {table: dtable, op: "get"}
+ });
+
+
+ function addRecord() {
+ Ext.Ajax.request({
+ url: "tablemgr", params: {op:"create", table:dtable},
+ failure:function(response,options){
+ Ext.MessageBox.alert('Server Error',
+ 'Unable to generate new record');
+ },
+ success:function(response,options){
+ var responseData = Ext.util.JSON.decode(response.responseText);
+ var p = new rec(responseData, responseData.id);
+ grid.stopEditing();
+ store.insert(0, p);
+ grid.startEditing(0, 0);
+ }
+ })
+ };
+
+
+
+ function delSelected() {
+ var selectedKeys = grid.selModel.selections.keys;
+ if(selectedKeys.length > 0) {
+ Ext.MessageBox.confirm('Message',
+ 'Do you really want to delete selection?',
+ deleteRecord);
+ } else {
+ Ext.MessageBox.alert('Message',
+ 'Please select at least one item to delete');
+ }
+ };
+
+
+ function deleteRecord(btn) {
+ if(btn=='yes') {
+ var selectedKeys = grid.selModel.selections.keys;
+
+ Ext.Ajax.request({
+ url: "tablemgr", params: {op:"delete", table:dtable,
+ entries:Ext.encode(selectedKeys)},
+ failure:function(response,options) {
+ Ext.MessageBox.alert('Server Error','Unable to delete');
+ },
+ success:function(response,options) {
+ store.reload();
+ }
+ })
+ }
+ }
+
+ function saveChanges() {
+ var mr = store.getModifiedRecords();
+ var out = new Array();
+ for (var x = 0; x < mr.length; x++) {
+ v = mr[x].getChanges();
+ out[x] = v;
+ out[x].id = mr[x].id;
+ }
+
+ Ext.Ajax.request({
+ url: "tablemgr",
+ params: {op:"update", table:dtable, entries:Ext.encode(out)},
+ success:function(response,options) {
+ store.commitChanges();
+ },
+ failure:function(response,options) {
+ Ext.MessageBox.alert('Message',response.statusText);
+ }
+ });
+ }
+
+ var grid = new Ext.grid.EditorGridPanel({
+ title: title,
+ plugins: plugins,
+ store: store,
+ clicksToEdit: 2,
+ cm: cm,
+ viewConfig: {forceFit:true},
+ selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),
+ tbar: [{
+ tooltip: 'Create a new entry on the server. '+
+ 'The new entry is initially disabled so it must be enabled '+
+ 'before it start taking effect.',
+ iconCls:'add',
+ text: 'Add entry',
+ handler: addRecord
+ }, '-', {
+ tooltip: 'Delete one or more selected rows',
+ iconCls:'remove',
+ text: 'Delete selected',
+ handler: delSelected
+ }, '-', {
+ tooltip: 'Save any changes made (Changed cells have red borders).',
+ iconCls:'save',
+ text: "Save changes",
+ handler: saveChanges
+ }
+ ]
+ });
+ return grid;
+}
+