source: TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/meta.kid @ 3644

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/meta.kid@3644
Revision 3644, 10.4 KB checked in by cbyrom, 12 years ago (diff)

Fix WMC icon in the Details view to pass its WMC url to the view tab when clicked on.

Line 
1<!-- This is a bunch of named functions for using when displaying metadata -->
2<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#">
3
4<!-- Parameter list class, used in StubB and DIF -->
5   
6    <div py:def="ParameterList(params)" class="ParameterList">
7        <table py:if="params!={}" cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
8            <tr><td class="linehead"><span class="heading0"> Parameters</span></td></tr>
9            <span py:for="item in params">
10                <tr><td class="rowhead">$item</td></tr>
11                <?python
12                #should make sure keyword with spaces are not split inappropriately
13                keywords='; '.join([k.replace(' ','&nbsp;') for k in params[item]])
14                ?>
15                <tr py:if="params[item]!=[]"><td>${XML(keywords)}</td></tr>
16            </span>
17        </tbody></table>
18    </div>
19   
20    <div py:def="Distribution(dlist)">
21        <table py:if="dlist!=[]" cellspacing="0" cellpadding="3" width=" 100%" border="0">
22        <tr><td class="linehead" colspan="4"><span class="headingO">Distribution</span></td></tr>
23        <tr><th> Format </th> <th> Size </th> <th> Media </th> <th> Fees </th> </tr>
24        <tr py:for="d in dlist">
25            <td>${d['Distribution_Format']}</td>
26            <td>${d['Distribution_Size']}</td>
27            <td>${d['Distribution_Media']}</td>
28            <td>${d['Fees']}</td>
29        </tr>
30        </table>
31    </div>
32   
33    <div py:def="Services()" id="ServiceList">
34        <table cellspacing="0" cellpadding="3" width=" 100%" border="0"><tbody>
35            <tr><td class="linehead" colspan="3"><span class="headingO">Links and Services</span></td></tr>
36            <tr py:for="s in c.doc.services">
37                <?python
38                t=s.contentType
39                isWMC = False
40                if 'WEB MAP CONTEXT' in t:
41                        isWMC = True
42                if t=='':
43                        t='R'
44                if 'GET DATA' in t:
45                        t='GET DATA'
46                try:
47                    icon={'GET DATA':g.icons_A,
48                        'VIEW EXTENDED METADATA':g.icons_B,
49                        'DISCOVERY':g.icons_D,
50                        'R':g.icons_R}[t]
51                except:
52                    icon=g.icons_R
53                ?>
54                <td width="20%" py:if="isWMC">
55                        <span py:replace="linkimage(g.server + '/viewItems?ENDPOINT=' + s.url,icon,s.description)" py:strip="True"/>
56                </td>
57                <td width="20%" py:if="not isWMC">
58                        <span py:replace="linkimage(s.url,icon,s.description)" py:strip="True"/>
59                </td>
60                <td>${s.description}</td>
61            </tr>
62            <tr py:if="c.doc.ndgObject is not None">
63            <td width="20%"><span py:replace="linkimage(c.doc.ndgObject.xmlURL,g.icons_xml,'[XML]')"/></td>
64            <td>Downloadable XML version of this record
65            <span py:if="c.doc.ndgObject.gettable==1">
66            (Original <span py:replace="linkimage(c.doc.ndgObject.xmlURL+'&amp;outputSchema=original',g.icons_xml,'[XML]')"/>)
67            </span></td></tr>
68            <tr py:if="c.doc.ndgObject is not None">
69            <td width="20%"><span py:replace="linkimage(c.doc.ndgObject.printableURL,g.icons_prn,'[HTML]')"/></td>
70            <td>Viewable XML version of this record
71             <span py:if="c.doc.ndgObject.gettable==1">
72            (Original <span py:replace="linkimage(c.doc.ndgObject.printableURL+'&amp;outputSchema=original',g.icons_prn,'[HTML]')"/>)
73            </span></td></tr>
74            <tr py:if="c.doc.ndgObject.gettable==1"><td></td><td>(Original records are the raw material harvested from data providers)</td></tr>
75        </tbody></table>
76    </div> <!-- ServiceList -->
77   
78   
79    <div py:def="Spatial(bbox,h)">
80        <!-- Currently this only shows the first bounding box -->
81        <table py:if="bbox.nboxes==1"><tbody>
82            <tr py:if="h==1"><td colspan="2" class="cellhead">Spatial coverage</td></tr>
83            <tr><td colspan="2" align="center">${bbox.boxes[0][0]}</td></tr>
84            <tr><td align="center">${bbox.boxes[0][1]}</td><td align="center">${bbox.boxes[0][2]}</td></tr>
85            <tr><td colspan="2" align="center">${bbox.boxes[0][3]}</td></tr>
86        </tbody></table>
87        <span py:if="bbox.nboxes!=1"><p py:if="h==1" class="cellhead">Spatial Coverage</p>
88            <p py:if="bbox.nboxes>1"> $bbox.nboxes different areas.</p>
89            <p py:if="bbox.nboxes==0"> No spatial coverage information available.</p>
90        </span>
91    </div>
92   
93    <div py:def="Coverage(bbox,timcov)">
94        <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
95            <tr><td class="linehead" colspan="2"><span class="heading0"> Data Coverage</span> </td></tr>
96            <tr><td><div py:replace="Spatial(bbox,1)"/></td>
97                <td><table><tr><td colspan="2" class="cellhead"> Temporal coverage</td></tr>
98                           <span py:if="len(timcov)==1">
99                                <tr><td> Start Date: ${timcov[0][0]}</td><td>End Date: ${timcov[0][1]}</td></tr>
100                                <tr><td colspan="2"> Status:${timcov[0][2]}</td></tr>
101                           </span>
102                           <tr py:if="len(timcov)==0"><td colspan="2">No temporal information available.</td></tr>
103                           <tr py:if="len(timcov)>1"><td colspan="2">${len(timcov)} different periods of data available.</td></tr>
104                    </table>
105                </td></tr>
106        </tbody></table>
107    </div>
108   
109    <div py:def="ShortCoverage(e)">
110        <span py:if="len(e.timeCoverage)==1">From ${e.timeCoverage[0][0]} to ${e.timeCoverage[0][1]}
111        </span><span py:if="e.bbox.nboxes==1">
112         for latitude ${e.bbox.boxes[0][3]} to ${e.bbox.boxes[0][0]}N and longitude ${e.bbox.boxes[0][1]} to ${e.bbox.boxes[0][2]}E
113        </span>
114    </div>
115   
116    <div py:def="People(ptype,listOf)">
117        <table py:if="listOf!=[]" cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
118            <tr><td class="linehead" colspan="2"><span class="heading0"> $ptype</span></td></tr>
119            <tr py:for="p in listOf"><td>${XML(p.core['role'])}</td><td>${XML(p.toHTML())}</td></tr>
120        </tbody></table>
121    </div>
122   
123    <div py:def="Centre(cen)">
124        <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
125            <tr><td class="linehead"><span class="heading0"> Data Centre</span></td></tr>
126            <tr><td>${XML(cen.toHTML())}</td></tr>
127        </tbody></table>
128    </div>
129   
130    <div py:def="Keywords(Name,listOf)">
131         <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
132            <tr><td class="linehead"><span class="heading0"> $Name</span></td></tr>
133            <tr py:for="item in listOf"><td>$item</td></tr>
134        </tbody></table>
135    </div>
136   
137    <!--- Create that little list of service icons on the result page -->
138    <span py:def="serviceIcons(sL)">
139        <span py:for="s in sL">
140            <?python
141            t=s.contentType
142            if t=='': t='R'
143            if 'GET DATA' in t: t='GET DATA'
144            try:
145                icon={'GET DATA':g.icons_A,
146                    'VIEW EXTENDED METADATA':g.icons_B,
147                    'DISCOVERY':g.icons_D,
148                    'R':g.icons_R}[t]
149            except:
150                icon=g.icons_R
151            ?>
152            <span py:replace="linkimage(s.url,icon,s.description)"/>
153        </span>
154    </span>
155   
156    <!--- Easy shortening of text for result pages, should use ajax to expand -->
157    <span py:def="abbreviate(text,L,url)">
158        <?python
159        if len(text)<L:
160            more=''
161        else:
162            if url:
163                more='&nbsp;<a href="%s">(more)</a>'%url
164            else: more='...'
165        ?>
166        ${text[0:L]}${XML(more)}
167    </span>
168   
169    <span py:def="result(i,d)">
170        <?python
171        if len(d.timeCoverage)==1:
172            tc=d.timeCoverage[0]
173        elif len(d.timeCoverage)==0:
174            tc=['','','']
175        else:
176            tc=d.timeCoverage[0]
177            for m in d.timeCoverage:
178                if m[0]<tc[0]:tc[0]=m[0]
179                if m[1]>tc[1]:tc[1]=m[1]
180        ?>   
181        <tr class="${i%2 and 'rowhi' or 'rowlo'}">
182            <td>
183                <span py:if="d.briefCitation!=''">
184                    <span class="ndgem">Citation:</span> ${d.briefCitation}</span>
185                <span class="ndgem"> Title:</span>
186                    <span py:replace="abbreviate(d.name,70,0)"/>
187                <br/>
188                <span class="ndgem"> Abstract:</span>
189                    <span py:replace="abbreviate(d.abstract,200,d.binding.url)"/>
190                <br/>
191                <span class="ndgem"> Sourced from:</span>&nbsp;${XML(d.centre.url())}
192                &nbsp;<span class="ndgem">Links:</span>
193                <span py:replace="serviceIcons([d.binding])"/>
194                <span py:replace="serviceIcons(d.services)"/>
195            </td>
196            <td>${tc[0]}</td>
197            <td>${tc[1]}</td>
198            <td>
199                <div py:replace="Spatial(d.bbox,0)"/>
200            </td>
201            <!-- check if the DIF has already been selected -->
202                        <?python
203                selected=False
204                select_td_id='select_td_id_%s'%d.entryID
205                if 'selection' in session:
206                        for item in session['selection']:
207                        if item.entryID == d.entryID:
208                                        selected=True
209            ?>
210                       
211                <td id="$select_td_id" align="center">
212                <span py:if="selected">
213                        ${XML(h.link_to_remote("Unselect",
214                                        dict(update=select_td_id,
215                                                 url=h.url_for(controller="selectedItems",
216                                                                   action="unSelectItem",
217                                                                   entryid=d.entryID,
218                                                                   divid=select_td_id))))}
219                                                                   
220                                </span>
221                                <span class="selectme" py:if="not selected">
222                        ${XML(h.link_to_remote("Select",
223                                        dict(update=select_td_id,
224                                                 url=h.url_for(controller="selectedItems",
225                                                                   action="addSelectedItem",
226                                                                   entryid=d.entryID,
227                                                                   kmlurl=d.kmlURL,
228                                                                   wmcurl=d.wmcURL,
229                                                                   title=d.name,
230                                                                   divid=select_td_id))))}
231                </span>
232            </td>
233        </tr>
234    </span>
235   
236</html>
Note: See TracBrowser for help on using the repository browser.