mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update now playing
This commit is contained in:
parent
ad38cf4783
commit
b5a723314b
23 changed files with 229 additions and 66 deletions
|
@ -665,6 +665,19 @@
|
||||||
return deferred.promise();
|
return deferred.promise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.getSavedServers = function () {
|
||||||
|
|
||||||
|
var credentials = credentialProvider.credentials();
|
||||||
|
|
||||||
|
var servers = credentials.Servers.slice(0);
|
||||||
|
|
||||||
|
servers.sort(function (a, b) {
|
||||||
|
return (b.DateLastAccessed || 0) - (a.DateLastAccessed || 0);
|
||||||
|
});
|
||||||
|
|
||||||
|
return servers;
|
||||||
|
};
|
||||||
|
|
||||||
self.getAvailableServers = function () {
|
self.getAvailableServers = function () {
|
||||||
|
|
||||||
logger.log('Begin getAvailableServers');
|
logger.log('Begin getAvailableServers');
|
||||||
|
|
|
@ -10,25 +10,6 @@
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(server.Id);
|
var apiClient = connectionManager.getApiClient(server.Id);
|
||||||
|
|
||||||
apiClient.getDevicesOptions().done(function (devicesOptions) {
|
|
||||||
|
|
||||||
if (!devicesOptions.EnabledCameraUploadDevices || devicesOptions.EnabledCameraUploadDevices.indexOf(apiClient.deviceId()) == -1) {
|
|
||||||
Logger.log("Camera upload is not enabled for this device.");
|
|
||||||
deferred.reject();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
uploadImagesInternal(server, apiClient, deferred);
|
|
||||||
}
|
|
||||||
|
|
||||||
}).fail(function () {
|
|
||||||
deferred.reject();
|
|
||||||
});
|
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
};
|
|
||||||
|
|
||||||
function uploadImagesInternal(server, apiClient, deferred) {
|
|
||||||
|
|
||||||
apiClient.getContentUploadHistory().done(function (result) {
|
apiClient.getContentUploadHistory().done(function (result) {
|
||||||
|
|
||||||
uploadImagesWithHistory(server, result, apiClient, deferred);
|
uploadImagesWithHistory(server, result, apiClient, deferred);
|
||||||
|
@ -36,7 +17,9 @@
|
||||||
}).fail(function () {
|
}).fail(function () {
|
||||||
deferred.reject();
|
deferred.reject();
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
return deferred.promise();
|
||||||
|
};
|
||||||
|
|
||||||
function uploadImagesWithHistory(server, uploadHistory, apiClient, deferred) {
|
function uploadImagesWithHistory(server, uploadHistory, apiClient, deferred) {
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,13 @@
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
if (options.uploadPhotos === false) {
|
var uploadPhotos = options.uploadPhotos !== false;
|
||||||
|
|
||||||
|
if (options.cameraUploadServers && options.cameraUploadServers.indexOf(server.Id) == -1) {
|
||||||
|
uploadPhotos = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!uploadPhotos) {
|
||||||
nextAction();
|
nextAction();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,14 +25,14 @@
|
||||||
"web-component-tester": "*",
|
"web-component-tester": "*",
|
||||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/polymerelements/iron-meta",
|
"homepage": "https://github.com/PolymerElements/iron-meta",
|
||||||
"_release": "1.0.3",
|
"_release": "1.0.3",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.0.3",
|
"tag": "v1.0.3",
|
||||||
"commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04"
|
"commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/polymerelements/iron-meta.git",
|
"_source": "git://github.com/PolymerElements/iron-meta.git",
|
||||||
"_target": "^1.0.0",
|
"_target": "^1.0.0",
|
||||||
"_originalSource": "polymerelements/iron-meta"
|
"_originalSource": "PolymerElements/iron-meta"
|
||||||
}
|
}
|
|
@ -42,7 +42,7 @@
|
||||||
"tag": "v1.0.4",
|
"tag": "v1.0.4",
|
||||||
"commit": "a7ac7fbdb79b4d82416ec9b41613575386d0d226"
|
"commit": "a7ac7fbdb79b4d82416ec9b41613575386d0d226"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/PolymerElements/paper-behaviors.git",
|
"_source": "git://github.com/polymerelements/paper-behaviors.git",
|
||||||
"_target": "^1.0.0",
|
"_target": "^1.0.0",
|
||||||
"_originalSource": "PolymerElements/paper-behaviors"
|
"_originalSource": "polymerelements/paper-behaviors"
|
||||||
}
|
}
|
|
@ -30,14 +30,14 @@
|
||||||
"web-component-tester": "*",
|
"web-component-tester": "*",
|
||||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/PolymerElements/paper-ripple",
|
"homepage": "https://github.com/polymerelements/paper-ripple",
|
||||||
"_release": "1.0.2",
|
"_release": "1.0.2",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.0.2",
|
"tag": "v1.0.2",
|
||||||
"commit": "b546dbe6ad0b1f58cac80caec3136cf3232e12fc"
|
"commit": "b546dbe6ad0b1f58cac80caec3136cf3232e12fc"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/PolymerElements/paper-ripple.git",
|
"_source": "git://github.com/polymerelements/paper-ripple.git",
|
||||||
"_target": "^1.0.0",
|
"_target": "^1.0.0",
|
||||||
"_originalSource": "PolymerElements/paper-ripple"
|
"_originalSource": "polymerelements/paper-ripple"
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "velocity",
|
"name": "velocity",
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"homepage": "http://velocityjs.org",
|
"homepage": "http://velocityjs.org",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
@ -38,14 +38,13 @@
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "http://github.com/julianshapiro/velocity.git"
|
"url": "http://github.com/julianshapiro/velocity.git"
|
||||||
},
|
},
|
||||||
"_release": "1.2.2",
|
"_release": "1.2.3",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "1.2.2",
|
"tag": "1.2.3",
|
||||||
"commit": "6b227928631aab5694255df3c219736c4c02449d"
|
"commit": "1ad0a8196fa973f96e347a9b7f5bdaf7498ed1a6"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/julianshapiro/velocity.git",
|
"_source": "git://github.com/julianshapiro/velocity.git",
|
||||||
"_target": "~1.2.2",
|
"_target": "~1.2.2",
|
||||||
"_originalSource": "velocity",
|
"_originalSource": "velocity"
|
||||||
"_direct": true
|
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "velocity",
|
"name": "velocity",
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"homepage": "http://velocityjs.org",
|
"homepage": "http://velocityjs.org",
|
||||||
"authors": [
|
"authors": [
|
||||||
{ "name" : "Julian Shapiro",
|
{ "name" : "Julian Shapiro",
|
||||||
|
|
|
@ -42,7 +42,6 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
// Needed tests:
|
// Needed tests:
|
||||||
// - "finish"
|
|
||||||
// - new stop behvaior
|
// - new stop behvaior
|
||||||
// - e/p/o shorthands
|
// - e/p/o shorthands
|
||||||
|
|
||||||
|
@ -986,6 +985,62 @@
|
||||||
}, asyncCheckDuration);
|
}, asyncCheckDuration);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/******************
|
||||||
|
Command: Finish
|
||||||
|
******************/
|
||||||
|
|
||||||
|
QUnit.asyncTest("Command: Finish / FinishAll", function() {
|
||||||
|
expect(9);
|
||||||
|
|
||||||
|
var $target1 = getTarget();
|
||||||
|
/* Ensure an error isn't thrown when "finish" is called on a $target that isn't animating. */
|
||||||
|
Velocity($target1, "finish");
|
||||||
|
|
||||||
|
/* Animate to defaultProperties, and then "finish" to jump to the end of it. */
|
||||||
|
Velocity($target1, defaultProperties, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000}));
|
||||||
|
Velocity($target1, "finish");
|
||||||
|
|
||||||
|
setTimeout(function() {
|
||||||
|
/* Ensure "finish" has removed all queued animations. */
|
||||||
|
/* We're using the element's queue length as a proxy. 0 and 1 both mean that the element's queue has been cleared -- a length of 1 just indicates that the animation is in progress. */
|
||||||
|
equal(Velocity.Utilities.queue($target1).length <= 1, true, "Queue cleared.");
|
||||||
|
|
||||||
|
/* End result of the animation should be applied */
|
||||||
|
equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "width")), defaultProperties.width, "Standard end value #1 was set.");
|
||||||
|
equal(parseFloat(Velocity.CSS.getPropertyValue($target1, "opacity")), defaultProperties.opacity, "Standard end value #2 was set.");
|
||||||
|
}, asyncCheckDuration);
|
||||||
|
|
||||||
|
var $target2 = getTarget();
|
||||||
|
Velocity($target2, { opacity: 0 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
|
||||||
|
Velocity($target2, { width: 0 }, defaultOptions);
|
||||||
|
Velocity($target2, "finish");
|
||||||
|
|
||||||
|
var $target3 = getTarget();
|
||||||
|
Velocity($target3, { opacity: 0, width: 50 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
|
||||||
|
Velocity($target3, { width: 0 }, defaultOptions);
|
||||||
|
Velocity($target3, { width: 100 }, defaultOptions);
|
||||||
|
Velocity($target3, "finish", true);
|
||||||
|
|
||||||
|
var $target4 = getTarget();
|
||||||
|
Velocity($target4, { opacity: 0, width: 50 }, Velocity.Utilities.extend({}, defaultOptions, { delay: 1000 }));
|
||||||
|
Velocity($target4, { width: 0 }, defaultOptions);
|
||||||
|
Velocity($target4, { width: 100 }, defaultOptions);
|
||||||
|
Velocity($target4, "finishAll", true);
|
||||||
|
|
||||||
|
setTimeout(function() {
|
||||||
|
equal(Data($target2, pluginName).tweensContainer.opacity, undefined, "Active call stopped.");
|
||||||
|
notEqual(Data($target2, pluginName).tweensContainer.width, undefined, "Next queue item started.");
|
||||||
|
|
||||||
|
equal(Velocity.Utilities.queue($target3, "").length, 0, "Full queue array cleared.");
|
||||||
|
equal(parseFloat(Velocity.CSS.getPropertyValue($target3, "width")), 50, "Just the first call's width was applied.");
|
||||||
|
|
||||||
|
equal(Velocity.Utilities.queue($target4, "").length, 0, "Full queue array cleared.");
|
||||||
|
equal(parseFloat(Velocity.CSS.getPropertyValue($target4, "width")), 100, "The last call's width was applied.");
|
||||||
|
|
||||||
|
start();
|
||||||
|
}, asyncCheckDuration);
|
||||||
|
});
|
||||||
|
|
||||||
/***********************
|
/***********************
|
||||||
Feature: Redirects
|
Feature: Redirects
|
||||||
***********************/
|
***********************/
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*! VelocityJS.org (1.2.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
|
/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
|
||||||
|
|
||||||
/*************************
|
/*************************
|
||||||
Velocity jQuery Shim
|
Velocity jQuery Shim
|
||||||
|
@ -2074,7 +2074,7 @@ return function (global, window, document, undefined) {
|
||||||
/* Support is included for jQuery's argument overloading: $.animate(propertyMap [, duration] [, easing] [, complete]).
|
/* Support is included for jQuery's argument overloading: $.animate(propertyMap [, duration] [, easing] [, complete]).
|
||||||
Overloading is detected by checking for the absence of an object being passed into options. */
|
Overloading is detected by checking for the absence of an object being passed into options. */
|
||||||
/* Note: The stop and finish actions do not accept animation options, and are therefore excluded from this check. */
|
/* Note: The stop and finish actions do not accept animation options, and are therefore excluded from this check. */
|
||||||
if (!/^(stop|finish)$/i.test(propertiesMap) && !$.isPlainObject(options)) {
|
if (!/^(stop|finish|finishAll)$/i.test(propertiesMap) && !$.isPlainObject(options)) {
|
||||||
/* The utility function shifts all arguments one position to the right, so we adjust for that offset. */
|
/* The utility function shifts all arguments one position to the right, so we adjust for that offset. */
|
||||||
var startingArgumentPosition = argumentIndex + 1;
|
var startingArgumentPosition = argumentIndex + 1;
|
||||||
|
|
||||||
|
@ -2140,6 +2140,7 @@ return function (global, window, document, undefined) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "finish":
|
case "finish":
|
||||||
|
case "finishAll":
|
||||||
case "stop":
|
case "stop":
|
||||||
/*******************
|
/*******************
|
||||||
Action: Stop
|
Action: Stop
|
||||||
|
@ -2158,6 +2159,22 @@ return function (global, window, document, undefined) {
|
||||||
|
|
||||||
delete Data(element).delayTimer;
|
delete Data(element).delayTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we want to finish everything in the queue, we have to iterate through it
|
||||||
|
and call each function. This will make them active calls below, which will
|
||||||
|
cause them to be applied via the duration setting. */
|
||||||
|
if (propertiesMap === "finishAll" && (options === true || Type.isString(options))) {
|
||||||
|
/* Iterate through the items in the element's queue. */
|
||||||
|
$.each($.queue(element, Type.isString(options) ? options : ""), function(_, item) {
|
||||||
|
/* The queue array can contain an "inprogress" string, which we skip. */
|
||||||
|
if (Type.isFunction(item)) {
|
||||||
|
item();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Clearing the $.queue() array is achieved by resetting it to []. */
|
||||||
|
$.queue(element, Type.isString(options) ? options : "", []);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var callsToStop = [];
|
var callsToStop = [];
|
||||||
|
@ -2193,7 +2210,8 @@ return function (global, window, document, undefined) {
|
||||||
$.each(elements, function(l, element) {
|
$.each(elements, function(l, element) {
|
||||||
/* Check that this call was applied to the target element. */
|
/* Check that this call was applied to the target element. */
|
||||||
if (element === activeElement) {
|
if (element === activeElement) {
|
||||||
/* Optionally clear the remaining queued calls. */
|
/* Optionally clear the remaining queued calls. If we're doing "finishAll" this won't find anything,
|
||||||
|
due to the queue-clearing above. */
|
||||||
if (options === true || Type.isString(options)) {
|
if (options === true || Type.isString(options)) {
|
||||||
/* Iterate through the items in the element's queue. */
|
/* Iterate through the items in the element's queue. */
|
||||||
$.each($.queue(element, Type.isString(options) ? options : ""), function(_, item) {
|
$.each($.queue(element, Type.isString(options) ? options : ""), function(_, item) {
|
||||||
|
@ -2221,7 +2239,7 @@ return function (global, window, document, undefined) {
|
||||||
}
|
}
|
||||||
|
|
||||||
callsToStop.push(i);
|
callsToStop.push(i);
|
||||||
} else if (propertiesMap === "finish") {
|
} else if (propertiesMap === "finish" || propertiesMap === "finishAll") {
|
||||||
/* To get active tweens to finish immediately, we forcefully shorten their durations to 1ms so that
|
/* To get active tweens to finish immediately, we forcefully shorten their durations to 1ms so that
|
||||||
they finish upon the next rAf tick then proceed with normal call completion logic. */
|
they finish upon the next rAf tick then proceed with normal call completion logic. */
|
||||||
activeCall[2].duration = 1;
|
activeCall[2].duration = 1;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -168,7 +168,6 @@
|
||||||
|
|
||||||
.searchResultsOverlay {
|
.searchResultsOverlay {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
background: rgba(34, 34, 34, 1);
|
|
||||||
top: 50px;
|
top: 50px;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
|
|
|
@ -31,6 +31,19 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<h1>
|
||||||
|
${HeaderCameraUpload}
|
||||||
|
</h1>
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
|
||||||
|
<p>${SelectCameraUploadServers}</p>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div class="paperCheckboxList uploadServerList">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<button type="submit" data-role="none" class="clearButton">
|
<button type="submit" data-role="none" class="clearButton">
|
||||||
|
|
|
@ -4,16 +4,14 @@
|
||||||
<title>Emby</title>
|
<title>Emby</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage" data-contextname="${TitleRemoteControl}" data-theme="b" data-require="jqmcollapsible,scripts/nowplayingpage,paperbuttonstyle">
|
<div id="nowPlayingPage" data-role="page" class="page libraryPage nowPlayingPage noSecondaryNavPage" data-contextname="${TitleRemoteControl}" data-theme="b" data-require="jqmcollapsible,scripts/nowplayingpage">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
<paper-tabs class="nowPlayingPagePaperTabs" hidescrollbuttons noink>
|
<div>
|
||||||
|
<a href="#" data-index="0">${TabNowPlaying}</a>
|
||||||
<paper-tab>${TabNowPlaying}</paper-tab>
|
<a href="#" data-index="1">${TabControls}</a>
|
||||||
<paper-tab>${TabControls}</paper-tab>
|
<a href="#" data-index="2">${TabPlaylist}</a>
|
||||||
<paper-tab>${TabPlaylist}</paper-tab>
|
</div>
|
||||||
|
|
||||||
</paper-tabs>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div data-role="content" style="overflow:visible;">
|
<div data-role="content" style="overflow:visible;">
|
||||||
|
@ -27,7 +25,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<neon-animated-pages selected="{{selected}}">
|
<neon-animated-pages>
|
||||||
<neon-animatable>
|
<neon-animatable>
|
||||||
<div style="text-align:center;">
|
<div style="text-align:center;">
|
||||||
|
|
||||||
|
@ -167,6 +165,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<paper-tabs class="nowPlayingPagePaperTabs" hidescrollbuttons noink>
|
||||||
|
|
||||||
|
<paper-tab>${TabNowPlaying}</paper-tab>
|
||||||
|
<paper-tab>${TabControls}</paper-tab>
|
||||||
|
<paper-tab>${TabPlaylist}</paper-tab>
|
||||||
|
|
||||||
|
</paper-tabs>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -98,6 +98,21 @@
|
||||||
return appStorage.getItem('displayLanguage') || 'en-US';
|
return appStorage.getItem('displayLanguage') || 'en-US';
|
||||||
},
|
},
|
||||||
|
|
||||||
|
cameraUploadServers: function (val) {
|
||||||
|
|
||||||
|
if (val != null) {
|
||||||
|
update('cameraUploadServers', val.join(','));
|
||||||
|
}
|
||||||
|
|
||||||
|
val = appStorage.getItem('cameraUploadServers');
|
||||||
|
|
||||||
|
if (val) {
|
||||||
|
return val.split(',');
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
|
||||||
displayPreferencesKey: function () {
|
displayPreferencesKey: function () {
|
||||||
if (AppInfo.isNativeApp) {
|
if (AppInfo.isNativeApp) {
|
||||||
return 'Emby Mobile';
|
return 'Emby Mobile';
|
||||||
|
|
|
@ -633,6 +633,18 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function enableScrollX() {
|
||||||
|
return $.browser.mobile && AppInfo.enableAppLayouts;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPortraitShape() {
|
||||||
|
return enableScrollX() ? 'overflowPortrait' : 'detailPagePortrait';
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSquareShape() {
|
||||||
|
return enableScrollX() ? 'overflowSquare' : 'detailPageSquare';
|
||||||
|
}
|
||||||
|
|
||||||
function renderSimilarItems(page, item, context) {
|
function renderSimilarItems(page, item, context) {
|
||||||
|
|
||||||
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "Series" || item.Type == "Program" || item.Type == "Recording" || item.Type == "Game" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "ChannelVideoItem") {
|
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "Series" || item.Type == "Program" || item.Type == "Recording" || item.Type == "Game" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "ChannelVideoItem") {
|
||||||
|
@ -643,7 +655,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var shape = item.Type == "MusicAlbum" || item.Type == "MusicArtist" ? "detailPageSquare" : "detailPagePortrait";
|
var shape = item.Type == "MusicAlbum" || item.Type == "MusicArtist" ? getSquareShape() : getPortraitShape();
|
||||||
var screenWidth = $(window).width();
|
var screenWidth = $(window).width();
|
||||||
var screenHeight = $(window).height();
|
var screenHeight = $(window).height();
|
||||||
|
|
||||||
|
@ -657,6 +669,10 @@
|
||||||
options.limit *= 2;
|
options.limit *= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enableScrollX()) {
|
||||||
|
options.limit = 12;
|
||||||
|
}
|
||||||
|
|
||||||
ApiClient.getSimilarItems(item.Id, options).done(function (result) {
|
ApiClient.getSimilarItems(item.Id, options).done(function (result) {
|
||||||
|
|
||||||
if (!result.Items.length) {
|
if (!result.Items.length) {
|
||||||
|
@ -669,7 +685,14 @@
|
||||||
|
|
||||||
$('.similiarHeader', elem).html(Globalize.translate('HeaderIfYouLikeCheckTheseOut', item.Name));
|
$('.similiarHeader', elem).html(Globalize.translate('HeaderIfYouLikeCheckTheseOut', item.Name));
|
||||||
|
|
||||||
var html = LibraryBrowser.getPosterViewHtml({
|
var html = '';
|
||||||
|
|
||||||
|
if (enableScrollX()) {
|
||||||
|
html += '<div class="hiddenScrollX itemsContainer">';
|
||||||
|
} else {
|
||||||
|
html += '<div class="itemsContainer">';
|
||||||
|
}
|
||||||
|
html += LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: shape,
|
shape: shape,
|
||||||
showParentTitle: item.Type == "MusicAlbum",
|
showParentTitle: item.Type == "MusicAlbum",
|
||||||
|
@ -682,6 +705,7 @@
|
||||||
coverImage: item.Type == "MusicAlbum" || item.Type == "MusicArtist",
|
coverImage: item.Type == "MusicAlbum" || item.Type == "MusicArtist",
|
||||||
overlayPlayButton: true
|
overlayPlayButton: true
|
||||||
});
|
});
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
$('#similarContent', page).html(html).lazyChildren().createCardMenus();
|
$('#similarContent', page).html(html).lazyChildren().createCardMenus();
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
options.enableBackgroundTransfer = true;
|
options.enableBackgroundTransfer = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
options.cameraUploadServers = AppSettings.cameraUploadServers();
|
||||||
|
|
||||||
syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync(options).done(function () {
|
syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync(options).done(function () {
|
||||||
|
|
||||||
syncPromise = null;
|
syncPromise = null;
|
||||||
|
|
|
@ -6,6 +6,17 @@
|
||||||
page.querySelector('#chkWifi').checked = AppSettings.syncOnlyOnWifi();
|
page.querySelector('#chkWifi').checked = AppSettings.syncOnlyOnWifi();
|
||||||
page.querySelector('#chkSyncLosslessAudio').checked = AppSettings.syncLosslessAudio();
|
page.querySelector('#chkSyncLosslessAudio').checked = AppSettings.syncLosslessAudio();
|
||||||
|
|
||||||
|
var uploadServers = AppSettings.cameraUploadServers();
|
||||||
|
|
||||||
|
page.querySelector('.uploadServerList').innerHTML = ConnectionManager.getSavedServers().map(function (s) {
|
||||||
|
|
||||||
|
var checkedHtml = uploadServers.indexOf(s.Id) == -1 ? '' : ' checked';
|
||||||
|
var html = '<paper-checkbox' + checkedHtml + ' class="chkUploadServer" data-id="' + s.Id + '">' + s.Name + '</paper-checkbox>';
|
||||||
|
|
||||||
|
return html;
|
||||||
|
|
||||||
|
}).join('');
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -775,20 +775,37 @@
|
||||||
var tabs = page.querySelector('paper-tabs');
|
var tabs = page.querySelector('paper-tabs');
|
||||||
|
|
||||||
if (AppInfo.enableNowPlayingPageBottomTabs) {
|
if (AppInfo.enableNowPlayingPageBottomTabs) {
|
||||||
tabs.alignBottom = true;
|
tabs.classList.remove('hide');
|
||||||
tabs.classList.add('bottom');
|
|
||||||
//page.classList.add('noSecondaryNavPage');
|
//page.classList.add('noSecondaryNavPage');
|
||||||
} else {
|
} else {
|
||||||
tabs.classList.remove('bottom');
|
tabs.classList.add('hide');
|
||||||
//page.classList.remove('noSecondaryNavPage');
|
//page.classList.remove('noSecondaryNavPage');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tabs.classList.add('bottom');
|
||||||
|
tabs.alignBottom = true;
|
||||||
LibraryBrowser.configureSwipeTabs(page, tabs, page.querySelectorAll('neon-animated-pages')[0]);
|
LibraryBrowser.configureSwipeTabs(page, tabs, page.querySelectorAll('neon-animated-pages')[0]);
|
||||||
|
|
||||||
$(tabs).on('iron-select', function () {
|
$(tabs).on('iron-select', function () {
|
||||||
page.querySelector('neon-animated-pages').selected = this.selected;
|
page.querySelector('neon-animated-pages').selected = this.selected;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(page.querySelector('neon-animated-pages')).on('iron-select', function () {
|
||||||
|
var btn = page.querySelector('.libraryViewNav a.ui-btn-active');
|
||||||
|
|
||||||
|
if (btn) {
|
||||||
|
btn.classList.remove('ui-btn-active');
|
||||||
|
}
|
||||||
|
|
||||||
|
page.querySelector('.libraryViewNav a[data-index=\'' + this.selected + '\']').classList.add('ui-btn-active');
|
||||||
|
});
|
||||||
|
|
||||||
|
$(page.querySelectorAll('.libraryViewNav a')).on('click', function () {
|
||||||
|
var newSelected = this.getAttribute('data-index');
|
||||||
|
tabs.selected = newSelected;
|
||||||
|
page.querySelector('neon-animated-pages').selected = newSelected;
|
||||||
|
});
|
||||||
|
|
||||||
$(MediaController).on('playerchange', function () {
|
$(MediaController).on('playerchange', function () {
|
||||||
updateCastIcon(page);
|
updateCastIcon(page);
|
||||||
});
|
});
|
||||||
|
|
|
@ -147,7 +147,7 @@
|
||||||
|
|
||||||
if (createIfNeeded && !elem) {
|
if (createIfNeeded && !elem) {
|
||||||
|
|
||||||
var html = '<div class="searchResultsOverlay ui-body-b smoothScrollY">';
|
var html = '<div class="searchResultsOverlay ui-body-b smoothScrollY background-theme-b">';
|
||||||
|
|
||||||
html += '<div class="searchResultsContainer"><div class="itemsContainer"></div></div></div>';
|
html += '<div class="searchResultsContainer"><div class="itemsContainer"></div></div></div>';
|
||||||
|
|
||||||
|
|
|
@ -1729,6 +1729,7 @@ var AppInfo = {};
|
||||||
AppInfo.enableCustomHomeSections = true;
|
AppInfo.enableCustomHomeSections = true;
|
||||||
AppInfo.enableHomeTabs = true;
|
AppInfo.enableHomeTabs = true;
|
||||||
AppInfo.enableNowPlayingPageBottomTabs = true;
|
AppInfo.enableNowPlayingPageBottomTabs = true;
|
||||||
|
AppInfo.enableNowPlayingPageBottomTabs = false;
|
||||||
|
|
||||||
AppInfo.enableAppStorePolicy = isCordova;
|
AppInfo.enableAppStorePolicy = isCordova;
|
||||||
|
|
||||||
|
@ -1776,7 +1777,6 @@ var AppInfo = {};
|
||||||
AppInfo.enableMovieTrailersTab = true;
|
AppInfo.enableMovieTrailersTab = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
AppInfo.enableAppLayouts = true;
|
|
||||||
if (isCordova) {
|
if (isCordova) {
|
||||||
AppInfo.enableAppLayouts = true;
|
AppInfo.enableAppLayouts = true;
|
||||||
AppInfo.hasKnownExternalPlayerSupport = true;
|
AppInfo.hasKnownExternalPlayerSupport = true;
|
||||||
|
@ -1946,6 +1946,7 @@ var AppInfo = {};
|
||||||
Dashboard.importCss('themes/ios.css');
|
Dashboard.importCss('themes/ios.css');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Dashboard.importCss('themes/ios.css');
|
||||||
|
|
||||||
if ($.browser.msie && $.browser.tv && ($.browser.version || 11) <= 10) {
|
if ($.browser.msie && $.browser.tv && ($.browser.version || 11) <= 10) {
|
||||||
Dashboard.importCss('thirdparty/paper-ie10.css');
|
Dashboard.importCss('thirdparty/paper-ie10.css');
|
||||||
|
|
|
@ -1544,5 +1544,7 @@
|
||||||
"LabelHardwareVideoDecoderHelp": "Available on supported systems only.",
|
"LabelHardwareVideoDecoderHelp": "Available on supported systems only.",
|
||||||
"ButtonServerDashboard": "Server Dashboard",
|
"ButtonServerDashboard": "Server Dashboard",
|
||||||
"HeaderAdmin": "Admin",
|
"HeaderAdmin": "Admin",
|
||||||
"ButtonSignOut": "Sign out"
|
"ButtonSignOut": "Sign out",
|
||||||
|
"HeaderCameraUpload": "Camera Upload",
|
||||||
|
"SelectCameraUploadServers": "Upload camera photos to the following servers:"
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,5 +231,5 @@ paper-tab {
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingPage {
|
.nowPlayingPage {
|
||||||
padding-top: 40px !important;
|
padding-top: 50px !important;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue