--- trunk/lib/Frey/Web.pm 2008/11/27 22:09:59 568 +++ trunk/lib/Frey/Web.pm 2008/11/28 00:30:03 577 @@ -16,11 +16,7 @@ use Frey::SVK; -has 'head' => ( - is => 'rw', - isa => 'ArrayRef[Str]', - default => sub { [ 'static/frey.css' ] }, -); +our @head = ( 'static/frey.css' ); has 'request_url' => ( is => 'rw', @@ -115,7 +111,7 @@ sub _head_html { my $self = shift; my $out = ''; - foreach my $path ( @{ $self->head } ) { + foreach my $path ( @head ) { $path =~ s!^/!!; if ( $path =~ m/\.js$/ ) { $out .= $self->_inline_path( $path ) ? @@ -151,10 +147,10 @@ $path =~ s!^/!!; if ( $path =~ $re_html ) { - push @{ $self->head }, $path; + push @head, $path; } elsif ( -e $path ) { if ( $path =~ m/\.(?:js|css)$/ ) { - push @{ $self->head }, $path; + push @head, $path; } else { confess "can't add_head( $path ) it's not js or css"; } @@ -165,6 +161,17 @@ } +sub add_css { + my ($self,$css) = @_; + my ( $package, $path, $line ) = caller; + $self->add_head( qq| + + | ); +} + our $reload_counter = 0; @@ -230,8 +237,9 @@ |; - my $info = Frey::SVK->info; - my $revision = Frey::SVK->info->{Revision} || ''; + my $svk = Frey::SVK->new; + my $info = $svk->info; + my $revision = $svk->info->{Revision} || ''; $revision = $1 if $info->{'Mirrored From'} =~ m{Rev\.\s+(\d+)}; $self->add_icon unless $icon_html; @@ -316,16 +324,48 @@ ; } +=head1 Status line + +=head2 add_status + + $self->add_status( name => { some => 'data' } ); + + $self->add_status( "append to last status popup" ); + +=cut + sub add_status { my ( $self, $data ) = @_; - push @status, $data; + if ( ref($data) ) { + push @status, $data; + } else { + $status[ $#status ]->{added} = $data; + } } +=head2 clean_status + +Called at beginning of each request + + $self->clean_status; + +=cut + sub clean_status { + my ($self) = shift; + @head = (); @status = (); $icon_html = ''; } +=head2 status_parts + +Dump all status line parts + + $self->status_parts + +=cut + sub status_parts { warn "## status parts ", dump( map { keys %$_ } @status ); } @@ -353,7 +393,7 @@ $icon .= "/$variant" if $variant; my $path = 'static/icons/' . $icon . '.png'; if ( -e $path ) { - warn "# $class from $self icon_path $path"; + warn "# $class from $self icon_path $path" if $self->debug; return $path; } else { $self->TODO( "add $path icon for $class" ); @@ -483,7 +523,7 @@ ) = caller($_) or last; push @backtrace, - qq|via $package from $path $path|; + qq|via package $package at $path line $line|; } warn "# backtrace: ", dump( @backtrace ) if @backtrace; return @backtrace;