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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/MILK/trunk/milk_server/milk_server/templates/meta.kid@5861
Revision 5861, 13.0 KB checked in by sdonegan, 11 years ago (diff)

Adjusted so no selection and proper colouring of more/less buttons, only showing where text l > 200

RevLine 
[2675]1<!-- This is a bunch of named functions for using when displaying metadata -->
[3842]2<?python
3
[4472]4from milk_server.lib.Utilities import urlListEncode
[3842]5
6?>
7
[2675]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">
[3102]13        <table py:if="params!={}" cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
[2675]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
[3092]18                #should make sure keyword with spaces are not split inappropriately
19                keywords='; '.join([k.replace(' ','&nbsp;') for k in params[item]])
[2675]20                ?>
[3086]21                <tr py:if="params[item]!=[]"><td>${XML(keywords)}</td></tr>
[2675]22            </span>
23        </tbody></table>
24    </div>
25   
[3102]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   
[2675]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>
[3152]42            <tr py:for="s in c.doc.services">
43                <?python
44                t=s.contentType
[5831]45               
[3538]46                isWMC = False
[5831]47               
48               
[3538]49                if 'WEB MAP CONTEXT' in t:
50                        isWMC = True
51                if t=='':
52                        t='R'
53                if 'GET DATA' in t:
54                        t='GET DATA'
[3152]55                try:
[5831]56                    icon={'NDG_BROWSE':g.icons_NDGBrwse,'GET DATA':g.icons_A,
[3167]57                        'VIEW EXTENDED METADATA':g.icons_B,
[3152]58                        'DISCOVERY':g.icons_D,
59                        'R':g.icons_R}[t]
60                except:
61                    icon=g.icons_R
62                ?>
[3538]63                <td width="20%" py:if="isWMC">
[3644]64                        <span py:replace="linkimage(g.server + '/viewItems?ENDPOINT=' + s.url,icon,s.description)" py:strip="True"/>
[3538]65                </td>
66                <td width="20%" py:if="not isWMC">
67                        <span py:replace="linkimage(s.url,icon,s.description)" py:strip="True"/>
68                </td>
69                <td>${s.description}</td>
70            </tr>
[2675]71            <tr py:if="c.doc.ndgObject is not None">
[2688]72            <td width="20%"><span py:replace="linkimage(c.doc.ndgObject.xmlURL,g.icons_xml,'[XML]')"/></td>
[2680]73            <td>Downloadable XML version of this record
74            <span py:if="c.doc.ndgObject.gettable==1">
[2852]75            (Original <span py:replace="linkimage(c.doc.ndgObject.xmlURL+'&amp;outputSchema=original',g.icons_xml,'[XML]')"/>)
[2680]76            </span></td></tr>
[2675]77            <tr py:if="c.doc.ndgObject is not None">
[2688]78            <td width="20%"><span py:replace="linkimage(c.doc.ndgObject.printableURL,g.icons_prn,'[HTML]')"/></td>
[2680]79            <td>Viewable XML version of this record
80             <span py:if="c.doc.ndgObject.gettable==1">
[2852]81            (Original <span py:replace="linkimage(c.doc.ndgObject.printableURL+'&amp;outputSchema=original',g.icons_prn,'[HTML]')"/>)
[2680]82            </span></td></tr>
[3152]83            <tr py:if="c.doc.ndgObject.gettable==1"><td></td><td>(Original records are the raw material harvested from data providers)</td></tr>
[2675]84        </tbody></table>
85    </div> <!-- ServiceList -->
86   
87   
[2703]88    <div py:def="Spatial(bbox,h)">
[2680]89        <!-- Currently this only shows the first bounding box -->
90        <table py:if="bbox.nboxes==1"><tbody>
[2703]91            <tr py:if="h==1"><td colspan="2" class="cellhead">Spatial coverage</td></tr>
[2680]92            <tr><td colspan="2" align="center">${bbox.boxes[0][0]}</td></tr>
93            <tr><td align="center">${bbox.boxes[0][1]}</td><td align="center">${bbox.boxes[0][2]}</td></tr>
94            <tr><td colspan="2" align="center">${bbox.boxes[0][3]}</td></tr>
95        </tbody></table>
[2755]96        <span py:if="bbox.nboxes!=1"><p py:if="h==1" class="cellhead">Spatial Coverage</p>
[3092]97            <p py:if="bbox.nboxes>1"> $bbox.nboxes different areas.</p>
98            <p py:if="bbox.nboxes==0"> No spatial coverage information available.</p>
99        </span>
[2680]100    </div>
[2676]101   
[2680]102    <div py:def="Coverage(bbox,timcov)">
103        <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
104            <tr><td class="linehead" colspan="2"><span class="heading0"> Data Coverage</span> </td></tr>
[2703]105            <tr><td><div py:replace="Spatial(bbox,1)"/></td>
[2680]106                <td><table><tr><td colspan="2" class="cellhead"> Temporal coverage</td></tr>
[3092]107                           <span py:if="len(timcov)==1">
108                                <tr><td> Start Date: ${timcov[0][0]}</td><td>End Date: ${timcov[0][1]}</td></tr>
109                                <tr><td colspan="2"> Status:${timcov[0][2]}</td></tr>
110                           </span>
111                           <tr py:if="len(timcov)==0"><td colspan="2">No temporal information available.</td></tr>
112                           <tr py:if="len(timcov)>1"><td colspan="2">${len(timcov)} different periods of data available.</td></tr>
113                    </table>
[2680]114                </td></tr>
115        </tbody></table>
116    </div>
117   
[3092]118    <div py:def="ShortCoverage(e)">
119        <span py:if="len(e.timeCoverage)==1">From ${e.timeCoverage[0][0]} to ${e.timeCoverage[0][1]}
120        </span><span py:if="e.bbox.nboxes==1">
121         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
122        </span>
123    </div>
124   
[2680]125    <div py:def="People(ptype,listOf)">
126        <table py:if="listOf!=[]" cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
[3102]127            <tr><td class="linehead" colspan="2"><span class="heading0"> $ptype</span></td></tr>
[2680]128            <tr py:for="p in listOf"><td>${XML(p.core['role'])}</td><td>${XML(p.toHTML())}</td></tr>
129        </tbody></table>
130    </div>
131   
132    <div py:def="Centre(cen)">
133        <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
134            <tr><td class="linehead"><span class="heading0"> Data Centre</span></td></tr>
135            <tr><td>${XML(cen.toHTML())}</td></tr>
136        </tbody></table>
137    </div>
138   
[2676]139    <div py:def="Keywords(Name,listOf)">
140         <table cellspacing="0" cellpadding="3" border="0" width="100%"><tbody>
141            <tr><td class="linehead"><span class="heading0"> $Name</span></td></tr>
142            <tr py:for="item in listOf"><td>$item</td></tr>
143        </tbody></table>
144    </div>
145   
[2703]146    <!--- Create that little list of service icons on the result page -->
147    <span py:def="serviceIcons(sL)">
148        <span py:for="s in sL">
149            <?python
[5831]150           
[2703]151            t=s.contentType
[5831]152           
[2703]153            if t=='': t='R'
[3167]154            if 'GET DATA' in t: t='GET DATA'
[2703]155            try:
[5831]156                icon={'NDG_BROWSE':g.icons_NDGBrwse,'GET DATA':g.icons_A,
[3167]157                    'VIEW EXTENDED METADATA':g.icons_B,
[2703]158                    'DISCOVERY':g.icons_D,
159                    'R':g.icons_R}[t]
160            except:
161                icon=g.icons_R
[5831]162               
163             
[2703]164            ?>
165            <span py:replace="linkimage(s.url,icon,s.description)"/>
166        </span>
167    </span>
168   
169    <!--- Easy shortening of text for result pages, should use ajax to expand -->
170    <span py:def="abbreviate(text,L,url)">
171        <?python
172        if len(text)<L:
173            more=''
174        else:
[5858]175           
[2703]176            if url:
177                more='&nbsp;<a href="%s">(more)</a>'%url
178            else: more='...'
179        ?>
[5858]180        ${text[0:L]} ${XML(more)}
[2703]181    </span>
182   
[5858]183    <!--- Easy shortening of text for result pages, should use ajax to expand -->
184    <span py:def="abbreviateAbstract(text,L,url)">
185        <?python
186        if len(text)<L:
187            more=''
188        else:
189           
190            if url:
191                more='&nbsp;<a href="%s">(more)</a>'%url
192            else: more='...'
193        ?>
194        ${text[0:L]} ${XML(more)}
195    </span>
196   
197    <!-- Abstract more/less -->
198    <!--<span py:def="moreAbstract(value)">
199   
200        <span >
201           
202            <img src="$g.helpIcon" alt="Toggle help" class="helpicon"/></a>
203           
204            $value
205           
206            <input type="button"  class="txtButtons" alt="Click to show/hide rest of abstract" value="(more)" onclick="toggleDiv(1,'$value','shown','hidden','div'); return false;" />
207               
208        </span>
209    </span>-->
210   
211   
[2703]212    <span py:def="result(i,d)">
[3093]213        <?python
[5858]214       
215        thisRecordFull = 'fullAbstract_' + str(i)
216        thisRecordTrun = 'trunAbstract_' + str(i)
217       
[5861]218        abslen = len(d.abstract)
219       
[3093]220        if len(d.timeCoverage)==1:
221            tc=d.timeCoverage[0]
222        elif len(d.timeCoverage)==0:
223            tc=['','','']
224        else:
225            tc=d.timeCoverage[0]
226            for m in d.timeCoverage:
227                if m[0]<tc[0]:tc[0]=m[0]
228                if m[1]>tc[1]:tc[1]=m[1]
229        ?>   
[2703]230        <tr class="${i%2 and 'rowhi' or 'rowlo'}">
231            <td>
232                <span py:if="d.briefCitation!=''">
233                    <span class="ndgem">Citation:</span> ${d.briefCitation}</span>
234                <span class="ndgem"> Title:</span>
235                    <span py:replace="abbreviate(d.name,70,0)"/>
236                <br/>
[5861]237                               
[5858]238                <!-- trunc text -->
239                <div id="$thisRecordTrun" class="abstractText_shown">
240               
241                   
242                    <span class="ndgem"> Abstract: </span>
243                                           
244                        <span py:replace="abbreviateAbstract(d.abstract,200,'')"/><!-- the text -->
245                       
[5861]246                        <!-- Only show "more" button if abstract long enough..  -->
247                        <span py:if="abslen > 200">
248                            <input type="button"  class="txtButtons_more" alt="Click to show/hide rest of abstract" value="more" onclick="Div_show('$thisRecordFull');Div_hide('$thisRecordTrun')" />
249                        </span>
[5858]250                </div>
251               
252                <!-- full text -->           
253                <div id="$thisRecordFull" class="abstractText_hidden">
254               
255                <span class="ndgem"> Abstract: </span>
256                   
257                        ${d.abstract}
[5861]258                        <input type="button"  class="txtButtons_less" alt="Click to show/hide rest of abstract" value="less" onclick="Div_show('$thisRecordTrun');Div_hide('$thisRecordFull')" />
[5858]259                </div>
260               
[2760]261                <span class="ndgem"> Sourced from:</span>&nbsp;${XML(d.centre.url())}
[2703]262                &nbsp;<span class="ndgem">Links:</span>
[5831]263                <span py:replace="serviceIcons([d.binding])"/>               
[2703]264                <span py:replace="serviceIcons(d.services)"/>
265            </td>
[3421]266            <td>${tc[0]}</td>
267            <td>${tc[1]}</td>
268            <td>
269                <div py:replace="Spatial(d.bbox,0)"/>
270            </td>
[5861]271            <!-- check if the DIF has already been selected
[3842]272            <?python
[3421]273                selected=False
274                select_td_id='select_td_id_%s'%d.entryID
275                if 'selection' in session:
276                        for item in session['selection']:
[3457]277                        if item.entryID == d.entryID:
[3421]278                                        selected=True
[4487]279                select_url = h.url_for(controller="visualise/selectedItems",
[3842]280                                       action="addSelectedItem",
281                                       entryid=d.entryID,
282                                       divid=select_td_id,
283                                       kmlurl = urlListEncode(d.kmlURL),
284                                       wmcurl = urlListEncode(d.wmcURL),
285                                       title = d.name)
286
[3421]287            ?>
288                       
289                <td id="$select_td_id" align="center">
290                <span py:if="selected">
291                        ${XML(h.link_to_remote("Unselect",
292                                        dict(update=select_td_id,
[4487]293                                                 url=h.url_for(controller="visualise/selectedItems",
[3421]294                                                                   action="unSelectItem",
295                                                                   entryid=d.entryID,
296                                                                   divid=select_td_id))))}
297                                                                   
298                                </span>
299                                <span class="selectme" py:if="not selected">
300                        ${XML(h.link_to_remote("Select",
301                                        dict(update=select_td_id,
[3842]302                                             url=select_url
303                                             )))}
[3421]304                </span>
[5861]305            </td>-->
[2703]306        </tr>
307    </span>
308   
[3842]309</html>
Note: See TracBrowser for help on using the repository browser.