Files
luos/gulliver/bin/tasks/templates/pluginApplication.js.tpl
2011-12-07 09:34:43 -04:00

248 lines
6.4 KiB
Smarty

Ext.namespace("{className}");
{className}.application = {
init:function(){
storeUserProcess = function (n, r, i) {
var myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Load users..."});
myMask.show();
Ext.Ajax.request({
url: "{className}ApplicationAjax",
method: "POST",
params: {"option": "LST", "pageSize": n, "limit": r, "start": i},
success:function (result, request) {
storeUser.loadData(Ext.util.JSON.decode(result.responseText));
myMask.hide();
},
failure:function (result, request) {
myMask.hide();
Ext.MessageBox.alert("Alert", "Failure users load");
}
});
};
onMnuContext = function(grid, rowIndex,e) {
e.stopEvent();
var coords = e.getXY();
mnuContext.showAt([coords[0], coords[1]]);
};
//Variables declared in html file
var pageSize = parseInt(CONFIG.pageSize);
var message = CONFIG.message;
//stores
var storeUser = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({
url: "{className}ApplicationAjax",
method: "POST"
}),
//baseParams: {"option": "LST", "pageSize": pageSize},
reader:new Ext.data.JsonReader({
root: "resultRoot",
totalProperty: "resultTotal",
fields: [{name: "ID"},
{name: "NAME"},
{name: "AGE"},
{name: "BALANCE"}
]
}),
//autoLoad: true, //First call
listeners:{
beforeload:function (store) {
this.baseParams = {"option": "LST", "pageSize": pageSize};
}
}
});
var storePageSize = new Ext.data.SimpleStore({
fields: ["size"],
data: [["15"], ["25"], ["35"], ["50"], ["100"]],
autoLoad: true
});
//
var btnNew = new Ext.Action({
id: "btnNew",
text: "New",
iconCls: "button_menu_ext ss_sprite ss_add",
handler: function() {
Ext.MessageBox.alert("Alert", message);
}
});
var btnEdit = new Ext.Action({
id: "btnEdit",
text: "Edit",
iconCls: "button_menu_ext ss_sprite ss_pencil",
disabled: true,
handler: function() {
Ext.MessageBox.alert("Alert", message);
}
});
var btnDelete = new Ext.Action({
id: "btnDelete",
text: "Delete",
iconCls: "button_menu_ext ss_sprite ss_delete",
disabled: true,
handler: function() {
Ext.MessageBox.alert("Alert", message);
}
});
var btnSearch = new Ext.Action({
id: "btnSearch",
text: "Search",
handler: function() {
Ext.MessageBox.alert("Alert", message);
}
});
var mnuContext = new Ext.menu.Menu({
id: "mnuContext",
items: [btnEdit, btnDelete]
});
var txtSearch = new Ext.form.TextField({
id: "txtSearch",
emptyText: "Enter search term",
width: 150,
allowBlank: true,
listeners:{
specialkey: function (f, e) {
if (e.getKey() == e.ENTER) {
Ext.MessageBox.alert("Alert", message);
}
}
}
});
var btnTextClear = new Ext.Action({
id: "btnTextClear",
text: "X",
ctCls: "pm_search_x_button",
handler: function() {
txtSearch.reset();
}
});
var cboPageSize = new Ext.form.ComboBox({
id: "cboPageSize",
mode: "local",
triggerAction: "all",
store: storePageSize,
valueField: "size",
displayField: "size",
width: 50,
editable: false,
listeners:{
select: function (combo, record, index) {
pageSize = parseInt(record.data["size"]);
pagingUser.pageSize = pageSize;
pagingUser.moveFirst();
}
}
});
var pagingUser = new Ext.PagingToolbar({
id: "pagingUser",
pageSize: pageSize,
store: storeUser,
displayInfo: true,
displayMsg: "Displaying users " + "{" + "0" + "}" + " - " + "{" + "1" + "}" + " of " + "{" + "2" + "}",
emptyMsg: "No roles to display",
items: ["-", "Page size:", cboPageSize]
});
var cmodel = new Ext.grid.ColumnModel({
defaults: {
width:50,
sortable:true
},
columns:[{id: "ID", dataIndex: "ID", hidden: true},
{header: "Name", dataIndex: "NAME", align: "left"},
{header: "Age", dataIndex: "AGE", width: 25, align: "center"},
{header: "Balance", dataIndex: "BALANCE", width: 25, align: "left"}
]
});
var smodel = new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect: function (sm) {
btnEdit.enable();
btnDelete.enable();
},
rowdeselect: function (sm) {
btnEdit.disable();
btnDelete.disable();
}
}
});
var grdpnlUser = new Ext.grid.GridPanel({
id: "grdpnlUser",
store: storeUser,
colModel: cmodel,
selModel: smodel,
columnLines: true,
viewConfig: {forceFit: true},
enableColumnResize: true,
enableHdMenu: true, //Menu of the column
tbar: [btnNew, "-", btnEdit, btnDelete, "-", "->", txtSearch, btnTextClear, btnSearch],
bbar: pagingUser,
style: "margin: 0 auto 0 auto;",
width: 550,
height: 450,
title: "Users",
renderTo: "divMain",
listeners:{
}
});
//Initialize events
storeUserProcess(pageSize, pageSize, 0);
grdpnlUser.on("rowcontextmenu",
function (grid, rowIndex, evt) {
var sm = grid.getSelectionModel();
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
},
this
);
grdpnlUser.addListener("rowcontextmenu", onMnuContext, this);
cboPageSize.setValue(pageSize);
}
}
Ext.onReady({className}.application.init, {className}.application);