mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update views
This commit is contained in:
parent
7f0e5e8cd8
commit
8c9287d505
15 changed files with 168 additions and 103 deletions
|
@ -4,20 +4,16 @@
|
||||||
|
|
||||||
on: function (obj, eventName, selector, fn) {
|
on: function (obj, eventName, selector, fn) {
|
||||||
|
|
||||||
Logger.log('event.on ' + eventName);
|
|
||||||
bean.on(obj, eventName, selector, fn);
|
bean.on(obj, eventName, selector, fn);
|
||||||
},
|
},
|
||||||
|
|
||||||
off: function (obj, eventName, selector, fn) {
|
off: function (obj, eventName, selector, fn) {
|
||||||
|
|
||||||
Logger.log('event.off ' + eventName);
|
|
||||||
bean.off(obj, eventName, selector);
|
bean.off(obj, eventName, selector);
|
||||||
},
|
},
|
||||||
|
|
||||||
trigger: function (obj, eventName, params) {
|
trigger: function (obj, eventName, params) {
|
||||||
|
|
||||||
Logger.log('event.trigger ' + eventName);
|
|
||||||
|
|
||||||
// Need to push an extra param to make the argument order consistent with jquery
|
// Need to push an extra param to make the argument order consistent with jquery
|
||||||
var newParams = [];
|
var newParams = [];
|
||||||
newParams.push({});
|
newParams.push({});
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
trigger: function (obj, eventName, params) {
|
trigger: function (obj, eventName, params) {
|
||||||
Logger.log('event.trigger ' + eventName);
|
|
||||||
jQuery(obj).trigger(eventName, params);
|
jQuery(obj).trigger(eventName, params);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,6 +39,6 @@
|
||||||
"commit": "cec8e49744a1e18b14a711eea77e201bb70de544"
|
"commit": "cec8e49744a1e18b14a711eea77e201bb70de544"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/desandro/doc-ready.git",
|
"_source": "git://github.com/desandro/doc-ready.git",
|
||||||
"_target": "~1.0.4",
|
"_target": "1.0.x",
|
||||||
"_originalSource": "doc-ready"
|
"_originalSource": "doc-ready"
|
||||||
}
|
}
|
|
@ -31,14 +31,14 @@
|
||||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
|
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
|
||||||
"iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0"
|
"iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/PolymerElements/paper-ripple",
|
"homepage": "https://github.com/polymerelements/paper-ripple",
|
||||||
"_release": "1.0.4",
|
"_release": "1.0.4",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.0.4",
|
"tag": "v1.0.4",
|
||||||
"commit": "5f5893ca7bd6a8413d2f777c092a1a179b6bd45e"
|
"commit": "5f5893ca7bd6a8413d2f777c092a1a179b6bd45e"
|
||||||
},
|
},
|
||||||
"_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"
|
||||||
}
|
}
|
5
dashboard-ui/cordova/android/vlcplayer.js
vendored
5
dashboard-ui/cordova/android/vlcplayer.js
vendored
|
@ -169,6 +169,8 @@
|
||||||
|
|
||||||
var deviceProfile = MediaPlayer.getDeviceProfile();
|
var deviceProfile = MediaPlayer.getDeviceProfile();
|
||||||
|
|
||||||
|
var timeLimitMs = MediaController.playbackTimeLimitMs || 0;
|
||||||
|
|
||||||
AndroidVlcPlayer.playVideoVlc(val,
|
AndroidVlcPlayer.playVideoVlc(val,
|
||||||
startPosMs,
|
startPosMs,
|
||||||
item.Name,
|
item.Name,
|
||||||
|
@ -184,7 +186,8 @@
|
||||||
ApiClient.getCurrentUserId(),
|
ApiClient.getCurrentUserId(),
|
||||||
ApiClient.accessToken(),
|
ApiClient.accessToken(),
|
||||||
JSON.stringify(deviceProfile),
|
JSON.stringify(deviceProfile),
|
||||||
JSON.stringify(videoQualityOptions));
|
JSON.stringify(videoQualityOptions),
|
||||||
|
timeLimitMs);
|
||||||
|
|
||||||
playerState.currentSrc = val;
|
playerState.currentSrc = val;
|
||||||
self.report('playing', null, startPosMs, false, 100);
|
self.report('playing', null, startPosMs, false, 100);
|
||||||
|
|
4
dashboard-ui/cordova/imagestore.js
vendored
4
dashboard-ui/cordova/imagestore.js
vendored
|
@ -90,13 +90,13 @@
|
||||||
|
|
||||||
}, function () {
|
}, function () {
|
||||||
|
|
||||||
Logger.log('downloading: ' + originalUrl);
|
//Logger.log('downloading: ' + originalUrl);
|
||||||
var ft = new FileTransfer();
|
var ft = new FileTransfer();
|
||||||
ft.download(originalUrl, path, function (entry) {
|
ft.download(originalUrl, path, function (entry) {
|
||||||
|
|
||||||
var localUrl = normalizeReturnUrl(entry.toURL());
|
var localUrl = normalizeReturnUrl(entry.toURL());
|
||||||
|
|
||||||
Logger.log(localUrl);
|
//Logger.log(localUrl);
|
||||||
deferred.resolveWith(null, [localUrl]);
|
deferred.resolveWith(null, [localUrl]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
12
dashboard-ui/cordova/ios/vlcplayer.js
vendored
12
dashboard-ui/cordova/ios/vlcplayer.js
vendored
|
@ -193,8 +193,6 @@
|
||||||
var duration = result.duration || 0;
|
var duration = result.duration || 0;
|
||||||
var position = result.progress || 0;
|
var position = result.progress || 0;
|
||||||
|
|
||||||
Logger.log('eventName: ' + eventName + '. position: ' + position);
|
|
||||||
|
|
||||||
var state = AudioRenderer.Current.playerState;
|
var state = AudioRenderer.Current.playerState;
|
||||||
|
|
||||||
state.duration = duration;
|
state.duration = duration;
|
||||||
|
@ -202,12 +200,16 @@
|
||||||
state.paused = result.state == 3 || eventName == 'paused';
|
state.paused = result.state == 3 || eventName == 'paused';
|
||||||
state.volume = 0;
|
state.volume = 0;
|
||||||
|
|
||||||
|
if (eventName == 'positionchange') {
|
||||||
|
onTimeUpdate();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger.log('eventName: ' + eventName + '. position: ' + position);
|
||||||
|
|
||||||
if (eventName == 'playbackstop') {
|
if (eventName == 'playbackstop') {
|
||||||
onEnded();
|
onEnded();
|
||||||
}
|
}
|
||||||
else if (eventName == 'positionchange') {
|
|
||||||
onTimeUpdate();
|
|
||||||
}
|
|
||||||
else if (eventName == 'paused') {
|
else if (eventName == 'paused') {
|
||||||
onPause();
|
onPause();
|
||||||
}
|
}
|
||||||
|
|
66
dashboard-ui/cordova/registrationservices.js
vendored
66
dashboard-ui/cordova/registrationservices.js
vendored
|
@ -31,8 +31,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get supporter status
|
function onRegistrationInfoResponse(registrationInfo) {
|
||||||
getRegistrationInfo(prefix + 'appunlock').done(function (registrationInfo) {
|
|
||||||
|
|
||||||
if (registrationInfo.IsRegistered) {
|
if (registrationInfo.IsRegistered) {
|
||||||
deferred.resolve();
|
deferred.resolve();
|
||||||
|
@ -49,14 +48,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
var dialogOptions = {
|
var dialogOptions = {
|
||||||
title: Globalize.translate('HeaderUnlockApp')
|
title: Globalize.translate('HeaderUnlockApp'),
|
||||||
|
enablePlayMinute: feature == 'playback',
|
||||||
|
feature: feature
|
||||||
};
|
};
|
||||||
|
|
||||||
showInAppPurchaseInfo(subscriptionOptions, unlockableProductInfo, registrationInfo, dialogOptions, deferred);
|
showInAppPurchaseInfo(subscriptionOptions, unlockableProductInfo, dialogOptions, deferred);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}).fail(function () {
|
// Get supporter status
|
||||||
deferred.reject();
|
getRegistrationInfo(prefix + 'appunlock').done(onRegistrationInfoResponse).fail(function () {
|
||||||
|
onRegistrationInfoResponse({});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -144,13 +147,19 @@
|
||||||
html += '</p>';
|
html += '</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dialogOptions.enablePlayMinute) {
|
||||||
|
html += '<p>';
|
||||||
|
html += '<paper-button raised class="secondary block btnCloseDialog subdued"><iron-icon icon="play-arrow"></iron-icon><span>' + Globalize.translate('ButtonPlayTwoMinutes') + '</span></paper-button>';
|
||||||
|
html += '</p>';
|
||||||
|
}
|
||||||
|
|
||||||
html += '</form>';
|
html += '</form>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
dlg.innerHTML = html;
|
dlg.innerHTML = html;
|
||||||
document.body.appendChild(dlg);
|
document.body.appendChild(dlg);
|
||||||
|
|
||||||
initInAppPurchaseElementEvents(dlg, deferred);
|
initInAppPurchaseElementEvents(dlg, dialogOptions.feature, deferred);
|
||||||
|
|
||||||
PaperDialogHelper.openWithHash(dlg, 'iap');
|
PaperDialogHelper.openWithHash(dlg, 'iap');
|
||||||
|
|
||||||
|
@ -169,7 +178,7 @@
|
||||||
dlg.classList.add('inAppPurchaseOverlay');
|
dlg.classList.add('inAppPurchaseOverlay');
|
||||||
}
|
}
|
||||||
|
|
||||||
function initInAppPurchaseElementEvents(elem, deferred) {
|
function initInAppPurchaseElementEvents(elem, feature, deferred) {
|
||||||
|
|
||||||
isCancelled = true;
|
isCancelled = true;
|
||||||
|
|
||||||
|
@ -194,15 +203,31 @@
|
||||||
|
|
||||||
clearCurrentDisplayingInfo();
|
clearCurrentDisplayingInfo();
|
||||||
|
|
||||||
if (isCancelled) {
|
var overlay = this;
|
||||||
deferred.reject();
|
|
||||||
}
|
|
||||||
|
|
||||||
$(this).remove();
|
if (isCancelled) {
|
||||||
|
|
||||||
|
if (feature == 'playback') {
|
||||||
|
Dashboard.alert({
|
||||||
|
message: Globalize.translate('ThankYouForTryingEnjoyOneMinute'),
|
||||||
|
title: Globalize.translate('HeaderTryPlayback'),
|
||||||
|
callback: function () {
|
||||||
|
deferred.reject();
|
||||||
|
$(overlay).remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
deferred.reject();
|
||||||
|
$(overlay).remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$(this).remove();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function showInAppPurchaseInfo(subscriptionOptions, unlockableProductInfo, serverRegistrationInfo, dialogOptions, deferred) {
|
function showInAppPurchaseInfo(subscriptionOptions, unlockableProductInfo, dialogOptions, deferred) {
|
||||||
|
|
||||||
require(['components/paperdialoghelper'], function () {
|
require(['components/paperdialoghelper'], function () {
|
||||||
|
|
||||||
|
@ -262,9 +287,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get supporter status
|
function onRegistrationInfoResponse(registrationInfo) {
|
||||||
getRegistrationInfo('Sync').done(function (registrationInfo) {
|
|
||||||
|
|
||||||
if (registrationInfo.IsRegistered) {
|
if (registrationInfo.IsRegistered) {
|
||||||
deferred.resolve();
|
deferred.resolve();
|
||||||
return;
|
return;
|
||||||
|
@ -273,14 +296,17 @@
|
||||||
IapManager.getSubscriptionOptions().done(function (subscriptionOptions) {
|
IapManager.getSubscriptionOptions().done(function (subscriptionOptions) {
|
||||||
|
|
||||||
var dialogOptions = {
|
var dialogOptions = {
|
||||||
title: Globalize.translate('HeaderUnlockSync')
|
title: Globalize.translate('HeaderUnlockSync'),
|
||||||
|
feature: 'sync'
|
||||||
};
|
};
|
||||||
|
|
||||||
showInAppPurchaseInfo(subscriptionOptions, null, registrationInfo, dialogOptions, deferred);
|
showInAppPurchaseInfo(subscriptionOptions, null, dialogOptions, deferred);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}).fail(function () {
|
// Get supporter status
|
||||||
deferred.reject();
|
getRegistrationInfo('Sync').done(onRegistrationInfoResponse).fail(function () {
|
||||||
|
onRegistrationInfoResponse({});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingBarPositionSlider #sliderBar {
|
.nowPlayingBarPositionSlider #sliderBar {
|
||||||
top: 0;
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingBarPositionSlider #sliderContainer {
|
.nowPlayingBarPositionSlider #sliderContainer {
|
||||||
|
@ -167,6 +167,7 @@
|
||||||
|
|
||||||
.nowPlayingBarVolumeSlider {
|
.nowPlayingBarVolumeSlider {
|
||||||
margin-left: -1em;
|
margin-left: -1em;
|
||||||
|
margin-right: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingBarUserDataButtons {
|
.nowPlayingBarUserDataButtons {
|
||||||
|
|
|
@ -256,10 +256,6 @@
|
||||||
$(self).trigger('beforeplaybackstart', [state, this]);
|
$(self).trigger('beforeplaybackstart', [state, this]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPlaybackStart(e, state) {
|
|
||||||
$(self).trigger('playbackstart', [state, this]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function onPlaybackStop(e, state) {
|
function onPlaybackStop(e, state) {
|
||||||
$(self).trigger('playbackstop', [state, this]);
|
$(self).trigger('playbackstop', [state, this]);
|
||||||
}
|
}
|
||||||
|
@ -462,10 +458,39 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
requirejs(["scripts/registrationservices"], function () {
|
requirejs(["scripts/registrationservices"], function () {
|
||||||
RegistrationServices.validateFeature('playback').done(fn);
|
|
||||||
|
self.playbackTimeLimitMs = null;
|
||||||
|
|
||||||
|
RegistrationServices.validateFeature('playback').done(fn).fail(function () {
|
||||||
|
|
||||||
|
self.playbackTimeLimitMs = lockedTimeLimitMs;
|
||||||
|
startAutoStopTimer();
|
||||||
|
fn();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var autoStopTimeout;
|
||||||
|
var lockedTimeLimitMs = 120000;
|
||||||
|
function startAutoStopTimer() {
|
||||||
|
stopAutoStopTimer();
|
||||||
|
autoStopTimeout = setTimeout(onAutoStopTimeout, lockedTimeLimitMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onAutoStopTimeout() {
|
||||||
|
stopAutoStopTimer();
|
||||||
|
MediaController.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopAutoStopTimer() {
|
||||||
|
|
||||||
|
var timeout = autoStopTimeout;
|
||||||
|
if (timeout) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
autoStopTimeout = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
self.toggleDisplayMirroring = function () {
|
self.toggleDisplayMirroring = function () {
|
||||||
self.enableDisplayMirroring(!self.enableDisplayMirroring());
|
self.enableDisplayMirroring(!self.enableDisplayMirroring());
|
||||||
};
|
};
|
||||||
|
|
|
@ -722,14 +722,14 @@
|
||||||
|
|
||||||
html += '<paper-icon-button icon="skip-next" class="nextTrackButton mediaButton videoTrackControl hide" onclick="MediaPlayer.nextTrack();"></paper-icon-button>';
|
html += '<paper-icon-button icon="skip-next" class="nextTrackButton mediaButton videoTrackControl hide" onclick="MediaPlayer.nextTrack();"></paper-icon-button>';
|
||||||
|
|
||||||
html += '<paper-slider pin step=".1" min="0" max="100" value="0" class="videoPositionSlider"></paper-slider>';
|
html += '<paper-slider pin step=".1" min="0" max="100" value="0" class="videoPositionSlider" style="display:inline-block;margin-right:2em;"></paper-slider>';
|
||||||
|
|
||||||
html += '<div class="currentTime">--:--</div>';
|
html += '<div class="currentTime">--:--</div>';
|
||||||
|
|
||||||
html += '<paper-icon-button icon="volume-up" class="muteButton mediaButton" onclick="MediaPlayer.mute();"></paper-icon-button>';
|
html += '<paper-icon-button icon="volume-up" class="muteButton mediaButton" onclick="MediaPlayer.mute();"></paper-icon-button>';
|
||||||
html += '<paper-icon-button icon="volume-off" class="unmuteButton mediaButton" onclick="MediaPlayer.unMute();"></paper-icon-button>';
|
html += '<paper-icon-button icon="volume-off" class="unmuteButton mediaButton" onclick="MediaPlayer.unMute();"></paper-icon-button>';
|
||||||
|
|
||||||
html += '<paper-slider pin step="1" min="0" max="100" value="0" class="videoVolumeSlider" style="width:100px;vertical-align:middle;margin-left:-1em;"></paper-slider>';
|
html += '<paper-slider pin step="1" min="0" max="100" value="0" class="videoVolumeSlider" style="width:100px;vertical-align:middle;margin-left:-1em;margin-right:2em;display:inline-block;"></paper-slider>';
|
||||||
|
|
||||||
html += '<paper-icon-button icon="fullscreen" class="mediaButton fullscreenButton" onclick="MediaPlayer.toggleFullscreen();" id="video-fullscreenButton"></paper-icon-button>';
|
html += '<paper-icon-button icon="fullscreen" class="mediaButton fullscreenButton" onclick="MediaPlayer.toggleFullscreen();" id="video-fullscreenButton"></paper-icon-button>';
|
||||||
html += '<paper-icon-button icon="info" class="mediaButton infoButton" onclick="MediaPlayer.toggleInfo();"></paper-icon-button>';
|
html += '<paper-icon-button icon="info" class="mediaButton infoButton" onclick="MediaPlayer.toggleInfo();"></paper-icon-button>';
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
html += '<paper-icon-button icon="volume-up" class="muteButton mediaButton"></paper-icon-button>';
|
html += '<paper-icon-button icon="volume-up" class="muteButton mediaButton"></paper-icon-button>';
|
||||||
html += '<paper-icon-button icon="volume-off" class="unmuteButton mediaButton"></paper-icon-button>';
|
html += '<paper-icon-button icon="volume-off" class="unmuteButton mediaButton"></paper-icon-button>';
|
||||||
|
|
||||||
html += '<paper-slider pin step="1" min="0" max="100" value="0" class="nowPlayingBarVolumeSlider" style="width:100px;vertical-align:middle;"></paper-slider>';
|
html += '<paper-slider pin step="1" min="0" max="100" value="0" class="nowPlayingBarVolumeSlider" style="width:100px;vertical-align:middle;display:inline-block;"></paper-slider>';
|
||||||
|
|
||||||
html += '<paper-icon-button icon="repeat" class="mediaButton toggleRepeatButton"></paper-icon-button>';
|
html += '<paper-icon-button icon="repeat" class="mediaButton toggleRepeatButton"></paper-icon-button>';
|
||||||
|
|
||||||
|
|
|
@ -921,5 +921,8 @@
|
||||||
"HeaderFavoriteSongs": "Favorite Songs",
|
"HeaderFavoriteSongs": "Favorite Songs",
|
||||||
"HeaderConfirmPluginInstallation": "Confirm Plugin Installation",
|
"HeaderConfirmPluginInstallation": "Confirm Plugin Installation",
|
||||||
"PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.",
|
"PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.",
|
||||||
"MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability."
|
"MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.",
|
||||||
|
"ButtonPlayTwoMinutes": "Play two minutes",
|
||||||
|
"ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.",
|
||||||
|
"HeaderTryPlayback": "Try Playback"
|
||||||
}
|
}
|
|
@ -931,5 +931,8 @@
|
||||||
"HeaderFavoriteSongs": "Favorite Songs",
|
"HeaderFavoriteSongs": "Favorite Songs",
|
||||||
"HeaderConfirmPluginInstallation": "Confirm Plugin Installation",
|
"HeaderConfirmPluginInstallation": "Confirm Plugin Installation",
|
||||||
"PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.",
|
"PleaseConfirmPluginInstallation": "Please click OK to confirm you've read the above and wish to proceed with the plugin installation.",
|
||||||
"MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability."
|
"MessagePluginInstallDisclaimer": "Plugins built by Emby community members are a great way to enhance your Emby experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Emby Server, such as longer library scans, additional background processing, and decreased system stability.",
|
||||||
|
"ButtonPlayTwoMinutes": "Play two minutes",
|
||||||
|
"ThankYouForTryingEnjoyOneMinute": "Please enjoy two minutes of playback. Thank you for trying Emby.",
|
||||||
|
"HeaderTryPlayback": "Try Playback"
|
||||||
}
|
}
|
||||||
|
|
|
@ -18796,7 +18796,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
<template strip-whitespace="">
|
<template strip-whitespace="">
|
||||||
<style>
|
<style>
|
||||||
:host {
|
:host {
|
||||||
display: inline-block;
|
@apply(--layout);
|
||||||
|
@apply(--layout-justified);
|
||||||
|
@apply(--layout-center);
|
||||||
width: 200px;
|
width: 200px;
|
||||||
cursor: default;
|
cursor: default;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
|
@ -18817,8 +18819,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
|
|
||||||
#sliderContainer {
|
#sliderContainer {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: calc(100% - 32px);
|
width: 100%;
|
||||||
height: 32px;
|
height: calc(30px + var(--paper-slider-height, 2px));
|
||||||
|
margin-left: calc(15px + var(--paper-slider-height, 2px)/2);
|
||||||
|
margin-right: calc(15px + var(--paper-slider-height, 2px)/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#sliderContainer:focus {
|
#sliderContainer:focus {
|
||||||
|
@ -18826,70 +18830,67 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
}
|
}
|
||||||
|
|
||||||
#sliderContainer.editable {
|
#sliderContainer.editable {
|
||||||
float: left;
|
margin-top: 12px;
|
||||||
width: calc(100% - 72px);
|
margin-bottom: 12px;
|
||||||
margin: 12px 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.bar-container {
|
.bar-container {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 16px;
|
bottom: 0;
|
||||||
height: 100%;
|
left: 0;
|
||||||
width: 100%;
|
right: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ring > .bar-container {
|
.ring > .bar-container {
|
||||||
left: 20px;
|
left: calc(5px + var(--paper-slider-height, 2px)/2);
|
||||||
width: calc(100% - 4px);
|
|
||||||
transition: left 0.18s ease, width 0.18s ease;
|
transition: left 0.18s ease, width 0.18s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ring.expand:not(.pin) > .bar-container {
|
|
||||||
left: 30px;
|
|
||||||
width: calc(100% - 14px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ring.expand.dragging > .bar-container {
|
.ring.expand.dragging > .bar-container {
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ring.expand:not(.pin) > .bar-container {
|
||||||
|
left: calc(15px + var(--paper-slider-height, 2px)/2);
|
||||||
|
}
|
||||||
|
|
||||||
#sliderBar {
|
#sliderBar {
|
||||||
position: absolute;
|
padding: 15px 0;
|
||||||
top: 15px;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 8px 0;
|
|
||||||
margin: -8px 0;
|
|
||||||
background-color: var(--paper-slider-bar-color, transparent);
|
background-color: var(--paper-slider-bar-color, transparent);
|
||||||
--paper-progress-height: var(--paper-slider-height, 2px);
|
--paper-progress-height: var(--paper-slider-height, 2px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ring #sliderBar {
|
.ring #sliderBar {
|
||||||
left: -4px;
|
margin-left: calc(-5px - var(--paper-slider-height, 2px)/2);
|
||||||
width: calc(100% + 4px);
|
width: calc(100% + 5px + var(--paper-slider-height, 2px)/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ring.expand:not(.pin) #sliderBar {
|
.ring.expand:not(.pin) #sliderBar {
|
||||||
left: -14px;
|
margin-left: calc(-15px - var(--paper-slider-height, 2px)/2);
|
||||||
width: calc(100% + 14px);
|
width: calc(100% + 15px + var(--paper-slider-height, 2px)/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.slider-markers {
|
.slider-markers {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 15px;
|
top: calc(14px + var(--paper-slider-height,2px)/2);
|
||||||
left: 15px;
|
height: var(--paper-slider-height, 2px);
|
||||||
height: 2px;
|
left: 0;
|
||||||
width: calc(100% + 2px);
|
right: -1px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
@apply(--layout-horizontal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.slider-marker {
|
||||||
|
@apply(--layout-flex);
|
||||||
|
}
|
||||||
.slider-markers::after,
|
.slider-markers::after,
|
||||||
.slider-marker::after {
|
.slider-marker::after {
|
||||||
content: "";
|
content: "";
|
||||||
display: block;
|
display: block;
|
||||||
|
margin-left: -1px;
|
||||||
width: 2px;
|
width: 2px;
|
||||||
height: 2px;
|
height: 2px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
@ -18897,15 +18898,12 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
}
|
}
|
||||||
|
|
||||||
#sliderKnob {
|
#sliderKnob {
|
||||||
@apply(--layout-center-justified);
|
|
||||||
@apply(--layout-center);
|
|
||||||
@apply(--layout-horizontal);
|
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
width: 32px;
|
margin-left: calc(-15px - var(--paper-slider-height, 2px)/2);
|
||||||
height: 32px;
|
width: calc(30px + var(--paper-slider-height, 2px));
|
||||||
|
height: calc(30px + var(--paper-slider-height, 2px));
|
||||||
}
|
}
|
||||||
|
|
||||||
.transiting > #sliderKnob {
|
.transiting > #sliderKnob {
|
||||||
|
@ -18926,20 +18924,22 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
}
|
}
|
||||||
|
|
||||||
#sliderKnobInner {
|
#sliderKnobInner {
|
||||||
width: 12px;
|
margin: 10px;
|
||||||
height: 12px;
|
width: calc(100% - 20px);
|
||||||
|
height: calc(100% - 20px);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background-color: var(--paper-slider-knob-color, --google-blue-700);
|
background-color: var(--paper-slider-knob-color, --google-blue-700);
|
||||||
|
|
||||||
-moz-box-sizing: border-box;
|
-moz-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
transition-property: height, width, background-color, border;
|
transition-property: margin, height, width, background-color, border;
|
||||||
transition-duration: 0.1s;
|
transition-duration: 0.1s;
|
||||||
transition-timing-function: ease;
|
transition-timing-function: ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.expand:not(.pin) > #sliderKnob > #sliderKnobInner {
|
.expand:not(.pin) > #sliderKnob > #sliderKnobInner {
|
||||||
|
margin: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
|
@ -18960,10 +18960,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 50%;
|
||||||
|
margin-left: -13px;
|
||||||
width: 26px;
|
width: 26px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
margin-left: 3px;
|
|
||||||
border-radius: 50% 50% 50% 0;
|
border-radius: 50% 50% 50% 0;
|
||||||
|
|
||||||
-webkit-transform: rotate(-45deg) scale(0) translate(0);
|
-webkit-transform: rotate(-45deg) scale(0) translate(0);
|
||||||
|
@ -18989,7 +18989,8 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
content: attr(value);
|
content: attr(value);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 50%;
|
||||||
|
margin-left: -16px;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -19008,7 +19009,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
/* paper-input */
|
/* paper-input */
|
||||||
.slider-input {
|
.slider-input {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
float: right;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
--paper-input-container-input: {
|
--paper-input-container-input: {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -19020,9 +19020,14 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.disabled > #sliderKnob {
|
||||||
|
top: 2px;
|
||||||
|
margin-left: calc(-13px - var(--paper-slider-height, 2px)/2);
|
||||||
|
width: calc(26px + var(--paper-slider-height, 2px));
|
||||||
|
height: calc(26px + var(--paper-slider-height, 2px));
|
||||||
|
}
|
||||||
|
|
||||||
.disabled > #sliderKnob > #sliderKnobInner {
|
.disabled > #sliderKnob > #sliderKnobInner {
|
||||||
width: 8px;
|
|
||||||
height: 8px;
|
|
||||||
background-color: var(--paper-slider-disabled-knob-color, --google-grey-500);
|
background-color: var(--paper-slider-disabled-knob-color, --google-grey-500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19043,14 +19048,14 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template is="dom-if" if="[[snaps]]">
|
<template is="dom-if" if="[[snaps]]">
|
||||||
<div class="slider-markers horizontal layout">
|
<div class="slider-markers">
|
||||||
<template is="dom-repeat" items="[[markers]]">
|
<template is="dom-repeat" items="[[markers]]">
|
||||||
<div class="slider-marker flex"></div>
|
<div class="slider-marker"></div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<div id="sliderKnob" class="center-justified center horizontal layout" on-down="_knobdown" on-up="_resetKnob" on-track="_onTrack" on-transitionend="_knobTransitionEnd">
|
<div id="sliderKnob" on-down="_knobdown" on-up="_resetKnob" on-track="_onTrack" on-transitionend="_knobTransitionEnd">
|
||||||
<div id="sliderKnobInner" value$="[[pinValue]]"></div>
|
<div id="sliderKnobInner" value$="[[pinValue]]"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -19290,6 +19295,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
this.translate3d(translateX + 'px', 0, 0, this.$.sliderKnob);
|
this.translate3d(translateX + 'px', 0, 0, this.$.sliderKnob);
|
||||||
this._setPinValue(immediateValue);
|
this._setPinValue(immediateValue);
|
||||||
},
|
},
|
||||||
|
_setPinValue: function (value) {
|
||||||
|
this.pinValue = value;
|
||||||
|
},
|
||||||
|
|
||||||
_trackEnd: function() {
|
_trackEnd: function() {
|
||||||
var s = this.$.sliderKnob.style;
|
var s = this.$.sliderKnob.style;
|
||||||
|
@ -19303,9 +19311,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
|
|
||||||
this.fire('change');
|
this.fire('change');
|
||||||
},
|
},
|
||||||
_setPinValue: function (value) {
|
|
||||||
this.pinValue = value;
|
|
||||||
},
|
|
||||||
|
|
||||||
_knobdown: function(event) {
|
_knobdown: function(event) {
|
||||||
this._expandKnob();
|
this._expandKnob();
|
||||||
|
@ -19352,12 +19357,14 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
|
||||||
},
|
},
|
||||||
|
|
||||||
_maxMarkersChanged: function(maxMarkers) {
|
_maxMarkersChanged: function(maxMarkers) {
|
||||||
var l = (this.max - this.min) / this.step;
|
if (!this.snaps) {
|
||||||
if (!this.snaps && l > maxMarkers) {
|
|
||||||
this._setMarkers([]);
|
this._setMarkers([]);
|
||||||
} else {
|
|
||||||
this._setMarkers(new Array(l));
|
|
||||||
}
|
}
|
||||||
|
var steps = Math.floor((this.max - this.min) / this.step);
|
||||||
|
if (steps > maxMarkers) {
|
||||||
|
steps = maxMarkers;
|
||||||
|
}
|
||||||
|
this._setMarkers(new Array(steps));
|
||||||
},
|
},
|
||||||
|
|
||||||
_mergeClasses: function(classes) {
|
_mergeClasses: function(classes) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue