version 1.349, 2006/04/10 06:34:07
|
version 1.363, 2006/06/12 22:14:29
|
Line 36 use Apache::lonhtmlcommon;
|
Line 36 use Apache::lonhtmlcommon;
|
use Apache::lonnavmaps; |
use Apache::lonnavmaps; |
use Apache::lonhomework; |
use Apache::lonhomework; |
use Apache::loncoursedata; |
use Apache::loncoursedata; |
use Apache::lonmsg qw(:user_normal_msg); |
use Apache::lonmsg(); |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::lonlocal; |
use Apache::lonlocal; |
use String::Similarity; |
use String::Similarity; |
|
use lib '/home/httpd/lib/perl'; |
|
use LONCAPA; |
|
|
use POSIX qw(floor); |
use POSIX qw(floor); |
|
|
my %oldessays=(); |
my %oldessays=(); |
Line 1142 sub sub_page_kw_js {
|
Line 1145 sub sub_page_kw_js {
|
my $request = shift; |
my $request = shift; |
my $iconpath = $request->dir_config('lonIconsURL'); |
my $iconpath = $request->dir_config('lonIconsURL'); |
&commonJSfunctions($request); |
&commonJSfunctions($request); |
|
|
|
my $inner_js_msg_central=<<INNERJS; |
|
<script text="text/javascript"> |
|
function checkInput() { |
|
opener.document.SCORE.msgsub.value = opener.checkEntities(document.msgcenter.msgsub.value); |
|
var nmsg = opener.document.SCORE.savemsgN.value; |
|
var usrctr = document.msgcenter.usrctr.value; |
|
var newval = opener.document.SCORE["newmsg"+usrctr]; |
|
newval.value = opener.checkEntities(document.msgcenter.newmsg.value); |
|
|
|
var msgchk = ""; |
|
if (document.msgcenter.subchk.checked) { |
|
msgchk = "msgsub,"; |
|
} |
|
var includemsg = 0; |
|
for (var i=1; i<=nmsg; i++) { |
|
var opnmsg = opener.document.SCORE["savemsg"+i]; |
|
var frmmsg = document.msgcenter["msg"+i]; |
|
opnmsg.value = opener.checkEntities(frmmsg.value); |
|
var showflg = opener.document.SCORE["shownOnce"+i]; |
|
showflg.value = "1"; |
|
var chkbox = document.msgcenter["msgn"+i]; |
|
if (chkbox.checked) { |
|
msgchk += "savemsg"+i+","; |
|
includemsg = 1; |
|
} |
|
} |
|
if (document.msgcenter.newmsgchk.checked) { |
|
msgchk += "newmsg"+usrctr; |
|
includemsg = 1; |
|
} |
|
imgformname = opener.document.SCORE["mailicon"+usrctr]; |
|
imgformname.src = "$iconpath/"+((includemsg) ? "mailto.gif" : "mailbkgrd.gif"); |
|
var includemsg = opener.document.SCORE["includemsg"+usrctr]; |
|
includemsg.value = msgchk; |
|
|
|
self.close() |
|
|
|
} |
|
</script> |
|
INNERJS |
|
|
|
my $inner_js_highlight_central=<<INNERJS; |
|
<script type="text/javascript"> |
|
function updateChoice(flag) { |
|
opener.document.SCORE.kwclr.value = opener.radioSelection(document.hlCenter.kwdclr); |
|
opener.document.SCORE.kwsize.value = opener.radioSelection(document.hlCenter.kwdsize); |
|
opener.document.SCORE.kwstyle.value = opener.radioSelection(document.hlCenter.kwdstyle); |
|
opener.document.SCORE.refresh.value = "on"; |
|
if (opener.document.SCORE.keywords.value!=""){ |
|
opener.document.SCORE.submit(); |
|
} |
|
self.close() |
|
} |
|
</script> |
|
INNERJS |
|
|
|
my $start_page_msg_central = |
|
&Apache::loncommon::start_page('Message Central',$inner_js_msg_central, |
|
{'js_ready' => 1, |
|
'only_body' => 1, |
|
'bgcolor' =>'#FFFFFF',}); |
|
my $end_page_msg_central = |
|
&Apache::loncommon::end_page({'js_ready' => 1}); |
|
|
|
|
|
my $start_page_highlight_central = |
|
&Apache::loncommon::start_page('Highlight Central', |
|
$inner_js_highlight_central, |
|
{'js_ready' => 1, |
|
'only_body' => 1, |
|
'bgcolor' =>'#FFFFFF',}); |
|
my $end_page_highlight_central = |
|
&Apache::loncommon::end_page({'js_ready' => 1}); |
|
|
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
$docopen=~s/^document\.//; |
$docopen=~s/^document\.//; |
$request->print(<<SUBJAVASCRIPT); |
$request->print(<<SUBJAVASCRIPT); |
Line 1257 sub sub_page_kw_js {
|
Line 1335 sub sub_page_kw_js {
|
pWin.focus(); |
pWin.focus(); |
pDoc = pWin.document; |
pDoc = pWin.document; |
pDoc.$docopen; |
pDoc.$docopen; |
pDoc.write("<html><head>"); |
pDoc.write('$start_page_msg_central'); |
pDoc.write("<title>Message Central</title>"); |
|
|
|
pDoc.write("<script language=javascript>"); |
|
pDoc.write("function checkInput() {"); |
|
pDoc.write(" opener.document.SCORE.msgsub.value = opener.checkEntities(document.msgcenter.msgsub.value);"); |
|
pDoc.write(" var nmsg = opener.document.SCORE.savemsgN.value;"); |
|
pDoc.write(" var usrctr = document.msgcenter.usrctr.value;"); |
|
pDoc.write(" var newval = opener.document.SCORE[\\"newmsg\\"+usrctr];"); |
|
pDoc.write(" newval.value = opener.checkEntities(document.msgcenter.newmsg.value);"); |
|
|
|
pDoc.write(" var msgchk = \\"\\";"); |
|
pDoc.write(" if (document.msgcenter.subchk.checked) {"); |
|
pDoc.write(" msgchk = \\"msgsub,\\";"); |
|
pDoc.write(" }"); |
|
pDoc.write(" var includemsg = 0;"); |
|
pDoc.write(" for (var i=1; i<=nmsg; i++) {"); |
|
pDoc.write(" var opnmsg = opener.document.SCORE[\\"savemsg\\"+i];"); |
|
pDoc.write(" var frmmsg = document.msgcenter[\\"msg\\"+i];"); |
|
pDoc.write(" opnmsg.value = opener.checkEntities(frmmsg.value);"); |
|
pDoc.write(" var showflg = opener.document.SCORE[\\"shownOnce\\"+i];"); |
|
pDoc.write(" showflg.value = \\"1\\";"); |
|
pDoc.write(" var chkbox = document.msgcenter[\\"msgn\\"+i];"); |
|
pDoc.write(" if (chkbox.checked) {"); |
|
pDoc.write(" msgchk += \\"savemsg\\"+i+\\",\\";"); |
|
pDoc.write(" includemsg = 1;"); |
|
pDoc.write(" }"); |
|
pDoc.write(" }"); |
|
pDoc.write(" if (document.msgcenter.newmsgchk.checked) {"); |
|
pDoc.write(" msgchk += \\"newmsg\\"+usrctr;"); |
|
pDoc.write(" includemsg = 1;"); |
|
pDoc.write(" }"); |
|
pDoc.write(" imgformname = opener.document.SCORE[\\"mailicon\\"+usrctr];"); |
|
pDoc.write(" imgformname.src = \\"$iconpath/\\"+((includemsg) ? \\"mailto.gif\\" : \\"mailbkgrd.gif\\");"); |
|
pDoc.write(" var includemsg = opener.document.SCORE[\\"includemsg\\"+usrctr];"); |
|
pDoc.write(" includemsg.value = msgchk;"); |
|
|
|
pDoc.write(" self.close()"); |
|
|
|
pDoc.write("}"); |
|
|
|
pDoc.write("<"); |
|
pDoc.write("/script>"); |
|
|
|
pDoc.write("</head><body bgcolor=white>"); |
|
|
|
pDoc.write("<form action=\\"inactive\\" name=\\"msgcenter\\">"); |
pDoc.write("<form action=\\"inactive\\" name=\\"msgcenter\\">"); |
pDoc.write("<input value=\\""+usrctr+"\\" name=\\"usrctr\\" type=\\"hidden\\">"); |
pDoc.write("<input value=\\""+usrctr+"\\" name=\\"usrctr\\" type=\\"hidden\\">"); |
Line 1342 sub sub_page_kw_js {
|
Line 1376 sub sub_page_kw_js {
|
pDoc.write("<input type=\\"button\\" value=\\"Save\\" onClick=\\"javascript:checkInput()\\"> "); |
pDoc.write("<input type=\\"button\\" value=\\"Save\\" onClick=\\"javascript:checkInput()\\"> "); |
pDoc.write("<input type=\\"button\\" value=\\"Cancel\\" onClick=\\"self.close()\\"><br /><br />"); |
pDoc.write("<input type=\\"button\\" value=\\"Cancel\\" onClick=\\"self.close()\\"><br /><br />"); |
pDoc.write("</form>"); |
pDoc.write("</form>"); |
pDoc.write("</body></html>"); |
pDoc.write('$end_page_msg_central'); |
pDoc.close(); |
pDoc.close(); |
} |
} |
|
|
Line 1388 sub sub_page_kw_js {
|
Line 1422 sub sub_page_kw_js {
|
hwdWin.focus(); |
hwdWin.focus(); |
var hDoc = hwdWin.document; |
var hDoc = hwdWin.document; |
hDoc.$docopen; |
hDoc.$docopen; |
hDoc.write("<html><head>"); |
hDoc.write('$start_page_highlight_central'); |
hDoc.write("<title>Highlight Central</title>"); |
|
|
|
hDoc.write("<script language=javascript>"); |
|
hDoc.write("function updateChoice(flag) {"); |
|
hDoc.write(" opener.document.SCORE.kwclr.value = opener.radioSelection(document.hlCenter.kwdclr);"); |
|
hDoc.write(" opener.document.SCORE.kwsize.value = opener.radioSelection(document.hlCenter.kwdsize);"); |
|
hDoc.write(" opener.document.SCORE.kwstyle.value = opener.radioSelection(document.hlCenter.kwdstyle);"); |
|
hDoc.write(" opener.document.SCORE.refresh.value = \\"on\\";"); |
|
hDoc.write(" if (opener.document.SCORE.keywords.value!=\\"\\"){"); |
|
hDoc.write(" opener.document.SCORE.submit();"); |
|
hDoc.write(" }"); |
|
hDoc.write(" self.close()"); |
|
hDoc.write("}"); |
|
|
|
hDoc.write("<"); |
|
hDoc.write("/script>"); |
|
|
|
hDoc.write("</head><body bgcolor=white>"); |
|
|
|
hDoc.write("<form action=\\"inactive\\" name=\\"hlCenter\\">"); |
hDoc.write("<form action=\\"inactive\\" name=\\"hlCenter\\">"); |
hDoc.write("<font color=\\"green\\" size=+1> Keyword Highlight Options</font><br /><br />"); |
hDoc.write("<font color=\\"green\\" size=+1> Keyword Highlight Options</font><br /><br />"); |
|
|
Line 1435 sub sub_page_kw_js {
|
Line 1450 sub sub_page_kw_js {
|
hDoc.write("<input type=\\"button\\" value=\\"Save\\" onClick=\\"javascript:updateChoice(1)\\"> "); |
hDoc.write("<input type=\\"button\\" value=\\"Save\\" onClick=\\"javascript:updateChoice(1)\\"> "); |
hDoc.write("<input type=\\"button\\" value=\\"Cancel\\" onClick=\\"self.close()\\"><br /><br />"); |
hDoc.write("<input type=\\"button\\" value=\\"Cancel\\" onClick=\\"self.close()\\"><br /><br />"); |
hDoc.write("</form>"); |
hDoc.write("</form>"); |
hDoc.write("</body></html>"); |
hDoc.write('$end_page_highlight_central'); |
hDoc.close(); |
hDoc.close(); |
} |
} |
|
|
Line 1541 sub handback_box {
|
Line 1556 sub handback_box {
|
$file_disp = "$name.$ext"; |
$file_disp = "$name.$ext"; |
$file = $file_path.$file_disp; |
$file = $file_path.$file_disp; |
$result.=&mt('Return commented version of [_1] to student.', |
$result.=&mt('Return commented version of [_1] to student.', |
'<span class="filename">'.$file_disp.'</span>'); |
'<span class="LC_filename">'.$file_disp.'</span>'); |
$result.='<input type="file" name="'.$prefix.'returndoc'.$file_counter.'" />'."\n"; |
$result.='<input type="file" name="'.$prefix.'returndoc'.$file_counter.'" />'."\n"; |
$result.='<input type="hidden" name="'.$prefix.'origdoc'.$file_counter.'" value="'.$file.'" /><br />'; |
$result.='<input type="hidden" name="'.$prefix.'origdoc'.$file_counter.'" value="'.$file.'" /><br />'; |
$file_counter++; |
$file_counter++; |
Line 1735 KEYWORDS
|
Line 1750 KEYWORDS
|
# |
# |
my (undef,undef,$essayurl) = &Apache::lonnet::decode_symb($symb); |
my (undef,undef,$essayurl) = &Apache::lonnet::decode_symb($symb); |
my ($adom,$aname,$apath)=($essayurl=~/^(\w+)\/(\w+)\/(.*)$/); |
my ($adom,$aname,$apath)=($essayurl=~/^(\w+)\/(\w+)\/(.*)$/); |
$apath=&Apache::lonnet::escape($apath); |
$apath=&escape($apath); |
$apath=~s/\W/\_/gs; |
$apath=~s/\W/\_/gs; |
%oldessays=&Apache::lonnet::dump('nohist_essay_'.$apath,$adom,$aname); |
%oldessays=&Apache::lonnet::dump('nohist_essay_'.$apath,$adom,$aname); |
} |
} |
Line 1953 KEYWORDS
|
Line 1968 KEYWORDS
|
'<input type="hidden" name="newmsg'.$counter.'" value="" />'."\n"; |
'<input type="hidden" name="newmsg'.$counter.'" value="" />'."\n"; |
$result.=' <a href="javascript:msgCenter(document.SCORE,'.$counter. |
$result.=' <a href="javascript:msgCenter(document.SCORE,'.$counter. |
',\''.$msgfor.'\')"; TARGET=_self>'. |
',\''.$msgfor.'\')"; TARGET=_self>'. |
&mt('Compose message to student').(scalar(@col_fullnames) >= 1 ? 's' : '').'</a> ('. |
&mt('Compose message to student').(scalar(@col_fullnames) >= 1 ? 's' : '').'</a><label> ('. |
&mt('incl. grades').' <input type="checkbox" name="withgrades'.$counter.'" />)'. |
&mt('incl. grades').' <input type="checkbox" name="withgrades'.$counter.'" /></label>)'. |
'<img src="'.$request->dir_config('lonIconsURL'). |
'<img src="'.$request->dir_config('lonIconsURL'). |
'/mailbkgrd.gif" width="14" height="10" name="mailicon'.$counter.'" />'."\n". |
'/mailbkgrd.gif" width="14" height="10" name="mailicon'.$counter.'" />'."\n". |
'<br /> ('. |
'<br /> ('. |
Line 2092 sub processHandGrade {
|
Line 2107 sub processHandGrade {
|
if ($includemsg =~ /savemsg|newmsg\Q$ctr\E/) { |
if ($includemsg =~ /savemsg|newmsg\Q$ctr\E/) { |
$subject = $env{'form.msgsub'} if ($includemsg =~ /msgsub/); |
$subject = $env{'form.msgsub'} if ($includemsg =~ /msgsub/); |
unless ($subject=~/\w/) { $subject=&mt('Grading Feedback'); } |
unless ($subject=~/\w/) { $subject=&mt('Grading Feedback'); } |
|
$subject.=' ['.&Apache::lonnet::declutter($url).']'; |
my (@msgnum) = split(/,/,$includemsg); |
my (@msgnum) = split(/,/,$includemsg); |
foreach (@msgnum) { |
foreach (@msgnum) { |
$message.=$env{'form.'.$_} if ($_ =~ /savemsg|newmsg/ && $_ ne ''); |
$message.=$env{'form.'.$_} if ($_ =~ /savemsg|newmsg/ && $_ ne ''); |
Line 2104 sub processHandGrade {
|
Line 2120 sub processHandGrade {
|
"?symb=$symb\">$env{'form.probTitle'}</a>"; |
"?symb=$symb\">$env{'form.probTitle'}</a>"; |
} |
} |
$msgstatus = &Apache::lonmsg::user_normal_msg($uname,$udom, |
$msgstatus = &Apache::lonmsg::user_normal_msg($uname,$udom, |
$subject.' ['. |
$subject, |
&Apache::lonnet::declutter($url).']',$message); |
$message); |
$request->print('<br />'.&mt('Sending message to [_1]@[_2]',$uname,$udom).': '. |
$request->print('<br />'.&mt('Sending message to [_1]@[_2]',$uname,$udom).': '. |
$msgstatus); |
$msgstatus); |
} |
} |
Line 2118 sub processHandGrade {
|
Line 2134 sub processHandGrade {
|
&saveHandGrade($request,$symb,$collaborator,$udom,$ctr, |
&saveHandGrade($request,$symb,$collaborator,$udom,$ctr, |
$env{'form.unamedom'.$ctr},$part); |
$env{'form.unamedom'.$ctr},$part); |
if ($errorflag eq 'not_allowed') { |
if ($errorflag eq 'not_allowed') { |
$request->print("<font color=\"red\">Not allowed to modify grades for $collaborator:$udom</font>"); |
$request->print("<span class=\"LC_error\">".&mt('Not allowed to modify grades for [_1]',"$collaborator:$udom")."</span>"); |
next; |
next; |
} else { |
} else { |
if ($message ne '') { |
if ($message ne '') { |
$msgstatus = &Apache::lonmsg::user_normal_msg($collaborator,$udom,$env{'form.msgsub'},$message); |
$msgstatus = &Apache::lonmsg::user_normal_msg($collaborator,$udom,$subject,$message); |
} |
} |
} |
} |
} |
} |
Line 2415 sub saveHandGrade {
|
Line 2431 sub saveHandGrade {
|
|
|
sub handback_files { |
sub handback_files { |
my ($request,$symb,$stuname,$domain,$newflg,$new_part,$newrecord) = @_; |
my ($request,$symb,$stuname,$domain,$newflg,$new_part,$newrecord) = @_; |
my $portfolio_root = &Apache::loncommon::propath($domain, |
my $portfolio_root = &propath($domain,$stuname).'/userfiles/portfolio'; |
$stuname). |
my ($partlist,$handgrade,$responseType) = &response_type($symb); |
'/userfiles/portfolio'; |
|
my ($partlist,$handgrade,$responseType) = &response_type($symb); |
|
foreach my $part_resp (sort(keys(%$handgrade))) { |
foreach my $part_resp (sort(keys(%$handgrade))) { |
my ($part_id, $resp_id) = split(/_/,$part_resp); |
my ($part_id, $resp_id) = split(/_/,$part_resp); |
if (($env{'form.'.$newflg.'_'.$part_resp.'_returndoc1'}) && ($new_part == $part_id)) { |
if (($env{'form.'.$newflg.'_'.$part_resp.'_returndoc1'}) && ($new_part == $part_id)) { |
Line 2430 sub handback_files {
|
Line 2444 sub handback_files {
|
($env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter} =~ /^(.*?)([^\/]*)$/); |
($env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter} =~ /^(.*?)([^\/]*)$/); |
my ($answer_name,$answer_ver,$answer_ext) = |
my ($answer_name,$answer_ver,$answer_ext) = |
&file_name_version_ext($answer_file); |
&file_name_version_ext($answer_file); |
$directory =~ /^.+$stuname\/portfolio(.*)/; |
my ($portfolio_path) = ($directory =~ /^.+$stuname\/portfolio(.*)/); |
my $portfolio_path = $1; |
|
my @dir_list = &Apache::lonnet::dirlist($portfolio_path,$domain,$stuname,$portfolio_root); |
my @dir_list = &Apache::lonnet::dirlist($portfolio_path,$domain,$stuname,$portfolio_root); |
my $version = &get_next_version($answer_name, $answer_ext, \@dir_list); |
my $version = &get_next_version($answer_name, $answer_ext, \@dir_list); |
my $new_answer = &version_selected_portfile($domain, $stuname, $portfolio_path, $answer_file, $version); |
my $new_answer = &version_selected_portfile($domain, $stuname, $portfolio_path, $answer_file, $version); |
$$newrecord{"resource.$new_part.$resp_id.handback"} = $new_answer; |
$$newrecord{"resource.$new_part.$resp_id.handback"} = $new_answer; |
# set the filename to match the submitted file name |
$version++; |
$env{'form.'.$newflg.'_'.$part_resp.'_returndoc1.filename'} = $env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter}; |
# fix file name |
my $result=&Apache::lonnet::userfileupload($newflg.'_'.$part_resp.'_returndoc'.$file_counter,'', |
my ($save_file_name) = (($directory.$answer_name.".$version.".$answer_ext) =~ /^.+\/${stuname}\/(.*)/); |
'portfolio',undef,undef,undef,$stuname,$domain); |
my $result=&Apache::lonnet::finishuserfileupload($stuname,$domain, |
|
$newflg.'_'.$part_resp.'_returndoc'.$file_counter, |
|
$save_file_name); |
if ($result !~ m|^/uploaded/|) { |
if ($result !~ m|^/uploaded/|) { |
$request->print('<font color="red"> An errror occured ('.$result. |
$request->print('<font color="red"> An errror occured ('.$result. |
') while trying to upload '.&display_file().'</font><br />'); |
') while trying to upload '.$newflg.'_'.$part_resp.'_returndoc'.$file_counter.'</font><br />'); |
# $request->print(&done('Back')); |
} else { |
|
# mark the file as read only |
|
my @files = ($save_file_name); |
|
my @what = ($symb,'handback'); |
|
&Apache::lonnet::mark_as_readonly($domain,$stuname,\@files,\@what); |
|
my $subject = "File Handed Back by Instructor "; |
|
my $message = "A file has been returned that was originally submitted in reponse to: <br />"; |
|
$message .= "<strong>".&Apache::lonnet::gettitle($symb)."</strong><br />"; |
|
$message .= " The returned file is named: <br /><strong>".$save_file_name."</strong><br />"; |
|
$message .= " and can be found in your portfolio space."; |
|
&Apache::lonnet::logthis($message); |
|
my $url = (&Apache::lonnet::decode_symb($symb))[2]; |
|
$url = &Apache::lonnet::declutter($url); |
|
my $msgstatus = &Apache::lonmsg::user_normal_msg($stuname,$domain, |
|
$subject.' (File Returned) ['.$url.']',$message); |
} |
} |
$request->print("<br />".$fname." will be the uploaded file name"); |
$request->print("<br />".$fname." will be the uploaded file name"); |
$request->print("<font color=\"red\">Will upload document </font>".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter}); |
$request->print(" ".$env{'form.'.$newflg.'_'.$part_resp.'_origdoc'.$file_counter}); |
$file_counter++; |
$file_counter++; |
} |
} |
} |
} |
Line 2534 sub version_portfiles {
|
Line 2563 sub version_portfiles {
|
my $version_parts = join('|',@$v_flag); |
my $version_parts = join('|',@$v_flag); |
my @returned_keys; |
my @returned_keys; |
my $parts = join('|', @$parts_graded); |
my $parts = join('|', @$parts_graded); |
my $portfolio_root = &Apache::loncommon::propath($domain, |
my $portfolio_root = &propath($domain,$stu_name). |
$stu_name). |
'/userfiles/portfolio'; |
'/userfiles/portfolio'; |
|
foreach my $key (keys(%$record)) { |
foreach my $key (keys(%$record)) { |
my $new_portfiles; |
my $new_portfiles; |
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { |
if ($key =~ /^resource\.($version_parts)\./ && $key =~ /\.portfiles$/ ) { |
Line 4207 sub scantron_filenames {
|
Line 4235 sub scantron_filenames {
|
my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cdom=$env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $cname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my $cname=$env{'course.'.$env{'request.course.id'}.'.num'}; |
my @files=&Apache::lonnet::dirlist('userfiles',$cdom,$cname, |
my @files=&Apache::lonnet::dirlist('userfiles',$cdom,$cname, |
&Apache::loncommon::propath($cdom,$cname)); |
&propath($cdom,$cname)); |
my @possiblenames; |
my @possiblenames; |
foreach my $filename (sort(@files)) { |
foreach my $filename (sort(@files)) { |
($filename)=split(/&/,$filename); |
($filename)=split(/&/,$filename); |
Line 4819 $warning
|
Line 4847 $warning
|
<input type="hidden" name="command" value="scantron_validate" /> |
<input type="hidden" name="command" value="scantron_validate" /> |
STUFF |
STUFF |
} |
} |
$r->print("</form><br />".&show_grading_menu_form($symb)."</body></html>"); |
$r->print("</form><br />".&show_grading_menu_form($symb)); |
return ''; |
return ''; |
} |
} |
|
|
Line 4920 STUFF
|
Line 4948 STUFF
|
$r->print(" this scanline saving it for later."); |
$r->print(" this scanline saving it for later."); |
} |
} |
} |
} |
$r->print(" </form><br />".&show_grading_menu_form($symb). |
$r->print(" </form><br />".&show_grading_menu_form($symb)); |
"</body></html>"); |
|
return ''; |
return ''; |
} |
} |
|
|
Line 5082 sub scantron_validate_sequence {
|
Line 5109 sub scantron_validate_sequence {
|
my @resources= |
my @resources= |
$navmap->retrieveResources($map,\&scantron_filter_not_exam,1,0); |
$navmap->retrieveResources($map,\&scantron_filter_not_exam,1,0); |
if (@resources) { |
if (@resources) { |
$r->print("<p>".&mt('Some resource in the sequece currently are not set to exam mode. Grading these resources currently may not work correctly.')."</p>"); |
$r->print("<p>".&mt('Some resources in the sequence currently are not set to exam mode. Grading these resources currently may not work correctly.')."</p>"); |
return (1,$currentphase); |
return (1,$currentphase); |
} |
} |
} |
} |
Line 5236 function change_radio(field) {
|
Line 5263 function change_radio(field) {
|
</script> |
</script> |
ENDSCRIPT |
ENDSCRIPT |
my $href="/adm/pickcode?". |
my $href="/adm/pickcode?". |
"form=".&Apache::lonnet::escape("scantronupload"). |
"form=".&escape("scantronupload"). |
"&scantron_format=".&Apache::lonnet::escape($env{'form.scantron_format'}). |
"&scantron_format=".&escape($env{'form.scantron_format'}). |
"&scantron_CODElist=".&Apache::lonnet::escape($env{'form.scantron_CODElist'}). |
"&scantron_CODElist=".&escape($env{'form.scantron_CODElist'}). |
"&curCODE=".&Apache::lonnet::escape($$scan_record{'scantron.CODE'}). |
"&curCODE=".&escape($$scan_record{'scantron.CODE'}). |
"&scantron_selectfile=".&Apache::lonnet::escape($env{'form.scantron_selectfile'}); |
"&scantron_selectfile=".&escape($env{'form.scantron_selectfile'}); |
if ($env{'form.scantron_CODElist'} =~ /\S/) { |
if ($env{'form.scantron_CODElist'} =~ /\S/) { |
$r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_found' /> <a target='_blank' href='$href'>Select</a> a CODE from the list of all CODEs and use it.</label> Selected CODE is <input readonly='true' type='text' size='8' name='scantron_CODE_selectedvalue' onfocus=\"javascript:change_radio('use_found')\" onchange=\"javascript:change_radio('use_found')\" />"); |
$r->print("<label><input type='radio' name='scantron_CODE_resolution' value='use_found' /> <a target='_blank' href='$href'>Select</a> a CODE from the list of all CODEs and use it.</label> Selected CODE is <input readonly='true' type='text' size='8' name='scantron_CODE_selectedvalue' onfocus=\"javascript:change_radio('use_found')\" onchange=\"javascript:change_radio('use_found')\" />"); |
$r->print("\n<br />"); |
$r->print("\n<br />"); |
Line 5924 sub handler {
|
Line 5951 sub handler {
|
if ($#commands > 0) { |
if ($#commands > 0) { |
&Apache::lonnet::logthis("grades got multiple commands ".join(':',@commands)); |
&Apache::lonnet::logthis("grades got multiple commands ".join(':',@commands)); |
} |
} |
&send_header($request); |
$request->print(&Apache::loncommon::start_page('Grading')); |
if ($symb eq '' && $command eq '') { |
if ($symb eq '' && $command eq '') { |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
if (($env{'form.codeone'}) && ($env{'form.codetwo'}) && |
if (($env{'form.codeone'}) && ($env{'form.codetwo'}) && |
Line 6015 sub handler {
|
Line 6042 sub handler {
|
$request->print("Access Denied ($command)"); |
$request->print("Access Denied ($command)"); |
} |
} |
} |
} |
&send_footer($request); |
|
return ''; |
|
} |
|
|
|
sub send_header { |
|
my ($request)= @_; |
|
&Apache::lontexconvert::init_tth(); |
|
$request->print(&Apache::loncommon::start_page('Grading')); |
|
$request->rflush(); |
|
} |
|
|
|
sub send_footer { |
|
my ($request)= @_; |
|
$request->print(&Apache::loncommon::end_page()); |
$request->print(&Apache::loncommon::end_page()); |
|
return ''; |
} |
} |
|
|
1; |
1; |