mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
add sharing function
This commit is contained in:
parent
93ad16971d
commit
54afe9d0c2
22 changed files with 17346 additions and 17048 deletions
|
@ -118,7 +118,7 @@
|
|||
var page = this;
|
||||
var tabContent = page.querySelector('.homeFavoritesTabContent');
|
||||
|
||||
$(page.querySelector('neon-animated-pages')).on('iron-select', function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
if (parseInt(this.selected) == 2) {
|
||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
var page = this;
|
||||
var tabContent = page.querySelector('.homeNextUpTabContent');
|
||||
|
||||
$(page.querySelector('neon-animated-pages')).on('iron-select', function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
if (parseInt(this.selected) == 1) {
|
||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
var page = this;
|
||||
var tabContent = page.querySelector('.homeUpcomingTabContent');
|
||||
|
||||
$(page.querySelector('neon-animated-pages')).on('iron-select', function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
|
||||
if (parseInt(this.selected) == 3) {
|
||||
if (LibraryBrowser.needsRefresh(tabContent)) {
|
||||
|
|
|
@ -210,10 +210,6 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
Events.on(page.querySelector('.btnTakeTour'), 'click', function () {
|
||||
takeTour(page, Dashboard.getCurrentUserId());
|
||||
});
|
||||
|
||||
var tabs = page.querySelector('paper-tabs');
|
||||
LibraryBrowser.configurePaperLibraryTabs(page, page.querySelectorAll('paper-tabs')[0], page.querySelectorAll('neon-animated-pages')[0]);
|
||||
|
||||
|
@ -232,22 +228,25 @@
|
|||
}
|
||||
});
|
||||
|
||||
$(page.querySelector('neon-animated-pages')).on('iron-select', function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('tabchange', function () {
|
||||
loadTab(page, parseInt(this.selected));
|
||||
});
|
||||
|
||||
}).on('pagebeforeshowready', "#indexPage", function () {
|
||||
$(page.querySelector('neon-animated-pages')).on('iron-select', function () {
|
||||
|
||||
var page = this;
|
||||
// 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 = LibraryBrowser.enableFullPaperTabs() ? 500 : 0;
|
||||
var pages = this;
|
||||
setTimeout(function () {
|
||||
$(pages).trigger('tabchange');
|
||||
}, delay);
|
||||
});
|
||||
|
||||
var tabs = page.querySelector('paper-tabs');
|
||||
var selected = tabs.selected;
|
||||
Events.on(page.querySelector('.btnTakeTour'), 'click', function () {
|
||||
takeTour(page, Dashboard.getCurrentUserId());
|
||||
});
|
||||
|
||||
if (selected == null) {
|
||||
selected = parseInt(getParameterByName('tab') || '0');
|
||||
tabs.selected = selected;
|
||||
page.querySelector('neon-animated-pages').selected = selected;
|
||||
}
|
||||
});
|
||||
|
||||
function getDisplayPreferencesAppName() {
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
$('.btnSync', page).addClass('hide');
|
||||
}
|
||||
|
||||
if (user.Policy.EnablePublicSharing) {
|
||||
if (LibraryBrowser.canShare(item, user)) {
|
||||
$('.btnShare', page).removeClass('hide');
|
||||
} else {
|
||||
$('.btnShare', page).addClass('hide');
|
||||
|
|
|
@ -90,12 +90,16 @@
|
|||
}
|
||||
|
||||
var now = new Date().getTime();
|
||||
var cacheDuration = 300000;
|
||||
if (!AppInfo.isNativeApp && ($.browser.ipad || $.browser.iphone || $.browser.android)) {
|
||||
var cacheDuration;
|
||||
|
||||
if (AppInfo.isNativeApp) {
|
||||
cacheDuration = 300000;
|
||||
}
|
||||
else if ($.browser.ipad || $.browser.iphone || $.browser.android) {
|
||||
cacheDuration = 10000;
|
||||
}
|
||||
|
||||
else if (!$.browser.mobile) {
|
||||
else {
|
||||
cacheDuration = 60000;
|
||||
}
|
||||
|
||||
|
@ -167,13 +171,33 @@
|
|||
|
||||
tabs.hideScrollButtons = true;
|
||||
|
||||
if (AppInfo.enableBottomTabs) {
|
||||
tabs.alignBottom = true;
|
||||
tabs.classList.add('bottomTabs');
|
||||
}
|
||||
|
||||
if (LibraryBrowser.enableFullPaperTabs()) {
|
||||
|
||||
$(tabs).show();
|
||||
|
||||
LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages);
|
||||
if ($.browser.safari) {
|
||||
|
||||
$('.libraryViewNav', ownerpage).addClass('paperLibraryViewNav');
|
||||
// Not very iOS-like I suppose
|
||||
tabs.noSlide = true;
|
||||
tabs.noink = true;
|
||||
tabs.noBar = true;
|
||||
}
|
||||
else {
|
||||
// Safari doesn't handle the horizontal swiping very well
|
||||
|
||||
// Not very iOS-like I suppose
|
||||
pages.entryAnimation = 'slide-from-right-animation';
|
||||
pages.exitAnimation = 'slide-left-animation';
|
||||
|
||||
LibraryBrowser.configureSwipeTabs(ownerpage, tabs, pages);
|
||||
}
|
||||
|
||||
$('.libraryViewNav', ownerpage).addClass('paperLibraryViewNav').removeClass('libraryViewNavWithMinHeight');
|
||||
|
||||
} else {
|
||||
|
||||
|
@ -190,7 +214,32 @@
|
|||
var selected = this.selected;
|
||||
$('a', legacyTabs).removeClass('ui-btn-active')[selected].classList.add('ui-btn-active');
|
||||
});
|
||||
|
||||
$('.libraryViewNav', ownerpage).removeClass('libraryViewNavWithMinHeight');
|
||||
}
|
||||
|
||||
$(ownerpage).on('pagebeforeshowready', LibraryBrowser.onTabbedPageBeforeShowReady);
|
||||
},
|
||||
|
||||
onTabbedPageBeforeShowReady: function () {
|
||||
var page = this;
|
||||
|
||||
var tabs = page.querySelector('paper-tabs');
|
||||
var selected = tabs.selected;
|
||||
|
||||
if (selected == null) {
|
||||
selected = parseInt(getParameterByName('tab') || '0');
|
||||
tabs.selected = selected;
|
||||
page.querySelector('neon-animated-pages').selected = selected;
|
||||
|
||||
} else if (!LibraryBrowser.enableFullPaperTabs()) {
|
||||
Events.trigger(page.querySelector('neon-animated-pages'), 'tabchange');
|
||||
}
|
||||
},
|
||||
|
||||
canShare: function (item, user) {
|
||||
|
||||
return user.Policy.EnablePublicSharing;
|
||||
},
|
||||
|
||||
getDateParamValue: function (date) {
|
||||
|
|
|
@ -323,6 +323,14 @@
|
|||
});
|
||||
}
|
||||
|
||||
if (user.Policy.EnablePublicSharing) {
|
||||
items.push({
|
||||
name: Globalize.translate('ButtonShare'),
|
||||
id: 'share',
|
||||
ironIcon: 'share'
|
||||
});
|
||||
}
|
||||
|
||||
if (commands.indexOf('sync') != -1) {
|
||||
items.push({
|
||||
name: Globalize.translate('ButtonSync'),
|
||||
|
@ -445,6 +453,11 @@
|
|||
case 'externalplayer':
|
||||
LibraryBrowser.playInExternalPlayer(itemId);
|
||||
break;
|
||||
case 'share':
|
||||
require(['sharingmanager'], function () {
|
||||
SharingManager.showMenu(Dashboard.getCurrentUserId(), itemId);
|
||||
});
|
||||
break;
|
||||
case 'removefromplaylist':
|
||||
$(card).parents('.itemsContainer').trigger('removefromplaylist', [playlistItemId]);
|
||||
break;
|
||||
|
|
|
@ -664,34 +664,6 @@
|
|||
return false;
|
||||
}
|
||||
|
||||
function getBackdropUrl(item) {
|
||||
|
||||
var screenWidth = screen.availWidth;
|
||||
|
||||
if (item.BackdropImageTags && item.BackdropImageTags.length) {
|
||||
|
||||
return ApiClient.getScaledImageUrl(item.Id, {
|
||||
type: "Backdrop",
|
||||
index: 0,
|
||||
maxWidth: screenWidth,
|
||||
tag: item.BackdropImageTags[0]
|
||||
});
|
||||
|
||||
}
|
||||
else if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
|
||||
|
||||
return ApiClient.getScaledImageUrl(item.ParentBackdropItemId, {
|
||||
type: 'Backdrop',
|
||||
index: 0,
|
||||
maxWidth: screenWidth,
|
||||
tag: item.ParentBackdropImageTags[0]
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
function updateCastIcon() {
|
||||
|
||||
var info = MediaController.getPlayerInfo();
|
||||
|
@ -728,7 +700,10 @@
|
|||
|
||||
$('.requiresJqmCreate', this).trigger('create');
|
||||
|
||||
LibraryBrowser.configureSwipeTabs(page, page.querySelectorAll('paper-tabs')[0], page.querySelectorAll('neon-animated-pages')[0]);
|
||||
var tabs = page.querySelectorAll('paper-tabs')[0];
|
||||
tabs.alignBottom = true;
|
||||
|
||||
LibraryBrowser.configureSwipeTabs(page, tabs, page.querySelectorAll('neon-animated-pages')[0]);
|
||||
|
||||
$(MediaController).on('playerchange', function () {
|
||||
updateCastIcon(page);
|
||||
|
|
|
@ -14,7 +14,14 @@
|
|||
html += '<h2>' + Globalize.translate('HeaderShare') + '</h2>';
|
||||
|
||||
html += '<div>';
|
||||
html += '<div class="ssk-group ssk-round ssk-lg"><a href="" class="ssk ssk-facebook"></a><a href="" class="ssk ssk-twitter"></a><a href="" class="ssk ssk-google-plus"></a><a href="" class="ssk ssk-pinterest"></a><a href="" class="ssk ssk-tumblr"></a></div>';
|
||||
html += '<div class="ssk-group ssk-round ssk-lg">';
|
||||
|
||||
// We can only do facebook if we can guarantee that the current page is available over the internet, since FB will try to probe it.
|
||||
if (Dashboard.isConnectMode()) {
|
||||
html += '<a href="" class="ssk ssk-facebook"></a>';
|
||||
}
|
||||
|
||||
html += '<a href="" class="ssk ssk-twitter"></a><a href="" class="ssk ssk-google-plus"></a><a href="" class="ssk ssk-pinterest"></a><a href="" class="ssk ssk-tumblr"></a></div>';
|
||||
html += '</div>';
|
||||
|
||||
html += '<div style="max-width:240px;">';
|
||||
|
|
|
@ -595,7 +595,7 @@ var Dashboard = {
|
|||
|
||||
callback(index == 1);
|
||||
|
||||
}, title || Globalize.translate('HeaderAlert'), buttonLabels.join(','));
|
||||
}, title || Globalize.translate('HeaderConfirm'), buttonLabels.join(','));
|
||||
|
||||
} else {
|
||||
Dashboard.confirmInternal(message, title, true, callback);
|
||||
|
@ -1974,7 +1974,6 @@ var AppInfo = {};
|
|||
|
||||
define("connectservice", ["apiclient/connectservice"]);
|
||||
define("paperbuttonstyle", [], function () {
|
||||
Dashboard.importCss('thirdparty/paper-button-style.css');
|
||||
return {};
|
||||
});
|
||||
define("jqmicons", [], function () {
|
||||
|
@ -2001,7 +2000,12 @@ var AppInfo = {};
|
|||
}
|
||||
|
||||
define("sharingmanager", ["scripts/sharingmanager"]);
|
||||
define("sharingwidget", ["scripts/sharingwidget"]);
|
||||
|
||||
if (Dashboard.isRunningInCordova()) {
|
||||
define("sharingwidget", ["cordova/sharingwidget"]);
|
||||
} else {
|
||||
define("sharingwidget", ["scripts/sharingwidget"]);
|
||||
}
|
||||
|
||||
//requirejs(['http://viblast.com/player/free-version/qy2fdwajo1/viblast.js']);
|
||||
|
||||
|
@ -2181,7 +2185,7 @@ $(document).on('pagecreate', ".page", function () {
|
|||
}
|
||||
}
|
||||
|
||||
if (!isConnectMode && this.id !== "loginPage" && !page.classList.contains('forgotPasswordPage') && !page.classList.contains('wizardPage')) {
|
||||
if (!isConnectMode && this.id !== "loginPage" && !page.classList.contains('forgotPasswordPage') && !page.classList.contains('wizardPage') && this.id !== 'publicSharedItemPage') {
|
||||
|
||||
Logger.log('Not logged into server. Redirecting to login.');
|
||||
Dashboard.logout();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue