diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/martini/templates/table.html	Tue Dec 08 15:13:28 2009 -0500
@@ -0,0 +1,69 @@
+<!DOCTYPE html
+    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:py="http://genshi.edgewall.org/">
+<head>
+  <title>${request.path_info}</title>
+  <script src="/jquery.js"></script>
+  <script type="text/javascript">
+$(document).ready(function() {  
+        $("td").click(function() { 
+    
+                if ( $(this).find('input').length == 0 ) {
+    
+                    $(this).html('<input type="text" value="' + $(this).text() + '"/>');
+                    $(this).find('input').focus();
+                    $(this).find('input').blur(function() {
+dict = {};
+column = $(this).closest("td").attr('class');
+row = $(this).closest("tr").attr('id');
+if ( column == 'section' ) {
+key = '[' + row + ']';
+}
+else {
+key = '[' + row + ']' + column;
+}
+dict[key] = $(this).val();
+$.post("${request.path_info}", dict);
+                            $(this).parent().html($(this).val());
+                        });
+                }
+            });
+$(":button").click(function() {
+var headers = $(this).closest("table").find("th").map(function() {
+return $(this).attr('class');
+});
+var row_html = '<tr><td class="section"><input type="text" /></td>';
+for ( var i=1; i != headers.length; i++ ) {
+  row_html += '<td class="';
+  row_html += headers[i];
+  row_html += '"></td>';
+}
+row_html += '</tr>';
+$(this).closest("tr").before(row_html);
+});
+    });
+  </script>
+</head>
+<body>
+
+  <table py:with="columns=sorted(set(sum([section.keys() for section in sections.values()], [])))">
+    
+    <tr>
+      <th class="section"></th>
+      <th class="${column}" py:for="column in columns">${column}</th>
+    </tr>
+    
+    <tr py:for="section in sections" id="${section}">
+      <td class="section">${section}</td>
+      <td py:for="column in columns" class="${column}">${sections[section].get(column)}</td>
+    </tr>
+    
+    <tr>
+      <td><input type="button" id="add_section" value="+"/></td>
+    </tr>
+  </table>
+
+</body>
+</html>