Я поэкспериментировал с AlloyUI Scheduler, и мне кажется, что это лучший календарь из существующих. Пока ковырял, возникло несколько вопросов. У меня нет особого опыта работы с YUI, поэтому мои вопросы могут быть вызваны отсутствием опыта мышления, характерного для YUI. Тем не менее, вот проблемы, которые мне не удалось преодолеть:
Сначала я попробовал загрузить в него 500+ событий, и в результате каждое действие (добавление событий, удаление событий, переключение между представлениями, переключение между неделями/месяцами) происходит с задержкой. Ожидается ли это? 500 событий — это немного, даже за относительно короткий период.
Могу ли я ограничить часы, отображаемые в представлении «День» или «Месяц»? То есть вместо 00:00 - 23:59 я бы предпочел отображать только 08:00 - 17:59.
Мне удалось перевести элементы пользовательского интерфейса, такие как «Сегодня», «День», «Неделя», «Месяц», «Повестка дня», «Удалить», «Сохранить», «Отменить», «например, Ужин в Брайана». Но как я могу перевести дни (например, «понедельник», «вторник» и т. д.)?
Я нашел способ заменить кнопки по умолчанию на панели инструментов EventRecorder. Но есть ли способ сохранить исходные («Сохранить», «Отменить», «Удалить») и добавить несколько пользовательских?
var eventRecorder = new Y.SchedulerEventRecorder({ toolbar: { children: [ [ { label: 'Details', on: { click: function () { alert("Yeah!"); } } }, ] ] } });
Есть ли способ отключить некоторые периоды времени для создания события? Я полагаю, что этого можно было бы добиться, каким-то образом прервав создание события. Что-то в строчках
scheduler.on({ 'scheduler-events:add': function (event) { return isEventAllowed(); } });
Каков правильный способ доступа к данным событий календаря в случае таких событий, как «событие-планировщик:изменить», «рекордер-события-планировщика:изменить» или подобных? В настоящее время я использую
scheduler.getEvents()[event.index]._state.data
иeventRecorder.getUpdatedSchedulerEvent()._state.data
соответственно. Но пользоваться этими запахами смешно.Какой рекомендуемый способ добавления подробного представления редактирования для событий? В настоящее время я взломал его чем-то вроде строк
scheduler.on({ 'scheduler-base:click': function(event) { var toolbar = $(".aui-scheduler-event-recorder-overlay .yui3-widget-ft .aui-toolbar-content .aui-btn-group"); if (!toolbar.data("custom-processed")) { var button = $('<button class="aui-btn">Details</button>'); toolbar.append(button); button.click(function (event) { event.preventDefault(); var eventData = (eventRecorder.get("event") || eventRecorder.clone())._state.data; // Creating my detailed editing window here $(".aui-scheduler-event-recorder-overlay").addClass("yui3-overlay-hidden"); }); toolbar.data("custom-processed", true); } } });
Спасибо,
Scheduler
(ответ #3) здесь. - person stiemannkj1   schedule 27.09.2017ScheduleEventRecorder
save
событие сEvent.halt()
, чтобы предотвратить сохранение событий в определенное время. Что-то вроде этого должно работать:eventRecorder: new Y.SchedulerEventRecorder({ on: { save: function(event) { if (!isEventAllowed()) { this.hidePopover(); alert('An event cannot be scheduled at that time.'); event.halt(); } } }
- person stiemannkj1   schedule 27.09.2017