47 lines
No EOL
2.3 KiB
JavaScript
47 lines
No EOL
2.3 KiB
JavaScript
define(["dialogHelper", "layoutManager", "globalize", "require", "events", "homescreenSettings", "paper-icon-button-light", "css!./../formdialog"], function(dialogHelper, layoutManager, globalize, require, events, HomescreenSettings) {
|
|
"use strict";
|
|
|
|
function centerFocus(elem, horiz, on) {
|
|
require(["scrollHelper"], function(scrollHelper) {
|
|
var fn = on ? "on" : "off";
|
|
scrollHelper.centerFocus[fn](elem, horiz)
|
|
})
|
|
}
|
|
|
|
function show(options) {
|
|
return new Promise(function(resolve, reject) {
|
|
require(["text!./homescreensettingsdialog.template.html"], function(template) {
|
|
var dialogOptions = {
|
|
removeOnClose: !0,
|
|
scrollY: !1
|
|
};
|
|
layoutManager.tv ? dialogOptions.size = "fullscreen" : dialogOptions.size = "medium-tall";
|
|
var dlg = dialogHelper.createDialog(dialogOptions);
|
|
dlg.classList.add("formDialog");
|
|
var html = "",
|
|
submitted = !1;
|
|
html += globalize.translateDocument(template, "sharedcomponents"), dlg.innerHTML = html, layoutManager.tv && centerFocus(dlg.querySelector(".formDialogContent"), !1, !0);
|
|
var homescreenSettingsInstance = new HomescreenSettings({
|
|
serverId: options.serverId,
|
|
userId: options.userId,
|
|
element: dlg.querySelector(".settingsContent"),
|
|
userSettings: options.userSettings,
|
|
enableSaveButton: !1,
|
|
enableSaveConfirmation: !1
|
|
});
|
|
dialogHelper.open(dlg), dlg.addEventListener("close", function() {
|
|
layoutManager.tv && centerFocus(dlg.querySelector(".formDialogContent"), !1, !1), submitted ? resolve() : reject()
|
|
}), dlg.querySelector(".btnCancel").addEventListener("click", function(e) {
|
|
dialogHelper.close(dlg)
|
|
}), dlg.querySelector(".btnSave").addEventListener("click", function(e) {
|
|
submitted = !0, homescreenSettingsInstance.submit()
|
|
}), events.on(homescreenSettingsInstance, "saved", function() {
|
|
submitted = !0, dialogHelper.close(dlg)
|
|
})
|
|
})
|
|
})
|
|
}
|
|
return {
|
|
show: show
|
|
}
|
|
}); |