WebView Dashlet & Navigation hors de la dashlet
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-07-2016 10:42 AM
Bonjour à tous,
J'ai défini dans le dashboard d'un site share, une webview affichant une page HTML avec des liens (raccourcis) vers quelques URL spécifiques dans un site share ne permettait plus la navigation
Les liens étaient défini comme <a href="/share/mysite/…." target="_top">lien</a> afin d'ouvrir les liens dans le browser et non dans la WebView dashlet.
J'ai récemment migré l'instance alfresco community 5.0.d vers 5.1.
Suite à l'upgrade, le lien ne permettait plus la navigation …
Si j'enlevais le paramètre "target=…" du lien, les liens refonctionnaient mais dans la dashlet (iframe)
après 2/3 checks, il semblerait que ce soit du à des parametres liés aux iframes dans les javascripts
<ul><li>webapps/share/components/dashlets/webview.js</li><li>webapps/share/components/dashlets/webview-min.js</li></ul>
qui rajoute le mode sandbox aux iframes via
En rajoutant "allow-top-navigation" dans le setAttribute, la navigation refonctionne.
même si cette solution fonctionne, je ne l'aime pas car il faut modifier des fichiers "alfresco" qui seront réécrasés par un upgrade/redéploiement du war …
Donc, ma question est :
Comment faire pour que liens fonctionnent depuis une dashlet sans modification des Javascript de base d'alfresco ?
Merci
Sylvain
J'ai défini dans le dashboard d'un site share, une webview affichant une page HTML avec des liens (raccourcis) vers quelques URL spécifiques dans un site share ne permettait plus la navigation
Les liens étaient défini comme <a href="/share/mysite/…." target="_top">lien</a> afin d'ouvrir les liens dans le browser et non dans la WebView dashlet.
J'ai récemment migré l'instance alfresco community 5.0.d vers 5.1.
Suite à l'upgrade, le lien ne permettait plus la navigation …
Si j'enlevais le paramètre "target=…" du lien, les liens refonctionnaient mais dans la dashlet (iframe)
après 2/3 checks, il semblerait que ce soit du à des parametres liés aux iframes dans les javascripts
<ul><li>webapps/share/components/dashlets/webview.js</li><li>webapps/share/components/dashlets/webview-min.js</li></ul>
qui rajoute le mode sandbox aux iframes via
this.widgets.iframe.setAttribute("sandbox","allow-same-origin allow-forms allow-scripts");
En rajoutant "allow-top-navigation" dans le setAttribute, la navigation refonctionne.
même si cette solution fonctionne, je ne l'aime pas car il faut modifier des fichiers "alfresco" qui seront réécrasés par un upgrade/redéploiement du war …
Donc, ma question est :
Comment faire pour que liens fonctionnent depuis une dashlet sans modification des Javascript de base d'alfresco ?
Merci
Sylvain
Labels:
- Labels:
-
Archive
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-10-2016 08:49 AM
Bonjour,
Cette configuration pour les iframes a surement été mis en place pour des raisons de sécurité. Avant de le désactiver il est important que vous ayez conscience de cela.
Avec cela en-tête, vous serez en mesure de conserver vos modifications en mettant en place une extension pour l'application share qui lors de son déploiement sur le WAR Alfresco ira surcharger les fichiers natifs Alfresco. De cette manière votre modifications survivra au re-déploiement du WAR.
Par contre lors de monté de version, il sera important de mettre à jour cette extension pour prendre en compte les possible changement sur ces fichiers.
Pour le développement d'extension je vous conseille la documentation Alfresco qui présente le SDK maven : http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html
Yann
Cette configuration pour les iframes a surement été mis en place pour des raisons de sécurité. Avant de le désactiver il est important que vous ayez conscience de cela.
Avec cela en-tête, vous serez en mesure de conserver vos modifications en mettant en place une extension pour l'application share qui lors de son déploiement sur le WAR Alfresco ira surcharger les fichiers natifs Alfresco. De cette manière votre modifications survivra au re-déploiement du WAR.
Par contre lors de monté de version, il sera important de mettre à jour cette extension pour prendre en compte les possible changement sur ces fichiers.
Pour le développement d'extension je vous conseille la documentation Alfresco qui présente le SDK maven : http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html
Yann
