1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update tuner setup

This commit is contained in:
Luke Pulverenti 2015-07-23 09:23:22 -04:00
parent 8ef120c759
commit 86dea1fa4c
14 changed files with 394 additions and 248 deletions

View file

@ -383,8 +383,6 @@
$('.itemCommunityRating', page).html(LibraryBrowser.getRatingHtml(item));
LibraryBrowser.renderBudget($('#itemBudget', page), item);
LibraryBrowser.renderRevenue($('#itemRevenue', page), item);
LibraryBrowser.renderAwardSummary($('#awardSummary', page), item);
$('.itemMiscInfo', page).html(LibraryBrowser.getMiscInfoHtml(item));
@ -405,7 +403,6 @@
}
renderTags(page, item);
renderKeywords(page, item);
renderSeriesAirTime(page, item, context);
@ -712,25 +709,6 @@
}
}
function renderKeywords(page, item) {
if (item.Keywords && item.Keywords.length) {
var html = '';
html += '<p>' + Globalize.translate('HeaderPlotKeywords') + '</p>';
for (var i = 0, length = item.Keywords.length; i < length; i++) {
html += '<div class="itemTag">' + item.Keywords[i] + '</div>';
}
$('.itemKeywords', page).show().html(html);
} else {
$('.itemKeywords', page).hide();
}
}
function getEpisodesFunction(seriesId, query) {
query = $.extend({}, query);

View file

@ -0,0 +1,160 @@
(function ($, document, window) {
var providerId;
var listingsId;
function reload(page) {
ApiClient.getNamedConfiguration("livetv").done(function (config) {
var info = config.ListingProviders.filter(function (i) {
return i.Id == providerId;
})[0];
listingsId = info.ListingsId;
$('#selectListing', page).val(info.ListingsId || '').selectmenu('refresh');
$('#txtZipCode', page).val(info.ZipCode || '').trigger('change');
$('#txtUser', page).val(info.Username || '');
});
}
function submitLoginForm(page) {
Dashboard.showLoadingMsg();
var info = {
Type: 'SchedulesDirect',
Username: $('#txtUser', page).val(),
Password: CryptoJS.SHA1($('#txtPass', page).val()).toString()
};
var id = providerId;
if (id) {
info.Id = id;
}
ApiClient.ajax({
type: "POST",
url: ApiClient.getUrl('LiveTv/ListingProviders'),
data: JSON.stringify(info),
contentType: "application/json"
}).done(function (result) {
Dashboard.processServerConfigurationUpdateResult();
}).fail(function () {
Dashboard.alert({
message: Globalize.translate('ErrorSavingTvProvider')
});
});
}
function submitListingsForm(page) {
Dashboard.showLoadingMsg();
var id = providerId;
ApiClient.getNamedConfiguration("livetv").done(function (config) {
var info = config.ListingProviders.filter(function (i) {
return i.Id == id;
})[0];
info.ZipCode = $('#txtZipCode', page).val();
info.ListingsId = $('#selectListing', page).val();
ApiClient.ajax({
type: "POST",
url: ApiClient.getUrl('LiveTv/ListingProviders'),
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;
}
Dashboard.showModalLoadingMsg();
ApiClient.ajax({
type: "GET",
url: ApiClient.getUrl('LiveTv/ListingProviders/Lineups', {
Id: providerId,
Location: value
}),
dataType: 'json'
}).done(function (result) {
$('#selectListing', page).html(result.map(function (o) {
return '<option value="' + o.Id + '">' + o.name + '</option>';
})).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', "#liveTvGuideProviderScdPage", function () {
var page = this;
$('.formLogin', page).on('submit', function () {
submitLoginForm(page);
return false;
});
$('.formListings', page).on('submit', function () {
submitListingsForm(page);
return false;
});
$('#txtZipCode', page).on('change', function () {
refreshListings(page, this.value);
});
}).on('pageshowready', "#liveTvGuideProviderScdPage", function () {
providerId = getParameterByName('id');
var page = this;
reload(page);
});
})(jQuery, document, window);

View file

@ -1,111 +0,0 @@
(function ($, document, window) {
function loadPage(page) {
ApiClient.getNamedConfiguration("livetv").done(function (config) {
renderProviders(page, config.ListingProviders);
Dashboard.hideLoadingMsg();
});
}
function renderProviders(page, providers) {
var html = '';
html += '<ul data-role="listview" data-inset="true" data-split-icon="delete">';
for (var i = 0, length = providers.length; i < length; i++) {
var provider = providers[i];
html += '<li>';
html += '<a href="#">';
html += '<h3>';
html += provider.Name;
html += '</h3>';
html += '</a>';
html += '<a href="#" class="btnDelete">';
html += '</a>';
html += '</li>';
}
html += '</ul>';
var elem = $('.providerList', page).html(html).trigger('create');
$('.btnDelete', elem).on('click', function () {
var id = this.getAttribute('data-id');
deleteProvider(page, id);
});
}
function deleteProvider(page, id) {
var message = Globalize.translate('MessageConfirmDeleteGuideProvider');
Dashboard.confirm(message, Globalize.translate('HeaderDeleteProvider'), function (confirmResult) {
if (confirmResult) {
Dashboard.showLoadingMsg();
ApiClient.ajax({
type: "DELETE",
url: ApiClient.getUrl('LiveTv/TunerHosts', {
Id: id
})
}).done(function () {
loadPage(page);
});
}
});
}
function submitAddProviderForm(page) {
page.querySelector('.dlgAddProvider').close();
Dashboard.showLoadingMsg();
ApiClient.ajax({
type: "POST",
url: ApiClient.getUrl('LiveTv/TunerHosts'),
data: JSON.stringify({
Type: $('#selectTunerDeviceType', page).val(),
Url: $('#txtDevicePath', page).val()
}),
contentType: "application/json"
}).done(function () {
loadPage(page);
});
}
$(document).on('pageinitdepends', "#liveTvGuideSettingsPage", function () {
var page = this;
$('.btnAddProvider', page).on('click', function () {
page.querySelector('.dlgAddProvider').open();
});
$('.formAddProvider', page).on('submit', function () {
submitAddProviderForm(page);
return false;
});
}).on('pageshowready', "#liveTvGuideSettingsPage", function () {
var page = this;
loadPage(page);
});
})(jQuery, document, window);

View file

@ -1,16 +1,9 @@
(function ($, document, window) {
function loadPage(page, config, liveTvInfo) {
function loadPage(page, config) {
if (liveTvInfo.IsEnabled) {
$('.liveTvSettingsForm', page).show();
$('.noLiveTvServices', page).hide();
} else {
$('.liveTvSettingsForm', page).hide();
$('.noLiveTvServices', page).show();
}
$('.liveTvSettingsForm', page).show();
$('.noLiveTvServices', page).hide();
$('#selectGuideDays', page).val(config.GuideDays || '').selectmenu('refresh');
@ -47,13 +40,9 @@
var page = this;
var promise1 = ApiClient.getNamedConfiguration("livetv");
ApiClient.getNamedConfiguration("livetv").done(function (config) {
var promise2 = ApiClient.getLiveTvInfo();
$.when(promise1, promise2).done(function (response1, response2) {
loadPage(page, response1[0], response2[0]);
loadPage(page, config);
});

View file

@ -177,6 +177,7 @@
ApiClient.getNamedConfiguration("livetv").done(function (config) {
renderDevices(page, config.TunerHosts);
renderProviders(page, config.ListingProviders);
});
Dashboard.hideLoadingMsg();
@ -210,7 +211,7 @@
html += '</p>';
html += '</a>';
html += '<a href="#" class="btnDeleteDevice">';
html += '<a href="#" class="btnDeleteDevice" data-id="' + device.Id + '">';
html += '</a>';
html += '</li>';
}
@ -279,15 +280,128 @@
}).done(function () {
reload(page);
}).fail(function () {
Dashboard.alert({
message: Globalize.translate('ErrorAddingTunerDevice')
});
});
}
function renderProviders(page, providers) {
var html = '';
html += '<ul data-role="listview" data-inset="true" data-split-icon="delete">';
for (var i = 0, length = providers.length; i < length; i++) {
var provider = providers[i];
html += '<li>';
html += '<a href="' + getProviderConfigurationUrl(provider.Type) + '?id=' + provider.Id + '">';
html += '<h3>';
html += getProviderName(provider.Type);
html += '</h3>';
html += '</a>';
html += '<a href="#" class="btnDelete" data-id="' + provider.Id + '">';
html += '</a>';
html += '</li>';
}
html += '</ul>';
var elem = $('.providerList', page).html(html).trigger('create');
$('.btnDelete', elem).on('click', function () {
var id = this.getAttribute('data-id');
deleteProvider(page, id);
});
}
function deleteProvider(page, id) {
var message = Globalize.translate('MessageConfirmDeleteGuideProvider');
Dashboard.confirm(message, Globalize.translate('HeaderDeleteProvider'), function (confirmResult) {
if (confirmResult) {
Dashboard.showLoadingMsg();
ApiClient.ajax({
type: "DELETE",
url: ApiClient.getUrl('LiveTv/ListingProviders', {
Id: id
})
}).always(function () {
reload(page);
});
}
});
}
function getProviderName(providerId) {
providerId = providerId.toLowerCase();
switch (providerId) {
case 'schedulesdirect':
return 'Schedules Direct';
default:
return 'Unknown';
}
}
function getProviderConfigurationUrl(providerId) {
providerId = providerId.toLowerCase();
switch (providerId) {
case 'schedulesdirect':
return 'livetvguideprovider-scd.html';
default:
break;
}
}
function addProvider(button) {
var menuItems = [];
menuItems.push({
name: 'Schedules Direct (USA / Canada)',
id: 'SchedulesDirect'
});
require(['actionsheet'], function () {
ActionSheetElement.show({
items: menuItems,
positionTo: button,
callback: function (id) {
Dashboard.navigate(getProviderConfigurationUrl(id));
}
});
});
}
$(document).on('pageinitdepends', "#liveTvStatusPage", function () {
var page = this;
$('.btnAddDevice', page).on('click', function () {
$('#txtDevicePath', page).val('');
page.querySelector('.dlgAddDevice').open();
});
@ -296,6 +410,10 @@
return false;
});
$('.btnAddProvider', page).on('click', function () {
addProvider(this);
});
}).on('pageshowready', "#liveTvStatusPage", function () {
var page = this;

View file

@ -139,12 +139,15 @@
profile.MusicStreamingTranscodingBitrate = Math.min(bitrateSetting, 192000);
profile.DirectPlayProfiles = [];
profile.DirectPlayProfiles.push({
Container: 'mp4,m4v',
Type: 'Video',
VideoCodec: 'h264',
AudioCodec: 'aac,mp3'
});
if (canPlayH264()) {
profile.DirectPlayProfiles.push({
Container: 'mp4,m4v',
Type: 'Video',
VideoCodec: 'h264',
AudioCodec: 'aac,mp3'
});
}
if ($.browser.chrome) {
profile.DirectPlayProfiles.push({
@ -1717,11 +1720,20 @@
}
}
function canPlayH264() {
if (navigator.userAgent.toLowerCase().indexOf('firefox') != -1) {
return false;
}
return true;
}
self._canPlayWebm = null;
self.canPlayWebm = function () {
if (self._canPlayWebm == null) {
self._canPlayWebm = ($.browser.android && AppInfo.isNativeApp) || document.createElement('video').canPlayType('video/webm').replace(/no/, '');
self._canPlayWebm = document.createElement('video').canPlayType('video/webm').replace(/no/, '');
}
return self._canPlayWebm;
};

View file

@ -112,8 +112,8 @@ var Dashboard = {
}
}
return;
Dashboard.hideLoadingMsg();
}
Dashboard.hideLoadingMsg();
},
getCurrentUser: function () {
@ -518,8 +518,8 @@ var Dashboard = {
},
showModalLoadingMsg: function () {
Dashboard.showLoadingMsg();
Dashboard.getModalLoadingMsg().show();
Dashboard.showLoadingMsg();
},
hideModalLoadingMsg: function () {