Ext.define('{{name}}.controller.Generic', {
extend: 'Ext.app.Controller',
stores: ['Generic'],
models: ['GenericModel'],
refs: [{
ref: 'genericlist',
selector: 'genericlist'
},
{
ref: 'buttonAdd',
selector: 'viewport button[action=addAction]'
},
{
ref: 'buttonEdit',
selector: 'viewport button[action=editAction]'
},
{
ref: 'buttonDelete',
selector: 'viewport button[action=deleteAction]'
}
],
init: function() {
this.control({
'genericwindow button[action=save]': {
click: this.addAction
},
'viewport button[action=addAction]': {
click: this.onAddAction
},
'actionlist': {
beforeselect: this.onListSelect,
beforedeselect: this.onListDeSelect
},
'viewport':{
render:this.onRender
}
});
},
onRender:function(){
//Make Raptor control the UI to activate the privilege
//Raptor.controlActions();
},
onListSelect: function() {
},
onListDeSelect: function() {
},
onAddAction: function() {
var view = Ext.widget('genericwindow');
},
onEditAction: function() {
var model=this.getGenericlist().getSelectionModel().getLastSelected();
var view = Ext.widget('genericwindow', {action: 'edit',title:'Modify'});
var form=view.down('form');
form.loadRecord(model);
},
onDeleteAction: function() {
Raptor.msg.show(2,'Are you shure', this.deleteAction, this);
},
addAction:function(button){
var win=button.up('window');
if(win.action=='edit'){
this.update(win.down('form'),'action/edit');
}else{
this.insert(win.down('form'),'action/insert');
}
},
insert:function(form,url){
form.submit({
url: url,
waitMsg: 'wait please..',
params:{},
success: function(formBasic, action) {
form.up('window').close();
this.getGenericlist().getSelectionModel().deselectAll();
Raptor.msg.show(action.result.cod, action.result.msg);
this.getGenericlist().getStore().load();
},
failure: function(formBasic, action) {
switch (action.failureType) {
case Ext.form.action.Action.CLIENT_INVALID:
Raptor.msg.show(1, Raptor.getTag('invalidform'));
break;
case Ext.form.action.Action.CONNECT_FAILURE:
Raptor.msg.show(3, 'Ajax communication failed');
break;
}
if (action.result && action.result.cod) {
Raptor.msg.show(action.result.cod, action.result.msg);
}
},
scope: this
});
},
update:function(form,url){
var idaction=this.getGenericlist().getSelectionModel().getLastSelected().get('id');
form.submit({
url: url,
waitMsg: Raptor.getTag('waitmsg'),
params:{idaction: idaction},
success: function(formBasic, action) {
form.up('window').close();
this.getGenericlist().getSelectionModel().deselectAll();
Raptor.msg.show(action.result.cod, action.result.msg);
this.getGenericlist().getStore().load();
},
failure: function(formBasic, action) {
switch (action.failureType) {
case Ext.form.action.Action.CLIENT_INVALID:
Raptor.msg.show(1, Raptor.getTag('invalidform'));
break;
case Ext.form.action.Action.CONNECT_FAILURE:
Raptor.msg.show(3, 'Ajax communication failed');
break;
}
if (action.result && action.result.cod) {
Raptor.msg.show(action.result.cod, action.result.msg);
}
},
scope: this
});
},
deleteAction: function() {
var model=this.getGenericlist().getSelectionModel().getLastSelected();
var wait=Raptor.msg.show(4,'wait please..');
Ext.Ajax.request({
url: 'action/delete',
params:{idaction: model.get('id')},
callback: function() {
wait.close();
this.getGenericlist().getSelectionModel().deselectAll();
},
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
Raptor.msg.show(obj.cod, obj.msg);
if(obj.cod&&obj.cod==1){
this.getGenericlist().getStore().load();
}
},
failure: function(response, opts) {
Raptor.msg.show(3,'server-side failure with status code ' + response.status);
},
scope: this
});
}
});
|