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

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

Create new template function, outputAtomLinks, to standardise display
of links to other atoms docs + add new help text + links.

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