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

update views

This commit is contained in:
Luke Pulverenti 2015-11-18 00:49:20 -05:00
parent 7f0e5e8cd8
commit 8c9287d505
15 changed files with 168 additions and 103 deletions

View file

@ -4,20 +4,16 @@
on: function (obj, eventName, selector, fn) {
Logger.log('event.on ' + eventName);
bean.on(obj, eventName, selector, fn);
},
off: function (obj, eventName, selector, fn) {
Logger.log('event.off ' + eventName);
bean.off(obj, eventName, selector);
},
trigger: function (obj, eventName, params) {
Logger.log('event.trigger ' + eventName);
// Need to push an extra param to make the argument order consistent with jquery
var newParams = [];
newParams.push({});

View file

@ -13,7 +13,6 @@
},
trigger: function (obj, eventName, params) {
Logger.log('event.trigger ' + eventName);
jQuery(obj).trigger(eventName, params);
}
};

View file

@ -39,6 +39,6 @@
"commit": "cec8e49744a1e18b14a711eea77e201bb70de544"
},
"_source": "git://github.com/desandro/doc-ready.git",
"_target": "~1.0.4",
"_target": "1.0.x",
"_originalSource": "doc-ready"
}

View file

@ -31,14 +31,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.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",
"_resolution": {
"type": "version",
"tag": "v1.0.4",
"commit": "5f5893ca7bd6a8413d2f777c092a1a179b6bd45e"
},
"_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

@ -169,6 +169,8 @@
var deviceProfile = MediaPlayer.getDeviceProfile();
var timeLimitMs = MediaController.playbackTimeLimitMs || 0;
AndroidVlcPlayer.playVideoVlc(val,
startPosMs,
item.Name,
@ -184,7 +186,8 @@
ApiClient.getCurrentUserId(),
ApiClient.accessToken(),
JSON.stringify(deviceProfile),
JSON.stringify(videoQualityOptions));
JSON.stringify(videoQualityOptions),
timeLimitMs);
playerState.currentSrc = val;
self.report('playing', null, startPosMs, false, 100);

View file

@ -90,13 +90,13 @@
}, function () {
Logger.log('downloading: ' + originalUrl);
//Logger.log('downloading: ' + originalUrl);
var ft = new FileTransfer();
ft.download(originalUrl, path, function (entry) {
var localUrl = normalizeReturnUrl(entry.toURL());
Logger.log(localUrl);
//Logger.log(localUrl);
deferred.resolveWith(null, [localUrl]);
});
});

View file

@ -193,8 +193,6 @@
var duration = result.duration || 0;
var position = result.progress || 0;
Logger.log('eventName: ' + eventName + '. position: ' + position);
var state = AudioRenderer.Current.playerState;
state.duration = duration;
@ -202,12 +200,16 @@
state.paused = result.state == 3 || eventName == 'paused';
state.volume = 0;
if (eventName == 'positionchange') {
onTimeUpdate();
return;
}
Logger.log('eventName: ' + eventName + '. position: ' + position);
if (eventName == 'playbackstop') {
onEnded();
}
else if (eventName == 'positionchange') {
onTimeUpdate();
}
else if (eventName == 'paused') {
onPause();
}

View file

@ -31,8 +31,7 @@
return;
}
// Get supporter status
getRegistrationInfo(prefix + 'appunlock').done(function (registrationInfo) {
function onRegistrationInfoResponse(registrationInfo) {
if (registrationInfo.IsRegistered) {
deferred.resolve();
@ -49,14 +48,18 @@
}
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 () {
deferred.reject();
// Get supporter status
getRegistrationInfo(prefix + 'appunlock').done(onRegistrationInfoResponse).fail(function () {
onRegistrationInfoResponse({});
});
});
}
@ -144,13 +147,19 @@
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 += '</div>';
dlg.innerHTML = html;
document.body.appendChild(dlg);
initInAppPurchaseElementEvents(dlg, deferred);
initInAppPurchaseElementEvents(dlg, dialogOptions.feature, deferred);
PaperDialogHelper.openWithHash(dlg, 'iap');
@ -169,7 +178,7 @@
dlg.classList.add('inAppPurchaseOverlay');
}
function initInAppPurchaseElementEvents(elem, deferred) {
function initInAppPurchaseElementEvents(elem, feature, deferred) {
isCancelled = true;
@ -194,15 +203,31 @@
clearCurrentDisplayingInfo();
if (isCancelled) {
deferred.reject();
}
var overlay = this;
$(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 () {
@ -262,9 +287,7 @@
return;
}
// Get supporter status
getRegistrationInfo('Sync').done(function (registrationInfo) {
function onRegistrationInfoResponse(registrationInfo) {
if (registrationInfo.IsRegistered) {
deferred.resolve();
return;
@ -273,14 +296,17 @@
IapManager.getSubscriptionOptions().done(function (subscriptionOptions) {
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 () {
deferred.reject();
// Get supporter status
getRegistrationInfo('Sync').done(onRegistrationInfoResponse).fail(function () {
onRegistrationInfoResponse({});
});
});
}

View file

@ -126,7 +126,7 @@
}
.nowPlayingBarPositionSlider #sliderBar {
top: 0;
padding-top: 0;
}
.nowPlayingBarPositionSlider #sliderContainer {
@ -167,6 +167,7 @@
.nowPlayingBarVolumeSlider {
margin-left: -1em;
margin-right: 2em;
}
.nowPlayingBarUserDataButtons {

View file

@ -256,10 +256,6 @@
$(self).trigger('beforeplaybackstart', [state, this]);
}
function onPlaybackStart(e, state) {
$(self).trigger('playbackstart', [state, this]);
}
function onPlaybackStop(e, state) {
$(self).trigger('playbackstop', [state, this]);
}
@ -462,10 +458,39 @@
}
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.enableDisplayMirroring(!self.enableDisplayMirroring());
};

View file

@ -722,14 +722,14 @@
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 += '<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-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="info" class="mediaButton infoButton" onclick="MediaPlayer.toggleInfo();"></paper-icon-button>';

View file

@ -52,7 +52,7 @@
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-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>';

View file

@ -921,5 +921,8 @@
"HeaderFavoriteSongs": "Favorite Songs",
"HeaderConfirmPluginInstallation": "Confirm 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"
}

View file

@ -931,5 +931,8 @@
"HeaderFavoriteSongs": "Favorite Songs",
"HeaderConfirmPluginInstallation": "Confirm 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"
}

View file

@ -18796,7 +18796,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<template strip-whitespace="">
<style>
:host {
display: inline-block;
@apply(--layout);
@apply(--layout-justified);
@apply(--layout-center);
width: 200px;
cursor: default;
-webkit-user-select: none;
@ -18817,8 +18819,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
#sliderContainer {
position: relative;
width: calc(100% - 32px);
height: 32px;
width: 100%;
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 {
@ -18826,70 +18830,67 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
}
#sliderContainer.editable {
float: left;
width: calc(100% - 72px);
margin: 12px 0;
margin-top: 12px;
margin-bottom: 12px;
}
.bar-container {
position: absolute;
top: 0;
left: 16px;
height: 100%;
width: 100%;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
}
.ring > .bar-container {
left: 20px;
width: calc(100% - 4px);
left: calc(5px + var(--paper-slider-height, 2px)/2);
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 {
transition: none;
}
.ring.expand:not(.pin) > .bar-container {
left: calc(15px + var(--paper-slider-height, 2px)/2);
}
#sliderBar {
position: absolute;
top: 15px;
left: 0;
padding: 15px 0;
width: 100%;
padding: 8px 0;
margin: -8px 0;
background-color: var(--paper-slider-bar-color, transparent);
--paper-progress-height: var(--paper-slider-height, 2px);
}
.ring #sliderBar {
left: -4px;
width: calc(100% + 4px);
margin-left: calc(-5px - var(--paper-slider-height, 2px)/2);
width: calc(100% + 5px + var(--paper-slider-height, 2px)/2);
}
.ring.expand:not(.pin) #sliderBar {
left: -14px;
width: calc(100% + 14px);
margin-left: calc(-15px - var(--paper-slider-height, 2px)/2);
width: calc(100% + 15px + var(--paper-slider-height, 2px)/2);
}
.slider-markers {
position: absolute;
top: 15px;
left: 15px;
height: 2px;
width: calc(100% + 2px);
top: calc(14px + var(--paper-slider-height,2px)/2);
height: var(--paper-slider-height, 2px);
left: 0;
right: -1px;
box-sizing: border-box;
pointer-events: none;
@apply(--layout-horizontal);
}
.slider-marker {
@apply(--layout-flex);
}
.slider-markers::after,
.slider-marker::after {
content: "";
display: block;
margin-left: -1px;
width: 2px;
height: 2px;
border-radius: 50%;
@ -18897,15 +18898,12 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
}
#sliderKnob {
@apply(--layout-center-justified);
@apply(--layout-center);
@apply(--layout-horizontal);
position: absolute;
left: 0;
top: 0;
width: 32px;
height: 32px;
margin-left: calc(-15px - var(--paper-slider-height, 2px)/2);
width: calc(30px + var(--paper-slider-height, 2px));
height: calc(30px + var(--paper-slider-height, 2px));
}
.transiting > #sliderKnob {
@ -18926,20 +18924,22 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
}
#sliderKnobInner {
width: 12px;
height: 12px;
margin: 10px;
width: calc(100% - 20px);
height: calc(100% - 20px);
border-radius: 50%;
background-color: var(--paper-slider-knob-color, --google-blue-700);
-moz-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-timing-function: ease;
}
.expand:not(.pin) > #sliderKnob > #sliderKnobInner {
margin: 0;
width: 100%;
height: 100%;
@ -18960,10 +18960,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
content: "";
position: absolute;
top: 0;
left: 0;
left: 50%;
margin-left: -13px;
width: 26px;
height: 26px;
margin-left: 3px;
border-radius: 50% 50% 50% 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);
position: absolute;
top: 0;
left: 0;
left: 50%;
margin-left: -16px;
width: 32px;
height: 26px;
text-align: center;
@ -19008,7 +19009,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
/* paper-input */
.slider-input {
width: 50px;
float: right;
overflow: hidden;
--paper-input-container-input: {
text-align: center;
@ -19020,9 +19020,14 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
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 {
width: 8px;
height: 8px;
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>
<template is="dom-if" if="[[snaps]]">
<div class="slider-markers horizontal layout">
<div class="slider-markers">
<template is="dom-repeat" items="[[markers]]">
<div class="slider-marker flex"></div>
<div class="slider-marker"></div>
</template>
</div>
</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>
</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._setPinValue(immediateValue);
},
_setPinValue: function (value) {
this.pinValue = value;
},
_trackEnd: function() {
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');
},
_setPinValue: function (value) {
this.pinValue = value;
},
_knobdown: function(event) {
this._expandKnob();
@ -19352,12 +19357,14 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
},
_maxMarkersChanged: function(maxMarkers) {
var l = (this.max - this.min) / this.step;
if (!this.snaps && l > maxMarkers) {
if (!this.snaps) {
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) {