source: MILK/trunk/milk_server/milk_server/templates/atom_editor/atom_functions.html @ 4594

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/MILK/trunk/milk_server/milk_server/templates/atom_editor/atom_functions.html@4594
Revision 4594, 32.8 KB checked in by cbyrom, 11 years ago (diff)

Improve look + feel - esp. on windows IE + pass debug flag into
validator + properly handle empty author content.

Line 
1<!--! A collection of template definitions for use in atom output construction -->
2<html xmlns="http://www.w3.org/1999/xhtml" 
3        xmlns:py="http://genshi.edgewall.org/"
4        xmlns:xi="http://www.w3.org/2001/XInclude"
5        py:strip="">
6       
7    <xi:include href="../utils.html" />
8
9    <div py:if="c.errors" class="error" py:def="displayErrors()">
10        <h3>Input error</h3>
11        <table align="center">
12        <span py:for="key, errors in c.errors.items()" py:strip="">
13                <tr py:for="error in errors">
14                        <td align="left">${Markup(error)}</td>
15                </tr>
16        </span>
17        </table>
18    </div>
19
20   
21    <div py:def="UploadCSMLOrCDMLFileRows(editLink)">
22      <tr>
23      <td class="cellhead">
24          CSML or CDML file:
25          </td>
26          <td>
27                  ${Markup(h.file_field('CSMLOrCDML', size="80"))}
28          </td>
29          </tr>
30          <tr>
31      <td class="cellhead">
32          Dataset ID:
33                <span py:replace="helpIcon('datasetID_help')"/>
34          </td>
35          <td>
36                  ${Markup(h.text_field('datasetID', size="80"))}
37          </td>
38          </tr>
39            <tr id="datasetID_help" class="hidden" >
40                       <td class="helptxt" colspan="2">
41                    If uploading CDML data, specify a dataset ID to use for the generated
42                    CSML file - otherwise this will be created randomly.
43                           </td>
44                  </tr>                 
45          <tr>
46      <td class="cellhead">
47          Time axis:
48                <span py:replace="helpIcon('timeAxis_help')"/>
49          </td>
50          <td>
51                  ${Markup(h.text_field('timeAxis', size="80"))}
52          </td>
53          </tr>
54            <tr id="timeAxis_help" class="hidden" >
55                       <td class="helptxt" colspan="2">
56                    If uploading CDML data, specify the time axis used by the
57                    CDML file - NB, 'time' is taken as the default axis.
58                           </td>
59                  </tr>                 
60      <tr>
61      <td />
62      <td colspan="2">
63                ${Markup(h.submit('Upload', **{'onclick': 'Div_show("loading");'}))}
64      </td>
65      </tr>
66        </div>
67
68   
69    <div py:def="UploadCSMLOrCDMLFileForm(editLink)">
70        <div class="headingblock" py:if="editLink">
71                ${Markup(h.form(h.url(controller='atom_editor/editatom', action='upload', uri = c.uri), multipart=True))}
72                <table>
73                        <tr>
74                                <td class="linehead" colspan="2">
75                                Upload data
76                            </td>
77                        </tr>
78                        <div py:replace="UploadCSMLOrCDMLFileRows(editLink)"/>
79                        </table>
80                        ${Markup(h.end_form())}
81                </div>
82        </div>
83
84   
85    <div py:def="UploadFile(title, fileType, editLink)">
86        <div class="headingblock" py:if="editLink">
87        ${Markup(h.form(h.url(controller='atom_editor/editatom', action='upload', uri = c.uri), multipart=True))}
88        <table>
89                              <tr>
90                              <td class="cellhead">
91                              ${Markup(title)}
92                                  </td>
93                                  </tr>
94                                  <tr>
95                                  <td></td>
96                                  <td>
97                                          ${Markup(h.file_field('upload_' + fileType, size="80"))}
98                                  </td>
99                                  </tr>
100                              <tr>
101                              <td />
102                              <td colspan="2">
103                        ${Markup(h.submit('Upload', **{'onclick': 'Div_show("loading");'}))}
104                              </td>
105                              </tr>
106        </table>
107                ${Markup(h.end_form())}
108                </div>
109        </div>
110
111   
112    <div class="metadataSection" py:def="ContentFile(fileName, editLink)">
113        <?python       
114                                divID = 'contentFileDiv'
115                                edID=divID+'ed'
116                ?>
117        <table>
118            <tr><td class="linehead">
119                    <table>
120                        <tr><td>Content File</td>
121                            <span py:if="editLink" py:strip="">
122                                <td align="right">
123                                        <span class="txtBlktog">
124                                        <a href="javascript:;" title="Toggle Form" 
125                                             onclick="swapLayers('$divID', '$edID'); return false;">
126                                        Add/Edit</a>
127                                        </span>
128                                    </td>
129                            </span>
130                                        </tr>
131                                </table>
132            </td></tr>
133            <tr><td>
134                <div id = "$divID">
135                                <div py:replace="ContentFileTable(fileName, None)"/>
136                        </div>
137                        </td></tr>
138                <tr py:if="editLink"><td>
139                        <div id="$edID" class="hidden">
140                                <div py:replace="ContentFileTable(fileName, editLink)"/>
141                        </div>
142                        </td></tr>
143        </table>
144        </div>
145
146
147        <div py:def="ContentFileTable(fileName, editLink)">
148                <form action="${editLink}" method="post">
149            <table>
150                <tr py:if="not editLink and not fileName">
151                                <td colspan="3">No data specified at present</td>
152                        </tr>
153                        <tr py:if="editLink or fileName">
154                                <td class="cellhead">File name:</td>
155                        <td py:if="editLink">
156                                    ${Markup(h.text_field('contentFile', fileName))}
157                                        </td>
158                        <td py:if="not editLink">
159                        ${Markup(fileName)}
160                                </td>
161                                <td py:if="editLink">
162                                ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
163                                </td>
164                </tr>
165                        </table>
166                </form>
167        </div>
168
169    <div class="headingblock" py:def="GeneralInfo(editLink)">
170                <h4>General Info</h4>
171                <form action="${c.saveLink}" method="post">
172                        <table summary="" width="100%">
173                        <tr>
174                        <td class="cellhead" width="10%">Title:</td>
175                        <td py:if="editLink" class="column">
176                                ${Markup(h.text_field('title',c.atom.title, size="120"))}
177                        </td>
178                        <td py:if="not editLink" class="column">
179                                ${Markup(c.atom.title)}
180                        </td>
181                        <?python logos = c.atom.getLogos() ?>
182                        <td py:if="logos">
183                   <img py:for="logo in logos" 
184                        alt="$logo.rel" 
185                        src="$logo.href" class="clear"/>
186                </td>
187                            </tr>
188                            <tr py:if="not editLink">
189                        <td class="cellhead">Type:</td>
190                        <td class="column">
191                                ${Markup(c.atom.atomTypeName)}
192                        </td>
193                        </tr>
194                            <span py:if="len(c.subTypes) &gt; 0" py:strip="">
195                            <tr>
196                        <td class="cellhead">Sub-Type:</td>
197                        <td py:if="editLink" class="column">
198                                ${Markup(h.select('subtype',option_tags=c.subTypes))}
199                        </td>
200                        <td py:if="not editLink" class="column">
201                                ${Markup(g.vtd.tidySubTypeTitle(c.atom.subtypeID))}
202                        </td>
203                        </tr>
204                        </span>
205                        <tr py:if="not c.atom.isDeployment()">
206                        <td class="cellhead" width="10%">Abbreviation:</td>
207                        <td py:if="editLink" class="column">
208                                ${Markup(h.text_field('abbreviation',c.atom.ME.abbreviation))}
209                        </td>
210                        <td py:if="not editLink" class="column">
211                                ${Markup(c.atom.ME.abbreviation or "")}
212                        </td>
213                            </tr>
214                         <tr>
215                        <td></td>
216                        <td py:if="editLink">
217                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
218                        </td>
219                </tr></table>
220        </form>
221        </div>
222
223
224   
225    <div class="metadataSection" py:def="TextArea(name, value, editLink)">
226        <?python       
227                                divID = name + 'Div'
228                                edID=divID+'ed'
229                ?>
230        <table py:if="value or editLink">
231            <tr><td class="linehead">
232                    <table>
233                        <tr><td>${name}</td>
234                            <span py:if="editLink" py:strip="">
235                                <td align="right">
236                                        <span class="txtBlktog">
237                                        <a href="javascript:;" title="Toggle Form" 
238                                             onclick="swapLayers('$divID', '$edID'); return false;">
239                                        Add/Edit</a>
240                                        </span>
241                                    </td>
242                            </span>
243                                        </tr>
244                                </table>
245            </td></tr>
246            <tr><td>
247                <div id = "$divID">
248                                ${Markup(value or 'No data specified at present')}
249                        </div>
250                        </td></tr>
251                <tr py:if="editLink"><td>
252                        <div id="$edID" class="hidden">
253                                        <form action="${editLink}" method="post">
254                                        <table>
255                                <tr><td>
256                                        ${Markup(h.text_area(name, value, class_="fullWidth", rows="9"))}
257                                </td></tr>
258                                <tr><td>
259                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
260                    </td></tr>
261                                        </table>
262                                        </form>
263                        </div>
264                        </td></tr>
265        </table>
266    </div>
267   
268    <div class="metadataSection" py:def="People(ptype,listOfPeople,editLink)">
269        <?python       
270                                divID = ptype + 'peopleDiv'
271                                edID=divID+'ed'
272                ?>
273        <table py:if="listOfPeople or editLink">
274            <tr><td class="linehead">
275                    <table>
276                        <tr><td>$ptype</td>
277                            <span py:if="editLink" py:strip="">
278                                <td align="right">
279                                        <span class="txtBlktog">
280                                        <a href="javascript:;" title="Toggle Form" 
281                                             onclick="swapLayers('$divID', '$edID'); return false;">
282                                        Add/Edit</a>
283                                        </span>
284                                    </td>
285                            </span>
286                                        </tr>
287                                </table>
288            </td></tr>
289            <tr><td>
290                <div id = "$divID">
291                                <div py:replace="PeopleTable(listOfPeople, ptype, None)"/>
292                        </div>
293                        </td></tr>
294                <tr py:if="editLink"><td>
295                        <div id="$edID" class="hidden">
296                                <div py:replace="PeopleTable(listOfPeople, ptype, editLink)"/>
297                        </div>
298                        </td></tr>
299        </table>
300    </div>
301
302        <div py:def="PeopleTable(listOfPeople, ptype, editLink)">
303                <form action="${editLink}" method="post">
304            <table>
305                <tr>
306                        <?python
307                                hasRole = False
308                                dataType = 'email'
309                                if ptype == "Responsible Parties":
310                                        hasRole = True
311                                        dataType = 'URI'
312                                               
313                                extraRows = 3
314                                if ptype == "Author":
315                                        extraRows = 0
316                        ?>
317                        <span py:if="not editLink and not listOfPeople" py:strip="">
318                                <td colspan="3">No data specified at present</td>
319                        </span>
320                        <span py:if="editLink or listOfPeople" py:strip="">
321                                <th py:if="hasRole" align="left">Role</th>
322                                <th align="left">Name</th>
323                                <th align="left">${dataType}</th>
324                        </span>
325                        <span py:if="editLink and listOfPeople" py:strip="">
326                                <th align="center">Remove</th>
327                        </span>
328                </tr>
329                    <tr py:for="i, person in enumerate(listOfPeople)">
330                        <span py:if="hasRole" py:strip="">
331                                <td py:if="editLink">
332                                            ${Markup(h.text_field(ptype + '.' + str(i) + '.role',person.role))}
333                                        </td>
334                        <td py:if="not editLink">
335                                $person.role
336                                </td>
337                        </span>
338                        <td>
339                        <span py:if="editLink" py:strip="">
340                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.name',person.name))}
341                                </span>
342                        <span py:if="not editLink" py:strip="">
343                                $person.name
344                                </span>
345                        </td>
346                        <td>
347                        <span py:if="editLink" py:strip="">
348                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.uri',person.uri))}
349                                </span>
350                        <span py:if="not editLink" py:strip="">
351                                <a href="$person.uri">$person.uri</a>
352                                </span>
353                        </td>
354                        <span py:if="editLink and listOfPeople" py:strip="">
355                                <td align="center">
356                                        ${Markup(h.check_box(ptype + '.' + str(i) + '.remove'))}
357                                </td>
358                        </span>
359                                </tr>
360                                <!--! Add a few more rows when in edit mode  -->
361                        <span py:if="editLink" py:strip="">
362                    <tr py:for="i in range(len(listOfPeople), len(listOfPeople) + extraRows)">
363                        <td py:if="hasRole">
364                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.role'))}
365                        </td>
366                        <td>
367                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.name'))}
368                        </td>
369                        <td>
370                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.uri'))}
371                        </td>
372                        <span py:if="editLink" py:strip=""><td></td></span>
373                                </tr>
374                       
375                                <tr><td>
376                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
377                      </td></tr>
378                                </span>
379                        </table>
380                </form>
381        </div>
382       
383   
384    <div class="headingblock" py:def="SummaryDeployments(deployments)" id="summaryDeployment">
385        <table py:if="deployments">
386                <tr>
387                <td class="headingblock">
388                <table><tr><td><h3>Deployments - summary</h3></td>
389                    <td align="right">
390                <span py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navPlus)" strip=""/>
391                </td></tr>
392                        </table>
393            </td></tr>
394                        <tr><td>
395                        <table id="deploymentsTable">
396                                <tr>
397                                <td class="cellhead">Activities</td>
398                                <td>
399                                        <span py:for="act in c.atom.allActivities" py:strip="">
400                                                <a href="$act.href">${act.title or act.href}</a>&nbsp;&nbsp; 
401                                        </span>
402                                </td>                   
403                                </tr>
404                                <tr><td class="cellhead">Observation Stations</td>
405                                <td>
406                                        <span py:for="obs in c.atom.allObs" py:strip="">
407                                                <a href="$obs.href">${obs.title or obs.href}</a>&nbsp;&nbsp; 
408                                        </span>
409                                </td>                   
410                                </tr>
411                                <tr><td class="cellhead">Data Production tools</td>
412                                <td>
413                                        <span py:for="dpt in c.atom.allDpts" py:strip="">
414                                                <a href="$dpt.href">${dpt.title or dpt.href}</a>&nbsp;&nbsp; 
415                                        </span>
416                                </td>                   
417                                </tr>
418                        </table></td></tr>
419                </table>
420        </div>
421   
422    <div class="headingblock hidden" py:def="FullDeployments(deployments)" id="fullDeployment">
423        <table py:if="deployments">
424        <tr><td class="headingblock" >
425            <table><tr><td><h3>Deployments - details</h3></td>
426            <td align="right">
427            <span py:if="deployments" py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navMinus)" strip=""/>
428            </td></tr></table>
429        </td></tr>
430        <tr>
431                <table class="subTable">
432                                <div py:for="deployment in deployments" py:strip="">
433                                <div py:replace="FullDeployment(deployment)"/>
434                        </div>
435                </table></tr>
436                </table>
437        </div>
438   
439    <div class="headingblock" py:def="DataEntities(des)">
440        <table py:if="des">
441        <tr><td class="headingblock" >
442            <table><tr><td><h3>Associated Data Entities - summary</h3></td>
443                        </tr></table>
444        </td></tr>
445        <tr>
446                <table class="subTable">
447                                <tr><td class="cellhead">Title</td></tr>
448                                <tr py:for="de in des">
449                                <td><a href="$de.href">${de.title or de.href}</a></td>
450                        </tr>
451                </table></tr>
452                </table>
453        </div>
454       
455    <div py:def="FullDeployment(dep)" py:strip="">
456                <tr class="cellhead" colspan="2"><td> Start Date: ${dep.startDate or 'None'}, End Date: ${dep.endDate or 'None'}</td></tr>
457        <tr py:for="link in dep.getAllLinks()" >
458        <?python
459                rel=link.rel.upper()
460                if rel.startswith(g.vtd.ACTIVITY_TERM):
461                                rel = "Activity"
462                elif rel.startswith(g.vtd.OBS_TERM):
463                                rel = "Observation Station"
464                elif rel.startswith(g.vtd.DPT_TERM):
465                                rel = "Data Production Tool"
466        ?>
467        <td>$rel</td><td><a href="$link.href">${link.title or link.href}</a></td>
468        </tr>
469    </div>
470
471
472    <span py:def="expandHideSection(div1,div2,icon)">
473            <a href="javascript:;" title="Show/Hide details" 
474                onclick="swapLayers('$div1', '$div2'); return false;">
475            <img src="$icon" alt="Toggle expand/contract" class="helpicon"/></a>
476    </span>
477
478    <div class="metadataSection" py:def="OnlineReferences(links, editLink)">
479        <?python       
480                                divID = 'onlineRefDiv'
481                                edID = divID+'ed'
482                ?>
483                <table py:if="links or editLink">
484            <tr><td class="linehead">
485                    <table>
486                        <tr><td>Online References</td>
487                            <span py:if="editLink" py:strip="">
488                                <td align="right">
489                                        <span class="txtBlktog">
490                                        <a href="javascript:;" title="Toggle Form" 
491                                             onclick="swapLayers('$divID', '$edID'); return false;">
492                                        Add/Edit</a>
493                                        </span>
494                                    </td>
495                            </span>
496                                        </tr>
497                                </table>
498                                </td>
499                        </tr>
500            <tr><td>
501                <div id = "$divID">
502                                <div py:if="links" py:replace="OnlineRefEditTable(links, None)"/>
503                        <span py:if="not links" py:strip="">No data specified at present</span>
504                        </div>
505                        </td></tr>
506                <tr py:if="editLink"><td>
507                        <div id="$edID" class="hidden">
508                                <div py:replace="OnlineRefEditTable(links, editLink)"/>
509                        </div>
510                        </td></tr>
511                        <tr><td>
512            </td></tr>
513        </table>
514    </div>
515
516
517        <div py:def="OnlineRefEditTable(links, editLink)">
518                <form action="${editLink}" method="post">
519                        <?python
520                                from ndgUtils.models.Atom import Atom as a
521                                refLabel = a.ONLINE_REF_LABEL + "."
522                                remLabel = "." + a.REMOVE_LABEL
523                                extraRows = 3
524                        ?>
525            <table>
526                <tr>
527                                <th align="left">Relation</th>
528                        <th py:if="editLink" align="left">URI</th>
529                        <th align="left">Title</th>
530                        <th py:if="links and editLink" align="center">Remove</th>
531                </tr>
532                    <tr py:for="i, link in enumerate(links)">
533                            <?python
534                        # get the default display value type
535                        try:
536                                vti = g.vtd.getTermItemfromFullVocabURI(link.rel)
537                                displayType = vti.title or link.rel
538                        except:
539                                displayType = link.rel
540                            ?>
541                        <td>
542                                                <span py:if="editLink" py:strip="">
543                                        ${Markup(h.select(refLabel + str(i) + '.rel', option_tags=c.relatedLinkSelectedLists[str(link)]))}
544                                                </span>
545                                        <span py:if="not editLink" py:strip="">
546                                        ${Markup(displayType)}
547                                                </span>
548                        </td>
549                        <td py:if="editLink">
550                                    ${Markup(h.text_field(refLabel + str(i) + '.href', link.href))}
551                                        </td>
552                        <td>
553                                                <span py:if="editLink" py:strip="">
554                                            ${Markup(h.text_field(refLabel + str(i) + '.title', link.title))}
555                                                </span>
556                                        <span py:if="not editLink" py:strip="">
557                                                <a href="${link.href}">${Markup(link.title or link.href)}</a>
558                                                </span>
559                        </td>
560                        <td py:if="editLink" align="center">
561                                ${Markup(h.check_box(refLabel + str(i) + remLabel))}
562                        </td>
563                                </tr>
564                    <tr py:if="editLink" py:for="i in range(len(links), len(links) + extraRows)">
565                        <td>
566                                        ${Markup(h.select(refLabel + str(i) + '.rel', option_tags=c.relatedLinkTerms))}
567                        </td>
568                        <td>
569                                    ${Markup(h.text_field(refLabel + str(i) + '.href'))}
570                        </td>
571                        <td>
572                                    ${Markup(h.text_field(refLabel + str(i) + '.title'))}
573                        </td>
574                        <td py:if="links" />
575                                </tr>
576                        <tr py:if="editLink"><td>
577                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
578                </td></tr>
579                        </table>
580                </form>
581        </div>
582   
583
584    <div class="metadataSection" py:def="Associations(sectionName, links, addLink, editLink)">
585        <?python       
586                                divID = sectionName + 'Div'
587                                edID = divID+'ed'
588                ?>
589                <table py:if="links or editLink">
590            <tr><td class="linehead">
591                    <table>
592                        <tr><td>${sectionName}</td>
593                            <span py:if="addLink" py:strip="">
594                                <td align="right">
595                                        <span class="txtBlktog">
596                                        <a href="$addLink">Add</a>
597                                        <a py:if="links" href="javascript:;" title="Toggle Form" 
598                                             onclick="swapLayers('$divID', '$edID'); return false;">
599                                        Edit</a>
600                                        </span>
601                                    </td>
602                            </span>
603                                        </tr>
604                                </table>
605                                </td>
606                        </tr>
607            <tr><td>
608                <div id = "$divID">
609                                <div py:replace="AssociationsTable(links, None)"/>
610                        </div>
611                        </td></tr>
612                <tr py:if="editLink"><td>
613                        <div id="$edID" class="hidden">
614                                <div py:replace="AssociationsTable(links, editLink)"/>
615                        </div>
616                        </td></tr>
617                        <tr><td>
618            </td></tr>
619        </table>
620    </div>
621
622
623        <div py:def="AssociationsTable(links, editLink)">
624                <form py:if="links" action="${editLink}" method="post">
625                <?python c.isDeployment = False ?>
626            <table>
627                <tr>
628                                <th align="left">Type</th>
629                        <th align="left">Title</th>
630                        <th py:if="editLink and links" align="center">Remove</th>
631                </tr>
632                                <?python
633                                        from ndgUtils.models.Atom import Atom as a
634                                        delim = a.DELIMITER
635                                        refLabel = a.ATOM_REF_LABEL + delim
636                                ?>
637                    <tr py:for="i, link in enumerate(links)">
638                            <?python
639                        # get the default display value
640                        displayVal = link.title or link.href
641                        try:
642                                vti = g.vtd.getTermItemfromFullVocabURI(link.rel)
643                                subType = g.vtd.tidySubTypeTitle(vti.title)
644                        except:
645                                subType = link.rel
646
647                        inputLabel = refLabel + link.href + delim + (link.title or "") + delim + link.rel
648                        if subType == 'Deployment':
649                                c.isDeployment = True
650                            ?>
651                            <td>${subType}</td>
652                            <td><a href="$link.href">${displayVal}</a></td>
653                        <td py:if="editLink and links" align="center">
654                                ${Markup(h.check_box(inputLabel))}
655                        </td>
656                                </tr>
657                        <tr py:if="editLink and links"><td></td><td></td><td align="center">
658                        ${Markup(h.submit('Remove', **{'onclick': 'Div_show("loading");'}))}
659                        </td></tr>
660                        </table>
661                </form>
662                <table py:if="not links"><tr><td>
663                        No data specified at present
664                </td></tr>
665                </table>
666        </div>
667
668
669    <div py:def="FullParameterList(params, editLink, visibility)">
670            <div class="metadataSection ${visibility}" id="fullParams">
671        <?python       
672                                divID = 'parametersDiv'
673                                edID = divID+'ed'
674                ?>
675        <table py:if="params or editLink">
676            <tr><td class="linehead">
677            <table>
678                    <tr><td>Parameters - details</td>
679                <td align="right">
680                <a py:if="editLink" href="javascript:;" title="Toggle Form" 
681                             onclick="swapLayers('$divID', '$edID'); return false;">
682                        Add/Edit</a>
683                    <span py:if="not editLink" py:replace="expandHideSection('fullParams','summaryParams',g.navMinus)" strip=""/>
684            </td></tr></table></td></tr>
685            <tr><td>
686                <div id = "$divID">
687                            <div py:replace="ParametersTable(params, None)"/>
688                        </div>
689                        </td></tr>
690                <tr py:if="editLink"><td>
691                        <div id="$edID" class="hidden">
692                            <div py:replace="ParametersTable(params, editLink)"/>
693                        </div>
694                        </td></tr>
695
696        </table>
697        </div>
698    </div>
699
700
701    <div class="metadataSection" py:def="ParametersTable(params, editLink)" id="fullParams">
702                <form action="${editLink}" method="post">
703                        <?python
704                                from ndgUtils.models.Atom import Atom as a
705                                refLabel = a.PARAMETER_LABEL + "."
706                                remLabel = "." + a.REMOVE_LABEL
707                                extraRows = 3
708                        ?>
709                <table class="subTable">
710                <tr py:if="params or editLink" class="cellhead">
711                                <th align="left">Label</th>
712                                <th align="left">Vocab Term URL</th>
713                        <th align="left">Vocab Term ID</th>
714                                <th py:if="params and editLink" align="center">Remove</th>
715                        </tr>
716                                <tr py:if="not editLink and not params">
717                                <td colspan="3">No data specified at present</td>
718                </tr>
719                    <tr py:for="i, param in enumerate(params)">
720                        <td>
721                                                <span py:if="editLink" py:strip="">
722                                            ${Markup(h.text_field(refLabel + str(i) + '.label', param.label, class_="fullWidth"))}
723                                                </span>
724                                        <span py:if="not editLink" py:strip="">
725                                                ${param.label}
726                                                </span>
727                        </td>
728                        <td>
729                                                <span py:if="editLink" py:strip="">
730                                            ${Markup(h.text_field(refLabel + str(i) + '.scheme', param.scheme, class_="fullWidth"))}
731                                                </span>
732                                        <span py:if="not editLink" py:strip="">
733                                                ${param.scheme}
734                                                </span>
735                                        </td>
736                        <td>
737                                                <span py:if="editLink" py:strip="">
738                                            ${Markup(h.text_field(refLabel + str(i) + '.term', param.term, class_="fullWidth"))}
739                                                </span>
740                                        <span py:if="not editLink" py:strip="">
741                                                ${param.term}
742                                                </span>
743                        </td>
744                        <td py:if="editLink" align="center">
745                                ${Markup(h.check_box(refLabel + str(i) + remLabel))}
746                        </td>
747                                </tr>
748                    <tr py:if="editLink" py:for="i in range(len(params), len(params) + extraRows)">
749                        <td>
750                                        ${Markup(h.text_field(refLabel + str(i) + '.label', class_="fullWidth"))}
751                        </td>
752                        <td>
753                                    ${Markup(h.text_field(refLabel + str(i) + '.scheme', class_="fullWidth"))}
754                        </td>
755                        <td>
756                                    ${Markup(h.text_field(refLabel + str(i) + '.term', class_="fullWidth"))}
757                        </td>
758                        <td py:if="params" />
759                                </tr>
760                        <tr py:if="editLink"><td>
761                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
762                </td></tr>
763                        </table>
764                </form>
765    </div>
766
767
768    <div py:def="SummaryParameterList(params)" id="summaryParams" class="metadataSection shown">
769        <table py:if="params">
770            <tr><td class="linehead">
771            <table><tr><td>Parameters - summary</td>
772            <td align="right">
773            <span py:replace="expandHideSection('fullParams','summaryParams',g.navPlus)" strip=""/>
774            </td></tr></table></td></tr>
775            <tr>
776            <table class="subTable">
777                <?python
778                        fullLength = len(list(params))
779                        colNumber = 4
780                ?>
781                        <span py:for="index, param in enumerate(params)" py:strip="">
782                                <tr class="summaryText">
783                                 <span py:if="not index%colNumber" py:strip="">
784                                 <span py:for="i in range(colNumber)" py:strip="">
785                                        <td py:if="index &lt; fullLength - i">${params[index + i].label or params[index + i].term or params[index + i].scheme}</td>
786                                 </span>
787                                 </span>
788                                        </tr>
789                        </span>
790            </table>
791            </tr>
792        </table>
793    </div>
794   
795    <div class="metadataSection" py:def="Coverage(editLink)">
796        <?python       
797                                divID = 'spatialtemporalDiv'
798                                edID = divID+'ed'
799                ?>
800        <table>
801            <tr><td class="linehead" colspan="2">
802                    <table>
803                        <tr><td>Data Coverage</td>
804                            <span py:if="editLink" py:strip="">
805                                <td align="right">
806                                        <span class="txtBlktog">
807                                        <a href="javascript:;" title="Toggle Form" 
808                                             onclick="swapLayers('$divID', '$edID'); return false;">
809                                        Add/Edit</a>
810                                        </span>
811                                    </td>
812                            </span>
813                                        </tr>
814                                </table>
815                                </td>
816                        </tr>
817            <tr>
818                <td>
819                <div id="$divID">
820                        <table><tr>
821                        <td><div py:replace="Spatial(None)"/></td>
822                        <td><div py:replace="Temporal(None)"/></td>
823                    </tr></table>
824                </div>
825                </td>
826            </tr>
827            <span py:if="editLink" py:strip="">
828                                <form action="${editLink}" method="post">
829                <tr>
830                        <td>
831                        <div id="$edID" class="hidden">
832                                <table><tr>
833                                <td><div py:replace="Spatial(editLink)"/></td>
834                            <td><div py:replace="Temporal(editLink)"/></td>
835                            </tr>
836                            <tr><td>
837                                ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
838                                 </td></tr>
839                            </table>
840                        </div>
841                    </td>
842                    </tr>
843                                </form>
844                        </span>
845        </table>
846    </div>
847
848    <div py:def="Temporal(editLink)" py:strip="">
849                <table><tr><td class="cellhead">Temporal coverage</td>
850                        <td py:if="editLink">(e.g. 1975-04-28)</td></tr>
851            <span py:if="c.atom.t1 or c.atom.t2 or editLink" py:strip="">
852                                <tr><td>Start Date:</td>
853                                <td>
854                                <span py:if="editLink" py:strip="">
855                                ${Markup(h.text_field('t1', c.atom.t1))}
856                                </span>
857                        <span py:if="not editLink" py:strip="">
858                        ${c.atom.t1}
859                                </span>
860                                </td></tr>
861                                <tr><td>End Date:</td>
862                                <td>
863                                <span py:if="editLink" py:strip="">
864                                ${Markup(h.text_field('t2', c.atom.t2))}
865                                </span>
866                        <span py:if="not editLink" py:strip="">
867                        ${c.atom.t2}
868                                </span>
869                                </td></tr>
870            </span>
871            <span py:if="not c.atom.t1 and not c.atom.t2 and not editLink" py:strip="">
872                                <tr><td colspan="2">No temporal information available.</td></tr>
873                        </span>
874        </table>
875    </div>
876                           
877    <div py:def="Spatial(editLink)" py:strip="">
878        <table>
879            <tr><td colspan="2" class="cellhead">Spatial coverage</td></tr>
880            <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="">
881                    <tr><td colspan="2">No spatial coverage information available.</td></tr>
882                </span>
883            <span py:if="c.atom.minX or c.atom.minY or c.atom.maxX or c.atom.maxY or editLink" py:strip="">
884                                <tr>
885                                <td colspan="2" align="center">
886                                <span py:if="editLink" py:strip="">
887                                <span class="cellhead">Max Y</span> ${Markup(h.text_field('maxY', c.atom.maxY))}
888                                </span>
889                        <span py:if="not editLink" py:strip="">
890                        <span class="cellhead">Max Y</span> ${c.atom.maxY}
891                                </span>
892                                </td></tr>
893                        <tr><td align="center">
894                                <span py:if="editLink" py:strip="">
895                                <span class="cellhead">Min X</span> ${Markup(h.text_field('minX', c.atom.minX))}
896                                </span>
897                        <span py:if="not editLink" py:strip="">
898                        <span class="cellhead">Min X</span> ${c.atom.minX}
899                                </span>
900                        </td><td align="center">
901                                <span py:if="editLink" py:strip="">
902                                <span class="cellhead">Max X</span> ${Markup(h.text_field('maxX', c.atom.maxX))}
903                                </span>
904                        <span py:if="not editLink" py:strip="">
905                        <span class="cellhead">Max X</span> ${c.atom.maxX}
906                                </span>
907                        </td></tr>
908                        <tr><td colspan="2" align="center">
909                                <span py:if="editLink" py:strip="">
910                                <span class="cellhead">Min Y</span> ${Markup(h.text_field('minY', c.atom.minY))}
911                                </span>
912                        <span py:if="not editLink" py:strip="">
913                        <span class="cellhead">Min Y</span> ${c.atom.minY}
914                                </span>
915                        </td></tr>
916                </span>
917        </table> 
918    </div>
919   
920       
921    <div py:def="Services()" id="ServiceList" class="metadataSection">
922        <table cellspacing="0" cellpadding="3" width="100%" border="0"><tbody>
923            <tr><td class="linehead" colspan="3"><span class="headingO">Links and Services</span></td></tr>
924            <tr py:if="c.atom.ndgObject is not None">
925                    <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.xmlURL,g.icons_xml,'[XML]')"/></td>
926                <td>Downloadable XML version of this record
927                    <span py:if="c.atom.ndgObject.gettable==1" py:strip="">
928                (Original <span py:replace="linkimage(c.atom.ndgObject.xmlURL+'&amp;outputSchema=original',g.icons_xml,'[XML]')"/>)
929                    </span></td>
930                </tr>
931            <tr py:if="c.atom.ndgObject is not None">
932                <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.printableURL,g.icons_prn,'[HTML]')"/></td>
933                    <td>Viewable XML version of this record
934                 <span py:if="c.atom.ndgObject.gettable==1" py:strip="">
935                    (Original <span py:replace="linkimage(c.atom.ndgObject.printableURL+'&amp;outputSchema=original',g.icons_prn,'[HTML]')"/>)
936                </span></td>
937            </tr>
938            <tr py:if="c.atom.ndgObject.gettable==1"><td></td><td>(Original records are the raw material harvested from data providers)</td></tr>
939        </tbody></table>
940    </div>
941
942   
943    <!--! Help Icons -->
944    <span py:def="helpIcon(value)">
945        <span>
946            <a href="javascript:;" title="Toggle help" onclick="toggleDiv(1,'$value','shown','hidden','tr'); return false;">
947            <img src="$g.helpIcon" alt="Toggle help" class="helpicon"/></a>
948     
949        </span>
950    </span>
951
952   
953</html>
Note: See TracBrowser for help on using the repository browser.