Je construis une application web en utilisant Grails. J'ai décidé d'utiliser le dojo et j'ai ajouté un menu dojo fisheye pour commencer dans le main.gsp afin qu'il soit disponible sur toutes les pages de l'application. Cela fonctionne bien pour la page (home) index.gsp, mais une fois que j'en sélectionne une autre, le menu fisheye disparaît. Si je rentre à la maison c'est là. J'ai révisé mes paramètres et tout me semble correct. Je n'utilise rien de sophistiqué, juste des choses simples. Il me manque quelque chose mais je n'arrive pas à le comprendre.Dojo Fisheye dans l'application Grails
est ici le code dans mon main.gsp simplifié pour plus de clarté:
<html>
<head>
...
<g:layoutHead />
<!-- use dojo library ... this has not effect at all -->
<g:javascript library="dojotk"/>
<!-- Load Dojo -->
<script type="text/javascript" src="js/dojotk/dojo/dojo.js"
djConfig="parseOnLoad:true, isDebug:false"></script>
<!-- need fisheye -->
<g:javascript type="text/javascript">
dojo.require("dojox.widget.FisheyeList");
</g:javascript>
<!-- required css for dojo fisheye -->
<style type="text/css">@import "js/dojotk/dojox/widget/FisheyeList/FisheyeList.css";</style>
</head>
<body >
...
<!-- fisheye bar -->
<div id="fisheyebar"><g:render template="/common/fisheyebar"/></div>
<g:layoutBody />
</body>
Et voici le _fisheyebar.gsp
<g:javascript>
function load_app(target){
window.location.href=target
}
</g:javascript>
<center >
<div class="outerbar">
<div dojoType="dojox.widget.FisheyeList"
itemWidth="50" itemHeight="50"
itemMaxWidth="200" itemMaxHeight="200"
orientation="horizontal"
effectUnits="2"
itemPadding="10"
attachEdge="top"
labelEdge="bottom"
>
<div dojoType="dojox.widget.FisheyeListItem"
onClick= "load_app('${createLinkTo(dir:'/something')}');"
iconsrc="images/icon_something.png" caption="Web Browser">
</div>
.....
</div>
</div> <!-- outbar -->
</center>
Toutes les pages, y compris le index.gsp ont les éléments suivants:
<head>
<title>some titel</title>
<meta name="layout" content="main" />
</head>
S'il vous plaît ne pas que l'utilisation du modèle (_fisheyebar) n'est pas la cause, j'ai mis le code directement dans le principal et a eu le même effet. Alors qu'est-ce qui me manque?
Non, je ne l'ai pas fait. Je n'avais pas ce besoin. Je viens de mettre des URL absolues au lieu de celles relatives. J'ai utilisé Firebug pour regarder ce qui se passait et puis j'ai vu les mauvais appels d'URL. –