From c1ed0d0fafcd7c9201421e4b6e1f660731c4936c Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 16 Jun 2010 22:15:49 +0200 Subject: [PATCH] fixes to code eval Since code is now persistant in session, we need to apply changes only if test button is really pressed. This changeset also fixes browing code textarea on reload --- lib/MojoFacets/Data.pm | 10 ++++++---- public/mojo_facets.css | 7 +++++-- templates/data/items/table.html.ep | 5 ++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 3a02f05..b086a6b 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -607,13 +607,16 @@ sub items { my $data = $self->_loaded('data'); my $code = $self->_param_scalar('code'); - if ( $self->param('commit') ) { + $code =~ s{\n+$}{}s; + + my $commit = $self->param('commit'); + my $test = $self->param('test'); + if ( $commit ) { warn "# commit $code"; foreach ( 0 .. $#{ $data->{items} } ) { my $rec = $data->{items}->[ $_ ]; eval $code; } - undef $code; } my $sorted_items; @@ -625,12 +628,11 @@ sub items { my $id = $filtered->[$i]; my $rec = $data->{items}->[ $id ]; $rec->{_row_id} ||= $id; - if ( $code ) { + if ( $code && $test ) { $rec = Storable::dclone $rec; eval $code; if ( $@ ) { warn "ERROR evaling\n$code\n$@"; - undef $code; $self->stash('eval_error', $@) if $@; } else { warn "EVAL $code ",dump($rec); diff --git a/public/mojo_facets.css b/public/mojo_facets.css index 64bc459..4564c1c 100644 --- a/public/mojo_facets.css +++ b/public/mojo_facets.css @@ -219,12 +219,15 @@ tr.hidden { display: none; } -.alert { +.alert, .error { border: 0.3em dashed #f00; background: #ffc; + text-align: center; +} + +.alert { padding: 1em; margin: 1em; - text-align: center; } diff --git a/templates/data/items/table.html.ep b/templates/data/items/table.html.ep index a5f82bf..e0478b5 100644 --- a/templates/data/items/table.html.ep +++ b/templates/data/items/table.html.ep @@ -49,8 +49,11 @@ filter
+% if ( my $error = stash('eval_error') ) { +
<%= $error %>
+% } % my $rows = scalar split(/\n/,$code); - -- 2.20.1