[LON-CAPA-cvs] cvs: loncom(version_2_9_X) /interface domainprefs.pm
raeburn
raeburn@source.lon-capa.org
Sat, 02 Jan 2010 21:50:55 -0000
This is a MIME encoded message
--raeburn1262469055
Content-Type: text/plain
raeburn Sat Jan 2 21:50:55 2010 EDT
Modified files: (Branch: version_2_9_X)
/loncom/interface domainprefs.pm
Log:
- Backport 1.116, 1.120, 1.124.
--raeburn1262469055
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20100102215055.txt"
Index: loncom/interface/domainprefs.pm
diff -u loncom/interface/domainprefs.pm:1.102.2.5 loncom/interface/domainprefs.pm:1.102.2.6
--- loncom/interface/domainprefs.pm:1.102.2.5 Fri Oct 9 02:00:21 2009
+++ loncom/interface/domainprefs.pm Sat Jan 2 21:50:54 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.102.2.5 2009/10/09 02:00:21 raeburn Exp $
+# $Id: domainprefs.pm,v 1.102.2.6 2010/01/02 21:50:54 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -302,7 +302,7 @@
col2 => 'Value'}],
},
'coursecategories' =>
- { text => 'Cataloging of courses',
+ { text => 'Cataloging of courses/communities',
help => 'Domain_Configuration_Cataloging_Courses',
header => [{col1 => 'Category settings',
col2 => '',},
@@ -728,7 +728,7 @@
sub login_choices {
my %choices =
&Apache::lonlocal::texthash (
- coursecatalog => 'Display Course Catalog link?',
+ coursecatalog => 'Display Course/Community Catalog link?',
adminmail => "Display Administrator's E-mail Address?",
newuser => "Link to create a user account",
img => "Header",
@@ -2439,6 +2439,11 @@
my $toggle_cats_dom = ' checked="checked" ';
my $can_cat_crs = ' ';
my $can_cat_dom = ' checked="checked" ';
+ my $toggle_catscomm_comm = ' ';
+ my $toggle_catscomm_dom = ' checked="checked" ';
+ my $can_catcomm_comm = ' ';
+ my $can_catcomm_dom = ' checked="checked" ';
+
if (ref($settings) eq 'HASH') {
if ($settings->{'togglecats'} eq 'crs') {
$toggle_cats_crs = $toggle_cats_dom;
@@ -2448,14 +2453,25 @@
$can_cat_crs = $can_cat_dom;
$can_cat_dom = ' ';
}
+ if ($settings->{'togglecatscomm'} eq 'comm') {
+ $toggle_catscomm_comm = $toggle_catscomm_dom;
+ $toggle_catscomm_dom = ' ';
+ }
+ if ($settings->{'categorizecomm'} eq 'comm') {
+ $can_catcomm_comm = $can_catcomm_dom;
+ $can_catcomm_dom = ' ';
+ }
}
my %title = &Apache::lonlocal::texthash (
- togglecats => 'Show/Hide a course in the catalog',
- categorize => 'Assign a category to a course',
+ togglecats => 'Show/Hide a course in catalog',
+ togglecatscomm => 'Show/Hide a community in catalog',
+ categorize => 'Assign a category to a course',
+ categorizecomm => 'Assign a category to a community',
);
my %level = &Apache::lonlocal::texthash (
- dom => 'Set in "Modify Course" (Domain)',
- crs => 'Set in "Modify Parameters" (Course)',
+ dom => 'Set in Domain',
+ crs => 'Set in Course',
+ comm => 'Set in Community',
);
$datatable = '<tr class="LC_odd_row">'.
'<td>'.$title{'togglecats'}.'</td>'.
@@ -2471,8 +2487,22 @@
$can_cat_dom.' value="dom" />'.$level{'dom'}.'</label> '.
'<label><input type="radio" name="categorize"'.
$can_cat_crs.'value="crs" />'.$level{'crs'}.'</label></span></td>'.
+ '</tr><tr class="LC_odd_row">'.
+ '<td>'.$title{'togglecatscomm'}.'</td>'.
+ '<td class="LC_right_item"><span class="LC_nobreak"><label>'.
+ '<input type="radio" name="togglecatscomm"'.
+ $toggle_catscomm_dom.' value="dom" />'.$level{'dom'}.'</label> '.
+ '<label><input type="radio" name="togglecatscomm"'.
+ $toggle_catscomm_comm.' value="comm" />'.$level{'comm'}.'</label></span></td>'.
+ '</tr><tr>'.
+ '<td>'.$title{'categorizecomm'}.'</td>'.
+ '<td class="LC_right_item"><span class="LC_nobreak">'.
+ '<label><input type="radio" name="categorizecomm"'.
+ $can_catcomm_dom.' value="dom" />'.$level{'dom'}.'</label> '.
+ '<label><input type="radio" name="categorizecomm"'.
+ $can_catcomm_comm.'value="comm" />'.$level{'comm'}.'</label></span></td>'.
'</tr>';
- $$rowtotal += 2;
+ $$rowtotal += 4;
} else {
my $css_class;
my $itemcount = 1;
@@ -2494,7 +2524,15 @@
if (ref($cats[0]) eq 'ARRAY') {
my $numtop = @{$cats[0]};
my $maxnum = $numtop;
- if ((!grep(/^instcode$/,@{$cats[0]})) || ($cathash->{'instcode::0'} eq '')) {
+ my %default_names = (
+ instcode => &mt('Official courses'),
+ communities => &mt('Communities'),
+ );
+
+ if ((!grep(/^instcode$/,@{$cats[0]})) ||
+ ($cathash->{'instcode::0'} eq '') ||
+ (!grep(/^communities$/,@{$cats[0]})) ||
+ ($cathash->{'communities::0'} eq '')) {
$maxnum ++;
}
my $lastidx;
@@ -2515,14 +2553,33 @@
$datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';
}
$datatable .= '</select></td><td>';
- if ($parent eq 'instcode') {
- $datatable .= '<span class="LC_nobreak">'.&mt('Official courses')
- .'</span><br /><span class="LC_nobreak">('
- .&mt('with institutional codes').')</span></td>'
- .'<td'.$colattrib.'><span class="LC_nobreak"><label><input type="radio" name="instcode" value="1" checked="checked" />'
- .&mt('Display').'</label> '
- .'<label><input type="radio" name="instcode" value="0" />'
- .&mt('Do not display').'</label></span></td>';
+ if ($parent eq 'instcode' || $parent eq 'communities') {
+ $datatable .= '<span class="LC_nobreak">'.
+ .$default_names{$parent}.'</span>';
+ if ($parent eq 'instcode') {
+ $datatable .= '<br /><span class="LC_nobreak">('
+ .&mt('with institutional codes')
+ .')</span></td><td'.$colattrib.'>';
+ } else {
+ $datatable .= '<table><tr><td>';
+ }
+ $datatable .= '<span class="LC_nobreak">'
+ .'<label><input type="radio" name="'
+ .$parent.'" value="1" checked="checked" />'
+ .&mt('Display').'</label>';
+ if ($parent eq 'instcode') {
+ $datatable .= ' ';
+ } else {
+ $datatable .= '</span></td></tr><tr><td>'
+ .'<span class="LC_nobreak">';
+ }
+ $datatable .= '<label><input type="radio" name="'
+ .$parent.'" value="0" />'
+ .&mt('Do not display').'</label></span>';
+ if ($parent eq 'communities') {
+ $datatable .= '</td></tr></table>';
+ }
+ $datatable .= '</td>';
} else {
$datatable .= $parent
.' <label><input type="checkbox" name="deletecategory" '
@@ -2550,26 +2607,33 @@
.'<input type="text" size="20" name="addcategory_name" value="" /></td>'
.'</tr>'."\n";
$itemcount ++;
- if ((!grep(/^instcode$/,@{$cats[0]})) || ($cathash->{'instcode::0'} eq '')) {
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- my $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','instcode_pos','$lastidx'".');"';
- $datatable .= '<tr><td colspan="'.$maxdepth.'" class="LC_row_separator"></td></tr><tr '.$css_class.'><td>'.
- '<span class="LC_nobreak"><select name="instcode_pos"'.$chgstr.'>';
- for (my $k=0; $k<=$maxnum; $k++) {
- my $vpos = $k+1;
- my $selstr;
- if ($k == $maxnum) {
- $selstr = ' selected="selected" ';
+ foreach my $default ('instcode','communities') {
+ if ((!grep(/^\Q$default\E$/,@{$cats[0]})) || ($cathash->{$default.'::0'} eq '')) {
+ $css_class = $itemcount%2?' class="LC_odd_row"':'';
+ my $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','$default"."_pos','$lastidx'".');"';
+ $datatable .= '<tr><td colspan="'.$maxdepth.'" class="LC_row_separator"></td></tr><tr '.$css_class.'><td>'.
+ '<span class="LC_nobreak"><select name="'.$default.'_pos"'.$chgstr.'>';
+ for (my $k=0; $k<=$maxnum; $k++) {
+ my $vpos = $k+1;
+ my $selstr;
+ if ($k == $maxnum) {
+ $selstr = ' selected="selected" ';
+ }
+ $datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';
}
- $datatable .= '<option value="'.$k.'"'.$selstr.'>'.$vpos.'</option>';
+ $datatable .= '</select></span></td>'.
+ '<td><span class="LC_nobreak">'.
+ $default_names{$default}.'</span>';
+ if ($default eq 'instcode') {
+ $datatable .= '<br /><span class="LC_nobreak">('
+ .&mt('with institutional codes').')</span>';
+ }
+ $datatable .= '</td>'
+ .'<td><span class="LC_nobreak"><label><input type="radio" name="'.$default.'" value="1" />'
+ .&mt('Display').'</label> '
+ .'<label><input type="radio" name="'.$default.'" value="0" checked="checked"/>'
+ .&mt('Do not display').'</label></span></td></tr>';
}
- $datatable .= '</select></span></td><td><span class="LC_nobreak">'
- .&mt('Official courses').'</span>'.'<br /><span class="LC_nobreak">('
- .&mt('with institutional codes').')</span></td>'
- .'<td><span class="LC_nobreak"><label><input type="radio" name="instcode" value="1" />'
- .&mt('Display').'</label> '
- .'<label><input type="radio" name="instcode" value="0" checked="checked"/>'
- .&mt('Do not display').'</label></span></td></tr>';
}
}
} else {
@@ -2658,6 +2722,9 @@
$jstext = ' var categories = Array(1);'."\n".
' categories[0] = Array("instcode_pos");'."\n";
}
+ my $instcode_reserved = &mt('The name: "instcode" is a reserved category');
+ my $communities_reserved = &mt('The name: "communities" is a reserved category');
+ my $choose_again = '\\n'.&mt('Please use a different name for the new top level category');
$output = <<"ENDSCRIPT";
<script type="text/javascript">
// <![CDATA[
@@ -2717,6 +2784,19 @@
}
return;
}
+
+function categoryCheck(form) {
+ if (form.elements['addcategory_name'].value == 'instcode') {
+ alert('$instcode_reserved\\n$choose_again');
+ return false;
+ }
+ if (form.elements['addcategory_name'].value == 'communities') {
+ alert('$communities_reserved\\n$choose_again');
+ return false;
+ }
+ return true;
+}
+
// ]]>
</script>
@@ -2726,25 +2806,40 @@
sub initialize_categories {
my ($itemcount) = @_;
- my $datatable;
- my $css_class = $itemcount%2?' class="LC_odd_row"':'';
- my $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','instcode_pos','0'".');"';
-
- $datatable = '<tr '.$css_class.'><td><span class="LC_nobreak">'
- .'<select name="instcode_pos"><option value="0" selected="selected">1</option>'
- .'<option value="1">2</option></select> '
- .&mt('Official courses (with institutional codes)')
- .'</span></td><td><span class="LC_nobreak">'
- .'<label><input type="radio" name="instcode" value="1" checked="checked" />'
- .&mt('Display').'</label> <label>'
- .'<input type="radio" name="instcode" value="0" />'.&mt('Do not display')
+ my ($datatable,$css_class,$chgstr);
+ my %default_names = (
+ instcode => 'Official courses (with institutional codes)',
+ communities => 'Communities',
+ );
+ my $select0 = ' selected="selected"';
+ my $select1 = '';
+ foreach my $default ('instcode','communities') {
+ $css_class = $itemcount%2?' class="LC_odd_row"':'';
+ $chgstr = ' onchange="javascript:reorderCats(this.form,'."'',$default"."_pos','0'".');"';
+ if ($default eq 'communities') {
+ $select1 = $select0;
+ $select0 = '';
+ }
+ $datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'
+ .'<select name="'.$default.'_pos">'
+ .'<option value="0"'.$select0.'>1</option>'
+ .'<option value="1"'.$select1.'>2</option>'
+ .'<option value="2">3</option></select> '
+ .$default_names{$default}
+ .'</span></td><td><span class="LC_nobreak">'
+ .'<label><input type="radio" name="'.$default.'" value="1" checked="checked" />'
+ .&mt('Display').'</label> <label>'
+ .'<input type="radio" name="'.$default.'" value="0" />'.&mt('Do not display')
.'</label></span></td></tr>';
- $itemcount ++;
+ $itemcount ++;
+ }
$css_class = $itemcount%2?' class="LC_odd_row"':'';
$chgstr = ' onchange="javascript:reorderCats(this.form,'."'','addcategory_pos','0'".');"';
$datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'
- .'<select name="addcategory_pos"'.$chgstr.'><option value="0">1</option>'
- .'<option value="1" selected="selected">2</option></select> '
+ .'<select name="addcategory_pos"'.$chgstr.'>'
+ .'<option value="0">1</option>'
+ .'<option value="1">2</option>'
+ .'<option value="2" selected="selected">3</option></select> '
.&mt('Add category').'</td><td>'.&mt('Name:')
.' <input type="text" size="20" name="addcategory_name" value="" /></td></tr>';
return $datatable;
@@ -5189,18 +5284,33 @@
$changes{'categorize'} = 1;
$domconfig{'coursecategories'}{'categorize'} = $env{'form.categorize'};
}
+ if ($domconfig{'coursecategories'}{'togglecatscomm'} ne $env{'form.togglecatscomm'}) {
+ $changes{'togglecatscomm'} = 1;
+ $domconfig{'coursecategories'}{'togglecatscomm'} = $env{'form.togglecatscomm'};
+ }
+ if ($domconfig{'coursecategories'}{'categorizecomm'} ne $env{'form.categorizecomm'}) {
+ $changes{'categorizecomm'} = 1;
+ $domconfig{'coursecategories'}{'categorizecomm'} = $env{'form.categorizecomm'};
+ }
} else {
$changes{'togglecats'} = 1;
$changes{'categorize'} = 1;
+ $changes{'togglecatscomm'} = 1;
+ $changes{'categorizecomm'} = 1;
$domconfig{'coursecategories'} = {
togglecats => $env{'form.togglecats'},
categorize => $env{'form.categorize'},
+ togglecatscomm => $env{'form.togglecatscomm'},
+ categorizecomm => $env{'form.categorizecomm'},
};
}
if (ref($cathash) eq 'HASH') {
if (($domconfig{'coursecategories'}{'cats'}{'instcode::0'} ne '') && ($env{'form.instcode'} == 0)) {
push (@deletecategory,'instcode::0');
}
+ if (($domconfig{'coursecategories'}{'cats'}{'communities::0'} ne '') && ($env{'form.communities'} == 0)) {
+ push(@deletecategory,'communities::0');
+ }
}
my (@predelcats,@predeltrails,%predelallitems,%sort_by_deltrail);
if (ref($cathash) eq 'HASH') {
@@ -5250,10 +5360,26 @@
$adds{$newitem} = 1;
}
}
+ if ($env{'form.communities'} eq '1') {
+ if (ref($cathash) eq 'HASH') {
+ my $newitem = 'communities::0';
+ if ($cathash->{$newitem} eq '') {
+ $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.communities_pos'};
+ $adds{$newitem} = 1;
+ }
+ } else {
+ my $newitem = 'communities::0';
+ $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.communities_pos'};
+ $adds{$newitem} = 1;
+ }
+ }
if ($env{'form.addcategory_name'} ne '') {
- my $newitem = &escape($env{'form.addcategory_name'}).'::0';
- $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.addcategory_pos'};
- $adds{$newitem} = 1;
+ if (($env{'form.addcategory_name'} ne 'instcode') &&
+ ($env{'form.addcategory_name'} ne 'communities')) {
+ my $newitem = &escape($env{'form.addcategory_name'}).'::0';
+ $domconfig{'coursecategories'}{'cats'}{$newitem} = $env{'form.addcategory_pos'};
+ $adds{$newitem} = 1;
+ }
}
my $putresult;
if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) {
@@ -5290,12 +5416,15 @@
$putresult = &Apache::lonnet::put_dom('configuration',\%domconfig,$dom);
if ($putresult eq 'ok') {
my %title = (
- togglecats => 'Show/Hide a course in the catalog',
- categorize => 'Category assigned to course',
+ togglecats => 'Show/Hide a course in catalog',
+ categorize => 'Assign a category to a course',
+ togglecatscomm => 'Show/Hide a community in catalog',
+ categorizecomm => 'Assign a category to a community',
);
my %level = (
- dom => 'set from "Modify Course" (Domain)',
- crs => 'set from "Parameters" (Course)',
+ dom => 'set in Domain ("Modify Course/Community")',
+ crs => 'set in Course ("Course Configuration")',
+ comm => 'set in Community ("Community Configuration")',
);
$resulttext = &mt('Changes made:').'<ul>';
if ($changes{'togglecats'}) {
@@ -5304,6 +5433,12 @@
if ($changes{'categorize'}) {
$resulttext .= '<li>'.&mt("$title{'categorize'} $level{$env{'form.categorize'}}").'</li>';
}
+ if ($changes{'togglecatscomm'}) {
+ $resulttext .= '<li>'.&mt("$title{'togglecatscomm'} $level{$env{'form.togglecatscomm'}}").'</li>';
+ }
+ if ($changes{'categorizecomm'}) {
+ $resulttext .= '<li>'.&mt("$title{'categorizecomm'} $level{$env{'form.categorizecomm'}}").'</li>';
+ }
if ((keys(%deletions) > 0) || (keys(%reorderings) > 0) || (keys(%adds) > 0)) {
my $cathash;
if (ref($domconfig{'coursecategories'}) eq 'HASH') {
@@ -5353,7 +5488,7 @@
&mt('An error occurred: [_1]',$putresult).'</span>';
}
} else {
- $resulttext = &mt('No changes made to course categories');
+ $resulttext = &mt('No changes made to course and community categories');
}
return $resulttext;
}
--raeburn1262469055--