Изменить фон какого-либо элемента CalendarItem в Lift / Scala

3

Я пытаюсь использовать виджеты Lift и CalendarMonthView для создания система назначения.

CalendarMonthView работает с Lift очень хорошо, но у меня есть проблема, которая не удалось изменить стиль некоторого CalendarItem, отображаемого на календарь.

В соответствии с документом API я использую следующий код, чтобы изменить css-класс определенного CalendarItem при создании календаря.

class MySnippet {
    def test (xhtml: NodeSeq) = {
        val c    = Calendar.getInstance
        val meta = MonthViewMeta (Calendar.SUNDAY, Locale.getDefault)

        c.set (2010, 0, 0)

        bind ("cal", xhtml, 
              "widget" -> CalendarMonthView (c, meta, cals, Empty, 
                                             Empty, Empty))
    }

    def cals = {
        val c1 = Calendar.getInstance
        val c2 = Calendar.getInstance

        c1.set (2010, 0, 5, 10, 0)
        c2.set (2010, 0, 6, 10, 0)

        val calitem1 = CalendarItem ("4", c1, CalendarType.MEETING).
                       optional (
                           _.subject     ("Red Item"),
                           _.description ("Background should be read")
                       )

        val calitem2 = CalendarItem ("5", c2, CalendarType.MEETING).
                       optional (
                           _.subject     ("Green Item"),
                           _.description ("Background should be green"),
                           _.baseCSSClassName ("greenItem")
                       )


        List (calitem1, calitem2)
    }

}

И я подтвердил, что в выходном HTML calitem2 имеет "cssClass", атрибут установлен на "greenItem".

var calendars = {
    "items": [{"id": "4", "start": 20, "end": 48,
               "weekDay": "3", "startTime": "10:0",              
               "subject": "Red Item", "month": 0, "dayOfMonth": 5,              
               "description": "Background should be read"},
              {"id": "5", "start": 20, "end": 48, "weekDay": "4", 
               "startTime": "10:0", "subject": "Green Item", "month": 0, 
               "dayOfMonth": 6, "description": "Background should be green", 
               "cssClass": "greenItem"}]
};             

И я также переопределяю оригинальный стиль. css поставляется с CalendarMonthView и помещаем его под WEB-INF/classes/toserv/calendars/monthview.

Я просматриваю его и удостоверяюсь, что это моя модифицированная версия, которая добавляет следующие классы CSS "greenItem".

.greenItem {
        margin: 1px;

}

.greenItem a {
        margin-left: 1px;
        color: #FFFFFF;
        text-decoration: none;
        background-color: #00FF00;
        display: block;

}

.greenItem a:hover {
        text-decoration: none;
        background-color: #ff6655;
        display: block;

}

.greenItemHead {
        margin: 1px;

}

.greenItemHead a {
        margin-left: 1px;
        color: #FFFFFF;
        text-decoration: none;
        background-color: #00FF00;
        display: block;

}

.greenItemHead a:hover {
        text-decoration: none;
        background-color: #ff6655;
        display: block;

}

.greenItemBody {
        margin: 1px;

}

.greenItemBody a {
        margin-left: 1px;
        color: #FFFFFF;
        text-decoration: none;
        background-color: #00FF00;
        display: block;

}

.greenItemBody a:hover {
        text-decoration: none;
        background-color: #ff6655;
        display: block;
}

Но когда я просматриваю страницу своего календаря, второй CalendarItem по-прежнему на красном фоне, кажется, что класс CSS не работает.

Я не знаком с JavaScript и JQuery, так что я что-то пропущу?

Теги:
lift

1 ответ

1
Лучший ответ

ОК, я обнаружил, что это вызвано ошибкой в ​​модуле виджетов календаря.

Итак, я записал билет и создал патч на трекере.

https://www.assembla.com/spaces/liftweb/tickets/563

Ещё вопросы

Сообщество Overcoder
Наверх
Меню