version 1.55, 2006/11/09 22:18:28
|
version 1.75, 2008/11/24 14:49:42
|
Line 35 use Apache::loncoursedata;
|
Line 35 use Apache::loncoursedata;
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::longroup; |
use Apache::longroup; |
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
use LONCAPA; |
|
|
sub handler { |
sub handler { |
Line 55 sub handler {
|
Line 54 sub handler {
|
my ($type,$title,$jscript,$multelement,$multiple,$roleelement, |
my ($type,$title,$jscript,$multelement,$multiple,$roleelement, |
$lastaction,$autosubmit,$submitopener); |
$lastaction,$autosubmit,$submitopener); |
|
|
# Get course type - Course or Non-standard course. |
# Get course type - Course or Non-standard Course. |
$type = $env{'form.type'}; |
$type = $env{'form.type'}; |
if (!defined($env{'form.type'})) { |
if (!defined($env{'form.type'})) { |
$type = 'Course'; |
$type = 'Course'; |
Line 73 sub handler {
|
Line 72 sub handler {
|
my $roledom = $env{'form.roleelement'}; |
my $roledom = $env{'form.roleelement'}; |
if ($roledom) { |
if ($roledom) { |
$roleelement = '<input type="hidden" name="roleelement" value="'.$roledom.'" />'; |
$roleelement = '<input type="hidden" name="roleelement" value="'.$roledom.'" />'; |
$submitopener = &Apache::lonroles::processpick(); |
$submitopener = &processpick(); |
$autosubmit = 'process_pick("'.$roledom.'")'; |
$autosubmit = 'process_pick("'.$roledom.'")'; |
} |
} |
|
|
my $onlyown = 0; |
my $onlyown = 0; |
# if called to assign course-based portfolio access control |
# if called to assign course-based portfolio access control |
if ((($env{'form.form'} eq 'portform') && ($env{'user.adv'}))) { |
if ((($env{'form.form'} eq 'portform') && (!$env{'user.adv'}))) { |
$onlyown = 1; |
$onlyown = 1; |
} |
} |
|
|
my %loaditem; |
my %loaditem; |
if ($env{'form.form'} eq 'cu' && $env{'form.pickedcourse'}) { |
if ((($env{'form.form'} eq 'cu') || ($env{'form.form'} eq 'studentform')) && |
|
($env{'form.pickedcourse'})) { |
$loaditem{'onload'} ="setSections()"; |
$loaditem{'onload'} ="setSections()"; |
} |
} |
$r->print(&Apache::loncommon::start_page($title,undef, |
$r->print(&Apache::loncommon::start_page($title,undef, |
Line 93 sub handler {
|
Line 93 sub handler {
|
|
|
if ($env{'form.form'} eq 'portform') { |
if ($env{'form.form'} eq 'portform') { |
$lastaction = 'document.courselist.submit()'; |
$lastaction = 'document.courselist.submit()'; |
} elsif ($env{'form.form'} eq 'cu') { |
} elsif ($env{'form.form'} eq 'cu' || ($env{'form.form'} eq 'studentform' && |
|
!$multiple)) { |
$lastaction = |
$lastaction = |
'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n". |
'document.courselist.pickedcourse.value = cdom+"_"+cname;'."\n". |
'document.courselist.submit();'; |
'document.courselist.submit();'; |
Line 102 sub handler {
|
Line 103 sub handler {
|
} |
} |
|
|
# if called to assign a role in a course to a user via CUSR |
# if called to assign a role in a course to a user via CUSR |
if ($env{'form.form'} eq 'cu') { |
if ($env{'form.form'} eq 'cu' || $env{'form.form'} eq 'studentform') { |
$r->print(&create_user_javascript($type)); |
$r->print(&create_user_javascript($type)); |
} |
} |
|
|
# print javascript functions for choosing a course |
# print javascript functions for choosing a course |
if ($env{'form.gosearch'} || $onlyown) { |
if ($env{'form.gosearch'} || $onlyown) { |
$r->print(&gochoose_javascript($type,$autosubmit,$lastaction)); |
$r->print(&gochoose_javascript($type,$multiple,$autosubmit,$lastaction)); |
} |
} |
$r->print('<script type="text/javascript">'.$jscript.'</script>'); |
$r->print('<script type="text/javascript">'.$jscript.'</script>'); |
$r->print($submitopener); |
$r->print($submitopener); |
|
|
# ------------------------------------------ Display of filters to limit search |
# ------------------------------------------ Display of filters to limit search |
my (%filter,%list); |
my $filter = {}; |
|
my $action = '/adm/pickcourse'; |
if (!$onlyown) { |
if (!$onlyown) { |
my $filterlist = ['domainfilter','descriptfilter', |
my $filterlist = ['domainfilter','descriptfilter', |
'instcodefilter','ownerfilter', |
'instcodefilter','ownerfilter', |
Line 125 sub handler {
|
Line 127 sub handler {
|
push(@{$filterlist},'coursefilter'); |
push(@{$filterlist},'coursefilter'); |
} |
} |
$r->print(&build_filters($filterlist,$type,$roleelement,$multelement, |
$r->print(&build_filters($filterlist,$type,$roleelement,$multelement, |
\%filter,\%list)); |
$filter,$action)); |
} |
} |
|
|
# ---------------------------------------------------------------- Get the data |
# ---------------------------------------------------------------- Get the data |
if ($env{'form.gosearch'} || $onlyown) { |
if ($env{'form.gosearch'} || $onlyown) { |
my %courses = &search_courses($r,$type,$onlyown,\%filter); |
my %courses = &search_courses($r,$type,$onlyown,$filter); |
&display_matched_courses($r,$type,$multiple,%courses); |
&display_matched_courses($r,$type,$multiple,$action,%courses); |
} |
} |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} |
} |
|
|
|
sub processpick { |
|
my $openerform = 'rolechoice'; |
|
if ($env{'form.form'} eq 'studentform') { |
|
$openerform = $env{'form.form'}; |
|
} |
|
my $process_pick = <<"ENDONE"; |
|
<script type="text/javascript"> |
|
function process_pick(dom) { |
|
var pickedCourse=opener.document.$openerform.$env{'form.cnumelement'}.value; |
|
var pickedDomain=opener.document.$openerform.$env{'form.cdomelement'}.value; |
|
var okDomain = 0; |
|
ENDONE |
|
if ($openerform eq 'rolechoice') { |
|
$process_pick .= <<"ENDTWO"; |
|
if (pickedDomain == dom) { |
|
if (pickedCourse != '') { |
|
var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse |
|
opener.document.title='Role selected. Please stand by.'; |
|
opener.status='Role selected. Please stand by.'; |
|
opener.document.rolechoice.newrole.value=courseTarget |
|
opener.document.rolechoice.submit(); |
|
} |
|
} |
|
else { |
|
alert("You may only use this screen to select courses in the current domain: "+dom+"\\nPlease return to the roles page window and click the 'Select Course' link for domain: "+pickedDomain+",\\n if you are a Domain Coordinator in that domain, and wish to become a Course Coordinator in a course in the domain"); |
|
} |
|
ENDTWO |
|
} else { |
|
$process_pick .= <<"ENDTHREE"; |
|
if (pickedDomain != dom) { |
|
alert("You may only use this screen to select courses in the current domain: "+dom+"\\nPlease return to the roles page window and click the 'Select Course' link for domain: "+pickedDomain+",\\n if you are a Domain Coordinator in that domain, and wish to become a Course Coordinator in a course in the domain"); |
|
return; |
|
} |
|
ENDTHREE |
|
} |
|
$process_pick .= " |
|
} |
|
|
|
</script> |
|
"; |
|
return $process_pick; |
|
} |
|
|
sub create_user_javascript { |
sub create_user_javascript { |
my ($type) = @_; |
my ($type) = @_; |
my $output; |
my $output; |
Line 166 function setSections() {
|
Line 211 function setSections() {
|
} |
} |
|
|
sub display_matched_courses { |
sub display_matched_courses { |
my ($r,$type,$multiple,%courses) = @_; |
my ($r,$type,$multiple,$action,%courses) = @_; |
my $action = '/adm/pickcourse'; |
|
if ($env{'form.form'} eq 'portform') { |
if ($env{'form.form'} eq 'portform') { |
$action = '/adm/portfolio'; |
$action = '/adm/portfolio'; |
} |
} |
|
my $numcourses = keys(%courses); |
$r->print('<form name="courselist" method="post" action="'.$action.'">'); |
$r->print('<form name="courselist" method="post" action="'.$action.'">'); |
|
if ($env{'form.form'} eq 'modifycourse') { |
|
if ($numcourses > 0) { |
|
my $cctitle = &Apache::lonnet::plaintext('cc',$type); |
|
my $dctitle = &Apache::lonnet::plaintext('dc'); |
|
my $ccrolechk = ' checked="checked" '; |
|
my $menuchk = ' '; |
|
if ($env{'form.prevphase'} ne '') { |
|
$ccrolechk = ' '; |
|
$menuchk = ' checked="checked" '; |
|
} |
|
$r->print( |
|
'<fieldset>' |
|
.'<legend>'.&mt('Action').'</legend>' |
|
.'<div class="LC_nobreak"><label>' |
|
.'<input type="radio" name="phase" value="ccrole"'.$ccrolechk.'/>' |
|
.' '.&mt('Enter the course with the role of [_1].',$cctitle) |
|
.'</label></div>' |
|
.'<div class="LC_nobreak"><label>' |
|
.'<input type="radio" name="phase" value="menu"'.$menuchk.'/> ' |
|
.&mt('View or modify course settings which only a [_1] may modify.',$dctitle) |
|
.'</label></div>' |
|
.'</fieldset>' |
|
.'<br />' |
|
); |
|
} |
|
} |
my %by_descrip; |
my %by_descrip; |
my $numcourses = keys(%courses); |
|
foreach my $course (keys(%courses)) { |
foreach my $course (keys(%courses)) { |
my $descr; |
my $descr; |
if ($courses{$course} =~ m/^([^:]*):/i) { |
if (ref($courses{$course}) eq 'HASH') { |
|
$descr = $courses{$course}{'description'}; |
|
} elsif ($courses{$course} =~ m/^([^:]*):/i) { |
$descr = &unescape($1); |
$descr = &unescape($1); |
} else { |
} else { |
$descr = &unescape($courses{$course}); |
$descr = &unescape($courses{$course}); |
Line 184 sub display_matched_courses {
|
Line 256 sub display_matched_courses {
|
my $description = $descr; |
my $description = $descr; |
push (@{$by_descrip{$description}}, $course); |
push (@{$by_descrip{$description}}, $course); |
} |
} |
|
|
if ($numcourses > 1 && $multiple) { |
if ($numcourses > 1 && $multiple) { |
$r->print('<input type="button" value="check all" |
$r->print('<input type="button" value="check all" |
onclick="javascript:checkAll(document.courselist.course_id)" /> |
onclick="javascript:checkAll(document.courselist.course_id)" /> |
Line 191 sub display_matched_courses {
|
Line 264 sub display_matched_courses {
|
onclick="javascript:uncheckAll(document.courselist.course_id)" /> |
onclick="javascript:uncheckAll(document.courselist.course_id)" /> |
<br /><br />'); |
<br /><br />'); |
} |
} |
|
|
|
if (%courses) { |
|
$r->print(&Apache::loncommon::start_data_table()); |
|
$r->print(&Apache::loncommon::start_data_table_header_row()); |
|
$r->print('<th>'.&mt('Select').'</th>' |
|
.'<th>'.&mt('Course Description').'</th>' |
|
.'<th>'.&mt('Domain').'</th>' |
|
.'<th>'.&mt('Course Code').'</th>' |
|
.'<th>'.&mt('Owner/Co-owner(s)').'</th>' |
|
.'<th>'.&mt('Type').'</th>' |
|
); |
|
$r->print(&Apache::loncommon::end_data_table_header_row()); |
|
} |
foreach my $description (sort { lc($a) cmp lc($b) } (keys(%by_descrip))) { |
foreach my $description (sort { lc($a) cmp lc($b) } (keys(%by_descrip))) { |
foreach my $course (@{$by_descrip{$description}}) { |
foreach my $course (@{$by_descrip{$description}}) { |
|
$r->print(&Apache::loncommon::start_data_table_row()); |
my $cleandesc=&HTML::Entities::encode($description,'<>&"'); |
my $cleandesc=&HTML::Entities::encode($description,'<>&"'); |
$cleandesc=~s/'/\\'/g; |
$cleandesc=~s/'/\\'/g; |
my ($cdom,$cnum)=split(/\_/,$course); |
my ($cdom,$cnum)=split(/\_/,$course); |
my ($descr,$instcode,$owner,$ttype) = split/:/,$courses{$course}; |
my ($descr,$instcode,$ttype,@owners); |
$r->print(&course_chooser($multiple,$cdom,$cnum,$cleandesc)); |
if (ref($courses{$course}) eq 'HASH') { |
$r->print($description.'('. |
$descr = $courses{$course}{'description'}; |
($Apache::lonnet::domaindescription{$cdom}? |
$instcode = $courses{$course}{'inst_code'}; |
$Apache::lonnet::domaindescription{$cdom}:$cdom).")"); |
$ttype = $courses{$course}{'type'}; |
unless ($instcode eq '') { |
push(@owners,&unescape($courses{$course}{'owner'})); |
$r->print(" - ".&unescape($instcode)); |
if (ref($courses{$course}{'co-owners'}) eq 'ARRAY') { |
|
foreach my $item (@{$courses{$course}{'co-owners'}}) { |
|
push(@owners,&unescape($item)); |
|
} |
|
} |
|
} else { |
|
my $singleowner; |
|
($descr,$instcode,$singleowner,$ttype)=split(/:/,$courses{$course}); |
|
push(@owners,&unescape($singleowner)); |
} |
} |
unless ($owner eq '') { |
my $ownerstr = join(', ',@owners); |
$r->print(", owner - ".&unescape($owner)); |
$r->print('<td>'.&course_chooser($multiple,$cdom,$cnum,$cleandesc).'</td>'); |
|
$r->print('<td>'.$description.'</td>'); |
|
$r->print('<td>'); |
|
$r->print(&Apache::lonnet::domain($cdom,'description')? |
|
$cdom.' ('.&Apache::lonnet::domain($cdom,'description').')':$cdom); |
|
$r->print('</td>'); |
|
$r->print('<td>'); |
|
if ($instcode ne '') { |
|
$r->print(&unescape($instcode)); |
|
} else { |
|
$r->print(' '); |
} |
} |
unless ($ttype eq '') { |
$r->print('</td>'); |
$r->print('('.&unescape($ttype).')'); |
$r->print('<td>'.$ownerstr.'</td>'); |
|
$r->print('<td>'); |
|
if ($ttype ne '') { |
|
$r->print(&mt(&unescape($ttype))); |
|
} else { |
|
$r->print(' '); |
} |
} |
|
$r->print('</td>'); |
if ($multiple) { $r->print("</label>\n"); } |
if ($multiple) { $r->print("</label>\n"); } |
$r->print("<br />\n"); |
$r->print(&Apache::loncommon::end_data_table_row()); |
|
# $r->print("<br />\n"); |
} |
} |
} |
} |
|
if (%courses) { |
|
$r->print(&Apache::loncommon::end_data_table()); |
|
} |
|
|
if (!%courses) { |
if (!%courses) { |
$r->print(&mt('None found')); |
$r->print(&mt('None found')); |
} elsif ($multiple) { |
} elsif ($multiple) { |
$r->print('<input type="button" value="Submit" onClick="gochoose('."'','','',1)".'" />'); |
$r->print('<input type="button" value="Submit" onClick="gochoose('."'','','')".'" />'); |
} |
} |
$r->print('<input type="hidden" name="form" value="'.$env{'form.form'}.'" />'. |
$r->print('<input type="hidden" name="form" value="'.$env{'form.form'}.'" />'. |
"\n".'<input type="hidden" name="pickedcourse" value="" />'."\n". |
"\n".'<input type="hidden" name="pickedcourse" value="" />'."\n". |
'<input type="hidden" name="cnumelement" value="'.$env{'form.cnumelement'}.'" />'."\n". |
|
'<input type="hidden" name="cdomelement" value="'.$env{'form.cdomelement'}.'" />'."\n". |
|
'<input type="hidden" name="type" value="'.$type.'" />'."\n"); |
'<input type="hidden" name="type" value="'.$type.'" />'."\n"); |
if ((exists($env{'form.roleelement'})) && ($env{'form.form'} eq 'rolechoice')) { |
if ((exists($env{'form.roleelement'})) && ($env{'form.form'} eq 'rolechoice')) { |
$r->print('<input type="hidden" name="roleelement" value="'. |
$r->print('<input type="hidden" name="roleelement" value="'. |
Line 233 sub display_matched_courses {
|
Line 347 sub display_matched_courses {
|
$r->print('<input type="hidden" name="cdom" value="" />'); |
$r->print('<input type="hidden" name="cdom" value="" />'); |
$r->print('<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />'); |
$r->print('<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />'); |
$r->print('<input type="hidden" name="action" value="rolepicker" />'); |
$r->print('<input type="hidden" name="action" value="rolepicker" />'); |
|
} elsif ($env{'form.form'} eq 'modifycourse') { |
|
$r->print(&Apache::lonhtmlcommon::echo_form_input(['phase','pickedcourse','type','form'])); |
|
} else { |
|
$r->print('<input type="hidden" name="cnumelement" value="'. |
|
$env{'form.cnumelement'}.'" />'."\n". |
|
'<input type="hidden" name="cdomelement" value="'. |
|
$env{'form.cdomelement'}.'" />'."\n"); |
} |
} |
$r->print("</form>\n"); |
$r->print("</form>\n"); |
return; |
return; |
Line 246 sub multiples_tag {
|
Line 367 sub multiples_tag {
|
} |
} |
|
|
sub build_filters { |
sub build_filters { |
my ($filterlist,$type,$roleelement,$multelement,$filter) = @_; |
my ($filterlist,$type,$roleelement,$multelement,$filter,$action, |
|
$caller) = @_; |
my $list; |
my $list; |
|
my $formname; |
|
if (defined($env{'form.form'})) { |
|
$formname = $env{'form.form'}; |
|
} else { |
|
$formname = $caller; |
|
} |
my ($domainselectform,$sincefilterform,$ownerdomselectform, |
my ($domainselectform,$sincefilterform,$ownerdomselectform, |
$instcodeform,$typeselectform); |
$instcodeform,$typeselectform); |
foreach my $item (@{$filterlist}) { |
foreach my $item (@{$filterlist}) { |
$filter->{$item} = $env{'form.'.$item}; |
$filter->{$item} = $env{'form.'.$item}; |
if ($item ne 'descriptfilter' && $item ne 'instcodefilter') { |
if ($item ne 'descriptfilter' && $item ne 'instcodefilter') { |
$filter->{$item} =~ s/\W//g; |
if ($item eq 'domainfilter' || $item eq 'ownerdomfilter') { |
|
$filter->{$item} = &LONCAPA::clean_domain($filter->{$item}); |
|
} elsif ($item eq 'coursefilter') { |
|
$filter->{$item} = &LONCAPA::clean_courseid($filter->{$item}); |
|
} elsif ($item eq 'ownerfilter') { |
|
$filter->{$item} = &LONCAPA::clean_username($filter->{$item}); |
|
} else { |
|
$filter->{$item} =~ s/\W//g; |
|
} |
if (!$filter->{$item}) { |
if (!$filter->{$item}) { |
$filter->{$item} = ''; |
$filter->{$item} = ''; |
} |
} |
} |
} |
if ($item eq 'domainfilter') { |
if ($item eq 'domainfilter') { |
|
my $allow_blank = 1; |
|
if ($formname eq 'portform') { |
|
$filter->{$item} ||= $env{'user.domain'}; |
|
$allow_blank=0; |
|
} elsif ($formname eq 'studentform') { |
|
$filter->{$item} ||= $env{'request.role.domain'}; |
|
$allow_blank=0; |
|
} |
$domainselectform = |
$domainselectform = |
&Apache::loncommon::select_dom_form($filter->{$item},'domainfilter',1); |
&Apache::loncommon::select_dom_form($filter->{$item}, |
|
'domainfilter', |
|
$allow_blank); |
} elsif ($item eq 'ownerdomfilter') { |
} elsif ($item eq 'ownerdomfilter') { |
$ownerdomselectform = |
$ownerdomselectform = |
&Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1); |
&Apache::loncommon::select_dom_form($filter->{$item},'ownerdomfilter',1); |
Line 286 sub build_filters {
|
Line 432 sub build_filters {
|
'15552000','31104000'])); |
'15552000','31104000'])); |
|
|
my %lt = ( |
my %lt = ( |
'cac' => &mt('[_1] Activity',$type), |
'cac' => &mt("$type Activity"), |
'cde' => &mt('[_1] Description',$type), |
'cde' => &mt("$type Description"), |
'cdo' => &mt('[_1] Domain',$type), |
'cdo' => &mt("$type Domain"), |
'cin' => &mt('Course Institutional Code'), |
'cin' => &mt('Course Institutional Code'), |
'cow' => &mt("[_1] Owner's Username",$type), |
'cow' => &mt("$type Owner's Username"), |
'cod' => &mt("[_1] Owner's Domain", $type), |
'cod' => &mt("$type Owner's Domain"), |
'cog' => &mt('Course Type') |
'cog' => &mt('Course Type') |
); |
); |
|
|
$typeselectform = '<select name="type" size="1"'; |
$typeselectform = '<select name="type" size="1">'."\n"; |
$typeselectform .= ">\n"; |
|
if ($type eq 'Course') { |
if ($type eq 'Course') { |
$instcodeform = $lt{'cin'}.': <input type="text" name="instcodefilter" |
$instcodeform = |
size="10" value="'.$list->{'instcodefilter'}.'" /><br />'; |
'<input type="text" name="instcodefilter" size="10" value="'. |
} |
$list->{'instcodefilter'}.'" />'; |
foreach my $posstype ('Course','Non-standard course') { |
} |
$typeselectform.='<option value="'.$posstype.'" "'. |
foreach my $posstype ('Course','Non-standard Course') { |
($posstype eq $type ? 'selected="selected" ' : ''). ">$posstype</option>\n"; |
$typeselectform.='<option value="'.$posstype.'"'. |
|
($posstype eq $type ? ' selected="selected" ' : ''). ">".&mt($posstype)."</option>\n"; |
} |
} |
$typeselectform.="</select>"; |
$typeselectform.="</select>"; |
my $name_input; |
my $output = qq| |
if ($env{'form.cnameelement'} ne '') { |
<form method="post" name="filterpicker" action="$action"> |
$name_input ='<input type="hidden" name="cnameelement" value="'. |
<input type="hidden" name="form" value="$formname" /> |
$env{'form.cnameelement'}.'" />'; |
|; |
} |
if ($formname eq 'modifycourse') { |
my $courseidtag; |
$output .= '<input type="hidden" name="phase" value="courselist" />'."\n". |
if (exists($filter->{'coursefilter'})) { |
'<input type="hidden" name="prevphase" value="'. |
$courseidtag=&mt('LON-CAPA course ID'). |
$env{'form.prevphase'}.'" />'."\n"; |
'<input type="text" name="coursefilter" size="25" value="'. $list->{'coursefilter'}.'" /><br />'; |
} else { |
} |
my $name_input; |
my $output = <<"END"; |
if ($env{'form.cnameelement'} ne '') { |
<form method="post" name="filterpicker" action="/adm/pickcourse"> |
$name_input = '<input type="hidden" name="cnameelement" value="'. |
|
$env{'form.cnameelement'}.'" />'; |
|
} |
|
$output .= qq| |
<input type="hidden" name="cnumelement" value="$env{'form.cnumelement'}" /> |
<input type="hidden" name="cnumelement" value="$env{'form.cnumelement'}" /> |
<input type="hidden" name="cdomelement" value="$env{'form.cdomelement'}" /> |
<input type="hidden" name="cdomelement" value="$env{'form.cdomelement'}" /> |
$name_input |
$name_input |
<input type="hidden" name="form" value="$env{'form.form'}" /> |
|
$roleelement |
$roleelement |
$multelement |
$multelement |
$lt{'cac'}: $sincefilterform |
|; |
<br /> |
if ($formname eq 'portform') { |
$lt{'cdo'}: $domainselectform |
$output .= '<input type="hidden" name="setroles" value="'.$env{'form.setroles'}.'" />'; |
<br /> |
} |
$lt{'cog'}: $typeselectform |
} |
<br /> |
|
$instcodeform |
$output .= "<br />\n".&Apache::lonhtmlcommon::start_pick_box(); |
$lt{'cow'}: |
if ($sincefilterform) { |
<input type="text" name="ownerfilter" size="10" value="$list->{'ownerfilter'}" /> |
$output .= &Apache::lonhtmlcommon::row_title($lt{'cac'}) |
<br /> |
.$sincefilterform |
$lt{'cod'}: $ownerdomselectform |
.&Apache::lonhtmlcommon::row_closure(); |
<br /> |
} |
$courseidtag |
if ($domainselectform) { |
$lt{'cde'}: |
$output .= &Apache::lonhtmlcommon::row_title($lt{'cdo'}) |
<input type="text" name="descriptfilter" size="40" value="$list->{'descriptfilter'}" /> |
.$domainselectform |
<p><input type="submit" name="gosearch" value="Search" /></p> |
.&Apache::lonhtmlcommon::row_closure(); |
</form> |
} |
<hr /> |
if ($typeselectform) { |
END |
$output .= &Apache::lonhtmlcommon::row_title($lt{'cog'}) |
|
.$typeselectform |
|
.&Apache::lonhtmlcommon::row_closure(); |
|
} |
|
if ($instcodeform) { |
|
$output .= &Apache::lonhtmlcommon::row_title($lt{'cin'}) |
|
.$instcodeform |
|
.&Apache::lonhtmlcommon::row_closure(); |
|
} |
|
if (exists($filter->{'ownerfilter'})) { |
|
$output .= &Apache::lonhtmlcommon::row_title($lt{'cow'}) |
|
.'<input type="text" name="ownerfilter" size="10" value="' |
|
.$list->{'ownerfilter'}.'" />' |
|
.&Apache::lonhtmlcommon::row_closure() |
|
.&Apache::lonhtmlcommon::row_title($lt{'cod'}) |
|
.$ownerdomselectform |
|
.&Apache::lonhtmlcommon::row_closure(); |
|
} |
|
if (exists($filter->{'coursefilter'})) { |
|
$output .= &Apache::lonhtmlcommon::row_title(&mt('LON-CAPA course ID')) |
|
.'<input type="text" name="coursefilter" size="25" value="' |
|
.$list->{'coursefilter'}.'" />' |
|
.&Apache::lonhtmlcommon::row_closure(); |
|
} |
|
if (exists($filter->{'descriptfilter'})) { |
|
$output .= &Apache::lonhtmlcommon::row_title($lt{'cde'}) |
|
.'<input type="text" name="descriptfilter" size="40" value="' |
|
.$list->{'descriptfilter'}.'" />' |
|
.&Apache::lonhtmlcommon::row_closure(1); |
|
} |
|
$output .= &Apache::lonhtmlcommon::end_pick_box(); |
|
$output .= '<p><input type="submit" name="gosearch" value="'. |
|
&mt('Search').'" /></p>'."\n".'</form>'."\n".'<hr />'."\n"; |
return $output; |
return $output; |
} |
} |
|
|
Line 350 sub search_courses {
|
Line 530 sub search_courses {
|
my ($r,$type,$onlyown,$filter) = @_; |
my ($r,$type,$onlyown,$filter) = @_; |
my %courses; |
my %courses; |
if (!$onlyown) { |
if (!$onlyown) { |
$r->print(&mt('Searching').' ...<br /> <br />'); |
$r->print(&mt('Searching ...').'<br /> <br />'); |
$r->rflush(); |
$r->rflush(); |
if (($filter->{'ownerfilter'} ne '') || |
if (($filter->{'ownerfilter'} ne '') || |
($filter->{'ownerdomfilter'} ne '')) { |
($filter->{'ownerdomfilter'} ne '')) { |
Line 376 sub search_courses {
|
Line 556 sub search_courses {
|
undef,undef,$type); |
undef,undef,$type); |
} else { |
} else { |
$r->print('<br />'); |
$r->print('<br />'); |
foreach my $cid (sort(&Apache::loncommon::findallcourses())) { |
my %coursehash = &Apache::loncommon::findallcourses(); |
$courses{$cid} = $env{'course.'.$cid.'.description'}; |
foreach my $cid (sort(keys(%coursehash))) { |
|
$courses{$cid}{'description'} = $env{'course.'.$cid.'.description'}; |
} |
} |
} |
} |
return %courses; |
return %courses; |
Line 389 sub course_chooser {
|
Line 570 sub course_chooser {
|
if ($multiple) { |
if ($multiple) { |
$output = '<label><input type="checkbox" name="course_id" value="'.$cdom.'_'.$cnum.'" />'."\n"; |
$output = '<label><input type="checkbox" name="course_id" value="'.$cdom.'_'.$cnum.'" />'."\n"; |
} else { |
} else { |
$output = '<input type="button" value="Select" onClick="gochoose('. |
$output = '<input type="button" value="'.&mt('Select').'" onClick="gochoose('. |
"'".$cnum."','".$cdom."','".$cleandesc."')".'" />'."\n"; |
"'".$cnum."','".$cdom."','".$cleandesc."')".'" />'."\n"; |
} |
} |
return $output; |
return $output; |
} |
} |
|
|
sub gochoose_javascript { |
sub gochoose_javascript { |
my ($type,$autosubmit,$lastaction) = @_; |
my ($type,$multiple,$autosubmit,$lastaction) = @_; |
my %elements = ( |
my %elements = ( |
'Course' => { |
'Course' => { |
name => 'coursepick', |
name => 'coursepick', |
total => 'coursetotal', |
total => 'coursetotal', |
list => 'courselist', |
list => 'courselist', |
}, |
}, |
'Non-standard course' => { |
'Non-standard Course' => { |
name => 'grouppick', |
name => 'grouppick', |
total => 'grouptotal', |
total => 'grouptotal', |
list => 'grouplist', |
list => 'grouplist', |
}, |
}, |
); |
); |
my $name_code; |
my $output .= qq| |
if ($env{'form.cnameelement'} ne '') { |
|
$name_code = 'opener.document.'.$env{'form.form'}.'.'. |
|
$env{'form.cnameelement'}.'.value=cdesc;'; |
|
} |
|
my $output .= <<"ENDSCRIPT"; |
|
<script type="text/javascript"> |
<script type="text/javascript"> |
function gochoose(cname,cdom,cdesc,multiple,caller) { |
function gochoose(cname,cdom,cdesc) { |
var openerForm = "$env{'form.form'}"; |
var openerForm = "$env{'form.form'}"; |
courseCount = 0; |
courseCount = 0; |
var courses = ''; |
var courses = ''; |
if (multiple) { |
|; |
if (typeof(document.courselist.course_id.length) == 'undefined') { |
if ($multiple) { |
// only 1 course checkbox was created |
$output .= <<"ENDSCRIPT"; |
if (document.courselist.course_id.checked) { |
courseCount = 0; |
courses = courses + document.courselist.course_id.value + "&&"; |
var courses = ''; |
|
if (typeof(document.courselist.course_id.length) == 'undefined') { |
|
// only 1 course checkbox was created |
|
if (document.courselist.course_id.checked) { |
|
courses = courses + document.courselist.course_id.value + "&&"; |
|
courseCount ++; |
|
} |
|
} else { |
|
for (var j=0; j<document.courselist.course_id.length; j++) { |
|
if (document.courselist.course_id[j].checked) { |
|
courses = courses + document.courselist.course_id[j].value + "&&"; |
courseCount ++; |
courseCount ++; |
} |
} |
|
} |
|
} |
|
opener.document.$env{'form.form'}.$elements{$type}{'total'}.value = courseCount; |
|
if (typeof(opener.document.$env{'form.form'}.$elements{$type}{'name'}.length) == |
|
'undefined') { |
|
if (opener.document.$env{'form.form'}.$elements{$type}{'name'}.value == 'specific') { |
|
opener.document.$env{'form.form'}.$elements{$type}{'name'}.checked = true; |
} else { |
} else { |
for (var j=0; j<document.courselist.course_id.length; j++) { |
opener.document.$env{'form.form'}.$elements{$type}{'name'}.checked = false; |
if (document.courselist.course_id[j].checked) { |
|
courses = courses + document.courselist.course_id[j].value + "&&"; |
|
courseCount ++; |
|
} |
|
} |
|
} |
} |
opener.document.$env{'form.form'}.$elements{$type}{'total'}.value = courseCount; |
} else { |
if (typeof(opener.document.$env{'form.form'}.$elements{$type}{'name'}.length) == |
for (var j=0; j<opener.document.$env{'form.form'}.$elements{$type}{'name'}.length; j++) { |
'undefined') { |
if (opener.document.$env{'form.form'}.$elements{$type}{'name'}\[j].value == 'specific') { |
if (opener.document.$env{'form.form'}.$elements{$type}{'name'}.value == 'specific') { |
opener.document.$env{'form.form'}.$elements{$type}{'name'}\[j].checked = true; |
opener.document.$env{'form.form'}.$elements{$type}{'name'}.checked = true; |
|
} else { |
} else { |
opener.document.$env{'form.form'}.$elements{$type}{'name'}.checked = false; |
opener.document.$env{'form.form'}.$elements{$type}{'name'}\[j].checked = false; |
} |
|
} else { |
|
for (var j=0; j<opener.document.$env{'form.form'}.$elements{$type}{'name'}.length; j++) { |
|
if (opener.document.$env{'form.form'}.$elements{$type}{'name'}\[j].value == 'specific') { |
|
opener.document.$env{'form.form'}.$elements{$type}{'name'}\[j].checked = true; |
|
} else { |
|
opener.document.$env{'form.form'}.$elements{$type}{'name'}\[j].checked = false; |
|
} |
|
} |
} |
} |
} |
if (courseCount > 0) { |
} |
courses = courses.substr(0,courses.length-2); |
if (courseCount > 0) { |
opener.document.$env{'form.form'}.$elements{$type}{'list'}.value = courses; |
courses = courses.substr(0,courses.length-2); |
} |
opener.document.$env{'form.form'}.$elements{$type}{'list'}.value = courses; |
|
} |
|
ENDSCRIPT |
} else { |
} else { |
|
my $name_code; |
|
if ($env{'form.cnameelement'} ne '') { |
|
$name_code = 'opener.document.'.$env{'form.form'}.'.'. |
|
$env{'form.cnameelement'}.'.value=cdesc;'; |
|
} |
|
$output .= qq| |
$name_code |
$name_code |
opener.document.$env{'form.form'}.$env{'form.cnumelement'}.value=cname; |
opener.document.$env{'form.form'}.$env{'form.cnumelement'}.value=cname; |
var slct=opener.document.$env{'form.form'}.$env{'form.cdomelement'}; |
var slct=opener.document.$env{'form.form'}.$env{'form.cdomelement'}; |
Line 469 function gochoose(cname,cdom,cdesc,multi
|
Line 656 function gochoose(cname,cdom,cdesc,multi
|
if (slct.options[i].value==cdom) { slct.selectedIndex=i; } |
if (slct.options[i].value==cdom) { slct.selectedIndex=i; } |
} |
} |
} |
} |
|
|; |
} |
} |
|
$output .= qq| |
if (openerForm == 'portform') { |
if (openerForm == 'portform') { |
document.courselist.cnum.value = cname; |
document.courselist.cnum.value = cname; |
document.courselist.cdom.value = cdom; |
document.courselist.cdom.value = cdom; |
Line 478 function gochoose(cname,cdom,cdesc,multi
|
Line 667 function gochoose(cname,cdom,cdesc,multi
|
$lastaction |
$lastaction |
} |
} |
</script> |
</script> |
ENDSCRIPT |
|; |
return $output; |
return $output; |
} |
} |
|
|
Line 512 Course Activity - how recently was cours
|
Line 701 Course Activity - how recently was cours
|
Course Domain - the domain of the course |
Course Domain - the domain of the course |
|
|
=item * |
=item * |
Course Type - Course or Non-standard course |
Course Type - Course or Non-standard Course |
|
|
=item * |
=item * |
Course Institutional Code - the institutional identifier assigned to the course |
Course Institutional Code - the institutional identifier assigned to the course |
Line 565 Following selection, and/or submission,
|
Line 754 Following selection, and/or submission,
|
X<create_user_javascript()> |
X<create_user_javascript()> |
B<create_user_javascript($type)>: |
B<create_user_javascript($type)>: |
|
|
Input: 1 - $type - the course type - Course or Non-standard course |
Input: 1 - $type - the course type - Course or Non-standard Course |
|
|
Output: 1 - $output - javascript wrapped in E<lt>scriptE<gt>E<lt>/scriptE<gt> tags |
Output: 1 - $output - javascript wrapped in E<lt>scriptE<gt>E<lt>/scriptE<gt> tags |
|
|
Line 576 javascript code for reporting selected s
|
Line 765 javascript code for reporting selected s
|
|
|
=item * |
=item * |
X<display_matched_courses()> |
X<display_matched_courses()> |
B<display_matched_courses($r,$type,$multiple,%courses)>: |
B<display_matched_courses($r,$type,$multiple,$action,%courses)>: |
|
|
Input: 4 - request object, course type, multiple (0 or 1), hash of courses. |
Input: 5 - request object, course type, multiple (0 or 1), form action; hash of courses. |
|
|
Output: 0 |
Output: 0 |
|
|
Line 597 Side Effects: None
|
Line 786 Side Effects: None
|
|
|
=item * |
=item * |
X<build_filters()> |
X<build_filters()> |
B<build_filters($filterlist,$type,$roleelement,$multelement,$filter)>: |
B<build_filters($filterlist,$type,$roleelement,$multelement,$filter,$action)>: |
|
|
|
|
Input: 5 - anonymous array of search criteria; course type; $roleelement ; $multelement ; anonymous hash of criteria and their values. |
Input: 6 - anonymous array of search criteria; course type; $roleelement ; $multelement ; anonymous hash of criteria and their values; form action. |
|
|
Output: 1 - $output - HTML for display of search criteria, and hidden form elements. |
Output: 1 - $output - HTML for display of search criteria, and hidden form elements. |
|
|
Line 631 Side Effects: None
|
Line 820 Side Effects: None
|
|
|
=item * |
=item * |
X<gochoose_javascript()> |
X<gochoose_javascript()> |
B<gochoose_javascript($type,$autosubmit,$lastaction)>: |
B<gochoose_javascript($type,$multiple,$autosubmit,$lastaction)>: |
|
|
Input: 3 - course type; in context of DC selecting a CC role in a course: javascript code from Apache::lonroles::processpick(); final action to take after user chooses course(s): either close window, or submit form for display of next page etc. |
Input: 4 - course type; single (0) or multiple courses (1); in context of DC selecting a CC role in a course: javascript code from &processpick(); final action to take after user chooses course(s): either close window, or submit form for display of next page etc. |
|
|
Output: 1 $output - javascript wrapped in E<lt>scriptE<gt>E<lt>/scriptE<gt> tags |
Output: 1 $output - javascript wrapped in E<lt>scriptE<gt>E<lt>/scriptE<gt> tags |
|
|