fix perl barf, RT#73098
[freeside.git] / httemplate / search / log.html
index d1bfb6c..f6ac9d9 100644 (file)
@@ -1,6 +1,7 @@
 <& elements/search.html, 
   'title'         => 'System Log',
   'name_singular' => 'event',
+  'menubar'       => \@menubar,
   'html_init'     => include('.head'),
   'query'         => $query,
   'count_query'   => $count_query,
@@ -64,14 +65,14 @@ a:visited {text-decoration: none}
 <TR>
   <TD>From 
     <& /elements/input-date-field.html, {
-      name => 'beginning',
-      value => $cgi->param('beginning'),
+      name   => 'beginning',
+      value  => scalar($cgi->param('beginning')),
     } &>
   </TD>
   <TD>To 
     <& /elements/input-date-field.html, {
-      name => 'ending',
-      value => $cgi->param('ending') || '',
+      name   => 'ending',
+      value  => scalar($cgi->param('ending')) || '',
       noinit => 1,
     } &>
   </TD>
@@ -79,17 +80,17 @@ a:visited {text-decoration: none}
 <TR>
   <TD>Level
     <& /elements/select.html,
-      field => 'min_level',
-      options => [ 0..7 ],
-      labels => { map {$_ => $FS::Log::LEVELS[$_]} 0..7 },
-      curr_value => $cgi->param('min_level'),
+      field      => 'min_level',
+      options    => [ &FS::Log::levelnums ],
+      labels     => { &FS::Log::levelmap },
+      curr_value => scalar($cgi->param('min_level')),
     &>
      to
     <& /elements/select.html,
-      field => 'max_level',
-      options => [ 0..7 ],
-      labels => { map {$_ => $FS::Log::LEVELS[$_]} 0..7 },
-      curr_value => $cgi->param('max_level'),
+      field      => 'max_level',
+      options    => [ &FS::Log::levelnums ],
+      labels     => { &FS::Log::levelmap },
+      curr_value => scalar($cgi->param('max_level')),
     &>
   </TD>
   <TD>
@@ -100,6 +101,12 @@ a:visited {text-decoration: none}
       labels => { map {$_, $_} @contexts },
       curr_value => ($cgi->param('context') || ''),
     &>
+    <BR><& /elements/checkbox.html,
+      'field' => 'context_height',
+      'postfix' => 'Only match most specific context',
+      'value' => 1,
+      'curr_value' => scalar($cgi->param('context_height')),
+    &>
   </TD>
 </TR>
 <TR>
@@ -121,7 +128,7 @@ a:visited {text-decoration: none}
 <%once>
 my $date_sub = sub { time2str('%Y-%m-%d %T', $_[0]->_date) };
 
-my $level_sub = sub { $FS::Log::LEVELS[$_[0]->level] };
+my $level_sub = sub { $FS::Log::LEVELS{$_[0]->level} };
 
 my $context_sub = sub {
   my $log = shift;
@@ -137,7 +144,7 @@ my $tt_sub = sub {
   return '' if @context == 1 and length($log->message) <= 60;
   my $html = '<DIV CLASS="tooltip">'.(shift @context).'</DIV>';
   my $pre = '&#8627;';
-  foreach (@context, $log->message) {
+  foreach (map encode_entities($_), @context, $log->message) {
     $html .= "<DIV>$pre$_</DIV>";
     $pre = '&nbsp;&nbsp;&nbsp;'.$pre;
   }
@@ -184,18 +191,15 @@ my $object_link_sub = sub {
   }
 };
 
-my @colors = (
-  '404040', #debug
-  '0000aa', #info
-  '00aa00', #notice
-  'aa0066', #warning
-  '000000', #error
-  'aa0000', #critical
-  'ff0000', #alert
-  'ff0000', #emergency
+my %colors = (
+  0 => '404040', #debug, gray
+  1 => '000000', #info, black
+  3 => '0000aa', #warning, blue
+  4 => 'aa0066', #error, purple
+  5 => 'ff0000', #critical, red
 );
 
-my $color_sub = sub { $colors[ $_[0]->level ]; };
+my $color_sub = sub { $colors{ $_[0]->level }; };
 
 my @contexts = ('', sort FS::log_context->contexts);
 </%once>
@@ -204,13 +208,16 @@ my $curuser = $FS::CurrentUser::CurrentUser;
 die "access denied"
   unless $curuser->access_right([ 'View system logs', 'Configuration' ]);
 
+my @menubar = ();
+push @menubar, qq(<A HREF="${fsurl}browse/log_email.html" STYLE="text-decoration: underline;">Configure conditions for sending email when logging</A>);
+
 $cgi->param('min_level', 0) unless defined($cgi->param('min_level'));
-$cgi->param('max_level', 7) unless defined($cgi->param('max_level'));
+$cgi->param('max_level', 5) unless defined($cgi->param('max_level'));
 
 my %search = ();
 $search{'date'} = [ FS::UI::Web::parse_beginning_ending($cgi) ];
 $search{'level'} = [ $cgi->param('min_level'), $cgi->param('max_level') ];
-foreach my $param (qw(agentnum context tablename tablenum custnum message)) {
+foreach my $param (qw(agentnum context context_height tablename tablenum custnum message)) {
   if ( $cgi->param($param) ) {
     $search{$param} = $cgi->param($param);
   }