планировщик bryntum устанавливает дату и время начала - PullRequest
0 голосов
/ 27 февраля 2019

Мы разрабатываем приложение в Extjs с помощью планировщика (bryntum).Планировщик имеет следующую конструкцию:

processTimelineViewScheduler: function(config) {
    var me = this;
    var startDate = new Date();
    var endDate = new Date();

    var cinema =        MiscFunctions.getCinema();
    var scheduleStart = cinema.schedulestart; // 06:00
    var scheduleEnd =   cinema.scheduleend; // 05:59

    var partstart =    scheduleStart.split(":");
    var startHours =   partstart[0];
    var startMinutes = partstart[1];

    var partend =    scheduleEnd.split(":");
    var endHours =   partend[0];
    var endMinutes = partend[1];

    startDate.setHours(startHours);
    startDate.setMinutes(startMinutes);
    startDate.setSeconds(0);

    endDate.setHours(endHours);
    endDate.setMinutes(endMinutes);
    endDate.setSeconds(0);

    if (endDate.getTime() <= startDate.getTime()) {
        endDate = Ext.Date.add(endDate, Ext.Date.DAY, 1);
    }

       Sch.preset.Manager.registerPreset("myHourAndDay", {
        displayDateFormat : 'G:i',
        shiftIncrement    : 1,
        shiftUnit         : 'HOUR',
        timeRowHeight     : 75,
        timeResolution    : {
            // Here we use Sch.util.Date.MINUTE constant value
            unit      : Sch.util.Date.MINUTE,
            increment : 5
        },
        headerConfig : {
            middle : {
                // and here we use the last fraction Sch.util.Date.HOUR constant name
                unit       : 'HOUR',
                dateFormat : 'G:i'
            }
        }
    });
    return Ext.apply(config, {
        columns    : [{
            sortable: true,
            width: 100,
            dataIndex: 'Name',
            flex: 1
        }],
        split: false,
        readOnly:                !MiscFunctions.hasRight('SHOW_WRITE'),
        enableDragCreation:      false,
        viewPreset:              {
            name: 'myHourAndDay',
            timeColumnWidth: 100,
        },
        highlightWeekends:       false,
        mode:                    'horizontal',
        startDate:               startDate,
        endDate:                 endDate,
        weekStartDay:            3,
        showTodayLine:           true,
        rowHeight:               65,
        constrainDragToResource: false,
        snapToIncrement:         true,
        eventResizeHandles:      'none',
        eventBarTextField:       'Title',
        crudManager:             this.getCrudManager(),

    });
}

переменные scheduleStart и scheduleEnd могут принимать значения 10:00 и 09:59 (на следующий день).

Планировщик произвольно устанавливает время начала и окончаниявремя в представлении (например, с 21:00 до 21:00).

Если переменные scheduleStart и scheduleEnd имеют значение 06:00 и 05:59 на следующий день, даты и время начала и окончания являются правильными ввид.

...