source: MILK/trunk/milk_server/milk_server/templates/meta.kid @ 4472

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/MILK/trunk/milk_server/milk_server/templates/meta.kid@4472
Revision 4472, 10.7 KB checked in by cbyrom, 12 years ago (diff)

Strip out code not relevant to MILK - mainly WCS and WMS stuff - also including the CSML server code + trackback code
Also tidy up structure of 'public' dir - setting up new 'style' dir and
centralising icons in icons dir + remove all unused icons, javascript and stylesheets.
Also strip out testcase code and populate new test directory structure.

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