Mercurial > hg > martINI
view martini/templates/table.html @ 20:93c198d9bf84
syntax
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Tue, 24 Nov 2020 14:49:30 -0800 |
parents | 3c3522ce6e3a |
children |
line wrap: on
line source
<!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>