Просмотр событий в FullCalendar, упорядоченных по идентификатору события вместо начальной отметки времени - PullRequest
0 голосов
/ 27 декабря 2010

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

Возможно ли это? И если да, то как мне изменить код для отображения событий таким образом?

Ответы [ 4 ]

1 голос
/ 07 ноября 2012

Отличное решение! Я использовал его и адаптировал для своих нужд. Я использую каналы JSON.

Важно: первое условие - убедиться, что все события отсортированы по дате начала.

Тогда, если вы хотите отсортировать по названию:

function segCmp(a, b) {
   var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
   if (tryCmp == 0) {
            return (a.event.title.toLowerCase() >= b.event.title.toLowerCase()) ? 1: 0;
    }
   return tryCmp;
}

Я тоже использовал это по-другому. Я добавил пользовательский атрибут для каждого события фида JSON под названием «colOrder» (это может быть что угодно) и дал ему целочисленные значения (1,2,3 ...). 1 для первого события, которое я хочу увидеть, 2 для второго ...

Затем я настроил функцию для использования атрибута colOrder для сортировки событий.

function segCmp(a, b) {
   var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
   if (tryCmp == 0) {
    if (!isNaN(a.event.colOrder) && !isNaN(b.event.colOrder))
            return (a.event.colOrder - b.event.colOrder);
    }
   return tryCmp;
}
0 голосов
/ 31 декабря 2010

нет простого способа сделать это, но когда эта проблема будет реализована, должно быть легко: http://code.google.com/p/fullcalendar/issues/detail?id=364

0 голосов
/ 18 мая 2011

Давно со времени последнего поста, но на всякий случай кому-то это нужно (как и мне):

изменить в fullcalendar.js

function segCmp(a, b) {
    return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}

до

function segCmp(a, b) {
   var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
   if (tryCmp == 0)
      return (a.event.id - b.event.id);
   return tryCmp;
}

у меня сработало

0 голосов
/ 27 декабря 2010

Добавьте ORDER BY id ASC к вашему запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...