reduce rescanning due to IsOffline

This commit is contained in:
Luke Pulverenti 2016-08-24 02:13:15 -04:00
parent 521b20f86a
commit cbca3a20ae
23 changed files with 115 additions and 68 deletions

View File

@ -14,12 +14,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.182", "version": "1.4.183",
"_release": "1.4.182", "_release": "1.4.183",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.182", "tag": "1.4.183",
"commit": "d4c701ce17ff5a243470cf9cae99babde51f7179" "commit": "0548902d94131fb45ba17c421186014b0bed5e18"
}, },
"_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

@ -36,7 +36,7 @@
justify-content: center; justify-content: center;
} }
.vertical-wrap .card { .vertical-wrap > .card {
contain: layout style; contain: layout style;
} }
@ -135,19 +135,18 @@
position: relative; position: relative;
background-clip: content-box !important; background-clip: content-box !important;
color: #fff; color: #fff;
/* This is only needed for scalable cards */
height: 100%;
} }
@media all and (min-width: 600px) { @media all and (min-width: 600px) {
.cardImageContainer { .cardImageContainer {
/* Should be 0 with visualCardBox, but not really noticeable */
border-radius: 2px; border-radius: 2px;
} }
} }
.visualCardBox .cardImageContainer {
border-radius: 0;
}
.chapterCardImageContainer { .chapterCardImageContainer {
background-color: #000; background-color: #000;
border-radius: 0; border-radius: 0;
@ -178,10 +177,6 @@
display: block; display: block;
} }
.scalableCard .cardImageContainer {
height: 100%;
}
.cardImage { .cardImage {
position: absolute; position: absolute;
top: 0; top: 0;
@ -206,7 +201,7 @@
padding: .5em .3em; padding: .5em .3em;
} }
.visualCardBox .cardScalable, .visualCardBox-cardFooter { .visualCardBox-cardScalable, .visualCardBox-cardFooter {
background-color: #222326; background-color: #222326;
} }

View File

@ -1133,7 +1133,9 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo
cardContentClose = '</button>'; cardContentClose = '</button>';
} }
cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' lazy" data-src="' + imgUrl + '">') : ('<div class="' + cardImageContainerClass + '">'); cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' lazy" data-src="' + imgUrl + '">') : ('<div class="' + cardImageContainerClass + '">');
cardImageContainerOpen = '<div class="' + cardBoxClass + '"><div class="cardScalable"><div class="cardPadder-' + options.shape + '"></div>' + cardContentOpen + cardImageContainerOpen;
var cardScalableClass = options.cardLayout ? 'cardScalable visualCardBox-cardScalable' : 'cardScalable';
cardImageContainerOpen = '<div class="' + cardBoxClass + '"><div class="' + cardScalableClass + '"><div class="cardPadder-' + options.shape + '"></div>' + cardContentOpen + cardImageContainerOpen;
cardBoxClose = '</div>'; cardBoxClose = '</div>';
cardScalableClose = '</div>'; cardScalableClose = '</div>';
cardImageContainerClose = '</div>'; cardImageContainerClose = '</div>';

View File

@ -86,7 +86,7 @@ define(['imageLoader', 'itemShortcuts', 'connectionManager', 'layoutManager'], f
var html = '\ var html = '\
<button type="button" data-isfolder="' + person.IsFolder + '" data-type="' + person.Type + '" data-action="link" data-id="' + person.Id + '" data-serverid="' + serverId + '" raised class="' + className + '"> \ <button type="button" data-isfolder="' + person.IsFolder + '" data-type="' + person.Type + '" data-action="link" data-id="' + person.Id + '" data-serverid="' + serverId + '" raised class="' + className + '"> \
<div class="' + cardBoxCssClass + '">\ <div class="' + cardBoxCssClass + '">\
<div class="cardScalable">\ <div class="cardScalable visualCardBox-cardScalable">\
<div class="cardPadder-portrait"></div>\ <div class="cardPadder-portrait"></div>\
<div class="cardContent">\ <div class="cardContent">\
' + cardImageContainer + '\ ' + cardImageContainer + '\

View File

@ -187,7 +187,7 @@
html += '<button type="button" class="' + cssClass + '" data-index="' + index + '">'; html += '<button type="button" class="' + cssClass + '" data-index="' + index + '">';
html += '<div class="cardBox visualCardBox">'; html += '<div class="cardBox visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder-portrait"></div>'; html += '<div class="cardPadder-portrait"></div>';
html += '<div class="cardContent searchImage">'; html += '<div class="cardContent searchImage">';

View File

@ -372,6 +372,11 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b
function handleBackToDefault() { function handleBackToDefault() {
if (!appHost.supports('exitmenu') && appHost.supports('exit')) {
appHost.exit();
return;
}
isDummyBackToHome = true; isDummyBackToHome = true;
skinManager.loadUserSkin(); skinManager.loadUserSkin();

View File

@ -32,14 +32,14 @@
"iron-component-page": "polymerElements/iron-component-page#^1.1.6" "iron-component-page": "polymerElements/iron-component-page#^1.1.6"
}, },
"private": true, "private": true,
"homepage": "https://github.com/polymer/polymer", "homepage": "https://github.com/Polymer/polymer",
"_release": "1.6.1", "_release": "1.6.1",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.6.1", "tag": "v1.6.1",
"commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc" "commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc"
}, },
"_source": "git://github.com/polymer/polymer.git", "_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.1.0", "_target": "^1.1.0",
"_originalSource": "polymer/polymer" "_originalSource": "Polymer/polymer"
} }

View File

@ -49,7 +49,17 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
function getDeviceName() { function getDeviceName() {
var deviceName; var deviceName;
if (browser.chrome) { if (browser.tizen) {
deviceName = "Samsung Smart TV";
} else if (browser.web0S) {
deviceName = "LG Smart TV";
} else if (browser.operaTv) {
deviceName = "Opera TV";
} else if (browser.xboxOne) {
deviceName = "Xbox One";
} else if (browser.ps4) {
deviceName = "Sony PS4";
} else if (browser.chrome) {
deviceName = "Chrome"; deviceName = "Chrome";
} else if (browser.edge) { } else if (browser.edge) {
deviceName = "Edge"; deviceName = "Edge";
@ -77,6 +87,11 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
} }
function supportsVoiceInput() { function supportsVoiceInput() {
if (browser.tv) {
return false;
}
return window.SpeechRecognition || return window.SpeechRecognition ||
window.webkitSpeechRecognition || window.webkitSpeechRecognition ||
window.mozSpeechRecognition || window.mozSpeechRecognition ||
@ -95,24 +110,57 @@ define(['appStorage', 'browser'], function (appStorage, browser) {
alert('setWindowState is not supported and should not be called'); alert('setWindowState is not supported and should not be called');
}, },
exit: function () { exit: function () {
alert('exit is not supported and should not be called');
if (browser.tizen) {
try {
tizen.application.getCurrentApplication().exit();
} catch (err) {
console.log('error closing application: ' + err);
}
return;
}
window.close();
}, },
supports: function (command) { supports: function (command) {
var features = [ var features = [
'filedownload', 'filedownload',
'externalpremium', 'sharing',
'sharing' 'externalpremium'
]; ];
if (browser.operaTv || browser.tizen || browser.web0s) {
features.push('exit');
} else {
features.push('exitmenu');
}
if (!browser.operaTv) {
features.push('externallinks'); features.push('externallinks');
}
if (supportsVoiceInput()) { if (supportsVoiceInput()) {
features.push('voiceinput'); features.push('voiceinput');
} }
var userAgent = navigator.userAgent.toLowerCase();
if (!browser.mobile || userAgent.indexOf('msapphost') != -1) {
features.push('htmlaudioautoplay');
features.push('htmlvideoautoplay');
}
return features.indexOf(command.toLowerCase()) != -1; return features.indexOf(command.toLowerCase()) != -1;
}, },
unlockedFeatures: function () {
var features = [];
features.push('playback');
return features;
},
appInfo: function () { appInfo: function () {
if (appInfo) { if (appInfo) {

View File

@ -620,7 +620,7 @@ progress {
} }
.ui-body-a .visualCardBox .cardScalable, .ui-body-a .visualCardBox-cardFooter { .ui-body-a .visualCardBox-cardScalable, .ui-body-a .visualCardBox-cardFooter {
background-color: #fff; background-color: #fff;
} }

View File

@ -15,6 +15,9 @@
</select> </select>
<div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div> <div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div>
</div> </div>
<div class="inputContainer hide fldVaapiDevice">
<input is="emby-input" type="text" id="txtVaapiDevice" label="${LabelVaapiDevice}" />
</div>
<div class="selectContainer"> <div class="selectContainer">
<select is="emby-select" id="selectThreadCount" label="${LabelTranscodingThreadCount}"> <select is="emby-select" id="selectThreadCount" label="${LabelTranscodingThreadCount}">
<option value="-1">${OptionAuto}</option> <option value="-1">${OptionAuto}</option>

View File

@ -30,15 +30,6 @@
appSettings.cameraUploadServers(cameraUploadServers); appSettings.cameraUploadServers(cameraUploadServers);
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
require(['toast'], function (toast) {
toast(Globalize.translate('SettingsSaved'));
});
if (cameraUploadServers.length) {
if (window.MainActivity) {
MainActivity.authorizeStorage();
}
}
} }
return function (view, params) { return function (view, params) {
@ -59,7 +50,7 @@
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
var userId = getParameterByName('userId') || Dashboard.getCurrentUserId(); var userId = params.userId || Dashboard.getCurrentUserId();
ApiClient.getUser(userId).then(function (user) { ApiClient.getUser(userId).then(function (user) {

View File

@ -90,9 +90,9 @@
}); });
} }
function loadPage(page) { function loadPage(page, params) {
var mode = getParameterByName('mode') || 'auto'; var mode = params.mode || 'auto';
if (mode == 'auto') { if (mode == 'auto') {
@ -295,11 +295,11 @@
}); });
view.querySelector('.btnCancelSignup').addEventListener('click', function () { view.querySelector('.btnCancelSignup').addEventListener('click', function () {
history.back(); Emby.Page.back();
}); });
view.querySelector('.btnCancelManualServer').addEventListener('click', function () { view.querySelector('.btnCancelManualServer').addEventListener('click', function () {
history.back(); Emby.Page.back();
}); });
view.querySelector('.btnWelcomeNext').addEventListener('click', function () { view.querySelector('.btnWelcomeNext').addEventListener('click', function () {
@ -336,7 +336,7 @@
}); });
view.addEventListener('viewshow', function () { view.addEventListener('viewshow', function () {
loadPage(view); loadPage(view, params);
}); });
}; };
}); });

View File

@ -318,7 +318,7 @@
html += '<div class="' + className + '" id="' + rowId + '">'; html += '<div class="' + className + '" id="' + rowId + '">';
html += '<div class="cardBox visualCardBox">'; html += '<div class="cardBox visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-backdrop"></div>'; html += '<div class="cardPadder cardPadder-backdrop"></div>';
html += '<div class="cardContent">'; html += '<div class="cardContent">';

View File

@ -9,12 +9,17 @@
$('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost); $('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost);
page.querySelector('.txtEncoderPath').value = config.EncoderAppPath || ''; page.querySelector('.txtEncoderPath').value = config.EncoderAppPath || '';
$('#txtTranscodingTempPath', page).val(config.TranscodingTempPath || ''); $('#txtTranscodingTempPath', page).val(config.TranscodingTempPath || '');
$('#txtVaapiDevice', page).val(config.VaapiDevice || '');
var selectEncoderPath = page.querySelector('#selectEncoderPath'); var selectEncoderPath = page.querySelector('#selectEncoderPath');
selectEncoderPath.value = systemInfo.EncoderLocationType; selectEncoderPath.value = systemInfo.EncoderLocationType;
onSelectEncoderPathChange.call(selectEncoderPath); onSelectEncoderPathChange.call(selectEncoderPath);
page.querySelector('#selectVideoDecoder').dispatchEvent(new CustomEvent('change', {
bubbles: true
}));
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
} }
@ -64,6 +69,7 @@
config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val(); config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val();
config.EncodingThreadCount = $('#selectThreadCount', form).val(); config.EncodingThreadCount = $('#selectThreadCount', form).val();
config.HardwareAccelerationType = $('#selectVideoDecoder', form).val(); config.HardwareAccelerationType = $('#selectVideoDecoder', form).val();
config.VaapiDevice = $('#txtVaapiDevice', form).val();
config.EnableThrottling = form.querySelector('#chkEnableThrottle').checked; config.EnableThrottling = form.querySelector('#chkEnableThrottle').checked;
@ -129,6 +135,19 @@
var page = this; var page = this;
page.querySelector('#selectVideoDecoder').addEventListener('change', function () {
if (this.value == 'vaapi') {
page.querySelector('.fldVaapiDevice').classList.remove('hide');
page.querySelector('#txtVaapiDevice').setAttribute('required', 'required');
} else {
page.querySelector('.fldVaapiDevice').classList.add('hide');
page.querySelector('#txtVaapiDevice').removeAttribute('required');
}
});
$('#btnSelectEncoderPath', page).on("click.selectDirectory", function () { $('#btnSelectEncoderPath', page).on("click.selectDirectory", function () {
require(['directorybrowser'], function (directoryBrowser) { require(['directorybrowser'], function (directoryBrowser) {

View File

@ -57,12 +57,7 @@
function onBackClick() { function onBackClick() {
if (Dashboard.exitOnBack()) { Emby.Page.back();
Dashboard.exit();
}
else {
history.back();
}
} }
function updateUserInHeader(user) { function updateUserInHeader(user) {

View File

@ -133,7 +133,7 @@
html += '<div class="card squareCard scalableCard"><div class="cardBox cardBox-bottompadded visualCardBox">'; html += '<div class="card squareCard scalableCard"><div class="cardBox cardBox-bottompadded visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-square"></div>'; html += '<div class="cardPadder cardPadder-square"></div>';
html += '<a class="cardContent" href="#" data-ajax="false" data-haspw="' + user.HasPassword + '" data-username="' + user.Name + '" data-userid="' + user.Id + '">'; html += '<a class="cardContent" href="#" data-ajax="false" data-haspw="' + user.HasPassword + '" data-username="' + user.Name + '" data-userid="' + user.Id + '">';

View File

@ -300,7 +300,7 @@
html += '<div class="card backdropCard scalableCard" style="' + style + '" data-index="' + index + '">'; html += '<div class="card backdropCard scalableCard" style="' + style + '" data-index="' + index + '">';
html += '<div class="cardBox visualCardBox">'; html += '<div class="cardBox visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-backdrop"></div>'; html += '<div class="cardPadder cardPadder-backdrop"></div>';

View File

@ -499,7 +499,7 @@
var width = 240; var width = 240;
var chapterHtml = '<a class="card backdropCard chapterCard" href="#" style="margin-right:1em;width:' + width + 'px;" data-position="' + c.StartPositionTicks + '">'; var chapterHtml = '<a class="card backdropCard chapterCard" href="#" style="margin-right:1em;width:' + width + 'px;" data-position="' + c.StartPositionTicks + '">';
chapterHtml += '<div class="cardBox">'; chapterHtml += '<div class="cardBox">';
chapterHtml += '<div class="cardScalable">'; chapterHtml += '<div class="cardScalable visualCardBox-cardScalable">';
chapterHtml += '<div class="cardPadder cardPadder-backdrop"></div>'; chapterHtml += '<div class="cardPadder cardPadder-backdrop"></div>';
chapterHtml += '<div class="cardContent">'; chapterHtml += '<div class="cardContent">';

View File

@ -191,7 +191,7 @@
html += "<div class='card backdropCard scalableCard'>"; html += "<div class='card backdropCard scalableCard'>";
html += '<div class="cardBox cardBox-bottompadded visualCardBox">'; html += '<div class="cardBox cardBox-bottompadded visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-backdrop"></div>'; html += '<div class="cardPadder cardPadder-backdrop"></div>';

View File

@ -46,7 +46,7 @@
html += "<div data-id='" + plugin.Id + "' data-name='" + plugin.Name + "' class='card backdropCard scalableCard'>"; html += "<div data-id='" + plugin.Id + "' data-name='" + plugin.Name + "' class='card backdropCard scalableCard'>";
html += '<div class="cardBox cardBox-bottompadded visualCardBox">'; html += '<div class="cardBox cardBox-bottompadded visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-backdrop"></div>'; html += '<div class="cardPadder cardPadder-backdrop"></div>';

View File

@ -716,16 +716,6 @@ var Dashboard = {
}); });
}, },
exitOnBack: function () {
var currentView = ViewManager.currentView();
return !currentView || currentView.id == 'indexPage';
},
exit: function () {
Dashboard.logout();
},
getDeviceProfile: function (maxHeight) { getDeviceProfile: function (maxHeight) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
@ -2709,8 +2699,6 @@ var AppInfo = {};
if (Dashboard.isRunningInCordova()) { if (Dashboard.isRunningInCordova()) {
deps.push('registrationservices'); deps.push('registrationservices');
deps.push('cordova/back');
if (browserInfo.android) { if (browserInfo.android) {
deps.push('cordova/android/androidcredentials'); deps.push('cordova/android/androidcredentials');
} }

View File

@ -94,7 +94,7 @@
html += "<div data-userid='" + user.Id + "' class='" + cssClass + "'>"; html += "<div data-userid='" + user.Id + "' class='" + cssClass + "'>";
html += '<div class="cardBox visualCardBox">'; html += '<div class="cardBox visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-square"></div>'; html += '<div class="cardPadder cardPadder-square"></div>';
@ -235,7 +235,7 @@
html += "<div data-id='" + user.Id + "' class='" + cssClass + "'>"; html += "<div data-id='" + user.Id + "' class='" + cssClass + "'>";
html += '<div class="cardBox cardBox-bottompadded visualCardBox">'; html += '<div class="cardBox cardBox-bottompadded visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-square"></div>'; html += '<div class="cardPadder cardPadder-square"></div>';

View File

@ -2322,5 +2322,6 @@
"RememberMe": "Remember me", "RememberMe": "Remember me",
"HeaderOfflineSync": "Offline Sync", "HeaderOfflineSync": "Offline Sync",
"LabelMaxAudioFileBitrate": "Max audio file bitrate:", "LabelMaxAudioFileBitrate": "Max audio file bitrate:",
"LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space." "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.",
"LabelVaapiDevice": "VA API Device:"
} }