source: TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/atom_functions.html @ 4241

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/atom_functions.html@4241
Revision 4241, 14.2 KB checked in by cbyrom, 11 years ago (diff)

Make People and Coverage template sections editable + add code to controller
to extract input data and update this appropriately.

Line 
1<?python
2        from ndgUtils.vocabtermdata import VocabTermData as VTD
3 ?>
4<!--! A collection of template definitions for use in atom output construction -->
5<html xmlns="http://www.w3.org/1999/xhtml" 
6        xmlns:py="http://genshi.edgewall.org/"
7        xmlns:xi="http://www.w3.org/2001/XInclude"
8        py:strip="">
9       
10    <xi:include href="utils.html" />
11   
12    <div class="metadataSection" py:def="People(ptype,listOfPeople,editLink)">
13        <?python       
14                                divID = ptype + 'peopleDiv'
15                                edID=divID+'ed'
16                ?>
17        <table py:if="listOfPeople or editLink">
18            <tr><td class="linehead">
19                    <table>
20                        <tr><td>$ptype</td>
21                            <span py:if="editLink" py:strip="">
22                                <td align="right">
23                                        <span class="txtBlktog">
24                                        <a href="javascript:;" title="Toggle Form" 
25                                             onclick="swapLayers('$divID', '$edID'); return false;">
26                                        Add/Edit</a>
27                                        </span>
28                                    </td>
29                            </span>
30                                        </tr>
31                                </table>
32            </td></tr>
33            <tr><td>
34                <div id = "$divID">
35                                <div py:replace="PeopleTable(listOfPeople, ptype, None)"/>
36                        </div>
37                        </td></tr>
38                <tr py:if="editLink"><td>
39                        <div id="$edID" class="hidden">
40                                <div py:replace="PeopleTable(listOfPeople, ptype, editLink)"/>
41                        </div>
42                        </td></tr>
43        </table>
44    </div>
45
46        <div py:def="PeopleTable(listOfPeople, ptype, editLink)">
47                <form action="${editLink}" method="post">
48            <table>
49                <tr>
50                        <?python
51                                hasRole = False
52                                if ptype == "Responsible Parties":
53                                        hasRole = True
54                                               
55                                extraRows = 3
56                                if ptype == "Author":
57                                        extraRows = 0
58                        ?>
59                        <span py:if="not editLink and not listOfPeople" py:strip="">
60                                <td colspan="3">No data specified at present</td>
61                        </span>
62                        <span py:if="editLink or listOfPeople" py:strip="">
63                                <th py:if="hasRole" align="left">Role</th>
64                                <th align="left">Name</th>
65                                <th align="left">URI</th>
66                        </span>
67                </tr>
68                    <tr py:for="i, person in enumerate(listOfPeople)">
69                        <span py:if="hasRole" py:strip="">
70                                <td py:if="editLink">
71                                            ${Markup(h.text_field(ptype + '.' + str(i) + '.role',person.role))}
72                                        </td>
73                        <td py:if="not editLink">
74                                $person.role
75                                </td>
76                        </span>
77                        <td>
78                        <span py:if="editLink" py:strip="">
79                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.name',person.name))}
80                                </span>
81                        <span py:if="not editLink" py:strip="">
82                                $person.name
83                                </span>
84                        </td>
85                        <td>
86                        <span py:if="editLink" py:strip="">
87                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.uri',person.uri))}
88                                </span>
89                        <span py:if="not editLink" py:strip="">
90                                <a href="$person.uri">$person.uri</a>
91                                </span>
92                        </td>
93                                </tr>
94                                <!--! Add a few more rows when in edit mode  -->
95                        <span py:if="editLink" py:strip="">
96                    <tr py:for="i in range(len(listOfPeople), len(listOfPeople) + extraRows)">
97                        <td py:if="hasRole">
98                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.role'))}
99                        </td>
100                        <td>
101                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.name'))}
102                        </td>
103                        <td>
104                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.uri'))}
105                        </td>
106                                </tr>
107                       
108                                <tr><td>
109                      ${Markup(h.submit(value="Update"))}
110                      </td></tr>
111                                </span>
112                        </table>
113                </form>
114        </div>
115
116   
117    <div class="metadataSection" py:def="SummaryDeployments(deployments)" id="summaryDeployment">
118        <table py:if="deployments">
119                <tr>
120                <td class="linehead">
121                <table><tr><td>Deployments - summary</td>
122                    <td align="right">
123                <span py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navPlus)" strip=""/>
124                </td></tr>
125                        </table>
126            </td></tr>
127                        <tr><td>
128                        <table>
129                        <tr>
130                        <td class="cellhead">Activities</td>
131                        <td>
132                                <span py:for="act in c.atom.ME.activities" py:strip="">
133                                        <a href="$act.url">${act.title or act.url}</a>&nbsp;&nbsp; 
134                                </span>
135                        </td>                   
136                        </tr>
137                        <tr><td class="cellhead">Observation Stations</td>
138                        <td>
139                                <span py:for="obs in c.atom.ME.obs" py:strip="">
140                                        <a href="$obs.url">${obs.title or obs.url}</a>&nbsp;&nbsp; 
141                                </span>
142                        </td>                   
143                        </tr>
144                        <tr><td class="cellhead">Data Production tools</td>
145                        <td>
146                                <span py:for="dpt in c.atom.ME.dpts" py:strip="">
147                                        <a href="$dpt.url">${dpt.title or dpt.url}</a>&nbsp;&nbsp; 
148                                </span>
149                        </td>                   
150                        </tr>
151                        </table></td></tr>
152                </table>
153        </div>
154   
155    <div class="metadataSection hidden" py:def="FullDeployments(deployments)" id="fullDeployment">
156        <table py:if="deployments">
157        <tr><td class="linehead" >
158            <table><tr><td>Deployments - details</td>
159            <td align="right">
160            <span py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navMinus)" strip=""/>
161            </td></tr></table>
162        </td></tr>
163        <tr>
164                <table class="subTable">
165                                <div py:for="d in deployments" py:strip="">
166                                <div py:replace="FullDeployment(deployments[d])"/>
167                        </div>
168                </table></tr>
169                </table>
170        </div>
171       
172    <div py:def="FullDeployment(dep)" py:strip="">
173                <tr class="cellhead" colspan="2"><td> Start Date: $dep.startDate, End Date: $dep.endDate</td></tr>
174        <tr py:for="link in dep.deploymentLinks" >
175        <?python
176                rel=link.vocabUrl.upper()
177                if rel.startswith(VTD.ACTIVITY_TERM):
178                                rel = "Activity"
179                elif rel.startswith(VTD.OBS_TERM):
180                                rel = "Observation Station"
181                elif rel.startswith(VTD.DPT_TERM):
182                                rel = "Data Production Tool"
183        ?>
184        <td>$rel</td><td><a href="$link.url">${link.title or link.url}</a></td>
185        </tr>
186    </div>
187
188
189    <span py:def="expandHideSection(div1,div2,icon)">
190            <a href="javascript:;" title="Show/Hide details" 
191                onclick="swapLayers('$div1', '$div2'); return false;">
192            <img src="$icon" alt="Toggle expand/contract" class="helpicon"/></a>
193    </span>
194
195    <div class="metadataSection" py:def="OnlineReferences(links)">
196        <table py:if="links" cellspacing="0" cellpadding="3" 
197        border="0" width="100%">
198                        <div class="linehead"> Online References</div>
199            <ul>
200                <li py:for="link in links"><a href="$link.href">${link.title or link.rel or link.href}</a></li>
201            </ul>
202        </table>
203    </div>
204
205
206    <div class="metadataSection hidden" py:def="FullParameterList(params)" id="fullParams">
207        <table py:if="params">
208            <tr><td class="linehead">
209            <table>
210            <tr><td>Parameters - details</td>
211            <td align="right">
212            <span py:replace="expandHideSection('fullParams','summaryParams',g.navMinus)" strip=""/>
213            </td></tr></table></td></tr>
214            <tr>
215            <table class="subTable">
216                <tr class="cellhead"><td>Label</td><td>Vocab term definition</td></tr>
217                        <tr py:for="param in params">
218                                <td>$param.label</td>
219                                <td><a href="$param.scheme">$param.term</a></td>
220                        </tr>
221            </table>
222            </tr>
223        </table>
224    </div>
225
226
227    <div py:def="SummaryParameterList(params)" id="summaryParams" class="metadataSection shown">
228        <table py:if="params">
229            <tr><td class="linehead">
230            <table><tr><td>Parameters - summary</td>
231            <td align="right">
232            <span py:replace="expandHideSection('fullParams','summaryParams',g.navPlus)" strip=""/>
233            </td></tr></table></td></tr>
234            <tr>
235            <table class="subTable">
236                <?python
237                        fullLength = len(list(params))
238                        colNumber = 4
239                ?>
240                        <span py:for="index, param in enumerate(params)" py:strip="">
241                                <tr class="summaryText">
242                                 <span py:if="not index%colNumber" py:strip="">
243                                 <span py:for="i in range(colNumber)" py:strip="">
244                                        <td py:if="index &lt; fullLength - i">${params[index + i].label}</td>
245                                 </span>
246                                 </span>
247                                        </tr>
248                        </span>
249            </table>
250            </tr>
251        </table>
252    </div>
253   
254    <div class="metadataSection" py:def="Coverage(editLink)">
255        <?python       
256                                divID = 'spatialtemporalDiv'
257                                edID = divID+'ed'
258                ?>
259        <table>
260            <tr><td class="linehead" colspan="2">
261                    <table>
262                        <tr><td>Data Coverage</td>
263                            <span py:if="editLink" py:strip="">
264                                <td align="right">
265                                        <span class="txtBlktog">
266                                        <a href="javascript:;" title="Toggle Form" 
267                                             onclick="swapLayers('$divID', '$edID'); return false;">
268                                        Add/Edit</a>
269                                        </span>
270                                    </td>
271                            </span>
272                                        </tr>
273                                </table>
274                                </td>
275                        </tr>
276            <tr>
277                <td>
278                <div id="$divID">
279                        <table><tr>
280                        <td><div py:replace="Spatial(None)"/></td>
281                        <td><div py:replace="Temporal(None)"/></td>
282                    </tr></table>
283                </div>
284                </td>
285            </tr>
286            <span py:if="editLink" py:strip="">
287                                <form action="${editLink}" method="post">
288                <tr>
289                        <td>
290                        <div id="$edID" class="hidden">
291                                <table><tr>
292                                <td><div py:replace="Spatial(editLink)"/></td>
293                            <td><div py:replace="Temporal(editLink)"/></td>
294                            </tr>
295                            <tr><td>
296                                 ${Markup(h.submit(value="Update"))}
297                                 </td></tr>
298                            </table>
299                        </div>
300                    </td>
301                    </tr>
302                                </form>
303                        </span>
304        </table>
305    </div>
306
307    <div py:def="Temporal(editLink)" py:strip="">
308                <table><tr><td colspan="2" class="cellhead">Temporal coverage</td></tr>
309            <span py:if="c.atom.t1 or c.atom.t2 or editLink" py:strip="">
310                                <tr><td>Start Date:</td>
311                                <td>
312                                <span py:if="editLink" py:strip="">
313                                ${Markup(h.text_field('t1', c.atom.t1))}
314                                </span>
315                        <span py:if="not editLink" py:strip="">
316                        ${c.atom.t1}
317                                </span>
318                                </td></tr>
319                                <tr><td>End Date:</td>
320                                <td>
321                                <span py:if="editLink" py:strip="">
322                                ${Markup(h.text_field('t2', c.atom.t2))}
323                                </span>
324                        <span py:if="not editLink" py:strip="">
325                        ${c.atom.t2}
326                                </span>
327                                </td></tr>
328            </span>
329            <span py:if="not c.atom.t1 and not c.atom.t2" py:strip="">
330                                <tr><td colspan="2">No temporal information available.</td></tr>
331                        </span>
332        </table>
333    </div>
334                           
335    <div py:def="Spatial(editLink)" py:strip="">
336        <table>
337            <tr><td colspan="2" class="cellhead">Spatial coverage</td></tr>
338            <span py:if="not c.atom.minX and not c.atom.minY and not c.atom.maxX and not c.atom.maxY and not editLink" py:strip="">
339                    <tr><td colspan="2">No spatial coverage information available.</td></tr>
340                </span>
341            <span py:if="c.atom.minX or c.atom.minY or c.atom.maxX or c.atom.maxY or editLink" py:strip="">
342                                <tr>
343                                <td colspan="2" align="center">
344                                <span py:if="editLink" py:strip="">
345                                ${Markup(h.text_field('maxY', c.atom.maxY))}
346                                </span>
347                        <span py:if="not editLink" py:strip="">
348                        ${c.atom.maxY}
349                                </span>
350                                </td></tr>
351                        <tr><td align="center">
352                                <span py:if="editLink" py:strip="">
353                                ${Markup(h.text_field('minX', c.atom.minX))}
354                                </span>
355                        <span py:if="not editLink" py:strip="">
356                        ${c.atom.minX}
357                                </span>
358                        </td><td align="center">
359                                <span py:if="editLink" py:strip="">
360                                ${Markup(h.text_field('maxX', c.atom.maxX))}
361                                </span>
362                        <span py:if="not editLink" py:strip="">
363                        ${c.atom.maxX}
364                                </span>
365                        </td></tr>
366                        <tr><td colspan="2" align="center">
367                                <span py:if="editLink" py:strip="">
368                                ${Markup(h.text_field('minY', c.atom.minY))}
369                                </span>
370                        <span py:if="not editLink" py:strip="">
371                        ${c.atom.minY}
372                                </span>
373                        </td></tr>
374                </span>
375        </table> 
376    </div>
377   
378       
379    <div py:def="Services()" id="ServiceList">
380        <table cellspacing="0" cellpadding="3" width=" 100%" border="0"><tbody>
381            <tr><td class="linehead" colspan="3"><span class="headingO">Links and Services</span></td></tr>
382            <tr py:if="c.atom.ndgObject is not None">
383                    <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.xmlURL,g.icons_xml,'[XML]')"/></td>
384                <td>Downloadable XML version of this record
385                    <span py:if="c.atom.ndgObject.gettable==1" py:strip="">
386                (Original <span py:replace="linkimage(c.atom.ndgObject.xmlURL+'&amp;outputSchema=original',g.icons_xml,'[XML]')"/>)
387                    </span></td>
388                </tr>
389            <tr py:if="c.atom.ndgObject is not None">
390                <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.printableURL,g.icons_prn,'[HTML]')"/></td>
391                    <td>Viewable XML version of this record
392                 <span py:if="c.atom.ndgObject.gettable==1" py:strip="">
393                    (Original <span py:replace="linkimage(c.atom.ndgObject.printableURL+'&amp;outputSchema=original',g.icons_prn,'[HTML]')"/>)
394                </span></td>
395            </tr>
396            <tr py:if="c.atom.ndgObject.gettable==1"><td></td><td>(Original records are the raw material harvested from data providers)</td></tr>
397        </tbody></table>
398    </div>
399   
400</html>
Note: See TracBrowser for help on using the repository browser.