version 1.300, 2005/12/01 23:04:08
|
version 1.306, 2006/03/15 19:37:55
|
Line 331 sub storeresurl {
|
Line 331 sub storeresurl {
|
sub studentbrowser_javascript { |
sub studentbrowser_javascript { |
unless ( |
unless ( |
(($env{'request.course.id'}) && |
(($env{'request.course.id'}) && |
(&Apache::lonnet::allowed('srm',$env{'request.course.id'}))) |
(&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
|
|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
|
'/'.$env{'request.course.sec'}) |
|
)) |
|| ($env{'request.role'}=~/^(au|dc|su)/) |
|| ($env{'request.role'}=~/^(au|dc|su)/) |
) { return ''; } |
) { return ''; } |
return (<<'ENDSTDBRW'); |
return (<<'ENDSTDBRW'); |
Line 362 ENDSTDBRW
|
Line 365 ENDSTDBRW
|
sub selectstudent_link { |
sub selectstudent_link { |
my ($form,$unameele,$udomele)=@_; |
my ($form,$unameele,$udomele)=@_; |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
unless (&Apache::lonnet::allowed('srm',$env{'request.course.id'})) { |
if (!&Apache::lonnet::allowed('srm',$env{'request.course.id'}) |
|
&& !&Apache::lonnet::allowed('srm',$env{'request.course.id'}. |
|
'/'.$env{'request.course.sec'})) { |
return ''; |
return ''; |
} |
} |
return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele. |
return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele. |
Line 2782 table.thinborder { border-collapse: coll
|
Line 2787 table.thinborder { border-collapse: coll
|
table.thinborder tr th, table.thinborder tr td { border-style: solid; border-width: 1px} |
table.thinborder tr th, table.thinborder tr td { border-style: solid; border-width: 1px} |
form, .inline { display: inline; } |
form, .inline { display: inline; } |
.center { text-align: center; } |
.center { text-align: center; } |
|
.filename {font-family: monospace;} |
</style> |
</style> |
<body bgcolor="$pgbg" text="$font" alink="$alink" vlink="$vlink" link="$link" |
<body bgcolor="$pgbg" text="$font" alink="$alink" vlink="$vlink" link="$link" |
style="margin-top: 0px;$addstyle" $addentries> |
style="margin-top: 0px;$addstyle" $addentries> |
Line 2887 ENDROLE
|
Line 2893 ENDROLE
|
$dc_info.= $cid.' '.$env{'course.'.$cid.'.internal.coursecode'}; |
$dc_info.= $cid.' '.$env{'course.'.$cid.'.internal.coursecode'}; |
$dc_info = '('.$dc_info.')'; |
$dc_info = '('.$dc_info.')'; |
} |
} |
|
# Explicit link to get inline menu |
|
my $menu='<br /><font size="2" face="Arial, Helvetica, sans-serif"> <a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a></font>'; |
# |
# |
return(<<ENDBODY); |
return(<<ENDBODY); |
$bodytag |
$bodytag |
Line 2897 $upperleft</td>
|
Line 2905 $upperleft</td>
|
</tr> |
</tr> |
<tr> |
<tr> |
<td rowspan="3" bgcolor="$tabbg"> |
<td rowspan="3" bgcolor="$tabbg"> |
$titleinfo $dc_info |
$titleinfo $dc_info $menu |
</td><td bgcolor="$tabbg" align="right"> |
</td><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 2923 ENDBODY
|
Line 2931 ENDBODY
|
|
|
=back |
=back |
|
|
=head1 HTTP Helpers |
=head1 HTML Helpers |
|
|
=over 4 |
=over 4 |
|
|
Line 2931 ENDBODY
|
Line 2939 ENDBODY
|
|
|
Returns a uniform footer for LON-CAPA web pages. |
Returns a uniform footer for LON-CAPA web pages. |
|
|
Inputs: |
Inputs: none |
|
|
=over 4 |
|
|
|
=back |
=back |
|
|
Returns: A uniform footer for LON-CAPA web pages. |
|
|
|
=cut |
=cut |
|
|
sub endbodytag { |
sub endbodytag { |
Line 2947 sub endbodytag {
|
Line 2951 sub endbodytag {
|
return $endbodytag; |
return $endbodytag; |
} |
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
|
=item * &headtag() |
|
|
|
Returns a uniform footer for LON-CAPA web pages. |
|
|
|
Inputs: $title - optinal title for the head |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub headtag { |
|
my ($title) = @_; |
|
|
|
my $result = '<head>'; |
|
|
|
if (!defined($title)) { |
|
$title = 'The LearningOnline Network with CAPA'; |
|
} |
|
|
|
$result .= '<title>'.&mt($title).'</title>'; |
|
|
|
return $result; |
|
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
|
=item * &endheadtag() |
|
|
|
Returns a uniform </head> for LON-CAPA web pages. |
|
|
|
Inputs: none |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub endheadtag { |
|
return '</head>'; |
|
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
|
=item * &head() |
|
|
|
Returns a uniform complete <head>..</head> section for LON-CAPA web pages. |
|
|
|
Inputs: $title - optional title for the page |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub head { |
|
my ($title) = @_; |
|
return &headtag($title).&endheadtag(); |
|
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
|
=item * &start_page() |
|
|
|
Returns a complete <html> .. <body> section for LON-CAPA web pages. |
|
|
|
Inputs: $title - optional title for the page |
|
$head_extra - optional extra HTML to incude inside the <head> |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub start_page { |
|
my ($title,$head_extra) = @_; |
|
return |
|
&Apache::lonxml::xmlbegin(). |
|
&headtag($title).$head_extra.&endheadtag(). |
|
&bodytag($title); |
|
} |
|
|
|
=pod |
|
|
|
=over 4 |
|
|
|
=item * &head() |
|
|
|
Returns a complete </body></html> section for LON-CAPA web pages. |
|
|
|
Inputs: None |
|
|
|
=back |
|
|
|
=cut |
|
|
|
sub end_page { |
|
return &endbodytag."\n</html>"; |
|
} |
############################################### |
############################################### |
|
|
=pod |
=pod |
|
|
|
=over 4 |
|
|
=item get_users_function |
=item get_users_function |
|
|
Used by &bodytag to determine the current users primary role. |
Used by &bodytag to determine the current users primary role. |
Line 3165 times for group members.
|
Line 3276 times for group members.
|
Outer hash key is functions. |
Outer hash key is functions. |
Inner hash keys are chat,discussion,email,files,homepage,roster. |
Inner hash keys are chat,discussion,email,files,homepage,roster. |
Corresponding values are either on or off, depending on |
Corresponding values are either on or off, depending on |
whther this type of functionality is available for the group. |
whether this type of functionality is available for the group. |
|
|
=cut |
=cut |
|
|
Line 3176 sub get_group_settings {
|
Line 3287 sub get_group_settings {
|
my $parser=HTML::TokeParser->new(\$groupinfo); |
my $parser=HTML::TokeParser->new(\$groupinfo); |
my $token; |
my $token; |
my $tool = ''; |
my $tool = ''; |
|
my $role = ''; |
my %content=(); |
my %content=(); |
while ($token=$parser->get_token) { |
while ($token=$parser->get_token) { |
if ($token->[0] eq 'S') { |
if ($token->[0] eq 'S') { |
my $entry=$token->[1]; |
my $entry=$token->[1]; |
if ($entry eq 'functions') { |
if ($entry eq 'functions' || $entry eq 'autosec') { |
%{$content{$entry}} = (); |
%{$content{$entry}} = (); |
$tool = $entry; |
$tool = $entry; |
|
} elsif ($entry eq 'role') { |
|
if ($tool eq 'autosec') { |
|
$role = $token->[2]{id}; |
|
} |
} else { |
} else { |
my $value=$parser->get_text('/'.$entry); |
my $value=$parser->get_text('/'.$entry); |
if ($entry eq 'name') { |
if ($entry eq 'name') { |
Line 3192 sub get_group_settings {
|
Line 3308 sub get_group_settings {
|
} |
} |
} elsif ($entry eq 'groupname') { |
} elsif ($entry eq 'groupname') { |
$content{$entry}=&Apache::lonnet::unescape($value); |
$content{$entry}=&Apache::lonnet::unescape($value); |
|
} elsif (($entry eq 'roles') || ($entry eq 'types') || |
|
($entry eq 'sectionpick') || ($entry eq 'defpriv')) { |
|
push(@{$content{$entry}},$value); |
|
} elsif ($entry eq 'section') { |
|
if ($tool eq 'autosec' && $role ne '') { |
|
push(@{$content{$tool}{$role}},$value); |
|
} |
} else { |
} else { |
$content{$entry}=$value; |
$content{$entry}=$value; |
} |
} |
} |
} |
} elsif ($token->[0] eq 'E') { |
} elsif ($token->[0] eq 'E') { |
if ($token->[1] eq 'functions') { |
if ($token->[1] eq 'functions' || $token->[1] eq 'autosec') { |
$tool = ''; |
$tool = ''; |
|
} elsif ($token->[1] eq 'role') { |
|
$role = ''; |
} |
} |
|
|
} |
} |
} |
} |
return %content; |
return %content; |
Line 3724 sub upfile_select_html {
|
Line 3850 sub upfile_select_html {
|
return $Str; |
return $Str; |
} |
} |
|
|
|
sub get_samples { |
|
my ($records,$toget) = @_; |
|
my @samples=({}); |
|
my $got=0; |
|
foreach my $rec (@$records) { |
|
my %temp = &record_sep($rec); |
|
if (! grep(/\S/, values(%temp))) { next; } |
|
if (%temp) { |
|
$samples[$got]=\%temp; |
|
$got++; |
|
if ($got == $toget) { last; } |
|
} |
|
} |
|
return \@samples; |
|
} |
|
|
###################################################### |
###################################################### |
###################################################### |
###################################################### |
|
|
Line 3741 Apache Request ref, $records is an array
|
Line 3883 Apache Request ref, $records is an array
|
###################################################### |
###################################################### |
sub csv_print_samples { |
sub csv_print_samples { |
my ($r,$records) = @_; |
my ($r,$records) = @_; |
my (%sone,%stwo,%sthree); |
my $samples = &get_samples($records,3); |
%sone=&record_sep($$records[0]); |
|
if (defined($$records[1])) {%stwo=&record_sep($$records[1]);} |
|
if (defined($$records[2])) {%sthree=&record_sep($$records[2]);} |
|
# |
|
$r->print(&mt('Samples').'<br /><table border="2"><tr>'); |
$r->print(&mt('Samples').'<br /><table border="2"><tr>'); |
foreach (sort({$a <=> $b} keys(%sone))) { |
foreach (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
$r->print('<th>'.&mt('Column [_1]',($_+1)).'</th>'); } |
$r->print('<th>'.&mt('Column [_1]',($_+1)).'</th>'); } |
$r->print('</tr>'); |
$r->print('</tr>'); |
foreach my $hash (\%sone,\%stwo,\%sthree) { |
foreach my $hash (@$samples) { |
$r->print('<tr>'); |
$r->print('<tr>'); |
foreach (sort({$a <=> $b} keys(%sone))) { |
foreach (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
$r->print('<td>'); |
$r->print('<td>'); |
if (defined($$hash{$_})) { $r->print($$hash{$_}); } |
if (defined($$hash{$_})) { $r->print($$hash{$_}); } |
$r->print('</td>'); |
$r->print('</td>'); |
Line 3781 $d is an array of 2 element arrays (inte
|
Line 3920 $d is an array of 2 element arrays (inte
|
###################################################### |
###################################################### |
sub csv_print_select_table { |
sub csv_print_select_table { |
my ($r,$records,$d) = @_; |
my ($r,$records,$d) = @_; |
my $i=0;my %sone; |
my $i=0; |
%sone=&record_sep($$records[0]); |
my $samples = &get_samples($records,1); |
$r->print(&mt('Associate columns with student attributes.')."\n". |
$r->print(&mt('Associate columns with student attributes.')."\n". |
'<table border="2"><tr>'. |
'<table border="2"><tr>'. |
'<th>'.&mt('Attribute').'</th>'. |
'<th>'.&mt('Attribute').'</th>'. |
Line 3794 sub csv_print_select_table {
|
Line 3933 sub csv_print_select_table {
|
$r->print('<td><select name=f'.$i. |
$r->print('<td><select name=f'.$i. |
' onchange="javascript:flip(this.form,'.$i.');">'); |
' onchange="javascript:flip(this.form,'.$i.');">'); |
$r->print('<option value="none"></option>'); |
$r->print('<option value="none"></option>'); |
foreach (sort({$a <=> $b} keys(%sone))) { |
foreach (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
$r->print('<option value="'.$_.'"'. |
$r->print('<option value="'.$_.'"'. |
($_ eq $defaultcol ? ' selected="selected" ' : ''). |
($_ eq $defaultcol ? ' selected="selected" ' : ''). |
'>Column '.($_+1).'</option>'); |
'>Column '.($_+1).'</option>'); |
Line 3825 $d is an array of 2 element arrays (inte
|
Line 3964 $d is an array of 2 element arrays (inte
|
###################################################### |
###################################################### |
sub csv_samples_select_table { |
sub csv_samples_select_table { |
my ($r,$records,$d) = @_; |
my ($r,$records,$d) = @_; |
my %sone; my %stwo; my %sthree; |
|
my $i=0; |
my $i=0; |
# |
# |
|
my $samples = &get_samples($records,3); |
$r->print('<table border=2><tr><th>'. |
$r->print('<table border=2><tr><th>'. |
&mt('Field').'</th><th>'.&mt('Samples').'</th></tr>'); |
&mt('Field').'</th><th>'.&mt('Samples').'</th></tr>'); |
%sone=&record_sep($$records[0]); |
|
if (defined($$records[1])) {%stwo=&record_sep($$records[1]);} |
foreach my $key (sort(keys(%{ $samples->[0] }))) { |
if (defined($$records[2])) {%sthree=&record_sep($$records[2]);} |
|
# |
|
foreach (sort keys %sone) { |
|
$r->print('<tr><td><select name="f'.$i.'"'. |
$r->print('<tr><td><select name="f'.$i.'"'. |
' onchange="javascript:flip(this.form,'.$i.');">'); |
' onchange="javascript:flip(this.form,'.$i.');">'); |
foreach (@$d) { |
foreach my $option (@$d) { |
my ($value,$display,$defaultcol)=@{ $_ }; |
my ($value,$display,$defaultcol)=@{ $option }; |
$r->print('<option value="'.$value.'"'. |
$r->print('<option value="'.$value.'"'. |
($i eq $defaultcol ? ' selected="selected" ':'').'>'. |
($i eq $defaultcol ? ' selected="selected" ':'').'>'. |
$display.'</option>'); |
$display.'</option>'); |
} |
} |
$r->print('</select></td><td>'); |
$r->print('</select></td><td>'); |
if (defined($sone{$_})) { $r->print($sone{$_}."<br />\n"); } |
foreach my $line (0..2) { |
if (defined($stwo{$_})) { $r->print($stwo{$_}."<br />\n"); } |
if (defined($samples->[$line]{$key})) { |
if (defined($sthree{$_})) { $r->print($sthree{$_}."<br />\n"); } |
$r->print($samples->[$line]{$key}."<br />\n"); |
|
} |
|
} |
$r->print('</td></tr>'); |
$r->print('</td></tr>'); |
$i++; |
$i++; |
} |
} |