another $col_changed cleanup
[MojoFacets.git] / templates / data / items / table.html.ep
1 <pre class=debug><%= dumper $cols_changed %></pre>
2 <table border=1>
3
4 <tr>
5 % my $commit = param('commit');
6 % foreach my $n ( @$columns ) {
7 % if ( defined $cols_changed->{$n} && ! $commit ) {
8 <th class=<%= $cols_changed->{$n} ? 'changed' : 'used' %>>
9 <%= $n %>
10 % } else {
11 <th>
12 % if ( $unique->{$n} ) {
13 <span title="unique">&#9997;</span>
14 % }
15 % if ( session('order') ne $n ) {
16 <a href="<%= url_for( action => 'order' )->query( order => $n, sort => 'a' ) %>"><%= $n %></a>
17 % } else {
18 <a href="<%= url_for( action => 'order' )->query( order => $n, sort => session('sort') eq 'a' ? 'd' : 'a' ) %>"><%= $n %></a>
19 <%== session('sort') eq 'a' ? '&uarr;' : '&darr;' %>
20 % }
21 <div class="col_opts">
22 <a title="filter by this facet" href="<%= url_for( action => 'facet' )->query( name => $n, all => 0 ) %>">
23 % if ( defined $filters->{$n} ) {
24 <%= $#{ $filters->{$n} } + 1 %></a>&nbsp;
25 <a title="show all values" href="<%= url_for( action => 'facet' )->query( name => $n, all => 1 ) %>">all
26 % } else {
27 filter
28 % }
29 </a>
30 </div>
31
32 % }
33 </th>
34 % }
35 </tr>
36
37 % foreach my $row ( @$sorted ) {
38 <tr title="<%= $row->{_row_id} %>">
39 % foreach my $col ( @$columns ) {
40 %  my @class ;
41 %  push @class, 'numeric' if $numeric->{$col};
42 %  if ( defined $cols_changed->{$col} ) {
43 %   push @class, $cols_changed->{$col} ? 'changed' : 'used';
44 %  }
45 <td class="<%= join(' ',@class) %>">
46 %  if ( ref $row->{$col} eq 'ARRAY' ) {
47 %   my $last = $#{ $row->{$col} };
48 %   foreach ( 0 .. $last ) {
49 <%= $row->{$col}->[$_] %>
50 %    if ( $_ < $last ) {
51 <span class=d>&para;</span>
52 %    }
53 %   }
54 %  } elsif ( ref $row->{$col} ) {
55 <pre class=debug><%= dumper $row->{$col} %></pre>
56 %  } else {
57 <%= $row->{$col} %>
58 %  }
59 </td>
60 % } # columns
61 </tr>
62 % } # sorted
63
64 </table>
65 <form id=eval method=post style="<%= $code ? '' : 'display:none' %>">
66
67 % my $error = stash('eval_error');
68 % if ( $error ) {
69 <div class=error><%= $error %></div>
70 % }
71
72 % if ( $out ) {
73 <pre id=out><%= dumper $out %></pre>
74 % }
75
76 % my $rows = scalar split(/\n/,$code);
77 <textarea name=code rows=<%= $rows %>><%= $code %></textarea>
78 <input name=test   type=submit value="Test code">
79
80 % if ( param('test') ) {
81 <a href="">reload original</a>
82 %   if ( ! $error ) {
83 <input name=commit type=submit value="Commit changes" style="color:red">
84 %   }
85 % }
86
87 % if ( $code_depends ) {
88 <input name=code_depends type=hidden value="<%= $code_depends %>">
89 <tt><%= $code_depends %>.<input name=code_description type=text value="<%= $code_description %>">.pl</tt>
90 %  my $path = "$code_path/$code_depends.$code_description.pl";
91 %  if ( -e $path ) {
92 <input type=checkbox name=overwrite value=1 title="Overwrite old version of this code">
93 %  }
94 % }
95
96 <input id=close name=close  type=button value="Close" style="float: right">
97 </form>
98
99 <script type="text/javascript" src="/js/jquery.textarea_grow.js"></script>
100 <script type="text/javascript">
101
102 $(document).ready( function(){
103
104         $('form#eval textarea').textarea_grow();
105         $('input#close').click( function(){
106                 console.debug( 'close console' );
107                 $.post( document.location, { code: '' } );
108                 $(this).parent().hide();
109         });
110
111         var $out = $('pre#out');
112         if ( $out.height() > $(window).height() ) {
113                 $out.height( $(window).height() / 3 * 2 ).css({ overflow: 'auto' });
114         }
115
116         $('a#console').click( function() {
117                 console.debug('open console');
118                 var $f = $('form#eval');
119                 if ( $f.is(':visible') ) {
120                         $f.hide();
121                 } else {
122                         $f.show();
123                 }
124                 return false;
125         }).show();
126
127 });
128
129 </script>
130
131 <script type="text/javascript" src="/edit_table.js"></script>
132