--- loncom/interface/loncommon.pm 2009/11/06 16:53:17 1.912 +++ loncom/interface/loncommon.pm 2009/11/30 21:29:47 1.920 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.912 2009/11/06 16:53:17 bisitz Exp $ +# $Id: loncommon.pm,v 1.920 2009/11/30 21:29:47 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -4503,9 +4503,8 @@ sub bodytag { $env{'course.'.$env{'request.course.id'}. '.domain'}.'/'})) { my $cid = $env{'request.course.id'}; - $dc_info.= $cid.' '.$env{'course.'.$cid.'.internal.coursecode'}; + $dc_info = $cid.' '.$env{'course.'.$cid.'.internal.coursecode'}; $dc_info =~ s/\s+$//; - $dc_info = '('.$dc_info.')'; } $role = '('.$role.')' if $role; @@ -4513,7 +4512,9 @@ sub bodytag { if ($env{'environment.remote'} eq 'off') { # No Remote - if ($no_nav_bar) { return $bodytag; } + if ($no_nav_bar || $env{'form.inhibitmenu'} eq 'yes') { + return $bodytag; + } if ($env{'request.state'} eq 'construct') { $forcereg=1; } @@ -4521,27 +4522,40 @@ sub bodytag { # $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls # } - $bodytag .= qq|
$name $role
- $realm $dc_info
| unless $env{'form.inhibitmenu'}; - if ( $env{'form.inhibitmenu'} eq 'yes' - || $ENV{'REQUEST_URI'} eq '/adm/logout' - || $env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { + if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { + if ($dc_info) { + $dc_info = qq|$dc_info|; + } + $bodytag .= qq|
$name $role
+ $realm $dc_info
|; return $bodytag; } + $bodytag .= qq|
$name $role
|; + $bodytag .= Apache::lonhtmlcommon::scripttag( Apache::lonmenu::utilityfunctions(), 'start'); $bodytag .= Apache::lonmenu::primary_menu(); + if ($dc_info) { + $dc_info = &dc_courseid_toggle($dc_info); + } + $bodytag .= qq|
$realm $dc_info
|; + #don't show menus for public users if($env{'user.name'} ne 'public' && $env{'user.domain'} ne 'public'){ $bodytag .= Apache::lonmenu::secondary_menu(); $bodytag .= Apache::lonmenu::serverform(); - $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); - $bodytag .= Apache::lonmenu::innerregister($forcereg) if $forcereg; + $bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); + if ($env{'request.state'} eq 'construct') { + $bodytag .= &Apache::lonmenu::innerregister($forcereg,'', + $args->{'bread_crumbs'}); + } elsif ($forcereg) { + $bodytag .= &Apache::lonmenu::innerregister($forcereg); + } }else{ # this is to seperate menu from content when there's no secondary # menu. Especially needed for public accessible ressources. @@ -4567,12 +4581,15 @@ sub bodytag { # Explicit link to get inline menu my $menu= ($no_inline_link?'' :''.&mt('Switch to Inline Menu Mode').''); - $bodytag .= qq|
$name $role - $realm $dc_info
+ + if ($dc_info) { + $dc_info = qq|($dc_info)|; + } + + $bodytag .= qq|
$name $role
  1. $menu
  2. -
| unless $env{'form.inhibitmenu'}; - # +
$realm $dc_info
| unless $env{'form.inhibitmenu'}; return(< @@ -4585,6 +4602,14 @@ $bodytag ENDBODY } +sub dc_courseid_toggle { + my ($dc_info) = @_; + return ' '. + ''. + &mt('(More ...)').''. + '
'.$dc_info.'
'; +} + sub make_attr_string { my ($register,$attr_ref) = @_; @@ -4885,6 +4910,47 @@ table#LC_title_bar.LC_with_remote { margin: 0; } +/* #SD START (work in progress)*/ + +ul.LC_bct { + margin: 0; + padding: 0; +} +ul.LC_bct ol { + display: inline; +} +ul.LC_bct ul { + display: inline; + padding: 0; +} +ul.LC_bct li { + list-style-type: none; + display: inline; +} + + +ul.LC_breadcrumb_tools { +} + +li.LC_breadcrumb_tools { +} +li.LC_breadcrumb_tools img{ + vertical-align: middle; +} + +.LC_breadcrumb_tools_A { + margin: 0 0 0 1em; +} +.LC_breadcrumb_tools_B { + float: right; + margin-top: 0.4em; +} +.LC_breadcrumb_tools_C { + margin: 0 1em 0 0; + float: right; +} +/* #SD END */ + table#LC_title_bar td { background: $tabbg; } @@ -4953,9 +5019,9 @@ table#LC_mainmenu td.LC_mainmenu_column background: $sidebg; border-bottom: 1px solid $lg_border_color; line-height: 2.5em; - /* SD working here - height: 2.5em; - overflow: hidden; */ + /* SD working here + height: 2.5em; + overflow: hidden; */ margin: 0; padding: 0; } @@ -4968,9 +5034,8 @@ table#LC_mainmenu td.LC_mainmenu_column #LC_head_subbox { clear:both; background: #F8F8F8; /* $sidebg; */ - border-bottom: 1px solid $lg_border_color; - margin: 0 0 10px 0; - padding: 5px; + border: 1px solid $sidebg; + margin: 0 0 10px 0; } .LC_fontsize_medium { @@ -5167,6 +5232,7 @@ table.LC_createuser tr.LC_info_row td { table.LC_calendar { border: 1px solid #000000; border-collapse: collapse; + width: 98%; } table.LC_calendar_pickdate { @@ -5176,6 +5242,7 @@ table.LC_calendar_pickdate { table.LC_calendar tr td { border: 1px solid #000000; vertical-align: top; + width: 14%; } table.LC_calendar tr td.LC_calendar_day_empty { @@ -5479,15 +5546,17 @@ table.LC_notify_front_page td { .LC_topic_bar { font-weight: bold; - width: 100%; background: $tabbg; - vertical-align: middle; - margin: 2ex 0ex 2ex 0ex; + margin: 1em 0em 1em 2em; padding: 3px; + font-size: 1.2em; } .LC_topic_bar span { + left: 0.5em; + position: absolute; vertical-align: middle; + font-size: 1.2em; } .LC_topic_bar img { @@ -5873,6 +5942,13 @@ div.LC_createcourse { margin: 10px 10px 10px 10px; } +.LC_dccid { + margin: 0.2em 0 0 0; + padding: 0; + font-size: 90%; + display:none; +} + /* ---- Remove when done ---- # The following styles is part of the redesign of LON-CAPA and are # subject to change during this project. @@ -5963,6 +6039,13 @@ fieldset > legend { margin: 0.2em 0 0 0; } +#LC_realm { + margin: 0.2em 0 0 0; + padding: 0; + font-weight: bold; + text-align: center; +} + #LC_nav_bar em { font-weight: bold; font-style: normal; @@ -6127,7 +6210,7 @@ ol#LC_PathBreadcrumbs { padding-left: 10px; margin: 0; list-style-position: inside; - /* SD working here + /* SD working here white-space: nowrap; */ } @@ -6136,8 +6219,8 @@ ol#LC_PathBreadcrumbs li, ul.LC_CourseBreadcrumbs li { display: inline; white-space: nowrap; - /* SD working here - white-space: normal; */ + /* SD working here + white-space: normal; */ } ol#LC_MenuBreadcrumbs li a, @@ -6391,11 +6474,29 @@ a.LC_toolbarItem { background-color:transparent; } +ul.LC_funclist { + margin: 0; + padding: 0.5em 1em 0.5em 0; +} + +ul.LC_funclist + ul.LC_funclist { + /* + left border as a seperator if we have more than + one list + */ + border-left: 1px solid $sidebg; + /* + this hides the left border behind the border of the + outer box if element is wrapped to the next 'line' + */ + margin-left: -1px; +} + ul.LC_funclist li { - float: left; + display: inline; white-space: nowrap; - height: 35px; /* at least as high as heighest list item */ - margin: 0 15px 15px 10px; + margin: 0 0 0 25px; + line-height: 150%; } @@ -6674,6 +6775,11 @@ sub start_page { # Don't add anything more if only_body wanted return $result if $args->{'only_body'}; + #Breadcrumbs for Construction Space provided by &bodytag. + if (($env{'environment.remote'} eq 'off') && ($env{'request.state'} eq 'construct')) { + return $result; + } + #Breadcrumbs if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) { &Apache::lonhtmlcommon::clear_breadcrumbs(); @@ -9552,6 +9658,8 @@ sub extract_categories { my $trailstr; if ($name eq 'instcode') { $trailstr = &mt('Official courses (with institutional codes)'); + } elsif ($name eq 'communities') { + $trailstr = &mt('Communities'); } else { $trailstr = $name; } @@ -9664,12 +9772,14 @@ cathash - reference to hash of categorie currcat - scalar with an & separated list of categories assigned to a course. +type - scalar contains course type (Course or Community). + Returns: $output (markup to be displayed) =cut sub assign_categories_table { - my ($cathash,$currcat) = @_; + my ($cathash,$currcat,$type) = @_; my $output; if (ref($cathash) eq 'HASH') { my (@cats,@trails,%allitems,%idx,@jsarray,@path,$maxdepth); @@ -9678,15 +9788,20 @@ sub assign_categories_table { if (@cats > 0) { my $itemcount = 0; if (ref($cats[0]) eq 'ARRAY') { - $output = &Apache::loncommon::start_data_table(); my @currcategories; if ($currcat ne '') { @currcategories = split('&',$currcat); } + my $table; for (my $i=0; $i<@{$cats[0]}; $i++) { my $parent = $cats[0][$i]; - my $css_class = $itemcount%2?' class="LC_odd_row"':''; next if ($parent eq 'instcode'); + if ($type eq 'Community') { + next unless ($parent eq 'communities'); + } else { + next if ($parent eq 'communities'); + } + my $css_class = $itemcount%2?' class="LC_odd_row"':''; my $item = &escape($parent).'::0'; my $checked = ''; if (@currcategories > 0) { @@ -9694,18 +9809,26 @@ sub assign_categories_table { $checked = ' checked="checked"'; } } - $output .= ''. - ''.$parent.''. - ''; + my $parent_title = $parent; + if ($parent eq 'communities') { + $parent_title = &mt('Communities'); + } + $table .= ''. + ''.$parent_title.''. + ''; my $depth = 1; push(@path,$parent); - $output .= &assign_category_rows($itemcount,\@cats,$depth,$parent,\@path,\@currcategories); + $table .= &assign_category_rows($itemcount,\@cats,$depth,$parent,\@path,\@currcategories); pop(@path); - $output .= ''; + $table .= ''; $itemcount ++; } - $output .= &Apache::loncommon::end_data_table(); + if ($itemcount) { + $output = &Apache::loncommon::start_data_table(). + $table. + &Apache::loncommon::end_data_table(); + } } } }