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

Merge pull request #1746 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-05-18 17:48:47 -04:00
commit 02c1ef94fb
24 changed files with 299 additions and 127 deletions

View file

@ -16,12 +16,12 @@
},
"devDependencies": {},
"ignore": [],
"version": "1.3.43",
"_release": "1.3.43",
"version": "1.3.45",
"_release": "1.3.45",
"_resolution": {
"type": "version",
"tag": "1.3.43",
"commit": "201076c748374aa6fed4be70ec43198099854aa8"
"tag": "1.3.45",
"commit": "dbaa46e3aa38a939b82f305c61e875e1a30da2fe"
},
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0",

View file

@ -217,7 +217,16 @@
var keyframes = [
{ transform: 'scale(0)', offset: 0 },
{ transform: 'scale(1,1)', offset: 1 }];
{ transform: 'none', offset: 1 }];
var timing = elem.animationConfig.entry.timing;
return elem.animate(keyframes, timing).onfinish = onFinish;
}
function slideUp(elem, onFinish) {
var keyframes = [
{ transform: 'translate3d(0,30%,0)', opacity: 0, offset: 0 },
{ transform: 'none', opacity: 1, offset: 1 }];
var timing = elem.animationConfig.entry.timing;
return elem.animate(keyframes, timing).onfinish = onFinish;
}
@ -240,6 +249,15 @@
return elem.animate(keyframes, timing);
}
function slideDown(elem, onFinish) {
var keyframes = [
{ transform: 'none', opacity: 1, offset: 0 },
{ transform: 'translate3d(0,30%,0)', opacity: 0, offset: 1 }];
var timing = elem.animationConfig.entry.timing;
return elem.animate(keyframes, timing);
}
function closeDialog(dlg) {
if (!dlg.classList.contains('hide')) {
@ -260,7 +278,18 @@
return;
}
fadeOut(dlg).onfinish = onAnimationFinish;
var animation;
if (dlg.animationConfig.exit.name == 'fadeout') {
animation = fadeOut(dlg);
} else if (dlg.animationConfig.exit.name == 'slidedown') {
animation = slideDown(dlg);
} else {
onAnimationFinish();
return;
}
animation.onfinish = onAnimationFinish;
}
}
@ -276,10 +305,12 @@
onAnimationFinish();
return;
}
if (dlg.animationConfig.entry.name == 'fade-in-animation') {
if (dlg.animationConfig.entry.name == 'fadein') {
fadeIn(dlg, onAnimationFinish);
} else if (dlg.animationConfig.entry.name == 'scale-up-animation') {
} else if (dlg.animationConfig.entry.name == 'scaleup') {
scaleUp(dlg, onAnimationFinish);
} else if (dlg.animationConfig.entry.name == 'slideup') {
slideUp(dlg, onAnimationFinish);
}
}
@ -355,12 +386,12 @@
dlg.setAttribute('data-autofocus', 'true');
}
var defaultEntryAnimation = browser.animate ? 'scale-up-animation' : 'fade-in-animation';
var defaultEntryAnimation = browser.animate ? 'scaleup' : 'fadein';
dlg.entryAnimation = options.entryAnimation || defaultEntryAnimation;
dlg.exitAnimation = 'fade-out-animation';
dlg.exitAnimation = 'fadeout';
// If it's not fullscreen then lower the default animation speed to make it open really fast
var entryAnimationDuration = options.entryAnimationDuration || (options.size ? 240 : 300);
var entryAnimationDuration = options.entryAnimationDuration || (options.size ? 200 : 300);
dlg.animationConfig = {
// scale up

View file

@ -0,0 +1,55 @@
{
"ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Compartir",
"ServerUpdateNeeded": "Este Servidor Emby necesita ser actualizado. Para descargar la ultima versi\u00f3n, por favor visite {0}",
"LiveTvGuideRequiresUnlock": "La Guia de TV en Vivo actualmente esta limitada a {0} canales. De clic en el bot\u00f3n Desbloquear para saber como desbloquear la experiencia completa.",
"AttributeNew": "Nuevo",
"AttributePremiere": "Fecha de Estreno",
"AttributeLive": "En Vivo",
"TrackCount": "{0} Pistas",
"ItemCount": "{0} \u00edtems",
"ValueSeriesYearToPresent": "{0}-Presente",
"ReleaseYearValue": "A\u00f1o de estreno: {0}",
"OriginalAirDateValue": "Fecha de transmisi\u00f3n original: {0}",
"EndsAtValue": "Termina a las {0}",
"OptionSundayShort": "Dom",
"OptionMondayShort": "Lun",
"OptionTuesdayShort": "Mar",
"OptionWednesdayShort": "Mie",
"OptionThursdayShort": "Jue",
"OptionFridayShort": "Vie",
"OptionSaturdayShort": "Sab",
"HeaderSelectDate": "Seleccionar fecha",
"ButtonOk": "Ok",
"ButtonCancel": "Cancelar",
"ButtonGotIt": "Hecho",
"RecordingScheduled": "Grabaci\u00f3n programada.",
"HeaderNewRecording": "Nueva Grabaci\u00f3n",
"Sunday": "Domingo",
"Monday": "Lunes",
"Tuesday": "Martes",
"Wednesday": "Mi\u00e9rcoles",
"Thursday": "Jueves",
"Friday": "Viernes",
"Saturday": "S\u00e1bado",
"Days": "D\u00edas",
"RecordSeries": "Grabar Series",
"LabelPrePaddingMinutes": "Minutos de protecci\u00f3n previos:",
"LabelPostPaddingMinutes": "Minutos de protecci\u00f3n posterior:",
"RecordOnAllChannels": "Grabar en todos los canales",
"RecordAnytime": "Grabar en cualquier momento",
"RecordOnlyNewEpisodes": "Grabar s\u00f3lo nuevos episodios",
"HeaderBecomeProjectSupporter": "Obtener Emby Premiere",
"HeaderEnjoyDayTrial": "Disfrute de una Prueba Gratuita por 14 D\u00edas",
"MessageActiveSubscriptionRequiredSeriesRecordings": "Se requiere de una suscripci\u00f3n de Emby Premiere para crear grabaciones automatizadas de series.",
"OptionConvertRecordingsToStreamingFormat": "Convertir autom\u00e1ticamente las grabaciones a un formato amigable para transmisi\u00f3n",
"OptionConvertRecordingsToStreamingFormatHelp": "Las grabaciones ser\u00e1n convertidas en tiempo real a MP4 para una f\u00e1cil reproducci\u00f3n en sus dispositivos.",
"FeatureRequiresEmbyPremiere": "Esta caracter\u00edstica requiere de una suscripci\u00f3n activa de Emby Premiere.",
"Record": "Grabar",
"Save": "Guardar",
"Edit": "Editar",
"Download": "Descargar",
"Advanced": "Avanzado",
"Refresh": "Actualizar",
"RefreshQueued": "Actualizaci\u00f3n programada"
}

View file

@ -0,0 +1,55 @@
{
"ValueSpecialEpisodeName": "Spesial - {0}",
"Share": "Del",
"ServerUpdateNeeded": "Denne Emby serveren trenger en oppdatering. For \u00e5 laste ned nyeste versjon, vennligst bes\u00f8k: {0}",
"LiveTvGuideRequiresUnlock": "Live TV Guide er p\u00e5 n\u00e5v\u00e6rende tidspunkter begrenset til {0} Kanaler. Trykk p\u00e5 l\u00e5s opp knappen for \u00e5 l\u00e6re hvordan f\u00e5 full opplevelse.",
"AttributeNew": "Ny",
"AttributePremiere": "Premiere",
"AttributeLive": "Direkte",
"TrackCount": "{0} spor",
"ItemCount": "{0} elementer",
"ValueSeriesYearToPresent": "{0}-N\u00e5v\u00e6rende",
"ReleaseYearValue": "Utgivelse \u00e5r: {0}",
"OriginalAirDateValue": "Original slippdato: {0}",
"EndsAtValue": "Ender p\u00e5 {0}",
"OptionSundayShort": "S\u00f8n",
"OptionMondayShort": "Man",
"OptionTuesdayShort": "Tir",
"OptionWednesdayShort": "Ons",
"OptionThursdayShort": "Tor",
"OptionFridayShort": "Fre",
"OptionSaturdayShort": "L\u00f8r",
"HeaderSelectDate": "Velg dato",
"ButtonOk": "Ok",
"ButtonCancel": "Avbryt",
"ButtonGotIt": "Skj\u00f8nner",
"RecordingScheduled": "Planlagte opptak.",
"HeaderNewRecording": "Tar opp n\u00e5",
"Sunday": "S\u00f8ndag",
"Monday": "Mandag",
"Tuesday": "Tirsdag",
"Wednesday": "Onsdag",
"Thursday": "Torsdag",
"Friday": "Fredag",
"Saturday": "L\u00f8rdag",
"Days": "Dager",
"RecordSeries": "Ta opp serien",
"LabelPrePaddingMinutes": "Pre-padding minutter:",
"LabelPostPaddingMinutes": "Post-padding minutter:",
"RecordOnAllChannels": "Ta opp fra alle kanaler",
"RecordAnytime": "Ta opp n\u00e5r som helst",
"RecordOnlyNewEpisodes": "Ta opp kun nye episoder",
"HeaderBecomeProjectSupporter": "Skaff Emby Premiere",
"HeaderEnjoyDayTrial": "Nyt en 14 dagers gratis pr\u00f8ve versjon",
"MessageActiveSubscriptionRequiredSeriesRecordings": "En aktiv Emby Premiere abonnement er n\u00f8dvendig for \u00e5 skape automatiserte serie innspillinger.",
"OptionConvertRecordingsToStreamingFormat": "Automatisk konvertere opptak til en str\u00f8mnings vennlig format",
"OptionConvertRecordingsToStreamingFormatHelp": "Innspillinger vil automatisk bli konvertert til MP4 for enkel avspilling p\u00e5 dine enheter.",
"FeatureRequiresEmbyPremiere": "Denne funksjonen krever et aktivt Emby Premiere abonnement.",
"Record": "Ta opp",
"Save": "Lagre",
"Edit": "Endre",
"Download": "Last ned",
"Advanced": "Avansert",
"Refresh": "Oppdater",
"RefreshQueued": "Oppdatering k\u00f8"
}

View file

@ -26,14 +26,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"main": "iron-meta.html",
"homepage": "https://github.com/polymerelements/iron-meta",
"homepage": "https://github.com/PolymerElements/iron-meta",
"_release": "1.1.1",
"_resolution": {
"type": "version",
"tag": "v1.1.1",
"commit": "e171ee234b482219c9514e6f9551df48ef48bd9f"
},
"_source": "git://github.com/polymerelements/iron-meta.git",
"_source": "git://github.com/PolymerElements/iron-meta.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/iron-meta"
"_originalSource": "PolymerElements/iron-meta"
}

View file

@ -45,7 +45,7 @@
"tag": "v1.0.11",
"commit": "e3c1ab0c72905b58fb4d9adc2921ea73b5c085a5"
},
"_source": "git://github.com/polymerelements/paper-behaviors.git",
"_source": "git://github.com/PolymerElements/paper-behaviors.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/paper-behaviors"
"_originalSource": "PolymerElements/paper-behaviors"
}

View file

@ -32,14 +32,14 @@
"iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0"
},
"ignore": [],
"homepage": "https://github.com/polymerelements/paper-ripple",
"homepage": "https://github.com/PolymerElements/paper-ripple",
"_release": "1.0.5",
"_resolution": {
"type": "version",
"tag": "v1.0.5",
"commit": "d72e7a9a8ab518b901ed18dde492df3b87a93be5"
},
"_source": "git://github.com/polymerelements/paper-ripple.git",
"_source": "git://github.com/PolymerElements/paper-ripple.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/paper-ripple"
"_originalSource": "PolymerElements/paper-ripple"
}

View file

@ -34,6 +34,6 @@
"commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514"
},
"_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.0.0",
"_target": "^1.1.0",
"_originalSource": "Polymer/polymer"
}

View file

@ -123,7 +123,13 @@
html += '<form class="newCollectionForm" style="margin:auto;">';
html += '<div>';
html += Globalize.translate('CreateCollectionHelp');
html += '</div>';
html += '<div class="fldSelectCollection">';
html += '<br/>';
html += '<br/>';
html += '<label for="selectCollectionToAddTo" class="selectLabel">' + Globalize.translate('LabelSelectCollection') + '</label>';
html += '<select id="selectCollectionToAddTo" data-mini="true"></select>';
html += '</div>';
@ -206,6 +212,9 @@
html += '<div class="dialogHeaderTitle">';
html += title;
html += '</div>';
html += '<a href="https://github.com/MediaBrowser/Wiki/wiki/Collections" target="_blank" tabindex="-1" class="clearLink" style="margin-left:auto;margin-right:.5em;display:inline-block;" title="' + Globalize.translate('ButtonHelp') + '"><paper-button class="accent" style="margin:0;font-weight:normal;font-size:13px;padding:.25em;display:flex;align-items:center;"><iron-icon icon="info"></iron-icon><span>' + Globalize.translate('ButtonHelp') + '</span></paper-button></a>';
html += '</div>';
html += getEditorHtml();

View file

@ -12,7 +12,7 @@
<label for="selectLanguage" class="selectLabel">${LabelLanguage}</label>
<select autofocus id="selectLanguage" required="required" data-mini="true"></select>
</div>
<button type="button" is="paper-icon-button-light" title="${ButtonSearch}" class="btnSearchSubtitles"><iron-icon icon="search"></iron-icon></button>
<button type="submit" is="paper-icon-button-light" title="${ButtonSearch}" class="btnSearchSubtitles"><iron-icon icon="search"></iron-icon></button>
</form>
<br />
<div class="subtitleResults"></div>

View file

@ -836,14 +836,14 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
min-height: 60px;
}
.itemMiscInfo {
.mobileDetails .itemMiscInfo {
text-align: center;
justify-content: center;
}
.itemMiscInfo .endsAt {
display: none;
}
.itemMiscInfo .endsAt {
display: none;
}
}
@media all and (min-width: 750px) {

View file

@ -242,20 +242,21 @@
color: #fff !important;
}
.pageTabButtonSelectionBar {
position: absolute;
left: 0;
border: 0;
bottom: 0;
height: 2px;
right: 0;
border-radius: 0;
z-index: 1;
}
.pageTabButtonSelectionBar {
position: absolute;
left: 0;
border: 0;
/* Need this or it will be partially covered by the drop-shadow on android */
bottom: 1px;
height: 2px;
right: 0;
border-radius: 0;
z-index: 1000;
}
.pageTabButton.is-active .pageTabButtonSelectionBar {
background: #52B54B;
}
.pageTabButton.is-active .pageTabButtonSelectionBar {
background: #52B54B;
}
.viewMenuBar, .libraryViewNav {
background-color: #020202;

View file

@ -3,10 +3,13 @@
height: 40px;
padding: 8px;
}
[is=paper-icon-button-light] iron-icon {
width: 100%;
height: 100%;
}
[is=paper-icon-button-light] iron-icon, [is=paper-icon-button-light] img {
/* Don't specify both dimensions or it may not get sized properly */
/*width: 100%;*/
[is=paper-icon-button-light] img {
width: 100%;
height: 100%;
}
@ -18,3 +21,9 @@
background-color: currentcolor !important;
opacity: .2 !important;
}
/* Make sure the img is on top of the ripple */
[is=paper-icon-button-light] img {
position: relative;
z-index: 1;
}

View file

@ -1,4 +1,4 @@
<div id="dashboardHostingPage" data-role="page" class="page type-interior advancedConfigurationPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Hosting%20Settings" data-require="scripts/dashboardhosting,paper-checkbox,paper-input,paper-button">
<div id="dashboardHostingPage" data-role="page" class="page type-interior advancedConfigurationPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Hosting%20Settings">
<div data-role="content">
<div class="content-primary">
@ -14,10 +14,6 @@
<paper-input type="number" label="${LabelPublicHttpPort}" id="txtPublicPort" pattern="[0-9]*" required="required" min="1"></paper-input>
<div class="fieldDescription">${LabelPublicHttpPortHelp}</div>
</li>
<li>
<paper-input id="txtDdns" type="text" label="${LabelExternalDDNS}"></paper-input>
<div class="fieldDescription">${LabelExternalDDNSHelp}</div>
</li>
<li>
<paper-input type="number" id="txtHttpsPort" pattern="[0-9]*" required="required" min="1" label="${LabelHttpsPort}"></paper-input>
<div class="fieldDescription">${LabelHttpsPortHelp}</div>
@ -31,6 +27,10 @@
<button type="button" is="paper-icon-button-light" id="btnSelectCertPath" title="${ButtonSelectDirectory}"><iron-icon icon="search"></iron-icon></button>
<div class="fieldDescription">${LabelCustomCertificatePathHelp}</div>
</li>
<li>
<paper-input id="txtDdns" type="text" label="${LabelExternalDDNS}"></paper-input>
<div class="fieldDescription">${LabelExternalDDNSHelp}</div>
</li>
<li>
<paper-checkbox id="chkEnableHttps">${LabelEnableHttps}</paper-checkbox>
<div class="fieldDescription paperCheckboxFieldDescription">${LabelEnableHttpsHelp}</div>

View file

@ -61,13 +61,13 @@
<div class="listTopPaging">
&nbsp;
</div>
<button type="button" is="paper-icon-button-light" class="btnNewCollection"><iron-icon icon="add"></iron-icon></button>
</div>
<div class="itemsContainer" style="text-align:center;"></div>
<div class="noItemsMessage" style="display: none; text-align: center;">
<p>${MessageNoCollectionsAvailable}</p>
</div>
<paper-fab class="btnNewCollection bottomFab" icon="add" style="position:fixed;right:20px;background-color:#db4437;"></paper-fab>
</div>
<div class="pageTabContent ehsContent" id="genresTab" data-index="4">
<div class="viewSettings">

View file

@ -1,22 +1,5 @@
define(['jQuery'], function ($) {
function loadPage(page, config) {
$('#txtPortNumber', page).val(config.HttpServerPortNumber);
$('#txtPublicPort', page).val(config.PublicPort);
$('#txtPublicHttpsPort', page).val(config.PublicHttpsPort);
$('#chkEnableHttps', page).checked(config.EnableHttps);
$('#txtHttpsPort', page).val(config.HttpsPortNumber);
$('#txtDdns', page).val(config.WanDdns || '');
$('#txtCertificatePath', page).val(config.CertificatePath || '');
$('#chkEnableUpnp', page).checked(config.EnableUPnP);
Dashboard.hideLoadingMsg();
}
function onSubmit() {
Dashboard.showLoadingMsg();
@ -52,24 +35,43 @@
}];
}
$(document).on('pageshow', "#dashboardHostingPage", function () {
return function (view, params) {
LibraryMenu.setTabs('adminadvanced', 0, getTabs);
Dashboard.showLoadingMsg();
var self = this;
var page = this;
function loadPage(page, config) {
ApiClient.getServerConfiguration().then(function (config) {
$('#txtPortNumber', page).val(config.HttpServerPortNumber);
$('#txtPublicPort', page).val(config.PublicPort);
$('#txtPublicHttpsPort', page).val(config.PublicHttpsPort);
loadPage(page, config);
var chkEnableHttps = page.querySelector('#chkEnableHttps');
chkEnableHttps.checked = config.EnableHttps;
});
$('#txtHttpsPort', page).val(config.HttpsPortNumber);
}).on('pageinit', "#dashboardHostingPage", function () {
$('#txtDdns', page).val(config.WanDdns || '');
var page = this;
var txtCertificatePath = page.querySelector('#txtCertificatePath');
txtCertificatePath.value = config.CertificatePath || '';
$('#btnSelectCertPath', page).on("click.selectDirectory", function () {
$('#chkEnableUpnp', page).checked(config.EnableUPnP);
onCertPathChange.call(txtCertificatePath);
Dashboard.hideLoadingMsg();
}
function onCertPathChange() {
if (this.value) {
view.querySelector('#txtDdns').setAttribute('required', 'required');
} else {
view.querySelector('#txtDdns').removeAttribute('required');
}
}
$('#btnSelectCertPath', view).on("click.selectDirectory", function () {
require(['directorybrowser'], function (directoryBrowser) {
@ -83,7 +85,7 @@
callback: function (path) {
if (path) {
$('#txtCertificatePath', page).val(path);
$('#txtCertificatePath', view).val(path);
}
picker.close();
},
@ -94,6 +96,18 @@
});
$('.dashboardHostingForm').off('submit', onSubmit).on('submit', onSubmit);
});
view.querySelector('#txtCertificatePath').addEventListener('change', onCertPathChange);
view.addEventListener('viewshow', function (e) {
LibraryMenu.setTabs('adminadvanced', 0, getTabs);
Dashboard.showLoadingMsg();
ApiClient.getServerConfiguration().then(function (config) {
loadPage(view, config);
});
});
};
});

View file

@ -1,4 +1,4 @@
define(['layoutManager', 'datetime', 'jQuery', 'mediaInfo', 'scrollStyles'], function (layoutManager, datetime, $, mediaInfo) {
define(['layoutManager', 'datetime', 'jQuery', 'mediaInfo', 'backdrop', 'scrollStyles'], function (layoutManager, datetime, $, mediaInfo, backdrop) {
var currentItem;
@ -75,14 +75,13 @@
// For these types, make the backdrop a little smaller so that the items are more quickly accessible
if (item.Type == 'MusicArtist' || item.Type == "MusicAlbum" || item.Type == "Playlist" || item.Type == "BoxSet" || item.MediaType == "Audio" || !layoutManager.mobile) {
$('#itemBackdrop', page).addClass('noBackdrop').css('background-image', 'none');
require(['backdrop'], function (backdrop) {
backdrop.setBackdrops([item]);
});
backdrop.setBackdrops([item]);
}
else {
//$('#itemBackdrop', page).addClass('noBackdrop').css('background-image', 'none');
//Backdrops.setBackdrops(page, [item]);
hasBackdrop = LibraryBrowser.renderDetailPageBackdrop(page, item);
backdrop.clear();
}
var transparentHeader = hasBackdrop && page.classList.contains('noSecondaryNavPage');
@ -475,7 +474,7 @@
});
});
$('.itemGenres', page).each(function() {
$('.itemGenres', page).each(function () {
LibraryBrowser.renderGenres(this, item, null, isStatic);
});
LibraryBrowser.renderStudios($('.itemStudios', page), item, isStatic);
@ -1098,10 +1097,13 @@
html += '<div class="detailSection">';
html += '<div style="display:flex;align-items:center;">';
html += '<h1>';
html += '<span>' + type.name + '</span>';
html += '</h1>';
html += '<button class="btnAddToCollection" type="button" is="paper-icon-button-light" style="margin-left:1em;"><iron-icon icon="add"></iron-icon></button>';
html += '</div>';
html += '<div class="detailSectionContent itemsContainer">';
@ -1131,6 +1133,15 @@
removeFromCollection(page, parentItem, [itemId], user, context);
});
collectionItems.querySelector('.btnAddToCollection').addEventListener('click', function () {
require(['alert'], function (alert) {
alert({
text: Globalize.translate('AddItemToCollectionHelp'),
html: Globalize.translate('AddItemToCollectionHelp') + '<br/><br/><a target="_blank" href="https://github.com/MediaBrowser/Wiki/wiki/Collections">' + Globalize.translate('ButtonLearnMore') + '</a>'
});
});
});
}
function removeFromCollection(page, parentItem, itemIds, user, context) {

View file

@ -213,14 +213,11 @@
if (selected == null) {
var elem = tabs.querySelector('.pageTabButton.is-active');
if (elem) {
return parseInt(elem.getAttribute('data-index'));
}
return 0;
return tabs.selectedTabIndex || 0;
}
var current = LibraryBrowser.selectedTab(tabs);
tabs.selectedTabIndex = selected;
if (current == selected) {
tabs.dispatchEvent(new CustomEvent("tabchange", {
detail: {
@ -268,13 +265,13 @@
LibraryBrowser.configureSwipeTabs(ownerpage, tabs);
}
var buttons = tabs.querySelectorAll('.pageTabButton');
for (var i = 0, length = buttons.length; i < length; i++) {
//buttons[i].classList.add('mdl-button');
//buttons[i].classList.add('mdl-js-button');
var div = document.createElement('div');
div.classList.add('pageTabButtonSelectionBar');
buttons[i].appendChild(div);
if (!browserInfo.safari || !AppInfo.isNativeApp) {
var buttons = tabs.querySelectorAll('.pageTabButton');
for (var i = 0, length = buttons.length; i < length; i++) {
var div = document.createElement('div');
div.classList.add('pageTabButtonSelectionBar');
buttons[i].appendChild(div);
}
}
tabs.classList.add('hiddenScrollX');
@ -1069,7 +1066,8 @@
}
if (item.CollectionType == 'games') {
return 'gamesrecommended.html?topParentId=' + item.Id;
return id ? "itemlist.html?parentId=" + id : "#";
//return 'gamesrecommended.html?topParentId=' + item.Id;
}
if (item.CollectionType == 'playlists') {
return 'playlists.html?topParentId=' + item.Id;
@ -1787,20 +1785,20 @@
var isSquareAspectRatio = primaryImageAspectRatio && Math.abs(primaryImageAspectRatio - 1) < .33 ||
primaryImageAspectRatio && Math.abs(primaryImageAspectRatio - 1.3333334) < .01;
if (options.shape == 'auto' || options.shape == 'autohome') {
if (options.shape == 'auto' || options.shape == 'autohome' || options.shape == 'autooverflow') {
if (isThumbAspectRatio) {
options.shape = options.shape == 'auto' ? 'backdrop' : 'backdrop';
options.shape = options.shape == 'autooverflow' ? 'overflowBackdrop' : 'backdrop';
} else if (isSquareAspectRatio) {
options.coverImage = true;
options.shape = 'square';
options.shape = options.shape == 'autooverflow' ? 'overflowSquare' : 'square';
} else if (primaryImageAspectRatio && primaryImageAspectRatio > 1.9) {
options.shape = 'banner';
options.coverImage = true;
} else if (primaryImageAspectRatio && Math.abs(primaryImageAspectRatio - 0.6666667) < .2) {
options.shape = options.shape == 'auto' ? 'portrait' : 'portrait';
options.shape = options.shape == 'autooverflow' ? 'overflowPortrait' : 'portrait';
} else {
options.shape = options.defaultShape || (options.shape == 'auto' ? 'square' : 'square');
options.shape = options.defaultShape || (options.shape == 'autooverflow' ? 'overflowSquare' : 'square');
}
}

View file

@ -743,7 +743,7 @@
var helpUrl = page.getAttribute('data-helpurl');
if (helpUrl) {
html += '<a href="' + helpUrl + '" target="_blank" class="clearLink" style="margin-left:2em;" title="' + Globalize.translate('ButtonHelp') + '"><paper-button class="accent" style="margin:0;font-weight:normal;font-size:13px;padding:.25em;display:flex;align-items:center;"><iron-icon icon="info"></iron-icon><span>Help</span></paper-button></a>';
html += '<a href="' + helpUrl + '" target="_blank" class="clearLink" style="margin-left:2em;" title="' + Globalize.translate('ButtonHelp') + '"><paper-button class="accent" style="margin:0;font-weight:normal;font-size:13px;padding:.25em;display:flex;align-items:center;"><iron-icon icon="info"></iron-icon><span>' + Globalize.translate('ButtonHelp') + '</span></paper-button></a>';
}
}
}

View file

@ -54,10 +54,6 @@
Dashboard.hideLoadingMsg();
}
function getSquareShape() {
return enableScrollX() ? 'overflowSquare' : 'square';
}
function enableScrollX() {
return browserInfo.mobile && AppInfo.enableAppLayouts;
}
@ -80,14 +76,12 @@
recordingItems.innerHTML = LibraryBrowser.getPosterViewHtml({
items: recordings,
shape: (enableScrollX() ? getSquareShape() : 'auto'),
shape: (enableScrollX() ? 'autooverflow' : 'auto'),
showTitle: true,
showParentTitle: true,
centerText: true,
coverImage: true,
lazy: true,
overlayPlayButton: true
cardLayout: true
});
ImageLoader.lazyChildren(recordingItems);
@ -113,7 +107,7 @@
ApiClient.getLiveTvRecordings({
userId: Dashboard.getCurrentUserId(),
limit: 4,
limit: enableScrollX() ? 12 : 4,
IsInProgress: false,
Fields: 'CanDelete,PrimaryImageAspectRatio'

View file

@ -8,14 +8,6 @@
return enableScrollX() ? 'overflowPortrait' : 'portrait';
}
function getThumbShape() {
return enableScrollX() ? 'overflowBackdrop' : 'backdrop';
}
function getSquareShape() {
return enableScrollX() ? 'overflowSquare' : 'square';
}
function getLimit() {
return enableScrollX() ? 12 : 8;
@ -109,7 +101,7 @@
var html = libraryBrowser.getPosterViewHtml({
items: items,
shape: shape || (enableScrollX() ? getSquareShape() : 'auto'),
shape: shape || (enableScrollX() ? 'autooverflow' : 'auto'),
showTitle: true,
centerText: true,
coverImage: true,

View file

@ -301,7 +301,7 @@
baseUrl += '?topParentId=' + topParentId;
}
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 4, 5]);
libraryBrowser.configurePaperLibraryTabs(view, mdlTabs, view.querySelectorAll('.pageTabContent'), [0, 3, 4, 5]);
var tabControllers = [];
var renderedTabs = [];

View file

@ -2243,7 +2243,7 @@ var AppInfo = {};
var baseUrl = 'bower_components/emby-webcomponents/strings/';
var languages = ['da', 'en-US', 'kk', 'nl', 'ru'];
var languages = ['da', 'en-US', 'es-MX', 'kk', 'nb', 'nl', 'ru'];
var translations = languages.map(function (i) {
return {
@ -2404,9 +2404,10 @@ var AppInfo = {};
defineRoute({
path: '/dashboardhosting.html',
dependencies: [],
dependencies: ['paper-checkbox', 'paper-input', 'paper-button'],
autoFocus: false,
roles: 'admin'
roles: 'admin',
controller: 'scripts/dashboardhosting'
});
defineRoute({
@ -2698,7 +2699,7 @@ var AppInfo = {};
defineRoute({
path: '/movies.html',
dependencies: ['paper-checkbox', 'paper-fab', 'scripts/alphapicker', 'paper-button'],
dependencies: ['paper-checkbox', 'scripts/alphapicker', 'paper-button'],
autoFocus: false,
controller: 'scripts/moviesrecommended',
transition: 'fade'

View file

@ -561,8 +561,8 @@
"LabelWebSocketPortNumber": "Web socket port number:",
"LabelEnableAutomaticPortMap": "Enable automatic port mapping",
"LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.",
"LabelExternalDDNS": "External WAN Address:",
"LabelExternalDDNSHelp": "If you have a dynamic DNS enter it here. Emby apps will use it when connecting remotely. Leave empty for automatic detection.",
"LabelExternalDDNS": "External domain:",
"LabelExternalDDNSHelp": "If you have a dynamic DNS enter it here. Emby apps will use it when connecting remotely. This field is required when used with a custom https certificate.",
"TabResume": "Resume",
"TabWeather": "Weather",
"TitleAppSettings": "App Settings",
@ -2351,5 +2351,7 @@
"LabelOriginalTitle": "Original title:",
"LabelSortTitle": "Sort title:",
"OptionConvertRecordingPreserveAudio": "Preserve original audio when converting recordings",
"OptionConvertRecordingPreserveAudioHelp": "This will provide better audio but may require transcoding during playback on some devices."
"OptionConvertRecordingPreserveAudioHelp": "This will provide better audio but may require transcoding during playback on some devices.",
"CreateCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.",
"AddItemToCollectionHelp": "Add items to collections by searching for them and using their right-click or tap menus to add them to a collection."
}