|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
[gatewiki-commits] SF.net SVN: gatewiki:[1738] trunkRevision: 1738
http://gatewiki.svn.sourceforge.net/gatewiki/?rev=1738&view=rev Author: ian_roberts Date: 2009-10-23 19:53:17 +0000 (Fri, 23 Oct 2009) Log Message: ----------- Working on replacing the jquery javascript menus with a pure CSS version that behaves the same. More or less done, need to test more on IE, and need to update the annots plugin to match. As part of this process, I've changed things so that the <div id="main"> is part of the layout, not the content, and updated all the gsps to conform with this. Markup for menus is now different, and I need to document this in the user guide. Modified Paths: -------------- trunk/cow/grails-app/views/admin/admin.gsp trunk/cow/grails-app/views/auth/login.gsp trunk/cow/grails-app/views/auth/unauthorized.gsp trunk/cow/grails-app/views/error.gsp trunk/cow/grails-app/views/layouts/cowpage.gsp trunk/cow/grails-app/views/page/edit/edit.gsp trunk/cow/grails-app/views/page/edit/preview.gsp trunk/cow/grails-app/views/page/newpage/confirm.gsp trunk/cow/grails-app/views/page/show.gsp trunk/cow/grails-app/views/register/create.gsp trunk/cow/grails-app/views/search/results.gsp trunk/cow/grails-app/views/shared/sventon.gsp trunk/cow/grails-app/views/user/password.gsp trunk/cow/grails-app/views/user/show.gsp trunk/cow/grails-app/views/user/user.gsp trunk/cow/src/templates/war/web.xml trunk/cow/web-app/css/page.css trunk/site-plugins/gau/grails-app/views/layouts/cowguest.gsp Added Paths: ----------- trunk/cow/web-app/_images/menu/ trunk/cow/web-app/_images/menu/csshover.htc trunk/cow/web-app/_images/menu/down.gif trunk/cow/web-app/_images/menu/right.gif Modified: trunk/cow/grails-app/views/admin/admin.gsp =================================================================== --- trunk/cow/grails-app/views/admin/admin.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/admin/admin.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -5,8 +5,6 @@ <g:cowTitle pageName="Administration" /> </head> <body> - <div id="main"> - <h1>CoW: Administration</h1> <hr/> @@ -97,6 +95,5 @@ <hr/> - </div> </body> </html> Modified: trunk/cow/grails-app/views/auth/login.gsp =================================================================== --- trunk/cow/grails-app/views/auth/login.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/auth/login.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -6,7 +6,7 @@ </head> <body> -<div id="main" align="center"> +<div align="center"> <g:if test="${flash.message}"> <div class="message">${flash.message}</div> Modified: trunk/cow/grails-app/views/auth/unauthorized.gsp =================================================================== --- trunk/cow/grails-app/views/auth/unauthorized.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/auth/unauthorized.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -10,13 +10,9 @@ </g:javascript> </head> <body> - <div id="main"> - <h2>Error 403: permission denied</h2> <p>You don't have permission to view this page.</p> <p>Try logging in under a different account?</p> - - </div> </body> </html> Modified: trunk/cow/grails-app/views/error.gsp =================================================================== --- trunk/cow/grails-app/views/error.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/error.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -6,7 +6,6 @@ <g:cowTitle pageName="Server Error" /> </head> <body> - <div id="main"> <h1>Server Error :-(</h1> <g:if test="${flash.message}"> @@ -44,6 +43,5 @@ </g:if> </div> </g:if> - </div> </body> </html> Modified: trunk/cow/grails-app/views/layouts/cowpage.gsp =================================================================== --- trunk/cow/grails-app/views/layouts/cowpage.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/layouts/cowpage.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -10,6 +10,16 @@ <link rel="stylesheet" href="${createLinkTo(dir:'css',file:'prototip/prototip.css')}" /> + <!--[if lt IE 7]> + <style type="text/css" media="screen"> + body { + behavior: url('<g:resource dir="_images/menu" file="csshover.htc" />'); + font-size: 100%; + } + + ul.menu li a {height: 1%;} + </style> + <![endif]--> <g:javascript src="prototype/prototype.js"/> <g:javascript src="prototype/scriptaculous.js?load=effects"/> @@ -22,23 +32,6 @@ if(setFocus) document.searchForm.searchBox.focus(); } </script> - - <!-- JQuery menus ****************************************** --> - <link rel="stylesheet" href="${createLinkTo(dir:'css',file:'jquery/jqueryslidemenu.css')}" /> - <!--[if lte IE 7]> - <style type="text/css">html .jqueryslidemenu{height: 1%;} /*Holly Hack for IE7 and below*/</style> - <![endif]--> - <g:javascript src="jquery/jquery.min.js"/> -<!-- TODO can this move into the jqueryslidemenu.js file? --> - <script type="text/javascript"> - jQuery.noConflict(); - var arrowimages={ // specify full URL to down and right arrow images (23 is padding-right to add to top level LIs with drop downs): - down:['downarrowclass', '${createLinkTo(dir: '_images/jquery', file:'down.gif')}', 23], - right:['rightarrowclass', '${createLinkTo(dir: '_images/jquery', file:'right.gif')}'] - } - </script> - <g:javascript src="jquery/jqueryslidemenu.js"/> - <!-- ****************************************************** --> </head> <body onload="focusOnSearch(${gate.cow.CowUtils.getConfig().gate.cow.solr.run})"> @@ -104,23 +97,15 @@ <!-- header menus --> <div id="header"> - <div id="myslidemenu" class="jqueryslidemenu"> - ${header} - </div> - <noscript><div class="errors">${header} <b>Note: these menus will work - better with Javascript enabled!</b></div></noscript> + ${header} </div> <!-- sep, left/right bars, body and footer --> <div id="topSeparator"> </div> - <div id="leftBar"> - <div id="myslidemenuhoriz" class="jqueryslidemenuhoriz"> - ${leftBar} - </div> - <noscript><div class="errors">${leftBar} <b>Note: these menus will work - better with Javascript enabled!</b></div></noscript> + <div id="leftBar">${leftBar}</div> + <div id="main" class="${ leftBar ? 'wideBorder' : 'noBorder' }"> + <g:layoutBody /> </div> - <g:layoutBody /> <div id="rightBar">${rightBar}</div> <div id="footer">${footer}</div> Modified: trunk/cow/grails-app/views/page/edit/edit.gsp =================================================================== --- trunk/cow/grails-app/views/page/edit/edit.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/page/edit/edit.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -9,7 +9,6 @@ </g:if> </head> <body> - <div id="main"> <h1>Edit wiki page: ${pagePath}</h1> <g:render template="/messages" model="${pageScope.variables}" /> @@ -80,6 +79,5 @@ </div> </g:if> - </div> </body> </html> Modified: trunk/cow/grails-app/views/page/edit/preview.gsp =================================================================== --- trunk/cow/grails-app/views/page/edit/preview.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/page/edit/preview.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -5,7 +5,6 @@ <g:cowTitle pageName="Preview ${requestPath}" /> </head> <body> - <div id="main"> <g:render template="/messages" model="${pageScope.variables}" /> <form action="${pageURI(action:'edit', id:id, linkPath:pagePath)}" method="post"> @@ -22,7 +21,6 @@ </form> <g:render template="/pageBody" model="['isPlainText':isPlainText, 'pageBody':pageBody]" /> - </div> </body> </html> Modified: trunk/cow/grails-app/views/page/newpage/confirm.gsp =================================================================== --- trunk/cow/grails-app/views/page/newpage/confirm.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/page/newpage/confirm.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -6,10 +6,8 @@ <title>CoW: ${pagePath}</title> </head> <body> - <div id="main"> <g:render template="/messages" model="${pageScope.variables}" /> <g:render template="/pageBody" model="['isPlainText':isPlainText, 'pageBody':pageBody]" /> - </div> <script type="text/javascript"> $('topPageSpecific').innerHTML = "${g.render(template:'newpageConfirm', model:pageScope.variables).encodeAsJavaScript()}" </script> Modified: trunk/cow/grails-app/views/page/show.gsp =================================================================== --- trunk/cow/grails-app/views/page/show.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/page/show.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -15,10 +15,8 @@ </g:javascript> </head> <body> - <div id="main"> <g:render template="/messages" model="${pageScope.variables}" /> <g:render template="/pageBody" model="['isPlainText':isPlainText, 'pageBody':pageBody]" /> - </div> </body> </html> Modified: trunk/cow/grails-app/views/register/create.gsp =================================================================== --- trunk/cow/grails-app/views/register/create.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/register/create.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -21,6 +21,7 @@ </g:if> + <div style="clear:both"> <h1>CoW: Registration</h1> <p>To register, please choose a username and password, and enter the @@ -117,5 +118,6 @@ </tbody> </table> </g:form> + </div> </body> </html> Modified: trunk/cow/grails-app/views/search/results.gsp =================================================================== --- trunk/cow/grails-app/views/search/results.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/search/results.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -6,7 +6,6 @@ </head> <body> - <div id="main"> <g:render template="/messages" model="${pageScope.variables}" /> <!-- show result statistics --> @@ -56,6 +55,5 @@ <td><img src="${createLinkTo(dir:'_images',file:'logo-colour-powered-small.png')}"/></td> </tr></table> - </div> </body> </html> Modified: trunk/cow/grails-app/views/shared/sventon.gsp =================================================================== --- trunk/cow/grails-app/views/shared/sventon.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/shared/sventon.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -10,7 +10,6 @@ </g:javascript> </head> <body> - <div id="main"> <g:render template="/messages" model="${pageScope.variables}" /> <div> <script type="text/javascript"> @@ -24,7 +23,6 @@ </iframe> </noscript> </div> - </div> </body> </html> Modified: trunk/cow/grails-app/views/user/password.gsp =================================================================== --- trunk/cow/grails-app/views/user/password.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/user/password.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -20,8 +20,6 @@ </div> </g:if> - <div id="main"> - <h1>Change password</h1> @@ -74,6 +72,5 @@ </table> </g:form> - </div> </body> </html> Modified: trunk/cow/grails-app/views/user/show.gsp =================================================================== --- trunk/cow/grails-app/views/user/show.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/user/show.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -20,7 +20,6 @@ </div> </g:if> - <div id="main"> <h1>User profile</h1> <g:form> @@ -69,7 +68,5 @@ </g:form> - </div> - </body> </html> Modified: trunk/cow/grails-app/views/user/user.gsp =================================================================== --- trunk/cow/grails-app/views/user/user.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/grails-app/views/user/user.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -20,8 +20,6 @@ </div> </g:if> - <div id="main"> - <h1>Edit user details</h1> <g:form> @@ -96,7 +94,5 @@ </table> </g:form> - </div> - </body> </html> Modified: trunk/cow/src/templates/war/web.xml =================================================================== --- trunk/cow/src/templates/war/web.xml 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/src/templates/war/web.xml 2009-10-23 19:53:17 UTC (rev 1738) @@ -70,6 +70,12 @@ <url-pattern>*.gsp</url-pattern> </servlet-mapping> + <!-- MIME type for htc (DHTML behaviour) files for IE --> + <mime-mapping> + <extension>htc</extension> + <mime-type>text/x-component</mime-type> + </mime-mapping> + <welcome-file-list> <!-- The order of the welcome pages is important. JBoss deployment will @@ -99,4 +105,4 @@ </taglib> </jsp-config> -</web-app> \ No newline at end of file +</web-app> Added: trunk/cow/web-app/_images/menu/csshover.htc =================================================================== --- trunk/cow/web-app/_images/menu/csshover.htc (rev 0) +++ trunk/cow/web-app/_images/menu/csshover.htc 2009-10-23 19:53:17 UTC (rev 1738) @@ -0,0 +1,115 @@ +<attach event="ondocumentready" handler="parseStylesheets" /> +<script> +/** + * Whatever:hover - V1.41.050927 - hover & active + * ------------------------------------------------------------ + * (c) 2005 - Peter Nederlof + * Peterned - http://www.xs4all.nl/~peterned/ + * License - http://creativecommons.org/licenses/LGPL/2.1/ + * + * Whatever:hover is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Whatever:hover is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * Credits and thanks to: + * Arnoud Berendsen, Martin Reurings, Robert Hanson + * + * howto: body { behavior:url("csshover.htc"); } + * ------------------------------------------------------------ + */ + +var csshoverReg = /(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i, +currentSheet, doc = window.document, hoverEvents = [], activators = { + onhover:{on:'onmouseover', off:'onmouseout'}, + onactive:{on:'onmousedown', off:'onmouseup'} +} + +function parseStylesheets() { + if(!/MSIE (5|6)/.test(navigator.userAgent)) return; + window.attachEvent('onunload', unhookHoverEvents); + var sheets = doc.styleSheets, l = sheets.length; + for(var i=0; i<l; i++) + parseStylesheet(sheets[i]); +} + function parseStylesheet(sheet) { + if(sheet.imports) { + try { + var imports = sheet.imports, l = imports.length; + for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]); + } catch(securityException){} + } + + try { + var rules = (currentSheet = sheet).rules, l = rules.length; + for(var j=0; j<l; j++) parseCSSRule(rules[j]); + } catch(securityException){} + } + + function parseCSSRule(rule) { + var select = rule.selectorText, style = rule.style.cssText; + if(!csshoverReg.test(select) || !style) return; + + var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, 'on$1'); + var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, '.$2' + pseudo); + var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1]; + var affected = select.replace(/:(hover|active).*$/, ''); + var elements = getElementsBySelect(affected); + if(elements.length == 0) return; + + currentSheet.addRule(newSelect, style); + for(var i=0; i<elements.length; i++) + new HoverElement(elements[i], className, activators[pseudo]); + } + +function HoverElement(node, className, events) { + if(!node.hovers) node.hovers = {}; + if(node.hovers[className]) return; + node.hovers[className] = true; + hookHoverEvent(node, events.on, function() { node.className += ' ' + className; }); + hookHoverEvent(node, events.off, function() { node.className = node.className.replace(new RegExp('\\s+'+className, 'g'),''); }); +} + function hookHoverEvent(node, type, handler) { + node.attachEvent(type, handler); + hoverEvents[hoverEvents.length] = { + node:node, type:type, handler:handler + }; + } + + function unhookHoverEvents() { + for(var e,i=0; i<hoverEvents.length; i++) { + e = hoverEvents[i]; + e.node.detachEvent(e.type, e.handler); + } + } + +function getElementsBySelect(rule) { + var parts, nodes = [doc]; + parts = rule.split(' '); + for(var i=0; i<parts.length; i++) { + nodes = getSelectedNodes(parts[i], nodes); + } return nodes; +} + function getSelectedNodes(select, elements) { + var result, node, nodes = []; + var identify = (/\#([a-z0-9_-]+)/i).exec(select); + if(identify) return [doc.getElementById(identify[1])]; + + var classname = (/\.([a-z0-9_-]+)/i).exec(select); + var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ''); + var classReg = classname? new RegExp('\\b' + classname[1] + '\\b'):false; + for(var i=0; i<elements.length; i++) { + result = tagName? elements[i].all.tags(tagName):elements[i].all; + for(var j=0; j<result.length; j++) { + node = result[j]; + if(classReg && !classReg.test(node.className)) continue; + nodes[nodes.length] = node; + } + } return nodes; + } +</script> \ No newline at end of file Copied: trunk/cow/web-app/_images/menu/down.gif (from rev 1735, trunk/cow/web-app/_images/jquery/down.gif) =================================================================== (Binary files differ) Copied: trunk/cow/web-app/_images/menu/right.gif (from rev 1735, trunk/cow/web-app/_images/jquery/right.gif) =================================================================== (Binary files differ) Modified: trunk/cow/web-app/css/page.css =================================================================== --- trunk/cow/web-app/css/page.css 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/cow/web-app/css/page.css 2009-10-23 19:53:17 UTC (rev 1738) @@ -39,6 +39,10 @@ padding: 2px; background: #EDEDED; } +#header { + width: 100%; + float: left; +} #topSeparator { clear: both; width: 99%; @@ -53,8 +57,15 @@ } #main { float: left; - width: 80%; } +/* Trick to make the left menu background extend to the bottom of the page. + * The width and colour of this border must match the width and + * 'background-color' of the ".menu ul" rule below. + */ +.wideBorder { + border-left: 10em solid #578BB8; + padding-left: 1em; +} #rightBar { float: left; } @@ -156,3 +167,117 @@ a.step:hover, a.nextLink:hover, a.prevLink:hover, a.backlink:hover { background-color: rgb(240, 240, 240); } + +/* Menu support */ +ul.menu, ul.menu ul { + list-style: none; + background-color: #578BB8; + margin: 0; + padding: 0; +} + +ul.vertical { + /* Absolute positioning to overlay the border of the main div. */ + position: absolute; + width: 10em; +} + +ul.horizontal { + width: 100%; + position: relative; + float: left; +} + +.horizontal li { + float: left; +} + +.horizontal ul li { + width: 100%; + float: none; +} + +.menu a { + display: block; + padding: 8px 10px; + border-right: 1px solid #778; + border-left: 1px solid #778; + border-bottom: 1px solid #778; + margin: 0; + color: #000; +} + +.menu a:hover { + color: #fff; + background-color: #000; +} + +.menu li { + position: relative; + font: bold 14px Verdana; +} + +.horizontal a.submenu, +.vertical a.submenu { + padding-right: 23px; + background-position: center right; + background-repeat: no-repeat; +} + +.horizontal a.submenu { + background-image: url('../_images/menu/down.gif'); +} + +.vertical a.submenu, +.horizontal ul a.submenu { + background-image: url('../_images/menu/right.gif'); +} + +.menu ul { + position: absolute; + width: 160px; + display: none; +} + +.menu ul li { + font: normal 14px Verdana; +} + +.menu ul li a { + padding: 5px; + margin: 0; + border-top-width: 0; + border-bottom: 1px solid gray; +} + +.horizontal ul { + z-index: 500; +} + +.vertical ul { + z-index: 250; +} + +/* Pop all vertical menus and all second-level-and-beyond horizontal ones out + * to the right. First level horizontal drop-downs are already in the right + * place. + */ +.vertical ul, .horizontal ul ul { + top: 0; + left: 100%; +} + +/* The hover magic */ +.menu li:hover ul ul, +.menu ul li:hover ul ul, +.menu ul ul li:hover ul ul, +.menu ul ul ul li:hover ul ul { + display: none; +} + +.menu li:hover ul, +.menu ul li:hover ul, +.menu ul ul li:hover ul, +.menu ul ul ul li:hover ul { + display: block; +} Modified: trunk/site-plugins/gau/grails-app/views/layouts/cowguest.gsp =================================================================== --- trunk/site-plugins/gau/grails-app/views/layouts/cowguest.gsp 2009-10-22 13:44:31 UTC (rev 1737) +++ trunk/site-plugins/gau/grails-app/views/layouts/cowguest.gsp 2009-10-23 19:53:17 UTC (rev 1738) @@ -10,6 +10,16 @@ <link rel="stylesheet" href="${createLinkTo(dir:'css',file:'prototip/prototip.css')}" /> + <!--[if lt IE 7]> + <style type="text/css" media="screen"> + body { + behavior: url('<g:resource dir="_images/menu" file="csshover.htc" />'); + font-size: 100%; + } + + ul.menu li a {height: 1%;} + </style> + <![endif]--> <g:javascript src="prototype/prototype.js"/> <g:javascript src="prototype/scriptaculous.js?load=effects"/> @@ -23,21 +33,6 @@ } </script> - <!-- JQuery menus ****************************************** --> - <link rel="stylesheet" href="${createLinkTo(dir:'css',file:'jquery/jqueryslidemenu.css')}" /> - <!--[if lte IE 7]> - <style type="text/css">html .jqueryslidemenu{height: 1%;} /*Holly Hack for IE7 and below*/</style> - <![endif]--> - <g:javascript src="jquery/jquery.min.js"/> - <script type="text/javascript"> - jQuery.noConflict(); - var arrowimages={ // specify full URL to down and right arrow images (23 is padding-right to add to top level LIs with drop downs): - down:['downarrowclass', '${createLinkTo(dir: 'images/jquery', file:'down.gif')}', 23], - right:['rightarrowclass', '${createLinkTo(dir: 'images/jquery', file:'right.gif')}'] - } - </script> - <g:javascript src="jquery/jqueryslidemenu.js"/> - <!-- ****************************************************** --> </head> <body onload="focusOnSearch(${gate.cow.CowUtils.getConfig().gate.cow.solr.run})"> @@ -51,8 +46,9 @@ <!-- page links --> <span id="topPageSpecific">${pageLinks}</span> - <!-- If admin area, id will be null; do not show search box in admin area --> - <g:if test="${id}"> + <!-- Only show search box when we are viewing a page, not when we are in + the admin area --> + <g:if test="${(webRequest?.controllerName == 'page') || (webRequest?.controllerName == 'search')}"> <g:if test="${gate.cow.CowUtils.getConfig().gate.cow.solr.run}"> <g:form name="searchForm" controller="search" method="post" class="inlineForm"> @@ -102,46 +98,41 @@ <!-- header menus --> <div id="header"> - <div id="myslidemenu" class="jqueryslidemenu"> - ${header} + ${header} + <ul class="horizontal menu"> + <!-- shift the top bar over if there is a left bar --> + <g:if test="${leftBar}"> + <li style="width: 10em"> </li> + </g:if> + <li><a href="/family/" class="submenu">Products</a> <ul> - <li> </li> - <li><a href="/family/">Products</a> - <ul> - <li><a href="/family/developer.html">GATE Developer</a></li> - <li><a href="/family/embedded.html">GATE Embedded</a></li> - <li><a href="/teamware">GATE Teamware</a></li> - <li><a href="/family/process.html">The GATE Process</a></li> - <li><a href="http://gatecloud.net/">GATE Cloud</a></li> - <li><a href="http://gatewiki.sf.net/">GATE Wiki</a></li> - </ul> - </li> - <li><a href="/customisation/">Services</a></li> - <li><a href="/support.html">Support</a> - <ul> - <li><a href="/mail/">Community-based</a></li> - <li><a href="/customisation/">For business</a></li> - </ul> - </li> - <li><a href="/download/">Download</a></li> - <li><a href="/documentation.html">Documentation</a></li> - <li><a href="/people">About Us</a></li> + <li><a href="/family/developer.html">GATE Developer</a></li> + <li><a href="/family/embedded.html">GATE Embedded</a></li> + <li><a href="/teamware">GATE Teamware</a></li> + <li><a href="/family/process.html">The GATE Process</a></li> + <li><a href="http://gatecloud.net/">GATE Cloud</a></li> + <li><a href="http://gatewiki.sf.net/">GATE Wiki</a></li> </ul> - </div> - <noscript><div class="errors">${header} <b>Note: these menus will work - better with Javascript enabled!</b></div></noscript> + </li> + <li><a href="/customisation/">Services</a></li> + <li><a href="/support.html" class="submenu">Support</a> + <ul> + <li><a href="/mail/">Community-based</a></li> + <li><a href="/customisation/">For business</a></li> + </ul> + </li> + <li><a href="/download/">Download</a></li> + <li><a href="/documentation.html">Documentation</a></li> + <li><a href="/people">About Us</a></li> + </ul> </div> <!-- sep, left/right bars, body and footer --> <div id="topSeparator"> </div> - <div id="leftBar"> - <div id="myslidemenuhoriz" class="jqueryslidemenuhoriz"> - ${leftBar} - </div> - <noscript><div class="errors">${leftBar} <b>Note: these menus will work - better with Javascript enabled!</b></div></noscript> + <div id="leftBar">${leftBar}</div> + <div id="main" class="${ leftBar ? 'wideBorder' : 'noBorder' }"> + <g:layoutBody /> </div> - <g:layoutBody /> <div id="rightBar">${rightBar}</div> <div id="footer"> ${footer} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ gatewiki-commits mailing list gatewiki-commits@... https://lists.sourceforge.net/lists/listinfo/gatewiki-commits |
| Free embeddable forum powered by Nabble | Forum Help |