form to
allow a user to select the domain to preform an operation in.
@@ -1786,16 +1807,15 @@ selected");
If the $showdomdesc flag is set, the domain name is followed by the domain description.
-If the $autosubmit flag is set, the form containing the domain selector will be auto-submitted by an onchange action.
+The optional $onchange argumnet specifies what should occur if the domain selector is changed, e.g., 'this.form.submit()' if the form is to be automatically submitted.
=cut
#-------------------------------------------
sub select_dom_form {
- my ($defdom,$name,$includeempty,$showdomdesc,$autosubmit) = @_;
- my $onchange;
- if ($autosubmit) {
- $onchange = ' onchange="this.form.submit()"';
+ my ($defdom,$name,$includeempty,$showdomdesc,$onchange) = @_;
+ if ($onchange) {
+ $onchange = ' onchange="'.$onchange.'"';
}
my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains());
if ($includeempty) { @domains=('',@domains); }
@@ -2299,7 +2319,7 @@ sub authform_internal{
$result = &mt
('[_1] Internally authenticated (with initial password [_2])',
''.$authtype,' '.$autharg);
- $result.=" ".&mt('Visible input').' ';
+ $result.=" ".&mt('Visible input').' ';
return $result;
}
@@ -3754,7 +3774,7 @@ sub blockcheck {
($env{'request.role'} !~ m{^st\./\Q$cdom\E/\Q$cnum\E}));
next if ($no_userblock);
- # Retrieve blocking times and identity of blocker for course
+ # Retrieve blocking times and identity of locker for course
# of specified user, unless user has 'evb' privilege.
my ($start,$end)=&get_blocks($setters,$activity,$cdom,$cnum);
@@ -3819,103 +3839,48 @@ sub parse_block_record {
return ($setuname,$setudom,$title,$blocks);
}
-sub build_block_table {
- my ($startblock,$endblock,$setters) = @_;
- my %lt = &Apache::lonlocal::texthash(
- 'cacb' => 'Currently active communication blocks',
- 'cour' => 'Course',
- 'dura' => 'Duration',
- 'blse' => 'Block set by'
- );
- my $output;
- $output = ' '.$lt{'cacb'}.': ';
- $output .= &start_data_table();
- $output .= '
-
- '.$lt{'cour'}.'
- '.$lt{'dura'}.'
- '.$lt{'blse'}.'
-
-';
- foreach my $course (keys(%{$setters})) {
- my %courseinfo=&Apache::lonnet::coursedescription($course);
- for (my $i=0; $i<@{$$setters{$course}{staff}}; $i++) {
- my ($uname,$udom) = @{$$setters{$course}{staff}[$i]};
- my $fullname = &plainname($uname,$udom);
- if (defined($env{'user.name'}) && defined($env{'user.domain'})
- && $env{'user.name'} ne 'public'
- && $env{'user.domain'} ne 'public') {
- $fullname = &aboutmewrapper($fullname,$uname,$udom);
- }
- my ($openblock,$closeblock) = @{$$setters{$course}{times}[$i]};
- $openblock = &Apache::lonlocal::locallocaltime($openblock);
- $closeblock= &Apache::lonlocal::locallocaltime($closeblock);
- $output .= &Apache::loncommon::start_data_table_row().
- ''.$courseinfo{'description'}.' '.
- ''.$openblock.' to '.$closeblock.' '.
- ''.$fullname.' '.
- &Apache::loncommon::end_data_table_row();
- }
- }
- $output .= &end_data_table();
-}
-
sub blocking_status {
- my ($activity,$uname,$udom) = @_;
- my %setters;
- my ($blocked,$output,$ownitem,$is_course);
- my ($startblock,$endblock)=&blockcheck(\%setters,$activity,$uname,$udom);
- if ($startblock && $endblock) {
- $blocked = 1;
- if (wantarray) {
- my $category;
- if ($activity eq 'boards') {
- $category = 'Discussion posts in this course';
- } elsif ($activity eq 'blogs') {
- $category = 'Blogs';
- } elsif ($activity eq 'port') {
- if (defined($uname) && defined($udom)) {
- if ($uname eq $env{'user.name'} &&
- $udom eq $env{'user.domain'}) {
- $ownitem = 1;
- }
- }
- $is_course = &Apache::lonnet::is_course($udom,$uname);
- if ($ownitem) {
- $category = 'Your portfolio files';
- } elsif ($is_course) {
- my $coursedesc;
- foreach my $course (keys(%setters)) {
- my %courseinfo =
- &Apache::lonnet::coursedescription($course);
- $coursedesc = $courseinfo{'description'};
- }
- $category = "Group portfolio in the course '$coursedesc'";
- } else {
- $category = 'Portfolio files belonging to ';
- if ($env{'user.name'} eq 'public' &&
- $env{'user.domain'} eq 'public') {
- $category .= &plainname($uname,$udom);
- } else {
- $category .= &aboutmewrapper(&plainname($uname,$udom),$uname,$udom);
- }
- }
- } elsif ($activity eq 'groups') {
- $category = 'Groups in this course';
- }
- my $showstart = &Apache::lonlocal::locallocaltime($startblock);
- my $showend = &Apache::lonlocal::locallocaltime($endblock);
- $output = ' '.&mt('[_1] will be inaccessible between [_2] and [_3] because communication is being blocked.',$category,$showstart,$showend).' ';
- if (!($activity eq 'port' && !($ownitem) && !($is_course))) {
- $output .= &build_block_table($startblock,$endblock,\%setters);
- }
- }
- }
- if (wantarray) {
- return ($blocked,$output);
- } else {
- return $blocked;
+ my $blocked;
+ my ($activity,$uname,$udom) = @_;
+ my %setters;
+ my ($startblock,$endblock)=&blockcheck(\%setters,$activity,$uname,$udom);
+ if ($startblock && $endblock) {
+ $blocked = 1;
+ }
+ if(!wantarray) {
+ return $blocked;
+ }
+ my $output;
+ my $querystring;
+ $querystring = "?activity=$activity";
+
+ $output .= <<"END_MYBLOCK";
+
+END_MYBLOCK
+ my $popupUrl = "/adm/blockingstatus/$querystring";
+ $output .= <<"END_BLOCK";
+
+
+END_BLOCK
+
+ return ($blocked, $output);
}
###############################################
@@ -4144,41 +4109,120 @@ Returns: value of designparamter $which
##############################################
sub designparm {
my ($which,$domain)=@_;
- if ($env{'browser.blackwhite'} eq 'on') {
- if ($which=~/\.(font|alink|vlink|link|textcol)$/) {
- return '#000000';
- }
- if ($which=~/\.(pgbg|sidebg|bgcol)$/) {
- return '#FFFFFF';
- }
- if ($which=~/\.tabbg$/) {
- return '#CCCCCC';
- }
- }
if (exists($env{'environment.color.'.$which})) {
- return $env{'environment.color.'.$which};
+ return $env{'environment.color.'.$which};
}
$domain=&determinedomain($domain);
my %domdesign = &get_domainconf($domain);
my $output;
if ($domdesign{$domain.'.'.$which} ne '') {
- $output = $domdesign{$domain.'.'.$which};
+ $output = $domdesign{$domain.'.'.$which};
} else {
$output = $defaultdesign{$which};
}
if (($which =~ /^(student|coordinator|author|admin)\.img$/) ||
($which =~ /login\.(img|logo|domlogo|login)/)) {
if ($output =~ m{^/(adm|res)/}) {
- if ($output =~ m{^/res/}) {
- my $local_name = &Apache::lonnet::filelocation('',$output);
- &Apache::lonnet::repcopy($local_name);
- }
+ if ($output =~ m{^/res/}) {
+ my $local_name = &Apache::lonnet::filelocation('',$output);
+ &Apache::lonnet::repcopy($local_name);
+ }
$output = &lonhttpdurl($output);
}
}
return $output;
}
+##############################################
+=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.)
+
+Returns: HTML div with $content
+ To be included in page header
+
+=cut
+
+sub head_subbox {
+ my ($content)=@_;
+ my $output =
+ ''
+ .$content
+ .'
'
+}
+
+##############################################
+=pod
+
+=item * &CSTR_pageheader()
+
+Inputs: ./.
+
+Returns: HTML div with CSTR path and recent box
+ To be included on Construction Space pages
+
+=cut
+
+sub CSTR_pageheader {
+ # this is for resources; directories have customtitle, and crumbs
+ # and select recent are created in lonpubdir.pm
+ my ($uname,$thisdisfn)=
+ ($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
+ my $formaction='/priv/'.$uname.'/'.$thisdisfn;
+ $formaction=~s/\/+/\//g;
+
+ my $parentpath = '';
+ my $lastitem = '';
+ if ($thisdisfn =~ m-(.+/)([^/]*)$-) {
+ $parentpath = $1;
+ $lastitem = $2;
+ } else {
+ $lastitem = $thisdisfn;
+ }
+ return
+ ''
+ .&Apache::loncommon::help_open_menu('','',3,'Authoring') #FIXME: Broken? Where is it?
+ .''.&mt('Construction Space:').' '
+ .''
+ .&Apache::lonmenu::constspaceform()
+ .'
';
+}
+
###############################################
###############################################
@@ -4211,10 +4255,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
@@ -4239,7 +4279,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); }
@@ -4294,25 +4334,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 = '';
@@ -4325,54 +4347,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') {
- # this is for resources; directories have customtitle, and crumbs
- # and select recent are created in lonpubdir.pm
- my ($uname,$thisdisfn)=
- ($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
- my $formaction='/priv/'.$uname.'/'.$thisdisfn;
- $formaction=~s/\/+/\//g;
-
- my $parentpath = '';
- my $lastitem = '';
- if ($thisdisfn =~ m-(.+/)([^/]*)$-) {
- $parentpath = $1;
- $lastitem = $2;
- } else {
- $lastitem = $thisdisfn;
- }
- $titleinfo =
- &Apache::loncommon::help_open_menu('','',3,'Authoring')
- .''.&mt('Construction Space').' : '
- .''
- .&Apache::lonmenu::constspaceform();
- }
+# if ($env{'request.state'} eq 'construct') {
+# $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls
+# }
my $titletable = ''
- ." $titleinfo $dc_info ".$roleinfo
+ ." $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;
@@ -4390,7 +4391,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
+ | unless $env{'form.inhibitmenu'};
#
return(<$messages
$titleinfo $dc_info $menu
-$roleinfo
ENDBODY
@@ -4444,15 +4449,6 @@ sub make_attr_string {
$attr_ref->{'style'}=$style.'; font-size: x-large;';
}
- if ($env{'browser.blackwhite'} eq 'on') {
- delete($attr_ref->{'font'});
- delete($attr_ref->{'link'});
- delete($attr_ref->{'alink'});
- delete($attr_ref->{'vlink'});
- delete($attr_ref->{'bgcolor'});
- delete($attr_ref->{'background'});
- }
-
my $attr_string;
foreach my $attr (keys(%$attr_ref)) {
$attr_string .= " $attr=\"".$attr_ref->{$attr}.'" ';
@@ -4530,9 +4526,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';
@@ -4569,6 +4565,14 @@ a:focus {
background: yellow
}
+hr {
+ clear: both;
+ color: $tabbg;
+ background-color: $tabbg;
+ height: 3px;
+ border: none;
+}
+
form, .inline {
display: inline;
}
@@ -4649,7 +4653,6 @@ div.LC_confirm_box .LC_success img {
.LC_disc_action_links_bar {
background: $tabbg;
- font-family: $sans;
border: none;
margin: 4px;
}
@@ -4692,9 +4695,10 @@ table#LC_nav_location {
table#LC_title_bar a {
color: $fontmenu;
}
-
+
table#LC_title_bar {
- /*display: none;*/
+ clear: both;
+ display: none;
}
table#LC_title_bar,
@@ -4706,48 +4710,15 @@ table#LC_title_bar.LC_with_remote {
border-width: $border;
background: $pgbg;
color: $fontmenu;
- font-family: $sans;
- border-collapse: collapse;
- padding: 0;
-}
-
-table.LC_docs_path {
- width: 100%;
- border: 0;
- background: $pgbg;
- font-family: $sans;
border-collapse: collapse;
padding: 0;
+ margin: 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 .LC_title_bar_name {
- margin: 0;
-}
-
-table#LC_title_bar .LC_title_bar_role {
- margin: 0;
-}
-
-table#LC_title_bar .LC_title_bar_realm {
- margin: 0;
-}
-
-span.LC_metadata {
- font-family: $sans;
-}
-
table#LC_menubuttons img{
border: none;
}
@@ -4763,7 +4734,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 {
@@ -4788,21 +4758,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 {
@@ -4817,6 +4778,28 @@ table#LC_mainmenu td.LC_mainmenu_column
font-size: 70%;
}
+#LC_breadcrumbs {
+ clear:both;
+ background: $sidebg;
+ border-bottom: 1px solid $lg_border_color;
+ line-height: 32px;
+ margin: 0;
+ padding: 0;
+}
+
+/* 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;
+ margin: 0 0 10px 0;
+ padding: 5px;
+}
+
.LC_fontsize_medium {
font-size: 85%;
}
@@ -4827,7 +4810,6 @@ table#LC_mainmenu td.LC_mainmenu_column
.LC_menubuttons_inline_text {
color: $font;
- font-family: $sans;
font-size: 90%;
padding-left:3px;
}
@@ -4839,7 +4821,6 @@ table#LC_mainmenu td.LC_mainmenu_column
.LC_menubuttons_category {
color: $font;
background: $pgbg;
- font-family: $sans;
font-size: larger;
font-weight: bold;
}
@@ -4849,29 +4830,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;
@@ -5119,7 +5089,6 @@ span.LC_current_location {
span.LC_parm_menu_item {
font-size: larger;
- font-family: $sans;
}
span.LC_parm_scope_all {
@@ -5174,7 +5143,6 @@ table#LC_helpmenu {
table#LC_helpmenu fieldset legend {
font-size: larger;
- font-weight: bold;
}
table#LC_helpmenu_links {
@@ -5227,7 +5195,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;
@@ -5235,14 +5203,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;
@@ -5362,7 +5322,6 @@ table.LC_notify_front_page td {
}
.LC_topic_bar {
- font-family: $sans;
font-weight: bold;
width: 100%;
background: $tabbg;
@@ -5391,17 +5350,45 @@ 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;
+ vertical-align:middle;
+}
+
+div.LC_feedback_link a{
+ text-decoration: none;
+}
+
+div.LC_comblock {
+ display:inline;
+ color:$font;
+ font-size:90%;
+}
+
+div.LC_feedback_link div.LC_comblock {
+ padding-left:5px;
+}
+
+div.LC_feedback_link div.LC_comblock a {
+ color:$font;
}
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;
@@ -5419,14 +5406,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;
}
@@ -5435,28 +5420,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;
}
@@ -5491,8 +5472,7 @@ table.LC_prior_match tr td {
border: 1px solid #000000;
}
-td.LC_nobreak,
-span.LC_nobreak {
+.LC_nobreak {
white-space: nowrap;
}
@@ -5516,21 +5496,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;
}
@@ -5552,17 +5535,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;
@@ -5694,12 +5666,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;
@@ -5729,14 +5695,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;
@@ -5755,7 +5713,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;
}
@@ -5801,13 +5758,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;
@@ -5836,9 +5794,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{
@@ -5848,9 +5811,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;
}
@@ -5877,12 +5841,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;
@@ -5891,21 +5853,18 @@ 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: 0 -10px;
padding: 0;
}
ul.LC_TabContent li,
ul.LC_TabContentBigger li {
- display: inline;
- border-right: solid 1px $lg_border_color;
float:left;
- line-height:140%;
- white-space:nowrap;
}
ul#LC_TabMainMenuContent li a {
@@ -5914,7 +5873,7 @@ ul#LC_TabMainMenuContent li a {
}
ul.LC_TabContent {
- min-height:1.6em;
+ min-height:1.5em;
}
ul.LC_TabContent li {
@@ -5924,6 +5883,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;
@@ -5934,56 +5897,86 @@ 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;
}
-ul.LC_TabContentBigger li {
- vertical-align:bottom;
- border-top:solid 1px $lg_border_color;
- 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;
+#maincoursedoc {
+ clear:both;
}
-ul.LC_TabContentBigger li:hover,
-ul.LC_TabContentBigger li.active {
- background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom;
+ul.LC_TabContentBigger {
+ display:block;
+ list-style:none;
+ padding: 0;
}
-ul.LC_TabContentBigger li,
+ul.LC_TabContentBigger li {
+ vertical-align:bottom;
+ height: 30px;
+ font-size:110%;
+ font-weight:bold;
+ color: #737373;
+}
+
+
ul.LC_TabContentBigger li a {
- font-size:110%;
- font-weight:bold;
+ background:url('/adm/lonIcons/tabbgleft.gif') left bottom no-repeat;
+ height: 30px;
+ line-height: 30px;
+ text-align: center;
+ display: block;
+ text-decoration: none;
}
-ol#LC_MenuBreadcrumbs,
-ol#LC_PathBreadcrumbs,
+ul.LC_TabContentBigger li:hover a,
+ul.LC_TabContentBigger li.active a {
+ background:url('/adm/lonIcons/tabbgleft.gif') left top no-repeat;
+ color:$font;
+ text-decoration: underline;
+}
+
+
+ul.LC_TabContentBigger li b {
+ background: url('/adm/lonIcons/tabbgright.gif') no-repeat right bottom;
+ display: block;
+ float: left;
+ padding: 0 30px;
+}
+
+ul.LC_TabContentBigger li:hover b,
+ul.LC_TabContentBigger li.active b {
+ background:url('/adm/lonIcons/tabbgright.gif') right top no-repeat;
+ color:$font;
+ border-bottom: 1px solid #FFFFFF;
+}
+
+
ul.LC_CourseBreadcrumbs {
- border-top: solid 1px RGB(255, 255, 255);
- height: 20px;
- line-height: 20px;
- vertical-align: bottom;
- margin: 0 0 30px 0;
+ background: $sidebg;
+ line-height: 32px;
+ padding-left: 10px;
+ margin: 0 0 10px 0;
+ list-style-position: inside;
+
+}
+
+ol#LC_MenuBreadcrumbs,
+ol#LC_PathBreadcrumbs {
padding-left: 10px;
+ margin: 0;
list-style-position: inside;
- background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
}
ol#LC_MenuBreadcrumbs li,
ol#LC_PathBreadcrumbs li,
ul.LC_CourseBreadcrumbs li {
-/*
- background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
-*/
- display: inline;
- padding: 0 0 0 10px;
-/* vertical-align: bottom; */
- overflow:hidden;
+ display: inline;
+ white-space: nowrap;
}
-ol#LC_MenuBreadcrumbs li a, ul.LC_CourseBreadcrumbs li a {
+ol#LC_MenuBreadcrumbs li a,
+ul.LC_CourseBreadcrumbs li a {
text-decoration: none;
font-size:90%;
}
@@ -5994,18 +5987,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 {
@@ -6094,26 +6078,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;
@@ -6168,7 +6132,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%;
@@ -6262,7 +6226,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 */
@@ -6397,7 +6361,8 @@ sub xml_begin {
.'';
} else {
- $output='';
+ $output=''
+ .'';
}
return $output;
}
@@ -6473,9 +6438,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
@@ -6487,6 +6449,8 @@ $args - additional optional args support
inherit_jsmath -> when creating popup window in a page,
should it have jsmath forced on by the
current page
+ bread_crumbs -> Array containing breadcrumbs
+ bread_crumbs_components -> if exists show it as headline else show only the breadcrumbs
=back
@@ -6519,16 +6483,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'}) {
@@ -6791,13 +6754,16 @@ Returns either 'student','coordinator','
###############################################
sub get_users_function {
my $function = 'norole';
+ if ($env{'request.role'}=~/^(st)/) {
+ $function='student';
+ }
if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {
$function='coordinator';
}
if ($env{'request.role'}=~/^(su|dc|ad|li)/) {
$function='admin';
}
- if (($env{'request.role'}=~/^(au|ca)/) ||
+ if (($env{'request.role'}=~/^(au|ca|aa)/) ||
($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
$function='author';
}
@@ -6808,6 +6774,38 @@ sub get_users_function {
=pod
+=item * &show_course()
+
+Used by lonmenu.pm and lonroles.pm to determine whether to use the word
+'Courses' or 'Roles' in inline navigation and on screen displaying user's roles.
+
+Inputs:
+None
+
+Outputs:
+Scalar: 1 if 'Course' to be used, 0 otherwise.
+
+=cut
+
+###############################################
+sub show_course {
+ my $course = !$env{'user.adv'};
+ if (!$env{'user.adv'}) {
+ foreach my $env (keys(%env)) {
+ next if ($env !~ m/^user\.priv\./);
+ if ($env !~ m/^user\.priv\.(?:st|cm)/) {
+ $course = 0;
+ last;
+ }
+ }
+ }
+ return $course;
+}
+
+###############################################
+
+=pod
+
=item * &check_user_status()
Determines current status of supplied role for a
@@ -7551,6 +7549,7 @@ ENDSCRIPT
my $output = <<"END_BLOCK";
$new_user_create
@@ -8513,7 +8513,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());
@@ -10162,7 +10162,7 @@ sub group_term {
my $crstype = &course_type();
my %names = (
'Course' => 'group',
- 'Group' => 'team',
+ 'Community' => 'group',
);
return $names{$crstype};
}
@@ -10226,7 +10226,23 @@ sub escape_url {
return join('/',@urlslices).'/'.$lastitem;
}
-# -------------------------------------------------------- Initliaze user login
+sub compare_arrays {
+ my ($arrayref1,$arrayref2) = @_;
+ my (@difference,%count);
+ @difference = ();
+ %count = ();
+ if ((ref($arrayref1) eq 'ARRAY') && (ref($arrayref2) eq 'ARRAY')) {
+ foreach my $element (@{$arrayref1}, @{$arrayref2}) { $count{$element}++; }
+ foreach my $element (keys(%count)) {
+ if ($count{$element} == 1) {
+ push(@difference,$element);
+ }
+ }
+ }
+ return @difference;
+}
+
+# -------------------------------------------------------- Initialize user login
sub init_user_environment {
my ($r, $username, $domain, $authhost, $form, $args) = @_;
my $lonids=$Apache::lonnet::perlvar{'lonIDsDir'};
@@ -10280,19 +10296,6 @@ sub init_user_environment {
my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml,
$clientunicode,$clientos) = &decode_user_agent($r);
-# -------------------------------------- Any accessibility options to remember?
- if (($form->{'interface'}) && ($form->{'remember'} eq 'true')) {
- foreach my $option ('imagesuppress','appletsuppress',
- 'embedsuppress','fontenhance','blackwhite') {
- if ($form->{$option} eq 'true') {
- &Apache::lonnet::put('environment',{$option => 'on'},
- $domain,$username);
- } else {
- &Apache::lonnet::del('environment',[$option],
- $domain,$username);
- }
- }
- }
# ------------------------------------------------------------- Get environment
my %userenv = &Apache::lonnet::dump('environment',$domain,$username);
@@ -10310,10 +10313,8 @@ sub init_user_environment {
if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; }
# --------------- Do not trust query string to be put directly into environment
- foreach my $option ('imagesuppress','appletsuppress',
- 'embedsuppress','fontenhance','blackwhite',
- 'interface','localpath','localres') {
- $form->{$option}=~s/[\n\r\=]//gs;
+ foreach my $option ('interface','localpath','localres') {
+ $form->{$option}=~s/[\n\r\=]//gs;
}
# --------------------------------------------------------- Write first profile
@@ -10347,13 +10348,6 @@ sub init_user_environment {
$form->{'interface'}=~s/\W//gs;
$initial_env{"browser.interface"} = $form->{'interface'};
$env{'browser.interface'}=$form->{'interface'};
- foreach my $option ('imagesuppress','appletsuppress',
- 'embedsuppress','fontenhance','blackwhite') {
- if (($form->{$option} eq 'true') ||
- ($userenv{$option} eq 'on')) {
- $initial_env{"browser.$option"} = "on";
- }
- }
}
foreach my $tool ('aboutme','blog','portfolio') {
@@ -10361,7 +10355,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');