diff --git a/js/controllers/menu_controller.js b/js/controllers/menu_controller.js index 2df4cbb..ebb2ea2 100644 --- a/js/controllers/menu_controller.js +++ b/js/controllers/menu_controller.js @@ -249,36 +249,4 @@ export default class extends Controller { domainList.innerHTML += domainItem; } } - /** - * - * @param {Event} event - */ - showSemanticModal(event) { - - console.debug('I have been triggered...'); - - const modal = document.querySelector('#semanticModal'); - const title = modal.querySelector('.modal-title'); - // Clear any existing content first - title.innerHTML = ''; - title.innerHTML = event.content?.title; - const body = modal.querySelector('.modal-body'); - body.innerHTML = ''; - const contentType = event.content?.type; - - const content = document.createElement(contentType); - if (contentType === 'img') { - content.src = event.content?.imgSrc; - content.classList.add('img-fluid'); - } - - const description = document.createElement('p'); - description.textContent = event.content?.description; - description.classList.add('py-3', 'my-2', 'fst-italic'); - - body.appendChild(content); - body.appendChild(description); - - bootstrap.Modal.getOrCreateInstance(modal).show(); - } } diff --git a/js/controllers/modal_controller.js b/js/controllers/modal_controller.js new file mode 100644 index 0000000..f474fc9 --- /dev/null +++ b/js/controllers/modal_controller.js @@ -0,0 +1,39 @@ + +import { Controller } from "@hotwired/stimulus"; + +export default class extends Controller { + static targets = ['modal']; + + connect() { + console.log('#modal controller connected'); + } + /** + * + * @param {Event} event + */ + showSemanticModal(event) { + const modal = this.modalTarget; + const title = modal.querySelector('.modal-title'); + // Clear any existing content first + title.innerHTML = ''; + title.innerHTML = event.content?.title; + const body = modal.querySelector('.modal-body'); + body.innerHTML = ''; + const contentType = event.content?.type; + + const content = document.createElement(contentType); + if (contentType === 'img') { + content.src = event.content?.imgSrc; + content.classList.add('img-fluid'); + } + + const description = document.createElement('p'); + description.textContent = event.content?.description; + description.classList.add('py-3', 'my-2', 'fst-italic'); + + body.appendChild(content); + body.appendChild(description); + + bootstrap.Modal.getOrCreateInstance(modal).show(); + } +} \ No newline at end of file diff --git a/js/utils/stimulus.js b/js/utils/stimulus.js index 1a5336e..680d90e 100644 --- a/js/utils/stimulus.js +++ b/js/utils/stimulus.js @@ -3,6 +3,7 @@ import SettingController from '../controllers/settings_controller.js'; import ToolbarController from '../controllers/toolbar_controller.js'; import ClipperController from '../controllers/clipper_controller.js'; import MenuController from '../controllers/menu_controller.js'; +import ModalController from '../controllers/modal_controller.js'; /** * Initialize Stimulus controllers @@ -13,4 +14,5 @@ export function initStimulus() { Stimulus.register("toolbar", ToolbarController); Stimulus.register("clipper", ClipperController); Stimulus.register("menu", MenuController); + Stimulus.register("modal", ModalController); } \ No newline at end of file diff --git a/scenes/ssgp/index.html b/scenes/ssgp/index.html index 4c5099e..c5a07b9 100644 --- a/scenes/ssgp/index.html +++ b/scenes/ssgp/index.html @@ -58,7 +58,7 @@ -
+