version 1.238, 2004/12/02 00:01:34
|
version 1.249, 2005/02/14 01:44:02
|
Line 691 sub help_open_menu {
|
Line 691 sub help_open_menu {
|
$template .= <<"ENDTEMPLATE"; |
$template .= <<"ENDTEMPLATE"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
//<!-- BEGIN LON-CAPA Internal |
//<!-- BEGIN LON-CAPA Internal |
function helpMenu(caller) { |
function helpMenu(target) { |
if (caller == 'open') { |
var caller = this; |
newWindow = window.open("","helpmenu","HEIGHT=$height,WIDTH=$width,resize=yes,scrollbars=yes" ) |
if (target == 'open') { |
caller = newWindow.document |
var newWindow = null; |
} else { |
try { |
caller = this.document |
newWindow = window.open("","helpmenu","HEIGHT=$height,WIDTH=$width,resizable=yes,scrollbars=yes" ) |
} |
} |
caller.write("<html><head><title>LON-CAPA Help Menu</title><meta http-equiv='pragma' content='no-cache'></head>") |
catch(error) { |
caller.write("<frameset rows='105,*' border='0'><frame name='bannerframe' src='$banner_link'><frame name='bodyframe' src='$details_link'></frameset>") |
writeHelp(caller); |
caller.write("</html>") |
return; |
caller.close() |
} |
if (caller == newWindow.document) { |
if (newWindow) { |
caller.focus() |
caller = newWindow; |
|
} |
} |
} |
|
writeHelp(caller); |
|
return; |
|
} |
|
function writeHelp(caller) { |
|
caller.document.write("<html><head><title>LON-CAPA Help Menu</title><meta http-equiv='pragma' content='no-cache'></head>") |
|
caller.document.write("<frameset rows='105,*' border='0'><frame name='bannerframe' src='$banner_link'><frame name='bodyframe' src='$details_link'></frameset>") |
|
caller.document.write("</html>") |
|
caller.document.close() |
|
caller.focus() |
} |
} |
// END LON-CAPA Internal --> |
// END LON-CAPA Internal --> |
</script> |
</script> |
Line 884 sub define_excel_formats {
|
Line 894 sub define_excel_formats {
|
$format->{'h1'} = $workbook->add_format(bold=>1, size=>18); |
$format->{'h1'} = $workbook->add_format(bold=>1, size=>18); |
$format->{'h2'} = $workbook->add_format(bold=>1, size=>16); |
$format->{'h2'} = $workbook->add_format(bold=>1, size=>16); |
$format->{'h3'} = $workbook->add_format(bold=>1, size=>14); |
$format->{'h3'} = $workbook->add_format(bold=>1, size=>14); |
|
$format->{'i'} = $workbook->add_format(italic=>1); |
$format->{'date'} = $workbook->add_format(num_format=> |
$format->{'date'} = $workbook->add_format(num_format=> |
'mm/dd/yyyy hh:mm:ss'); |
'mm/dd/yyyy hh:mm:ss'); |
return $format; |
return $format; |
Line 1131 sub select_dom_form {
|
Line 1142 sub select_dom_form {
|
my $selectdomain = "<select name=\"$name\" size=\"1\">\n"; |
my $selectdomain = "<select name=\"$name\" size=\"1\">\n"; |
foreach (@domains) { |
foreach (@domains) { |
$selectdomain.="<option value=\"$_\" ". |
$selectdomain.="<option value=\"$_\" ". |
($_ eq $defdom ? 'selected' : ''). |
($_ eq $defdom ? 'selected="selected"' : ''). |
">$_</option>\n"; |
">$_</option>\n"; |
} |
} |
$selectdomain.="</select>"; |
$selectdomain.="</select>"; |
Line 1230 Outputs:
|
Line 1241 Outputs:
|
############################################################### |
############################################################### |
############################################################### |
############################################################### |
sub decode_user_agent { |
sub decode_user_agent { |
|
my ($r)=@_; |
my @browsertype=split(/\&/,$Apache::lonnet::perlvar{"lonBrowsDet"}); |
my @browsertype=split(/\&/,$Apache::lonnet::perlvar{"lonBrowsDet"}); |
my %mathcap=split(/\&/,$$Apache::lonnet::perlvar{"lonMathML"}); |
my %mathcap=split(/\&/,$$Apache::lonnet::perlvar{"lonMathML"}); |
my $httpbrowser=$ENV{"HTTP_USER_AGENT"}; |
my $httpbrowser=$ENV{"HTTP_USER_AGENT"}; |
|
if (!$httpbrowser && $r) { $httpbrowser=$r->header_in('User-Agent'); } |
my $clientbrowser='unknown'; |
my $clientbrowser='unknown'; |
my $clientversion='0'; |
my $clientversion='0'; |
my $clientmathml=''; |
my $clientmathml=''; |
Line 2325 sub get_student_answers {
|
Line 2338 sub get_student_answers {
|
|
|
=item * &submlink() |
=item * &submlink() |
|
|
Inputs: $text $uname $udom $symb |
Inputs: $text $uname $udom $symb $target |
|
|
Returns: A link to grades.pm such as to see the SUBM view of a student |
Returns: A link to grades.pm such as to see the SUBM view of a student |
|
|
Line 2333 Returns: A link to grades.pm such as to
|
Line 2346 Returns: A link to grades.pm such as to
|
|
|
############################################### |
############################################### |
sub submlink { |
sub submlink { |
my ($text,$uname,$udom,$symb)=@_; |
my ($text,$uname,$udom,$symb,$target)=@_; |
if (!($uname && $udom)) { |
if (!($uname && $udom)) { |
(my $cursymb, my $courseid,$udom,$uname)= |
(my $cursymb, my $courseid,$udom,$uname)= |
&Apache::lonxml::whichuser($symb); |
&Apache::lonxml::whichuser($symb); |
if (!$symb) { $symb=$cursymb; } |
if (!$symb) { $symb=$cursymb; } |
} |
} |
if (!$symb) { $symb=&symbread(); } |
if (!$symb) { $symb=&symbread(); } |
return '<a href="/adm/grades?symb='.$symb.'&student='.$uname. |
$symb=&Apache::lonnet::escape($symb); |
'&userdom='.$udom.'&command=submission">'.$text.'</a>'; |
if ($target) { $target="target=\"$target\""; } |
|
return '<a href="/adm/grades?&command=submission&'. |
|
'symb='.$symb.'&student='.$uname. |
|
'&userdom='.$udom.'" '.$target.'>'.$text.'</a>'; |
|
} |
|
############################################## |
|
|
|
=pod |
|
|
|
=item * &pgrdlink() |
|
|
|
Inputs: $text $uname $udom $symb $target |
|
|
|
Returns: A link to grades.pm such as to see the PGRD view of a student |
|
|
|
=cut |
|
|
|
############################################### |
|
sub pgrdlink { |
|
my $link=&submlink(@_); |
|
$link=~s/(&command=submission)/$1&showgrading=yes/; |
|
return $link; |
|
} |
|
############################################## |
|
|
|
=pod |
|
|
|
=item * &pprmlink() |
|
|
|
Inputs: $text $uname $udom $symb $target |
|
|
|
Returns: A link to parmset.pm such as to see the PPRM view of a |
|
student andn resource |
|
|
|
=cut |
|
|
|
############################################### |
|
sub pprmlink { |
|
my ($text,$uname,$udom,$symb,$target)=@_; |
|
if (!($uname && $udom)) { |
|
(my $cursymb, my $courseid,$udom,$uname)= |
|
&Apache::lonxml::whichuser($symb); |
|
if (!$symb) { $symb=$cursymb; } |
|
} |
|
if (!$symb) { $symb=&symbread(); } |
|
$symb=&Apache::lonnet::escape($symb); |
|
if ($target) { $target="target=\"$target\""; } |
|
return '<a href="/adm/parmset?&command=set&'. |
|
'symb='.$symb.'&uname='.$uname. |
|
'&udom='.$udom.'" '.$target.'>'.$text.'</a>'; |
} |
} |
############################################## |
############################################## |
|
|
Line 2608 ENDROLE
|
Line 2670 ENDROLE
|
$formaction=~s/\/+/\//g; |
$formaction=~s/\/+/\//g; |
unless ($customtitle) { #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm |
unless ($customtitle) { #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm |
my $parentpath = ''; |
my $parentpath = ''; |
if ($thisdisfn =~ m-(.+/)[^/]*$-) { |
my $lastitem = ''; |
|
if ($thisdisfn =~ m-(.+/)([^/]*)$-) { |
$parentpath = $1; |
$parentpath = $1; |
|
$lastitem = $2; |
|
} else { |
|
$lastitem = $thisdisfn; |
} |
} |
$titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring'). |
$titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring'). |
'<font face="Arial, Helvetica, sans-serif"><b>Construction Space</b>:</font> '. |
'<font face="Arial, Helvetica, sans-serif"><b>Construction Space</b>:</font> '. |
'<form name="dirs" method="post" action="'.$formaction |
'<form name="dirs" method="post" action="'.$formaction |
.'" target="_top"><tt><b>' |
.'" target="_top"><tt><b>' |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."</b></tt><br />" |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<font size=\"+1\">$lastitem</font></b></tt><br />" |
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
.'</form>' |
.'</form>' |
.&Apache::lonmenu::constspaceform(); |
.&Apache::lonmenu::constspaceform(); |
Line 2643 ENDROLE
|
Line 2709 ENDROLE
|
if ($customtitle) { |
if ($customtitle) { |
$titleinfo = $customtitle; |
$titleinfo = $customtitle; |
} |
} |
|
# |
|
# Extra info if you are the DC |
|
my $dc_info = ''; |
|
if ($ENV{'user.adv'} && exists($ENV{'user.role.dc./'. |
|
$ENV{'course.'.$ENV{'request.course.id'}. |
|
'.domain'}.'/'})) { |
|
my $cid = $ENV{'request.course.id'}; |
|
$dc_info.= $cid.' '.$ENV{'course.'.$cid.'.internal.coursecode'}; |
|
$dc_info = '('.$dc_info.')'; |
|
} |
|
# |
return(<<ENDBODY); |
return(<<ENDBODY); |
$bodytag |
$bodytag |
<table width="100%" cellspacing="0" border="0" cellpadding="0"> |
<table width="100%" cellspacing="0" border="0" cellpadding="0"> |
Line 2652 $upperleft</td>
|
Line 2729 $upperleft</td>
|
</tr> |
</tr> |
<tr> |
<tr> |
<td rowspan="3" bgcolor="$tabbg"> |
<td rowspan="3" bgcolor="$tabbg"> |
$titleinfo |
$titleinfo $dc_info |
<td bgcolor="$tabbg" align="right"> |
<td bgcolor="$tabbg" align="right"> |
<font size="2" face="Arial, Helvetica, sans-serif"> |
<font size="2" face="Arial, Helvetica, sans-serif"> |
$ENV{'environment.firstname'} |
$ENV{'environment.firstname'} |
Line 2719 Returns number of sections.
|
Line 2796 Returns number of sections.
|
############################################### |
############################################### |
sub get_sections { |
sub get_sections { |
my ($cdom,$cnum,$sectioncount,$possible_roles) = @_; |
my ($cdom,$cnum,$sectioncount,$possible_roles) = @_; |
|
if (!($cdom && $cnum)) { return 0; } |
my $cid = $cdom.'_'.$cnum; |
my $cid = $cdom.'_'.$cnum; |
my $numsections = 0; |
my $numsections = 0; |
if ($cdom && $cnum) { |
|
if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) { |
if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) { |
my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum); |
my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum); |
my $sec_index = &Apache::loncoursedata::CL_SECTION(); |
my $sec_index = &Apache::loncoursedata::CL_SECTION(); |
my $status_index = &Apache::loncoursedata::CL_STATUS(); |
my $status_index = &Apache::loncoursedata::CL_STATUS(); |
while (my ($student,$data) = each %$classlist) { |
while (my ($student,$data) = each %$classlist) { |
my ($section,$status) = ($data->[$sec_index], |
my ($section,$status) = ($data->[$sec_index], |
$data->[$status_index]); |
$data->[$status_index]); |
unless ($section eq '' || $section =~ /^\s*$/) { |
unless ($section eq '-1' || $section =~ /^\s*$/) { |
if (!defined($$sectioncount{$section})) { |
if (!defined($$sectioncount{$section})) { $numsections++; } |
$$sectioncount{$section} = 1; |
$$sectioncount{$section}++; |
$numsections ++; |
} |
} else { |
} |
$$sectioncount{$section} ++; |
} |
} |
my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum); |
} |
foreach my $user (sort(keys(%courseroles))) { |
} |
if ($user !~ /^(\w{2})/) { next; } |
} |
my ($role) = ($user =~ /^(\w{2})/); |
my %courseroles = &Apache::lonnet::dump('nohist_userroles',$cdom,$cnum); |
if ($possible_roles && !(grep(/^$role$/,@$possible_roles))) { next; } |
foreach my $user (sort keys %courseroles) { |
my $section; |
if ($user =~ /^(\w{2})/) { |
if ($role eq 'cr' && |
my $role = $1; |
$user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) { |
if (!defined($possible_roles) || (grep/^$role$/,@$possible_roles)) { |
$section=$1; |
if ($role eq 'cr') { |
} |
if ($user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) { |
if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) { $section=$1; } |
if (!defined($$sectioncount{$1})) { |
if (!defined($section) || $section eq '-1') { next; } |
$$sectioncount{$1} = 1; |
if (!defined($$sectioncount{$section})) { $numsections++; } |
$numsections ++; |
$$sectioncount{$section}++; |
} else { |
|
$$sectioncount{$1} ++; |
|
} |
|
} |
|
} |
|
if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) { |
|
if (!defined($$sectioncount{$1})) { |
|
$$sectioncount{$1} = 1; |
|
$numsections ++; |
|
} else { |
|
$$sectioncount{$1} ++; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
} |
return $numsections; |
return $numsections; |
} |
} |
Line 3043 needs $ENV{'form.upfile'} and $ENV{'form
|
Line 3105 needs $ENV{'form.upfile'} and $ENV{'form
|
sub upfile_record_sep { |
sub upfile_record_sep { |
if ($ENV{'form.upfiletype'} eq 'xml') { |
if ($ENV{'form.upfiletype'} eq 'xml') { |
} else { |
} else { |
return split(/\n/,$ENV{'form.upfile'}); |
my @records; |
|
foreach my $line (split(/\n/,$ENV{'form.upfile'})) { |
|
if ($line=~/^\s*$/) { next; } |
|
push(@records,$line); |
|
} |
|
return @records; |
} |
} |
} |
} |
|
|
Line 3376 they are plotted. If undefined, default
|
Line 3443 they are plotted. If undefined, default
|
=item @Values: An array of array references. Each array reference holds data |
=item @Values: An array of array references. Each array reference holds data |
to be plotted in a stacked bar chart. |
to be plotted in a stacked bar chart. |
|
|
|
=item If the final element of @Values is a hash reference the key/value |
|
pairs will be added to the graph definition. |
|
|
=back |
=back |
|
|
Returns: |
Returns: |
Line 3849 sub icon {
|
Line 3919 sub icon {
|
$curfext.".gif"; |
$curfext.".gif"; |
} |
} |
} |
} |
return $iconname; |
return &lonhttpdurl($iconname); |
} |
} |
|
|
sub lonhttpdurl { |
sub lonhttpdurl { |