Как установить стандарт и конец панели в 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.

Я пытался это сделать. но я получаю начальную и конечную дату в своей функции "Предварительный просмотр окна" после загрузки панели, поэтому мои начальная и конечная даты являются статическими.

пожалуйста, предложите мне какое-нибудь решение, которое я могу попытаться решить мою ошибку в ближайшее время.

0 ответов

Другие вопросы по тегам