mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
Merge branch 'MDL-79264-MOODLE_401_STABLE' of https://github.com/geichelberger/moodle into MOODLE_401_STABLE
This commit is contained in:
commit
c28639acd9
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -24,7 +24,7 @@
|
|||||||
import EquationModal from 'tiny_equation/modal';
|
import EquationModal from 'tiny_equation/modal';
|
||||||
import ModalFactory from 'core/modal_factory';
|
import ModalFactory from 'core/modal_factory';
|
||||||
import ModalEvents from 'core/modal_events';
|
import ModalEvents from 'core/modal_events';
|
||||||
import {getLibraries, getTexDocsUrl} from 'tiny_equation/options';
|
import {getContextId, getLibraries, getTexDocsUrl} from 'tiny_equation/options';
|
||||||
import {notifyFilterContentUpdated} from 'core/event';
|
import {notifyFilterContentUpdated} from 'core/event';
|
||||||
import * as TinyEquationRepository from 'tiny_equation/repository';
|
import * as TinyEquationRepository from 'tiny_equation/repository';
|
||||||
import {exception as displayException} from 'core/notification';
|
import {exception as displayException} from 'core/notification';
|
||||||
@ -65,15 +65,17 @@ const displayDialogue = async(editor) => {
|
|||||||
const root = $root[0];
|
const root = $root[0];
|
||||||
currentForm = root.querySelector(Selectors.elements.form);
|
currentForm = root.querySelector(Selectors.elements.form);
|
||||||
|
|
||||||
|
const contextId = getContextId(editor);
|
||||||
|
|
||||||
$root.on(ModalEvents.hidden, () => {
|
$root.on(ModalEvents.hidden, () => {
|
||||||
modalPromises.destroy();
|
modalPromises.destroy();
|
||||||
});
|
});
|
||||||
|
|
||||||
$root.on(ModalEvents.shown, () => {
|
$root.on(ModalEvents.shown, () => {
|
||||||
const library = root.querySelector(Selectors.elements.library);
|
const library = root.querySelector(Selectors.elements.library);
|
||||||
TinyEquationRepository.filterEquation(1, library.innerHTML).then(async data => {
|
TinyEquationRepository.filterEquation(contextId, library.innerHTML).then(async data => {
|
||||||
library.innerHTML = data.content;
|
library.innerHTML = data.content;
|
||||||
updatePreview();
|
updatePreview(contextId);
|
||||||
notifyFilter(library);
|
notifyFilter(library);
|
||||||
return data;
|
return data;
|
||||||
}).catch(displayException);
|
}).catch(displayException);
|
||||||
@ -85,7 +87,7 @@ const displayDialogue = async(editor) => {
|
|||||||
const textArea = e.target.closest('.tiny_equation_equation');
|
const textArea = e.target.closest('.tiny_equation_equation');
|
||||||
if (libraryItem) {
|
if (libraryItem) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
selectLibraryItem(libraryItem);
|
selectLibraryItem(libraryItem, contextId);
|
||||||
}
|
}
|
||||||
if (submitAction) {
|
if (submitAction) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@ -93,14 +95,14 @@ const displayDialogue = async(editor) => {
|
|||||||
modalPromises.destroy();
|
modalPromises.destroy();
|
||||||
}
|
}
|
||||||
if (textArea) {
|
if (textArea) {
|
||||||
debounce(updatePreview(), 500);
|
debounce(updatePreview(contextId), 500);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
root.addEventListener('keyup', (e) => {
|
root.addEventListener('keyup', (e) => {
|
||||||
const textArea = e.target.closest(Selectors.elements.equationTextArea);
|
const textArea = e.target.closest(Selectors.elements.equationTextArea);
|
||||||
if (textArea) {
|
if (textArea) {
|
||||||
debounce(updatePreview(), 500);
|
debounce(updatePreview(contextId), 500);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -135,8 +137,9 @@ const getTemplateContext = (editor, data) => {
|
|||||||
/**
|
/**
|
||||||
* Handle select library item.
|
* Handle select library item.
|
||||||
* @param {Object} libraryItem
|
* @param {Object} libraryItem
|
||||||
|
* @param {number} contextId
|
||||||
*/
|
*/
|
||||||
const selectLibraryItem = (libraryItem) => {
|
const selectLibraryItem = (libraryItem, contextId) => {
|
||||||
const tex = libraryItem.getAttribute('data-tex');
|
const tex = libraryItem.getAttribute('data-tex');
|
||||||
const input = currentForm.querySelector(Selectors.elements.equationTextArea);
|
const input = currentForm.querySelector(Selectors.elements.equationTextArea);
|
||||||
let oldValue;
|
let oldValue;
|
||||||
@ -162,13 +165,14 @@ const selectLibraryItem = (libraryItem) => {
|
|||||||
|
|
||||||
input.selectionStart = input.selectionEnd = focusPoint;
|
input.selectionStart = input.selectionEnd = focusPoint;
|
||||||
|
|
||||||
updatePreview();
|
updatePreview(contextId);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the preview section.
|
* Update the preview section.
|
||||||
|
* @param {number} contextId
|
||||||
*/
|
*/
|
||||||
const updatePreview = () => {
|
const updatePreview = (contextId) => {
|
||||||
const textarea = currentForm.querySelector(Selectors.elements.equationTextArea);
|
const textarea = currentForm.querySelector(Selectors.elements.equationTextArea);
|
||||||
const preview = currentForm.querySelector(Selectors.elements.preview);
|
const preview = currentForm.querySelector(Selectors.elements.preview);
|
||||||
const prefix = '';
|
const prefix = '';
|
||||||
@ -206,7 +210,7 @@ const updatePreview = () => {
|
|||||||
equation = prefix + equation.substring(0, currentPos) + cursorLatex + equation.substring(currentPos);
|
equation = prefix + equation.substring(0, currentPos) + cursorLatex + equation.substring(currentPos);
|
||||||
|
|
||||||
equation = Selectors.delimiters.start + ' ' + equation + ' ' + Selectors.delimiters.end;
|
equation = Selectors.delimiters.start + ' ' + equation + ' ' + Selectors.delimiters.end;
|
||||||
TinyEquationRepository.filterEquation(1, equation).then((data) => {
|
TinyEquationRepository.filterEquation(contextId, equation).then((data) => {
|
||||||
preview.innerHTML = data.content;
|
preview.innerHTML = data.content;
|
||||||
notifyFilter(preview);
|
notifyFilter(preview);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user