X7ROOT File Manager
Current Path:
/home/cbholdings/pasukulu/calendar/amd/src
home
/
cbholdings
/
pasukulu
/
calendar
/
amd
/
src
/
📁
..
📄
calendar.js
(10.86 KB)
📄
calendar_filter.js
(3.63 KB)
📄
calendar_mini.js
(3.91 KB)
📄
calendar_threemonth.js
(5.64 KB)
📄
calendar_view.js
(3.64 KB)
📄
crud.js
(9.05 KB)
📄
drag_drop_data_store.js
(5.4 KB)
📄
event_form.js
(2.99 KB)
📄
events.js
(1.58 KB)
📄
export.js
(1.36 KB)
📄
manage_subscriptions.js
(4.83 KB)
📄
modal_delete.js
(3.58 KB)
📄
modal_event_form.js
(14.57 KB)
📄
month_navigation_drag_drop.js
(7.29 KB)
📄
month_view_drag_drop.js
(13.04 KB)
📄
popover.js
(3.44 KB)
📄
repository.js
(5.87 KB)
📄
selectors.js
(2.92 KB)
📄
summary_modal.js
(7.06 KB)
📄
view_manager.js
(19.96 KB)
Editing: popover.js
// 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/>. /** * Javascript popover for the `core_calendar` subsystem. * * @module core_calendar/popover * @copyright 2021 Huong Nguyen <huongnv13@gmail.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @since 4.0 */ import 'theme_boost/popover'; import jQuery from 'jquery'; import * as CalendarSelectors from 'core_calendar/selectors'; /** * Check if we are allowing to enable the popover or not. * @param {Element} dateContainer * @returns {boolean} */ const isPopoverAvailable = (dateContainer) => { return window.getComputedStyle(dateContainer.querySelector(CalendarSelectors.elements.dateContent)).display === 'none'; }; const isPopoverConfigured = new Map(); const showPopover = target => { if (!isPopoverConfigured.has(target)) { const dateEle = jQuery(target); dateEle.popover({ trigger: 'manual', placement: 'top', html: true, content: () => { const source = dateEle.find(CalendarSelectors.elements.dateContent); const content = jQuery('<div>'); if (source.length) { const temptContent = source.find('.hidden').clone(false); content.html(temptContent.html()); } return content.html(); } }); isPopoverConfigured.set(target, true); } if (isPopoverAvailable(target)) { jQuery(target).popover('show'); target.addEventListener('mouseleave', hidePopover); target.addEventListener('focusout', hidePopover); } }; const hidePopover = e => { const target = e.target; const dateContainer = e.target.closest(CalendarSelectors.elements.dateContainer); if (!dateContainer) { return; } if (isPopoverConfigured.has(dateContainer)) { const isTargetActive = target.contains(document.activeElement); const isTargetHover = target.matches(':hover'); if (!isTargetActive && !isTargetHover) { jQuery(dateContainer).popover('hide'); dateContainer.removeEventListener('mouseleave', hidePopover); dateContainer.removeEventListener('focusout', hidePopover); } } }; /** * Register events for date container. */ const registerEventListeners = () => { const showPopoverHandler = (e) => { const dateContainer = e.target.closest(CalendarSelectors.elements.dateContainer); if (!dateContainer) { return; } e.preventDefault(); showPopover(dateContainer); }; document.addEventListener('mouseover', showPopoverHandler); document.addEventListener('focusin', showPopoverHandler); }; let listenersRegistered = false; if (!listenersRegistered) { registerEventListeners(); listenersRegistered = true; }
Upload File
Create Folder