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

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

revision 129 by dpavlin, Mon Jul 14 23:44:18 2008 UTC revision 135 by dpavlin, Tue Jul 15 17:14:10 2008 UTC
# Line 38  has 'display_columns' => ( Line 38  has 'display_columns' => (
38          lazy_build => 1,          lazy_build => 1,
39  );  );
40    
 sub id {  
         my $self = shift;  
         carp "LEGACY: called ->id";  
         $self->fey->id if $self->fey;  
 }  
   
41  sub set_from_hash {  sub set_from_hash {
42          my ($self, $f) = @_;          my ($self, $f) = @_;
43          my $attrmap = $self->fey->meta->get_attribute_map if $self->fey;          my $attrmap = $self->fey->meta->get_attribute_map if $self->fey;
# Line 65  sub set_from_hash { Line 59  sub set_from_hash {
59          return $hash;          return $hash;
60  }  }
61    
 sub render_iterator {  
         confess "BACKWARD INCOMATIBLE CHANGE: render_iterator works ONLY with 2 params!" unless $#_ == 1;  
         my ($self, $iterator) = @_;  
         my $out;  
 #       my %attrmap = %{ $self->meta->get_attribute_map };  
 #       while( my ($name, $attr) = each %attrmap ) {  
 #               my $reader = $attr->get_read_method;  
 #               my $val = $self->$reader || '';  
         foreach my $name ( @{ $self->display_columns } ) {  
                 $out .= $self->render_field( $name, $iterator )  
         }  
         return $out;  
 }  
   
 sub render_field {  
         my ($self, $name, $iterator) = @_;  
         my $field_name = $self->field_name($name);  
         my $val;  
         $val = $self->fey->$name if $self->fey && $self->fey->can($name);  
         $iterator->( $name, $field_name, ucfirst($name), $val ) || '';  # || '' to shut warnings  
 }  
   
62  sub main {  sub main {
63          my ( $self ) = @_;          my ( $self ) = @_;
64    
65          warn "# ",$self->uuid, " [", $self->id ,"] fey = ",dump( $self->fey );          warn "# ",$self->uuid, " fey = ",dump( $self->fey );
66    
67          while(1) {          while(1) {
68          my $out;          my $out;
# Line 110  sub main { Line 82  sub main {
82          }          }
83  };  };
84    
85    sub field_value {
86            my ( $self, $name ) = @_;
87            my $val = '';
88            $val = $self->fey->$name if $self->fey && $self->fey->can($name);
89            return $val;
90    }
91    
92    sub field_label {
93            my ( $self, $name ) = @_;
94            my $label = ucfirst($name);
95            return $label;
96    }
97    
98  sub render_edit {  sub render_edit {
99          my $self = shift;          my $self = shift;
100          warn "# render_edit ",$self->id," ",$self->uuid, " ", $self->layout, "\n";          warn "# render_edit ",$self->uuid, " ", $self->layout, "\n";
101          my $out = $self->render_iterator( sub {          my $out;
102                  #warn "# edit render_iterator ",dump( @_ );          foreach my $name ( @{ $self->display_columns } ) {
103                  my ( $name, $field_name, $label, $val ) = @_;                  next if $name =~ /^_/;
104                  return if $name =~ /^_/;  
105                  $val ||= '';                  my $field_name = $self->field_name( $name );
106                  return qq|                  my $label = $self->field_label( $name );
107                    my $val = $self->field_value( $name );
108    
109                    if ( $self->layout eq 'table' ) {
110                            $out .= qq|
111                          <tr class="editform">                          <tr class="editform">
112                          <td class="label">$label</td>                          <td class="label">$label</td>
113                          <td class="field">                          <td class="field">
114                                  <input type=text id="$field_name" name="$field_name" value="$val">                                  <input type=text id="$field_name" name="$field_name" value="$val">
115                          </td>                          </td>
116                          </tr>                          </tr>
117                  | if $self->layout eq 'table';                          |;
118                  return qq|                  } elsif ( $self->layout eq 'columns' ) {
119                            $out .= qq|
120                          <td class="field">                          <td class="field">
121                                  <input type=text id="$field_name" name="$field_name" value="$val">                                  <input type=text id="$field_name" name="$field_name" value="$val">
122                          </td>                          </td>
123                  | if $self->layout eq 'columns';                          |;
124                  return qq|                  } else {
125                            $out .= qq|
126                          <div class=fieldholder>                          <div class=fieldholder>
127                                  <label for="$field_name">$label</label>                                  <label for="$field_name">$label</label>
128                                  <div class=field>                                  <div class=field>
129                                          <input type=text id="$field_name" name="$field_name" value="$val">                                          <input type=text id="$field_name" name="$field_name" value="$val">
130                                  </div>                                  </div>
131                          </div>                          </div>
132                  |;                          |;
133          });                  }
134            };
135    
136          return qq|<tr class="editform">$out<td>| . $self->render_callbacks . qq|</td></tr>| if $self->layout eq 'columns';          return qq|<tr class="editform">$out<td>| . $self->render_callbacks . qq|</td></tr>| if $self->layout eq 'columns';
137    
# Line 148  sub render_edit { Line 140  sub render_edit {
140    
141  sub render_view {  sub render_view {
142          my $self = shift;          my $self = shift;
143          warn "# render_view ",$self->id," ",$self->uuid," ", $self->layout,"\n";          warn "# render_view ",$self->uuid," ", $self->layout,"\n";
144          my $out = $self->render_iterator( sub {          my $out;
145                  #warn "# view render_iterator ",dump( @_ );          foreach my $name ( @{ $self->display_columns } ) {
146                  my ( $name, $field_name, $label, $val ) = @_;                  next if $name =~ /^_/;
147                  return if $name =~ /^_/;                  
148                  $val ||= '';                  my $field_name = $self->field_name( $name );
149                  return qq|<tr><td>$label</td><td>$val</td></tr>| if $self->layout eq 'table';                  my $label = $self->field_label( $name );
150                  return qq|<td>$val</td>| if $self->layout eq 'columns';                  my $val = $self->field_value( $name );
151                  return qq|  
152                    if ( $self->layout eq 'table' ) {
153                            $out .= qq|<tr><td>$label</td><td>$val</td></tr>|;
154                    } elsif ( $self->layout eq 'columns' ) {
155                            $out .= qq|<td>$val</td>|;
156                    } else {
157                            $out .= qq|
158                          <div class=fieldholder>                          <div class=fieldholder>
159                                  <div class=label>$label</div>                                  <div class=label>$label</div>
160                                  <div class=field>$val</div>                                  <div class=field>$val</div>
161                                  </div>                                  </div>
162                          </div>                          </div>
163                  |;                          |;
164          });                  }
165            };
166          return qq|<tr>$out<td>| . $self->render_callbacks . qq|</td></tr>| if $self->layout eq 'columns';          return qq|<tr>$out<td>| . $self->render_callbacks . qq|</td></tr>| if $self->layout eq 'columns';
167          $self->render_wrapper_class( $out, 'view' );          $self->render_wrapper_class( $out, 'view' );
168  }  }

Legend:
Removed from v.129  
changed lines
  Added in v.135

  ViewVC Help
Powered by ViewVC 1.1.26