diff --git a/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json b/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json index 9ae5e84c7..1f0548f3d 100644 --- a/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json +++ b/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json @@ -27,14 +27,14 @@ "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, - "homepage": "https://github.com/PolymerElements/iron-resizable-behavior", + "homepage": "https://github.com/polymerelements/iron-resizable-behavior", "_release": "1.0.2", "_resolution": { "type": "version", "tag": "v1.0.2", "commit": "85de8ba28be2bf17c81d6436ef1119022b003674" }, - "_source": "git://github.com/PolymerElements/iron-resizable-behavior.git", + "_source": "git://github.com/polymerelements/iron-resizable-behavior.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-resizable-behavior" + "_originalSource": "polymerelements/iron-resizable-behavior" } \ No newline at end of file diff --git a/dashboard-ui/livetvguideprovider.html b/dashboard-ui/livetvguideprovider.html new file mode 100644 index 000000000..62c76b027 --- /dev/null +++ b/dashboard-ui/livetvguideprovider.html @@ -0,0 +1,53 @@ + + + + ${TitleLiveTV} + + +
+ +
+
+ + + +
+ +

${HeaderEmbyGuide}

+ +
+
+
+
+ + +
+
+ +
+
+
+ + +
+
+ + ${ButtonCancel} +
+
+
+
+
+
+
+ + diff --git a/dashboard-ui/scripts/livetvguideprovider.js b/dashboard-ui/scripts/livetvguideprovider.js new file mode 100644 index 000000000..ebf2a82c1 --- /dev/null +++ b/dashboard-ui/scripts/livetvguideprovider.js @@ -0,0 +1,148 @@ +(function ($, document, window) { + + var listingsId; + + function reload(page, providerId) { + + Dashboard.showLoadingMsg(); + + ApiClient.getNamedConfiguration("livetv").done(function (config) { + + var info = config.ListingProviders.filter(function (i) { + return i.Id == providerId; + })[0]; + + info = info || {}; + + listingsId = info.ListingsId; + $('#selectListing', page).val(info.ListingsId || '').selectmenu('refresh'); + + page.querySelector('.txtZipCode').value = info.ZipCode || ''; + + setCountry(page, info); + }); + } + + function setCountry(page, info) { + + $('#selectCountry', page).val(info.Country || '').selectmenu('refresh'); + + $(page.querySelector('.txtZipCode')).trigger('change'); + + Dashboard.hideLoadingMsg(); + } + + function submitListingsForm(page) { + + var selectedListingsId = $('#selectListing', page).val(); + + if (!selectedListingsId) { + Dashboard.alert({ + message: Globalize.translate('ErrorPleaseSelectLineup') + }); + return; + } + + Dashboard.showLoadingMsg(); + + var providerId = getParameterByName('id'); + var id = providerId; + + ApiClient.getNamedConfiguration("livetv").done(function (config) { + + var info = config.ListingProviders.filter(function (i) { + return i.Id == id; + })[0]; + + info.ZipCode = page.querySelector('.txtZipCode').value; + info.Country = $('#selectCountry', page).val(); + info.ListingsId = selectedListingsId; + + ApiClient.ajax({ + type: "POST", + url: ApiClient.getUrl('LiveTv/ListingProviders', { + ValidateListings: true + }), + data: JSON.stringify(info), + contentType: "application/json" + + }).done(function (result) { + + Dashboard.processServerConfigurationUpdateResult(); + + }).fail(function () { + Dashboard.alert({ + message: Globalize.translate('ErrorSavingTvProvider') + }); + }); + + }); + } + + function refreshListings(page, value) { + + if (!value) { + $('#selectListing', page).html('').selectmenu('refresh'); + return; + } + + var providerId = getParameterByName('id'); + + Dashboard.showModalLoadingMsg(); + + ApiClient.ajax({ + type: "GET", + url: ApiClient.getUrl('LiveTv/ListingProviders/Lineups', { + Id: providerId, + Location: value, + Country: $('#selectCountry', page).val() + }), + dataType: 'json' + + }).done(function (result) { + + $('#selectListing', page).html(result.map(function (o) { + + return ''; + + })).selectmenu('refresh'); + + if (listingsId) { + $('#selectListing', page).val(listingsId).selectmenu('refresh'); + } + + Dashboard.hideModalLoadingMsg(); + + }).fail(function (result) { + + Dashboard.alert({ + message: Globalize.translate('ErrorGettingTvLineups') + }); + refreshListings(page, ''); + Dashboard.hideModalLoadingMsg(); + + }); + + } + + $(document).on('pageinitdepends', "#liveTvGuideProviderPage", function () { + + var page = this; + + $('.formListings', page).on('submit', function () { + submitListingsForm(page); + return false; + }); + + $('.txtZipCode', page).on('change', function () { + refreshListings(page, this.value); + }); + + }).on('pageshowready', "#liveTvGuideProviderPage", function () { + + var providerId = getParameterByName('id'); + var page = this; + reload(page, providerId); + }); + +})(jQuery, document, window); diff --git a/dashboard-ui/scripts/livetvstatus.js b/dashboard-ui/scripts/livetvstatus.js index 416498984..b7bcb6037 100644 --- a/dashboard-ui/scripts/livetvstatus.js +++ b/dashboard-ui/scripts/livetvstatus.js @@ -377,6 +377,8 @@ case 'schedulesdirect': return 'livetvguideprovider-scd.html'; + case 'emby': + return 'livetvguideprovider.html'; default: break; } @@ -386,9 +388,14 @@ var menuItems = []; + //menuItems.push({ + // name: 'Schedules Direct', + // id: 'SchedulesDirect' + //}); + menuItems.push({ - name: 'Schedules Direct', - id: 'SchedulesDirect' + name: 'Emby Guide', + id: 'emby' }); require(['actionsheet'], function () { diff --git a/dashboard-ui/scripts/search.js b/dashboard-ui/scripts/search.js index 2aab58a72..5dcfaae34 100644 --- a/dashboard-ui/scripts/search.js +++ b/dashboard-ui/scripts/search.js @@ -50,6 +50,10 @@ return [Globalize.translate('LabelCollection')]; } + else if (hint.ChannelName) { + + return [hint.ChannelName]; + } return [hint.Type]; } diff --git a/dashboard-ui/strings/html/server.json b/dashboard-ui/strings/html/server.json index 67311c970..cfdd28663 100644 --- a/dashboard-ui/strings/html/server.json +++ b/dashboard-ui/strings/html/server.json @@ -1516,5 +1516,6 @@ "ButtonSyncSettingsHelp": "Configure your sync settings", "LabelTranscodingThreadCount": "Transcoding thread count:", "LabelTranscodingThreadCountHelp": "Select the maximum number of threads to use when transcoding. Reducing the thread count will lower cpu usage but may not convert fast enough for a smooth playback experience.", - "OptionMax": "Max" + "OptionMax": "Max", + "HeaderEmbyGuide": "Emby Guide" } diff --git a/dashboard-ui/strings/javascript/javascript.json b/dashboard-ui/strings/javascript/javascript.json index 253126412..b5000c25b 100644 --- a/dashboard-ui/strings/javascript/javascript.json +++ b/dashboard-ui/strings/javascript/javascript.json @@ -824,7 +824,7 @@ "HeaderAddProvider": "Add Provider", "ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.", "ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.", - "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your username and password are correct and try again.", + "ErrorGettingTvLineups": "There was an error downloading tv lineups. Please ensure your information is correct and try again.", "MessageCreateAccountAt": "Create an account at {0}", "ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.", "HeaderTryCinemaMode": "Try Cinema Mode",