diff --git a/src/components/tunerpicker.js b/src/components/tunerpicker.js index 784f677430..77bddba530 100644 --- a/src/components/tunerpicker.js +++ b/src/components/tunerpicker.js @@ -1,78 +1,171 @@ -define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize", "loading", "material-icons", "formDialogStyle", "emby-button", "emby-itemscontainer", "cardStyle"], function(dialogHelper, dom, layoutManager, connectionManager, globalize, loading) { +define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize", "loading", "material-icons", "formDialogStyle", "emby-button", "emby-itemscontainer", "cardStyle"], function (dialogHelper, dom, layoutManager, connectionManager, globalize, loading) { "use strict"; function getEditorHtml() { var html = ""; - return html += '
', html += '
', html += '
', html += "

" + globalize.translate("DetectingDevices") + "...

", html += "

" + globalize.translate("MessagePleaseWait") + "

", html += "
", html += '

' + globalize.translate("HeaderNewDevices") + "

", html += '
', html += "
", html += "
", html += "
" + html += '
'; + html += '
'; + html += '
'; + html += "

" + globalize.translate("DetectingDevices") + "...

"; + html += "

" + globalize.translate("MessagePleaseWait") + "

"; + html += "
"; + html += '

' + globalize.translate("HeaderNewDevices") + "

"; + html += '
'; + html += "
"; + html += "
"; + return html += "
"; } function getDeviceHtml(device) { - var padderClass, html = "", - cssClass = "card scalableCard", - cardBoxCssClass = "cardBox visualCardBox"; - return cssClass += " backdropCard backdropCard-scalable", padderClass = "cardPadder-backdrop", layoutManager.tv && (cssClass += " card-focusscale", cardBoxCssClass += " cardBox-focustransform"), cardBoxCssClass += " card-focuscontent", html += '" + var padderClass; + var html = ""; + var cssClass = "card scalableCard"; + var cardBoxCssClass = "cardBox visualCardBox"; + cssClass += " backdropCard backdropCard-scalable"; + padderClass = "cardPadder-backdrop"; + + if (layoutManager.tv) { + cssClass += " card-focusscale"; + cardBoxCssClass += " cardBox-focustransform"; + } + + cardBoxCssClass += " card-focuscontent"; + html += '"; } function getTunerName(providerId) { switch (providerId = providerId.toLowerCase()) { case "m3u": return "M3U"; + case "hdhomerun": return "HDHomerun"; + case "hauppauge": return "Hauppauge"; + case "satip": return "DVB"; + default: - return "Unknown" + return "Unknown"; } } function renderDevices(view, devices) { - var i, length, html = ""; - for (i = 0, length = devices.length; i < length; i++) html += getDeviceHtml(devices[i]); - devices.length ? view.querySelector(".devicesHeader").classList.remove("hide") : (html = "


" + globalize.translate("NoNewDevicesFound") + "

", view.querySelector(".devicesHeader").classList.add("hide")); + var i; + var length; + var html = ""; + + for (i = 0, length = devices.length; i < length; i++) { + html += getDeviceHtml(devices[i]); + } + + if (devices.length) { + view.querySelector(".devicesHeader").classList.remove("hide"); + } else { + html = "


" + globalize.translate("NoNewDevicesFound") + "

"; + view.querySelector(".devicesHeader").classList.add("hide"); + } + var elem = view.querySelector(".results"); - elem.innerHTML = html, layoutManager.tv && focusManager.autoFocus(elem) + elem.innerHTML = html; + + if (layoutManager.tv) { + focusManager.autoFocus(elem); + } } function discoverDevices(view, apiClient) { - return loading.show(), view.querySelector(".loadingContent").classList.remove("hide"), ApiClient.getJSON(ApiClient.getUrl("LiveTv/Tuners/Discvover", { - NewDevicesOnly: !0 - })).then(function(devices) { - currentDevices = devices, renderDevices(view, devices), view.querySelector(".loadingContent").classList.add("hide"), loading.hide() - }) + loading.show(); + view.querySelector(".loadingContent").classList.remove("hide"); + return ApiClient.getJSON(ApiClient.getUrl("LiveTv/Tuners/Discvover", { + NewDevicesOnly: true + })).then(function (devices) { + currentDevices = devices; + renderDevices(view, devices); + view.querySelector(".loadingContent").classList.add("hide"); + loading.hide(); + }); } function tunerPicker() { - this.show = function(options) { + this.show = function (options) { var dialogOptions = { - removeOnClose: !0, - scrollY: !1 + removeOnClose: true, + scrollY: false }; - layoutManager.tv ? dialogOptions.size = "fullscreen" : dialogOptions.size = "small"; + + if (layoutManager.tv) { + dialogOptions.size = "fullscreen"; + } else { + dialogOptions.size = "small"; + } + var dlg = dialogHelper.createDialog(dialogOptions); dlg.classList.add("formDialog"); var html = ""; - html += '
', html += '', html += '

', html += globalize.translate("HeaderLiveTvTunerSetup"), html += "

", html += "
", html += getEditorHtml(), dlg.innerHTML = html, dlg.querySelector(".btnCancel").addEventListener("click", function() { - dialogHelper.close(dlg) + html += '
'; + html += ''; + html += '

'; + html += globalize.translate("HeaderLiveTvTunerSetup"); + html += "

"; + html += "
"; + html += getEditorHtml(); + dlg.innerHTML = html; + dlg.querySelector(".btnCancel").addEventListener("click", function () { + dialogHelper.close(dlg); }); var deviceResult; - dlg.querySelector(".results").addEventListener("click", function(e) { + dlg.querySelector(".results").addEventListener("click", function (e) { var tunerCard = dom.parentWithClass(e.target, "card"); + if (tunerCard) { var deviceId = tunerCard.getAttribute("data-id"); - deviceResult = currentDevices.filter(function(d) { - return d.DeviceId === deviceId - })[0], dialogHelper.close(dlg) + deviceResult = currentDevices.filter(function (d) { + return d.DeviceId === deviceId; + })[0]; + dialogHelper.close(dlg); } - }), layoutManager.tv && centerFocus(dlg.querySelector(".formDialogContent"), !1, !0); + }); + + if (layoutManager.tv) { + centerFocus(dlg.querySelector(".formDialogContent"), false, true); + } + var apiClient = connectionManager.getApiClient(options.serverId); - return discoverDevices(dlg, apiClient), layoutManager.tv && centerFocus(dlg.querySelector(".formDialogContent"), !1, !1), dialogHelper.open(dlg).then(function() { - return deviceResult ? Promise.resolve(deviceResult) : Promise.reject() - }) - } + discoverDevices(dlg, apiClient); + + if (layoutManager.tv) { + centerFocus(dlg.querySelector(".formDialogContent"), false, false); + } + + return dialogHelper.open(dlg).then(function () { + if (deviceResult) { + return Promise.resolve(deviceResult); + } + + return Promise.reject(); + }); + }; } + var currentDevices = []; - return tunerPicker -}); \ No newline at end of file + return tunerPicker; +});