2018-10-23 01:05:09 +03:00
|
|
|
define(["dialogHelper", "layoutManager", "scrollHelper", "globalize", "dom", "require", "material-icons", "emby-button", "paper-icon-button-light", "emby-input", "formDialogStyle"], function(dialogHelper, layoutManager, scrollHelper, globalize, dom, require) {
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
function setInputProperties(dlg, options) {
|
|
|
|
var txtInput = dlg.querySelector("#txtInput");
|
|
|
|
txtInput.label ? txtInput.label(options.label || "") : txtInput.setAttribute("label", options.label || ""), txtInput.value = options.value || ""
|
|
|
|
}
|
|
|
|
|
|
|
|
function showDialog(options, template) {
|
|
|
|
var dialogOptions = {
|
|
|
|
removeOnClose: !0,
|
|
|
|
scrollY: !1
|
|
|
|
};
|
|
|
|
layoutManager.tv && (dialogOptions.size = "fullscreen");
|
|
|
|
var dlg = dialogHelper.createDialog(dialogOptions);
|
|
|
|
dlg.classList.add("formDialog"), dlg.innerHTML = globalize.translateHtml(template, "sharedcomponents"), layoutManager.tv ? scrollHelper.centerFocus.on(dlg.querySelector(".formDialogContent"), !1) : (dlg.querySelector(".dialogContentInner").classList.add("dialogContentInner-mini"), dlg.classList.add("dialog-fullscreen-lowres")), dlg.querySelector(".btnCancel").addEventListener("click", function(e) {
|
|
|
|
dialogHelper.close(dlg)
|
|
|
|
}), dlg.querySelector(".formDialogHeaderTitle").innerHTML = options.title || "", options.description ? dlg.querySelector(".fieldDescription").innerHTML = options.description : dlg.querySelector(".fieldDescription").classList.add("hide"), setInputProperties(dlg, options);
|
|
|
|
var submitValue;
|
|
|
|
return dlg.querySelector("form").addEventListener("submit", function(e) {
|
|
|
|
return submitValue = dlg.querySelector("#txtInput").value, e.preventDefault(), e.stopPropagation(), setTimeout(function() {
|
|
|
|
dialogHelper.close(dlg)
|
|
|
|
}, 300), !1
|
|
|
|
}), dlg.querySelector(".submitText").innerHTML = options.confirmText || globalize.translate("sharedcomponents#ButtonOk"), dlg.style.minWidth = Math.min(400, dom.getWindowSize().innerWidth - 50) + "px", dialogHelper.open(dlg).then(function() {
|
|
|
|
layoutManager.tv && scrollHelper.centerFocus.off(dlg.querySelector(".formDialogContent"), !1);
|
|
|
|
var value = submitValue;
|
|
|
|
return value || Promise.reject()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
return function(options) {
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
|
|
require(["text!./prompt.template.html"], function(template) {
|
|
|
|
"string" == typeof options && (options = {
|
|
|
|
title: "",
|
|
|
|
text: options
|
|
|
|
}), showDialog(options, template).then(resolve, reject)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
});
|