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

update live tv screens

This commit is contained in:
Luke Pulverenti 2016-10-13 11:07:21 -04:00
parent c5df20e53c
commit fb7730efd3
15 changed files with 77 additions and 57 deletions

View file

@ -14,12 +14,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.299", "version": "1.4.301",
"_release": "1.4.299", "_release": "1.4.301",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.299", "tag": "1.4.301",
"commit": "7e708cf27aa74f7f0d0aaa30d95d3e1f09b71ce3" "commit": "641d27d968fc4dfd461f74b208f51905bab1926b"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1", "_target": "^1.2.1",

View file

@ -356,8 +356,9 @@ button {
right: 0; right: 0;
margin: 0 .35em .5em 0; margin: 0 .35em .5em 0;
z-index: 1; z-index: 1;
padding: 6px;
/*opacity: 0; /*opacity: 0;
transition: opacity 0.5s ease-in; /* vendorless fallback */ */; transition: opacity 0.5s ease-in; */
} }
/*.card:hover .cardOverlayButton { /*.card:hover .cardOverlayButton {

View file

@ -38,7 +38,6 @@
background: transparent; background: transparent;
box-shadow: none; box-shadow: none;
text-transform: uppercase; text-transform: uppercase;
color: #52B54B;
} }
.emby-button > i { .emby-button > i {
@ -151,8 +150,8 @@
} }
.paper-icon-button-light > i { .paper-icon-button-light > i {
width: auto; width: 1em;
height: auto; height: 1em;
font-size: 1.6em; font-size: 1.6em;
/* Make sure its on top of the ripple */ /* Make sure its on top of the ripple */
position: relative; position: relative;

View file

@ -157,7 +157,7 @@ define(['datetime', 'globalize', 'embyRouter', 'itemHelper', 'material-icons', '
if (options.year !== false && item.ProductionYear && item.Type == "Series") { if (options.year !== false && item.ProductionYear && item.Type == "Series") {
if (item.Status == "Continuing") { if (item.Status == "Continuing") {
miscInfo.push(globalize.translate('sharedcomponents#ValueSeriesYearToPresent', item.ProductionYear)); miscInfo.push(globalize.translate('sharedcomponents#SeriesYearToPresent', item.ProductionYear));
} }
else if (item.ProductionYear) { else if (item.ProductionYear) {

View file

@ -148,7 +148,7 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
features.push('fullscreen'); features.push('fullscreen');
} }
if (browser.chrome || (browser.safari && !browser.mobile)) { if (browser.chrome || (browser.safari && !browser.slow) || (browser.edge && !browser.slow)) {
features.push('imageanalysis'); features.push('imageanalysis');
} }
@ -160,7 +160,7 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
var version = window.dashboardVersion || '3.0'; var version = window.dashboardVersion || '3.0';
return { return {
dvrFeatureCode: Dashboard.isConnectMode() ? 'dvr' : 'dvrl', dvrFeatureCode: Dashboard.isConnectMode() ? 'dvr' : 'dvr-l',
getWindowState: function () { getWindowState: function () {
return document.windowState || 'Normal'; return document.windowState || 'Normal';
}, },

View file

@ -100,7 +100,7 @@
showParentTitle: section.showParentTitle, showParentTitle: section.showParentTitle,
scalable: true, scalable: true,
overlayPlayButton: section.overlayPlayButton, overlayPlayButton: section.overlayPlayButton,
overlayMoreButton: section.overlayMoreButton, overlayMoreButton: section.overlayMoreButton && !cardLayout,
action: section.action, action: section.action,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
cardLayout: cardLayout, cardLayout: cardLayout,

View file

@ -144,7 +144,7 @@
<div class="pageTabContent ehsContent" id="scheduleTab" data-index="4"> <div class="pageTabContent ehsContent" id="scheduleTab" data-index="4">
<div id="activeRecordings" class="homePageSection hide"> <div id="activeRecordings" class="homePageSection hide">
<h1 class="listHeader">${HeaderActiveRecordings}</h1> <h1 class="listHeader">${HeaderActiveRecordings}</h1>
<div class="recordingItems"></div> <div is="emby-itemscontainer" class="recordingItems itemsContainer"></div>
<br /> <br />
</div> </div>
<div id="upcomingRecordings" class="homePageSection hide"> <div id="upcomingRecordings" class="homePageSection hide">

View file

@ -64,7 +64,7 @@
preferThumb: !query.IsMovie && params.type != 'RecordingSeries', preferThumb: !query.IsMovie && params.type != 'RecordingSeries',
inheritThumb: params.type == 'Recordings', inheritThumb: params.type == 'Recordings',
context: 'livetv', context: 'livetv',
centerText: true, centerText: !supportsImageAnalysis,
lazy: true, lazy: true,
overlayText: false, overlayText: false,
showParentTitleOrTitle: true, showParentTitleOrTitle: true,

View file

@ -90,7 +90,8 @@
centerText: !cardLayout, centerText: !cardLayout,
vibrant: supportsImageAnalysis, vibrant: supportsImageAnalysis,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
preferThumb: 'auto' preferThumb: 'auto',
overlayText: false
}, cardOptions || {})); }, cardOptions || {}));
@ -120,8 +121,7 @@
cardLayout: true, cardLayout: true,
vibrant: true, vibrant: true,
preferThumb: true, preferThumb: true,
coverImage: true, coverImage: true
overlayText: false
}); });
}); });
} }
@ -217,6 +217,7 @@
var moviesPromise; var moviesPromise;
var seriesPromise; var seriesPromise;
var latestPromise; var latestPromise;
var lastFullRender = 0;
categorysyncbuttons.init(tabContent); categorysyncbuttons.init(tabContent);
@ -229,6 +230,10 @@
self.renderTab(); self.renderTab();
}); });
function enableFullRender() {
return (new Date().getTime() - lastFullRender) > 300000;
}
self.preRender = function () { self.preRender = function () {
activeRecordingsPromise = ApiClient.getLiveTvRecordings({ activeRecordingsPromise = ApiClient.getLiveTvRecordings({
@ -240,6 +245,10 @@
EnableImageTypes: "Primary,Thumb,Backdrop" EnableImageTypes: "Primary,Thumb,Backdrop"
}); });
if (!enableFullRender()) {
return;
}
latestPromise = ApiClient.getLiveTvRecordings({ latestPromise = ApiClient.getLiveTvRecordings({
UserId: Dashboard.getCurrentUserId(), UserId: Dashboard.getCurrentUserId(),
@ -291,23 +300,29 @@
}; };
self.renderTab = function () { self.renderTab = function () {
Dashboard.showLoadingMsg();
renderActiveRecordings(tabContent, activeRecordingsPromise); renderActiveRecordings(tabContent, activeRecordingsPromise);
renderLatestRecordings(tabContent, latestPromise);
renderMovieRecordings(tabContent, moviesPromise);
renderEpisodeRecordings(tabContent, seriesPromise);
renderSportsRecordings(tabContent, sportsPromise);
renderKidsRecordings(tabContent, kidsPromise);
ApiClient.getLiveTvRecordingGroups({ if (enableFullRender()) {
Dashboard.showLoadingMsg();
userId: Dashboard.getCurrentUserId() renderLatestRecordings(tabContent, latestPromise);
renderMovieRecordings(tabContent, moviesPromise);
renderEpisodeRecordings(tabContent, seriesPromise);
renderSportsRecordings(tabContent, sportsPromise);
renderKidsRecordings(tabContent, kidsPromise);
}).then(function (result) { ApiClient.getLiveTvRecordingGroups({
renderRecordingGroups(tabContent, result.Items); userId: Dashboard.getCurrentUserId()
});
}).then(function (result) {
renderRecordingGroups(tabContent, result.Items);
});
lastFullRender = new Date().getTime();
}
}; };
}; };

View file

@ -103,9 +103,12 @@
}); });
} }
function reload(page) { var lastFullRender = 0;
function enableFullRender() {
return (new Date().getTime() - lastFullRender) > 300000;
}
loadRecommendedPrograms(page); function reload(page) {
renderActiveRecordings(page, ApiClient.getLiveTvRecordings({ renderActiveRecordings(page, ApiClient.getLiveTvRecordings({
UserId: Dashboard.getCurrentUserId(), UserId: Dashboard.getCurrentUserId(),
@ -115,6 +118,12 @@
EnableImageTypes: "Primary,Thumb,Backdrop" EnableImageTypes: "Primary,Thumb,Backdrop"
})); }));
if (!enableFullRender()) {
return;
}
loadRecommendedPrograms(page);
ApiClient.getLiveTvRecommendedPrograms({ ApiClient.getLiveTvRecommendedPrograms({
userId: Dashboard.getCurrentUserId(), userId: Dashboard.getCurrentUserId(),
@ -181,6 +190,7 @@
renderItems(page, result.Items, 'upcomingKidsItems'); renderItems(page, result.Items, 'upcomingKidsItems');
}); });
lastFullRender = new Date().getTime();
} }
function renderItems(page, items, sectionClass, overlayButton, shape) { function renderItems(page, items, sectionClass, overlayButton, shape) {

View file

@ -148,8 +148,8 @@
dlg.classList.add('promptDialog'); dlg.classList.add('promptDialog');
html += '<div class="promptDialogContent" style="padding:1em;">'; html += '<div class="promptDialogContent" style="padding:1.5em;">';
html += '<h2>'; html += '<h2 style="margin-top:.5em;">';
html += (playerInfo.deviceName || playerInfo.name); html += (playerInfo.deviceName || playerInfo.name);
html += '</h2>'; html += '</h2>';
@ -157,7 +157,7 @@
if (playerInfo.supportedCommands.indexOf('DisplayContent') != -1) { if (playerInfo.supportedCommands.indexOf('DisplayContent') != -1) {
html += '<label class="checkboxContainer" style="margin-bottom:0;">'; html += '<label class="checkboxContainer">';
var checkedHtml = MediaController.enableDisplayMirroring() ? ' checked' : ''; var checkedHtml = MediaController.enableDisplayMirroring() ? ' checked' : '';
html += '<input type="checkbox" is="emby-checkbox" class="chkMirror"' + checkedHtml + '/>'; html += '<input type="checkbox" is="emby-checkbox" class="chkMirror"' + checkedHtml + '/>';
html += '<span>' + Globalize.translate('OptionEnableDisplayMirroring') + '</span>'; html += '<span>' + Globalize.translate('OptionEnableDisplayMirroring') + '</span>';
@ -166,15 +166,11 @@
html += '</div>'; html += '</div>';
html += '<div class="promptDialogButtons">'; html += '<div style="margin-top:1em;display:flex;justify-content: flex-end;">';
// On small layouts papepr dialog doesn't respond very well. this button isn't that important here anyway. html += '<button is="emby-button" type="button" class="button-flat button-accent-flat btnRemoteControl promptDialogButton">' + Globalize.translate('ButtonRemoteControl') + '</button>';
if (screen.availWidth >= 600) { html += '<button is="emby-button" type="button" class="button-flat button-accent-flat btnDisconnect promptDialogButton ">' + Globalize.translate('ButtonDisconnect') + '</button>';
html += '<button is="emby-button" type="button" class="btnRemoteControl promptDialogButton">' + Globalize.translate('ButtonRemoteControl') + '</button>'; html += '<button is="emby-button" type="button" class="button-flat button-accent-flat btnCancel promptDialogButton">' + Globalize.translate('ButtonCancel') + '</button>';
}
html += '<button is="emby-button" type="button" class="btnDisconnect promptDialogButton">' + Globalize.translate('ButtonDisconnect') + '</button>';
html += '<button is="emby-button" type="button" class="btnCancel promptDialogButton">' + Globalize.translate('ButtonCancel') + '</button>';
html += '</div>'; html += '</div>';
html += '</div>'; html += '</div>';

View file

@ -1,4 +1,4 @@
<div id="wizardGuidePage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardlivetvguide,emby-button"> <div id="wizardGuidePage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardlivetvguide,emby-button,emby-select">
<div data-role="content"> <div data-role="content">
@ -12,15 +12,13 @@
</div> </div>
<br /> <br />
<div> <div class="selectContainer">
<label for="selectType" class="selectLabel">${LabelDataProvider}</label> <select is="emby-select" id="selectType" label="${LabelDataProvider}" required="required">
<select id="selectType" data-mini="true" required="required">
<option value="SchedulesDirect">Schedules Direct</option> <option value="SchedulesDirect">Schedules Direct</option>
<option value="xmltv">Xml TV</option> <option value="xmltv">Xml TV</option>
</select> </select>
<div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div> <div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div>
</div> </div>
<br />
<div class="providerTemplate"> <div class="providerTemplate">
</div> </div>

View file

@ -1,4 +1,4 @@
<div id="wizardTunerPage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardlivetvtuner,emby-input,emby-button"> <div id="wizardTunerPage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardlivetvtuner,emby-input,emby-button,emby-select">
<div data-role="content"> <div data-role="content">
@ -13,14 +13,12 @@
</div> </div>
<br /> <br />
<div> <div class="selectContainer">
<label for="selectTunerType" class="selectLabel">${LabelTunerType}</label> <select is="emby-select" id="selectTunerType" label="${LabelTunerType}" required="required">
<select id="selectTunerType" data-mini="true" required="required">
<option value="hdhomerun">HDHomerun</option> <option value="hdhomerun">HDHomerun</option>
</select> </select>
<div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div> <div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div>
</div> </div>
<br />
<div class="inputContainer"> <div class="inputContainer">
<input is="emby-input" class="txtDevicePath" label="${LabelTunerIpAddress}" required="required" /> <input is="emby-input" class="txtDevicePath" label="${LabelTunerIpAddress}" required="required" />
<div class="fieldDescription">${HelpMoreTunersCanBeAdded}</div> <div class="fieldDescription">${HelpMoreTunersCanBeAdded}</div>

View file

@ -1,4 +1,4 @@
<div id="wizardStartPage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardstartpage,emby-button"> <div id="wizardStartPage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardstartpage,emby-button,emby-select">
<div data-role="content"> <div data-role="content">
@ -15,9 +15,8 @@
<br style="clear:both;" /> <br style="clear:both;" />
<p>${ThisWizardWillGuideYou}</p> <p>${ThisWizardWillGuideYou}</p>
<br /> <br />
<div> <div class="selectContainer">
<label for="selectLocalizationLanguage" class="selectLabel">${LabelPreferredDisplayLanguage}</label> <select is="emby-select" id="selectLocalizationLanguage" label="${LabelPreferredDisplayLanguage}"></select>
<select id="selectLocalizationLanguage" data-mini="true"></select>
</div> </div>
<br /> <br />

View file

@ -14,8 +14,12 @@
<input is="emby-input" type="text" id="txtUsername" label="${LabelYourFirstName}" required="required" /> <input is="emby-input" type="text" id="txtUsername" label="${LabelYourFirstName}" required="required" />
<div class="fieldDescription">${MoreUsersCanBeAddedLater}</div> <div class="fieldDescription">${MoreUsersCanBeAddedLater}</div>
</div> </div>
<br /> <h1 style="margin-bottom:.25em;">${HeaderOptionalLinkEmbyAccount}</h1> <br />
<br /> <div class="inputContainer">
<h1 style="margin-bottom:.25em;">${HeaderOptionalLinkEmbyAccount}</h1>
<br />
<div class="inputContainer">
<input is="emby-input" type="text" id="txtConnectUserName" label="${LabelConnectUserName}" /> <input is="emby-input" type="text" id="txtConnectUserName" label="${LabelConnectUserName}" />
<div class="fieldDescription"> <div class="fieldDescription">
<div>${LabelConnectUserNameHelp}</div> <div>${LabelConnectUserNameHelp}</div>