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

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

revision 71 by dpavlin, Wed Jul 9 16:38:48 2008 UTC revision 79 by dpavlin, Thu Jul 10 10:33:04 2008 UTC
# Line 11  use Moose; Line 11  use Moose;
11  extends 'Continuity::Widget';  extends 'Continuity::Widget';
12  #with 'BonusTypes';  #with 'BonusTypes';
13    
14  before main => sub {  sub main {
15          my ($self) = @_;          my ( $self ) = @_;
16  #       $self->add_button('Show ID' => sub {  
17  #               print STDERR "ID = @{[$self->id]}!\n";          if ( ! $self->_fey ) {
18  #               $self->next("<tt>id @{[$self->id]}!</tt>");                  $self->add_button( 'Add' => sub {
19  #       });                          warn "## Add button callback ",dump( @_ );
20          $self->add_button('Edit' => sub {                          my $f = shift;
21                  my $out = $self->renderer->{edit}->($self);  #                       my $out = $self->render_edit;
22                  my $f = $self->next($out);  #                       my $f = $self->next($out);
23                  $self->set_from_hash($f, sub {                          warn "## my uuid ",$self->uuid;
24                          warn "## inside set_from_hash ",dump( @_ );                          $self->set_from_hash($f, sub {
25                          my $hash = shift || die "no hash?";                                  warn "## inside set_from_hash ",dump( @_ );
26                          warn "## hash = ",dump( $hash );                                  my $hash = shift || die "no hash?";
27                          $self->_fey->update( %$hash );                                  delete( $hash->{id} );  # FIXME clear primary key
28    #                               $hash->{id} = undef;
29                                    my $u = Strix::User->insert( %$hash );
30                                    warn "Inserted ",$u->id;
31                                    $self->_fey( $u );
32                                    $self->render_as( 'view' );
33                            });
34                    });
35            }
36    
37            warn "# _fey = ",dump( $self->_fey );
38    
39            if ( $self->_fey ) {
40    
41                    $self->add_button( 'Edit' => sub {
42                            my $out = $self->render_edit;
43                            my $f = $self->next($out);
44                            $self->set_from_hash($f, sub {
45                                    warn "## inside set_from_hash ",dump( @_ );
46                                    my $hash = shift || die "no hash?";
47                                    $self->_fey->update( %$hash );
48                            });
49                    });
50    
51                    $self->add_button('Delete' => sub {
52                            print STDERR "delete ID @{[$self->id]}!\n";
53                            $self->_fey->delete;
54                            $self->next("Deleted id @{[$self->id]}!");
55                            $self->render_as( 'deleted' );
56                            Strix::Schema->ClearObjectCaches();     # XXX important!
57                  });                  });
58          });  
59            }
60    
61            while(1) {
62            my $out;
63                    if ( $self->render_as eq 'edit' ) {
64                            $out = $self->render_iterator(
65                                    qq|<div class="editform">|,
66                                    sub {
67                                            #warn "# edit render_iterator ",dump( @_ );
68                                            my ( $name, $field_name, $label, $val ) = @_;
69                                            return if $name =~ /^_/;
70                                            return qq|
71                                                    <div class=fieldholder>
72                                                            <div class=label>$label</div>
73                                                            <div class=field>
74                                                                    <input type=text id="$field_name" name="$field_name" value="$val">
75                                                            </div>
76                                                    </div>
77                                            |;
78                                    },
79                                    qq|</div>|
80                            );
81                    } elsif ( $self->render_as eq 'view' ) {
82                            $out = $self->render_iterator(
83                                    qq|<div class="view">|,
84                                    sub {
85                                            #warn "# view render_iterator ",dump( @_ );
86                                            my ( $name, $field_name, $label, $val ) = @_;
87                                            return if $name =~ /^_/;
88                                            return qq|
89                                                    <div class=fieldholder>
90                                                            <div class=label>$label</div>
91                                                            <div class=field>$val</div>
92                                                            </div>
93                                                    </div>
94                                            |;
95                                    },
96                                    qq|</div>|
97                            );
98                    } else {
99                            warn "no renderer ",dump( $self->render_as ), " skipping...";
100                    }
101    
102                    warn $@ if $@;
103                    my $f = $self->next($out);
104                    $self->set_from_hash($f);
105                    $self->exec_buttons($f);
106            }
107  };  };
108    
109  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
# Line 35  use Strix::User; Line 112  use Strix::User;
112  my $m = Strix::User->meta;  my $m = Strix::User->meta;
113    
114  foreach ( $m->get_attribute_list ) {  foreach ( $m->get_attribute_list ) {
         warn ">> $_\n";  
115          my $attr = $m->get_attribute( $_ );          my $attr = $m->get_attribute( $_ );
116            warn ">> $_\n";
117    
118            # FIXME primary key would have to be read-only!
119    
120          has $_ => (          has $_ => (
121                  is => $attr->_is_metadata,                  is => $attr->_is_metadata,

Legend:
Removed from v.71  
changed lines
  Added in v.79

  ViewVC Help
Powered by ViewVC 1.1.26