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

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

Add improved error handling when doing document ingests + add
additional help sections for this purpose.

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