Code:
Ext.define('GestioneDocumenti.Web.controller.controllerDocumentoCartaIdentita', { extend: 'Ext.app.Controller',
views: [
'find.findViewDocumentoCartaIdentita',
'edit.editViewDocumentoCartaIdentita'
],
models: [
'DocumentoCartaIdentita',
'Allegato'
],
init: function () {
this.control({
'editViewDocumentoCartaIdentita': {
render: this.onPanelRendered
},
'editViewDocumentoCartaIdentita button[action=save]': {
click: this.executeSave
},
'editViewDocumentoCartaIdentita button[action=undo]': {
click: this.executeUndo
},
'editViewDocumentoCartaIdentita button[action=delete]': {
click: this.executeDelete
},
'findViewDocumentoCartaIdentita button[action=search]': {
click: this.executeSearch
},
'findViewDocumentoCartaIdentita button[action=undosearch]': {
click: this.executeUndoSearch
},
'findViewDocumentoCartaIdentita grid': {
itemdblclick: this.load
}
});
},
onPanelRendered: function () {
},
executeSave: function (button, event, eOpts) {
try {
var form = button.up('panel').up('panel').down('form').getForm();
var record = form.getRecord();
var fields = form.getValues();
record.set(fields);
var storeAllegati = button.up('panel').up('panel').down('grid').getStore();
record.data.Allegati = [];
for (var index in storeAllegati.getRange()) {
var allegato = storeAllegati.getRange()[index];
record.data.Allegati[index] = allegato.data;
}
if (!form.isValid()) {
Ext.Msg.alert("", "La form contiene campi non validi");
return;
}
if (!modelValidatorHelper.validate(record, form))
return;
GestioneDocumenti.Service.IDocumentoCartaIdentitaService.SaveDocumentoCartaIdentita(securityHelper.getLoginToken(), record.data, serviceHelper.successSaveStandard, serviceHelper.failureStandard, applicationInstance.getController('controllerDocumentoCartaIdentita'));
}
catch (e) {
logHelper.log(e);
}
},
executeUndo: function (button, event, eOpts) {
try {
var form = button.up('panel').up('panel').down('form').getForm();
form.reset();
var workspace = button.up('tabpanel');
if (workspace != undefined)
workspace.remove(workspace.getActiveTab());
}
catch (e) {
logHelper.log(e);
}
},
executeDelete: function (button, event, eOpts) {
try {
var form = button.up('panel').up('panel').down('form').getForm();
var record = form.getRecord();
var fields = form.getValues();
GestioneDocumenti.Service.IDocumentoCartaIdentitaService.DeleteDocumentoCartaIdentita(securityHelper.getLoginToken(), record.data.Id, serviceHelper.successDeleteStandard, serviceHelper.failureStandard, button);
}
catch (e) {
logHelper.log(e);
}
},
executeSearch: function (button, event, eOpts) {
try {
var form = button.up('form').getForm();
var model = Ext.ModelMgr.getModel('GestioneDocumenti.Web.model.DocumentoCartaIdentita');
var modelInstance = new model(form.getValues());
var resultList = button.up('panel').up('panel').down('grid');
resultList.store.getProxy().extraParams['filter'] = Ext.JSON.encode(modelInstance.data);
resultList.store.load();
}
catch (e) {
logHelper.log(e);
}
},
executeUndoSearch: function (button, event, eOpts) {
try {
var form = button.up('form').getForm();
form.reset();
}
catch (e) {
logHelper.log(e);
}
},
load: function (grid, record, item, index, e, eOpts) {
try {
GestioneDocumenti.Service.IDocumentoCartaIdentitaService.GetDocumentoCartaIdentita(securityHelper.getLoginToken(), record.data.Id, this.succeededLoad, serviceHelper.failureStandard, null);
}
catch (e) {
logHelper.log(e);
}
},
succeededLoad: function (data) {
try {
var model = Ext.ModelManager.getModel('GestioneDocumenti.Web.model.DocumentoCartaIdentita');
var modelInstance = new model(data);
var name = "CI: " + modelInstance.data.Nome + " " + modelInstance.data.Cognome;
var control = Ext.create('GestioneDocumenti.Web.view.edit.editViewDocumentoCartaIdentita');
control.down('form').loadRecord(modelInstance);
var allegatiGrid = control.down('grid');
var modelAllegato = Ext.ModelMgr.getModel('GestioneDocumenti.Web.model.Allegato');
for (var index in modelInstance.data.Allegati) {
var allegato = new modelAllegato(modelInstance.data.Allegati[index]);
allegato.data.AllegatoKind = "gniria";
allegatiGrid.getStore().add(allegato);
}
applicationInstance.getController('app').addWorkspace(control, name);
}
catch (e) {
logHelper.log(e);
}
},
succeededReload: function (data) {
try {
var workspace = Ext.getCmp("tabWorkspace");
if (workspace != undefined)
workspace.remove(workspace.getActiveTab());
this.succeededLoad(data);
}
catch (e) {
logHelper.log(e);
}
}
});
Thank you.