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