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

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

Add new input to editor - to allow choice of publication state of the
atom doc. Ensure this state is maintained by including additional
lookups of collection info when retrieving atoms (NB, the state is
represented by the collection the doc is stored in - not its content).
Generalise method to get eXist client and put this in the Utilities
module for general re-use.

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