another $col_changed cleanup
[MojoFacets.git] / templates / data / items / table.html.ep
index e8578ae..eb18192 100644 (file)
@@ -1,10 +1,19 @@
+<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">&#9997;</span>
+% }
 % if ( session('order') ne $n ) {
-<a href="<%= url_for( action => 'order' )->query( order => $n ) %>"><%= $n %></a>
+<a href="<%= url_for( action => 'order' )->query( order => $n, sort => 'a' ) %>"><%= $n %></a>
 % } else {
 <a href="<%= url_for( action => 'order' )->query( order => $n, sort => session('sort') eq 'a' ? 'd' : 'a' ) %>"><%= $n %></a>
 <%== session('sort') eq 'a' ? '&uarr;' : '&darr;' %>
@@ -19,14 +28,21 @@ filter
 % }
 </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 ) {
@@ -46,3 +62,71 @@ filter
 % } # 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>
+