Loading documentation/docs/plugins.md +10 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,16 @@ Voici un exemple de configuration du plugin de recherche : * **backToTextId**: xpath à suivre pour les liens de retour au texte sur les éléments de résultat ### EAD basket CSS et JS importés de base dans une édition TEI (depuis le template HTML). Ne doit donc pas être ajouté à la liste des plugins déclarés dans la configuration de l'édition. ### Side toc Doit être déclaré dans une édition EAD. ## Plugins et dépendances Javascript Certains plugins ont des dépendances vers des librairies js (ex : *img_viewer* requiert *OpenSeadragon*). Loading plugins-available/default/side_toc/side_toc.js +22 −1 Original line number Diff line number Diff line function highlightTreeNode(id) { import {Plugin} from '../../core/ui/js/Plugin.js'; class SideTocPlugin extends Plugin{ constructor(name) { super(name); } run(){ console.log("plugin side toc running"); if(document.getElementById('text') && document.getElementById(fragmentId)){ this.highlightTreeNode('details_'+fragmentId) } } highlightTreeNode(id) { let selected_details = document.getElementById(id); if (selected_details) { selected_details.setAttribute("open", "open"); Loading @@ -18,3 +35,7 @@ function highlightTreeNode(id) { selected_details.scrollIntoView({block: "center"}); } } } MAX.addPlugin(new SideTocPlugin('SideToc')); rxq/html.xqm +5 −5 Original line number Diff line number Diff line Loading @@ -133,18 +133,18 @@ as element(script)* let $pluginsFolder := file:parent(file:parent(static-base-uri())) || $max.cons:PLUGIN_FOLDER_NAME let $pluginsJS := for $plugin in max.config:getPluginNameList($projectId) for $file in file:list($pluginsFolder || "/" || $plugin, true(), "*.js") for $file in file:list($pluginsFolder || "/" || $plugin, true(), $plugin||".js") let $publicjs := max.config:getBaseURI() || "plugins/" || $plugin || '/' || substring-before($file, ".") || ".js" return <script type="module" src="{$publicjs}"></script> let $envJS := if (max.config:getXMLFormat($projectId) = $max.cons:EAD) then () (: TODO include Sortable.js and ead.js :) else () (: let $envJS := if (max.config:getXMLFormat($projectId) = $max.cons:EAD):) (: then () :)(: TODO include Sortable.js and ead.js :) (: else ():) return ($envJS, $projectJS, $pluginsJS) return ($projectJS, $pluginsJS) }; Loading tools/ead_edition_conf_tmpl.xml +0 −7 Original line number Diff line number Diff line Loading @@ -8,13 +8,6 @@ <plugins> <plugin name="side_toc"/> <plugin name="ead_basket"> <parameters> <parameter key="CIRCE_ENDPOINT" value="https://..."/> <parameter key="CIRCE_SECRET" value="..."/> <parameter key="CIRCE_APP_UUID" value="..."/> </parameters> </plugin> </plugins> </edition> ui/js/ead.js +0 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,6 @@ function initBasketCheckbox(project_id, doc_name, cid) { async function initEADPage() { let textElement = document.getElementById('text') if(textElement){ highlightTreeNode("details_" + fragmentId);//side_toc plugin's function initBasketCheckbox(projectId, route, fragmentId); } if(projectId) { // should be declared globally in page Loading Loading
documentation/docs/plugins.md +10 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,16 @@ Voici un exemple de configuration du plugin de recherche : * **backToTextId**: xpath à suivre pour les liens de retour au texte sur les éléments de résultat ### EAD basket CSS et JS importés de base dans une édition TEI (depuis le template HTML). Ne doit donc pas être ajouté à la liste des plugins déclarés dans la configuration de l'édition. ### Side toc Doit être déclaré dans une édition EAD. ## Plugins et dépendances Javascript Certains plugins ont des dépendances vers des librairies js (ex : *img_viewer* requiert *OpenSeadragon*). Loading
plugins-available/default/side_toc/side_toc.js +22 −1 Original line number Diff line number Diff line function highlightTreeNode(id) { import {Plugin} from '../../core/ui/js/Plugin.js'; class SideTocPlugin extends Plugin{ constructor(name) { super(name); } run(){ console.log("plugin side toc running"); if(document.getElementById('text') && document.getElementById(fragmentId)){ this.highlightTreeNode('details_'+fragmentId) } } highlightTreeNode(id) { let selected_details = document.getElementById(id); if (selected_details) { selected_details.setAttribute("open", "open"); Loading @@ -18,3 +35,7 @@ function highlightTreeNode(id) { selected_details.scrollIntoView({block: "center"}); } } } MAX.addPlugin(new SideTocPlugin('SideToc'));
rxq/html.xqm +5 −5 Original line number Diff line number Diff line Loading @@ -133,18 +133,18 @@ as element(script)* let $pluginsFolder := file:parent(file:parent(static-base-uri())) || $max.cons:PLUGIN_FOLDER_NAME let $pluginsJS := for $plugin in max.config:getPluginNameList($projectId) for $file in file:list($pluginsFolder || "/" || $plugin, true(), "*.js") for $file in file:list($pluginsFolder || "/" || $plugin, true(), $plugin||".js") let $publicjs := max.config:getBaseURI() || "plugins/" || $plugin || '/' || substring-before($file, ".") || ".js" return <script type="module" src="{$publicjs}"></script> let $envJS := if (max.config:getXMLFormat($projectId) = $max.cons:EAD) then () (: TODO include Sortable.js and ead.js :) else () (: let $envJS := if (max.config:getXMLFormat($projectId) = $max.cons:EAD):) (: then () :)(: TODO include Sortable.js and ead.js :) (: else ():) return ($envJS, $projectJS, $pluginsJS) return ($projectJS, $pluginsJS) }; Loading
tools/ead_edition_conf_tmpl.xml +0 −7 Original line number Diff line number Diff line Loading @@ -8,13 +8,6 @@ <plugins> <plugin name="side_toc"/> <plugin name="ead_basket"> <parameters> <parameter key="CIRCE_ENDPOINT" value="https://..."/> <parameter key="CIRCE_SECRET" value="..."/> <parameter key="CIRCE_APP_UUID" value="..."/> </parameters> </plugin> </plugins> </edition>
ui/js/ead.js +0 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,6 @@ function initBasketCheckbox(project_id, doc_name, cid) { async function initEADPage() { let textElement = document.getElementById('text') if(textElement){ highlightTreeNode("details_" + fragmentId);//side_toc plugin's function initBasketCheckbox(projectId, route, fragmentId); } if(projectId) { // should be declared globally in page Loading