2011-06-21 71 views
14

FullCalendarの月表示で現在の週と次の週のみを表示する方法を探していました。これまでのバージョンでは機能として提案されたようですが、その間に誰かがハックすることができましたか?終末の提案にjQuery FullCalendarで2週間を表示

UPDATE

おかげで、私は現在の週に開始し、2週間を示してカスタムビューを作成することができました。あなたは、今日の日付に見える開始日を変更し、2つのカレンダー、週間後と現在の週と1、および他を表示するようになります。2.

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

// exports 
t.render = render; 


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



function render(date, delta) { 
    if (delta) { 
     addMonths(date, delta); 
     date.setDate(1); 
    } 
    var start = cloneDate(date, true); 
    start.setDate(1); 
    var end = addMonths(cloneDate(start), 1); 

    //var visStart = cloneDate(start); 
    var visStart = date; 

    var visEnd = cloneDate(end); 
    var firstDay = opt('firstDay'); 
    var nwe = opt('weekends') ? 0 : 1; 
    if (nwe) { 
     skipWeekend(visStart); 
     skipWeekend(visEnd, -1, true); 
    } 

    addDays(visStart, -((visStart.getDay() - Math.max(firstDay, nwe) + 7) % 7)); 
    addDays(visEnd, (7 - visEnd.getDay() + Math.max(firstDay, nwe)) % 7); 
    var rowCnt = Math.round((visEnd - visStart)/(DAY_MS * 7)); 

    if (opt('weekMode') == 'fixed') { 
     addDays(visEnd, (6 - rowCnt) * 7); 
     //rowCnt = 6; 
     rowCnt = 2; 
    } 
    t.title = formatDate(start, opt('titleFormat')); 
    t.start = start; 
    t.end = end; 
    t.visStart = visStart; 
    t.visEnd = visEnd; 
    renderBasic(6, rowCnt, nwe ? 5 : 7, true); 
} 
} 
+0

このソリューションの[jsFiddle](http://www.jsfiddle.net)を作成する可能性はありますか?これは私が今やろうとしていることとまったく同じですが、うまく動作することはできません。 – Michael

+1

@Michael私はこれが私のために働いている。この正確な解決策も必要でした。これはおそらくもう少し遅いかもしれませんが、ここで気づいた大きな点は、fcViewsオブジェクトがtwoweekビューで更新されていないことです。 追加する必要があります: 'fcViews.twoweek = TweoweekView; 関数TwoweekView(要素、カレンダー){' – Eric

答えて

8

最善の解決策は、それはあなたのカスタムビューを実装することです。新しいJS独自の定義されたビューに入れ

$.fullCalendar.views.twoweeks = TwoWeeksView; 
function TwoWeeksView(element, calendar) { 
    // copy code from fullcalendar.js line 1960 
} 
+0

あなたは絶対に正しいですが、矢印を次の2週間にスキップして作業したい場合は、コードを追加する必要があります(または、2週間のカレンダー。) つまり、これはJqueryFullCalendarの追加のビューを作成するために必要なアプローチです。完成したカレンダーを操作するためにJQueryを使用して時間を無駄にしないでください。 – Eric

+0

これはv2.2.5 + –

+0

で動作しなくなりました。オプションで簡単に行うために、新しいバージョンのドキュメントをご覧ください。 –

1

回答に行数を変更しています。

私はあなたが私がこのフィドルに何をやったかハックすることをお勧め:http://jsfiddle.net/Doomsday/M3YP3/1/

+0

本当に私が行ったことはありません。私は、Basecampがダッシュボードでどのように行うのかと同様に、2週間しか表示しない月ビューが必要です。 http://i.imgur.com/tJRWi.png – roflwaffle

+0

申し訳ありませんが、「月間表示」は読んでいませんでした。助けがあれば私の別の答えを見てください。 – Doomsday

0

の詳細についてはこちらを参照してください。最新バージョンでは(それも容易になりますv2.2.6)

また、カスタムtwoweekビューがある場合、このgitをチェックアウトすることもできます。これは1週間移動します。次の/ prevボタンを使って一度に1つずつ設定します)。

https://github.com/marc-gist/fullcalendar

編集:要旨はもはやfullcalendarの他のバージョンで動作しないようです。オプション値を使って簡単な週表示を設定するためのドキュメントを見てください。そこ

$('#calendar').fullCalendar({ 
     views: { 
      basicWeek: { 
       type: 'basic', 
       duration: {weeks: 2}, 
       rows: 2 
      } 
     } 
    } 

+0

あなたが言及したカスタムtwoweekビューはどこですか? –

+0

ドキュメントを読む:http://fullcalendar.io/docs/views/Custom_Views/ –

5

fullCalendar 2のための適切な答えは、マニュアルに記載されているようbasicWeekビューを変更することです。シンプル:)

+0

私はこの解決策のための日を探していました。これは使用するものです。 –

関連する問題