/[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

Diff of /trunk/web/browse.cgi

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

revision 49 by dpavlin, Mon Nov 14 16:15:27 2005 UTC revision 63 by dpavlin, Tue Nov 15 16:56:40 2005 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl -w  #!/usr/bin/perl -w
2    
3    use strict;
4    
5  use Cwd qw/abs_path/;  use Cwd qw/abs_path/;
6  use CGI::Carp qw(fatalsToBrowser);  use CGI::Carp qw(fatalsToBrowser);
7  use CGI::Simple;  use CGI::Simple;
8  use File::Slurp;  use File::Slurp;
9    use Data::Dumper;
10    use Text::Iconv;
11    
12  use lib '../lib';  use lib '../lib';
13    
# Line 16  $abs_path =~ s#/[^/]*$#/../#; Line 20  $abs_path =~ s#/[^/]*$#/../#;
20  my $db_path = $abs_path . '/db/';  my $db_path = $abs_path . '/db/';
21  my $template = 'html_ffzg.tt';  my $template = 'html_ffzg.tt';
22    
23    my $iconv_utf8 = new Text::Iconv('ISO-8859-2', 'UTF-8');
24    my $iconv_loc = new Text::Iconv('UTF-8', 'ISO-8859-2');
25    
26  my $db = new WebPAC::DB(  my $db = new WebPAC::DB(
27          path => $db_path,          path => $db_path,
28          read_only => 1,          read_only => 1,
# Line 32  my $self = $q->url( '-path_info'=>1, '-q Line 39  my $self = $q->url( '-path_info'=>1, '-q
39    
40  my $rec = $q->param('rec') || 1;  my $rec = $q->param('rec') || 1;
41    
42  print $q->header;  print $q->header( -charset    => 'utf-8' );
43    
44  if ($q->path_info =~ m#xml#) {  if ($q->path_info =~ m#xml#) {
45    
# Line 41  if ($q->path_info =~ m#xml#) { Line 48  if ($q->path_info =~ m#xml#) {
48          if (@ds && $#ds > 0) {          if (@ds && $#ds > 0) {
49                  print qq{<response>                  print qq{<response>
50  <action type='html' target='div_record' errorCode='' errorMessage='' >  <action type='html' target='div_record' errorCode='' errorMessage='' >
51                  }, $out->apply(                  }, $iconv_utf8->convert( $out->apply(
52                          template => $template,                          template => $template,
53                          data => \@ds,                          data => \@ds,
54                  ), qq{                  ) ), qq{
55    
56  <script type='text/javascript'>  </action>
57    <action type='javascript' errorCode='' errorMessage='' >
58  <!--  <!--
59          var el = iwfGetById('div_record_nr');          var el = iwfGetById('div_record_nr');
60          if (el) el.innerHTML = '# <b>$rec</b>';          if (el) el.innerHTML = '# <b>$rec</b>';
61          //iwfShow('div_record');          //iwfShow('div_record');
62          iwfOpacity('div_record', 100);          iwfOpacity('div_record', 100);
63  //-->  //-->
 </script>  
   
64  </action>  </action>
65  </response>  </response>
66  };  };
# Line 64  if ($q->path_info =~ m#xml#) { Line 70  if ($q->path_info =~ m#xml#) {
70  <action type='html' target='div_record' errorCode='' errorMessage='' >  <action type='html' target='div_record' errorCode='' errorMessage='' >
71    
72  <b>Record $rec not found!</b>  <b>Record $rec not found!</b>
73  <script type='text/javascript'>  </action>
74    <action type='javascript' errorCode='' errorMessage='' >
75  <!--  <!--
76          var el = iwfGetById('div_record_nr');          var el = iwfGetById('div_record_nr');
77          if (el) el.innerHTML = '<strike>$rec</strike>';          if (el) el.innerHTML = '<strike>&nbsp;$rec&nbsp;</strike>';
78  //-->  //-->
 </script>  
   
79  </action>  </action>
80  </response>  </response>
81  };  };
# Line 79  if ($q->path_info =~ m#xml#) { Line 84  if ($q->path_info =~ m#xml#) {
84    
85  } elsif ($q->path_info =~ m#template#) {  } elsif ($q->path_info =~ m#template#) {
86    
87                  my $tmpl = read_file($out->{'include_path'} . '/' . $template);                  my @actions;
88                  $tmpl = $q->escapeHTML($tmpl);  
89                    if ($q->param('save_template')) {
90    
91                            my $tmpl = $iconv_loc->convert( $q->param('tt_template') ) || die "no template?";
92                            sub _conv_js {
93                                    my $t = shift || return;
94                                    return $iconv_loc->convert(chr(hex($t)));
95                            }
96                            $tmpl =~ s/%u([a-fA-F0-9]{4})/_conv_js($1)/gex;
97                            $tmpl =~ s/[\n\r]+$//s;
98    
99                            my $tmpl_file = $out->{'include_path'} . '/' . $template;
100                            write_file($tmpl_file . '.new', $tmpl) || die "can't save $tmpl_file: $!";
101                            rename $tmpl_file . '.new', $tmpl_file || die "can't rename to $tmpl_file: $!";
102    
103                            print qq{<response>
104    <action type='html' target='div_status' errorCode='' errorMessage='' >
105    <tt>$template</tt> saved
106    </action>
107    <action type='js'>
108    <!--
109    iwfShow('div_status', 1);
110    reload_rec();
111    iwfHideGentlyDelay('div_status', 2, 2000, 1);
112    -->
113    </action>
114    </response>
115                            };
116                            exit;
117    
118                    }
119    
120                    my $tmpl = read_file($out->{'include_path'} . '/' . $template) || die "can't read template $template: $!";
121                    $tmpl = $q->escapeHTML($iconv_utf8->convert($tmpl));
122    
123                  print qq{<response>                  print qq{<response>
124  <action type='html' target='div_template' errorCode='' errorMessage='' >  <action type='html' target='div_template' errorCode='' errorMessage='' >
125  <textarea name="tt_template" cols="80" rows="10">  <pre>}, Dumper($q->Vars), qq{</pre>
126    
127    <form name="frmEditor" action="$self" method="post" iwfTarget="div_status" >
128    
129    <textarea name="tt_template" cols="80" rows="10" style="display: block;">
130  $tmpl  $tmpl
131  </textarea>  </textarea>
132  <br/><input type="button" name="save" value="Save">  
133    <br/>
134    <input type="button" name="save_template" value="Save" onclick="javascript:iwfRequest(this);" />
135    <!--
136    <input type="checkbox" name="checkin_template" id="checkin_checkbox" label="checkin" /> checkin
137    -->
138    &nbsp;&nbsp;<span id="div_status" style="color: #808080;">idle</span>
139    
140    <input type='hidden' value='hidden post value' name='hidValue' />
141    
142    </form>
143    </action>
144    <action type='js'>
145    <!--
146    iwfHideGentlyDelay('div_status', 2, 2000, 1);
147    -->
148  </action>  </action>
149  </response>  </response>
150  };                  };
151    
152                    exit;
153    
154  } else {  } else {
155          print qq{          print qq{
# Line 112  function update_status(text) { Line 171  function update_status(text) {
171  }  }
172    
173  function load_rec(nr) {  function load_rec(nr) {
174            if (nr == 1) {
175                    iwfHide('a_left_arr', 1);
176            } else {
177                    iwfShow('a_left_arr', 1);
178            }
179          update_status(nr+'...');          update_status(nr+'...');
180          iwfRequest( url+'/xml/?rec='+nr, 'div_record' );          iwfRequest( url+'/xml/?rec='+nr, 'div_record' );
181          iwfOpacity('div_record', 30);          iwfOpacity('div_record', 30);
# Line 124  function inc_rec() { Line 188  function inc_rec() {
188  }  }
189    
190  function dec_rec() {  function dec_rec() {
191          rec--;          if (rec > 1) {
192          load_rec(rec);                  rec--;
193                    load_rec(rec);
194            }
195          return false;          return false;
196  }  }
197    
# Line 145  function init_page() { Line 211  function init_page() {
211  <body onload="init_page();">  <body onload="init_page();">
212    
213  db_path = <tt>$db_path</tt><br/>  db_path = <tt>$db_path</tt><br/>
214    template = <tt>$template</tt><br/>
215    
216  <div id="iwfLog" style="display: none;">  <div id="iwfLog" style="display: none;">
217  </div>  </div>
218    
219  <div style="background: #e0e0e0; padding: 0.5em; display: block;">  <div style="background: #e0e0e0; padding: 0.5em; display: block;">
220          <a href="$self?rec=}, $rec - 1, qq{" onClick="return dec_rec();">&#8678;</a>&nbsp;          <a id="a_left_arr" href="$self?rec=}, $rec - 1, qq{" onClick="return dec_rec();">&#8678;</a>
221          <span id="div_record_nr"> none </span>          <span id="div_record_nr"> none </span>
222    
223          <a href="$self?rec=}, $rec + 1, qq{" onClick="return inc_rec();">&#8680;</a>&nbsp;          <a id="a_right_arr" href="$self?rec=}, $rec + 1, qq{" onClick="return inc_rec();">&#8680;</a>
224          <a href="$self?rec=}, $rec, qq{" onClick="return reload_rec();">&#8634;</a>&nbsp;          <a id="a_reload" href="$self?rec=}, $rec, qq{" onClick="return reload_rec();">&#8634;</a>
225          <a href="#" onClick="iwfRefreshLog(); return false;">&#9636;</a>&nbsp;          <a href="#" onClick="iwfRefreshLog(); return false;">&#9636;</a>
226    
227  </div>  </div>
228    
229  <div id="div_template">  <div id="div_template">

Legend:
Removed from v.49  
changed lines
  Added in v.63

  ViewVC Help
Powered by ViewVC 1.1.26