/[jquery]/no_pager/index.cgi
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 /no_pager/index.cgi

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

revision 17 by dpavlin, Wed Aug 16 22:26:45 2006 UTC revision 21 by dpavlin, Thu Aug 17 01:08:23 2006 UTC
# Line 25  my $v = { Line 25  my $v = {
25    
26  my $json;  my $json;
27    
28  #warn "config = ", dump($config);  sub debug {
29            my ($text,$var) = @_;
30            print "<pre>$text = ", dump($var), "</pre>";
31    }
32    
33    #debug('config', $config);
34    
35  sub json {  sub json {
36          return          return
# Line 34  sub json { Line 39  sub json {
39          '</textarea>';          '</textarea>';
40  }  }
41    
42    sub sort_order {
43            my $out;
44    
45            my $sort = $q->param('sort');
46    
47            $out .= '<select name="sort" id="sort">';
48    
49            foreach my $s (@{ $config->{estraier}->{order} }) {
50                    my ($text,$value) = %{$s};
51                    $out .= qq{<option value="$value"} .
52                            ( $sort eq $value ? ' selected' : '' ) .
53                            qq{>$text</option>};
54            }
55    
56            $out .= '</select>';
57    }
58    
59  sub get_results {  sub get_results {
60          my ($search, $page) = @_;          my $p = {@_};
61    
62          warn "get_results( $search , $page )\n";          my ($search,$page) = ( $p->{search} , $p->{page});
63    
64            sub next_page {
65                    return '<div id="next_page">' .
66                            join("\n", @_) . json() . '</div>';
67            }
68    
69          if (! $search || $search =~ m/^\s*$/) {          if (! $search || $search =~ m/^\s*$/) {
70                  $v->{status} = 'Enter search query';                  $v->{status} = 'Enter search query';
71                  return('', json);                  return next_page();
72          }          }
73    
74          if (! $page) {          if (! $page) {
75                  $v->{status} = 'Error: no page number?';                  $v->{status} = 'Error: no page number?';
76                  return('', json);                  return next_page();
77          }          }
78    
79          $search = join(" AND ", split(/\s+/, $search)) unless ($search =~ m/(?:AND|OR|\[|\])/);          $search = join(" AND ", split(/\s+/, $search)) unless ($search =~ m/(?:AND|OR|\[|\])/);
80          $v->{search} = $search || '';          $v->{search} = $search;
81    
82          $v->{page} = $page;          $v->{page} = $page;
83    
# Line 63  sub get_results { Line 90  sub get_results {
90          $cond->set_phrase( $search );          $cond->set_phrase( $search );
91          $cond->set_max( $on_page );          $cond->set_max( $on_page );
92          $cond->set_skip( $skip );          $cond->set_skip( $skip );
93            $cond->set_order( $p->{sort} ) if ($p->{sort});
94    
95          my $nres = $node->search($cond, ( $config->{estraier}->{depth} || 0 ) );          my $nres = $node->search($cond, ( $config->{estraier}->{depth} || 0 ) );
96    
# Line 114  sub get_results { Line 142  sub get_results {
142                          my $rdoc = $nres->get_doc($i);                          my $rdoc = $nres->get_doc($i);
143    
144                          $out .= '<div class="item">' .                          $out .= '<div class="item">' .
145                                  '<h1>' . $rdoc->attr('@title') . '</h1>' .                                  '<h1>' . attr_regex( $rdoc, '@title' ) . '</h1>' .
146                                  '<p>' . html_snippet( $rdoc->snippet ) . '</p>' .                                  '<p>' . html_snippet( $rdoc->snippet ) . '</p>' .
147                                  '<h2>' . attr_regex( $rdoc, 'source' ) . '</h2>';                                  '<strong>' . attr_regex( $rdoc, 'source' ) . '</strong>' .
148                                    ' [' . attr_regex( $rdoc, '@size' ) . ' bytes]<br/>';
149                          my $uri = attr_regex( $rdoc, '@uri' );                          my $uri = attr_regex( $rdoc, '@uri' );
150                          $out .=                          $out .=
151                                  qq{<a href="$uri"><tt>$uri</tt></a> } .                                  qq{<a href="$uri"><tt>$uri</tt></a> } .
# Line 128  sub get_results { Line 157  sub get_results {
157                  $out .= 'error: ' . $node->status;                  $out .= 'error: ' . $node->status;
158          }          }
159    
160          return ($out,json);          if ($v->{page} == $v->{max_page}) {
161                    $out .= next_page('<strong>All results shown</strong>');
162            } else {
163                    $out .= next_page(
164                            '<strong>Loading results...</strong><br/>',
165                            'If you are using the scroll bar, release the mouse to see more results.'
166                    );
167            }
168    
169            return $out;
170    
171  }  }
172    
173  if ($q->path_info() eq '/snippet') {  if ($q->path_info() eq '/snippet') {
174    
175          print join("\n<!-- json data -->",          print get_results(
176                  get_results(                  search => $q->param('search') || '',
177                          $q->param('search'),                  page => $q->param('page') || 0,
178                          $q->param('page'),                  sort => $q->param('sort') || undef,
                 )  
179          );          );
180    
181    
182  } else {  } else {
183    
184          my ($get_results,$json);          my $get_results = get_results(
185                    search => $q->param('search') || '',
186          if ($q->param('search')) {                  page => 1,
187                  ($get_results, $json) = get_results( $q->param('search'), 1 );                  sort => $q->param('sort') || undef,
188          } else {          );
                 $v->{status} = 'Enter search query';  
                 ($get_results, $json) = ('', json);  
         }  
189    
190          my $f = $q->path_info;          my $f = $q->path_info;
191          $f =~ s/\W+//g;          $f =~ s/\W+//g;

Legend:
Removed from v.17  
changed lines
  Added in v.21

  ViewVC Help
Powered by ViewVC 1.1.26