version 1.399, 2008/05/31 23:53:18
|
version 1.406, 2008/08/28 03:04:41
|
Line 1010 sub extractResourceInformation {
|
Line 1010 sub extractResourceInformation {
|
$$mapp{$mapid}=$$mapp{$id}; |
$$mapp{$mapid}=$$mapp{$id}; |
$$allmaps{$mapid}=$$mapp{$id}; |
$$allmaps{$mapid}=$$mapp{$id}; |
if ($mapid eq '1') { |
if ($mapid eq '1') { |
$$maptitles{$mapid}='Main Course Documents'; |
$$maptitles{$mapid}=&mt('Main Course Documents'); |
} else { |
} else { |
$$maptitles{$mapid}= |
$$maptitles{$mapid}= |
&Apache::lonnet::gettitle($$mapp{$id}); |
&Apache::lonnet::gettitle($$mapp{$id}); |
Line 1137 sub partmenu {
|
Line 1137 sub partmenu {
|
my ($r,$allparts,$psprt)=@_; |
my ($r,$allparts,$psprt)=@_; |
$r->print('<select multiple name="psprt" size="8">'); |
$r->print('<select multiple name="psprt" size="8">'); |
$r->print('<option value="all"'); |
$r->print('<option value="all"'); |
$r->print(' selected') unless (@{$psprt}); |
$r->print(' selected="selected"') unless (@{$psprt}); |
$r->print('>'.&mt('All Parts').'</option>'); |
$r->print('>'.&mt('All Parts').'</option>'); |
my %temphash=(); |
my %temphash=(); |
foreach (@{$psprt}) { $temphash{$_}=1; } |
foreach (@{$psprt}) { $temphash{$_}=1; } |
Line 1147 sub partmenu {
|
Line 1147 sub partmenu {
|
unless ($tempkey =~ /\./) { |
unless ($tempkey =~ /\./) { |
$r->print('<option value="'.$tempkey.'"'); |
$r->print('<option value="'.$tempkey.'"'); |
if ($$psprt[0] eq "all" || $temphash{$tempkey}) { |
if ($$psprt[0] eq "all" || $temphash{$tempkey}) { |
$r->print(' selected'); |
$r->print(' selected="selected"'); |
} |
} |
$r->print('>'.$$allparts{$tempkey}.'</option>'); |
$r->print('>'.$$allparts{$tempkey}.'</option>'); |
} |
} |
Line 1268 sub mapmenu {
|
Line 1268 sub mapmenu {
|
$r->print('<option value="all">'.&mt('All Maps or Folders').'</option>'); |
$r->print('<option value="all">'.&mt('All Maps or Folders').'</option>'); |
foreach (sort {$$allmaps{$a} cmp $$allmaps{$b}} keys %{$allmaps}) { |
foreach (sort {$$allmaps{$a} cmp $$allmaps{$b}} keys %{$allmaps}) { |
$r->print('<option value="'.$_.'"'); |
$r->print('<option value="'.$_.'"'); |
if (($pschp eq $_)) { $r->print(' selected'); } |
if (($pschp eq $_)) { $r->print(' selected="selected"'); } |
$r->print('>'.$$maptitles{$_}.($$allmaps{$_}!~/^uploaded/?' ['.$$allmaps{$_}.']':'').'</option>'); |
$r->print('>'.$$maptitles{$_}.($$allmaps{$_}!~/^uploaded/?' ['.$$allmaps{$_}.']':'').'</option>'); |
} |
} |
$r->print("</select>"); |
$r->print("</select>"); |
Line 1282 sub levelmenu {
|
Line 1282 sub levelmenu {
|
foreach (reverse sort keys %{$alllevs}) { |
foreach (reverse sort keys %{$alllevs}) { |
$r->print('<option value="'.$$alllevs{$_}.'"'); |
$r->print('<option value="'.$$alllevs{$_}.'"'); |
if ($parmlev eq $$alllevs{$_}) { |
if ($parmlev eq $$alllevs{$_}) { |
$r->print(' selected'); |
$r->print(' selected="selected"'); |
} |
} |
$r->print('>'.$_.'</option>'); |
$r->print('>'.&mt($_).'</option>'); |
} |
} |
$r->print("</select>"); |
$r->print("</select>"); |
} |
} |
Line 1300 sub sectionmenu {
|
Line 1300 sub sectionmenu {
|
$r->print(' <option value="'.$s.'"'); |
$r->print(' <option value="'.$s.'"'); |
foreach (@{$selectedsections}) { |
foreach (@{$selectedsections}) { |
if ($s eq $_) { |
if ($s eq $_) { |
$r->print(' selected'); |
$r->print(' selected="selected"'); |
last; |
last; |
} |
} |
} |
} |
Line 1319 sub groupmenu {
|
Line 1319 sub groupmenu {
|
$r->print(' <option value="'.$group.'"'); |
$r->print(' <option value="'.$group.'"'); |
foreach (@{$selectedgroups}) { |
foreach (@{$selectedgroups}) { |
if ($group eq $_) { |
if ($group eq $_) { |
$r->print(' selected'); |
$r->print(' selected="selected"'); |
last; |
last; |
} |
} |
} |
} |
Line 1881 ENDTABLEHEADFOUR
|
Line 1881 ENDTABLEHEADFOUR
|
#---------------------------------------------------- print header information |
#---------------------------------------------------- print header information |
my $foldermap=&mt($maptitle=~/^uploaded/?'Folder':'Map'); |
my $foldermap=&mt($maptitle=~/^uploaded/?'Folder':'Map'); |
my $showtitle=$maptitles{$maptitle}.($maptitle!~/^uploaded/?' ['.$maptitle.']':''); |
my $showtitle=$maptitles{$maptitle}.($maptitle!~/^uploaded/?' ['.$maptitle.']':''); |
$r->print(<<ENDMAPONE); |
my $tmp=""; |
<center><h4> |
|
Set Defaults for All Resources in $foldermap<br /> |
|
<font color="red"><i>$showtitle</i></font><br /> |
|
Specifically for |
|
ENDMAPONE |
|
if ($uname) { |
if ($uname) { |
my $person=&Apache::loncommon::plainname($uname,$udom); |
my $person=&Apache::loncommon::plainname($uname,$udom); |
$r->print(&mt("User")." <font color=\"red\"><i>$uname \($person\) </i></font> ". |
$tmp.=&mt("User")." <font color=\"red\"><i>$uname \($person\) </i></font> ". |
&mt('in')." \n"); |
&mt('in')." \n"; |
} else { |
} else { |
$r->print("<font color=\"red\"><i>".&mt('all').'</i></font> '.&mt('users in')." \n"); |
$tmp.="<font color=\"red\"><i>".&mt('all').'</i></font> '.&mt('users in')." \n"; |
} |
} |
if ($cgroup) { |
if ($cgroup) { |
$r->print(&mt("Group")." <font color=\"red\"><i>$cgroup". |
$tmp.=&mt("Group")." <font color=\"red\"><i>$cgroup". |
"</i></font> ".&mt('of')." \n"); |
"</i></font> ".&mt('of')." \n"; |
$csec = ''; |
$csec = ''; |
} elsif ($csec) { |
} elsif ($csec) { |
$r->print(&mt("Section")." <font color=\"red\"><i>$csec". |
$tmp.=&mt("Section")." <font color=\"red\"><i>$csec". |
"</i></font> ".&mt('of')." \n"); |
"</i></font> ".&mt('of')." \n"; |
} |
} |
$r->print("<font color=\"red\"><i>$coursename</i></font><br />"); |
$r->print('<div align="center"><h4>' |
$r->print("</h4>\n"); |
.&mt('Set Defaults for All Resources in [_1]Specifically for [_2][_3]' |
|
,$foldermap.'<br /><font color="red"><i>'.$showtitle.'</i></font><br />' |
|
,$tmp |
|
,'<font color="red"><i>'.$coursename.'</i></font>' |
|
) |
|
."<br /></h4>\n" |
|
); |
#---------------------------------------------------------------- print table |
#---------------------------------------------------------------- print table |
$r->print('<p><table border="2">'); |
$r->print('<p><table border="2">'); |
$r->print('<tr><th>'.&mt('Parameter Name').'</th>'); |
$r->print('<tr><th>'.&mt('Parameter Name').'</th>'); |
Line 1916 ENDMAPONE
|
Line 1917 ENDMAPONE
|
\%type,\%display,$defbgone,$defbgtwo,$defbgthree, |
\%type,\%display,$defbgone,$defbgtwo,$defbgthree, |
$parmlev,$uname,$udom,$csec,$cgroup); |
$parmlev,$uname,$udom,$csec,$cgroup); |
} |
} |
$r->print("</table></center>"); |
$r->print("</table></div>"); |
} # end each map |
} # end each map |
} # end of $parmlev eq map |
} # end of $parmlev eq map |
#--------------------------------- Entry for parm level general (Course level) |
#--------------------------------- Entry for parm level general (Course level) |
Line 2125 sub crsenv {
|
Line 2126 sub crsenv {
|
$setoutput.=&mt('Set').' <b>'.$name.'</b> '.&mt('to').' <b>'; |
$setoutput.=&mt('Set').' <b>'.$name.'</b> '.&mt('to').' <b>'; |
if ($name =~ /^default_enrollment_(start|end)_date$/) { |
if ($name =~ /^default_enrollment_(start|end)_date$/) { |
$setoutput .= &Apache::lonlocal::locallocaltime($value); |
$setoutput .= &Apache::lonlocal::locallocaltime($value); |
|
} elsif ($name eq 'categories') { |
|
$setoutput .= $env{'form.categories_display'}; |
} else { |
} else { |
$setoutput .= $value; |
$setoutput .= $value; |
} |
} |
Line 2133 sub crsenv {
|
Line 2136 sub crsenv {
|
&change_clone($value,\@oldcloner); |
&change_clone($value,\@oldcloner); |
} |
} |
# Update environment and nohist_courseids.db |
# Update environment and nohist_courseids.db |
if ($name eq 'description' || $name eq 'cloners') { |
if (($name eq 'description') || ($name eq 'cloners') || |
|
($name eq 'hidefromcat') || ($name eq 'categories')) { |
if ($chome eq '') { |
if ($chome eq '') { |
%crsinfo = |
%crsinfo = |
&Apache::lonnet::courseiddump($dom,'.',1,'.','.', |
&Apache::lonnet::courseiddump($dom,'.',1,'.','.', |
$crs,undef,undef,'Course'); |
$crs,undef,undef,'.'); |
$chome = &Apache::lonnet::homeserver($crs,$dom); |
$chome = &Apache::lonnet::homeserver($crs,$dom); |
} |
} |
} |
} |
Line 2150 sub crsenv {
|
Line 2154 sub crsenv {
|
$chome,'notime'); |
$chome,'notime'); |
} |
} |
} |
} |
if ($name eq 'cloners') { |
if (($name eq 'cloners') || ($name eq 'hidefromcat') || ($name eq 'categories')) { |
if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') { |
if (ref($crsinfo{$env{'request.course.id'}}) eq 'HASH') { |
$crsinfo{$env{'request.course.id'}}{'cloners'} = $value; |
&Apache::lonnet::appenv({'course.'.$env{'request.course.id'}.'.'.$name => $value}); |
|
$crsinfo{$env{'request.course.id'}}{$name} = $value; |
my $putresult = |
my $putresult = |
&Apache::lonnet::courseidput($dom,\%crsinfo, |
&Apache::lonnet::courseidput($dom,\%crsinfo, |
$chome,'notime'); |
$chome,'notime'); |
Line 2208 sub crsenv {
|
Line 2213 sub crsenv {
|
my $SelectStyleFile=&mt('Select Style File'); |
my $SelectStyleFile=&mt('Select Style File'); |
my $SelectSpreadsheetFile=&mt('Select Spreadsheet File'); |
my $SelectSpreadsheetFile=&mt('Select Spreadsheet File'); |
my $output=''; |
my $output=''; |
|
my $can_categorize; |
if (! exists($values{'con_lost'})) { |
if (! exists($values{'con_lost'})) { |
my %descriptions= |
my %descriptions= |
('url' => '<b>'.&mt('Top Level Map').'</b><br />'. |
('url' => '<b>'.&mt('Top Level Map').'</b><br />'. |
Line 2340 sub crsenv {
|
Line 2346 sub crsenv {
|
=> '<b>'.&mt('Force all students in the course to use a specific math rendering engine.').'</b><br />' |
=> '<b>'.&mt('Force all students in the course to use a specific math rendering engine.').'</b><br />' |
.'('.&mt('[_1], [_2] (Convert to Images), [_3] (TeX to HTML), or blank for student\'s preference','"<tt>jsMath</tt>"','"<tt>mimetex</tt>"','"<tt>tth</tt>"').')', |
.'('.&mt('[_1], [_2] (Convert to Images), [_3] (TeX to HTML), or blank for student\'s preference','"<tt>jsMath</tt>"','"<tt>mimetex</tt>"','"<tt>tth</tt>"').')', |
'timezone' |
'timezone' |
=> '<b>'.&mt('Timezone in which the course takes place').'</b>' |
=> '<b>'.&mt('Timezone in which the course takes place').'</b>', |
|
|
); |
'suppress_embed_prompt' |
my @Display_Order = ('url','description','courseid','cloners','grading', |
=> '<b>'.&mt('Suppress prompt to upload items referenced in a web page being uploaded to portfolio, when current role is student.').'</b><br />'. |
|
' ('.&mt('[_1] to suppress, anything else to not suppress','"<tt>yes</tt>"').')', |
|
'hidefromcat' |
|
=> '<b>'.&mt('Exclude from course catalog').'</b><br />'. |
|
' ('.&mt('[_1] to exclude, anything else to include - included if assigned an institutional code, or manually catagorized','"<tt>yes</tt>"').')', |
|
'categories' |
|
=> '<b>'.&mt('Categorize course').'</b> <a href="javascript:catsbrowser()">'. |
|
&mt('Display Categories').'</a>', |
|
); |
|
my @Display_Order = ('url','description','courseid','cloners'); |
|
(my $can_toggle_cat,$can_categorize) = &can_modify_catsettings($dom); |
|
if ($can_toggle_cat) { |
|
push(@Display_Order,'hidefromcat'); |
|
} |
|
if ($can_categorize) { |
|
push(@Display_Order,'categories'); |
|
} |
|
push (@Display_Order,('grading', |
'externalsyllabus', |
'externalsyllabus', |
'default_xml_style','pageseparators', |
'default_xml_style','pageseparators', |
'question.email','question.email.text','comment.email','comment.email.text','policy.email','policy.email.text', |
'question.email','question.email.text','comment.email', |
|
'comment.email.text','policy.email','policy.email.text', |
'student_classlist_view', |
'student_classlist_view', |
'student_classlist_opt_in', |
'student_classlist_opt_in', |
'student_classlist_portfiles', |
'student_classlist_portfiles', |
Line 2361 sub crsenv {
|
Line 2385 sub crsenv {
|
'receiptalg', |
'receiptalg', |
'problem_stream_switch', |
'problem_stream_switch', |
'suppress_tries', |
'suppress_tries', |
|
'suppress_embed_prompt', |
'default_paper_size', |
'default_paper_size', |
'print_header_format', |
'print_header_format', |
'disable_receipt_display', |
'disable_receipt_display', |
Line 2374 sub crsenv {
|
Line 2399 sub crsenv {
|
'texengine', |
'texengine', |
'disablesigfigs', |
'disablesigfigs', |
'disableexampointprint', |
'disableexampointprint', |
'task_messages','task_grading', |
'task_messages','task_grading')); |
); |
|
foreach my $parameter (sort(keys(%values))) { |
foreach my $parameter (sort(keys(%values))) { |
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./)) { |
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./) || |
|
($parameter =~ m/^selfenroll_/) || ($parameter =~ /_selfenroll$/) |
|
|| ($parameter eq 'type')) { |
if (! $descriptions{$parameter}) { |
if (! $descriptions{$parameter}) { |
$descriptions{$parameter}=$parameter; |
$descriptions{$parameter}=$parameter; |
push(@Display_Order,$parameter); |
push(@Display_Order,$parameter); |
Line 2407 sub crsenv {
|
Line 2433 sub crsenv {
|
&Apache::loncommon::select_timezone($parameter.'_value', |
&Apache::loncommon::select_timezone($parameter.'_value', |
$timezone, |
$timezone, |
$onchange,$includeempty).'</td>'; |
$onchange,$includeempty).'</td>'; |
|
} elsif ($parameter eq 'categories') { |
|
my $catdisplay; |
|
if ($values{'categories'} ne '') { |
|
my @curritems = split(/\&/,$values{'categories'}); |
|
foreach my $item (@curritems) { |
|
my ($name,$parent,$pos) = split(/:/,$item); |
|
$catdisplay .= &unescape($name).'&'; |
|
} |
|
$catdisplay =~ s/\&$//; |
|
} |
|
$output .= '<td>'. |
|
'<input type="hidden" name="categories_value" value="'. |
|
$values{'categories'}.'" />'. |
|
'<input type="textbox" name="categories_display" value="'. |
|
$catdisplay.'" readonly="readonly" size="40" /></td>'; |
} else { |
} else { |
$output .= '<td>'. |
$output .= '<td>'. |
&Apache::lonhtmlcommon::textbox($parameter.'_value', |
&Apache::lonhtmlcommon::textbox($parameter.'_value', |
Line 2440 sub crsenv {
|
Line 2481 sub crsenv {
|
my $Parameter=&mt('Parameter'); |
my $Parameter=&mt('Parameter'); |
my $Value=&mt('Value'); |
my $Value=&mt('Value'); |
my $Set=&mt('Set'); |
my $Set=&mt('Set'); |
my $browse_js= |
my ($jscript,$categorize_js); |
'<script type="text/javascript" language="Javascript">'. |
my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset'); |
&Apache::loncommon::browser_and_searcher_javascript('parmset'). |
if ($can_categorize) { |
'</script>'; |
$categorize_js = <<ENDSCRIPT; |
|
function catsbrowser() { |
|
var catswin = null; |
|
var url = '/adm/parmset?action=categorizecourse'; |
|
if (!catswin || catswin.closed) { |
|
catswin=window.open(url,'categorieswin','height=480,width=600,resizable=yes,scrollbars=yes,location=no,menubar=no,toolbar=no'); |
|
} else { |
|
catswin.focus(); |
|
} |
|
} |
|
ENDSCRIPT |
|
} |
|
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
|
$browse_js."\n".$categorize_js."\n".'</script>'; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Set Course Environment', |
&Apache::loncommon::start_page('Set Course Environment', |
$browse_js); |
$jscript); |
my $end_page = |
my $end_page = |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
my $end_table=&Apache::loncommon::end_data_table(); |
my $end_table=&Apache::loncommon::end_data_table(); |
Line 2468 $end_table
|
Line 2521 $end_table
|
$end_page |
$end_page |
ENDENV |
ENDENV |
} |
} |
|
|
|
sub can_modify_catsettings { |
|
my ($dom) = @_; |
|
my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$dom); |
|
my ($can_toggle_cat,$can_categorize); |
|
if (ref($domconf{'coursecategories'}) eq 'HASH') { |
|
if ($domconf{'coursecategories'}{'togglecats'} eq 'crs') { |
|
$can_toggle_cat = 1; |
|
} |
|
if ($domconf{'coursecategories'}{'categorize'} eq 'crs') { |
|
$can_categorize = 1; |
|
} |
|
} |
|
return ($can_toggle_cat,$can_categorize); |
|
} |
|
|
|
sub assign_course_categories { |
|
my ($r) = @_; |
|
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $hascats = 0; |
|
my $cathash; |
|
my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$cdom); |
|
if (ref($domconf{'coursecategories'}) eq 'HASH') { |
|
$cathash = $domconf{'coursecategories'}{'cats'}; |
|
if (ref($cathash) eq 'HASH') { |
|
$hascats = 1; |
|
} |
|
} |
|
my $catwin_js; |
|
if ($hascats) { |
|
my $alert = &mt('Use \"Save\" in the main window to save course categories'); |
|
$catwin_js = <<ENDSCRIPT; |
|
<script type="text/javascript"> |
|
|
|
function updateCategories() { |
|
var newcategories = ''; |
|
var unescapedcats = ''; |
|
if (document.chgcats.usecategory.length) { |
|
for (var i=0; i<document.chgcats.usecategory.length; i++) { |
|
if (document.chgcats.usecategory[i].checked == true) { |
|
newcategories = newcategories + document.chgcats.usecategory[i].value + '&'; |
|
alert("i is "+i+" and catname is "+document.chgcats.catname[i].value); |
|
unescapedcats = unescapedcats + document.chgcats.catname[i].value + ' & '; |
|
} |
|
} |
|
if (newcategories.length > 0) { |
|
newcategories = newcategories.slice(0,-1); |
|
} |
|
if (unescapedcats.length > 0) { |
|
usescapedcats = unescapedcats.slice(0,-3); |
|
} |
|
} else { |
|
if (document.chgcats.usecategory.checked == true) { |
|
newcategories = document.chgcats.usecategory.value; |
|
unescapedcats = document.chgcats.catname.value; |
|
} |
|
} |
|
opener.document.envform.categories_value.value = newcategories; |
|
opener.document.envform.categories_display.value = unescapedcats; |
|
opener.document.envform.categories_setparmval.checked = true; |
|
alert("$alert"); |
|
self.close(); |
|
return; |
|
} |
|
|
|
</script> |
|
ENDSCRIPT |
|
} else { |
|
my $onload; |
|
} |
|
my $start_page = |
|
&Apache::loncommon::start_page('Course Categories',$catwin_js, |
|
{'only_body' => 1,}); |
|
my $end_page = &Apache::loncommon::end_page(); |
|
my $categoriesform = '<h3>'.&mt('Categorize Course').'</h3>'; |
|
if ($hascats) { |
|
my %currsettings = |
|
&Apache::lonnet::get('environment',['hidefromcat','categories'],$cdom,$cnum); |
|
$categoriesform .= &mt('Assign one or more categories to this course.').'<br /><br />'. |
|
'<form name="chgcats" action="/adm/parmset" method="post">'."\n" |
|
.&Apache::loncommon::assign_categories_table($cathash, |
|
$currsettings{'categories'})."\n" |
|
.'<br /><input type="button" name="changes" value="' |
|
.&mt('Copy to main window').'" ' |
|
.'onclick="javascript:updateCategories()" /></form><br />'; |
|
} else { |
|
$categoriesform .= &mt('No categories defined for this domain'); |
|
} |
|
$r->print($start_page.$categoriesform.$end_page); |
|
return; |
|
} |
|
|
################################################## |
################################################## |
# Overview mode |
# Overview mode |
################################################## |
################################################## |
Line 4329 sub handler {
|
Line 4475 sub handler {
|
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, |
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, |
text=>"Shifting Dates"}); |
text=>"Shifting Dates"}); |
&date_shift_two($r); |
&date_shift_two($r); |
} |
} elsif ($env{'form.action'} eq 'categorizecourse' && $parm_permission) { |
|
&assign_course_categories($r); |
|
} |
} else { |
} else { |
# ----------------------------- Not in a course, or not allowed to modify parms |
# ----------------------------- Not in a course, or not allowed to modify parms |
if ($exists) { |
if ($exists) { |