Как установить стандарт и конец панели в extjs 4
У меня есть проблема с настройкой начальной и конечной даты проекта на панели.
У меня есть одно окно, которое содержит панель в нем. Ниже мое окно
Ext.define('rms.view.projectmgt.taskAdd' ,{
extend: 'Ext.Window',
alias : 'widget.taskaddwindow',
requires: ['rms.view.projectmgt.taskPanel'],
id: 'taskaddwindow',
title: 'Project Management',
width: '85%',
height: '85%',
closeAction: 'destroy',
closable : true,
modal: true,
//maximized: true,
constrain: true,
maximizable: true,
stateful: false,
projectid: null, // this will be set before showing window
layout: 'border',
onEsc: function() {
var me = this;
Ext.Msg.confirm(
'Closing confirmation',
'YOU REALLY WANTS TO EXIT ?',
function(btn) {
if (btn == 'yes')
me.destroy();
}
);
},
initComponent: function() {
this.layoutConfig = {
align: 'stretch'
};
this.items = [
{
region: 'center',
xtype: 'taskpanel',
width: '85%',
height: '85%'
}
];
this.on({
scope: this,
beforeshow: this.onBeforeShow
});
this.callParent(arguments);
},
onBeforeShow: function() {
//var projectId = this.projectid;
var projectid = this.projectid;
console.log('BEFOR SHOW 1::'+projectid);
if(projectid != null) {
var store = Ext.data.StoreManager.lookup('task');
store.load({
params: {'projectid':this.projectid},
callback: function(records, operation, success) {
var taskpanel = Ext.create('rms.view.projectmgt.taskPanel');
console.log("HELLO "+operation.response.responseText);
var sc_val = Ext.decode(operation.response.responseText);
var data = sc_val.taskdata;
console.log("STARTDATE "+data[0].startdate);
console.log("ENDDATE "+data[0].enddate);
var start_d = new Date(data[0].startdate);
var end_d = new Date(data[0].enddate);
var startdate = new Date(start_d.getFullYear(), start_d.getMonth(), start_d.getDate());
enddate = Sch.util.Date.add(startdate, Sch.util.Date.MONTH, 30);
taskpanel.startDate = startdate;
taskpanel.endDate = enddate;
taskpanel.result =data;
console.log('TASKPANE DATA '+taskpanel.endDate);
console.log('TASKPANE DATA '+taskpanel.startDate);
console.log('TASKPANE DATA '+taskpanel.result);
}
});
}
}
});
и на основе данных панели проекта извлекаются и отображаются на панели. В моей панели у меня есть событие beforeload, которое проверяет, является ли projectid нулевым или нет. Если он не равен NULL, запрос отправляется на сервер, и тогда представление доступно.
ниже мое событие beforeload в моей панели.
var result = Ext.JSON.decode('{"calendardata": [{"startdate": 1330281000000,"enddate": 1330284600000,"id": 3,"title": "mon"}],"total": 1,"success": true}');
var start_d = new Date(result.calendardata[0].startdate);
var end_d = new Date(result.calendardata[0].enddate);
var start = new Date(start_d.getFullYear(), start_d.getMonth(), start_d.getDate());
end = Sch.util.Date.add(start, Sch.util.Date.MONTH, 30);
Ext.define('rms.view.projectmgt.taskPanel', {
extend: "Gnt.panel.Gantt",
id: 'taskpanel',
alias: 'widget.taskpanel',
requires: ['Gnt.plugin.TaskContextMenu', 'Gnt.column.StartDate', 'Gnt.column.EndDate', 'Gnt.column.Duration', 'Gnt.column.PercentDone', 'Gnt.column.ResourceAssignment', 'Sch.plugin.TreeCellEditing', 'Sch.plugin.Pan'],
leftLabelField: 'Name',
loadMask: true,
//width: '100%',
// height: '98%',
startDate: null,
endDate: null,
multiSelect: true,
cascadeChanges: true,
viewPreset: 'weekAndDayLetter',
recalculateParents: false,
showTodayLine: true,
showBaseline: true,
initComponent: function() {
var me = this;
me.on({
scope: me,
beforeload: function(store, operation, options) {
console.log('BEFORE LOAD YAAR panel' + operation.params);
console.log('BEFORE LOAD YAAR panel PROJECTID ' + operation.params['projectid']);
console.log('manual load ' + operation);
console.log(operation.params);
console.log('proxy defined params ' + store.proxy.read);
console.log(store.proxy.extraParams);
if (operation.params['projectid'] != null) {
return true;
} else {
return false;
}
}
});
но моя панель содержит startdate и enddate как статические значения, но я хочу установить их на основе ответа сервера startdate и enddate.
Я пытался это сделать. но я получаю начальную и конечную дату в своей функции "Предварительный просмотр окна" после загрузки панели, поэтому мои начальная и конечная даты являются статическими.
пожалуйста, предложите мне какое-нибудь решение, которое я могу попытаться решить мою ошибку в ближайшее время.