OpenXE/www/pages/content/wiki_files_popup.tpl
2021-05-21 08:49:41 +02:00

98 lines
3.0 KiB
Smarty

<script>
var WikiFilesBrowser = (function ($) {
'use strict';
var me = {
init: function () {
$('#wiki_files').on('click', '.wiki-select-file-button', me.onClickSelectFileButton);
$('#wiki_files').on('click', '.wiki-delete-file-button', me.onClickDeleteFileButton);
},
/**
* @param {Event} event
*/
onClickSelectFileButton: function (event) {
event.preventDefault();
var fileId = $(this).data('fileId');
me.assignFileUrltoEditorInstance(fileId);
},
onClickDeleteFileButton: function (event) {
event.preventDefault();
var fileId = $(this).data('fileId');
if(confirm('Datei wirklich löschen?')) {
$.ajax({
url: 'index.php?module=wiki&action=dateien&subcmd=delete',
type: 'POST',
dataType: 'json',
data: {
fileid: fileId
},
success: function(data) {
$('#wiki_files').DataTable( ).ajax.reload();
},
beforeSend: function() {
}
});
}
},
/**
* @see https://ckeditor.com/docs/ckeditor4/latest/guide/dev_file_browser_api.html#example-2
*
* @param {Number} fileId
*/
assignFileUrltoEditorInstance: function (fileId) {
var fileUrl = me.getFileUrl(fileId);
var funcNum = me.getUrlParam('CKEditorFuncNum');
window.opener.CKEDITOR.tools.callFunction(funcNum, fileUrl);
window.close();
},
/**
* @param {Number} fileId
*
* @return {String}
*/
getFileUrl: function (fileId) {
if (typeof fileId === 'undefined' || fileId === null || fileId === '') {
alert('Can not generate file url. Required attribute "fileId" is missing.');
return '';
}
return './index.php?module=dateien&action=send&id=' + fileId;
},
/**
* Helper function to get parameters from the query string.
*
* @param {String} paramName
*
* @return {String|null}
*/
getUrlParam: function (paramName) {
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i');
var match = window.location.search.match(reParam);
return (match && match.length > 1) ? match[1] : null;
}
};
return {
init: me.init
};
})(jQuery);
$(document).ready(function () {
WikiFilesBrowser.init();
});
</script>
<div>
[DATATABLE]
</div>