--- loncom/interface/domainprefs.pm 2018/03/23 01:01:20 1.325
+++ loncom/interface/domainprefs.pm 2018/07/06 13:29:49 1.331
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.325 2018/03/23 01:01:20 raeburn Exp $
+# $Id: domainprefs.pm,v 1.331 2018/07/06 13:29:49 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1436,7 +1436,7 @@ sub print_login {
} else {
$datatable .= '';
}
- $datatable .= '
| ';
+ $datatable .= ' | ';
}
$datatable .= '';
}
@@ -1596,7 +1596,7 @@ sub display_color_options {
my $datatable = ''.
''.$choices->{'font'}.' | ';
if (!$is_custom->{'font'}) {
- $datatable .= ''.&mt('Default in use:').' '.$defaults->{'font'}.' | ';
+ $datatable .= ''.&mt('Default in use:').' '.$defaults->{'font'}.' | ';
} else {
$datatable .= ' | ';
}
@@ -1605,12 +1605,12 @@ sub display_color_options {
$datatable .= ''.
' '.
- ' |
';
+ ' ';
unless ($role eq 'login') {
$datatable .= ''.
''.$choices->{'fontmenu'}.' | ';
if (!$is_custom->{'fontmenu'}) {
- $datatable .= ''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' | ';
+ $datatable .= ''.&mt('Default in use:').' '.$defaults->{'fontmenu'}.' | ';
} else {
$datatable .= ' | ';
}
@@ -1620,7 +1620,7 @@ sub display_color_options {
' '.
- '
';
+ ' ';
}
my $switchserver = &check_switchserver($dom,$confname);
foreach my $img (@{$images}) {
@@ -1738,7 +1738,7 @@ sub display_color_options {
my $bgs_def;
foreach my $item (@{$bgs}) {
if (!$is_custom->{$item}) {
- $bgs_def .= ''.$choices->{$item}.' '.$defaults->{'bgs'}{$item}.' | ';
+ $bgs_def .= ''.$choices->{$item}.' '.$defaults->{'bgs'}{$item}.' | ';
}
}
if ($bgs_def) {
@@ -1766,7 +1766,7 @@ sub display_color_options {
my $links_def;
foreach my $item (@{$links}) {
if (!$is_custom->{$item}) {
- $links_def .= ''.$choices->{$item}.' '.$defaults->{'links'}{$item}.' | ';
+ $links_def .= ''.$choices->{$item}.' '.$defaults->{'links'}{$item}.' | ';
}
}
if ($links_def) {
@@ -1852,17 +1852,15 @@ sub image_changes {
my ($is_custom,$alt_text,$img_import,$showfile,$fullsize,$role,$img,$imgfile,$logincolors) = @_;
my $output;
if ($img eq 'login') {
- # suppress image for Log-in header
+ $output = ''.$logincolors; # suppress image for Log-in header
} elsif (!$is_custom) {
if ($img ne 'domlogo') {
- $output .= &mt('Default image:').' ';
+ $output = &mt('Default image:').' ';
} else {
- $output .= &mt('Default in use:').' ';
+ $output = &mt('Default in use:').' ';
}
}
- if ($img eq 'login') { # suppress image for Log-in header
- $output .= ' | '.$logincolors;
- } else {
+ if ($img ne 'login') {
if ($img_import) {
$output .= '';
}
@@ -2909,6 +2907,35 @@ function toggleLTI(form,setting,item) {
}
}
}
+ } else if (setting == 'lcmenu') {
+ var menus = new Array('lti_topmenu_'+item,'lti_inlinemenu_'+item);
+ var divid = 'lti_menufield_'+item;
+ var setvis = '';
+ for (var i=0; i 'Other',
'passback' => 'Can return grades to Consumer:',
'roster' => 'Can retrieve roster from Consumer:',
+ 'topmenu' => 'Display LON-CAPA page header',
+ 'inlinemenu'=> 'Display LON-CAPA inline menu',
);
return %lt;
}
@@ -4709,6 +4738,7 @@ sub lti_options {
$checked{'crssec'} = {};
$checked{'crssecsrc'} = {};
$checked{'lcauth'} = {};
+ $checked{'menuitem'} = {};
if ($num eq 'add') {
$checked{'lcauth'}{'lti'} = ' checked="checked"';
}
@@ -4719,7 +4749,9 @@ sub lti_options {
my $lcauthparm;
my $lcauthparmstyle = 'display:none';
my $lcauthparmtext;
+ my $menusty;
my $numinrow = 4;
+ my %menutitles = <imenu_titles();
if (ref($current) eq 'HASH') {
if (($current->{'mapuser'} ne '') && ($current->{'mapuser'} ne 'lis_person_sourcedid')) {
@@ -4749,7 +4781,7 @@ sub lti_options {
}
if ($current->{'makecrs'}) {
$checked{'makecrs'}{'Y'} = ' checked="checked"';
- }
+ }
if (ref($current->{'makeuser'}) eq 'ARRAY') {
foreach my $role (@{$current->{'makeuser'}}) {
$checked{'makeuser'}{$role} = ' checked="checked"';
@@ -4788,10 +4820,35 @@ sub lti_options {
} else {
$checked{'crssec'}{'N'} = ' checked="checked"';
}
+ if ($current->{'topmenu'}) {
+ $checked{'topmenu'}{'Y'} = ' checked="checked"';
+ } else {
+ $checked{'topmenu'}{'N'} = ' checked="checked"';
+ }
+ if ($current->{'inlinemenu'}) {
+ $checked{'inlinemenu'}{'Y'} = ' checked="checked"';
+ } else {
+ $checked{'inlinemenu'}{'N'} = ' checked="checked"';
+ }
+ if (($current->{'topmenu'}) || ($current->{'inlinemenu'})) {
+ $menusty = 'inline-block';
+ if (ref($current->{'lcmenu'}) eq 'ARRAY') {
+ foreach my $item (@{$current->{'lcmenu'}}) {
+ if (exists($menutitles{$item})) {
+ $checked{'menuitem'}{$item} = ' checked="checked"';
+ }
+ }
+ }
+ } else {
+ $menusty = 'none';
+ }
} else {
$checked{'makecrs'}{'N'} = ' checked="checked"';
$checked{'crssec'}{'N'} = ' checked="checked"';
-#FIXME
+ $checked{'topmenu'}{'N'} = ' checked="checked"';
+ $checked{'inlinemenu'}{'Y'} = ' checked="checked"';
+ $checked{'menuitem'}{'grades'} = ' checked="checked"';
+ $menusty = 'inline-block';
}
my @coursetypes = ('official','unofficial','community','textbook','placement','lti');
my %coursetypetitles = &Apache::lonlocal::texthash (
@@ -4818,6 +4875,7 @@ sub lti_options {
my $onclicksec = ' onclick="toggleLTI(this.form,'."'sec','$num'".');"';
my $onclicksecsrc = ' onclick="toggleLTI(this.form,'."'secsrc','$num'".')"';
my $onclicklcauth = ' onclick="toggleLTI(this.form,'."'lcauth','$num'".')"';
+ my $onclickmenu = ' onclick="toggleLTI(this.form,'."'lcmenu','$num'".');"';
my $output = ' | ';
+ $datatable .= '';
$itemcount ++;
}
$$rowtotal += $itemcount;
@@ -7957,7 +8046,7 @@ sub print_coursecategories {
$can_catcomm_dom.' value="dom" />'.$level{'dom'}.' '.
''.
- ''.
+ '
'.
''.$title{'togglecatsplace'}.' | '.
' | '
+ $datatable .= '
'.$hdritem->{'header'}->[1]->{'col2'}.' |
'
.&initialize_categories($itemcount);
}
$$rowtotal += $itemcount;
@@ -8390,20 +8479,23 @@ sub initialize_categories {
communities => 'Communities',
placement => 'Placement Tests',
);
- my $select0 = ' selected="selected"';
- my $select1 = '';
+ my %selnum = (
+ instcode => '0',
+ communities => '1',
+ placement => '2',
+ );
+ my %selected;
foreach my $default ('instcode','communities','placement') {
$css_class = $itemcount%2?' class="LC_odd_row"':'';
- $chgstr = ' onchange="javascript:reorderCats(this.form,'."'',$default"."_pos','0'".');"';
- if (($default eq 'communities') || ($default eq 'placement')) {
- $select1 = $select0;
- $select0 = '';
- }
+ $chgstr = ' onchange="javascript:reorderCats(this.form,'."'','$default"."_pos','0'".');"';
+ map { $selected{$selnum{$_}} = '' } keys(%selnum);
+ $selected{$selnum{$default}} = ' selected="selected"';
$datatable .= ''
- .' '
+ .' '
.$default_names{$default}
.' | '
.' | '.&mt('Name:')
- .' |
';
+ .''
+ .' '
+ .&mt('Add category').''.&mt('Name:')
+ .' '
+ .' | ';
return $datatable;
}
@@ -8475,7 +8569,7 @@ sub build_category_rows {
pop(@{$path});
}
} else {
- $text .= &mt('Add subcategory:').' '.&mt('Add subcategory:').'';
+ $text .= ''.&mt('Add subcategory:').' | ';
}
}
}
@@ -11457,8 +11551,8 @@ sub modify_lti {
map { $posslticrs{$_} = 1; } @lticourseroles;
map { $posscrstype{$_} = 1; } @coursetypes;
-#FIXME
-
+ my %menutitles = <imenu_titles();
+
my (@items,%deletions,%itemids);
if ($env{'form.lti_add'}) {
my $consumer = $env{'form.lti_consumer_add'};
@@ -11610,18 +11704,31 @@ sub modify_lti {
}
}
}
- foreach my $field ('passback','roster') {
+ foreach my $field ('passback','roster','topmenu','inlinemenu') {
if ($env{'form.lti_'.$field.'_'.$idx}) {
$confhash{$itemid}{$field} = 1;
}
}
+
+ if ($env{'form.lti_topmenu_'.$idx} || $env{'form.lti_inlinemenu_'.$idx}) {
+ $confhash{$itemid}{lcmenu} = [];
+ my @possmenu = &Apache::loncommon::get_env_multiple('form.lti_menuitem_'.$idx);
+ foreach my $field (@possmenu) {
+ if (exists($menutitles{$field})) {
+ if ($field eq 'grades') {
+ next unless ($env{'form.lti_inlinemenu_'.$idx});
+ }
+ push(@{$confhash{$itemid}{lcmenu}},$field);
+ }
+ }
+ }
unless (($idx eq 'add') || ($changes{$itemid})) {
- foreach my $field ('mapuser','mapcrs','makecrs','section','passback','roster','lcauth','lcauthparm') {
+ foreach my $field ('mapuser','mapcrs','makecrs','section','passback','roster','lcauth','lcauthparm','topmenu','inlinemenu') {
if ($domconfig{$action}{$itemid}{$field} ne $confhash{$itemid}{$field}) {
$changes{$itemid} = 1;
}
}
- foreach my $field ('makeuser','mapcrstype','selfenroll','instdata') {
+ foreach my $field ('makeuser','mapcrstype','selfenroll','instdata','lcmenu') {
unless ($changes{$itemid}) {
if (ref($domconfig{$action}{$itemid}{$field}) eq 'ARRAY') {
if (ref($confhash{$itemid}{$field}) eq 'ARRAY') {
@@ -11833,8 +11940,8 @@ sub modify_lti {
} else {
$resulttext .= ''.&mt('No section assignment').'';
}
- foreach my $item ('passback','roster') {
- $resulttext .= ''.$lt{$item}.' ';
+ foreach my $item ('passback','roster','topmenu','inlinemenu') {
+ $resulttext .= ''.$lt{$item}.': ';
if ($confhash{$itemid}{$item}) {
$resulttext .= &mt('Yes');
} else {
@@ -11842,6 +11949,14 @@ sub modify_lti {
}
$resulttext .= '';
}
+ if (ref($confhash{$itemid}{'lcmenu'}) eq 'ARRAY') {
+ if (@{$confhash{$itemid}{'lcmenu'}} > 0) {
+ $resulttext .= ''.&mt('Menu items:').' '.
+ join(', ', map { $menutitles{$_}; } (@{$confhash{$itemid}{'lcmenu'}})).'';
+ } else {
+ $resulttext .= ''.&mt('No menu items displayed in header or online menu').'';
+ }
+ }
$resulttext .= '';
}
}