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

Annotation of /trunk/lib/Frey/ORM/Browser.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 213 - (hide annotations)
Fri Oct 31 19:51:51 2008 UTC (15 years, 6 months ago) by dpavlin
Original Path: trunk/lib/Frey/ObjectBrowser.pm
File size: 1714 byte(s)
rest of rename from html -> request
1 dpavlin 60 package Frey::ObjectBrowser;
2     use Moose;
3    
4     extends 'Frey';
5 dpavlin 100 with 'Frey::Web';
6 dpavlin 60
7 dpavlin 101 has 'fey_class' => (
8     is => 'rw',
9     isa => 'Str',
10     required => 1,
11     );
12    
13 dpavlin 60 my @callbacks;
14    
15     sub gen_link {
16     my ($text, $code) = @_;
17     push @callbacks, $code;
18     return qq{<a href="?cb=$#callbacks">$text</a>};
19     }
20    
21     sub process_links {
22     my $request = shift;
23     my $cb = $request->param('cb');
24     if (exists $callbacks[$cb]) {
25     $callbacks[$cb]->($request);
26     delete $callbacks[$cb];
27     }
28     }
29    
30 dpavlin 68 #use Data::Dumper;
31     #$Data::Dumper::Deparse = 1;
32     use Data::Dump qw/dump/;
33 dpavlin 60
34 dpavlin 123 use Frey::Web::Item;
35 dpavlin 111 use Frey::Web::Links;
36 dpavlin 143 use Frey::Pager;
37 dpavlin 72
38 dpavlin 213 sub request {
39 dpavlin 60 my ( $self, $req ) = @_;
40    
41 dpavlin 160 $self->add_head( 'static/form.css' );
42 dpavlin 143 my @w;
43    
44 dpavlin 89 my $f = { $req->params };
45    
46 dpavlin 111 my $pager;
47 dpavlin 68
48     while ( 1 ) {
49 dpavlin 143
50 dpavlin 82 warn "<<< GOT REQUEST ",dump( $f );
51 dpavlin 75
52 dpavlin 143 $pager = Frey::Pager->new(
53     fey_class => $self->fey_class,
54     item_constructor => sub {
55     Frey::Web::CRUD->new( fey_class => $self->fey_class, @_ );
56     },
57     ) if ! $pager;
58 dpavlin 82
59 dpavlin 143 $pager->pager->current_page( $f->{page} ) if $f->{page};
60     $pager->pager->entries_per_page( $f->{pre_page} ) if $f->{per_page};
61 dpavlin 109
62 dpavlin 143 $pager->update_collection;
63 dpavlin 109
64 dpavlin 143 my $last = $pager->last_item;
65 dpavlin 109
66 dpavlin 143 if ( $last->fey ) {
67     warn "+++ add item widget\n";
68     $pager->add_item( $pager->item_constructor->( render_as => 'edit' ));
69 dpavlin 109 }
70    
71 dpavlin 143 my $form = $pager->items_in_layout( $f );
72     $form = $last->render_table_wrapper( $form );
73 dpavlin 89
74 dpavlin 143 my $html = $self->page(
75 dpavlin 121 body => '<h1>' . $self->fey_class . '</h1>'
76 dpavlin 143 . $last->layout_picker # FIXME ugly
77     . $pager->render_pager
78 dpavlin 121 . qq|<form method="post">$form</form>|
79 dpavlin 100 );
80 dpavlin 72
81 dpavlin 143 warn ">>> ",length( $html ),"\n";
82 dpavlin 93
83 dpavlin 100 $req->print( $html );
84 dpavlin 68 $req->next;
85 dpavlin 72
86 dpavlin 143 # process_links( $req );
87 dpavlin 72 $f = { $req->params };
88 dpavlin 68 }
89    
90     warn "NO WAY OUT!";
91 dpavlin 60 };
92    
93     1;

  ViewVC Help
Powered by ViewVC 1.1.26