__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Module to manage content bank actions, such as delete or rename.
 *
 * @module     core_contentbank/actions
 * @copyright  2020 Sara Arjona <sara@moodle.com>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
define([
    'jquery',
    'core/ajax',
    'core/notification',
    'core/str',
    'core/templates',
    'core/url',
    'core/modal_save_cancel',
    'core/modal_events'],
function($, Ajax, Notification, Str, Templates, Url, ModalSaveCancel, ModalEvents) {

    /**
     * List of action selectors.
     *
     * @type {{DELETE_CONTENT: string}}
     */
    var ACTIONS = {
        DELETE_CONTENT: '[data-action="deletecontent"]',
        RENAME_CONTENT: '[data-action="renamecontent"]',
        SET_CONTENT_VISIBILITY: '[data-action="setcontentvisibility"]',
        COPY_CONTENT: '[data-action="copycontent"]',
    };

    /**
     * Actions class.
     */
    var Actions = function() {
        this.registerEvents();
    };

    /**
     * Register event listeners.
     */
    Actions.prototype.registerEvents = function() {
        $(ACTIONS.DELETE_CONTENT).click(function(e) {
            e.preventDefault();

            var contentname = $(this).data('contentname');
            var contentuses = $(this).data('uses');
            var contentid = $(this).data('contentid');
            var contextid = $(this).data('contextid');

            var strings = [
                {
                    key: 'deletecontent',
                    component: 'core_contentbank'
                },
                {
                    key: 'deletecontentconfirm',
                    component: 'core_contentbank',
                    param: {
                        name: contentname,
                    }
                },
                {
                    key: 'deletecontentconfirmlinked',
                    component: 'core_contentbank',
                },
                {
                    key: 'delete',
                    component: 'core'
                },
            ];

            var deleteButtonText = '';
            Str.get_strings(strings).then(function(langStrings) {
                var modalTitle = langStrings[0];
                var modalContent = langStrings[1];
                if (contentuses > 0) {
                    modalContent += ' ' + langStrings[2];
                }
                deleteButtonText = langStrings[3];

                return ModalSaveCancel.create({
                    title: modalTitle,
                    body: modalContent,
                    large: true,
                    removeOnClose: true,
                    show: true,
                    buttons: {
                        save: deleteButtonText,
                    },
                });
            }).then(function(modal) {
                modal.getRoot().on(ModalEvents.save, function() {
                    // The action is now confirmed, sending an action for it.
                    return deleteContent(contentid, contextid);
                });

                return;
            }).catch(Notification.exception);
        });

        $(ACTIONS.RENAME_CONTENT).click(function(e) {
            e.preventDefault();

            var contentname = $(this).data('contentname');
            var contentid = $(this).data('contentid');

            var strings = [
                {
                    key: 'renamecontent',
                    component: 'core_contentbank'
                },
                {
                    key: 'rename',
                    component: 'core_contentbank'
                },
            ];

            var saveButtonText = '';
            Str.get_strings(strings).then(function(langStrings) {
                var modalTitle = langStrings[0];
                saveButtonText = langStrings[1];

                return ModalSaveCancel.create({
                    title: modalTitle,
                    body: Templates.render('core_contentbank/renamecontent', {'contentid': contentid, 'name': contentname}),
                    removeOnClose: true,
                    show: true,
                    buttons: {
                        save: saveButtonText,
                    },
                });
            }).then(function(modal) {
                modal.getRoot().on(ModalEvents.save, function(e) {
                    // The action is now confirmed, sending an action for it.
                    var newname = $("#newname").val().trim();
                    if (newname) {
                        renameContent(contentid, newname);
                    } else {
                        var errorStrings = [
                            {
                                key: 'error',
                            },
                            {
                                key: 'emptynamenotallowed',
                                component: 'core_contentbank',
                            },
                        ];
                        Str.get_strings(errorStrings).then(function(langStrings) {
                            Notification.alert(langStrings[0], langStrings[1]);
                        }).catch(Notification.exception);
                        e.preventDefault();
                    }
                });

                return;
            }).catch(Notification.exception);
        });

        $(ACTIONS.COPY_CONTENT).click(function(e) {
            e.preventDefault();

            var contentname = $(this).data('contentname');
            var contentid = $(this).data('contentid');

            var strings = [
                {
                    key: 'copycontent',
                    component: 'core_contentbank'
                },
                {
                    key: 'error',
                },
                {
                    key: 'emptynamenotallowed',
                    component: 'core_contentbank',
                },
            ];

            let errorTitle, errorMessage;
            Str.get_strings(strings).then(function(langStrings) {
                var modalTitle = langStrings[0];
                errorTitle = langStrings[1];
                errorMessage = langStrings[2];

                return ModalSaveCancel.create({
                    title: modalTitle,
                    body: Templates.render('core_contentbank/copycontent', {'contentid': contentid, 'name': contentname}),
                    removeOnClose: true,
                    show: true,
                });
            }).then(function(modal) {
                modal.getRoot().on(ModalEvents.save, function() {
                    // The action is now confirmed, sending an action for it.
                    var newname = $("#newname").val().trim();
                    if (newname) {
                        copyContent(contentid, newname);
                    } else {
                        Notification.alert(errorTitle, errorMessage);
                        return false;
                    }
                });
                return;
            }).catch(Notification.exception);
        });

        $(ACTIONS.SET_CONTENT_VISIBILITY).click(function(e) {
            e.preventDefault();

            var contentid = $(this).data('contentid');
            var visibility = $(this).data('visibility');

            setContentVisibility(contentid, visibility);
        });
    };

    /**
     * Delete content from the content bank.
     *
     * @param {int} contentid The content to delete.
     * @param {int} contextid The contextid where the content belongs.
     */
    function deleteContent(contentid, contextid) {
        var request = {
            methodname: 'core_contentbank_delete_content',
            args: {
                contentids: {contentid}
            }
        };

        var requestType = 'success';
        Ajax.call([request])[0].then(function(data) {
            if (data.result) {
                return 'contentdeleted';
            }
            requestType = 'error';
            return 'contentnotdeleted';

        }).done(function(message) {
            var params = {
                contextid: contextid
            };
            if (requestType == 'success') {
                params.statusmsg = message;
            } else {
                params.errormsg = message;
            }
            // Redirect to the main content bank page and display the message as a notification.
            window.location.href = Url.relativeUrl('contentbank/index.php', params, false);
        }).fail(Notification.exception);
    }

    /**
     * Rename content in the content bank.
     *
     * @param {int} contentid The content to rename.
     * @param {string} name The new name for the content.
     */
    function renameContent(contentid, name) {
        var request = {
            methodname: 'core_contentbank_rename_content',
            args: {
                contentid: contentid,
                name: name
            }
        };
        var requestType = 'success';
        Ajax.call([request])[0].then(function(data) {
            if (data.result) {
                return 'contentrenamed';
            }
            requestType = 'error';
            return data.warnings[0].message;

        }).then(function(message) {
            var params = null;
            if (requestType == 'success') {
                params = {
                    id: contentid,
                    statusmsg: message
                };
                // Redirect to the content view page and display the message as a notification.
                window.location.href = Url.relativeUrl('contentbank/view.php', params, false);
            } else {
                // Fetch error notifications.
                Notification.addNotification({
                    message: message,
                    type: 'error'
                });
                Notification.fetchNotifications();
            }
            return;
        }).catch(Notification.exception);
    }

    /**
     * Copy content in the content bank.
     *
     * @param {int} contentid The content to copy.
     * @param {string} name The name for the new content.
     */
    function copyContent(contentid, name) {
        var request = {
            methodname: 'core_contentbank_copy_content',
            args: {
                contentid: contentid,
                name: name
            }
        };
        Ajax.call([request])[0].then(function(data) {
            if (data.id == 0) {
                // Fetch error notifications.
                Notification.addNotification({
                    message: data.warnings[0].message,
                    type: 'error'
                });
                Notification.fetchNotifications();
                return data.warnings[0].message;
            } else {
                let params = {
                    id: data.id,
                    statusmsg: 'contentcopied'
                };
                // Redirect to the content view page and display the message as a notification.
                window.location.href = Url.relativeUrl('contentbank/view.php', params, false);
            }
            return '';
        }).catch(Notification.exception);
    }

    /**
     * Set content visibility in the content bank.
     *
     * @param {int} contentid The content to modify
     * @param {int} visibility The new visibility value
     */
    function setContentVisibility(contentid, visibility) {
        var request = {
            methodname: 'core_contentbank_set_content_visibility',
            args: {
                contentid: contentid,
                visibility: visibility
            }
        };
        var requestType = 'success';
        Ajax.call([request])[0].then(function(data) {
            if (data.result) {
                return 'contentvisibilitychanged';
            }
            requestType = 'error';
            return data.warnings[0].message;

        }).then(function(message) {
            var params = null;
            if (requestType == 'success') {
                params = {
                    id: contentid,
                    statusmsg: message
                };
                // Redirect to the content view page and display the message as a notification.
                window.location.href = Url.relativeUrl('contentbank/view.php', params, false);
            } else {
                // Fetch error notifications.
                Notification.addNotification({
                    message: message,
                    type: 'error'
                });
                Notification.fetchNotifications();
            }
            return;
        }).catch(Notification.exception);
    }

    return /** @alias module:core_contentbank/actions */ {
        // Public variables and functions.

        /**
         * Initialise the contentbank actions.
         *
         * @method init
         * @return {Actions}
         */
        'init': function() {
            return new Actions();
        }
    };
});

Filemanager

Name Type Size Permission Actions
actions.js File 13.37 KB 0777
displayunlisted.js File 1.67 KB 0777
search.js File 5.34 KB 0777
selectors.js File 2.28 KB 0777
sort.js File 9.56 KB 0777
upload.js File 1.84 KB 0777
Filemanager