--- trunk/lib/Frey/Web.pm 2008/12/11 21:36:04 816 +++ trunk/lib/Frey/Web.pm 2008/12/14 14:13:35 835 @@ -246,10 +246,7 @@ if ( ! $body ) { my $run = $a->{run} || 'as_markup'; warn "# no body, invoke $self->$run on ", ref($self); - eval { - $body = $self->$run; - }; - $body = $self->error( $@, '' ) if $@; + $body = $self->$run; } if ( $self->content_type !~ m{html} ) { warn "# return only $self body ", $self->content_type; @@ -386,6 +383,7 @@ } warn "ERROR: $error\n"; + $self->add_icon('error'); return qq|
|
 		. $self->html_links( $error ) .
@@ -466,7 +464,6 @@
 
 sub icon_path {
 	my ($self,$class,$variant) = @_;
-#	$class ||= $self->title;
 
 	sub icon_exists {
 		my $class = shift;
@@ -478,25 +475,28 @@
 	}
 
 	my $path = icon_exists( $class );
-
-	while ( $class =~ s{::[^:]+$}{} && ! $path ) {
-		$path = icon_exists( $class ) unless $class eq 'Frey'; # don't default on Frey icon
+	if ( ! $path ) {
+		my $super_class = $class;
+		while ( $super_class =~ s{::[^:]+$}{} && ! $path ) {
+			$path = icon_exists( $super_class ) unless $super_class eq 'Frey'; # don't default on Frey icon
+		}
 	}
 
-	if ( -e $path ) {
-		warn "# $class from $self icon_path $path" if $self->debug;
-		return $path;
-	} else {
-		$self->TODO( "add $path icon for $class $variant" );
+	if ( ! $path ) {
+		$self->TODO( "add icon for $class" . ( $variant ? " variant $variant" : '' ) );
 		return undef;
 	}
+
+	warn "# $class from $self icon_path $path" if $self->debug;
+	return $path;
 }
 
 sub add_icon {
 	my ($self,$variant) = @_;
 
-	my $class = ref($self);
-	$class = $self->class if $self->can('class');
+	my $class = $self->class if $self->can('class');
+	#$class ||= $self->title;
+	$class ||= ref($self);
 	my $icon_path = $self->icon_path( $class, $variant ) || return;
 
 	$icon_html .= qq||;