mirror of
https://github.com/moodle/moodle.git
synced 2025-06-03 06:35:57 +02:00
Merge branch 'MDL-82547' of https://github.com/paulholden/moodle
This commit is contained in:
commit
8a80fca393
2
course/amd/build/actions.min.js
vendored
2
course/amd/build/actions.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -37,6 +37,7 @@ define(
|
|||||||
'core/log',
|
'core/log',
|
||||||
'core_courseformat/courseeditor',
|
'core_courseformat/courseeditor',
|
||||||
'core/event_dispatcher',
|
'core/event_dispatcher',
|
||||||
|
'core/local/inplace_editable/events',
|
||||||
'core_course/events'
|
'core_course/events'
|
||||||
],
|
],
|
||||||
function(
|
function(
|
||||||
@ -54,6 +55,7 @@ define(
|
|||||||
log,
|
log,
|
||||||
editor,
|
editor,
|
||||||
EventDispatcher,
|
EventDispatcher,
|
||||||
|
InplaceEditableEvents,
|
||||||
CourseEvents
|
CourseEvents
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@ -995,18 +997,21 @@ define(
|
|||||||
|
|
||||||
// The section and activity names are edited using inplace editable.
|
// The section and activity names are edited using inplace editable.
|
||||||
// The "update" jQuery event must be captured in order to update the course state.
|
// The "update" jQuery event must be captured in order to update the course state.
|
||||||
$('body').on('updated', `${SELECTOR.SECTIONITEM} [data-inplaceeditable]`, function(e) {
|
$('body').on(InplaceEditableEvents.eventTypes.elementUpdated,
|
||||||
if (e.ajaxreturn && e.ajaxreturn.itemid) {
|
`${SELECTOR.SECTIONITEM} [data-inplaceeditable]`, function(e) {
|
||||||
|
if (e.detail.ajaxreturn.itemid) {
|
||||||
const state = courseeditor.state;
|
const state = courseeditor.state;
|
||||||
const section = state.section.get(e.ajaxreturn.itemid);
|
const section = state.section.get(e.detail.ajaxreturn.itemid);
|
||||||
if (section !== undefined) {
|
if (section !== undefined) {
|
||||||
courseeditor.dispatch('sectionState', [e.ajaxreturn.itemid]);
|
courseeditor.dispatch('sectionState', [e.detail.ajaxreturn.itemid]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('body').on('updated', `${SELECTOR.ACTIVITYLI} [data-itemtype="activityname"][data-inplaceeditable]`, function(e) {
|
|
||||||
if (e.ajaxreturn && e.ajaxreturn.itemid) {
|
$('body').on(InplaceEditableEvents.eventTypes.elementUpdated,
|
||||||
courseeditor.dispatch('cmState', [e.ajaxreturn.itemid]);
|
`${SELECTOR.ACTIVITYLI} [data-itemtype="activityname"][data-inplaceeditable]`, function(e) {
|
||||||
|
if (e.detail.ajaxreturn.itemid) {
|
||||||
|
courseeditor.dispatch('cmState', [e.detail.ajaxreturn.itemid]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
define("core/local/inplace_editable/events",["exports","jquery","core/event_dispatcher"],(function(_exports,_jquery,_event_dispatcher){var obj;
|
define("core/local/inplace_editable/events",["exports","core/event_dispatcher"],(function(_exports,_event_dispatcher){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.notifyElementUpdated=_exports.notifyElementUpdateFailed=_exports.eventTypes=void 0;
|
||||||
/**
|
/**
|
||||||
* Inplace editable module events
|
* Inplace editable module events
|
||||||
*
|
*
|
||||||
* @module core/local/inplace_editable/events
|
* @module core/local/inplace_editable/events
|
||||||
* @copyright 2021 Paul Holden <paulh@moodle.com>
|
* @copyright 2021 Paul Holden <paulh@moodle.com>
|
||||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.notifyElementUpdated=_exports.notifyElementUpdateFailed=_exports.eventTypes=void 0,_jquery=(obj=_jquery)&&obj.__esModule?obj:{default:obj};const eventTypes={elementUpdated:"core/inplace_editable:updated",elementUpdateFailed:"core/inplace_editable:updateFailed"};_exports.eventTypes=eventTypes;_exports.notifyElementUpdated=(element,ajaxreturn,oldvalue)=>(0,_event_dispatcher.dispatchEvent)(eventTypes.elementUpdated,{ajaxreturn:ajaxreturn,oldvalue:oldvalue},element);_exports.notifyElementUpdateFailed=(element,exception,newvalue)=>(0,_event_dispatcher.dispatchEvent)(eventTypes.elementUpdateFailed,{exception:exception,newvalue:newvalue},element,{cancelable:!0});let legacyEventsRegistered=!1;legacyEventsRegistered||(document.addEventListener(eventTypes.elementUpdated,(event=>{const legacyEvent=_jquery.default.Event("updated",event.detail);(0,_jquery.default)(event.target).trigger(legacyEvent)})),document.addEventListener(eventTypes.elementUpdateFailed,(event=>{const legacyEvent=_jquery.default.Event("updatefailed",event.detail);(0,_jquery.default)(event.target).trigger(legacyEvent),legacyEvent.isDefaultPrevented()&&event.preventDefault()})),legacyEventsRegistered=!0)}));
|
*/
|
||||||
|
const eventTypes={elementUpdated:"core/inplace_editable:updated",elementUpdateFailed:"core/inplace_editable:updateFailed"};_exports.eventTypes=eventTypes;_exports.notifyElementUpdated=(element,ajaxreturn,oldvalue)=>(0,_event_dispatcher.dispatchEvent)(eventTypes.elementUpdated,{ajaxreturn:ajaxreturn,oldvalue:oldvalue},element);_exports.notifyElementUpdateFailed=(element,exception,newvalue)=>(0,_event_dispatcher.dispatchEvent)(eventTypes.elementUpdateFailed,{exception:exception,newvalue:newvalue},element,{cancelable:!0})}));
|
||||||
|
|
||||||
//# sourceMappingURL=events.min.js.map
|
//# sourceMappingURL=events.min.js.map
|
File diff suppressed because one or more lines are too long
4
lib/amd/build/tag.min.js
vendored
4
lib/amd/build/tag.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -21,7 +21,6 @@
|
|||||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import $ from 'jquery';
|
|
||||||
import {dispatchEvent} from 'core/event_dispatcher';
|
import {dispatchEvent} from 'core/event_dispatcher';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -98,29 +97,3 @@ export const notifyElementUpdateFailed = (element, exception, newvalue) => dispa
|
|||||||
cancelable: true
|
cancelable: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
let legacyEventsRegistered = false;
|
|
||||||
if (!legacyEventsRegistered) {
|
|
||||||
// The following event triggers are legacy and will be removed in the future.
|
|
||||||
// The following approach provides a backwards-compatability layer for the new events.
|
|
||||||
// Code should be updated to make use of native events.
|
|
||||||
|
|
||||||
// Listen for the new native elementUpdated event, and trigger the legacy jQuery event.
|
|
||||||
document.addEventListener(eventTypes.elementUpdated, event => {
|
|
||||||
const legacyEvent = $.Event('updated', event.detail);
|
|
||||||
$(event.target).trigger(legacyEvent);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Listen for the new native elementUpdateFailed event, and trigger the legacy jQuery event.
|
|
||||||
document.addEventListener(eventTypes.elementUpdateFailed, event => {
|
|
||||||
const legacyEvent = $.Event('updatefailed', event.detail);
|
|
||||||
$(event.target).trigger(legacyEvent);
|
|
||||||
|
|
||||||
// If the legacy event is cancelled, so should the native event.
|
|
||||||
if (legacyEvent.isDefaultPrevented()) {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
legacyEventsRegistered = true;
|
|
||||||
}
|
|
||||||
|
@ -31,6 +31,7 @@ import * as ModalEvents from 'core/modal_events';
|
|||||||
import Pending from 'core/pending';
|
import Pending from 'core/pending';
|
||||||
import SaveCancelModal from 'core/modal_save_cancel';
|
import SaveCancelModal from 'core/modal_save_cancel';
|
||||||
import Config from 'core/config';
|
import Config from 'core/config';
|
||||||
|
import {eventTypes as inplaceEditableEvents} from 'core/local/inplace_editable/events';
|
||||||
import * as reportSelectors from 'core_reportbuilder/local/selectors';
|
import * as reportSelectors from 'core_reportbuilder/local/selectors';
|
||||||
|
|
||||||
const getTagIndex = (tagindex) => fetchMany([{
|
const getTagIndex = (tagindex) => fetchMany([{
|
||||||
@ -323,9 +324,9 @@ export const initTagindexPage = async() => {
|
|||||||
*/
|
*/
|
||||||
export const initManagePage = () => {
|
export const initManagePage = () => {
|
||||||
// Toggle row class when updating flag.
|
// Toggle row class when updating flag.
|
||||||
$('body').on('updated', '[data-inplaceeditable][data-itemtype=tagflag]', function(e) {
|
$('body').on(inplaceEditableEvents.elementUpdated, '[data-inplaceeditable][data-itemtype=tagflag]', function(e) {
|
||||||
var row = $(e.target).closest('tr');
|
var row = $(e.target).closest('tr');
|
||||||
row.toggleClass('table-warning', e.ajaxreturn.value === '1');
|
row.toggleClass('table-warning', e.detail.ajaxreturn.value === '1');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Confirmation for bulk tag combine button.
|
// Confirmation for bulk tag combine button.
|
||||||
@ -355,9 +356,9 @@ export const initManagePage = () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// When user changes tag name to some name that already exists suggest to combine the tags.
|
// When user changes tag name to some name that already exists suggest to combine the tags.
|
||||||
$('body').on('updatefailed', '[data-inplaceeditable][data-itemtype=tagname]', async(e) => {
|
$('body').on(inplaceEditableEvents.elementUpdateFailed, '[data-inplaceeditable][data-itemtype=tagname]', async(e) => {
|
||||||
var exception = e.exception; // The exception object returned by the callback.
|
var exception = e.detail.exception; // The exception object returned by the callback.
|
||||||
var newvalue = e.newvalue; // The value that user tried to udpated the element to.
|
var newvalue = e.detail.newvalue; // The value that user tried to udpated the element to.
|
||||||
var tagid = $(e.target).attr('data-itemid');
|
var tagid = $(e.target).attr('data-itemid');
|
||||||
if (exception.errorcode !== 'namesalreadybeeingused') {
|
if (exception.errorcode !== 'namesalreadybeeingused') {
|
||||||
return;
|
return;
|
||||||
@ -392,10 +393,10 @@ export const initManagePage = () => {
|
|||||||
* @method initManageCollectionsPage
|
* @method initManageCollectionsPage
|
||||||
*/
|
*/
|
||||||
export const initManageCollectionsPage = () => {
|
export const initManageCollectionsPage = () => {
|
||||||
$('body').on('updated', '[data-inplaceeditable]', function(e) {
|
$('body').on(inplaceEditableEvents.elementUpdated, '[data-inplaceeditable]', function(e) {
|
||||||
var pendingPromise = new Pending('core/tag:initManageCollectionsPage-updated');
|
var pendingPromise = new Pending('core/tag:initManageCollectionsPage-updated');
|
||||||
|
|
||||||
var ajaxreturn = e.ajaxreturn,
|
var ajaxreturn = e.detail.ajaxreturn,
|
||||||
areaid, collid, isenabled;
|
areaid, collid, isenabled;
|
||||||
if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareaenable') {
|
if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareaenable') {
|
||||||
areaid = $(this).attr('data-itemid');
|
areaid = $(this).attr('data-itemid');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user