/[webpac2]/trunk/web/browse.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

Annotation of /trunk/web/browse.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 49 - (hide annotations)
Mon Nov 14 16:15:27 2005 UTC (18 years, 6 months ago) by dpavlin
File size: 3541 byte(s)
 r8858@llin:  dpavlin | 2005-11-14 13:18:02 +0100
 show error on non-existing records, show template edit textarea

1 dpavlin 46 #!/usr/bin/perl -w
2    
3     use Cwd qw/abs_path/;
4     use CGI::Carp qw(fatalsToBrowser);
5     use CGI::Simple;
6 dpavlin 49 use File::Slurp;
7 dpavlin 46
8     use lib '../lib';
9    
10     use WebPAC::DB;
11     use WebPAC::Output::TT;
12    
13     my $abs_path = abs_path($0);
14     $abs_path =~ s#/[^/]*$#/../#;
15    
16     my $db_path = $abs_path . '/db/';
17 dpavlin 49 my $template = 'html_ffzg.tt';
18 dpavlin 46
19     my $db = new WebPAC::DB(
20     path => $db_path,
21     read_only => 1,
22     debug => 1,
23     );
24    
25     my $out = new WebPAC::Output::TT(
26     include_path => "$abs_path/conf/output/tt",
27     filters => { foo => sub { shift } },
28     );
29    
30     my $q = new CGI::Simple;
31     my $self = $q->url( '-path_info'=>1, '-query'=>0, '-full'=>0 );
32    
33     my $rec = $q->param('rec') || 1;
34    
35     print $q->header;
36    
37     if ($q->path_info =~ m#xml#) {
38    
39     my @ds = $db->load_ds($rec);
40    
41 dpavlin 49 if (@ds && $#ds > 0) {
42 dpavlin 46 print qq{<response>
43 dpavlin 49 <action type='html' target='div_record' errorCode='' errorMessage='' >
44 dpavlin 46 }, $out->apply(
45 dpavlin 49 template => $template,
46 dpavlin 46 data => \@ds,
47     ), qq{
48    
49     <script type='text/javascript'>
50     <!--
51 dpavlin 49 var el = iwfGetById('div_record_nr');
52 dpavlin 46 if (el) el.innerHTML = '# <b>$rec</b>';
53 dpavlin 49 //iwfShow('div_record');
54     iwfOpacity('div_record', 100);
55 dpavlin 46 //-->
56     </script>
57    
58     </action>
59     </response>
60     };
61     exit;
62     } else {
63 dpavlin 49 print qq{<response>
64     <action type='html' target='div_record' errorCode='' errorMessage='' >
65    
66     <b>Record $rec not found!</b>
67     <script type='text/javascript'>
68     <!--
69     var el = iwfGetById('div_record_nr');
70     if (el) el.innerHTML = '<strike>$rec</strike>';
71     //-->
72     </script>
73    
74     </action>
75     </response>
76     };
77     exit;
78 dpavlin 46 }
79    
80 dpavlin 49 } elsif ($q->path_info =~ m#template#) {
81    
82     my $tmpl = read_file($out->{'include_path'} . '/' . $template);
83     $tmpl = $q->escapeHTML($tmpl);
84    
85     print qq{<response>
86     <action type='html' target='div_template' errorCode='' errorMessage='' >
87     <textarea name="tt_template" cols="80" rows="10">
88     $tmpl
89     </textarea>
90     <br/><input type="button" name="save" value="Save">
91     </action>
92     </response>
93     };
94    
95 dpavlin 46 } else {
96     print qq{
97     <html>
98     <head>
99     <title>WebPAC simple browse interface</title>
100     <script type='text/javascript' src='iwf/iwfcore.js'></script>
101     <script type='text/javascript' src='iwf/iwfgui.js'></script>
102     <script type='text/javascript' src='iwf/iwfxml.js'></script>
103     <script type='text/javascript' src='iwf/iwfajax.js'></script>
104     <script type='text/javascript'>
105    
106     var rec = $rec ;
107     var url = '$self';
108    
109     function update_status(text) {
110 dpavlin 49 var el = iwfGetById('div_record_nr');
111 dpavlin 46 if (el) el.innerHTML = text;
112     }
113    
114     function load_rec(nr) {
115     update_status(nr+'...');
116 dpavlin 49 iwfRequest( url+'/xml/?rec='+nr, 'div_record' );
117     iwfOpacity('div_record', 30);
118 dpavlin 46 }
119    
120     function inc_rec() {
121     rec++;
122     load_rec(rec);
123     return false;
124     }
125    
126     function dec_rec() {
127     rec--;
128     load_rec(rec);
129     return false;
130     }
131    
132 dpavlin 47 function reload_rec() {
133     load_rec(rec);
134     return false;
135     }
136    
137 dpavlin 49 function init_page() {
138     load_rec(rec);
139     // load template
140     iwfRequest( url+'/template/', 'div_template' );
141     }
142    
143 dpavlin 46 </script>
144     </head>
145 dpavlin 49 <body onload="init_page();">
146 dpavlin 46
147     db_path = <tt>$db_path</tt><br/>
148    
149 dpavlin 49 <div id="iwfLog" style="display: none;">
150     </div>
151    
152 dpavlin 46 <div style="background: #e0e0e0; padding: 0.5em; display: block;">
153     <a href="$self?rec=}, $rec - 1, qq{" onClick="return dec_rec();">&#8678;</a>&nbsp;
154 dpavlin 49 <span id="div_record_nr"> none </span>
155 dpavlin 47
156 dpavlin 46 <a href="$self?rec=}, $rec + 1, qq{" onClick="return inc_rec();">&#8680;</a>&nbsp;
157 dpavlin 47 <a href="$self?rec=}, $rec, qq{" onClick="return reload_rec();">&#8634;</a>&nbsp;
158 dpavlin 49 <a href="#" onClick="iwfRefreshLog(); return false;">&#9636;</a>&nbsp;
159 dpavlin 46 </div>
160    
161 dpavlin 49 <div id="div_template">
162     <span style="color: #808080;"> no template loaded yet. </span>
163     </div>
164    
165     <div id="div_record" style="display: block;">
166 dpavlin 46 <span style="color: #808080;"> no record loaded yet. </span>
167     </div>
168    
169 dpavlin 49
170 dpavlin 46 </body>
171     </html>};
172    
173     };

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26