-
+<pre class=debug><%= dumper $cols_changed %></pre>
<table border=1>
<tr>
+% my $commit = param('commit');
% foreach my $n ( @$columns ) {
+% if ( defined $cols_changed->{$n} && ! $commit ) {
+<th class=<%= $cols_changed->{$n} ? 'changed' : 'used' %>>
+<%= $n %>
+% } else {
<th>
+% if ( $unique->{$n} ) {
+<span title="unique">✍</span>
+% }
% if ( session('order') ne $n ) {
<a href="<%= url_for( action => 'order' )->query( order => $n, sort => 'a' ) %>"><%= $n %></a>
% } else {
% }
</a>
</div>
+
+% }
</th>
% }
</tr>
% foreach my $row ( @$sorted ) {
-<tr>
+<tr title="<%= $row->{_row_id} %>">
% foreach my $col ( @$columns ) {
-<td<%= $numeric->{$col} ? ' class=numeric' : '' %>>
+% my @class ;
+% push @class, 'numeric' if $numeric->{$col};
+% if ( defined $cols_changed->{$col} ) {
+% push @class, $cols_changed->{$col} ? 'changed' : 'used';
+% }
+<td class="<%= join(' ',@class) %>">
% if ( ref $row->{$col} eq 'ARRAY' ) {
% my $last = $#{ $row->{$col} };
% foreach ( 0 .. $last ) {
% } # sorted
</table>
+<form id=eval method=post style="<%= $code ? '' : 'display:none' %>">
+
+% my $error = stash('eval_error');
+% if ( $error ) {
+<div class=error><%= $error %></div>
+% }
+
+% if ( $out ) {
+<pre id=out><%= dumper $out %></pre>
+% }
+
+% my $rows = scalar split(/\n/,$code);
+<textarea name=code rows=<%= $rows %>><%= $code %></textarea>
+<input name=test type=submit value="Test code">
+
+% if ( param('test') ) {
+<a href="">reload original</a>
+% if ( ! $error ) {
+<input name=commit type=submit value="Commit changes" style="color:red">
+% }
+% }
+
+% if ( $code_depends ) {
+<input name=code_depends type=hidden value="<%= $code_depends %>">
+<tt><%= $code_depends %>.<input name=code_description type=text value="<%= $code_description %>">.pl</tt>
+% my $path = "$code_path/$code_depends.$code_description.pl";
+% if ( -e $path ) {
+<input type=checkbox name=overwrite value=1 title="Overwrite old version of this code">
+% }
+% }
+
+<input id=close name=close type=button value="Close" style="float: right">
+</form>
+
+<script type="text/javascript" src="/js/jquery.textarea_grow.js"></script>
+<script type="text/javascript">
+
+$(document).ready( function(){
+
+ $('form#eval textarea').textarea_grow();
+ $('input#close').click( function(){
+ console.debug( 'close console' );
+ $.post( document.location, { code: '' } );
+ $(this).parent().hide();
+ });
+
+ var $out = $('pre#out');
+ if ( $out.height() > $(window).height() ) {
+ $out.height( $(window).height() / 3 * 2 ).css({ overflow: 'auto' });
+ }
+
+ $('a#console').click( function() {
+ console.debug('open console');
+ var $f = $('form#eval');
+ if ( $f.is(':visible') ) {
+ $f.hide();
+ } else {
+ $f.show();
+ }
+ return false;
+ }).show();
+
+});
+
+</script>
<script type="text/javascript" src="/edit_table.js"></script>