diff --git a/src/controllers/wizardfinishpage.js b/src/controllers/wizardfinishpage.js index ab3d269dea..180af64b58 100644 --- a/src/controllers/wizardfinishpage.js +++ b/src/controllers/wizardfinishpage.js @@ -1,8 +1,9 @@ -define(["loading"], function(loading) { +define(["loading"], function (loading) { "use strict"; function onFinish() { - loading.show(), ApiClient.ajax({ + loading.show(); + ApiClient.ajax({ url: ApiClient.getUrl("Startup/Complete"), type: "POST" }).then(function() { @@ -10,7 +11,8 @@ define(["loading"], function(loading) { window.location.href = "index.html"; }); } - return function(view, params) { + + return function (view, params) { view.querySelector(".btnWizardNext").addEventListener("click", onFinish); }; }); diff --git a/src/controllers/wizardremoteaccess.js b/src/controllers/wizardremoteaccess.js index 6856e0074f..554a417e57 100644 --- a/src/controllers/wizardremoteaccess.js +++ b/src/controllers/wizardremoteaccess.js @@ -1,31 +1,39 @@ -define(["loading", "emby-checkbox", "emby-button", "emby-select"], function(loading) { +define(["loading", "emby-checkbox", "emby-button", "emby-select"], function (loading) { "use strict"; function save(page) { loading.show(); - var apiClient = ApiClient, - config = {}; - config.EnableRemoteAccess = page.querySelector("#chkRemoteAccess").checked, config.EnableAutomaticPortMapping = page.querySelector("#chkEnableUpnp").checked, apiClient.ajax({ + var apiClient = ApiClient; + var config = {}; + config.EnableRemoteAccess = page.querySelector("#chkRemoteAccess").checked; + config.EnableAutomaticPortMapping = page.querySelector("#chkEnableUpnp").checked; + apiClient.ajax({ type: "POST", data: config, url: apiClient.getUrl("Startup/RemoteAccess") - }).then(function() { - loading.hide(), navigateToNextPage() - }) + }).then(function () { + loading.hide(); + navigateToNextPage(); + }); } function navigateToNextPage() { - Dashboard.navigate("wizardfinish.html") + Dashboard.navigate("wizardfinish.html"); } function onSubmit(e) { - return save(this), e.preventDefault(), !1 - } - return function(view, params) { - view.querySelector(".wizardSettingsForm").addEventListener("submit", onSubmit), view.addEventListener("viewshow", function() { - document.querySelector(".skinHeader").classList.add("noHomeButtonHeader") - }), view.addEventListener("viewhide", function() { - document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader") - }) + save(this); + e.preventDefault(); + return false; } + + return function (view, params) { + view.querySelector(".wizardSettingsForm").addEventListener("submit", onSubmit); + view.addEventListener("viewshow", function () { + document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"); + }); + view.addEventListener("viewhide", function () { + document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader"); + }); + }; }); diff --git a/src/controllers/wizardsettings.js b/src/controllers/wizardsettings.js index 6303d95efa..487f068a40 100644 --- a/src/controllers/wizardsettings.js +++ b/src/controllers/wizardsettings.js @@ -1,67 +1,84 @@ -define(["loading", "emby-checkbox", "emby-button", "emby-select"], function(loading) { +define(["loading", "emby-checkbox", "emby-button", "emby-select"], function (loading) { "use strict"; function save(page) { loading.show(); var apiClient = ApiClient; - apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config) { - config.PreferredMetadataLanguage = page.querySelector("#selectLanguage").value, config.MetadataCountryCode = page.querySelector("#selectCountry").value, apiClient.ajax({ + apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function (config) { + config.PreferredMetadataLanguage = page.querySelector("#selectLanguage").value; + config.MetadataCountryCode = page.querySelector("#selectCountry").value; + apiClient.ajax({ type: "POST", data: config, url: apiClient.getUrl("Startup/Configuration") - }).then(function() { - loading.hide(), navigateToNextPage() - }) - }) + }).then(function () { + loading.hide(); + navigateToNextPage(); + }); + }); } function populateLanguages(select, languages) { var html = ""; html += ""; + for (var i = 0, length = languages.length; i < length; i++) { var culture = languages[i]; - html += "" + html += ""; } - select.innerHTML = html + + select.innerHTML = html; } function populateCountries(select, allCountries) { var html = ""; html += ""; + for (var i = 0, length = allCountries.length; i < length; i++) { var culture = allCountries[i]; - html += "" + html += ""; } - select.innerHTML = html + + select.innerHTML = html; } function reloadData(page, config, cultures, countries) { - populateLanguages(page.querySelector("#selectLanguage"), cultures), populateCountries(page.querySelector("#selectCountry"), countries), page.querySelector("#selectLanguage").value = config.PreferredMetadataLanguage, page.querySelector("#selectCountry").value = config.MetadataCountryCode, loading.hide() + populateLanguages(page.querySelector("#selectLanguage"), cultures); + populateCountries(page.querySelector("#selectCountry"), countries); + page.querySelector("#selectLanguage").value = config.PreferredMetadataLanguage; + page.querySelector("#selectCountry").value = config.MetadataCountryCode; + loading.hide(); } function reload(page) { loading.show(); - var apiClient = ApiClient, - promise1 = apiClient.getJSON(apiClient.getUrl("Startup/Configuration")), - promise2 = apiClient.getCultures(), - promise3 = apiClient.getCountries(); - Promise.all([promise1, promise2, promise3]).then(function(responses) { - reloadData(page, responses[0], responses[1], responses[2]) - }) + var apiClient = ApiClient; + var promise1 = apiClient.getJSON(apiClient.getUrl("Startup/Configuration")); + var promise2 = apiClient.getCultures(); + var promise3 = apiClient.getCountries(); + Promise.all([promise1, promise2, promise3]).then(function (responses) { + reloadData(page, responses[0], responses[1], responses[2]); + }); } function navigateToNextPage() { - Dashboard.navigate("wizardremoteaccess.html") + Dashboard.navigate("wizardremoteaccess.html"); } function onSubmit(e) { - return save(this), e.preventDefault(), !1 + save(this); + e.preventDefault(); + return false; } - return function(view, params) { - view.querySelector(".wizardSettingsForm").addEventListener("submit", onSubmit), view.addEventListener("viewshow", function() { - document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"), reload(this) - }), view.addEventListener("viewhide", function() { - document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader") - }) - } -}); \ No newline at end of file + + return function (view, params) { + view.querySelector(".wizardSettingsForm").addEventListener("submit", onSubmit); + view.addEventListener("viewshow", function () { + document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"); + reload(this); + }); + view.addEventListener("viewhide", function () { + document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader"); + }); + }; +}); diff --git a/src/controllers/wizardstart.js b/src/controllers/wizardstart.js index 568ef15b2b..1c2917b9ec 100644 --- a/src/controllers/wizardstart.js +++ b/src/controllers/wizardstart.js @@ -1,41 +1,48 @@ -define(["jQuery", "loading", "emby-button", "emby-select"], function($, loading) { +define(["jQuery", "loading", "emby-button", "emby-select"], function ($, loading) { "use strict"; function loadPage(page, config, languageOptions) { - $("#selectLocalizationLanguage", page).html(languageOptions.map(function(l) { - return '" - })).val(config.UICulture), loading.hide() + $("#selectLocalizationLanguage", page).html(languageOptions.map(function (l) { + return '"; + })).val(config.UICulture); + loading.hide(); } function save(page) { loading.show(); var apiClient = ApiClient; - apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config) { - config.UICulture = $("#selectLocalizationLanguage", page).val(), apiClient.ajax({ + apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function (config) { + config.UICulture = $("#selectLocalizationLanguage", page).val(); + apiClient.ajax({ type: "POST", data: config, url: apiClient.getUrl("Startup/Configuration") - }).then(function() { - Dashboard.navigate("wizarduser.html") - }) - }) + }).then(function () { + Dashboard.navigate("wizarduser.html"); + }); + }); } function onSubmit() { - return save($(this).parents(".page")), !1 + save($(this).parents(".page")); + return false; } - return function(view, params) { - $(".wizardStartForm", view).on("submit", onSubmit), view.addEventListener("viewshow", function() { - document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"), loading.show(); - var page = this, - apiClient = ApiClient, - promise1 = apiClient.getJSON(apiClient.getUrl("Startup/Configuration")), - promise2 = apiClient.getJSON(apiClient.getUrl("Localization/Options")); - Promise.all([promise1, promise2]).then(function(responses) { - loadPage(page, responses[0], responses[1]) - }) - }), view.addEventListener("viewhide", function() { - document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader") - }) - } -}); \ No newline at end of file + + return function (view, params) { + $(".wizardStartForm", view).on("submit", onSubmit); + view.addEventListener("viewshow", function () { + document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"); + loading.show(); + var page = this; + var apiClient = ApiClient; + var promise1 = apiClient.getJSON(apiClient.getUrl("Startup/Configuration")); + var promise2 = apiClient.getJSON(apiClient.getUrl("Localization/Options")); + Promise.all([promise1, promise2]).then(function (responses) { + loadPage(page, responses[0], responses[1]); + }); + }); + view.addEventListener("viewhide", function () { + document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader"); + }); + }; +}); diff --git a/src/controllers/wizarduserpage.js b/src/controllers/wizarduserpage.js index a3654edf0e..d29be37c13 100644 --- a/src/controllers/wizarduserpage.js +++ b/src/controllers/wizarduserpage.js @@ -1,4 +1,4 @@ -define(["loading", "globalize", "dashboardcss", "emby-input", "emby-button", "emby-button"], function(loading, globalize) { +define(["loading", "globalize", "dashboardcss", "emby-input", "emby-button", "emby-button"], function (loading, globalize) { "use strict"; function getApiClient() { @@ -30,13 +30,15 @@ define(["loading", "globalize", "dashboardcss", "emby-input", "emby-button", "em function onSubmit(e) { var form = this; + if (form.querySelector("#txtManualPassword").value != form.querySelector("#txtPasswordConfirm").value) { - require(["toast"], function(toast) { + require(["toast"], function (toast) { toast(Globalize.translate("PasswordMatchError")); }); } else { submit(form); } + e.preventDefault(); return false; } @@ -45,20 +47,21 @@ define(["loading", "globalize", "dashboardcss", "emby-input", "emby-button", "em loading.show(); var page = this; var apiClient = getApiClient(); - apiClient.getJSON(apiClient.getUrl("Startup/User")).then(function(user) { + apiClient.getJSON(apiClient.getUrl("Startup/User")).then(function (user) { page.querySelector("#txtUsername").value = user.Name || ""; page.querySelector("#txtManualPassword").value = user.Password || ""; loading.hide(); - }) - } - return function(view, params) { - view.querySelector(".wizardUserForm").addEventListener("submit", onSubmit); - view.addEventListener("viewshow", function() { - document.querySelector(".skinHeader").classList.add("noHomeButtonHeader") }); - view.addEventListener("viewhide", function() { - document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader") + } + + return function (view, params) { + view.querySelector(".wizardUserForm").addEventListener("submit", onSubmit); + view.addEventListener("viewshow", function () { + document.querySelector(".skinHeader").classList.add("noHomeButtonHeader"); + }); + view.addEventListener("viewhide", function () { + document.querySelector(".skinHeader").classList.remove("noHomeButtonHeader"); }); view.addEventListener("viewshow", onViewShow); - } + }; }); diff --git a/src/scripts/autobackdrops.js b/src/scripts/autobackdrops.js index 8cce154a19..73042f83ce 100644 --- a/src/scripts/autobackdrops.js +++ b/src/scripts/autobackdrops.js @@ -1,53 +1,76 @@ -define(["backdrop", "userSettings", "libraryMenu"], function(backdrop, userSettings, libraryMenu) { +define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSettings, libraryMenu) { "use strict"; function enabled() { - return userSettings.enableBackdrops() + return userSettings.enableBackdrops(); } function getBackdropItemIds(apiClient, userId, types, parentId) { - var key = "backdrops2_" + userId + (types || "") + (parentId || ""), - data = cache[key]; - if (data) return console.log("Found backdrop id list in cache. Key: " + key), data = JSON.parse(data), Promise.resolve(data); + var key = "backdrops2_" + userId + (types || "") + (parentId || ""); + var data = cache[key]; + + if (data) { + console.log("Found backdrop id list in cache. Key: " + key); + data = JSON.parse(data); + return Promise.resolve(data); + } + var options = { SortBy: "IsFavoriteOrLiked,Random", Limit: 20, - Recursive: !0, + Recursive: true, IncludeItemTypes: types, ImageTypes: "Backdrop", ParentId: parentId, - EnableTotalRecordCount: !1 + EnableTotalRecordCount: false }; - return apiClient.getItems(apiClient.getCurrentUserId(), options).then(function(result) { - var images = result.Items.map(function(i) { + return apiClient.getItems(apiClient.getCurrentUserId(), options).then(function (result) { + var images = result.Items.map(function (i) { return { Id: i.Id, tag: i.BackdropImageTags[0], ServerId: i.ServerId - } + }; }); - return cache[key] = JSON.stringify(images), images - }) + cache[key] = JSON.stringify(images); + return images; + }); } function showBackdrop(type, parentId) { var apiClient = window.ApiClient; - apiClient && getBackdropItemIds(apiClient, apiClient.getCurrentUserId(), type, parentId).then(function(images) { - images.length ? backdrop.setBackdrops(images.map(function(i) { - return i.BackdropImageTags = [i.tag], i - })) : backdrop.clear() - }) + + if (apiClient) { + getBackdropItemIds(apiClient, apiClient.getCurrentUserId(), type, parentId).then(function (images) { + if (images.length) { + backdrop.setBackdrops(images.map(function (i) { + i.BackdropImageTags = [i.tag]; + return i; + })); + } else { + backdrop.clear(); + } + }); + } } + var cache = {}; - pageClassOn("pageshow", "page", function() { + pageClassOn("pageshow", "page", function () { var page = this; - if (!page.classList.contains("selfBackdropPage")) - if (page.classList.contains("backdropPage")) + + if (!page.classList.contains("selfBackdropPage")) { + if (page.classList.contains("backdropPage")) { if (enabled()) { - var type = page.getAttribute("data-backdroptype"), - parentId = page.classList.contains("globalBackdropPage") ? "" : libraryMenu.getTopParentId(); - showBackdrop(type, parentId) - } else page.classList.remove("backdropPage"), backdrop.clear(); - else backdrop.clear() - }) -}); \ No newline at end of file + var type = page.getAttribute("data-backdroptype"); + var parentId = page.classList.contains("globalBackdropPage") ? "" : libraryMenu.getTopParentId(); + showBackdrop(type, parentId); + } else { + page.classList.remove("backdropPage"); + backdrop.clear(); + } + } else { + backdrop.clear(); + } + } + }); +}); diff --git a/src/scripts/itembynamedetailpage.js b/src/scripts/itembynamedetailpage.js index 720c8a1e4e..5d3c9dedb9 100644 --- a/src/scripts/itembynamedetailpage.js +++ b/src/scripts/itembynamedetailpage.js @@ -1,40 +1,90 @@ -define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryBrowser", "emby-itemscontainer", "emby-button"], function(connectionManager, listView, cardBuilder, imageLoader, libraryBrowser) { +define(["connectionManager", "listView", "cardBuilder", "imageLoader", "libraryBrowser", "emby-itemscontainer", "emby-button"], function (connectionManager, listView, cardBuilder, imageLoader, libraryBrowser) { "use strict"; function renderItems(page, item) { var sections = []; - item.ArtistCount && sections.push({ - name: Globalize.translate("TabArtists"), - type: "MusicArtist" - }), item.ProgramCount && "Person" == item.Type && sections.push({ - name: Globalize.translate("HeaderUpcomingOnTV"), - type: "Program" - }), item.MovieCount && sections.push({ - name: Globalize.translate("TabMovies"), - type: "Movie" - }), item.SeriesCount && sections.push({ - name: Globalize.translate("TabShows"), - type: "Series" - }), item.EpisodeCount && sections.push({ - name: Globalize.translate("TabEpisodes"), - type: "Episode" - }), item.TrailerCount && sections.push({ - name: Globalize.translate("TabTrailers"), - type: "Trailer" - }), item.AlbumCount && sections.push({ - name: Globalize.translate("TabAlbums"), - type: "MusicAlbum" - }), item.MusicVideoCount && sections.push({ - name: Globalize.translate("TabMusicVideos"), - type: "MusicVideo" - }); + + if (item.ArtistCount) { + sections.push({ + name: Globalize.translate("TabArtists"), + type: "MusicArtist" + }); + } + + if (item.ProgramCount && "Person" == item.Type) { + sections.push({ + name: Globalize.translate("HeaderUpcomingOnTV"), + type: "Program" + }); + } + + if (item.MovieCount) { + sections.push({ + name: Globalize.translate("TabMovies"), + type: "Movie" + }); + } + + if (item.SeriesCount) { + sections.push({ + name: Globalize.translate("TabShows"), + type: "Series" + }); + } + + if (item.EpisodeCount) { + sections.push({ + name: Globalize.translate("TabEpisodes"), + type: "Episode" + }); + } + + if (item.TrailerCount) { + sections.push({ + name: Globalize.translate("TabTrailers"), + type: "Trailer" + }); + } + + if (item.AlbumCount) { + sections.push({ + name: Globalize.translate("TabAlbums"), + type: "MusicAlbum" + }); + } + + if (item.MusicVideoCount) { + sections.push({ + name: Globalize.translate("TabMusicVideos"), + type: "MusicVideo" + }); + } + var elem = page.querySelector("#childrenContent"); - elem.innerHTML = sections.map(function(section) { - var html = "", - sectionClass = "verticalSection"; - return "Audio" === section.type && (sectionClass += " verticalSection-extrabottompadding"), html += '