/[Frey]/trunk/lib/Frey/Web/Design.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Web/Design.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 149 by dpavlin, Wed Jul 16 21:23:27 2008 UTC revision 150 by dpavlin, Wed Jul 16 21:51:23 2008 UTC
# Line 11  Frey::Web::Design - field designer for L Line 11  Frey::Web::Design - field designer for L
11    
12  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
13    
 our $labels;  
 our $label_order;  
 our $label_editable;  
 our $label_count = 0;  
   
 =for removed  
   
14  has 'labels' => (  has 'labels' => (
15          is => 'rw',          is => 'rw',
16          isa => 'HashRef[Str]',          isa => 'HashRef[Str]',
# Line 35  has 'label_editable' => ( Line 28  has 'label_editable' => (
28          isa => 'HashRef[Frey::Web::Editable]',          isa => 'HashRef[Frey::Web::Editable]',
29          default => sub { {} },          default => sub { {} },
30  );  );
 =cut  
31    
32  use Frey::Web::Editable;  has 'label_count' => (
33            is => 'rw',
34            isa => 'Int',
35            default => 0,
36    );
37    
38  our $first_uuid;  use Frey::Web::Editable;
39    
40  around 'field_label' => sub {  around 'field_label' => sub {
41          my ($next, $self, $name) = @_;          my ($next, $self, $name) = @_;
42          my $orig_label = $self->$next($name);          my $orig_label = $self->$next($name);
43    
44          my $label = $labels->{ $name } ||= $orig_label;          my $label = $self->labels->{ $name } ||= $orig_label;
45            my $order = $self->label_order->{ $name };
46          if ( ! defined $label_order->{ $name } ) {          my $count = $self->label_count;
47                  warn "field_label $label_count $name -> $label\n";  
48                  $label_order->{ $name } = $label_count++;          if ( ! defined $order ) {
49                  $label_editable->{ $name } = Frey::Web::Editable->new(                  warn "field_label $count $name -> $label\n";
50                    $self->label_order->{ $name } = $count++;
51                    $self->label_count( $count );
52                    $self->label_editable->{ $name } = Frey::Web::Editable->new(
53                          name => $name,                          name => $name,
54                          value => $label,                          value => $label,
55                          render_as => 'edit',                          render_as => 'edit',
56                          save_callback => sub {                          save_callback => sub {
57                                  my ( $self, $val ) = @_;                                  my ( $caller, $val ) = @_;
58                                  $labels->{ $name } = $val;                                  $self->labels->{ $name } = $val;
59                                  # XXX we really need this since we are in continutation and have old value!                                  # XXX we really need this since we are in continutation and have old value!
60                                  $self->value( $val );                                  $caller->value( $val );
61                                  warn "## saved $val new labels = ",dump( $labels, $self->value );                                  warn "## saved $val new labels = ",dump( $self->labels, $caller->value );
62                          }                          }
63                  );                  );
64          }          }
65    
66          warn "around field_label ", $self->uuid, ' ', $label_order->{ $name }, ' ', $label_count, dump( $labels ), $/;          warn "around field_label ", $self->uuid, " $order $count ", dump( $self->labels ), $/;
   
         $first_uuid ||= $self->uuid;  
         return $label unless $first_uuid eq $self->uuid;  
   
         my $edit = $label_editable->{ $name };  
67    
68          my $html;          my $html;
69          $html .= qq|<a style="color:#888" href="">&larr;</a>| if $label_order->{ $name } > 0 ;          $html .= qq|<a style="color:#888" href="">&larr;</a>| if $self->label_order->{ $name } > 0 ;
70          $html .= $edit->process( Frey::Request->params );          $html .= $self->label_editable->{ $name }->process( Frey::Request->params );
71          $html .= qq|<a style="color:#888" href="">&rarr;</a>|;          $html .= qq|<a style="color:#888" href="">&rarr;</a>|;
72    
73          return $html;          return $html;

Legend:
Removed from v.149  
changed lines
  Added in v.150

  ViewVC Help
Powered by ViewVC 1.1.26