Skip to content

Commit

Permalink
trimming out the unused panel code for remote synching
Browse files Browse the repository at this point in the history
  • Loading branch information
Anil Madhavapeddy committed Aug 2, 2009
1 parent 319a27e commit 20532de
Showing 1 changed file with 7 additions and 315 deletions.
322 changes: 7 additions & 315 deletions htdocs/grid.js
Expand Up @@ -32,288 +32,6 @@ Ext.onReady(function(){
}, Plugin)
});

// ------ FILTER GRID ----

var Filter = Ext.data.Record.create([
{name: 'Name', mapping: 'name'},
{name: 'Rule', mapping: 'body'},
{name: 'Order', mapping: 'zorder'},
]);

var filter_proxy = new Ext.data.HttpProxy({
method: 'GET',
url : '/filter/_unknown'
});

var filter_store = new Ext.data.GroupingStore({
proxy: filter_proxy,
reader: new Ext.data.JsonReader({
totalProperty: 'results',
root: 'rows',
}, Filter)
});

var filter_editor = new Ext.ux.RowEditor({
saveText: "Update"
});

var filter_grid = new Ext.grid.GridPanel({
store: filter_store,
collapsible: true,
title: 'Filters',
plugins: [filter_editor],
clicksToEdit: 1,
width: 700,
height: 150,
view: new Ext.grid.GroupingView({ markDirty: false }),
columns: [
{header: "Name", dataIndex:"Name", sortable: true,
editor: new fm.TextField({ allowBlank: false})},
{header: 'Rule', dataIndex:'Rule', sortable: true, width: 200,
editor: { xtype:'combo', triggerAction:'all', forceSelection: true,
store:['add *', 'add * where #remote in recipients'], typeAhead:true,
mode:'local', selectOnFocus:true, emptyText: 'Select rule...'}},
{header: "Order", dataIndex:"Order", sortable: true,
editor: {
allowBlank: false,
xtype: 'numberfield',
minValue: 1,
maxValue: 200,
}
}
],
tbar: [{
iconCls: 'icon-feed-add',
ref : '../addBtn',
text: 'Add Rule',
disabled: true,
handler : function(){
var u = new Filter({
Name: '',
Body: '',
Order: 1,
});
filter_editor.stopEditing();
filter_store.insert(0, u);
filter_grid.getView().refresh();
filter_grid.getSelectionModel().selectRow(0);
filter_editor.startEditing(0);
}
},
{
ref : '../removeBtn',
iconCls: 'icon-feed-delete',
disabled: true,
text: 'Delete Rule',
handler : function () {
filter_grid.stopEditing();
var u = filter_store.current_user;
var s = filter_grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++) {
Ext.Ajax.request({
url: '/filter/' + u + "/" + r.get('Name'),
method : 'DELETE',
success: function(request, result) {
filter_store.reload ();
},
failure: function(request, result) {
Ext.Msg.alert('Filter', 'Deletion failed!');
},
});
}
}
}
]

});

function applyFilterChanges() {
console.log('applyFilterChanges');
mr = this.getStore().getModifiedRecords();
for (var i = 0; i < mr.length; i++) {
var r = mr[i];
var j = {
name: r.get('Name'),
body: r.get('Rule'),
zorder: r.get('Order'),
};
Ext.Ajax.request( {
waitMsg: "saving filter...",
url: '/filter/' + filter_store.current_user,
method: 'POST',
jsonData: j,
success: function (request, result) {
r.commit();
},
failure: function (request, result) {
Ext.Msg.alert('Filter', 'Failed to edit filter: ' + result.responseText);
},
});
}
this.getStore().reload();
}

filter_store.on('update', applyFilterChanges, filter_grid);

filter_grid.getSelectionModel().on('selectionchange', function(sm){
filter_grid.removeBtn.setDisabled(sm.getCount() < 1);
});

// --------- USER GRID ------------

var User = Ext.data.Record.create([
{name: 'Username', mapping: 'uid'},
{name: 'Hostname', mapping: 'ip'},
{name: 'Port', mapping: 'port'},
{name: 'Key', mapping: 'key'},
]);

// create the Data Store
var user_store = new Ext.data.GroupingStore({

proxy: new Ext.data.HttpProxy({
method: 'GET',
url:'/user'
}),

// the return will be XML, so lets set up a reader
reader: new Ext.data.JsonReader({
totalProperty: 'results',
root: 'rows',
}, User)
});

var user_editor = new Ext.ux.RowEditor({
saveText: 'Update'
});
// create the user_grid
var user_grid = new Ext.grid.GridPanel({
store: user_store,
title: 'Users',
plugins: [user_editor],
view: new Ext.grid.GroupingView({
markDirty: false
}),

columns: [
{header: "Username", dataIndex: 'Username', sortable: true,
editor: new fm.TextField({
allowBlank: false,
})
},
{header: "Hostname", dataIndex: 'Hostname', sortable: true,
editor: new fm.TextField({
allowBlank: false
})
},
{header: "Port", dataIndex: 'Port', sortable: true,
editor: {
allowBlank: false,
xtype: 'numberfield',
minValue: 1,
maxValue: 65535,
}
},
{header: "Key", dataIndex: 'Key', sortable: false},
],
clicksToEdit:1,
width:700,
height: 200,
tbar: [{
iconCls: 'icon-user-add',
text: 'Add User',
handler : function(){
var u = new User({
Username: '',
Hostname: 'example.com',
Port: 5985,
Key: "",
});

user_editor.stopEditing();
user_store.insert(0, u);
user_grid.getView().refresh();
user_grid.getSelectionModel().selectRow(0);
user_editor.startEditing(0);
}
},
{
ref : '../removeBtn',
iconCls: 'icon-user-delete',
disabled: true,
text: 'Delete User',
handler : function () {
user_grid.stopEditing();
var s = user_grid.getSelectionModel().getSelections();
for(var i = 0, r; r = s[i]; i++){
Ext.Ajax.request({
url: '/user/' + r.get('Username'),
method : 'DELETE',
success: function(request, result) {
user_store.reload ();
},
failure: function(request, result) {
Ext.Msg.alert('User', 'Deletion failed!');
},
});
}
}
}
]
});

user_grid.getSelectionModel().on('selectionchange', function(sm){
user_grid.removeBtn.setDisabled(sm.getCount() < 1);
filter_grid.addBtn.setDisabled(sm.getCount() < 1);
});

function applyUserChanges() {
console.log('applyUserChanges');
mr = this.getStore().getModifiedRecords();
for (var i = 0; i < mr.length; i++) {
var r = mr[i];
var j = {
uid: r.get('Username'),
ip: r.get('Hostname'),
port: r.get('Port'),
key: r.get('Key'),
};
Ext.Ajax.request( {
waitMsg: "saving user...",
url: '/user',
method: 'POST',
jsonData: j,
success: function (request, result) {
r.commit();
},
failure: function (request, result) {
Ext.Msg.alert('User', 'Failed to edit user: ' + result.responseText);
},
});
}
this.getStore().reload();
}

user_store.on('update', applyUserChanges, user_grid);

user_grid.getSelectionModel().on('rowselect', function(sm, rowIdx, r) {
filter_store.proxy = new Ext.data.HttpProxy({
method: 'GET',
url : '/filter/' + r.get('Username')
});
filter_store.removeAll();
filter_grid.setTitle("Filters for " + r.get('Username'));
filter_store.current_user = r.get('Username');
filter_store.reload ();
filter_grid.expand ();
});

user_panel = new Ext.Panel({
title: 'User Administration',
collapsible:true,
items: [ user_grid, filter_grid ],
});

// ---------------- IN TASK

var InTask = Ext.data.Record.create([
Expand Down Expand Up @@ -467,54 +185,28 @@ Ext.onReady(function(){
in_task_grid.removeBtn.setDisabled(sm.getCount() < 1);
});

// -- OUTBOUND tasks panel
var OutTask = Ext.data.Record.create([
{name: 'Name', mapping: 'name'},
{name: 'Plugin', mapping: 'plugin'},
{name: 'Handles', mapping: 'pltype'},
{name: 'Args', mapping: 'args'},
{name: 'Pid', mapping: 'pid'},
{name: 'Duration', mapping: 'duration'},
]);

// create the Data Store
var out_task_store = new Ext.data.GroupingStore({

proxy: new Ext.data.HttpProxy({
method: 'GET',
url:'/outtask'
}),

// the return will be XML, so lets set up a reader
reader: new Ext.data.JsonReader({
totalProperty: 'results',
root: 'rows',
}, OutTask)
});

var out_task_editor = new Ext.ux.RowEditor({
saveText: 'Update'
});


tasks_panel = new Ext.Panel({
title: 'Tasks',
collapsible:true,
items: [ in_task_grid ],
});


// Password panel
// --------------


// Overall tab panel
// -----------------

var tabs = new Ext.TabPanel({
renderTo: 'user-grid',
width: 700,
activeTab: 0,
items: [
user_panel,
tasks_panel,
],
});
user_store.load ();
in_task_store.load ();
filter_grid.collapse();
plugin_store.load ();
});

0 comments on commit 20532de

Please sign in to comment.