mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update recording fields
This commit is contained in:
parent
6435d047f6
commit
b162cf30c5
12 changed files with 211 additions and 82 deletions
|
@ -14,12 +14,12 @@
|
|||
},
|
||||
"devDependencies": {},
|
||||
"ignore": [],
|
||||
"version": "1.4.369",
|
||||
"_release": "1.4.369",
|
||||
"version": "1.4.370",
|
||||
"_release": "1.4.370",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.4.369",
|
||||
"commit": "ffc05de380954c16b3621824d3034dc2c1a5a1ee"
|
||||
"tag": "1.4.370",
|
||||
"commit": "13cf9a90d0c2a763e6d453e004f528136456062f"
|
||||
},
|
||||
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
|
||||
"_target": "^1.2.1",
|
||||
|
|
|
@ -441,25 +441,6 @@
|
|||
opacity: .7;
|
||||
}
|
||||
|
||||
.visibleGuideScroller::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.visibleGuideScroller::-webkit-scrollbar-button:start:decrement,
|
||||
.visibleGuideScroller::-webkit-scrollbar-button:end:increment {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.visibleGuideScroller::-webkit-scrollbar-track-piece {
|
||||
background-color: #3b3b3b;
|
||||
}
|
||||
|
||||
.visibleGuideScroller::-webkit-scrollbar-thumb:vertical, .visibleGuideScroller::-webkit-scrollbar-thumb:horizontal {
|
||||
-webkit-border-radius: 2px;
|
||||
background: #888 no-repeat center;
|
||||
}
|
||||
|
||||
.guideOptions {
|
||||
color: #eee;
|
||||
flex-shrink: 0;
|
||||
|
|
|
@ -903,9 +903,9 @@
|
|||
context.innerHTML = globalize.translateDocument(template, 'sharedcomponents');
|
||||
|
||||
if (layoutManager.desktop) {
|
||||
var visibleGuideScrollers = context.querySelectorAll('.guideScroller');
|
||||
for (var i = 0, length = visibleGuideScrollers.length; i < length; i++) {
|
||||
visibleGuideScrollers[i].classList.add('visibleGuideScroller');
|
||||
var guideScrollers = context.querySelectorAll('.guideScroller');
|
||||
for (var i = 0, length = guideScrollers.length; i < length; i++) {
|
||||
guideScrollers[i].classList.add('darkScroller');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
|
|||
});
|
||||
}
|
||||
|
||||
if (item.CanDelete) {
|
||||
if (item.CanDelete && options.deleteItem !== false) {
|
||||
|
||||
if (item.Type === 'Playlist' || item.Type === 'BoxSet') {
|
||||
commands.push({
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
.recordingButton {
|
||||
margin-left: 0;
|
||||
min-width: 10em;
|
||||
font-size: 92%;
|
||||
}
|
||||
|
||||
.recordingIcon {
|
||||
|
|
|
@ -33,3 +33,22 @@
|
|||
width: 0 !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.darkScroller::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.darkScroller::-webkit-scrollbar-button:start:decrement,
|
||||
.darkScroller::-webkit-scrollbar-button:end:increment {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.darkScroller::-webkit-scrollbar-track-piece {
|
||||
background-color: #3b3b3b;
|
||||
}
|
||||
|
||||
.darkScroller::-webkit-scrollbar-thumb:vertical, .darkScroller::-webkit-scrollbar-thumb:horizontal {
|
||||
-webkit-border-radius: 2px;
|
||||
background: #888 no-repeat center;
|
||||
}
|
||||
|
|
|
@ -135,6 +135,8 @@
|
|||
var selectQuality = form.querySelector('#selectQuality');
|
||||
if (selectQuality) {
|
||||
job.Quality = selectQuality.value;
|
||||
|
||||
appSettings.set('sync-lastquality', job.Quality || '');
|
||||
}
|
||||
|
||||
var selectProfile = form.querySelector('#selectProfile');
|
||||
|
@ -590,6 +592,15 @@
|
|||
|
||||
}).join('');
|
||||
|
||||
var lastQuality = appSettings.get('sync-lastquality');
|
||||
if (lastQuality && options.QualityOptions.filter(function (i) {
|
||||
|
||||
return i.Id === lastQuality;
|
||||
|
||||
}).length) {
|
||||
selectQuality.value = lastQuality;
|
||||
}
|
||||
|
||||
selectQuality.dispatchEvent(new CustomEvent('change', {
|
||||
bubbles: true
|
||||
}));
|
||||
|
|
|
@ -616,3 +616,26 @@ div[data-role="controlgroup"] a.ui-btn-active {
|
|||
.supporterMembershipDisabled .tabSupporterMembership {
|
||||
display: none;
|
||||
}
|
||||
|
||||
a[data-role='button'] {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-user-select: none;
|
||||
background-clip: padding-box;
|
||||
border-radius: .3125em;
|
||||
border: 1px solid #ddd !important;
|
||||
color: rgb(51, 51, 51) !important;
|
||||
cursor: pointer !important;
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
font-weight: 500 !important;
|
||||
margin: 0 .25em !important;
|
||||
display: inline-block;
|
||||
padding: .8em 1em;
|
||||
text-align: center;
|
||||
text-decoration: none !important;
|
||||
background: #f6f6f6 !important;
|
||||
font-size: 16px;
|
||||
-webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
|
||||
-moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
|
||||
box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
}
|
||||
|
||||
.background-theme-b .backgroundContainer.withBackdrop {
|
||||
background-color: rgba(6, 6,6, .76);
|
||||
background-color: rgba(6, 6,6, .72);
|
||||
}
|
||||
|
||||
.ui-body-b {
|
||||
|
@ -158,8 +158,6 @@
|
|||
}
|
||||
|
||||
.detailPageContent {
|
||||
margin: 3em auto 0;
|
||||
padding: 0;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
@ -355,8 +353,8 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
|
||||
.detailImageContainer {
|
||||
position: absolute;
|
||||
top: -130px;
|
||||
left: 3%;
|
||||
top: -90px;
|
||||
left: 5%;
|
||||
}
|
||||
|
||||
.itemDetailImage {
|
||||
|
@ -400,6 +398,7 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
position: absolute;
|
||||
right: 5%;
|
||||
background-color: #52B54B !important;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.emby-button.btnFloatingRecord {
|
||||
|
@ -500,6 +499,10 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
margin-right: .5em;
|
||||
}
|
||||
|
||||
.mainDetailButtons.hide + .recordingFields {
|
||||
margin-top: 1.5em !important;
|
||||
}
|
||||
|
||||
.detailImageProgressContainer {
|
||||
position: absolute;
|
||||
bottom: 4px;
|
||||
|
@ -575,18 +578,18 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
|||
}
|
||||
|
||||
.detailPageContent {
|
||||
max-width: 94%;
|
||||
padding: 3em 3% 0;
|
||||
}
|
||||
|
||||
@media all and (min-width: 750px) {
|
||||
.detailPageContent {
|
||||
max-width: 94%;
|
||||
padding: 3em 3% 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1200px) {
|
||||
.detailPageContent {
|
||||
max-width: 90%;
|
||||
padding: 3em 5% 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<div class="syncLocalContainer hide" style="margin-top: 1em; display: inline-flex; padding: 0 .5em;">
|
||||
<label class="checkboxContainer" style="margin: 0;">
|
||||
<input type="checkbox" is="emby-checkbox" class="chkOffline"/>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkOffline" />
|
||||
<span>${MakeAvailableOffline}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -52,6 +52,7 @@
|
|||
|
||||
</button>
|
||||
<div class="detailUserDataIcons userDataIcons"></div>
|
||||
<button is="emby-button" type="button" class="btnDeleteItem fab mini hide" title="${DeleteMedia}"><i class="md-icon">delete</i></button>
|
||||
</div>
|
||||
|
||||
<div class="recordingFields hide" style="margin: .5em 0 1.5em;">
|
||||
|
|
|
@ -75,7 +75,8 @@
|
|||
positionTo: button,
|
||||
cancelTimer: false,
|
||||
record: false,
|
||||
editImages: false
|
||||
editImages: false,
|
||||
deleteItem: item.IsFolder === true
|
||||
};
|
||||
|
||||
if (appHost.supports('sync')) {
|
||||
|
@ -116,9 +117,13 @@
|
|||
setInitialCollapsibleState(page, item, context, user);
|
||||
renderDetails(page, item, context);
|
||||
|
||||
if (dom.getWindowSize().innerWidth >= 800) {
|
||||
backdrop.setBackdrops([item], {
|
||||
blur: 32
|
||||
blur: 30
|
||||
}, false);
|
||||
} else {
|
||||
backdrop.clear();
|
||||
}
|
||||
|
||||
LibraryBrowser.renderDetailPageBackdrop(page, item, imageLoader);
|
||||
|
||||
|
@ -145,12 +150,22 @@
|
|||
hideAll(page, 'btnPlay');
|
||||
}
|
||||
|
||||
var hasAnyButton = canPlay;
|
||||
|
||||
if ((item.LocalTrailerCount || (item.RemoteTrailers && item.RemoteTrailers.length)) && item.PlayAccess == 'Full') {
|
||||
hideAll(page, 'btnPlayTrailer', true);
|
||||
hasAnyButton = true;
|
||||
} else {
|
||||
hideAll(page, 'btnPlayTrailer');
|
||||
}
|
||||
|
||||
if (item.CanDelete && !item.IsFolder) {
|
||||
hideAll(page, 'btnDeleteItem', true);
|
||||
hasAnyButton = true;
|
||||
} else {
|
||||
hideAll(page, 'btnDeleteItem');
|
||||
}
|
||||
|
||||
if (itemHelper.canSync(user, item)) {
|
||||
if (appHost.supports('sync')) {
|
||||
hideAll(page, 'syncLocalContainer', true);
|
||||
|
@ -165,6 +180,12 @@
|
|||
hideAll(page, 'syncLocalContainer');
|
||||
}
|
||||
|
||||
if (hasAnyButton || item.Type !== 'Program') {
|
||||
hideAll(page, 'mainDetailButtons', true);
|
||||
} else {
|
||||
hideAll(page, 'mainDetailButtons');
|
||||
}
|
||||
|
||||
showRecordingFields(page, item, user);
|
||||
|
||||
var groupedVersions = (item.MediaSources || []).filter(function (g) {
|
||||
|
@ -228,34 +249,6 @@
|
|||
}
|
||||
});
|
||||
|
||||
//if (item.LocationType == "Offline") {
|
||||
|
||||
// page.querySelector('.offlineIndicator').classList.remove('hide');
|
||||
//}
|
||||
//else {
|
||||
// page.querySelector('.offlineIndicator').classList.add('hide');
|
||||
//}
|
||||
|
||||
var isMissingEpisode = false;
|
||||
|
||||
if (item.LocationType == "Virtual" && item.Type == "Episode") {
|
||||
try {
|
||||
if (item.PremiereDate && (new Date().getTime() >= datetime.parseISO8601Date(item.PremiereDate, true).getTime())) {
|
||||
isMissingEpisode = true;
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//if (isMissingEpisode) {
|
||||
|
||||
// page.querySelector('.missingIndicator').classList.remove('hide');
|
||||
//}
|
||||
//else {
|
||||
// page.querySelector('.missingIndicator').classList.add('hide');
|
||||
//}
|
||||
|
||||
setPeopleHeader(page, item);
|
||||
|
||||
page.dispatchEvent(new CustomEvent("displayingitem", {
|
||||
|
@ -402,11 +395,64 @@
|
|||
else return "#" + (0x100000000 + (f[3] > -1 && t[3] > -1 ? r(((t[3] - f[3]) * p + f[3]) * 255) : t[3] > -1 ? r(t[3] * 255) : f[3] > -1 ? r(f[3] * 255) : 255) * 0x1000000 + r((t[0] - f[0]) * p + f[0]) * 0x10000 + r((t[1] - f[1]) * p + f[1]) * 0x100 + r((t[2] - f[2]) * p + f[2])).toString(16).slice(f[3] > -1 || t[3] > -1 ? 1 : 3);
|
||||
}
|
||||
|
||||
function loadSwatch(page, item) {
|
||||
|
||||
var imageTags = item.ImageTags || {};
|
||||
|
||||
if (item.PrimaryImageTag) {
|
||||
imageTags.Primary = item.PrimaryImageTag;
|
||||
}
|
||||
|
||||
var url;
|
||||
var imageHeight = 300;
|
||||
|
||||
if (item.SeriesId && item.SeriesPrimaryImageTag) {
|
||||
|
||||
url = ApiClient.getScaledImageUrl(item.SeriesId, {
|
||||
type: "Primary",
|
||||
maxHeight: imageHeight,
|
||||
tag: item.SeriesPrimaryImageTag
|
||||
});
|
||||
}
|
||||
else if (imageTags.Primary) {
|
||||
|
||||
url = ApiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Primary",
|
||||
maxHeight: imageHeight,
|
||||
tag: item.ImageTags.Primary
|
||||
});
|
||||
}
|
||||
|
||||
if (!url) {
|
||||
return;
|
||||
}
|
||||
|
||||
var img = new Image();
|
||||
img.onload = function () {
|
||||
|
||||
imageLoader.getVibrantInfoFromElement(img, url).then(function (vibrantInfo) {
|
||||
|
||||
vibrantInfo = vibrantInfo.split('|');
|
||||
var detailPageContent = page.querySelector('.detailPageContent');
|
||||
var detailPagePrimaryContainer = page.querySelector('.detailPagePrimaryContainer');
|
||||
|
||||
detailPageContent.style.color = vibrantInfo[1];
|
||||
|
||||
detailPagePrimaryContainer.style.backgroundColor = vibrantInfo[0];
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
img.src = url;
|
||||
}
|
||||
|
||||
function renderImage(page, item, user) {
|
||||
|
||||
var container = page.querySelector('.detailImageContainer');
|
||||
|
||||
LibraryBrowser.renderDetailImage(container, item, user.Policy.IsAdministrator && item.MediaType != 'Photo', null, imageLoader, indicators);
|
||||
|
||||
//loadSwatch(page, item);
|
||||
}
|
||||
|
||||
function refreshDetailImageUserData(elem, item) {
|
||||
|
@ -1105,6 +1151,7 @@
|
|||
var isList = false;
|
||||
|
||||
var scrollClass = 'hiddenScrollX';
|
||||
var childrenItemsContainer = page.querySelector('.childrenItemsContainer');
|
||||
|
||||
if (item.Type == "MusicAlbum") {
|
||||
|
||||
|
@ -1137,6 +1184,10 @@
|
|||
}
|
||||
else if (item.Type == "Season" || item.Type == "Episode") {
|
||||
|
||||
if (item.Type === 'Episode') {
|
||||
childrenItemsContainer.classList.add('darkScroller');
|
||||
}
|
||||
|
||||
scrollX = item.Type == "Episode";
|
||||
scrollClass = 'smoothScrollX';
|
||||
|
||||
|
@ -1164,26 +1215,25 @@
|
|||
});
|
||||
}
|
||||
|
||||
var elem = page.querySelector('.childrenItemsContainer');
|
||||
if (scrollX) {
|
||||
elem.classList.add(scrollClass);
|
||||
elem.classList.remove('vertical-wrap');
|
||||
elem.classList.remove('vertical-list');
|
||||
childrenItemsContainer.classList.add(scrollClass);
|
||||
childrenItemsContainer.classList.remove('vertical-wrap');
|
||||
childrenItemsContainer.classList.remove('vertical-list');
|
||||
} else {
|
||||
elem.classList.remove('hiddenScrollX');
|
||||
elem.classList.remove('smoothScrollX');
|
||||
childrenItemsContainer.classList.remove('hiddenScrollX');
|
||||
childrenItemsContainer.classList.remove('smoothScrollX');
|
||||
|
||||
if (isList) {
|
||||
elem.classList.add('vertical-list');
|
||||
elem.classList.remove('vertical-wrap');
|
||||
childrenItemsContainer.classList.add('vertical-list');
|
||||
childrenItemsContainer.classList.remove('vertical-wrap');
|
||||
} else {
|
||||
elem.classList.add('vertical-wrap');
|
||||
elem.classList.remove('vertical-list');
|
||||
childrenItemsContainer.classList.add('vertical-wrap');
|
||||
childrenItemsContainer.classList.remove('vertical-list');
|
||||
}
|
||||
}
|
||||
|
||||
elem.innerHTML = html;
|
||||
imageLoader.lazyChildren(elem);
|
||||
childrenItemsContainer.innerHTML = html;
|
||||
imageLoader.lazyChildren(childrenItemsContainer);
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
|
||||
|
@ -2087,6 +2137,42 @@
|
|||
playCurrentItem(this);
|
||||
}
|
||||
|
||||
function onDeleteClick() {
|
||||
|
||||
var item = currentItem;
|
||||
var itemId = item.Id;
|
||||
var parentId = item.ParentId;
|
||||
var serverId = item.ServerId;
|
||||
|
||||
var msg = globalize.translate('sharedcomponents#ConfirmDeleteItem');
|
||||
var title = globalize.translate('sharedcomponents#HeaderDeleteItem');
|
||||
var apiClient = ApiClient;
|
||||
|
||||
require(['confirm'], function (confirm) {
|
||||
|
||||
confirm({
|
||||
|
||||
title: title,
|
||||
text: msg,
|
||||
confirmText: globalize.translate('sharedcomponents#Delete'),
|
||||
primary: 'cancel'
|
||||
|
||||
}).then(function () {
|
||||
|
||||
apiClient.deleteItem(itemId).then(function () {
|
||||
|
||||
if (parentId) {
|
||||
Emby.Page.showItem(parentId, serverId);
|
||||
} else {
|
||||
Emby.Page.goHome();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
return function (view, params) {
|
||||
|
||||
function resetSyncStatus() {
|
||||
|
@ -2161,6 +2247,11 @@
|
|||
elems[i].addEventListener('click', onPlayTrailerClick);
|
||||
}
|
||||
|
||||
elems = view.querySelectorAll('.btnDeleteItem');
|
||||
for (i = 0, length = elems.length; i < length; i++) {
|
||||
elems[i].addEventListener('click', onDeleteClick);
|
||||
}
|
||||
|
||||
view.querySelector('.btnSplitVersions').addEventListener('click', function () {
|
||||
|
||||
splitVersions(view, params);
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
"LabelAddConnectSupporterHelp": "To add a user who isn't listed, you'll need to first link their account to Emby Connect from their user profile page.",
|
||||
"LabelPinCode": "Pin code:",
|
||||
"OptionHideWatchedContentFromLatestMedia": "Hide watched content from latest media",
|
||||
"DeleteMedia": "Delete media",
|
||||
"HeaderSync": "Sync",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonCancel": "Cancel",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue