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

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

Improve the loading animation - to provide semi-transparent screen
to block out the current page functionality (but exposing the tabs, still)
Implement the animation wherever form submission is used.

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                                <input type='button' onclick='history.go(-1)' value='Cancel' />
219                        </td>
220                </tr></table>
221        </form>
222        </div>
223
224
225   
226    <div class="metadataSection" py:def="TextArea(name, value, editLink)">
227        <?python       
228                                divID = name + 'Div'
229                                edID=divID+'ed'
230                ?>
231        <table py:if="value or editLink">
232            <tr><td class="linehead">
233                    <table>
234                        <tr><td>${name}</td>
235                            <span py:if="editLink" py:strip="">
236                                <td align="right">
237                                        <span class="txtBlktog">
238                                        <a href="javascript:;" title="Toggle Form" 
239                                             onclick="swapLayers('$divID', '$edID'); return false;">
240                                        Add/Edit</a>
241                                        </span>
242                                    </td>
243                            </span>
244                                        </tr>
245                                </table>
246            </td></tr>
247            <tr><td>
248                <div id = "$divID">
249                                ${Markup(value or 'No data specified at present')}
250                        </div>
251                        </td></tr>
252                <tr py:if="editLink"><td>
253                        <div id="$edID" class="hidden">
254                                        <form action="${editLink}" method="post">
255                                        <table>
256                                <tr><td>
257                                        ${Markup(h.text_area(name, value, class_="fullWidth", rows="9"))}
258                                </td></tr>
259                                <tr><td>
260                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
261                    </td></tr>
262                                        </table>
263                                        </form>
264                        </div>
265                        </td></tr>
266        </table>
267    </div>
268   
269    <div class="metadataSection" py:def="People(ptype,listOfPeople,editLink)">
270        <?python       
271                                divID = ptype + 'peopleDiv'
272                                edID=divID+'ed'
273                ?>
274        <table py:if="listOfPeople or editLink">
275            <tr><td class="linehead">
276                    <table>
277                        <tr><td>$ptype</td>
278                            <span py:if="editLink" py:strip="">
279                                <td align="right">
280                                        <span class="txtBlktog">
281                                        <a href="javascript:;" title="Toggle Form" 
282                                             onclick="swapLayers('$divID', '$edID'); return false;">
283                                        Add/Edit</a>
284                                        </span>
285                                    </td>
286                            </span>
287                                        </tr>
288                                </table>
289            </td></tr>
290            <tr><td>
291                <div id = "$divID">
292                                <div py:replace="PeopleTable(listOfPeople, ptype, None)"/>
293                        </div>
294                        </td></tr>
295                <tr py:if="editLink"><td>
296                        <div id="$edID" class="hidden">
297                                <div py:replace="PeopleTable(listOfPeople, ptype, editLink)"/>
298                        </div>
299                        </td></tr>
300        </table>
301    </div>
302
303        <div py:def="PeopleTable(listOfPeople, ptype, editLink)">
304                <form action="${editLink}" method="post">
305            <table>
306                <tr>
307                        <?python
308                                hasRole = False
309                                dataType = 'email'
310                                if ptype == "Responsible Parties":
311                                        hasRole = True
312                                        dataType = 'URI'
313                                               
314                                extraRows = 3
315                                if ptype == "Author":
316                                        extraRows = 0
317                        ?>
318                        <span py:if="not editLink and not listOfPeople" py:strip="">
319                                <td colspan="3">No data specified at present</td>
320                        </span>
321                        <span py:if="editLink or listOfPeople" py:strip="">
322                                <th py:if="hasRole" align="left">Role</th>
323                                <th align="left">Name</th>
324                                <th align="left">${dataType}</th>
325                        </span>
326                        <span py:if="editLink and listOfPeople" py:strip="">
327                                <th align="center">Remove</th>
328                        </span>
329                </tr>
330                    <tr py:for="i, person in enumerate(listOfPeople)">
331                        <span py:if="hasRole" py:strip="">
332                                <td py:if="editLink">
333                                            ${Markup(h.text_field(ptype + '.' + str(i) + '.role',person.role))}
334                                        </td>
335                        <td py:if="not editLink">
336                                $person.role
337                                </td>
338                        </span>
339                        <td>
340                        <span py:if="editLink" py:strip="">
341                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.name',person.name))}
342                                </span>
343                        <span py:if="not editLink" py:strip="">
344                                $person.name
345                                </span>
346                        </td>
347                        <td>
348                        <span py:if="editLink" py:strip="">
349                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.uri',person.uri))}
350                                </span>
351                        <span py:if="not editLink" py:strip="">
352                                <a href="$person.uri">$person.uri</a>
353                                </span>
354                        </td>
355                        <span py:if="editLink and listOfPeople" py:strip="">
356                                <td align="center">
357                                        ${Markup(h.check_box(ptype + '.' + str(i) + '.remove'))}
358                                </td>
359                        </span>
360                                </tr>
361                                <!--! Add a few more rows when in edit mode  -->
362                        <span py:if="editLink" py:strip="">
363                    <tr py:for="i in range(len(listOfPeople), len(listOfPeople) + extraRows)">
364                        <td py:if="hasRole">
365                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.role'))}
366                        </td>
367                        <td>
368                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.name'))}
369                        </td>
370                        <td>
371                                    ${Markup(h.text_field(ptype + '.' + str(i) + '.uri'))}
372                        </td>
373                        <span py:if="editLink" py:strip=""><td></td></span>
374                                </tr>
375                       
376                                <tr><td>
377                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
378                      </td></tr>
379                                </span>
380                        </table>
381                </form>
382        </div>
383       
384   
385    <div class="headingblock" py:def="SummaryDeployments(deployments)" id="summaryDeployment">
386        <table py:if="deployments">
387                <tr>
388                <td class="headingblock">
389                <table><tr><td><h3>Deployments - summary</h3></td>
390                    <td align="right">
391                <span py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navPlus)" strip=""/>
392                </td></tr>
393                        </table>
394            </td></tr>
395                        <tr><td>
396                        <table id="deploymentsTable">
397                                <tr>
398                                <td class="cellhead">Activities</td>
399                                <td>
400                                        <span py:for="act in c.atom.allActivities" py:strip="">
401                                                <a href="$act.href">${act.title or act.href}</a>&nbsp;&nbsp; 
402                                        </span>
403                                </td>                   
404                                </tr>
405                                <tr><td class="cellhead">Observation Stations</td>
406                                <td>
407                                        <span py:for="obs in c.atom.allObs" py:strip="">
408                                                <a href="$obs.href">${obs.title or obs.href}</a>&nbsp;&nbsp; 
409                                        </span>
410                                </td>                   
411                                </tr>
412                                <tr><td class="cellhead">Data Production tools</td>
413                                <td>
414                                        <span py:for="dpt in c.atom.allDpts" py:strip="">
415                                                <a href="$dpt.href">${dpt.title or dpt.href}</a>&nbsp;&nbsp; 
416                                        </span>
417                                </td>                   
418                                </tr>
419                        </table></td></tr>
420                </table>
421        </div>
422   
423    <div class="headingblock hidden" py:def="FullDeployments(deployments)" id="fullDeployment">
424        <table py:if="deployments">
425        <tr><td class="headingblock" >
426            <table><tr><td><h3>Deployments - details</h3></td>
427            <td align="right">
428            <span py:if="deployments" py:replace="expandHideSection('fullDeployment','summaryDeployment',g.navMinus)" strip=""/>
429            </td></tr></table>
430        </td></tr>
431        <tr>
432                <table class="subTable">
433                                <div py:for="deployment in deployments" py:strip="">
434                                <div py:replace="FullDeployment(deployment)"/>
435                        </div>
436                </table></tr>
437                </table>
438        </div>
439   
440    <div class="headingblock" py:def="DataEntities(des)">
441        <table py:if="des">
442        <tr><td class="headingblock" >
443            <table><tr><td><h3>Associated Data Entities - summary</h3></td>
444                        </tr></table>
445        </td></tr>
446        <tr>
447                <table class="subTable">
448                                <tr><td class="cellhead">Title</td></tr>
449                                <tr py:for="de in des">
450                                <td><a href="$de.href">${de.title or de.href}</a></td>
451                        </tr>
452                </table></tr>
453                </table>
454        </div>
455       
456    <div py:def="FullDeployment(dep)" py:strip="">
457                <tr class="cellhead" colspan="2"><td> Start Date: ${dep.startDate or 'None'}, End Date: ${dep.endDate or 'None'}</td></tr>
458        <tr py:for="link in dep.getAllLinks()" >
459        <?python
460                rel=link.rel.upper()
461                if rel.startswith(g.vtd.ACTIVITY_TERM):
462                                rel = "Activity"
463                elif rel.startswith(g.vtd.OBS_TERM):
464                                rel = "Observation Station"
465                elif rel.startswith(g.vtd.DPT_TERM):
466                                rel = "Data Production Tool"
467        ?>
468        <td>$rel</td><td><a href="$link.href">${link.title or link.href}</a></td>
469        </tr>
470    </div>
471
472
473    <span py:def="expandHideSection(div1,div2,icon)">
474            <a href="javascript:;" title="Show/Hide details" 
475                onclick="swapLayers('$div1', '$div2'); return false;">
476            <img src="$icon" alt="Toggle expand/contract" class="helpicon"/></a>
477    </span>
478
479    <div class="metadataSection" py:def="OnlineReferences(links, editLink)">
480        <?python       
481                                divID = 'onlineRefDiv'
482                                edID = divID+'ed'
483                ?>
484                <table py:if="links or editLink">
485            <tr><td class="linehead">
486                    <table>
487                        <tr><td>Online References</td>
488                            <span py:if="editLink" py:strip="">
489                                <td align="right">
490                                        <span class="txtBlktog">
491                                        <a href="javascript:;" title="Toggle Form" 
492                                             onclick="swapLayers('$divID', '$edID'); return false;">
493                                        Add/Edit</a>
494                                        </span>
495                                    </td>
496                            </span>
497                                        </tr>
498                                </table>
499                                </td>
500                        </tr>
501            <tr><td>
502                <div id = "$divID">
503                                <div py:if="links" py:replace="OnlineRefEditTable(links, None)"/>
504                        <span py:if="not links" py:strip="">No data specified at present</span>
505                        </div>
506                        </td></tr>
507                <tr py:if="editLink"><td>
508                        <div id="$edID" class="hidden">
509                                <div py:replace="OnlineRefEditTable(links, editLink)"/>
510                        </div>
511                        </td></tr>
512                        <tr><td>
513            </td></tr>
514        </table>
515    </div>
516
517
518        <div py:def="OnlineRefEditTable(links, editLink)">
519                <form action="${editLink}" method="post">
520                        <?python
521                                from ndgUtils.models.Atom import Atom as a
522                                refLabel = a.ONLINE_REF_LABEL + "."
523                                remLabel = "." + a.REMOVE_LABEL
524                                extraRows = 3
525                        ?>
526            <table>
527                <tr>
528                                <th align="left">Relation</th>
529                        <th py:if="editLink" align="left">URI</th>
530                        <th align="left">Title</th>
531                        <th py:if="links and editLink" align="center">Remove</th>
532                </tr>
533                    <tr py:for="i, link in enumerate(links)">
534                            <?python
535                        # get the default display value type
536                        try:
537                                vti = g.vtd.getTermItemfromFullVocabURI(link.rel)
538                                displayType = vti.title or link.rel
539                        except:
540                                displayType = link.rel
541                            ?>
542                        <td>
543                                                <span py:if="editLink" py:strip="">
544                                        ${Markup(h.select(refLabel + str(i) + '.rel', option_tags=c.relatedLinkSelectedLists[str(link)]))}
545                                                </span>
546                                        <span py:if="not editLink" py:strip="">
547                                        ${Markup(displayType)}
548                                                </span>
549                        </td>
550                        <td py:if="editLink">
551                                    ${Markup(h.text_field(refLabel + str(i) + '.href', link.href))}
552                                        </td>
553                        <td>
554                                                <span py:if="editLink" py:strip="">
555                                            ${Markup(h.text_field(refLabel + str(i) + '.title', link.title))}
556                                                </span>
557                                        <span py:if="not editLink" py:strip="">
558                                                <a href="${link.href}">${Markup(link.title or link.href)}</a>
559                                                </span>
560                        </td>
561                        <td py:if="editLink" align="center">
562                                ${Markup(h.check_box(refLabel + str(i) + remLabel))}
563                        </td>
564                                </tr>
565                    <tr py:if="editLink" py:for="i in range(len(links), len(links) + extraRows)">
566                        <td>
567                                        ${Markup(h.select(refLabel + str(i) + '.rel', option_tags=c.relatedLinkTerms))}
568                        </td>
569                        <td>
570                                    ${Markup(h.text_field(refLabel + str(i) + '.href'))}
571                        </td>
572                        <td>
573                                    ${Markup(h.text_field(refLabel + str(i) + '.title'))}
574                        </td>
575                        <td py:if="links" />
576                                </tr>
577                        <tr py:if="editLink"><td>
578                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
579                </td></tr>
580                        </table>
581                </form>
582        </div>
583   
584
585    <div class="metadataSection" py:def="Associations(sectionName, links, addLink, editLink)">
586        <?python       
587                                divID = sectionName + 'Div'
588                                edID = divID+'ed'
589                ?>
590                <table py:if="links or editLink">
591            <tr><td class="linehead">
592                    <table>
593                        <tr><td>${sectionName}</td>
594                            <span py:if="addLink" py:strip="">
595                                <td align="right">
596                                        <span class="txtBlktog">
597                                        <a href="$addLink">Add</a>
598                                        <a py:if="links" href="javascript:;" title="Toggle Form" 
599                                             onclick="swapLayers('$divID', '$edID'); return false;">
600                                        Edit</a>
601                                        </span>
602                                    </td>
603                            </span>
604                                        </tr>
605                                </table>
606                                </td>
607                        </tr>
608            <tr><td>
609                <div id = "$divID">
610                                <div py:replace="AssociationsTable(links, None)"/>
611                        </div>
612                        </td></tr>
613                <tr py:if="editLink"><td>
614                        <div id="$edID" class="hidden">
615                                <div py:replace="AssociationsTable(links, editLink)"/>
616                        </div>
617                        </td></tr>
618                        <tr><td>
619            </td></tr>
620        </table>
621    </div>
622
623
624        <div py:def="AssociationsTable(links, editLink)">
625                <form py:if="links" action="${editLink}" method="post">
626                <?python c.isDeployment = False ?>
627            <table>
628                <tr>
629                                <th align="left">Type</th>
630                        <th align="left">Title</th>
631                        <th py:if="editLink and links" align="center">Remove</th>
632                </tr>
633                                <?python
634                                        from ndgUtils.models.Atom import Atom as a
635                                        delim = a.DELIMITER
636                                        refLabel = a.ATOM_REF_LABEL + delim
637                                ?>
638                    <tr py:for="i, link in enumerate(links)">
639                            <?python
640                        # get the default display value
641                        displayVal = link.title or link.href
642                        try:
643                                vti = g.vtd.getTermItemfromFullVocabURI(link.rel)
644                                subType = g.vtd.tidySubTypeTitle(vti.title)
645                        except:
646                                subType = link.rel
647
648                        inputLabel = refLabel + link.href + delim + (link.title or "") + delim + link.rel
649                        if subType == 'Deployment':
650                                c.isDeployment = True
651                            ?>
652                            <td>${subType}</td>
653                            <td><a href="$link.href">${displayVal}</a></td>
654                        <td py:if="editLink and links" align="center">
655                                ${Markup(h.check_box(inputLabel))}
656                        </td>
657                                </tr>
658                        <tr py:if="editLink and links"><td></td><td></td><td align="center">
659                        ${Markup(h.submit('Remove', **{'onclick': 'Div_show("loading");'}))}
660                        </td></tr>
661                        </table>
662                </form>
663                <table py:if="not links"><tr><td>
664                        No data specified at present
665                </td></tr>
666                </table>
667        </div>
668
669
670    <div py:def="FullParameterList(params, editLink, visibility)">
671            <div class="metadataSection ${visibility}" id="fullParams">
672        <?python       
673                                divID = 'parametersDiv'
674                                edID = divID+'ed'
675                ?>
676        <table py:if="params or editLink">
677            <tr><td class="linehead">
678            <table>
679                    <tr><td>Parameters - details</td>
680                <td align="right">
681                <a py:if="editLink" href="javascript:;" title="Toggle Form" 
682                             onclick="swapLayers('$divID', '$edID'); return false;">
683                        Add/Edit</a>
684                    <span py:if="not editLink" py:replace="expandHideSection('fullParams','summaryParams',g.navMinus)" strip=""/>
685            </td></tr></table></td></tr>
686            <tr><td>
687                <div id = "$divID">
688                            <div py:replace="ParametersTable(params, None)"/>
689                        </div>
690                        </td></tr>
691                <tr py:if="editLink"><td>
692                        <div id="$edID" class="hidden">
693                            <div py:replace="ParametersTable(params, editLink)"/>
694                        </div>
695                        </td></tr>
696
697        </table>
698        </div>
699    </div>
700
701
702    <div class="metadataSection" py:def="ParametersTable(params, editLink)" id="fullParams">
703                <form action="${editLink}" method="post">
704                        <?python
705                                from ndgUtils.models.Atom import Atom as a
706                                refLabel = a.PARAMETER_LABEL + "."
707                                remLabel = "." + a.REMOVE_LABEL
708                                extraRows = 3
709                        ?>
710                <table class="subTable">
711                <tr py:if="params or editLink" class="cellhead">
712                                <th align="left">Label</th>
713                                <th align="left">Vocab Term URL</th>
714                        <th align="left">Vocab Term ID</th>
715                                <th py:if="params and editLink" align="center">Remove</th>
716                        </tr>
717                                <tr py:if="not editLink and not params">
718                                <td colspan="3">No data specified at present</td>
719                </tr>
720                    <tr py:for="i, param in enumerate(params)">
721                        <td>
722                                                <span py:if="editLink" py:strip="">
723                                            ${Markup(h.text_field(refLabel + str(i) + '.label', param.label, class_="fullWidth"))}
724                                                </span>
725                                        <span py:if="not editLink" py:strip="">
726                                                ${param.label}
727                                                </span>
728                        </td>
729                        <td>
730                                                <span py:if="editLink" py:strip="">
731                                            ${Markup(h.text_field(refLabel + str(i) + '.scheme', param.scheme, class_="fullWidth"))}
732                                                </span>
733                                        <span py:if="not editLink" py:strip="">
734                                                ${param.scheme}
735                                                </span>
736                                        </td>
737                        <td>
738                                                <span py:if="editLink" py:strip="">
739                                            ${Markup(h.text_field(refLabel + str(i) + '.term', param.term, class_="fullWidth"))}
740                                                </span>
741                                        <span py:if="not editLink" py:strip="">
742                                                ${param.term}
743                                                </span>
744                        </td>
745                        <td py:if="editLink" align="center">
746                                ${Markup(h.check_box(refLabel + str(i) + remLabel))}
747                        </td>
748                                </tr>
749                    <tr py:if="editLink" py:for="i in range(len(params), len(params) + extraRows)">
750                        <td>
751                                        ${Markup(h.text_field(refLabel + str(i) + '.label', class_="fullWidth"))}
752                        </td>
753                        <td>
754                                    ${Markup(h.text_field(refLabel + str(i) + '.scheme', class_="fullWidth"))}
755                        </td>
756                        <td>
757                                    ${Markup(h.text_field(refLabel + str(i) + '.term', class_="fullWidth"))}
758                        </td>
759                        <td py:if="params" />
760                                </tr>
761                        <tr py:if="editLink"><td>
762                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
763                </td></tr>
764                        </table>
765                </form>
766    </div>
767
768
769    <div py:def="SummaryParameterList(params)" id="summaryParams" class="metadataSection shown">
770        <table py:if="params">
771            <tr><td class="linehead">
772            <table><tr><td>Parameters - summary</td>
773            <td align="right">
774            <span py:replace="expandHideSection('fullParams','summaryParams',g.navPlus)" strip=""/>
775            </td></tr></table></td></tr>
776            <tr>
777            <table class="subTable">
778                <?python
779                        fullLength = len(list(params))
780                        colNumber = 4
781                ?>
782                        <span py:for="index, param in enumerate(params)" py:strip="">
783                                <tr class="summaryText">
784                                 <span py:if="not index%colNumber" py:strip="">
785                                 <span py:for="i in range(colNumber)" py:strip="">
786                                        <td py:if="index &lt; fullLength - i">${params[index + i].label or params[index + i].term or params[index + i].scheme}</td>
787                                 </span>
788                                 </span>
789                                        </tr>
790                        </span>
791            </table>
792            </tr>
793        </table>
794    </div>
795   
796    <div class="metadataSection" py:def="Coverage(editLink)">
797        <?python       
798                                divID = 'spatialtemporalDiv'
799                                edID = divID+'ed'
800                ?>
801        <table>
802            <tr><td class="linehead" colspan="2">
803                    <table>
804                        <tr><td>Data Coverage</td>
805                            <span py:if="editLink" py:strip="">
806                                <td align="right">
807                                        <span class="txtBlktog">
808                                        <a href="javascript:;" title="Toggle Form" 
809                                             onclick="swapLayers('$divID', '$edID'); return false;">
810                                        Add/Edit</a>
811                                        </span>
812                                    </td>
813                            </span>
814                                        </tr>
815                                </table>
816                                </td>
817                        </tr>
818            <tr>
819                <td>
820                <div id="$divID">
821                        <table><tr>
822                        <td><div py:replace="Spatial(None)"/></td>
823                        <td><div py:replace="Temporal(None)"/></td>
824                    </tr></table>
825                </div>
826                </td>
827            </tr>
828            <span py:if="editLink" py:strip="">
829                                <form action="${editLink}" method="post">
830                <tr>
831                        <td>
832                        <div id="$edID" class="hidden">
833                                <table><tr>
834                                <td><div py:replace="Spatial(editLink)"/></td>
835                            <td><div py:replace="Temporal(editLink)"/></td>
836                            </tr>
837                            <tr><td>
838                                ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
839                                 </td></tr>
840                            </table>
841                        </div>
842                    </td>
843                    </tr>
844                                </form>
845                        </span>
846        </table>
847    </div>
848
849    <div py:def="Temporal(editLink)" py:strip="">
850                <table><tr><td class="cellhead">Temporal coverage</td>
851                        <td py:if="editLink">(e.g. 1975-04-28)</td></tr>
852            <span py:if="c.atom.t1 or c.atom.t2 or editLink" py:strip="">
853                                <tr><td>Start Date:</td>
854                                <td>
855                                <span py:if="editLink" py:strip="">
856                                ${Markup(h.text_field('t1', c.atom.t1))}
857                                </span>
858                        <span py:if="not editLink" py:strip="">
859                        ${c.atom.t1}
860                                </span>
861                                </td></tr>
862                                <tr><td>End Date:</td>
863                                <td>
864                                <span py:if="editLink" py:strip="">
865                                ${Markup(h.text_field('t2', c.atom.t2))}
866                                </span>
867                        <span py:if="not editLink" py:strip="">
868                        ${c.atom.t2}
869                                </span>
870                                </td></tr>
871            </span>
872            <span py:if="not c.atom.t1 and not c.atom.t2 and not editLink" py:strip="">
873                                <tr><td colspan="2">No temporal information available.</td></tr>
874                        </span>
875        </table>
876    </div>
877                           
878    <div py:def="Spatial(editLink)" py:strip="">
879        <table>
880            <tr><td colspan="2" class="cellhead">Spatial coverage</td></tr>
881            <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="">
882                    <tr><td colspan="2">No spatial coverage information available.</td></tr>
883                </span>
884            <span py:if="c.atom.minX or c.atom.minY or c.atom.maxX or c.atom.maxY or editLink" py:strip="">
885                                <tr>
886                                <td colspan="2" align="center">
887                                <span py:if="editLink" py:strip="">
888                                <span class="cellhead">Max Y</span> ${Markup(h.text_field('maxY', c.atom.maxY))}
889                                </span>
890                        <span py:if="not editLink" py:strip="">
891                        <span class="cellhead">Max Y</span> ${c.atom.maxY}
892                                </span>
893                                </td></tr>
894                        <tr><td align="center">
895                                <span py:if="editLink" py:strip="">
896                                <span class="cellhead">Min X</span> ${Markup(h.text_field('minX', c.atom.minX))}
897                                </span>
898                        <span py:if="not editLink" py:strip="">
899                        <span class="cellhead">Min X</span> ${c.atom.minX}
900                                </span>
901                        </td><td align="center">
902                                <span py:if="editLink" py:strip="">
903                                <span class="cellhead">Max X</span> ${Markup(h.text_field('maxX', c.atom.maxX))}
904                                </span>
905                        <span py:if="not editLink" py:strip="">
906                        <span class="cellhead">Max X</span> ${c.atom.maxX}
907                                </span>
908                        </td></tr>
909                        <tr><td colspan="2" align="center">
910                                <span py:if="editLink" py:strip="">
911                                <span class="cellhead">Min Y</span> ${Markup(h.text_field('minY', c.atom.minY))}
912                                </span>
913                        <span py:if="not editLink" py:strip="">
914                        <span class="cellhead">Min Y</span> ${c.atom.minY}
915                                </span>
916                        </td></tr>
917                </span>
918        </table> 
919    </div>
920   
921       
922    <div py:def="Services()" id="ServiceList">
923        <table cellspacing="0" cellpadding="3" width="100%" border="0"><tbody>
924            <tr><td class="linehead" colspan="3"><span class="headingO">Links and Services</span></td></tr>
925            <tr py:if="c.atom.ndgObject is not None">
926                    <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.xmlURL,g.icons_xml,'[XML]')"/></td>
927                <td>Downloadable XML version of this record
928                    <span py:if="c.atom.ndgObject.gettable==1" py:strip="">
929                (Original <span py:replace="linkimage(c.atom.ndgObject.xmlURL+'&amp;outputSchema=original',g.icons_xml,'[XML]')"/>)
930                    </span></td>
931                </tr>
932            <tr py:if="c.atom.ndgObject is not None">
933                <td width="20%"><span py:replace="linkimage(c.atom.ndgObject.printableURL,g.icons_prn,'[HTML]')"/></td>
934                    <td>Viewable XML version of this record
935                 <span py:if="c.atom.ndgObject.gettable==1" py:strip="">
936                    (Original <span py:replace="linkimage(c.atom.ndgObject.printableURL+'&amp;outputSchema=original',g.icons_prn,'[HTML]')"/>)
937                </span></td>
938            </tr>
939            <tr py:if="c.atom.ndgObject.gettable==1"><td></td><td>(Original records are the raw material harvested from data providers)</td></tr>
940        </tbody></table>
941    </div>
942
943   
944    <!--! Help Icons -->
945    <span py:def="helpIcon(value)">
946        <span>
947            <a href="javascript:;" title="Toggle help" onclick="toggleDiv(1,'$value','shown','hidden','tr'); return false;">
948            <img src="$g.helpIcon" alt="Toggle help" class="helpicon"/></a>
949     
950        </span>
951    </span>
952
953   
954</html>
Note: See TracBrowser for help on using the repository browser.