mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 11:28:23 -07:00
1 line
2.1 KiB
JavaScript
1 line
2.1 KiB
JavaScript
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?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)})})}}); |