/*jslint esversion: 6 */
function searchMoreFiles (button) {
var table = $(button).closest('table');
var loading = $('
').html(
$('
![]()
')
.attr('src', STUDIP.ASSETS_URL + 'images/ajax-indicator-black.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.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();
});
$('table.documents.flat.filter').each(function () {
var ignored = [];
$('colgroup col', this).each((index, col) => {
if ($(col).is('[data-filter-ignore]')) {
ignored.push(index);
}
});
$(this).filterTable({
highlightClass: 'filter-match',
ignoreColumns: ignored,
inputSelector: '.sidebar .tablesorterfilter',
minChars: 1,
minRows: 1
});
});
$(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.hasOwnProperty(key)) {
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.hasOwnProperty(key)) {
values = payload[key];
}
} catch (e) {
}
}
handler(values);
}
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);
});