--- loncom/publisher/loncleanup.pm 2005/05/28 18:53:50 1.3
+++ loncom/publisher/loncleanup.pm 2005/05/31 17:41:38 1.5
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to cleanup XML files
#
-# $Id: loncleanup.pm,v 1.3 2005/05/28 18:53:50 albertel Exp $
+# $Id: loncleanup.pm,v 1.5 2005/05/31 17:41:38 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -244,21 +244,85 @@ sub htmlclean {
sub phaseone {
my ($r,$fn,$uname,$udom)=@_;
+ $r->print(&mt('Select actions to attempt:').
+ '
'.
+ &mt('Linefeeds, formfeeds, and carriage returns').
+ '
'.
+ &mt('Empty tags').
+ '
'.
+ &mt('Lower casing').
+ '
'.
+ &mt('Symbol font').
+ ''.
+ '
');
}
sub phasetwo {
my ($r,$fn,$uname,$udom)=@_;
+ open(IN,'/home/'.$uname.'/public_html/'.$fn);
+ my $text='';
+ while (my $line=) {
+ $text.=$line;
+ }
+ close(IN);
+ my $uri='/~'.$uname.$fn;
+ my $result=&Apache::lonnet::ssi_body($uri,
+ ('grade_target'=>'web',
+ 'return_only_error_and_warning_counts' => 1));
+ my ($errorcount,$warningcount)=split(':',$result);
+ $r->print(&mt('Original file').': '.
+ $errorcount.' '.&mt('error(s)').', '.
+ $warningcount.' '.&mt('warning(s)'));
+ $text=&htmlclean($text,1,
+ ($env{'form.linefeed'} ne 'on'),
+ ($env{'form.empty'} ne 'on'),
+ ($env{'form.lower'} ne 'on'),
+ ($env{'form.symbol'} ne 'on'));
+ my ($main,$ext)=($fn=~/^(.*)\.(\w+)/);
+ my $newfn=$main.'_Auto_Cleaned_Up.'.$ext;
+ open(OUT,'>/home/'.$uname.'/public_html'.$newfn);
+ print OUT $text;
+ close(OUT);
+ my $newuri='/~'.$uname.$newfn;
+ $result=&Apache::lonnet::ssi_body($newuri,
+ ('grade_target'=>'web',
+ 'return_only_error_and_warning_counts' => 1));
+ ($errorcount,$warningcount)=split(':',$result);
+ $r->print('
'.&mt('Cleaned up file').': '.
+ $errorcount.' '.&mt('error(s)').', '.
+ $warningcount.' '.&mt('warning(s)').
+ '
'.
+ &mt('Open (and edit) cleaned up file in new window').''.
+ '
'.
+ &mt('Show diffs in new window').'
'.
+ ''.
+ ''.
+ ''
+ );
}
sub phasethree {
my ($r,$fn,$uname,$udom)=@_;
+ my $old='/home/'.$uname.'/public_html/'.$fn;
+ my ($main,$ext)=($fn=~/^(.*)\.(\w+)/);
+ my $newfn=$main.'_Auto_Cleaned_Up.'.$ext;
+ my $new='/home/'.$uname.'/public_html'.$newfn;
+ if ($env{'form.accept'}) {
+ $r->print(&mt('Accepting changes'));
+ move($new,$old);
+ } else {
+ $r->print(&mt('Rejeting changes'));
+ unlink($new);
+ }
}
# ---------------------------------------------------------------- Main Handler
sub handler {
my $r=shift;
-
+ my $fn='';
# Get query string for limited number of parameters
@@ -299,19 +363,30 @@ sub handler {
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
- $r->print('LON-CAPA Construction Space');
+ my $html=&Apache::lonxml::xmlbegin();
+ $r->print($html.'LON-CAPA Construction Space');
$r->print(&Apache::loncommon::bodytag('Cleanup XML Document'));
-
- if ($env{'form.phase'} eq 'three') {
- &phasethree($r,$fn,$uname,$udom);
- } elsif ($env{'form.phase'} eq 'two') {
- &phasetwo($r,$fn,$uname,$udom);
+ $r->print(''.$fn.'
'.
+ '