<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>