Jquery FullCalendar 2 недели просмотра кнопки «Далее» - PullRequest
1 голос
/ 14 марта 2012

Я реализовал двухнедельное представление, обозначенное здесь , и мне было интересно, если кто-нибудь может сказать мне, как / где изменить кнопки «предыдущий / следующий», чтобы переместить календарь только на 2 недели вместо следующего месяца ? Не уверен, где обновить fullcalendar.js.

1 Ответ

6 голосов
/ 19 марта 2012

Разобрался. Проблема заключалась в том, что решение, которое я использовал, было основано на представлении месяца, когда, вероятно, оно должно было основываться на представлении недели.

сначала убедитесь, что вся информация для представления указана в значениях по умолчанию

// time formats
titleFormat: {
    month: 'MMMM yyyy',
    twoweek: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
    week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}",
    day: 'dddd, MMM d, yyyy'
},
columnFormat: {
    month: 'ddd',
    twoweek: 'ddd',
    week: 'ddd M/d',
    day: 'dddd M/d'
},

.

buttonText: {
    prev: ' ◄ ',
    next: ' ► ',
    prevYear: ' << ',
    nextYear: ' >> ',
    today: 'today',
    month: 'month',
    twoweek: '2 week',
    week: 'week',
    day: 'day',
    resourceDay: 'designers'
},

и вот мой код для двухнедельного просмотра

fcViews.twoweek = TwoWeeksView;

function TwoWeeksView(element, calendar) {
var t = this;

// exports
t.render = render;


// imports
BasicView.call(t, element, calendar, 'twoweek');
var opt = t.opt;
var renderBasic = t.renderBasic;
var formatDates = calendar.formatDates;



function render(date, delta) {
    if (delta) {
        addDays(date, delta*7);
    }
    var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7));
    var end = addDays(cloneDate(start), 7*2);
    var visStart = cloneDate(start);
    var visEnd = cloneDate(end);
    var weekends = opt('weekends');
    if (!weekends) {
        skipWeekend(visStart);
        skipWeekend(visEnd, -1, true);
    }

    t.title = formatDates(
        visStart, 
        addDays(cloneDate(visEnd), -1), 
        opt('titleFormat')
    );
    t.start = start;
    t.end = end;
    t.visStart = visStart;
    t.visEnd = visEnd;
    renderBasic(2, 2, weekends ? 7 : 5, true);
}

}

ключевое отличие здесь в последней строке: renderBasic (2,2, выходные? 7: 5, true);

если вы не обновляете информацию о представлении по умолчанию, параметр в formatdates не определен и возникают проблемы. Существуют некоторые различия между представлением недели и представлением месяца, которые делают лучше использование двухнедельного представления недели. Это становится чем-то вроде смеси двух. Надеюсь, что это поможет любому, кто ищет полное двухнедельное исправление.

звоните так:

 $('#calendar').fullCalendar({
        header: {
            left:'prev, next',
            center: 'title',
            right: 'twoweek'
        },
        defaultView: 'twoweek',
        weekMode:'fixed'
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...