You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.1 KiB
88 lines
2.1 KiB
5 years ago
|
/**
|
||
|
* Nextcloud - Gallery
|
||
|
*
|
||
|
*
|
||
|
* This file is licensed under the Affero General Public License version 3 or
|
||
|
* later. See the COPYING file.
|
||
|
*
|
||
|
* @author Olivier Paroz <galleryapps@oparoz.com>
|
||
|
*
|
||
|
* @copyright Olivier Paroz 2017
|
||
|
*/
|
||
|
/* global OC, OCA, FileList, $, t */
|
||
|
var GalleryButton = {};
|
||
|
GalleryButton.isPublic = false;
|
||
|
GalleryButton.button = {};
|
||
|
GalleryButton.url = null;
|
||
|
|
||
|
/**
|
||
|
* Rebuilds the Gallery URL every time the files list has changed
|
||
|
*/
|
||
|
GalleryButton.onFileListUpdated = function () {
|
||
|
"use strict";
|
||
|
var fileList;
|
||
|
|
||
|
if (GalleryButton.isPublic) {
|
||
|
fileList = OCA.Sharing.PublicApp.fileList;
|
||
|
} else {
|
||
|
fileList = FileList;
|
||
|
}
|
||
|
|
||
|
GalleryButton.buildGalleryUrl(fileList.getCurrentDirectory().replace(/^\//, ''));
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* Builds the URL which will load the exact same folder in Gallery
|
||
|
*
|
||
|
* @param dir
|
||
|
*/
|
||
|
GalleryButton.buildGalleryUrl = function (dir) {
|
||
|
"use strict";
|
||
|
var params = {};
|
||
|
var tokenPath = '';
|
||
|
var sharingTokenElement = $('#sharingToken');
|
||
|
var token = (sharingTokenElement.val()) ? sharingTokenElement.val() : false;
|
||
|
if (token) {
|
||
|
params.token = token;
|
||
|
tokenPath = 's/{token}';
|
||
|
}
|
||
|
GalleryButton.url =
|
||
|
OC.generateUrl('apps/gallery/' + tokenPath, params) + '#' + encodeURIComponent(dir);
|
||
|
};
|
||
|
|
||
|
$(document).ready(function () {
|
||
|
"use strict";
|
||
|
if ($('#body-login').length > 0) {
|
||
|
return true; //deactivate on login page
|
||
|
}
|
||
|
|
||
|
if ($('html').is('.ie8')) {
|
||
|
return true; //deactivate in IE8
|
||
|
}
|
||
|
|
||
|
if ($('#isPublic').val()) {
|
||
|
GalleryButton.isPublic = true;
|
||
|
}
|
||
|
|
||
|
if ($('#filesApp').val()) {
|
||
|
|
||
|
$('#fileList').on('updated', GalleryButton.onFileListUpdated);
|
||
|
|
||
|
// Button for opening files list as gallery view
|
||
|
GalleryButton.button =
|
||
|
$('<div id="gallery-button" class="button view-switcher">' +
|
||
|
'<div id="button-loading" class="hidden"></div>' +
|
||
|
'<span class="icon-toggle-pictures"></span>' +
|
||
|
'</div>');
|
||
|
|
||
|
GalleryButton.button.click(function () {
|
||
|
$(this).children('span').addClass('hidden');
|
||
|
$(this).children('#button-loading').removeClass('hidden').addClass('icon-loading-small');
|
||
|
window.location.href = GalleryButton.url;
|
||
|
});
|
||
|
|
||
|
$('#controls').append(GalleryButton.button);
|
||
|
}
|
||
|
}
|
||
|
);
|