--- trunk/lib/Frey/Web/Design.pm 2008/07/16 21:23:27 149 +++ trunk/lib/Frey/Web/Design.pm 2008/07/16 21:51:23 150 @@ -11,13 +11,6 @@ use Data::Dump qw/dump/; -our $labels; -our $label_order; -our $label_editable; -our $label_count = 0; - -=for removed - has 'labels' => ( is => 'rw', isa => 'HashRef[Str]', @@ -35,45 +28,46 @@ isa => 'HashRef[Frey::Web::Editable]', default => sub { {} }, ); -=cut -use Frey::Web::Editable; +has 'label_count' => ( + is => 'rw', + isa => 'Int', + default => 0, +); -our $first_uuid; +use Frey::Web::Editable; around 'field_label' => sub { my ($next, $self, $name) = @_; my $orig_label = $self->$next($name); - my $label = $labels->{ $name } ||= $orig_label; - - if ( ! defined $label_order->{ $name } ) { - warn "field_label $label_count $name -> $label\n"; - $label_order->{ $name } = $label_count++; - $label_editable->{ $name } = Frey::Web::Editable->new( + my $label = $self->labels->{ $name } ||= $orig_label; + my $order = $self->label_order->{ $name }; + my $count = $self->label_count; + + if ( ! defined $order ) { + warn "field_label $count $name -> $label\n"; + $self->label_order->{ $name } = $count++; + $self->label_count( $count ); + $self->label_editable->{ $name } = Frey::Web::Editable->new( name => $name, value => $label, render_as => 'edit', save_callback => sub { - my ( $self, $val ) = @_; - $labels->{ $name } = $val; + my ( $caller, $val ) = @_; + $self->labels->{ $name } = $val; # XXX we really need this since we are in continutation and have old value! - $self->value( $val ); - warn "## saved $val new labels = ",dump( $labels, $self->value ); + $caller->value( $val ); + warn "## saved $val new labels = ",dump( $self->labels, $caller->value ); } ); } - warn "around field_label ", $self->uuid, ' ', $label_order->{ $name }, ' ', $label_count, dump( $labels ), $/; - - $first_uuid ||= $self->uuid; - return $label unless $first_uuid eq $self->uuid; - - my $edit = $label_editable->{ $name }; + warn "around field_label ", $self->uuid, " $order $count ", dump( $self->labels ), $/; my $html; - $html .= qq|| if $label_order->{ $name } > 0 ; - $html .= $edit->process( Frey::Request->params ); + $html .= qq|| if $self->label_order->{ $name } > 0 ; + $html .= $self->label_editable->{ $name }->process( Frey::Request->params ); $html .= qq||; return $html;