Библиотека Webix UI помогает наладить общение между приложением и пользователями посредством специальных сообщений. Они могут предупредить об ошибке, отреагировать на событие, вывести значение переменной и многое другое.
Информативное сообщение не является модальным. Оно отображается в правом верхнем углу экрана и, в отличии от модальных сообщений, не блокирует работу всего приложения.
Самое простое сообщение можно создать с помощью функции webix.message(). В качестве параметра нужно передать текст сообщения (для сокращенной формы).
webix.message("All is correct");
Вы также можете указать дополнительные параметры при инициализации сообщения, такие как:
// расширенная форма
webix.message({
text:"Form data are Invalid",
type:"error",
expire: 10000,
id:"message1"
});
Есть несколько типов сообщений:
По умолчанию, установлен тип "info". Такие типы как "error", "success" и "debug" можно указать в расширенной форме инициализации:
webix.message({type:"error", text:"Form data are Invalid"});
Тип сообщения | Отображение |
---|---|
По умолчанию (type:"info") | |
Ошибка (type:"error") | |
Отладка (type:"debug") | |
Успех (type:"success") |
Related sample: Validation with a Complex Rule
По умолчанию, Webix сообщение исчезает либо при клике на него, либо через 4000 миллисекунд после отображения.
Чтобы изменить интервал отображения или вообще отменить его, используйте свойство expire:
webix.message({
type:"error",
text:"Form data are Invalid",
expire:10000
// expire:-1 для отмены интервала отображения
})
Если вы отменяете интервал отображения, сообщение будет исчезать только при клике на него.
Всплывающие сообщения можно прятать и при помощи API:
var message = webix.message("Hi!");
webix.message.hide(message);
// или через id сообщения
webix.message("Hi!","info",-1,"hi");
webix.message.hide("hi");
Вы можете изменить визуальное отображение любого сообщения с помощью CSS стилей. Название CSS класса, которое соответствует конкретному типу сообщения, сохраняется как webix_[тип]. Вы можете задать свой собственный стиль как для самого сообщения, так и для его внутренних и внешних границ:
/* окно сообщения + внутренние границы */
.webix_mystyle div{
background-color:#cdb4e4;
border:1px solid #676d71;
color:#484444
}
/* внешние границы */
.webix_mystyle {
background-color:#7e59bd;
border:1px solid #7e59bd;
box-shadow:0 0 10px #000
}
Чтобы применить стили для сообщения, укажите название css класса через свойство type в объекте конфигурации:
webix.message({
type:"mystyle",
text:"Some message"
});
webix.message позволяет устанавливать глобальные настройки и применять их ко всем сообщениям приложения:
webix.message.expire = 2000; // сообщения будут исчезать через 2 секунды
// сообщения появляются в правом нижнем углу
webix.message.position = "bottom";
Related sample: Message: Global Settings
Конфигурацию position можно установить в следующих значениях:
Чтобы задать собственное горизонтальное или вертикальное расположение, воспользуйтесь CSS стилями.
Модальные сообщения напоминают UI компонент Window. Они не препятствуют работе приложения. Но они накладывают модальный слой, который блокирует интерфейс до тех пор, пока пользователь не кликнет по кнопке в окне сообщения, или пока сообщение не будет скрыто через API.
Модальные сообщения состоят из текста и кнопок ("OK", "Cancel", и другие).
Существует 4 типа модальных сообщений:
Модальные сообщения имеют такие общие свойства:
Обратите внимание, что созданные поля не мешают работе приложения.
Текст кнопки окна alert задается через значение свойства ok.
Короткая форма
webix.alert("Test alert");
Расширенная форма
webix.alert({
title:"Custom title",
ok:"Custom text",
text:"Warning"
});
webix.alert() возвращает промис, который выполняется при клике по кнопке. Метод then() получает статус result (в значении true) в качестве параметра.
webix.alert({
title:"Custom title",
ok:"Custom text",
text:"Result: yes",
type:"alert-warning"
}).then(function(result){
// действия после закрытия окна
});
Окно confirm имеет 2 кнопки: "OK" и "Cancel".
Короткая форма
webix.confirm("Test confirm");
Вы можете менять текст кнопок, используя их названия.
Расширенная форма
webix.confirm({
title:"Custom title",
ok:"Yes",
cancel:"No",
text:"Test confirm"
});
Related sample: Confirm Message
webix.confirm() возвращает промис.
Промис выполняется при клике по кнопке "OK". Метод then() получает статус result (в значении true) в качестве параметра.
Промис отклоняется при клике по кнопке "Cancel". Используйте метод fail() чтобы определить дальнейшие действия.
webix.confirm("Test confirm").then(function(result){
webix.message("OK");
}).fail(function(){
webix.message("Cancel");
});
Webix modalbox напоминает сообщения alert и confirm, но с некоторыми отличиями:
webix.modalbox({
title:"Custom title",
buttons:["Yes", "No", "Maybe"],
text:"Any html content here",
width:500
});
Есть 2 формы инициализации окна modalbox: короткая и расширенная.
Короткая форма:
webix.modalbox("Custom title","alert-error");
Расширенная форма:
webix.modalbox({
title:"Title",
buttons:["Yes", "No", "Maybe"],
text:"Some text",
width:500
});
webix.modalbox() возвращает промис, который выполняется при клике по кнопке. Метод then() получает статус result (индекс кнопки) в качестве параметра.
webix.modalbox({
title:"Question",
buttons:["Yes", "No", "Maybe"],
text:"Do you love JS?",
width:500
}).then(function(result){
switch(result){
case "0":
webix.message("Good!");
break;
case "1":
webix.message("Why?..");
break;
case "2":
webix.message("Come back later");
}
}
});
В дополнение к общим с окнами alert и confirm настройкам, Webix prompt имеет необязательное свойство input. Его объект хранит следующие свойства:
webix.prompt({
title:"What is your favourite cat breed?",
text:"Share with us below",
ok:"Submit",
cancel:"Cancel",
input:{
required:true,
placeholder:"Siamese, Maine Coon, Sphynx...",
}
});
webix.prompt() возвращает промис, который соответствует общим правилам:
webix.prompt({
title:"What is your favourite cat breed?",
text:"Share with us below",
ok:"Submit",
cancel:"Cancel",
input:{
required:true,
placeholder:"Siamese, Maine Coon, Sphynx...",
},
width:350,
}).then(function(result){
webix.alert({
text:"Ooh, " + result + " cats are so cute!"
});
}).fail(function(){
webix.alert({
type:"alert-error",
text:"Cancelled"
});
});
Вы можете создать модальное сообщение внутри контейнера. Оно будет находится в центре, а его модальный слой покроет только площадь контейнера:
webix.ui({
view:"window",
id:"window1",
width:600, height:400,
head:"Window",
body:"Container for the confirm box"
}).show();
webix.confirm({
title:"Confirm",
text:"Any html content here",
container:$$("window1").$view
});
Related sample: Modalbox: Container
Существует 2 подтипа модальных сообщений: предупреждение и ошибка.
webix.alert({
title: "Close",
text: "You can't close this window!",
type:"alert-warning"
});
webix.alert({
title: "Close",
text: "You can't close this window!",
type:"alert-error"
});
webix.confirm({
title: "Close",
text: "You can't close this window!",
type:"confirm-warning"
});
webix.confirm({
title: "Close",
text: "You can't close this window!",
type:"confirm-error"
});
Модальное сообщение modalbox использует те же подтипы, что и alert. Например:
webix.modalbox({
title: "Close",
text: "You can't close this window!",
buttons:["Yes","No","Maybe"],
width:500,
type:"alert-warning"
});
Модальное сообщение prompt использует те же подтипы, что и alert. Например:
webix.prompt({
title: "What is your favourite cat breed?",
text: "Share with us below",
type: "prompt-error"
});
Модальные сообщения alert, confirm and modalbox закрываются при клике по кнопке. Вы можете закрыть окно alert при помощи API окна modalbox:
Чтобы это сделать, нужно задать id для соответствующего модального окна и передать его методу .hide() в качестве параметра:
webix.alert({ title:"Test alert", type:"alert-warning", id:"1" });
webix.modalbox.hide("1");
Помимо этого, вы можете спрятать все модальные окна:
webix.modalbox.hideAll();
Взаимодействие клавиатуры с модальным окном регулируется свойством webix.message.keyboard, которое изначально установлено в значении true.
По умолчанию, модальное окно блокирует события клавиатуры на странице. Пользователи могут использовать только те кнопки, которые устанавливают значения модального окна и закрывают его.
Чтобы отменить действия вышеупомянутых кнопок и применить стандартные события клавиатуры, установите свойство keyboard в значении false:
webix.message.keyboard = false;
webix.modalbox({/* ... */})
Теперь пользователь может применять все возможности клавиатуры. Например, он может вводить значения в поле модального окна, для которого это предусмотрено.
Наверх