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

Contents of /trunk/lib/Frey/ObjectBrowser.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 213 - (show annotations)
Fri Oct 31 19:51:51 2008 UTC (15 years, 5 months ago) by dpavlin
File size: 1714 byte(s)
rest of rename from html -> request
1 package Frey::ObjectBrowser;
2 use Moose;
3
4 extends 'Frey';
5 with 'Frey::Web';
6
7 has 'fey_class' => (
8 is => 'rw',
9 isa => 'Str',
10 required => 1,
11 );
12
13 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 #use Data::Dumper;
31 #$Data::Dumper::Deparse = 1;
32 use Data::Dump qw/dump/;
33
34 use Frey::Web::Item;
35 use Frey::Web::Links;
36 use Frey::Pager;
37
38 sub request {
39 my ( $self, $req ) = @_;
40
41 $self->add_head( 'static/form.css' );
42 my @w;
43
44 my $f = { $req->params };
45
46 my $pager;
47
48 while ( 1 ) {
49
50 warn "<<< GOT REQUEST ",dump( $f );
51
52 $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
59 $pager->pager->current_page( $f->{page} ) if $f->{page};
60 $pager->pager->entries_per_page( $f->{pre_page} ) if $f->{per_page};
61
62 $pager->update_collection;
63
64 my $last = $pager->last_item;
65
66 if ( $last->fey ) {
67 warn "+++ add item widget\n";
68 $pager->add_item( $pager->item_constructor->( render_as => 'edit' ));
69 }
70
71 my $form = $pager->items_in_layout( $f );
72 $form = $last->render_table_wrapper( $form );
73
74 my $html = $self->page(
75 body => '<h1>' . $self->fey_class . '</h1>'
76 . $last->layout_picker # FIXME ugly
77 . $pager->render_pager
78 . qq|<form method="post">$form</form>|
79 );
80
81 warn ">>> ",length( $html ),"\n";
82
83 $req->print( $html );
84 $req->next;
85
86 # process_links( $req );
87 $f = { $req->params };
88 }
89
90 warn "NO WAY OUT!";
91 };
92
93 1;

  ViewVC Help
Powered by ViewVC 1.1.26