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

View file

@ -254,7 +254,7 @@
$('.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) {
var tabContent = page.querySelector('.collectionItemsTabContent');

View file

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

View file

@ -47,15 +47,15 @@
fillItemInfo(page, item, metadataEditorInfo.ParentalRatingOptions);
if (item.Type == "BoxSet") {
$('.collectionItemsTabButton', page).show();
page.querySelector('.collectionItemsTabButton').classList.remove('hide');
} else {
$('.collectionItemsTabButton', page).hide();
page.querySelector('.collectionItemsTabButton').classList.add('hide');
}
if (item.MediaType == "Video" && item.LocationType == "FileSystem" && item.Type !== 'TvChannel') {
$('.subtitleTabButton', page).show();
page.querySelector('.subtitleTabButton').classList.remove('hide');
} else {
$('.subtitleTabButton', page).hide();
page.querySelector('.subtitleTabButton').classList.add('hide');
}
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 () {
var page = this;
@ -1455,7 +1460,7 @@
//$.mobile.urlHistory.ignoreNextHashChange = true;
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);
$('.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 pages = page.querySelector('neon-animated-pages');
configurePaperLibraryTabs(page, tabs, pages);
configurePaperLibraryTabs(page, tabs);
$(tabs).on('iron-select', function () {
Events.trigger(this, 'tabchange');
}).on('tabchange', function () {
var selected = this.selected;
page.querySelector('neon-animated-pages').selected = selected;
});
$(pages).on('tabchange', function () {
showTab(page, selected);
loadTab(page, parseInt(this.selected));
});
@ -1503,15 +1502,7 @@
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;
}, 700);
}
}).on('pagebeforehide', "#editItemMetadataPage", function () {
@ -1522,21 +1513,30 @@
});
function configurePaperLibraryTabs(ownerpage, tabs, pages) {
function configurePaperLibraryTabs(ownerpage, tabs) {
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
// Otherwise with both operations happening at the same time, it can cause the animation to not run at full speed.
var delay = 500;
var pgs = this;
setTimeout(function () {
$(pgs).trigger('tabchange');
}, delay);
if (selected == null) {
Logger.log('selected tab is null, checking query string');
selected = parseInt(getParameterByName('tab') || '0');
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);
break;
default:
reload(page);
break;
}
}

View file

@ -287,7 +287,7 @@
$('.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) {
var tabContent = page.querySelector('.subtitleTabContent');

View file

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

View file

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

View file

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

View file

@ -946,15 +946,17 @@
// This will start the transcoding process before actually feeding the video url into the player
if ($.browser.safari && !mediaSource.RunTimeTicks) {
Dashboard.showModalLoadingMsg();
Dashboard.showLoadingMsg();
ApiClient.ajax({
type: 'GET',
url: streamInfo.url.replace('master.m3u8', 'live.m3u8')
}).always(function () {
Dashboard.hideLoadingMsg();
}).done(function () {
self.playVideoInternal(item, mediaSource, startPosition, streamInfo, callback);
}).fail(function() {
Dashboard.hideModalLoadingMsg();
});
} else {
@ -1057,8 +1059,6 @@
}).one("playing.mediaplayerevent", function () {
Dashboard.hideModalLoadingMsg();
// 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);
@ -1091,7 +1091,6 @@
}).on("error.mediaplayerevent", function () {
Dashboard.hideModalLoadingMsg();
self.stop();
var errorMsg = Globalize.translate('MessageErrorPlayingVideo');

View file

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

View file

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