人々のスケジュールを追跡するためにextjs4.1.1カレンダー(スケジューラー)を使用していますが、個人の予約時間枠を制限する方法がわからないため、問題が発生する可能性があります
例。
ユーザーAは、月曜日から水曜日の午後3時から午後4時の間にスロットを予約できます。
ユーザーB月曜日と土曜日の午前1時から午前5時の間にスロットを予約できます
人々のスケジュールを追跡するためにextjs4.1.1カレンダー(スケジューラー)を使用していますが、個人の予約時間枠を制限する方法がわからないため、問題が発生する可能性があります
例。
ユーザーAは、月曜日から水曜日の午後3時から午後4時の間にスロットを予約できます。
ユーザーB月曜日と土曜日の午前1時から午前5時の間にスロットを予約できます
これは実際に作業したいよりも複雑かもしれませんが、アプリでこれを行う必要がありました。これを行う唯一の実際の方法は、Extensible.calendar.dd.DropZoneクラスをオーバーライドし、onNodeOverメソッドを独自のメソッドで上書きすることです。ロジック、Extjsをよく理解してください:):
Ext.override("Extensible.calendar.dd.DropZone", {
onNodeOver : function(n, dd, e, data){
//change anything in this logic with the logic you want....
//but preferrably, don't change anything and use callOverridden and then add your stuff as extras
var D = Extensible.Date,
start = data.type == 'eventdrag' ? n.date : D.min(data.start, n.date),
end = data.type == 'eventdrag' ? D.add(n.date, {days: D.diffDays(data.eventStart, data.eventEnd)}) :
D.max(data.start, n.date);
if(!this.dragStartDate || !this.dragEndDate || (D.diffDays(start, this.dragStartDate) != 0) || (D.diffDays(end, this.dragEndDate) != 0)){
this.dragStartDate = start;
this.dragEndDate = D.add(end, {days: 1, millis: -1, clearTime: true});
this.shim(start, end);
var range = Ext.Date.format(start, this.dateFormat);
if(D.diffDays(start, end) > 0){
end = Ext.Date.format(end, this.dateFormat);
range = Ext.String.format(this.dateRangeFormat, range, end);
}
var msg = Ext.String.format(data.type == 'eventdrag' ? this.moveText : this.createText, range);
data.proxy.updateMsg(msg);
}
return this.dropAllowed;
}
});