Skip to content

Commit

Permalink
Fixed issue with cached observer for image compressor.
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelsharman committed Jun 25, 2024
1 parent b7790c7 commit 1771649
Show file tree
Hide file tree
Showing 40 changed files with 403 additions and 211 deletions.
2 changes: 1 addition & 1 deletion dist/authoring/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Assessment_Activity.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Assessment_App.html

Large diffs are not rendered by default.

170 changes: 1 addition & 169 deletions docs/module-Assessment_Diagnostics.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Assessment_Items.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Assessment_Player.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Assessment_Questions.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Assessment_Sections.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Authoring_App.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Authoring_Diagnostics.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Authoring_Navigation.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Authoring_Widgets.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_ariaCountOnNav.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_blockGrammarChecks.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_columnResizer.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_hideAlternatives.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_keyboardShortcuts.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_magnifier.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_mcqLabelPrefix.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_networkStatus.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_pageOverlay.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_renderPDF.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_resetResponse.html

Large diffs are not rendered by default.

298 changes: 298 additions & 0 deletions docs/module-Extensions_Assessment_themes_juniorQuest.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_toggleTimer.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Assessment_whiteNoise.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Authoring_contentTabs.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Authoring_essayMaxLength.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Authoring_imageUploader.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Authoring_renderPDF.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Extensions_Authoring_ssmlEditor.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Utils_Logger.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/module-Utils_Validation.html

Large diffs are not rendered by default.

49 changes: 47 additions & 2 deletions src/assessment/extensions/ui/themes/juniorQuest/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,49 @@ import './sass/index.scss';
* --
*
* This script loads a custom UI theme for Items API.
*
* Use the following custom region configuration to load this theme:
*
* ```
* {
* "config": {
* "regions": {
* "bottom-left": [
* {
* "type": "previous_button",
* "show_label_option": true
* }
* ],
* "bottom-right": [
* {
* "type": "next_button"
* }
* ],
* "items": [
* {
* "type": "items_progress_element",
* "shown": false
* },
* {
* "type": "slider_element"
* }
* ],
* "right": [
* {
* "type": "verticaltoc_element"
* }
* ],
* "top-left": [
* {
* "type": "title_element"
* }
* ]
* }
* }
* }
* ```
*
* <p><img src="https://raw.githubusercontent.com/michaelsharman/LT/main/src/assets/images/themes/theme-juniorquest.png" alt="" width="900"></p>
* @module Extensions/Assessment/themes/juniorQuest
*/

Expand All @@ -15,12 +58,14 @@ const state = {
};

/**
* Loads the `Sydney` theme for Items API (the player).
* Loads the `Junior Quest` theme for Items API (the player).
*
*
* @example
* import { LT } from '@caspingus/lt/src/assessment/core';
*
* LT.init(itemsApp); // Set up LT with the Items API application instance variable
* LT.extensions.themes.sydney.run();
* LT.extensions.themes.juniorQuest.run();
* @since 2.13.0
*/
export function run() {
Expand Down
Binary file added src/assets/images/themes/theme-juniorquest.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 22 additions & 5 deletions src/authoring/extensions/ui/imageUploader/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ import spinner from './assets/spinner.svg';
* @module Extensions/Authoring/imageUploader
*/

const LOG_LEVEL = 'ERROR';
const LOG_LEVEL = 'DEBUG';

const state = {
observer: null,
Expand Down Expand Up @@ -162,14 +162,15 @@ export function run(security, request, options = {}) {
function setupModalObserver() {
logger.debug('setupModalObserver()', LOG_LEVEL);

clearObserver();

const callback = mutationsList => {
for (const mutation of mutationsList) {
if (mutation.type === 'childList') {
const modal = document.querySelector('[data-authorapi-selector="asset-uploader-iframe-outlet"]');
if (modal) {
logger.debug('Disconnecting observer', LOG_LEVEL);
state.observer.disconnect();
state.observedElements.clear();
clearObserver();
setupUploderUI();
break;
}
Expand All @@ -182,6 +183,8 @@ function setupModalObserver() {
state.observer = new MutationObserver(callback);

activateObserver();
} else {
logger.debug('Observed elements full', LOG_LEVEL);
}
}

Expand All @@ -192,15 +195,26 @@ function setupModalObserver() {
* @ignore
*/
function activateObserver() {
logger.debug('Looking to activate observer', LOG_LEVEL);
const parentElement = document.querySelector('.lrn-author-item');

if (!state.observedElements.has(parentElement)) {
logger.debug('Activate observer', LOG_LEVEL);
logger.debug('Activated observer', LOG_LEVEL);
state.observer.observe(parentElement, { childList: true, subtree: true });
state.observedElements.set(parentElement, state.observer);
}
}

/**
* Clears the modal observer and disconnects it.
* @since 2.13.0
* @ignore
*/
function clearObserver() {
if (state.observer) state.observer.disconnect();
state.observedElements.clear();
}

/**
* Hides the Learnosity upload UI (iframe) and
* injects the custom uploader.
Expand Down Expand Up @@ -445,9 +459,12 @@ function uploadImage(fileId) {
function prepareModalButtons(modalParent) {
const elCloseButtons = ['lrn-modal-button-close', 'lrn-btn-default', 'lrn-btn-primary-legacy'];

removeHandler();

for (let btn of elCloseButtons) {
let elBtn = modalParent.querySelector(`.lrn-modal-dialog button.${btn}`);
if (elBtn) {
logger.debug(`Adding clickHanders for: ${btn}`, LOG_LEVEL);
elBtn.addEventListener('click', clickHandler);
}
}
Expand All @@ -466,7 +483,7 @@ function prepareModalButtons(modalParent) {
for (let btn of elCloseButtons) {
let elBtn = modalParent.querySelector(`.lrn-modal-dialog button.${btn}`);
if (elBtn) {
logger.debug('Removed click event', LOG_LEVEL);
logger.debug('Removed clickHandler', LOG_LEVEL);
elBtn.removeEventListener('click', clickHandler);
}
}
Expand Down

0 comments on commit 1771649

Please sign in to comment.