Как отключить прошедшие дни в календаре ZK? - PullRequest
0 голосов
/ 27 апреля 2020

Я использую ZK CE-9.0.0 & zk-calendar-2.1.5 исходный код .

В настоящее время в календаре включены все дни.

Мне нужно отключить прошедшие дни (выделено серым цветом и отсутствие щелчка) из всех представлений (день / неделя / месяц), но я не могу найти такую ​​функцию, доступную напрямую.

Может ли кто-нибудь помочь? мне с этим, пожалуйста?

Спасибо,

РАН

1 Ответ

1 голос
/ 27 апреля 2020

Я не думаю, что есть такая функция.

Обходной путь - отключить щелчок события в прошлые дни и изменить цвет.

1. Поймать клики в вашем контроллере:

@Wire("#course-calendar")
private Calendars courseCalendar;

@Listen("onEventCreate = #course-calendar")
public void clickCreateEvent(CalendarsEvent event) {
    if (event.getBeginDate().before(new Date())) {
        // disable click if event is before now
    } else {
        //do something on event create
    }
}

@Listen("onEventEdit = #course-calendar")
public void clickEditEvent(CalendarsEvent event) {
    if (event.getBeginDate().before(new Date())) {
        // disable click if event is before now
    } else {
        // do something on event edit
    }
}
Затенение событий при создании события:
for (MyEvent me : myManager.getEvents()) {
    final SimpleCalendarEvent simpleCalendarEvent = new SimpleCalendarEvent();

    // set grey color event before now
    if (me.startDate < new Date()) {
        simpleCalendarEvent.setContentColor("#aaaaaa");
        simpleCalendarEvent.setHeaderColor("#aaaaaa");
        simpleCalendarEvent.setLocked(true);
    } else {
        simpleCalendarEvent.setContentColor("#4363d8");
        simpleCalendarEvent.setHeaderColor("#4363d8");
        simpleCalendarEvent.setLocked(false);
    }

    simpleCalendarEvent.setContent(me.getContent());
    simpleCalendarEvent.setBeginDate(me.startDate);
    simpleCalendarEvent.setEndDate(me.endDate);
    simpleCalendarEvent.setTitle(me.getTitle());

    getSimpleCalendarModel().add(simpleCalendarEvent);
}
...