version 1.232, 2004/11/19 19:31:51
|
version 1.240, 2004/12/02 21:30:16
|
Line 375 sub selectstudent_link {
|
Line 375 sub selectstudent_link {
|
} |
} |
|
|
sub coursebrowser_javascript { |
sub coursebrowser_javascript { |
my ($domainfilter,$roleelement)=@_; |
my ($domainfilter)=@_; |
return (<<ENDSTDBRW); |
return (<<ENDSTDBRW); |
<script type="text/javascript" language="Javascript" > |
<script type="text/javascript" language="Javascript" > |
var extra_element = "$roleelement" |
|
var stdeditbrowser; |
var stdeditbrowser; |
function opencrsbrowser(formname,uname,udom,desc) { |
function opencrsbrowser(formname,uname,udom,desc,extra_element) { |
var url = '/adm/pickcourse?'; |
var url = '/adm/pickcourse?'; |
var filter; |
var filter; |
if (filter != null) { |
if (filter != null) { |
Line 397 sub coursebrowser_javascript {
|
Line 396 sub coursebrowser_javascript {
|
url += 'form=' + formname + '&cnumelement='+uname+ |
url += 'form=' + formname + '&cnumelement='+uname+ |
'&cdomelement='+udom+ |
'&cdomelement='+udom+ |
'&cnameelement='+desc; |
'&cnameelement='+desc; |
if (extra_element != '') { |
if (extra_element !=null && extra_element != '' && formname == 'rolechoice') { |
url += '&roleelement=$roleelement'; |
url += '&roleelement='+extra_element; |
|
if (domainfilter == null || domainfilter == '') { |
|
url += '&domainfilter='+extra_element; |
|
} |
} |
} |
var title = 'Course_Browser'; |
var title = 'Course_Browser'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
Line 411 ENDSTDBRW
|
Line 413 ENDSTDBRW
|
} |
} |
|
|
sub selectcourse_link { |
sub selectcourse_link { |
my ($form,$unameele,$udomele,$desc)=@_; |
my ($form,$unameele,$udomele,$desc,$extra_element)=@_; |
return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele. |
return "<a href='".'javascript:opencrsbrowser("'.$form.'","'.$unameele. |
'","'.$udomele.'","'.$desc.'");'."'>".&mt('Select Course')."</a>"; |
'","'.$udomele.'","'.$desc.'","'.$extra_element.'");'."'>".&mt('Select Course')."</a>"; |
} |
} |
|
|
=pod |
=pod |
Line 2283 sub get_student_view {
|
Line 2285 sub get_student_view {
|
if (defined($moreenv)) { |
if (defined($moreenv)) { |
%form=(%form,%{$moreenv}); |
%form=(%form,%{$moreenv}); |
} |
} |
if ($target eq 'tex') {$form{'grade_target'} = 'tex';} |
if (defined($target)) { $form{'grade_target'} = $target; } |
$feedurl=&Apache::lonnet::clutter($feedurl); |
$feedurl=&Apache::lonnet::clutter($feedurl); |
my $userview=&Apache::lonnet::ssi_body($feedurl,%form); |
my $userview=&Apache::lonnet::ssi_body($feedurl,%form); |
$userview=~s/\<body[^\>]*\>//gi; |
$userview=~s/\<body[^\>]*\>//gi; |
Line 2597 ENDROLE
|
Line 2599 ENDROLE
|
$font.'"><b>'.$title.'</b></font>'; |
$font.'"><b>'.$title.'</b></font>'; |
if ($customtitle) { |
if ($customtitle) { |
$titleinfo = $customtitle; |
$titleinfo = $customtitle; |
} |
} |
|
|
if ($ENV{'request.state'} eq 'construct') { |
if ($ENV{'request.state'} eq 'construct') { |
my ($uname,$thisdisfn)= |
my ($uname,$thisdisfn)= |
($ENV{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|); |
($ENV{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|); |
my $formaction='/priv/'.$uname.'/'.$thisdisfn; |
my $formaction='/priv/'.$uname.'/'.$thisdisfn; |
$formaction=~s/\/+/\//g; |
$formaction=~s/\/+/\//g; |
$titleinfo = '<form name="dirs" method="post" action="'.$formaction |
unless ($customtitle) { #this is for resources; directories have customtitle, and crumbs and select recent are created in lonpubdir.pm |
.'" target="_top">' |
my $parentpath = ''; |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$thisdisfn,'_top','/priv','',-1,1)."<br />" |
if ($thisdisfn =~ m-(.+/)[^/]*$-) { |
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
$parentpath = $1; |
.'</form>' |
} |
.&Apache::lonmenu::constspaceform(); |
$titleinfo = &Apache::loncommon::help_open_menu('','','','',3,'Authoring'). |
|
'<font face="Arial, Helvetica, sans-serif"><b>Construction Space</b>:</font> '. |
&Apache::lonhtmlcommon::store_recent('construct',$formaction,$formaction); |
'<form name="dirs" method="post" action="'.$formaction |
if ($thisdisfn!~m|/$|) { $forcereg=1; } |
.'" target="_top"><tt><b>' |
} |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."</b></tt><br />" |
|
.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()') |
|
.'</form>' |
|
.&Apache::lonmenu::constspaceform(); |
|
|
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', |
} |
$forcereg). |
$forcereg=1; |
'<table bgcolor="'.$pgbg.'" width="100%" border="0" cellspacing="3" cellpadding="3"><tr><td rowspan="3" bgcolor="'.$tabbg.'">'.$titleinfo.'</td>'.$roleinfo.'</tr></table>'; |
} |
|
my $titletable = '<table bgcolor="'.$pgbg.'" width="100%" border="0" '. |
|
'cellspacing="3" cellpadding="3">'. |
|
'<tr><td rowspan="3" bgcolor="'.$tabbg.'">'. |
|
$titleinfo.'</td>'.$roleinfo.'</tr></table>'; |
|
if ($ENV{'request.state'} eq 'construct') { |
|
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,'web',$forcereg,$titletable); |
|
} else { |
|
$bodytag .= &Apache::lonmenu::menubuttons($forcereg,'web',$forcereg). |
|
$titletable; |
|
} |
|
return $bodytag; |
} |
} |
|
|
# |
# |
Line 2683 sub get_users_function {
|
Line 2700 sub get_users_function {
|
|
|
############################################### |
############################################### |
|
|
|
=pod |
|
|
|
=item get_sections |
|
|
|
Determines all the sections for a course including |
|
sections with students and sections containing other roles. |
|
Incoming parameters: domain, course number, reference to |
|
section hash (keys to be section/group IDs), reference to |
|
array containing roles for which sections should be gathered |
|
(optional). If the fourth argument is undefined, sections |
|
are gathered for any role. |
|
|
|
Returns number of sections. |
|
|
|
=cut |
|
|
|
############################################### |
|
sub get_sections { |
|
my ($cdom,$cnum,$sectioncount,$possible_roles) = @_; |
|
if (!($cdom && $cnum)) { return 0; } |
|
my $cid = $cdom.'_'.$cnum; |
|
my $numsections = 0; |
|
|
|
if (!defined($possible_roles) || (grep/^st$/,@$possible_roles)) { |
|
my ($classlist) = &Apache::loncoursedata::get_classlist($cid,$cdom,$cnum); |
|
my $sec_index = &Apache::loncoursedata::CL_SECTION(); |
|
my $status_index = &Apache::loncoursedata::CL_STATUS(); |
|
while (my ($student,$data) = each %$classlist) { |
|
my ($section,$status) = ($data->[$sec_index], |
|
$data->[$status_index]); |
|
unless ($section eq '-1' || $section =~ /^\s*$/) { |
|
if (!defined($$sectioncount{$section})) { $numsections++; } |
|
$$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})/); |
|
if ($possible_roles && !(grep(/^$role$/,@$possible_roles))) { next; } |
|
my $section; |
|
if ($role eq 'cr' && |
|
$user =~ m-^$role/[^/]*/[^/]*/[^/]*:[^:]*:[^:]*:(\w+)-) { |
|
$section=$1; |
|
} |
|
if ($user =~ /^$role:[^:]*:[^:]*:(\w+)/) { $section=$1; } |
|
if (!defined($section) || $section eq '-1') { next; } |
|
if (!defined($$sectioncount{$section})) { $numsections++; } |
|
$$sectioncount{$section}++; |
|
} |
|
return $numsections; |
|
} |
|
|
|
|
sub get_posted_cgi { |
sub get_posted_cgi { |
my $r=shift; |
my $r=shift; |
|
|
Line 3289 they are plotted. If undefined, default
|
Line 3361 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 3800 sub escape_double {
|
Line 3875 sub escape_double {
|
# Escapes the last element of a full URL. |
# Escapes the last element of a full URL. |
sub escape_url { |
sub escape_url { |
my ($url) = @_; |
my ($url) = @_; |
my @urlslices = split(/\//, $url); |
my @urlslices = split(/\//, $url,-1); |
my $lastitem = &Apache::lonnet::escape(pop(@urlslices)); |
my $lastitem = &Apache::lonnet::escape(pop(@urlslices)); |
return join('/',@urlslices).'/'.$lastitem; |
return join('/',@urlslices).'/'.$lastitem; |
} |
} |