comparison martini/templates/table.html @ 0:3c3522ce6e3a

initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
author k0s <k0scist@gmail.com>
date Tue, 08 Dec 2009 15:13:28 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:3c3522ce6e3a
1 <!DOCTYPE html
2 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml"
5 xmlns:py="http://genshi.edgewall.org/">
6 <head>
7 <title>${request.path_info}</title>
8 <script src="/jquery.js"></script>
9 <script type="text/javascript">
10 $(document).ready(function() {
11 $("td").click(function() {
12
13 if ( $(this).find('input').length == 0 ) {
14
15 $(this).html('<input type="text" value="' + $(this).text() + '"/>');
16 $(this).find('input').focus();
17 $(this).find('input').blur(function() {
18 dict = {};
19 column = $(this).closest("td").attr('class');
20 row = $(this).closest("tr").attr('id');
21 if ( column == 'section' ) {
22 key = '[' + row + ']';
23 }
24 else {
25 key = '[' + row + ']' + column;
26 }
27 dict[key] = $(this).val();
28 $.post("${request.path_info}", dict);
29 $(this).parent().html($(this).val());
30 });
31 }
32 });
33 $(":button").click(function() {
34 var headers = $(this).closest("table").find("th").map(function() {
35 return $(this).attr('class');
36 });
37 var row_html = '<tr><td class="section"><input type="text" /></td>';
38 for ( var i=1; i != headers.length; i++ ) {
39 row_html += '<td class="';
40 row_html += headers[i];
41 row_html += '"></td>';
42 }
43 row_html += '</tr>';
44 $(this).closest("tr").before(row_html);
45 });
46 });
47 </script>
48 </head>
49 <body>
50
51 <table py:with="columns=sorted(set(sum([section.keys() for section in sections.values()], [])))">
52
53 <tr>
54 <th class="section"></th>
55 <th class="${column}" py:for="column in columns">${column}</th>
56 </tr>
57
58 <tr py:for="section in sections" id="${section}">
59 <td class="section">${section}</td>
60 <td py:for="column in columns" class="${column}">${sections[section].get(column)}</td>
61 </tr>
62
63 <tr>
64 <td><input type="button" id="add_section" value="+"/></td>
65 </tr>
66 </table>
67
68 </body>
69 </html>