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

update plugin catalog

This commit is contained in:
Luke Pulverenti 2015-08-24 16:37:34 -04:00
parent 65ed0d3d3c
commit 4094adb5a7
11 changed files with 425 additions and 438 deletions

View file

@ -11,18 +11,16 @@
<ul></ul> <ul></ul>
</div> </div>
</div> </div>
<div class="editPageInnerContent" style="display: none;"> <div class="editPageInnerContent">
<h1 class="itemName editPageName">&nbsp;</h1> <h1 class="itemName editPageName">&nbsp;</h1>
<br /> <br />
<paper-tabs> <paper-tabs>
<paper-tab class="metadataTabButton">${TabMetadata}</paper-tab> <paper-tab class="metadataTabButton">${TabMetadata}</paper-tab>
<paper-tab class="subtitleTabButton">${TabSubtitles}</paper-tab> <paper-tab class="subtitleTabButton hide">${TabSubtitles}</paper-tab>
<paper-tab class="collectionItemsTabButton">${TabCollectionTitles}</paper-tab> <paper-tab class="collectionItemsTabButton hide">${TabCollectionTitles}</paper-tab>
<paper-tab class="imagesTabButton">${TabImages}</paper-tab> <paper-tab class="imagesTabButton">${TabImages}</paper-tab>
</paper-tabs> </paper-tabs>
<neon-animated-pages>
<neon-animatable>
<div class="editorTab"> <div class="editorTab">
<form class="editItemMetadataForm editMetadataForm"> <form class="editItemMetadataForm editMetadataForm">
@ -229,6 +227,7 @@
<paper-input id="txtDisplayMediaType" type="text" label="${LabelTreatImageAs}"></paper-input> <paper-input id="txtDisplayMediaType" type="text" label="${LabelTreatImageAs}"></paper-input>
</div> </div>
<div id="fldDisplaySpecialsInline" class="fldDisplaySetting"> <div id="fldDisplaySpecialsInline" class="fldDisplaySetting">
<br/>
<paper-checkbox id="chkDisplaySpecialsInline">${LabelDisplaySpecialsWithinSeasons}</paper-checkbox> <paper-checkbox id="chkDisplaySpecialsInline">${LabelDisplaySpecialsWithinSeasons}</paper-checkbox>
</div> </div>
<div id="fldDisplayOrder" class="fldDisplaySetting"> <div id="fldDisplayOrder" class="fldDisplaySetting">
@ -339,13 +338,12 @@
</form> </form>
</div> </div>
</neon-animatable>
<neon-animatable>
<div class="editorTab subtitleTabContent"> <div class="editorTab subtitleTabContent">
<br /> <br />
<div class="readOnlyContent" style="max-width: 700px;"> <div class="readOnlyContent" style="max-width: 700px;">
<div class="subtitleList"></div> <div class="subtitleList"></div>
</div> </div>
<br/>
<h1>${HeaderSearchForSubtitles}</h1> <h1>${HeaderSearchForSubtitles}</h1>
<form class="subtitleSearchForm"> <form class="subtitleSearchForm">
@ -363,8 +361,6 @@
</div> </div>
</div> </div>
</div> </div>
</neon-animatable>
<neon-animatable>
<div class="editorTab collectionItemsTabContent"> <div class="editorTab collectionItemsTabContent">
<p style="margin:1.5em 0;"> <p style="margin:1.5em 0;">
${EditCollectionItemsHelp} ${EditCollectionItemsHelp}
@ -377,8 +373,6 @@
<br /> <br />
<div class="collectionItems"></div> <div class="collectionItems"></div>
</div> </div>
</neon-animatable>
<neon-animatable>
<div class="editorTab imageEditorTab"> <div class="editorTab imageEditorTab">
<div style="margin:2em 0 .5em;text-align:center;"> <div style="margin:2em 0 .5em;text-align:center;">
@ -406,8 +400,6 @@
</div> </div>
</div> </div>
</div> </div>
</neon-animatable>
</neon-animated-pages>
</div> </div>
</div> </div>
<div data-role="content"> <div data-role="content">

View file

@ -254,7 +254,7 @@
$('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit); $('.collectionItemSearchForm').off('submit', onSearchFormSubmit).on('submit', onSearchFormSubmit);
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('paper-tabs')).on('tabchange', function () {
if (parseInt(this.selected) == 2) { if (parseInt(this.selected) == 2) {
var tabContent = page.querySelector('.collectionItemsTabContent'); var tabContent = page.querySelector('.collectionItemsTabContent');

View file

@ -565,7 +565,7 @@
return false; return false;
}); });
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('paper-tabs')).on('tabchange', function () {
if (parseInt(this.selected) == 3) { if (parseInt(this.selected) == 3) {
var tabContent = page.querySelector('.imageEditorTab'); var tabContent = page.querySelector('.imageEditorTab');

View file

@ -47,15 +47,15 @@
fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions); fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions);
if (item.Type == "BoxSet") { if (item.Type == "BoxSet") {
$('.collectionItemsTabButton', page).show(); page.querySelector('.collectionItemsTabButton').classList.remove('hide');
} else { } else {
$('.collectionItemsTabButton', page).hide(); page.querySelector('.collectionItemsTabButton').classList.add('hide');
} }
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') { if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
$('.subtitleTabButton', page).show(); page.querySelector('.subtitleTabButton').classList.remove('hide');
} else { } else {
$('.subtitleTabButton', page).hide(); page.querySelector('.subtitleTabButton').classList.add('hide');
} }
if (item.MediaType == 'Photo') { if (item.MediaType == 'Photo') {
@ -1415,6 +1415,11 @@
}); });
} }
function showTab(page, index) {
$('.editorTab', page).addClass('hide')[index].classList.remove('hide');
}
$(document).on('pageinitdepends', "#editItemMetadataPage", function () { $(document).on('pageinitdepends', "#editItemMetadataPage", function () {
var page = this; var page = this;
@ -1455,7 +1460,7 @@
//$.mobile.urlHistory.ignoreNextHashChange = true; //$.mobile.urlHistory.ignoreNextHashChange = true;
window.location.hash = 'editItemMetadataPage?id=' + data.id; window.location.hash = 'editItemMetadataPage?id=' + data.id;
$(page.querySelector('neon-animated-pages')).trigger('tabchange'); $(page.querySelector('paper-tabs')).trigger('tabchange');
} }
}); });
@ -1470,22 +1475,16 @@
$('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit); $('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit);
$('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit); $('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit);
$(page.querySelector('paper-tabs')).on('iron-select', function () {
page.querySelector('neon-animated-pages').selected = this.selected;
});
var tabs = page.querySelector('paper-tabs'); var tabs = page.querySelector('paper-tabs');
var pages = page.querySelector('neon-animated-pages');
configurePaperLibraryTabs(page, tabs, pages); configurePaperLibraryTabs(page, tabs);
$(tabs).on('iron-select', function () { $(tabs).on('iron-select', function () {
Events.trigger(this, 'tabchange');
}).on('tabchange', function () {
var selected = this.selected; var selected = this.selected;
showTab(page, selected);
page.querySelector('neon-animated-pages').selected = selected;
});
$(pages).on('tabchange', function () {
loadTab(page, parseInt(this.selected)); loadTab(page, parseInt(this.selected));
}); });
@ -1503,15 +1502,7 @@
var selected = parseInt(getParameterByName('tab') || '0'); var selected = parseInt(getParameterByName('tab') || '0');
page.querySelector('paper-tabs').selected = 0;
if (selected) {
// Looks like a bug in paper-tabs. It won't set the tab if we try to do it too quickly
setTimeout(function () {
page.querySelector('paper-tabs').selected = selected; page.querySelector('paper-tabs').selected = selected;
}, 700);
}
}).on('pagebeforehide', "#editItemMetadataPage", function () { }).on('pagebeforehide', "#editItemMetadataPage", function () {
@ -1522,21 +1513,30 @@
}); });
function configurePaperLibraryTabs(ownerpage, tabs, pages) { function configurePaperLibraryTabs(ownerpage, tabs) {
tabs.hideScrollButtons = true; tabs.hideScrollButtons = true;
tabs.noSlide = true;
tabs.noink = true;
$(ownerpage).on('pagebeforeshowready', LibraryBrowser.onTabbedPageBeforeShowReady); $(ownerpage).on('pagebeforeshowready', function () {
$(pages).on('iron-select', function () { var selected = tabs.selected;
// When transition animations are used, add a content loading delay to allow the animations to finish if (selected == null) {
// Otherwise with both operations happening at the same time, it can cause the animation to not run at full speed.
var delay = 500; Logger.log('selected tab is null, checking query string');
var pgs = this;
setTimeout(function () { selected = parseInt(getParameterByName('tab') || '0');
$(pgs).trigger('tabchange');
}, delay); Logger.log('selected tab will be ' + selected);
tabs.selected = selected;
Events.trigger(tabs, 'tabchange');
} else {
Events.trigger(tabs, 'tabchange');
}
}); });
} }
@ -1548,6 +1548,7 @@
reload(page); reload(page);
break; break;
default: default:
reload(page);
break; break;
} }
} }

View file

@ -287,7 +287,7 @@
$('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit); $('.subtitleSearchForm').off('submit', onSearchSubmit).on('submit', onSearchSubmit);
$(page.querySelector('neon-animated-pages')).on('tabchange', function () { $(page.querySelector('paper-tabs')).on('tabchange', function () {
if (parseInt(this.selected) == 1) { if (parseInt(this.selected) == 1) {
var tabContent = page.querySelector('.subtitleTabContent'); var tabContent = page.querySelector('.subtitleTabContent');

View file

@ -402,8 +402,6 @@
}).on('pagebeforeshowready', ".metadataEditorPage", function () { }).on('pagebeforeshowready', ".metadataEditorPage", function () {
window.MetadataEditor = new metadataEditor();
var page = this; var page = this;
Dashboard.getCurrentUser().done(function (user) { Dashboard.getCurrentUser().done(function (user) {
@ -430,6 +428,7 @@
}).on('pageinitdepends', ".metadataEditorPage", function () { }).on('pageinitdepends', ".metadataEditorPage", function () {
Dashboard.importCss('css/metadataeditor.css'); Dashboard.importCss('css/metadataeditor.css');
window.MetadataEditor = new metadataEditor();
}).on('pagebeforehide', ".metadataEditorPage", function () { }).on('pagebeforehide', ".metadataEditorPage", function () {
@ -482,7 +481,6 @@
return query; return query;
}; };
self.loadJsTree = function () { self.loadJsTree = function () {
var deferred = DeferredBuilder.Deferred(); var deferred = DeferredBuilder.Deferred();

View file

@ -336,11 +336,12 @@
requiresSettingStartTimeOnStart = false; requiresSettingStartTimeOnStart = false;
var startTime = getStartTime(val); var startTime = getStartTime(val);
var playNow = false;
if (elem.tagName.toLowerCase() == 'audio') { if (elem.tagName.toLowerCase() == 'audio') {
elem.src = val; elem.src = val;
elem.play(); playNow = true;
} }
else { else {
@ -376,10 +377,12 @@
} else { } else {
elem.src = val; elem.src = val;
elem.autoplay = true;
setTracks(elem, tracks); setTracks(elem, tracks);
$(elem).one("loadedmetadata", onLoadedMetadata); $(elem).one("loadedmetadata", onLoadedMetadata);
playNow = true;
} }
var currentTrackIndex = -1; var currentTrackIndex = -1;
@ -394,6 +397,10 @@
} }
currentSrc = val; currentSrc = val;
if (playNow) {
elem.play();
}
}; };
function setTracks(elem, tracks) { function setTracks(elem, tracks) {

View file

@ -563,10 +563,8 @@
} }
if (user.Policy.IsAdministrator) { if (user.Policy.IsAdministrator) {
if (item.Type != "Recording" && item.Type != "Program") {
commands.push('edit'); commands.push('edit');
} }
}
commands.push('refresh'); commands.push('refresh');
@ -1216,9 +1214,7 @@
// itemCommands.push('playmenu'); // itemCommands.push('playmenu');
//} //}
if (item.Type != "Recording" && item.Type != "Program") {
itemCommands.push('edit'); itemCommands.push('edit');
}
if (item.LocalTrailerCount) { if (item.LocalTrailerCount) {
itemCommands.push('trailer'); itemCommands.push('trailer');

View file

@ -946,15 +946,17 @@
// This will start the transcoding process before actually feeding the video url into the player // This will start the transcoding process before actually feeding the video url into the player
if ($.browser.safari && !mediaSource.RunTimeTicks) { if ($.browser.safari && !mediaSource.RunTimeTicks) {
Dashboard.showModalLoadingMsg(); Dashboard.showLoadingMsg();
ApiClient.ajax({ ApiClient.ajax({
type: 'GET', type: 'GET',
url: streamInfo.url.replace('master.m3u8', 'live.m3u8') url: streamInfo.url.replace('master.m3u8', 'live.m3u8')
}).always(function () {
Dashboard.hideLoadingMsg();
}).done(function () { }).done(function () {
self.playVideoInternal(item, mediaSource, startPosition, streamInfo, callback); self.playVideoInternal(item, mediaSource, startPosition, streamInfo, callback);
}).fail(function() {
Dashboard.hideModalLoadingMsg();
}); });
} else { } else {
@ -1057,8 +1059,6 @@
}).one("playing.mediaplayerevent", function () { }).one("playing.mediaplayerevent", function () {
Dashboard.hideModalLoadingMsg();
// For some reason this is firing at the start, so don't bind until playback has begun // For some reason this is firing at the start, so don't bind until playback has begun
$(this).on("ended", self.onPlaybackStopped).one('ended', self.playNextAfterEnded); $(this).on("ended", self.onPlaybackStopped).one('ended', self.playNextAfterEnded);
@ -1091,7 +1091,6 @@
}).on("error.mediaplayerevent", function () { }).on("error.mediaplayerevent", function () {
Dashboard.hideModalLoadingMsg();
self.stop(); self.stop();
var errorMsg = Globalize.translate('MessageErrorPlayingVideo'); var errorMsg = Globalize.translate('MessageErrorPlayingVideo');

View file

@ -1018,6 +1018,7 @@
function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) { function playInternalPostMediaSourceSelection(item, mediaSource, startPosition, callback) {
Dashboard.hideModalLoadingMsg();
self.currentMediaSource = mediaSource; self.currentMediaSource = mediaSource;
self.currentItem = item; self.currentItem = item;
@ -1030,7 +1031,6 @@
} else if (item.MediaType === "Audio") { } else if (item.MediaType === "Audio") {
Dashboard.hideModalLoadingMsg();
playAudio(item, self.currentMediaSource, startPosition, callback); playAudio(item, self.currentMediaSource, startPosition, callback);
} }
} }

View file

@ -88,13 +88,6 @@
return -1; return -1;
} }
if (a.installs > b.installs) {
return 1;
}
if (b.installs > a.installs) {
return -1;
}
return 0; return 0;
}); });
@ -108,7 +101,7 @@
html += '<div class="detailSectionHeader">' + currentCategory + '</div>'; html += '<div class="detailSectionHeader">' + currentCategory + '</div>';
var topPlugins = allPlugins.slice(0).sort(function (a, b) { var topPlugins = allPlugins.slice(0).sort(function (a, b) {
if (a.installs > b.installs) { if (a.installs < b.installs) {
return 1; return 1;
} }
if (b.installs > a.installs) { if (b.installs > a.installs) {
@ -129,6 +122,7 @@
}); });
var limit = screen.availWidth >= 1920 ? 15 : 12; var limit = screen.availWidth >= 1920 ? 15 : 12;
for (i = 0, length = Math.min(topPlugins.length, limit) ; i < length; i++) { for (i = 0, length = Math.min(topPlugins.length, limit) ; i < length; i++) {
html += getPluginHtml(topPlugins[i], options, installedPlugins); html += getPluginHtml(topPlugins[i], options, installedPlugins);
} }