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": {},
"ignore": [],
"version": "1.4.299",
"_release": "1.4.299",
"version": "1.4.301",
"_release": "1.4.301",
"_resolution": {
"type": "version",
"tag": "1.4.299",
"commit": "7e708cf27aa74f7f0d0aaa30d95d3e1f09b71ce3"
"tag": "1.4.301",
"commit": "641d27d968fc4dfd461f74b208f51905bab1926b"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1",

View file

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

View file

@ -38,7 +38,6 @@
background: transparent;
box-shadow: none;
text-transform: uppercase;
color: #52B54B;
}
.emby-button > i {
@ -151,8 +150,8 @@
}
.paper-icon-button-light > i {
width: auto;
height: auto;
width: 1em;
height: 1em;
font-size: 1.6em;
/* Make sure its on top of the ripple */
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 (item.Status == "Continuing") {
miscInfo.push(globalize.translate('sharedcomponents#ValueSeriesYearToPresent', item.ProductionYear));
miscInfo.push(globalize.translate('sharedcomponents#SeriesYearToPresent', item.ProductionYear));
}
else if (item.ProductionYear) {

View file

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

View file

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

View file

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

View file

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

View file

@ -90,7 +90,8 @@
centerText: !cardLayout,
vibrant: supportsImageAnalysis,
allowBottomPadding: !enableScrollX(),
preferThumb: 'auto'
preferThumb: 'auto',
overlayText: false
}, cardOptions || {}));
@ -120,8 +121,7 @@
cardLayout: true,
vibrant: true,
preferThumb: true,
coverImage: true,
overlayText: false
coverImage: true
});
});
}
@ -217,6 +217,7 @@
var moviesPromise;
var seriesPromise;
var latestPromise;
var lastFullRender = 0;
categorysyncbuttons.init(tabContent);
@ -229,6 +230,10 @@
self.renderTab();
});
function enableFullRender() {
return (new Date().getTime() - lastFullRender) > 300000;
}
self.preRender = function () {
activeRecordingsPromise = ApiClient.getLiveTvRecordings({
@ -240,6 +245,10 @@
EnableImageTypes: "Primary,Thumb,Backdrop"
});
if (!enableFullRender()) {
return;
}
latestPromise = ApiClient.getLiveTvRecordings({
UserId: Dashboard.getCurrentUserId(),
@ -291,9 +300,12 @@
};
self.renderTab = function () {
Dashboard.showLoadingMsg();
renderActiveRecordings(tabContent, activeRecordingsPromise);
if (enableFullRender()) {
Dashboard.showLoadingMsg();
renderLatestRecordings(tabContent, latestPromise);
renderMovieRecordings(tabContent, moviesPromise);
renderEpisodeRecordings(tabContent, seriesPromise);
@ -308,6 +320,9 @@
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({
UserId: Dashboard.getCurrentUserId(),
@ -115,6 +118,12 @@
EnableImageTypes: "Primary,Thumb,Backdrop"
}));
if (!enableFullRender()) {
return;
}
loadRecommendedPrograms(page);
ApiClient.getLiveTvRecommendedPrograms({
userId: Dashboard.getCurrentUserId(),
@ -181,6 +190,7 @@
renderItems(page, result.Items, 'upcomingKidsItems');
});
lastFullRender = new Date().getTime();
}
function renderItems(page, items, sectionClass, overlayButton, shape) {

View file

@ -148,8 +148,8 @@
dlg.classList.add('promptDialog');
html += '<div class="promptDialogContent" style="padding:1em;">';
html += '<h2>';
html += '<div class="promptDialogContent" style="padding:1.5em;">';
html += '<h2 style="margin-top:.5em;">';
html += (playerInfo.deviceName || playerInfo.name);
html += '</h2>';
@ -157,7 +157,7 @@
if (playerInfo.supportedCommands.indexOf('DisplayContent') != -1) {
html += '<label class="checkboxContainer" style="margin-bottom:0;">';
html += '<label class="checkboxContainer">';
var checkedHtml = MediaController.enableDisplayMirroring() ? ' checked' : '';
html += '<input type="checkbox" is="emby-checkbox" class="chkMirror"' + checkedHtml + '/>';
html += '<span>' + Globalize.translate('OptionEnableDisplayMirroring') + '</span>';
@ -166,15 +166,11 @@
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.
if (screen.availWidth >= 600) {
html += '<button is="emby-button" type="button" class="btnRemoteControl promptDialogButton">' + Globalize.translate('ButtonRemoteControl') + '</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 += '<button is="emby-button" type="button" class="button-flat button-accent-flat btnRemoteControl promptDialogButton">' + Globalize.translate('ButtonRemoteControl') + '</button>';
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="button-flat button-accent-flat btnCancel promptDialogButton">' + Globalize.translate('ButtonCancel') + '</button>';
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">
@ -12,15 +12,13 @@
</div>
<br />
<div>
<label for="selectType" class="selectLabel">${LabelDataProvider}</label>
<select id="selectType" data-mini="true" required="required">
<div class="selectContainer">
<select is="emby-select" id="selectType" label="${LabelDataProvider}" required="required">
<option value="SchedulesDirect">Schedules Direct</option>
<option value="xmltv">Xml TV</option>
</select>
<div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div>
</div>
<br />
<div class="providerTemplate">
</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">
@ -13,14 +13,12 @@
</div>
<br />
<div>
<label for="selectTunerType" class="selectLabel">${LabelTunerType}</label>
<select id="selectTunerType" data-mini="true" required="required">
<div class="selectContainer">
<select is="emby-select" id="selectTunerType" label="${LabelTunerType}" required="required">
<option value="hdhomerun">HDHomerun</option>
</select>
<div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div>
</div>
<br />
<div class="inputContainer">
<input is="emby-input" class="txtDevicePath" label="${LabelTunerIpAddress}" required="required" />
<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">
@ -15,9 +15,8 @@
<br style="clear:both;" />
<p>${ThisWizardWillGuideYou}</p>
<br />
<div>
<label for="selectLocalizationLanguage" class="selectLabel">${LabelPreferredDisplayLanguage}</label>
<select id="selectLocalizationLanguage" data-mini="true"></select>
<div class="selectContainer">
<select is="emby-select" id="selectLocalizationLanguage" label="${LabelPreferredDisplayLanguage}"></select>
</div>
<br />

View file

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