TamCalendar jquery eklentisini kullanıyorum.FullCalendar AgendaDay görünümündeki olayların sırasını değiştirme
Olaylarımı gündemde tutmaya çalışıyorum Günün görünümü, başlangıç saatine göre soldan sağa doğru görünür.
Esasen, olayların yığınlanmasını kaldırmak istiyorum, bu nedenle 9-11 arasındaki bir olay, bunun yerine 12-4 arasında bir etkinliğin yanında görünecektir.
Olayların sıralanmasıyla ilişkili birkaç işlev var gibi görünüyor.
function segCmp(a, b) {
var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
if (tryCmp == 0)
return (a.event.rowId - b.event.rowId);
return tryCmp;
}
function segsCollide(seg1, seg2) {
return seg1.end > seg2.start && seg1.start < seg2.end;
}
// event rendering utilities
function sliceSegs(events, visEventEnds, start, end) {
var segs = [],
i, len=events.length, event,
eventStart, eventEnd,
segStart, segEnd,
isStart, isEnd;
for (i=0; i<len; i++) {
event = events[i];
eventStart = event.start;
eventEnd = visEventEnds[i];
if (eventEnd > start && eventStart < end) {
if (eventStart < start) {
segStart = cloneDate(start);
isStart = false;
}else{
segStart = eventStart;
isStart = true;
}
if (eventEnd > end) {
segEnd = cloneDate(end);
isEnd = false;
}else{
segEnd = eventEnd;
isEnd = true;
}
segs.push({
event: event,
start: segStart,
end: segEnd,
isStart: isStart,
isEnd: isEnd,
msLength: segEnd - segStart
});
}
}
return segs.sort(segCmp);
}
// event rendering calculation utilities
function stackSegs(segs) {
var levels = [],
i, len = segs.length, seg,
j, collide, k;
for (i=0; i<len; i++) {
seg = segs[i];
j = 0; // the level index where seg should belong
while (true) {
collide = false;
if (levels[j]) {
for (k=0; k<levels[j].length; k++) {
if (segsCollide(levels[j][k], seg)) {
collide = true;
break;
}
}
}
if (collide) {
j++;
}else{
break;
}
}
if (levels[j]) {
levels[j].push(seg);
}else{
levels[j] = [seg];
}
}
return levels;
}
Herhangi bir düşünce?
Bunun için bir jsfiddle oluşturabilir misiniz? Bir soru, bir gündemde Günün günlerini görmek günün dikey olarak sola ve olaylar birbirinin altına gelir. Ama olayların soldan sağa sonra bir tane olmasını istiyorsun, o zaman da zamanı yatay olarak değiştirmek zorundasın. Anlayışım doğru mu, yoksa hiç bir noktayı kaçırmıyorum? –