1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/bower_components/emby-webcomponents/prompt/prompt.js

40 lines
2.6 KiB
JavaScript
Raw Normal View History

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)
})
})
}
});