/[Frey]/trunk/lib/Frey/ORM/Button.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/ORM/Button.pm

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

revision 97 by dpavlin, Fri Jul 11 13:11:36 2008 UTC revision 105 by dpavlin, Sun Jul 13 12:08:59 2008 UTC
# Line 18  Don't quite know what this will be yet. Line 18  Don't quite know what this will be yet.
18    
19  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
20  use Moose;  use Moose;
21    extends 'Frey';
22  with 'Frey::Web::Field';  with 'Frey::Web::Field';
23    
24  # List of callbacks, buttons for now  # List of callbacks, buttons for now
25  has callback => ( is => 'rw', default => sub {{}} );  has callback => ( is => 'rw', default => sub {{}} );
26  has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] });  has callback_order => ( is => 'rw', isa => 'ArrayRef', default => sub { [] });
27    
 sub set_from_hash {  
         my ($self, $f) = @_;  
         my %attrmap = %{ $self->meta->get_attribute_map };  
         my $hash;  
         while( my ($name, $attr) = each %attrmap ) {  
                 my $field_name = $self->field_name($name);  
                 if(defined $f->{$field_name}) {  
                         my $writer = $attr->get_write_method;  
                         $self->$writer($f->{$field_name});  
                         $hash->{ $name } = $f->{$field_name};  
                 }  
         }  
         warn "# set_from_hash ", $self->uuid," produced hash = ",dump( $hash ) if $hash;  
         return $hash;  
 }  
   
28  sub add_button {  sub add_button {
29    my ($self, $name, $callback) = @_;          my ($self, $name, $callback) = @_;
30    $self->callback->{$name} = $callback;          $self->callback->{$name} = $callback;
31    push @{ $self->callback_order }, $name;          push @{ $self->callback_order }, $name;
32    warn "## callback_order = ",dump( $self->callback_order );          warn "## callback_order = ",dump( $self->callback_order );
33  }  }
34    
35  sub remove_button {  sub remove_button {
# Line 64  sub rename_button { Line 49  sub rename_button {
49  }  }
50    
51  sub render_buttons {  sub render_buttons {
52    my ($self) = @_;          my ($self) = @_;
53    my $out = '';          my $out = '';
54    foreach my $name ( @{ $self->callback_order } ) {          foreach my $name ( @{ $self->callback_order } ) {
55      my $btn_name = $self->field_name($name);                  my $btn_name = $self->field_name($name);
56      $out .= qq{                  $out .= qq|<input type="submit" name="@{[$btn_name]}" value="$name">|;
57        <input type="submit" name="@{[$btn_name]}" value="$name">          }
58      };          return $out;
   }  
   return $out;  
59  }  }
60    
61  sub exec_buttons {  sub exec_buttons {
62    my ($self, $f) = @_;          my ($self, $f) = @_;
63    foreach my $name (keys %{$self->callback}) {          foreach my $name (keys %{$self->callback}) {
64      my $btn_name = $self->field_name($name);                  my $btn_name = $self->field_name($name);
65      if($f->{$btn_name}) {                  if($f->{$btn_name}) {
66        $self->callback->{$name}->($f);                          $self->callback->{$name}->($f);
67      }                  }
68    }          }
69  }  }
70    
71  =head1 SEE ALSO  =head1 SEE ALSO

Legend:
Removed from v.97  
changed lines
  Added in v.105

  ViewVC Help
Powered by ViewVC 1.1.26