/[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 143 by dpavlin, Wed Jul 16 14:17:46 2008 UTC revision 149 by dpavlin, Wed Jul 16 21:23:27 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    
14    our $labels;
15    our $label_order;
16    our $label_editable;
17    our $label_count = 0;
18    
19    =for removed
20    
21  has 'labels' => (  has 'labels' => (
22          is => 'rw',          is => 'rw',
23          isa => 'HashRef[Str]',          isa => 'HashRef[Str]',
24          default => sub { {} },          default => sub { {} },
25  );  );
26    
27  has 'label_count' => (  has 'label_order' => (
28          is => 'rw',          is => 'rw',
29          isa => 'Int',          isa => 'HashRef[Int]',
30          default => 0,          default => sub { {} },
31  );  );
32    
33  around 'field_label' => sub {  has 'label_editable' => (
34          my ($next, $self, $name) = @_;          is => 'rw',
35          my $label = $self->$next($name);          isa => 'HashRef[Frey::Web::Editable]',
36            default => sub { {} },
37    );
38    =cut
39    
40          $self->labels->{ $name } = $label;  use Frey::Web::Editable;
         $self->label_count( $self->label_count + 1 );  
41    
42          $label = '[←]' . $label . '[→]';  our $first_uuid;
43          return $label;  
44  };  around 'field_label' => sub {
45            my ($next, $self, $name) = @_;
46            my $orig_label = $self->$next($name);
47    
48  before 'main' => sub {          my $label = $labels->{ $name } ||= $orig_label;
         my $self = shift;  
49    
50          $self->add_button( 'Finish design' => sub {          if ( ! defined $label_order->{ $name } ) {
51                  my $f = shift;                  warn "field_label $label_count $name -> $label\n";
52                  my $hash = $self->set_from_hash($f);                  $label_order->{ $name } = $label_count++;
53                  warn "## Add hash ", $self->uuid, " => ",dump( $hash, $f );                  $label_editable->{ $name } = Frey::Web::Editable->new(
54                                            name => $name,
55                  $self->render_as( 'view' );                          value => $label,
56                  $self->remove_button( 'Finish design' );                          render_as => 'edit',
57          });                          save_callback => sub {
58                                    my ( $self, $val ) = @_;
59                                    $labels->{ $name } = $val;
60                                    # XXX we really need this since we are in continutation and have old value!
61                                    $self->value( $val );
62                                    warn "## saved $val new labels = ",dump( $labels, $self->value );
63                            }
64                    );
65            }
66    
67            warn "around field_label ", $self->uuid, ' ', $label_order->{ $name }, ' ', $label_count, dump( $labels ), $/;
68    
69            $first_uuid ||= $self->uuid;
70            return $label unless $first_uuid eq $self->uuid;
71    
72            my $edit = $label_editable->{ $name };
73    
74            my $html;
75            $html .= qq|<a style="color:#888" href="">&larr;</a>| if $label_order->{ $name } > 0 ;
76            $html .= $edit->process( Frey::Request->params );
77            $html .= qq|<a style="color:#888" href="">&rarr;</a>|;
78    
79            return $html;
80  };  };
81    
82  1;  1;

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

  ViewVC Help
Powered by ViewVC 1.1.26