--- trunk/lib/Frey/View/NoPager.pm 2009/01/07 19:42:36 962 +++ trunk/lib/Frey/View/NoPager.pm 2009/01/07 20:31:51 963 @@ -11,54 +11,61 @@ use Data::Dump qw/dump/; has search => ( + documentation => 'Search for', is => 'rw', isa => 'Str', # required => 1, default => '', ); -has 'on_page' => ( # FIXME Frey::Web->page, sigh! +has 'page' => ( + documentation => 'display page', is => 'rw', isa => 'Int', default => 1, ); +has 'on_page' => ( + documentation => 'numer of items on page', + is => 'rw', + isa => 'Int', + default => 30, +); + has 'sort' => ( is => 'rw', isa => 'Str', + default => '', ); -our $v = { - search => '', - hits => 0, - page => 0, - max_page => 0, - time => '', - id => time() . rand(99), -}; - -our $json; - -sub json { - my ($self) = @_; - return - ''; -} - sub results_as_markup { my ($self) = @_; - my ($search,$page) = ( $self->search , $self->on_page ); + my ( $search,$page ) = ( $self->search , $self->page ); + + my $v = { + search => $search, + page => $page, + max_page => $page, + id => time() . rand(99), + }; sub next_page { my $self = shift; - return - qq|
| - . join("\n", @_) . $self->json() - . qq|
| - ; + my $json = $self->html_escape( JSON::Syck::Dump( $v ) ); + + my $message = join("\n", @_); + + # + + | + ; } if (! $search || $search =~ m/^\s*$/) { @@ -66,19 +73,11 @@ return $self->next_page; } - if (! $page) { - $v->{status} = 'Error: no page number?'; - return $self->next_page; - } - $search = join(" AND ", split(/\s+/, $search)) unless ($search =~ m/(?:AND|OR|\[|\])/); - $v->{search} = $search; - - $v->{page} = $page; my $node = new Search::Estraier::Node(%{ $self->config->{estraier} }); - my $on_page = 30; + my $on_page = $self->on_page; my $skip = ( $page - 1 ) * $on_page; my $cond = new Search::Estraier::Condition; @@ -87,6 +86,8 @@ $cond->set_skip( $skip ); $cond->set_order( $self->sort ) if $self->sort; + warn "INFO: estraier for '$search' page $page with $on_page items, first $skip"; + my $nres = $node->search($cond, ( $self->config->{estraier}->{depth} || 0 ) ); my $out; @@ -191,8 +192,11 @@ ); } - $self->wrap_in_page( 0 ); # disable and status bar + warn "# v = ", dump( $v ); + return ( $out, $v->{status} ) if wantarray; + + $self->wrap_in_page( 0 ); # disable and status bar for ajax call return $out; } @@ -213,6 +217,8 @@ }); |); + my ( $results, $status ) = $self->results_as_markup; + my $html = join("\n", qq|
@@ -223,7 +229,7 @@ - |, $v->{status}, qq| + $status @@ -231,7 +237,7 @@
- |, $self->results_as_markup, qq| + $results @@ -245,7 +251,6 @@ | ); - $self->wrap_in_page( 1 ); # FIXME results_as_markup will turn it off return $html; }