--- loncom/interface/lonfeedback.pm 2004/11/21 04:24:49 1.144 +++ loncom/interface/lonfeedback.pm 2005/02/17 04:11:20 1.151 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.144 2004/11/21 04:24:49 raeburn Exp $ +# $Id: lonfeedback.pm,v 1.151 2005/02/17 04:11:20 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -68,13 +68,18 @@ sub discussion_visible { } sub list_discussion { - my ($mode,$status,$ressymb)=@_; + my ($mode,$status,$ressymb,$imsextras)=@_; my $outputtarget=$ENV{'form.grade_target'}; if (defined($ENV{'form.export'})) { if($ENV{'form.export'}) { $outputtarget = 'export'; } } + if (defined($imsextras)) { + if ($$imsextras{'caller'} eq 'imsexport') { + $outputtarget = 'export'; + } + } if (not &discussion_visible($status)) { return ''; } my @bgcols = ("#cccccc","#eeeeee"); my $discussiononly=0; @@ -325,15 +330,26 @@ sub list_discussion { } elsif ($outputtarget eq 'export') { # Create temporary directory if this is an export my $now = time; - $tempexport = $Apache::lonnet::perlvar{'lonDaemons'}.'/tmp/ims_exports'; - if (!-e $tempexport) { - mkdir($tempexport,0700); - } - $tempexport .= '/'.$now; - if (!-e $tempexport) { - mkdir($tempexport,0700); + if ((defined($imsextras)) && ($$imsextras{'caller'} eq 'imsexport')) { + $tempexport = $$imsextras{'tempexport'}; + if (!-e $tempexport) { + mkdir($tempexport,0700); + } + $tempexport .= '/'.$$imsextras{'count'}; + if (!-e $tempexport) { + mkdir($tempexport,0700); + } + } else { + $tempexport = $Apache::lonnet::perlvar{'lonDaemons'}.'/tmp/ims_exports'; + if (!-e $tempexport) { + mkdir($tempexport,0700); + } + $tempexport .= '/'.$now; + if (!-e $tempexport) { + mkdir($tempexport,0700); + } + $tempexport .= '/'.$ENV{'user.domain'}.'_'.$ENV{'user.name'}; } - $tempexport .= '/'.$ENV{'user.domain'}.'_'.$ENV{'user.name'}; if (!-e $tempexport) { mkdir($tempexport,0700); } @@ -413,7 +429,7 @@ imscp_v1p1.xsd http://www.imsglobal.org/ if ($numhidden > 0) { my $colspan = $maxdepth+1; $discussion.="\n".''. - ''. ''.$imsitems{$alldiscussion{$_}}{'title'}.''; $imsresources .= "\n". - ''. - ''."\n". + ''."\n". + ''."\n". $imsfiles{$alldiscussion{$_}}{$imsitems{$alldiscussion{$_}}{'currversion'}}."\n". ''; } @@ -634,27 +650,31 @@ END |; close($manifestfile); + if ((defined($imsextras)) && ($$imsextras{'caller'} eq 'imsexport')) { + $discussion = $copyresult; + } else { #Create zip file in prtspool - my $imszipfile = '/prtspool/'. - $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'. - time.'_'.rand(1000000000).'.zip'; + my $imszipfile = '/prtspool/'. + $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'. + time.'_'.rand(1000000000).'.zip'; # zip can cause an sh launch which can pass along all of %ENV # which can be too large for /bin/sh to handle - my %oldENV=%ENV; - undef(%ENV); - my $cwd = &getcwd(); - my $imszip = '/home/httpd/'.$imszipfile; - chdir $tempexport; - open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); - close(OUTPUT); - chdir $cwd; - %ENV=%oldENV; - undef(%oldENV); - $discussion .= 'Download the zip file from Discussion Posting Archive
'; - if ($copyresult) { - $discussion .= 'The following errors occurred during export -
'.$copyresult; + my %oldENV=%ENV; + undef(%ENV); + my $cwd = &getcwd(); + my $imszip = '/home/httpd/'.$imszipfile; + chdir $tempexport; + open(OUTPUT, "zip -r $imszip * 2> /dev/null |"); + close(OUTPUT); + chdir $cwd; + %ENV=%oldENV; + undef(%oldENV); + $discussion .= 'Download the zip file from Discussion Posting Archive
'; + if ($copyresult) { + $discussion .= 'The following errors occurred during export -
'.$copyresult; + } } } else { $discussion .= '
Unfortunately you will not be able to retrieve an archive of the discussion posts at this time, because there was a problem creating a manifest file.
'; @@ -729,7 +749,7 @@ ENDDISCUSS if ($outputtarget ne 'tex') { $discussion.='
'. - ''. + ''. &mt('Post Discussion').'
'; } } @@ -954,9 +974,9 @@ sub build_posting_display { $contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'},$ressymb); } if ($$dischash{$readkey}=~/\.$idx\./) { - $ctlink = ''.&mt('Mark unread').'? '; + $ctlink = ''; } else { - $ctlink = ''.&mt('Mark read').'? '; + $ctlink = ''; } } #figure out at what position this needs to print @@ -1733,18 +1753,18 @@ $lt{'sdpf'}
$lt{'prca'}
  1. $l $lt{'disa'} $lt{$discdisp} -  $lt{'chgt'} "$dispchangeA" +
    -  $lt{'chgt'} "$dispchangeB" + $lt{'npmr'} $lt{$discmark} - $lt{'chgt'} "$markchange" + $lt{'dotm'} $lt{$disctogg} - $lt{'chgt'} "$toggchange" + @@ -1909,7 +1929,7 @@ $bodytag   - $lt{'shal'} +
    @@ -2004,7 +2024,7 @@ END next; } else { $count ++; - $r->print(''.$count.''.$last.', '.$first.' ('.$uname.','.$udom.')'.$postcounts{$_}.''); + $r->print(''.$count.''.$postcounts{$_}.''); } } } @@ -2085,9 +2105,10 @@ sub get_post_attachments { return; } -sub fail_redirect {; +sub fail_redirect { my ($r,$feedurl) = @_; if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' }; + my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif'); $r->print (< Feedback not sent @@ -2095,7 +2116,7 @@ sub fail_redirect {; - + Sorry, no recipients ...
    Continue @@ -2173,6 +2194,7 @@ sub redirect_back { } } $feedurl=&Apache::lonenc::check_encrypt($feedurl); + my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif'); $r->print (< @@ -2181,7 +2203,7 @@ sub redirect_back { - + $typestyle Sent $sendsomething message(s), and $sendposts post(s). $status @@ -2214,10 +2236,11 @@ ENDNOREDIR &Apache::lonenc::check_encrypt($feedurl).'">'); } $feedurl=&Apache::lonenc::check_encrypt($feedurl); + my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif'); $r->print (< - + $nofeed
    $continue @@ -2232,23 +2255,25 @@ sub screen_header { unless (($ENV{'form.replydisc'}) || ($ENV{'form.editdisc'})) { if (($feedurl=~/^\/res\//) && ($feedurl!~/^\/res\/adm/)) { $msgoptions= - '

    '. - &mt('Feedback to resource author').'

    '; + '

    '; } if (&feedback_available(1)) { $msgoptions.= - '
    '. - &mt('Question about resource content'); + '

    '; } if (&feedback_available(0,1)) { $msgoptions.= - '
    '. - &mt('Question/Comment/Feedback about course content'); + '

    '; } if (&feedback_available(0,0,1)) { $msgoptions.= - '
    '. - &mt('Question/Comment/Feedback about course policy'); + '

    '; } } if ($ENV{'request.course.id'}) { @@ -2256,17 +2281,17 @@ sub screen_header { &Apache::lonnet::allowed('pch', $ENV{'request.course.id'}. ($ENV{'request.course.sec'}?'/'.$ENV{'request.course.sec'}:''))) { - $discussoptions=' '. &mt('Contribution to course discussion of resource'); - $discussoptions.='
    '. + $discussoptions.='
    '; } } - if ($msgoptions) { $msgoptions='

    '.&mt('Sending Messages').'

    '.$msgoptions; } + if ($msgoptions) { $msgoptions='

    '.&mt('Sending Messages').'

    '.$msgoptions; } if ($discussoptions) { - $discussoptions='

    '.&mt('Discussion Contributions').'

    '.$discussoptions; } + $discussoptions='

    '.&mt('Discussion Contributions').'

    '.$discussoptions; } return $msgoptions.$discussoptions; } @@ -2607,7 +2632,7 @@ END foreach my $id (@currold) { my $attachurl = &HTML::Entities::decode($attachments{$id}{'filename'}); $attachurl =~ m#/([^/]+)$#; - $r->print(' '.$1.'
    '."\n"); + $r->print('
    '."\n"); } $r->print("
    "); } @@ -2617,7 +2642,7 @@ END $r->print("The following attachments have been uploaded for inclusion with this posting.
    Check the checkboxes for any you wish to remove
    \n"); foreach (@{$currnewattach}) { $_ =~ m#/([^/]+)$#; - $r->print(' '.$1.'
    '."\n"); + $r->print('
    '."\n"); } $r->print("
    "); } @@ -3034,6 +3059,7 @@ END } &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; + my $logo=&Apache::loncommon::lonhttpdurl('/adm/lonIcons/lonlogos.gif'); $r->print (< @@ -3042,7 +3068,7 @@ END - + $textline