cancel
Showing results for 
Search instead for 
Did you mean: 

Post-generation script modifying the area piece of code in website pages ?

Solved
New Contributor

Post-generation script modifying the area piece of code in website pages ?

Bonjour,

 

Soit un site web publiant les processus métiers, acteurs, processus organisationnels et références externes d'un périmètre donné (confidentialité activée).

Les références externes sont affichées dans les diagrammes, stockées et accessibles dans une GED.

 

Notre besoin est que la référence externe s'affiche dans une pop-up lorsqu'elle est cliquée dans un diagramme, mais qu'un clic sur les autres objets du diagramme permette de continuer à naviguer dans la même fenêtre.

 

La réponse que j'ai obtenue pour le moment est que cela n'est pas paramétrable dans le site-web type (je n'ai pas trouvé non plus comment faire).

 

Est-ce que ce comportement souhaité pourrait être obtenu par un script post-génération ?

 

Le site suivrait les étapes suivantes :

1°) ouverture des pages web du site des objets dont l'onglet diagramme n'est pas vide

2°) recherche des lignes area du bloc "map" contenant une adresse web externe (par exemple : find href="https://predica.etc........)

3°) pour chaque ligne trouvée, remplacement de target="_self" par target="_blank"

4°) enregistrement et fermeture de la page

 

A quoi ressemblerait un tel script ?

Si un script post-génération dans Mega ne peut pas le faire, est-ce qu'une telle routine est intégrable dans une macro word ou excel ?

 

Merci à tous pour vos retours !

 

Jean-Michel

3 Replies
Highlighted
Contributor

Re: Post-generation script modifying the area piece of code in website pages ?

Hello Jean-Michel,

 

For your needs, I suggest you to use javascript instead of a post generating macro.

The idea is to write a function that browse the code of the html page to find area tags.

For each of them, if the URL start with https://predica/ then the target is specified as _blank instead of _self.

So, concretly, the javascript could be something like that :

 

function OpenLinkInNewWindow() {

    var links = document.getElementsByTagName("area");

    for (var i=0; i<links.length; i++) {

        if (links[i].href.indexOf("https://predica") > -1) {

            links[i].target="_blank";

        }

    }

}

 

Insert this script at the end of your html page and call the function on the onload event of the body tag like that :

 

<body onload="OpenLinkInNewWindow();">

 

Regards,

Jean-Yves Herpet

Best regards,
Jean-Yves
New Contributor

Re: Post-generation script modifying the area piece of code in website pages ?

Same topic, in tentative English: Smiley Wink

 

Consider a website publishing business processes, org-units, organisational processes and external references of a given perimeter and confidentiality filtering.

The external references are visible in diagrams, they are stored and available in a Qualnet-webbased-database.

 

Our need concerning the navigation within the website is as follows:

the external reference should open in a new browser-window, when clicked in a diagram, but a click on other diagram objects should let the user continue his navigation within the same orignal browser-window.

 

As for now, the answer I got was that this behavior cannot be parametrised in a website-template (I would not know how to do that myself either).

 

But I figure out that a post-generation script could help.

 

The script would behave as follows:

 

1) Open website pages of objects whose diagram tab is not empty

2) Search area lines of the "map" block which contain an external web-adress (p.e : find href="https://predica.etc........)

3) For each corresponding line, replace  target="_self" by target="_blank"

4) Save the page code and close the page

 

What would such a script look like?

If a Mega post-generation script cannot do it, could it be done with a macro in MS-Word or MS-Excel?

 

Thanks a lot in advance for your help

 

New Contributor

Re: Post-generation script modifying the area piece of code in website pages ?

Hello Jean-Yves,

 

the script you proposed works well.

Following your advice, we integrated it in the website template as an independent js file, which is then called by the descriptor for the Business Process metaclass.

As you noticed,  the script does not work when sorttable.js is called in the same page.

 

Thanks a lot for your help !