source: MILK/trunk/milk_server/milk_server/templates/utils.html @ 4728

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

Fix TextArea? template to properly display multi-lined data in 'view' mode.

Line 
1<?python
2 def et2string(x):
3     #use this to strip namespaces for children within text elements
4     cb=x.tag.find('}')
5     if cb!=-1:
6        x.tag=x.tag[cb+1:]
7     txt=(x.text or '')
8     s='<%s>%s'%(x.tag,txt)
9     # recurse through tree, if necessary
10     for a in x:
11         s+=et2string(a)
12     s+='</%s>%s'%(x.tag,(x.tail or ''))
13     return s
14     ?>
15 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/"
16        py:strip="">
17
18    <span py:def="Text(elem)" py:strip="">
19        <!--! Note that we have to expect the possibility of xhtml in these elements and we won't
20        want the parent attributes, or the namespaces -->
21        <span py:if="elem is not None" py:strip="">
22                <span py:if="hasattr(elem, 'text')" py:strip="">
23                        ${elem.text.strip()}
24                </span>
25                <!--! output any child elements  -->
26                    <span py:with="s = ''" py:strip="">
27                    <?python
28                    for a in elem:
29                        s+=et2string(a)
30                        ?>
31                        <span py:if="s" py:strip="">
32                                ${Markup(s).strip()}
33                            </span>
34                        </span>
35        </span>
36    </span>
37
38
39    <span py:def="expandHideSection(div1,div2,icon)">
40            <a href="javascript:;" title="Show/Hide details" 
41                onclick="swapLayers('$div1', '$div2'); return false;">
42            <img src="$icon" alt="Toggle expand/contract" class="helpicon"/></a>
43    </span>
44
45   
46    <div class="metadataSection" py:def="TextArea(name, value, editLink, helpText)">
47        <?python       
48                                divID = name + 'Div'
49                                edID = divID+'ed'
50                                helpID = divID + '_help'
51                               
52                                # adjust non-editable data to cope with newlines
53                                nonEditVal = ""
54                                if value:
55                                        nonEditVal = value.replace('\n', '<br />')
56                                        nonEditVal = nonEditVal.replace('\r', '<br />')
57                ?>
58        <table py:if="value or editLink">
59            <tr><td class="linehead">
60                    <table>
61                        <tr><td>${name}<span py:if="editLink" py:replace="helpIcon(helpID, 'tr')"/></td>
62                            <span py:if="editLink" py:strip="">
63                                <td align="right">
64                                        <span class="txtBlktog">
65                                        <a href="javascript:;" title="Toggle Form" 
66                                             onclick="swapLayers('$divID', '$edID'); return false;">
67                                        Add/Edit</a>
68                                        </span>
69                                    </td>
70                            </span>
71                                        </tr>
72                                <tr id="$helpID" class="hidden" >
73                                        <td class="helptxt" colspan="2">$helpText</td>
74                                        </tr>                   
75                                </table>
76            </td></tr>
77            <tr><td>
78                <div id = "$divID">
79                                ${Markup(nonEditVal or 'No data specified at present')}
80                        </div>
81                        </td></tr>
82                <tr py:if="editLink"><td>
83                        <div id="$edID" class="hidden">
84                                        <form action="${editLink}" method="post">
85                                        <table>
86                                <tr><td>
87                                        ${Markup(h.text_area(name, value, class_="fullWidth", rows="9"))}
88                                </td></tr>
89                                <tr><td>
90                        ${Markup(h.submit('Update', **{'onclick': 'Div_show("loading");'}))}
91                    </td></tr>
92                                        </table>
93                                        </form>
94                        </div>
95                        </td></tr>
96        </table>
97    </div>
98
99       
100    <!--! hyperlinked image -->
101    <span py:def="linkimage(linkref,imageref,alttext)">
102        <a href="$linkref"><image src="$imageref" alt="$alttext" title="$alttext"/></a>
103    </span>
104   
105    <!--! Help Icons -->
106    <span py:def="helpIcon(value, elementType)">
107        <span>
108            <a href="javascript:;" title="Toggle help" onclick="toggleDiv(1,'$value','shown','hidden','$elementType'); return false;">
109            <img src="$g.helpIcon" alt="Toggle help" class="helpicon"/></a>
110     
111        </span>
112    </span>
113</html>
Note: See TracBrowser for help on using the repository browser.