Window - это UI компонент, который выглядит как обычное экранное окно. Компонент наследуется от view, но отличается от других компонентов. Window лежит внутри лейаута приложения, но над другими компонентами. То же верно и для popup. Оба компонента инициализируются отдельным вызовом конструктора webix.ui().
webix.ui({
view:"window",
head:"My Window",
body:{
template:"Some text"
}
});
Related sample: Windows: Basic Initialization
head: false
;true
;Head отличается от body стилизацией и может содержать:
Чтобы добавить иконку для закрытия окна, укажите свойству close
значение true
:
webix.ui({
view:"window",
head:"Можете закрыть окно",
close:true, body:{ template:"Содержимое окна" }
});
Если вы определили хедер как тулбар и хотите добавить иконку для закрытия окна, вам также необходимо описать обработчик клика для этого действия:
webix.ui({
view:"window", id:"win",
head:{
view:"toolbar", elements:[
{ template:"Можете закрыть окно },
{ view:"icon", icon:"wxi-close", click:function(){
$$("win").hide();
} }
]
},
body:{ template:"Содержимое окна" }
});
Свойство close
эквивалентно вызову метода hide()
. И свойство, и метод используются для скрытия окна. Это значит, что вы можете показать его позже с помощью метода show()
.
Метод close()
полностью удаляет окно. После удаления это окно невозможно будет отобразить.
Используйте следующее API в зависимости от ваших целей:
close
или метод hide()
, если нужно скрыть окноclose()
, если нужно полностью удалить окно из вашего приложения.Элемент body может содержать любой компонент.
Чтобы добавить текст в body, используйте компонент template, например {template:"some text"}.
Window с Datatable
webix.ui({
view:"window",
body:{
view:"datatable",
// ...
}
})
Related sample: Window with a Component Inside
Размеры задаются свойствами width и height. Если не указать их, окно подстроится под размеры компонента в body или же примет значения по умолчанию, если у внутреннего компонента размеры не заданы (в настройках или по умолчанию).
О том, как и где на экране можно расположить окно, читайте в статье Расположение Popup и Window.
Пользователь может изменять размер окна, потянув за специальную иконку в правом нижнем углу, если включить свойство resize:
webix.ui({
view:"window",
resize:true,
body:{
view:"datatable",
// ...
}
})
Related sample: Windows: Resize
Модальность помогает контролировать действия пользователя в приложении. Например, поскольку окна с сообщениями Alert и Confirm всегда модальные, пользователь не может ничего сделать, пока не выберет нужную опцию в диалоговом окне или не подтвердит какое-то действие.
Модальное окно ожидает действий пользователя (например ввода данных, нажатия на кнопку и т.д.). Пока пользователь не закроет окно (не совершит требуемые действия), он не сможет взаимодействовать с другими компонентами на странице.
Webix Window по умолчанию не модальное, однако вы можете добавить ему свойство modal:
{view:"window", modal:true}
После инициализации модального окна и до осуществления действий пользователя, приложение остается неактивным (пространство приложения окрашено серым).
Вы можете использовать компонент Window над Iframe, однако это ограничит производительность приложения. Компонент Iframe перехватывает все события, что не позволит инициализированному над Iframe окну работать корректно. Выберите один из обходных путей, чтобы решить эту проблему:
webix.ui({
view:"window", move:true,
position:"center", head:"Drag me",
modal:true, body:{
template:"Any issues with fluency?"
}
}).show();
webix.ui({
rows:[
{view:'iframe',src:'//docs.webix.com'}
]
});
Related sample: Modal window over IFrame
webix.ui({
view:"window", id:"window",
// full config
});
webix.ui({
rows:[
{id:"frame", view:'iframe',src:'//docs.webix.com'}
]
});
$$("frame").disable(); $$("window").show();
Related sample: Disable IFrame