Сообщения в Scheduler используются для информирования пользователей об ошибках, подтверждения или отклонения действий, выбора опций и т.д. Сообщения Scheduler основаны на форке репозитория dhtmlxMessage, поэтому все возможности dhtmlxMessage доступны и для сообщений dhtmlxScheduler.
Существует две основные категории сообщений: простое всплывающее сообщение и модальное сообщение с кнопками, блокирующее взаимодействие с приложением.
Модальное окно может быть одного из трёх типов:
Для отображения простого модального окна используйте метод scheduler.message. Единственный обязательный параметр — текст сообщения:
scheduler.message("The event is updated");
Существует три вида всплывающих окон:
Чтобы создать определённый тип окна, задайте свойство type с соответствующим значением:
// создание окна с ошибкой
scheduler.message({
text: "Click on the buttons to explore Scheduler message types",
expire: -1,
type: "error"
});
Related sample: Different types of popups and modal boxes
Для кастомизации внешнего вида окна укажите CSS-класс через параметр type, как описано здесь.
По умолчанию всплывающие окна появляются в правом верхнем углу окна. В отличие от модальных окон, они не блокируют взаимодействие с приложением. Позицию можно изменить с помощью свойства scheduler.message.position:
scheduler.message.position = 'bottom';
Возможные значения позиции сообщения:
Вы можете управлять временем отображения окна, задав параметр expire, который определяет длительность (в миллисекундах) до исчезновения сообщения. По умолчанию — 4000 мс.
Чтобы изменить длительность или сделать так, чтобы сообщение не исчезало автоматически, установите expire в "-1". В этом случае сообщение закроется только при клике.
scheduler.message({
type:"error",
text:"Invalid data format",
expire:10000
});
Чтобы вручную скрыть определённое всплывающее окно до истечения времени, используйте метод scheduler.message.hide(boxId). Он принимает один аргумент:
scheduler.message({
id:"myBox",
text:"Page is loaded"
});
scheduler.message.hide("myBox");
Модальные окна блокируют взаимодействие с приложением до выполнения необходимого действия, обычно по клику на кнопку. После этого окно закрывается и вызывается callback-функция, если она была передана.
Существует три типа модальных окон:
Общие параметры:
Alert-окно содержит одну кнопку "OK". Чтобы задать текст кнопки, используйте параметр ok:
scheduler.alert("Text");
scheduler.alert({
text: "some text",
title: "Alert",
ok: "Ok",
callback: function(){...}
});
Окно подтверждения содержит две кнопки: "OK" и "Cancel". Их текст задаётся соответствующими параметрами.
scheduler.confirm("ConfirmText");
scheduler.confirm({
title:"Confirm",
text:"This is a simple confirm",
ok:"Ok",
cancel:"Cancel",
callback: function(result){
if(result){
scheduler.message("You clicked Ok");
}else{
scheduler.message("You clicked Cancel");
}
}
});
Модальное окно (modalbox) обладает рядом особенностей:
scheduler.modalbox({
title:"Settings",
text: " ... html code here... ",
buttons:["Save", "Defaults", "Cancel"],
callback: function(result){
scheduler.alert(result);
}
});
Есть два основных способа настройки кнопок modalbox:
scheduler.modalbox({
// другие параметры
buttons:["Save", "Delete", "Cancel"],
callback: function(result){
switch(result){
case "0":
//Save
break;
case "1":
//Delete
break;
case "2":
//Cancel
break;
}
}
});
В этом случае callback получает строковый индекс нажатой кнопки ("0", "1", "2", ...). Каждая кнопка получает CSS-класс на основе текста (в нижнем регистре), например: scheduler_save_button, scheduler_delete_button, scheduler_cancel_button.
Эти классы можно использовать для стилизации кнопок:
.scheduler_delete_button div{
background:red;
}
Если несколько всплывающих окон используют одинаковые имена кнопок, но требуют разного оформления, можно использовать свойство type:
scheduler.modalbox({
// другие параметры
type:"special_popup",
buttons:["Save", "Delete", "Cancel"]
});
Значение type добавляется с префиксом "scheduler_" как класс к элементу popup:
.scheduler_special_popup .scheduler_delete_button div{
background:red;
}
Можно явно задать подписи кнопок, CSS-классы и значения для callback с помощью более детальной конфигурации:
scheduler.modalbox({
// другие параметры
buttons: [
{ label:"Save", css:"link_save_btn", value:"save" },
{ label:"Cancel", css:"link_cancel_btn", value:"cancel" },
{ label:"Delete", css:"link_delete_btn", value:"delete" }
],
callback: function(result){
switch(result){
case "save":
//Save
break;
case "cancel":
//Cancel
break;
case "delete":
//Delete
break;
}
}
});
Только параметр label обязателен; css и value — опциональны. Если они не указаны, CSS-класс формируется из текста кнопки в нижнем регистре, а значением выступает индекс кнопки.
CSS-класс css добавляется с префиксом "scheduler_" к элементу кнопки:
.scheduler_link_delete_btn div{
background:red;
}
Чтобы вручную закрыть модальное окно, используйте метод scheduler.modalbox.hide(), передав контейнер модального окна:
var box = scheduler.modalbox({
title: "Settings",
text: " ... html code here... ",
buttons: ["Save", "Defaults", "Cancel"],
callback: function(result){
scheduler.alert(result);
}
});
scheduler.modalbox.hide(box);
Для окон alert и confirm используется тот же метод scheduler.modalbox.hide():
var box = scheduler.confirm({
text: "Continue?",
ok:"Yes",
cancel:"No",
callback: function(result){
scheduler.message("Result: "+result);
}
});
scheduler.modalbox.hide(box);
Вы можете изменить внешний вид любого окна сообщения, определив CSS-стили. Обычно CSS-класс указывается через параметр type: создайте CSS-класс и присвойте его имя параметру type.
Обратите внимание на следующие рекомендации по параметру 'type':
Пример:
<style type="text/css">
.scheduler-myCss div{
font-weight:bold;
color:wheat;
background-color:crimson;
}
</style>
scheduler.message({ type:"myCss", text:"some text" });
Поведение клавиатуры для модальных окон регулируется свойством scheduler.message.keyboard, по умолчанию оно true.
Если включено, модальные окна блокируют большинство клавиатурных событий на странице. Активны только следующие клавиши:
Если установить scheduler.message.keyboard в false, блокировка отключается и становится возможным полноценный ввод с клавиатуры, что удобно для ввода данных в модальных окнах:
scheduler.message.keyboard = false;
scheduler.modalbox({...});
Это позволяет использовать клавиатуру внутри модальных окон в обычном режиме.
Наверх