--- 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;