function searchMoreFiles (button) {
var table = $(button).closest('table');
var loading = $('
').html(
$('
![]()
')
.attr('src', STUDIP.ASSETS_URL + 'images/loading-indicator.svg')
.css('width', '24')
.css('height', '24')
);
$(button).replaceWith(loading);
$.get(button.href).done((output) => {
table.find('tbody').append($('tbody tr', output));
table.find('tfoot').replaceWith($('tfoot', output));
});
return false;
}
STUDIP.eventBus.on('files-vue-app-updated', ({hasImages}) => {
$('#sidebar-actions a[onclick*="Files.openGallery"]').toggle(hasImages);
});
STUDIP.domReady(() => {
STUDIP.Files.init();
$('form.drag-and-drop.files').on('dragover dragleave', (event) => {
$(event.target).toggleClass('hovered', event.type === 'dragover');
event.preventDefault();
}).on('drop', (event) => {
var filelist = event.originalEvent.dataTransfer.files || {};
STUDIP.Files.upload(filelist);
event.preventDefault();
}).on('click', function() {
$('.file_selector input[type=file]').first().click();
});
$(document).trigger('refresh-handlers');
$(document).on(
'click',
'#file_license_chooser_1 > input[type=radio]',
STUDIP.Files.updateTermsOfUseDescription
);
$(document).on('click', '.files-search-more', (event) => {
searchMoreFiles(event.target);
event.preventDefault();
});
});
jQuery(document).on('ajaxComplete', (event, xhr) => {
if (!xhr.getResponseHeader('X-Filesystem-Changes')) {
return;
}
var changes = JSON.parse(xhr.getResponseHeader('X-Filesystem-Changes'));
var payload = false;
function process(key, handler) {
if (changes[key] === undefined) {
return;
}
var values = changes[key];
if (values === null && xhr.getResponseHeader('Content-Type').match(/json/)) {
try {
if (payload === false) {
payload = JSON.parse(xhr.responseText);
}
if (payload[key] !== undefined) {
values = payload[key];
}
} catch (e) {
console.log('Error parsing payload', e);
}
}
let options = {};
if (key === 'redirect') {
options.size = 'default';
}
handler(values, options);
}
process('added_files', STUDIP.Files.addFileDisplay);
process('added_folders', STUDIP.Files.addFolderDisplay);
process('removed_files', STUDIP.Files.removeFileDisplay);
process('redirect', STUDIP.Dialog.fromURL);
process('message', (html) => {
$('.file_upload_window .uploadbar').hide().parent().append(html);
});
process('close_dialog', STUDIP.Dialog.close);
});