version 1.294, 2008/07/01 11:01:30
|
version 1.307, 2009/03/26 12:03:45
|
Line 173 sub setup_vars {
|
Line 173 sub setup_vars {
|
sub createmenu { |
sub createmenu { |
my ($which,$request)=@_; |
my ($which,$request)=@_; |
if ($which eq 'grade') { |
if ($which eq 'grade') { |
$request->print('<script language="JavaScript"> |
$request->print('<script type="text/javascript" language="JavaScript"> |
hwkmenu=window.open("/res/adm/pages/homeworkmenu.html","homeworkremote", |
hwkmenu=window.open("/res/adm/pages/homeworkmenu.html","homeworkremote", |
"height=350,width=150,menubar=no"); |
"height=350,width=150,menubar=no"); |
</script>'); |
</script>'); |
Line 209 sub proctor_checked_in {
|
Line 209 sub proctor_checked_in {
|
return 0; |
return 0; |
} |
} |
|
|
sub check_ip_acc { |
|
my ($acc)=@_; |
|
&Apache::lonxml::debug("acc is $acc"); |
|
if (!defined($acc) || $acc =~ /^\s*$/ || $acc =~/^\s*no\s*$/i) { |
|
return 1; |
|
} |
|
my $allowed=0; |
|
my $ip=$env{'request.host'} || $ENV{'REMOTE_ADDR'}; |
|
|
|
my $name; |
|
foreach my $pattern (split(',',$acc)) { |
|
$pattern =~ s/^\s*//; |
|
$pattern =~ s/\s*$//; |
|
if ($pattern =~ /\*$/) { |
|
#35.8.* |
|
$pattern=~s/\*//; |
|
if ($ip =~ /^\Q$pattern\E/) { $allowed=1; } |
|
} elsif ($pattern =~ /(\d+\.\d+\.\d+)\.\[(\d+)-(\d+)\]$/) { |
|
#35.8.3.[34-56] |
|
my $low=$2; |
|
my $high=$3; |
|
$pattern=$1; |
|
if ($ip =~ /^\Q$pattern\E/) { |
|
my $last=(split(/\./,$ip))[3]; |
|
if ($last <=$high && $last >=$low) { $allowed=1; } |
|
} |
|
} elsif ($pattern =~ /^\*/) { |
|
#*.msu.edu |
|
$pattern=~s/\*//; |
|
if (!defined($name)) { |
|
use Socket; |
|
my $netaddr=inet_aton($ip); |
|
($name)=gethostbyaddr($netaddr,AF_INET); |
|
} |
|
if ($name =~ /\Q$pattern\E$/i) { $allowed=1; } |
|
} elsif ($pattern =~ /\d+\.\d+\.\d+\.\d+/) { |
|
#127.0.0.1 |
|
if ($ip =~ /^\Q$pattern\E/) { $allowed=1; } |
|
} else { |
|
#some.name.com |
|
if (!defined($name)) { |
|
use Socket; |
|
my $netaddr=inet_aton($ip); |
|
($name)=gethostbyaddr($netaddr,AF_INET); |
|
} |
|
if ($name =~ /\Q$pattern\E$/i) { $allowed=1; } |
|
} |
|
if ($allowed) { last; } |
|
} |
|
return $allowed; |
|
} |
|
|
|
sub check_slot_access { |
sub check_slot_access { |
my ($id,$type)=@_; |
my ($id,$type)=@_; |
|
|
Line 307 sub check_slot_access {
|
Line 255 sub check_slot_access {
|
&Apache::lonhomework::showhash(%slot); |
&Apache::lonhomework::showhash(%slot); |
if ($slot{'starttime'} < time && |
if ($slot{'starttime'} < time && |
$slot{'endtime'} > time && |
$slot{'endtime'} > time && |
&check_ip_acc($slot{'ip'})) { |
&Apache::loncommon::check_ip_acc($slot{'ip'})) { |
&Apache::lonxml::debug("$slot is good"); |
&Apache::lonxml::debug("$slot is good"); |
$slotstatus='NEEDS_CHECKIN'; |
$slotstatus='NEEDS_CHECKIN'; |
$returned_slot=\%slot; |
$returned_slot=\%slot; |
Line 421 sub check_access {
|
Line 369 sub check_access {
|
#if ($env{'request.state'} ne "construct" && $symb ne '') { |
#if ($env{'request.state'} ne "construct" && $symb ne '') { |
if ($env{'request.state'} ne "construct") { |
if ($env{'request.state'} ne "construct") { |
my $idacc = &Apache::lonnet::EXT("resource.$id.acc"); |
my $idacc = &Apache::lonnet::EXT("resource.$id.acc"); |
my $allowed=&check_ip_acc($idacc); |
my $allowed=&Apache::loncommon::check_ip_acc($idacc); |
if (!$allowed && ($Apache::lonhomework::browse ne 'F')) { |
if (!$allowed && ($Apache::lonhomework::browse ne 'F')) { |
$status='INVALID_ACCESS'; |
$status='INVALID_ACCESS'; |
$date=&mt("can not be accessed from your location."); |
$date=&mt("can not be accessed from your location."); |
Line 854 sub analyze {
|
Line 802 sub analyze {
|
$request->print('</table>'); |
$request->print('</table>'); |
} |
} |
} else { |
} else { |
$request->print('<p>'.&mt('Response').' '.$part.' '. |
$request->print('<p class="LC_warning">' |
&mt('is not analyzable at this time').'</p>'); |
.&mt('Response [_1] is not analyzable at this time.',$part) |
|
.'</p>' |
|
); |
} |
} |
} |
} |
if (scalar(keys(%allparts)) == 0 ) { |
if (scalar(keys(%allparts)) == 0 ) { |
$request->print('<p>'.&mt('Found no analyzable responses in this problem, currently only Numerical, Formula and String response styles are supported.').'</p>'); |
$request->print('<p class="LC_warning">' |
|
.&mt('Found no analyzable responses in this problem.' |
|
.' Currently only Numerical, Formula and String response styles are supported.') |
|
.'</p>' |
|
); |
} |
} |
&Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); |
&Apache::lonhtmlcommon::Close_PrgWin($request,\%prog_state); |
&analyze_footer($request); |
&analyze_footer($request); |
Line 907 sub editxmlmode {
|
Line 861 sub editxmlmode {
|
my $result; |
my $result; |
my $problem=&Apache::lonnet::getfile($file); |
my $problem=&Apache::lonnet::getfile($file); |
if ($problem eq -1) { |
if ($problem eq -1) { |
&Apache::lonxml::error("<b> ".&mt('Unable to find'). |
&Apache::lonxml::error( |
" <i>$file</i></b>"); |
'<b> ' |
|
.&mt('Unable to find [_1]', |
|
'<span class="LC_filename">'.$file.'</span>') |
|
.'</b>'); |
|
|
$problem=''; |
$problem=''; |
} |
} |
if (defined($env{'form.editxmltext'}) || defined($env{'form.Undo'})) { |
if (defined($env{'form.editxmltext'}) || defined($env{'form.Undo'})) { |
Line 923 sub editxmlmode {
|
Line 881 sub editxmlmode {
|
&renderpage($request,$file); |
&renderpage($request,$file); |
} else { |
} else { |
my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem); |
my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem); |
my $xml_help = '<table><tr><td>'. |
|
&Apache::loncommon::helpLatexCheatsheet("Problem_Editor_XML_Index", |
|
"Problem Editing Help"). |
|
'</td><td>'. |
|
&Apache::loncommon::help_open_menu(undef,undef,5,'Authoring'). |
|
'</td></tr></table>'; |
|
if ($cols > 80) { $cols = 80; } |
if ($cols > 80) { $cols = 80; } |
if ($cols < 70) { $cols = 70; } |
if ($cols < 70) { $cols = 70; } |
if ($rows < 20) { $rows = 20; } |
if ($rows < 20) { $rows = 20; } |
my $js = |
my $js = |
&Apache::edit::js_change_detection(). |
&Apache::edit::js_change_detection(). |
&Apache::loncommon::resize_textarea_js(). |
&Apache::loncommon::resize_textarea_js(). |
&Apache::structuretags::setmode_javascript(); |
&Apache::structuretags::setmode_javascript(). |
|
&Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); |
my $only_body = ($env{'environment.remote'} eq 'off')? 0 : 1; |
my $only_body = ($env{'environment.remote'} eq 'off')? 0 : 1; |
my $dragmath = <<ENDDRAGMATH; |
my $dragmath_button = |
<script language="JavaScript"> |
&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1); |
function mathedit(textarea, doc) { |
|
targetEntry = textarea; |
|
targetDoc = doc; |
|
newwin = window.open("/adm/dragmath/applet/EditMathPopup.html","","width=565,height=500,resizable"); |
|
} |
|
</script> |
|
<input type="button" value="Edit Math", onclick="javascript:mathedit('LC_editxmltext',document)" /> |
|
ENDDRAGMATH |
|
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js, |
&Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js, |
{'no_auto_mt_title' => 1, |
{'no_auto_mt_title' => 1, |
Line 964 ENDDRAGMATH
|
Line 909 ENDDRAGMATH
|
<table class="LC_edit_problem_header_title"><tr><td> |
<table class="LC_edit_problem_header_title"><tr><td> |
'.&mt('Problem Editing').&Apache::loncommon::help_open_topic('Problem_Editor_XML_Index').' |
'.&mt('Problem Editing').&Apache::loncommon::help_open_topic('Problem_Editor_XML_Index').' |
</td><td align="right"> |
</td><td align="right"> |
'.&Apache::loncommon::helpLatexCheatsheet().' |
'.&Apache::loncommon::helpLatexCheatsheet('Problem_LON-CAPA_Functions','Script Functions').' |
</td></tr> |
</td></tr> |
</table> |
</table> |
<div class="LC_edit_problem_discards"> |
<div class="LC_edit_problem_discards"> |
Line 974 ENDDRAGMATH
|
Line 919 ENDDRAGMATH
|
'onclick="javascript:setmode(this.form,'."'discard'".')" /> |
'onclick="javascript:setmode(this.form,'."'discard'".')" /> |
<input type="button" '.&Apache::edit::submit_ask_anyway('setmode(this.form,'."'edit'".')').'name="submitmode" accesskey="e" value="'.&mt('Edit').'" /> |
<input type="button" '.&Apache::edit::submit_ask_anyway('setmode(this.form,'."'edit'".')').'name="submitmode" accesskey="e" value="'.&mt('Edit').'" /> |
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> |
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> |
|
'.$dragmath_button.' |
</div> |
</div> |
<div class="LC_edit_problem_saves"> |
<div class="LC_edit_problem_saves"> |
<input type="submit" name="submitbutton" accesskey="s" value="'.&mt('Save').'" /> |
<input type="submit" name="submitbutton" accesskey="s" value="'.&mt('Save').'" /> |
<input type="submit" name="submitbutton" accesskey="v" value="'.&mt('Save and View').'" />' |
<input type="submit" name="submitbutton" accesskey="v" value="'.&mt('Save and View').'" /> |
.$dragmath.' |
|
</div> |
</div> |
<hr class="LC_edit_problem_divide" /> |
<hr class="LC_edit_problem_divide" /> |
'.&Apache::lonxml::message_location().' |
'.&Apache::lonxml::message_location().' |
Line 1028 sub renderpage {
|
Line 973 sub renderpage {
|
my $filename=(split('/',$file))[-1]; |
my $filename=(split('/',$file))[-1]; |
my $error = |
my $error = |
"<b> ".&mt('Unable to find [_1]', |
"<b> ".&mt('Unable to find [_1]', |
' <span class="LC_filename">'.$filename.'</span>') |
'<span class="LC_filename">'.$filename.'</span>') |
."</b>"; |
."</b>"; |
$result.= |
$result.= |
&Apache::loncommon::simple_error_page($request,'Not available', |
&Apache::loncommon::simple_error_page($request,'Not available', |
Line 1174 $start_page
|
Line 1119 $start_page
|
<h1>".&mt("Creating a new $extension resource.")."</h1> |
<h1>".&mt("Creating a new $extension resource.")."</h1> |
$errormsg |
$errormsg |
".&mt("The requested file [_1] currently does not exist.", |
".&mt("The requested file [_1] currently does not exist.", |
"<tt>$shownurl</tt>")." |
'<span class="LC_filename">'.$shownurl.'</span>')." |
<p> |
<p> |
<b> |
<b> |
".&mt("To create a new $extension, select a template from the". |
".&mt("To create a new $extension, select a template from the". |
Line 1199 sub update_construct_style {
|
Line 1144 sub update_construct_style {
|
&& !defined($env{'form.newrandomization'})) { |
&& !defined($env{'form.newrandomization'})) { |
if ((!$env{'form.style_file'} && $env{'construct.style'}) |
if ((!$env{'form.style_file'} && $env{'construct.style'}) |
||$env{'form.clear_style_file'}) { |
||$env{'form.clear_style_file'}) { |
&Apache::lonnet::delenv('construct\\.style'); |
&Apache::lonnet::delenv('construct.style'); |
} elsif ($env{'form.style_file'} |
} elsif ($env{'form.style_file'} |
&& $env{'construct.style'} ne $env{'form.style_file'}) { |
&& $env{'construct.style'} ne $env{'form.style_file'}) { |
&Apache::lonnet::appenv({'construct.style' => |
&Apache::lonnet::appenv({'construct.style' => |