--- loncom/interface/loncommon.pm 2009/05/27 13:42:04 1.826 +++ loncom/interface/loncommon.pm 2009/07/26 20:39:46 1.866 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.826 2009/05/27 13:42:04 bisitz Exp $ +# $Id: loncommon.pm,v 1.866 2009/07/26 20:39:46 kalberla Exp $ # # Copyright Michigan State University Board of Trustees # @@ -483,7 +483,7 @@ ENDAUTHORBRW sub coursebrowser_javascript { my ($domainfilter,$sec_element,$formname)=@_; - my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role'); + my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Community - for which you wish to add/modify a user role'); my $output = ' +END_MYBLOCK + my $popupUrl = "/adm/blockingstatus/$querystring"; + $output.="\nBlocking Table"; + + return ($blocked, $output); +} +sub blocking_status_print { my ($activity,$uname,$udom) = @_; my %setters; my ($blocked,$output,$ownitem,$is_course); @@ -3883,8 +3916,12 @@ sub blocking_status { my $category; if ($activity eq 'boards') { $category = 'Discussion posts in this course'; + } elsif ($activity eq 'chat') { + $category = 'Chat'; + } elsif ($activity eq 'msgdisplay') { + $category = 'This message'; } elsif ($activity eq 'blogs') { - $category = 'Blogs'; + $category = 'Blogs'; } elsif ($activity eq 'port') { if (defined($uname) && defined($udom)) { if ($uname eq $env{'user.name'} && @@ -3914,6 +3951,8 @@ sub blocking_status { } } elsif ($activity eq 'groups') { $category = 'Groups in this course'; + } else { + $category = 'Communication'; } my $showstart = &Apache::lonlocal::locallocaltime($startblock); my $showend = &Apache::lonlocal::locallocaltime($endblock); @@ -4183,6 +4222,34 @@ sub designparm { ############################################## =pod +=item * &authorspace() + +Inputs: ./. + +Returns: Path to the Construction Space of the current user's + accessed author space + The author space will be that of the current user + when accessing the own author space + and that of the co-author/assistent co-author + when accessing the co-author's/assistent co-author's + space + +=cut + +sub authorspace { + my $caname = ''; + if ($env{'request.role'} =~ /^ca|^aa/) { + (undef,$caname) = + ($env{'request.role'}=~/($match_domain)\/($match_username)$/); + } else { + $caname = $env{'user.name'}; + } + return '/priv/'.$caname.'/'; +} + +############################################## +=pod + =item * &head_subbox() Inputs: $content (contains HTML code with page functions, etc.) @@ -4195,7 +4262,7 @@ Returns: HTML div with $content sub head_subbox { my ($content)=@_; my $output = - '
' #FIXME: solve conflicts with lonhtmlcommon:breadcrumbs LC_head_subbox + '
' .$content .'
' } @@ -4274,10 +4341,6 @@ Inputs: =item * $forcereg, if page should register as content page (relevant for text interface only) -=item * $customtitle, alternate text to use instead of $title - in the title box that appears, this text - is not auto translated like the $title is - =item * $no_nav_bar, if true, keep the 'what is this' info but remove the navigational links @@ -4302,7 +4365,7 @@ other decorations will be returned. =cut sub bodytag { - my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle, + my ($title,$function,$addentries,$bodyonly,$domain,$forcereg, $no_nav_bar,$bgcolor,$no_inline_link,$args)=@_; if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } @@ -4357,25 +4420,7 @@ sub bodytag { $name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}); } - my $roleinfo=(< -
- $name -   -
-
-$role  -
-
-$realm  -
- -ENDROLE - my $titleinfo = '

'.$title.'

'; - if ($customtitle) { - $titleinfo = $customtitle; - } # # Extra info if you are the DC my $dc_info = ''; @@ -4388,31 +4433,33 @@ ENDROLE $dc_info = '('.$dc_info.')'; } - if (($env{'environment.remote'} eq 'off') || ($args->{'suppress_header_logos'})) { + $role = "($role)" if $role; + &get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); + + if ($env{'environment.remote'} eq 'off') { # No Remote if ($env{'request.state'} eq 'construct') { $forcereg=1; } - if (!$customtitle && $env{'request.state'} eq 'construct') { - $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls - } +# if ($env{'request.state'} eq 'construct') { +# $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls +# } my $titletable = '' - ."".$roleinfo + ."" .'
$titleinfo $dc_info
$titleinfo $dc_info
'; if ($no_nav_bar) { $bodytag .= $titletable; } else { - $bodytag .= qq|
$name ($role)
- $realm $dc_info
|; + $bodytag .= qq|
$name $role
+ $realm $dc_info
| unless $env{'form.inhibitmenu'}; + if ($env{'request.state'} eq 'construct') { - $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg, - $titletable); + $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$titletable); } else { - $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg). - $titletable; + $bodytag .= &Apache::lonmenu::menubuttons($forcereg).$titletable; } } return $bodytag; @@ -4430,7 +4477,12 @@ ENDROLE # Explicit link to get inline menu my $menu= ($no_inline_link?'' - :'
'.&mt('Switch to Inline Menu Mode').''); + :''.&mt('Switch to Inline Menu Mode').''); + $bodytag .= qq|
$name $role + $realm $dc_info
+
    +
  1. $menu
  2. +
| unless $env{'form.inhibitmenu'}; # return(<$messages  $titleinfo $dc_info $menu -$roleinfo ENDBODY @@ -4561,9 +4612,9 @@ sub standard_css { my $sans = 'Verdana,Arial,Helvetica,sans-serif'; my $mono = 'monospace'; - my $data_table_head = $tabbg; - my $data_table_light = '#EEEEEE'; - my $data_table_dark = '#DDDDDD'; + my $data_table_head = $sidebg; + my $data_table_light = '#FAFAFA'; + my $data_table_dark = '#F0F0F0'; my $data_table_darker = '#CCCCCC'; my $data_table_highlight = '#FFFF00'; my $mail_new = '#FFBB77'; @@ -4600,6 +4651,14 @@ a:focus { background: yellow } +hr { + clear: both; + color: $tabbg; + background-color: $tabbg; + height: 3px; + border: none; +} + form, .inline { display: inline; } @@ -4680,7 +4739,6 @@ div.LC_confirm_box .LC_success img { .LC_disc_action_links_bar { background: $tabbg; - font-family: $sans; border: none; margin: 4px; } @@ -4723,10 +4781,10 @@ table#LC_nav_location { table#LC_title_bar a { color: $fontmenu; } - + table#LC_title_bar { clear: both; - /*display: none;*/ + display: none; } table#LC_title_bar, @@ -4738,45 +4796,15 @@ table#LC_title_bar.LC_with_remote { border-width: $border; background: $pgbg; color: $fontmenu; - font-family: $sans; border-collapse: collapse; padding: 0; margin: 0; } -table.LC_docs_path { - width: 100%; - border: 0; - background: $pgbg; - font-family: $sans; - border-collapse: collapse; - padding: 0; -} - table#LC_title_bar td { background: $tabbg; } -table#LC_title_bar .LC_title_bar_who { - background: $tabbg; - color: $fontmenu; - font: small $sans; - text-align: right; - margin: 0; -} - -table#LC_title_bar div.LC_title_bar_name { - margin: 0; -} - -table#LC_title_bar div.LC_title_bar_role { - margin: 0; -} - -table#LC_title_bar div.LC_title_bar_realm { - margin: 0; -} - table#LC_menubuttons img{ border: none; } @@ -4792,7 +4820,6 @@ table#LC_top_nav td { table#LC_top_nav td a, div#LC_top_nav a { color: $font; - font-family: $sans; } table#LC_top_nav td.LC_top_nav_logo { @@ -4817,21 +4844,12 @@ table#LC_top_nav td.LC_top_nav_login { text-align: center; } -table.LC_breadcrumbs td, -table.LC_docs_path td { - background: $tabbg; - color: $fontmenu; - font-family: $sans; - font-size: smaller; +.LC_breadcrumbs_component { + float: right; + margin: 0 1em; } - -table.LC_breadcrumbs td.LC_breadcrumbs_component, -table.LC_docs_path td.LC_docs_path_component { - background: $tabbg; - color: $fontmenu; - font-family: $sans; - font-size: larger; - text-align: right; +.LC_breadcrumbs_component img { + vertical-align: middle; } td.LC_table_cell_checkbox { @@ -4846,17 +4864,21 @@ table#LC_mainmenu td.LC_mainmenu_column font-size: 70%; } -#LC_head_subbox { +#LC_breadcrumbs { clear:both; background: $sidebg; border-bottom: 1px solid $lg_border_color; - height: 32px; line-height: 32px; margin: 0; padding: 0; } -#LC_head_subbox2 { /* FIXME: replace by LC_head_subbox once lonhtmlcommon::breadcrumbs has been fixed */ +/* Preliminary fix to hide breadcrumbs inside remote control window */ +#LC_remote #LC_breadcrumbs { + display:none; +} + +#LC_head_subbox { clear:both; background: #F8F8F8; /* $sidebg; */ border-bottom: 1px solid $lg_border_color; @@ -4874,7 +4896,6 @@ table#LC_mainmenu td.LC_mainmenu_column .LC_menubuttons_inline_text { color: $font; - font-family: $sans; font-size: 90%; padding-left:3px; } @@ -4886,7 +4907,6 @@ table#LC_mainmenu td.LC_mainmenu_column .LC_menubuttons_category { color: $font; background: $pgbg; - font-family: $sans; font-size: larger; font-weight: bold; } @@ -4896,29 +4916,18 @@ td.LC_menubuttons_text { } .LC_current_location { - font-family: $sans; background: $tabbg; } .LC_new_mail { - font-family: $sans; background: $tabbg; font-weight: bold; } -.LC_preferences_labeltext { - font-family: $sans; - text-align: right; -} - .LC_roleslog_note { font-size: small; } -.LC_mail_functions { - font-weight: bold; -} - table.LC_data_table, table.LC_mail_list { border: 1px solid #000000; @@ -5166,7 +5175,6 @@ span.LC_current_location { span.LC_parm_menu_item { font-size: larger; - font-family: $sans; } span.LC_parm_scope_all { @@ -5221,7 +5229,6 @@ table#LC_helpmenu { table#LC_helpmenu fieldset legend { font-size: larger; - font-weight: bold; } table#LC_helpmenu_links { @@ -5274,7 +5281,7 @@ table.LC_pick_box { } table.LC_pick_box td.LC_pick_box_title { - background: $tabbg; + background: $sidebg; font-weight: bold; text-align: right; vertical-align: top; @@ -5282,14 +5289,6 @@ table.LC_pick_box td.LC_pick_box_title { padding: 8px; } -table.LC_pick_box td.LC_selfenroll_pick_box_title { - background: $tabbg; - font-weight: bold; - text-align: right; - width: 350px; - padding: 8px; -} - table.LC_pick_box td.LC_pick_box_value { text-align: left; padding: 8px; @@ -5409,7 +5408,6 @@ table.LC_notify_front_page td { } .LC_topic_bar { - font-family: $sans; font-weight: bold; width: 100%; background: $tabbg; @@ -5438,17 +5436,30 @@ table.LC_status_selector td { div.LC_feedback_link { clear: both; - background: white; + background: $sidebg; width: 100%; + padding-bottom: 10px; + border: 1px $tabbg solid; + height: 22px; + line-height: 22px; + padding-top: 5px; +} + +div.LC_feedback_link img { + height: 22px; +} + +div.LC_feedback_link a{ + text-decoration: none; } span.LC_feedback_link { - background: $feedback_link_bg; + /* background: $feedback_link_bg; */ font-size: larger; } span.LC_message_link { - background: $feedback_link_bg; + /* background: $feedback_link_bg; */ font-size: larger; position: absolute; right: 1em; @@ -5466,14 +5477,12 @@ table.LC_prior_tries td { .LC_answer_correct { background: lightgreen; - font-family: $sans; color: darkgreen; padding: 6px; } .LC_answer_charged_try { background: #FFAAAA; - font-family: $sans; color: darkred; padding: 6px; } @@ -5482,28 +5491,24 @@ table.LC_prior_tries td { .LC_answer_no_grade, .LC_answer_late { background: lightyellow; - font-family: $sans; color: black; padding: 6px; } .LC_answer_previous { background: lightblue; - font-family: $sans; color: darkblue; padding: 6px; } .LC_answer_no_message { background: #FFFFFF; - font-family: $sans; color: black; padding: 6px; } .LC_answer_unknown { background: orange; - font-family: $sans; color: black; padding: 6px; } @@ -5538,8 +5543,7 @@ table.LC_prior_match tr td { border: 1px solid #000000; } -td.LC_nobreak, -span.LC_nobreak { +.LC_nobreak { white-space: nowrap; } @@ -5563,21 +5567,24 @@ table.LC_docs_documents td.LC_docs_docum padding: 4px; } -.LC_docs_entry_move { - border: none; - border-collapse: collapse; -} - -.LC_docs_entry_move td { - border: 2px solid #BBBBBB; +div.LC_docs_entry_move { + border: 1px solid #BBBBBB; background: #DDDDDD; + width: 22px; + padding: 1px; + margin: 0; } -.LC_docs_editor td.LC_docs_entry_commands { +table.LC_data_table tr > td.LC_docs_entry_commands, +table.LC_data_table tr > td.LC_docs_entry_parameter { background: #DDDDDD; font-size: x-small; } +.LC_docs_entry_parameter { + white-space: nowrap; +} + .LC_docs_copy { color: #000099; } @@ -5599,17 +5606,6 @@ table.LC_docs_documents td.LC_docs_docum font-size: x-small; } -.LC_docs_editor td.LC_docs_entry_title, -.LC_docs_editor td.LC_docs_entry_icon { - background: #FFFFBB; -} - -.LC_docs_editor td.LC_docs_entry_parameter { - background: #BBBBFF; - font-size: x-small; - white-space: nowrap; -} - table.LC_docs_adddocs td, table.LC_docs_adddocs th { border: 1px solid #BBBBBB; @@ -5741,12 +5737,6 @@ div.LC_edit_problem_editxml_header div { margin-top: 5px; } -div.LC_edit_problem_header_edit_row { - background: $tabbg; - padding: 3px; - margin-bottom: 5px; -} - div.LC_edit_problem_header_title { font-weight: bold; font-size: larger; @@ -5776,14 +5766,6 @@ div.LC_edit_problem_saves { padding-bottom: 5px; } -hr.LC_edit_problem_divide { - clear: both; - color: $tabbg; - background-color: $tabbg; - height: 3px; - border: none; -} - img.stift{ border-width: 0; vertical-align: middle; @@ -5802,7 +5784,6 @@ table#LC_mainmenu td.LC_mainmenu_col_fie .LC_mainmenu_fieldset_category { color: $font; background: $pgbg; - font-family: $sans; font-size: small; font-weight: bold; } @@ -5848,13 +5829,14 @@ h2,h3,h4,h5,h6 { border-bottom:solid 1px $lg_border_color; } +.LC_Box > .LC_hcell { + margin: 0 -10px 10px -10px; +} + .LC_noBorder { border: 0; } - -/* Main Header with discription of Person, Course, etc. */ - .LC_Right { float: right; margin: 0; @@ -5883,9 +5865,14 @@ dl,ul,div,fieldset { /* overflow: hidden; */ } +fieldset > legend { + font-weight: bold; + padding: 0 5px 0 5px; +} + #LC_nav_bar { float: left; - margin: 0; + margin: 0.2em 0 0 0; } #LC_nav_bar em{ @@ -5895,9 +5882,10 @@ dl,ul,div,fieldset { ol.LC_smallMenu { float: right; + margin: 0.2em 0 0 0; } -ol.LC_smallMenu, ol#LC_PathBreadcrumbs { +ol#LC_PathBreadcrumbs { margin: 0; } @@ -5924,12 +5912,10 @@ ul#LC_TabMainMenuContent { list-style: none; padding: 0; margin: 0; - float:left; width: 100%; } ul#LC_TabMainMenuContent li { - float: left; font-weight: bold; line-height: 1.8em; padding: 0 0.8em; @@ -5938,14 +5924,22 @@ ul#LC_TabMainMenuContent li { vertical-align: middle; } -ul.LC_TabContent , -ul.LC_TabContentBigger { +ul.LC_TabContent { display:block; + background: $sidebg; + border-bottom: solid 1px $lg_border_color; list-style:none; - margin: 0; + margin: -10px -10px 0 -10px; padding: 0; } +ul.LC_TabContentBigger { + display:block; + list-style:none; + padding: 0; +} + + ul.LC_TabContent li, ul.LC_TabContentBigger li { display: inline; @@ -5961,7 +5955,7 @@ ul#LC_TabMainMenuContent li a { } ul.LC_TabContent { - min-height:1.6em; + min-height:1.5em; } ul.LC_TabContent li { @@ -5971,6 +5965,10 @@ ul.LC_TabContent li { border-bottom:solid 1px $lg_border_color; } +ul.LC_TabContent .right { + float:right; +} + ul.LC_TabContent li a, ul.LC_TabContent li { color:rgb(47,47,47); text-decoration:none; @@ -5981,7 +5979,7 @@ ul.LC_TabContent li a, ul.LC_TabContent ul.LC_TabContent li:hover, ul.LC_TabContent li.active { background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center; - border-bottom:solid 1px #FFFFFF; + border-bottom:solid 2px #FFFFFF; padding-right: 16px; } @@ -5991,23 +5989,37 @@ ul.LC_TabContentBigger li { border-left:solid 1px $lg_border_color; padding:5px 10px 5px 10px; margin-left:2px; - background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; + background: #d9d9d9; +} + +#maincoursedoc { + clear:both; } ul.LC_TabContentBigger li:hover, ul.LC_TabContentBigger li.active { - background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom; + background: #ffffff; + color:$font; } ul.LC_TabContentBigger li, ul.LC_TabContentBigger li a { font-size:110%; font-weight:bold; + color: #737373; +} + +ul.LC_CourseBreadcrumbs { + background: $sidebg; + line-height: 32px; + padding-left: 10px; + margin: 0 0 10px 0; + list-style-position: inside; + } ol#LC_MenuBreadcrumbs, -ol#LC_PathBreadcrumbs, -ul#LC_CourseBreadcrumbs { +ol#LC_PathBreadcrumbs { padding-left: 10px; margin: 0; list-style-position: inside; @@ -6015,14 +6027,13 @@ ul#LC_CourseBreadcrumbs { ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li, -ul#LC_CourseBreadcrumbs li { - display: inline; - padding: 0 0 0 10px; - overflow:hidden; +ul.LC_CourseBreadcrumbs li { + display: inline; + white-space: nowrap; } ol#LC_MenuBreadcrumbs li a, -ul#LC_CourseBreadcrumbs li a { +ul.LC_CourseBreadcrumbs li a { text-decoration: none; font-size:90%; } @@ -6033,18 +6044,9 @@ ol#LC_PathBreadcrumbs li a { font-weight:bold; } -.LC_BoxPadding { - padding: 10px; -} - -.LC_ContentBoxSpecial { - border: solid 1px $lg_border_color; -} - -.LC_ContentBoxSpecialContactInfo { - border: solid 1px $lg_border_color; - max-width:25%; - min-width:25%; +.LC_Box { + border: solid 1px $lg_border_color; + padding: 0 10px 10px 10px; } .LC_AboutMe_Image { @@ -6133,26 +6135,6 @@ div.LC_columnSection>* { overflow:hidden; } -.ContentBoxSpecialTemplate { - border: solid 1px $lg_border_color; -} - -.ContentBoxTemplate { - padding:10px; -} - -div.LC_columnSection > .ContentBoxTemplate, -div.LC_columnSection > .ContentBoxSpecialTemplate { - width: 600px; -} - -.clear { - clear: both; - line-height: 0; - font-size: 0; - height: 0; -} - .LC_loginpage_container { text-align:left; margin : 0 auto; @@ -6207,7 +6189,7 @@ table em { table.LC_tableBrowseRes, table.LC_tableOfContent { border:none; - border-spacing: 1; + border-spacing: 1px; padding: 3px; background-color: #FFFFFF; font-size: 90%; @@ -6301,7 +6283,7 @@ a.LC_toolbarItem { background-color:transparent; } -ul.LC_functionslist li { +ul.LC_funclist li { float: left; white-space: nowrap; height: 35px; /* at least as high as heighest list item */ @@ -6436,7 +6418,8 @@ sub xml_begin { .''; } else { - $output=''; + $output='' + .''; } return $output; } @@ -6512,9 +6495,6 @@ $args - additional optional args support a html attribute force_register -> if is true will turn on the &bodytag() $forcereg arg - body_title -> alternate text to use instead of $title - in the title box that appears, this text - is not auto translated like the $title is frameset -> if true will start with a rather than skip_phases -> hash ref of @@ -6558,16 +6538,15 @@ sub start_page { my $attr_string = &make_attr_string($args->{'force_register'}, $args->{'add_entries'}); $result .= "\n\n"; - } else { - $result .= - &bodytag($title, - $args->{'function'}, $args->{'add_entries'}, - $args->{'only_body'}, $args->{'domain'}, - $args->{'force_register'}, $args->{'body_title'}, - $args->{'no_nav_bar'}, $args->{'bgcolor'}, - $args->{'no_inline_link'}, - $args); - } + } else { + $result .= + &bodytag($title, + $args->{'function'}, $args->{'add_entries'}, + $args->{'only_body'}, $args->{'domain'}, + $args->{'force_register'}, $args->{'no_nav_bar'}, + $args->{'bgcolor'}, $args->{'no_inline_link'}, + $args); + } } if ($args->{'js_ready'}) { @@ -8589,7 +8568,7 @@ sub csv_print_samples { $r->print(&mt('Samples').'
'.&start_data_table(). &start_data_table_header_row()); foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { - $r->print(''.&mt('Column [_1]',($sample+1)).''); } + $r->print(''.&mt('Column [_1]',($sample+1)).''); } $r->print(&end_data_table_header_row()); foreach my $hash (@$samples) { $r->print(&start_data_table_row()); @@ -10238,7 +10217,7 @@ sub group_term { my $crstype = &course_type(); my %names = ( 'Course' => 'group', - 'Group' => 'team', + 'Community' => 'group', ); return $names{$crstype}; } @@ -10431,7 +10410,7 @@ sub init_user_environment { &Apache::lonnet::usertools_access($username,$domain,$tool,'reload'); } - foreach my $crstype ('official','unofficial') { + foreach my $crstype ('official','unofficial','community') { $userenv{'canrequest.'.$crstype} = &Apache::lonnet::usertools_access($username,$domain,$crstype, 'reload','requestcourses');