Changeset 4213


Ignore:
Timestamp:
22/09/08 10:10:52 (11 years ago)
Author:
cbyrom
Message:

Overcome difficulties with CSS and js treatment due to inconsistencies in genshi rendering
Add summary/detail toggled sections for deployments and parameters
Add Services panel to atom detail.

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/ndgJavascript.js

    r3662 r4213  
    2323  
    2424 } 
     25 
     26function swapLayers( layer1, layer2 ) 
     27{ 
     28        // swap between two divs - NB, one of these should be initially visible, the other hidden 
     29        toggleLayer(layer1); 
     30        toggleLayer(layer2); 
     31} 
     32 
    2533  
     34function toggleLayer( whichLayer ) 
     35{ 
     36  var elem, vis; 
     37  if( document.getElementById ) // this is the way the standards work 
     38    elem = document.getElementById( whichLayer ); 
     39  else if( document.all ) // this is the way old msie versions work 
     40      elem = document.all[whichLayer]; 
     41  else if( document.layers ) // this is the way nn4 works 
     42    elem = document.layers[whichLayer]; 
     43  vis = elem.style; 
     44  // if the style.display value is blank we try to figure it out here 
     45  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) 
     46    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none'; 
     47  vis.display = (vis.display==''||vis.display=='block')?'none':'block'; 
     48} 
     49 
    2650// Make the XMLHttpRequest object 
    2751var http = createRequestObject(); 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/layout/ndg2.css

    r4205 r4213  
    145145        width:100%; 
    146146        padding-top:10px; 
     147        cellspacing:0; 
     148        cellpadding:3; 
     149        border:0; 
     150} 
     151 
     152.subTable 
     153{ 
     154        width:50%; 
     155        padding-top:100px; 
    147156        cellspacing:0; 
    148157        cellpadding:3; 
     
    223232/* Results Page */ 
    224233 
     234.summaryText 
     235{ 
     236        font-size:xx-small; 
     237} 
    225238 
    226239#context { margin: 5px 10px 5px 10px; border:0; color:#571512;} 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/layout/ndgJavascript.js

    r2615 r4213  
    2424 } 
    2525  
     26function swapLayers( layer1, layer2 ) 
     27{ 
     28        // swap between two divs - NB, one of these should be initially visible, the other hidden 
     29        toggleLayer(layer1); 
     30        toggleLayer(layer2); 
     31} 
     32 
     33  
     34 function toggleLayer( whichLayer ) 
     35{ 
     36  var elem, vis; 
     37  if( document.getElementById ) // this is the way the standards work 
     38    elem = document.getElementById( whichLayer ); 
     39  else if( document.all ) // this is the way old msie versions work 
     40      elem = document.all[whichLayer]; 
     41  else if( document.layers ) // this is the way nn4 works 
     42    elem = document.layers[whichLayer]; 
     43  vis = elem.style; 
     44  // if the style.display value is blank we try to figure it out here 
     45  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) 
     46    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none'; 
     47  vis.display = (vis.display==''||vis.display=='block')?'none':'block'; 
     48} 
     49 
    2650// Make the XMLHttpRequest object 
    2751var http = createRequestObject(); 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/atom.html

    r4205 r4213  
    11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    2 <?python  
    3         import ndgUtils.ndgObject as no  
    4         from atom.Atom import Atom  
    5 ?> 
    62<html lang="en" xmlns="http://www.w3.org/1999/xhtml"  
    73        xmlns:py="http://genshi.edgewall.org/"  
     
    3531                        <div py:replace="People('Author', [c.atom.author])"/> 
    3632                        <div py:replace="People('Contributors', c.atom.contributors)"/> 
    37                         <div py:replace="ParameterList(c.atom.parameters)"/> 
     33                        <div py:replace="FullParameterList(c.atom.parameters)"/> 
     34                        <div py:replace="SummaryParameterList(c.atom.parameters)"/> 
    3835                        <div py:replace="Coverage()"/> 
    39                         <div py:replace="Deployments(c.atom.ME.deployments)"/> 
     36                        <div py:replace="FullDeployments(c.atom.ME.deployments)"/> 
     37                        <div py:replace="SummaryDeployments(c.atom.ME.deployments)"/> 
    4038                        <div py:replace="People('Responsible Parties',  
    4139                                c.atom.ME.responsibleParties)"/> 
     40                            <div py:replace="Services()"/> 
    4241              </div> 
    4342      </div> 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/atom_functions.html

    r4205 r4213  
    11<?python  
    2         import ndgUtils.ndgObject as no 
    32        from ndgUtils.vocabtermdata import VocabTermData as VTD 
    43 ?> 
     
    1413        <table py:if="listOfPeople"> 
    1514            <tr><td class="linehead"><span class="heading0">$ptype</span></td></tr> 
    16             <tr> 
     15            <tr><td> 
    1716            <table> 
    1817                    <tr py:for="person in listOfPeople"> 
     
    2221                                </tr> 
    2322                        </table> 
     23                        </td></tr> 
     24        </table>  
     25    </div> 
     26     
     27    <div class="metadataSection" py:def="SummaryDeployments(deployments)" id="summaryDeployment"> 
     28        <table py:if="deployments"> 
     29                <tr> 
     30                <td class="linehead"> 
     31                <table><tr><td>Deployments - summary</td> 
     32                    <td align="right"> 
     33                <span py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navPlus)" strip=""/> 
     34                </td></tr> 
     35                        </table> 
     36            </td></tr> 
     37                        <tr><td> 
     38                        <table> 
     39                        <tr class="cellhead"> 
     40                        <td>Activities</td> 
     41                        <td> 
     42                                <span py:for="act in c.atom.ME.activities" py:strip=""> 
     43                                        <a href="act.url">${act.title or act.vocabUrl}</a>&nbsp;&nbsp;  
     44                                </span> 
     45                        </td>                    
    2446                        </tr> 
    25         </table>  
    26     </div> 
    27      
    28     <div class="metadataSection" py:def="Deployments(deployments)"> 
     47                        <tr class="cellhead"><td>Observation Stations</td> 
     48                        <td> 
     49                                <span py:for="obs in c.atom.ME.obs" py:strip=""> 
     50                                        <a href="obs.url">${obs.title or obs.vocabUrl}</a>&nbsp;&nbsp;  
     51                                </span> 
     52                        </td>                    
     53                        </tr> 
     54                        <tr class="cellhead"><td>Data Production tools</td> 
     55                        <td> 
     56                                <span py:for="dpt in c.atom.ME.dpts" py:strip=""> 
     57                                        <a href="dpt.url">${dpt.title or dpt.vocabUrl}</a>&nbsp;&nbsp;  
     58                                </span> 
     59                        </td>                    
     60                        </tr> 
     61                        </table></td></tr> 
     62                </table> 
     63        </div> 
     64     
     65    <div class="metadataSection hidden" py:def="FullDeployments(deployments)" id="fullDeployment"> 
    2966        <table py:if="deployments"> 
    30         <tr><td class="linehead" >Deployments</td><td></td></tr> 
     67        <tr><td class="linehead" > 
     68            <table><tr><td>Deployments - details</td> 
     69            <td align="right"> 
     70            <span py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navMinus)" strip=""/> 
     71            </td></tr></table> 
     72        </td></tr> 
    3173        <tr> 
    3274                <table class="subTable"> 
    3375                                <div py:for="d in deployments" py:strip=""> 
    34                                 <div py:replace="Deployment(deployments[d])"/> 
     76                                <div py:replace="FullDeployment(deployments[d])"/> 
    3577                        </div> 
    3678                </table></tr> 
     
    3880        </div> 
    3981         
    40     <div py:def="Deployment(dep)" py:strip=""> 
     82    <div py:def="FullDeployment(dep)" py:strip=""> 
    4183                <tr class="cellhead" colspan="2"><td> Start Date: $dep.startDate, End Date: $dep.endDate</td></tr> 
    4284        <tr py:for="link in dep.deploymentLinks" > 
     
    5496    </div> 
    5597 
    56      
    57     <!-- Help Icons --> 
    58     <span py:def="expandHideSection(div1,div2)"> 
    59         <span> 
     98 
     99    <span py:def="expandHideSection(div1,div2,icon)"> 
    60100            <a href="javascript:;" title="Show/Hide details"  
    61                 onclick="toggleDiv(1,'$div1','shown','hidden','div'); toggleDiv(1,'$div2','shown','hidden','div'); return false;"> 
    62             <img src="$g.helpIcon" alt="Toggle help" class="helpicon"/></a> 
    63        
    64         </span> 
     101                onclick="swapLayers('$div1', '$div2'); return false;"> 
     102            <img src="$icon" alt="Toggle expand/contract" class="helpicon"/></a> 
    65103    </span> 
    66104 
    67     <div py:def="OnlineReferences(links)"> 
     105    <div class="metadataSection" py:def="OnlineReferences(links)"> 
    68106        <table py:if="links" cellspacing="0" cellpadding="3"  
    69107        border="0" width="100%"> 
     
    76114 
    77115 
    78     <div class="metadataSection" py:def="ParameterList(params)"> 
     116    <div class="metadataSection hidden" py:def="FullParameterList(params)" id="fullParams"> 
    79117        <table py:if="params"> 
    80             <tr><td class="linehead"><span>Parameters</span></td></tr> 
     118            <tr><td class="linehead"> 
     119            <table> 
     120            <tr><td>Parameters - details</td> 
     121            <td align="right"> 
     122            <span py:replace="expandHideSection('fullParams','summaryParams',g.navMinus)" strip=""/> 
     123            </td></tr></table></td></tr> 
    81124            <tr> 
    82125            <table class="subTable"> 
     
    91134    </div> 
    92135 
     136 
     137    <div py:def="SummaryParameterList(params)" id="summaryParams" class="metadataSection shown"> 
     138        <table py:if="params"> 
     139            <tr><td class="linehead"> 
     140            <table><tr><td>Parameters - summary</td> 
     141            <td align="right"> 
     142            <span py:replace="expandHideSection('fullParams','summaryParams',g.navPlus)" strip=""/> 
     143            </td></tr></table></td></tr> 
     144            <tr> 
     145            <table class="subTable"> 
     146                <?python  
     147                        fullLength = len(list(params)) 
     148                        colNumber = 4 
     149                ?> 
     150                        <span py:for="index, param in enumerate(params)" py:strip=""> 
     151                                <tr class="summaryText"> 
     152                                 <span py:if="not index%colNumber" py:strip=""> 
     153                                 <span py:for="i in range(colNumber)" py:strip=""> 
     154                                        <td py:if="index &lt; fullLength - i">${params[index + i].label}</td> 
     155                                 </span> 
     156                                 </span> 
     157                                        </tr> 
     158                        </span> 
     159            </table> 
     160            </tr> 
     161        </table> 
     162    </div> 
    93163     
    94164    <div class="metadataSection" py:def="Coverage()"> 
     
    128198        </table>  
    129199    </div> 
     200     
     201         
     202    <div py:def="Services()" id="ServiceList"> 
     203        <table cellspacing="0" cellpadding="3" width=" 100%" border="0"><tbody> 
     204            <tr><td class="linehead" colspan="3"><span class="headingO">Links and Services</span></td></tr> 
     205            <tr py:if="c.atom.ndgObject is not None"> 
     206                    <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.xmlURL,g.icons_xml,'[XML]')"/></td> 
     207                <td>Downloadable XML version of this record 
     208                    <span py:if="c.atom.ndgObject.gettable==1" py:strip=""> 
     209                (Original <span py:replace="linkimage(c.atom.ndgObject.xmlURL+'&amp;outputSchema=original',g.icons_xml,'[XML]')"/>) 
     210                    </span></td> 
     211                </tr> 
     212            <tr py:if="c.atom.ndgObject is not None"> 
     213                <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.printableURL,g.icons_prn,'[HTML]')"/></td> 
     214                    <td>Viewable XML version of this record 
     215                 <span py:if="c.atom.ndgObject.gettable==1" py:strip=""> 
     216                    (Original <span py:replace="linkimage(c.atom.ndgObject.printableURL+'&amp;outputSchema=original',g.icons_prn,'[HTML]')"/>) 
     217                </span></td> 
     218            </tr> 
     219            <tr py:if="c.atom.ndgObject.gettable==1"><td></td><td>(Original records are the raw material harvested from data providers)</td></tr> 
     220        </tbody></table> 
     221    </div> <!-- ServiceList --> 
     222     
    130223</html> 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/layout.html

    r4204 r4213  
    1111                ${Markup(h.javascript_include_tag(builtins=True))} 
    1212        <script type="text/javascript" src="$g.server/js/toggleDiv.js"/> 
     13        <script type="text/javascript" src="$g.server/js/ndgJavascript.js"/> 
    1314        <link media="all, screen" href="$g.server/layout/ndg2.css"  
    1415                type="text/css" rel="stylesheet"/> 
     
    4041            </py:if> 
    4142          </span> 
    42            
    4343      <div py:replace="footer()"/> 
    4444    </div> 
Note: See TracChangeset for help on using the changeset viewer.