version 1.948.2.11, 2010/09/27 01:16:22
|
version 1.949, 2010/03/10 21:25:49
|
Line 900 sub select_language {
|
Line 900 sub select_language {
|
$langchoices{$code} = &plainlanguagedescription($id); |
$langchoices{$code} = &plainlanguagedescription($id); |
} |
} |
} |
} |
return &select_form($selected,$name,\%langchoices); |
return &select_form($selected,$name,%langchoices); |
} |
} |
|
|
=pod |
=pod |
Line 1072 END
|
Line 1072 END
|
|
|
=pod |
=pod |
|
|
=item * &help_open_topic($topic,$text,$stayOnPage,$width,$height,$imgid) |
=item * &help_open_topic($topic,$text,$stayOnPage,$width,$height) |
|
|
Returns a string corresponding to an HTML link to the given help |
Returns a string corresponding to an HTML link to the given help |
$topic, where $topic corresponds to the name of a .tex file in |
$topic, where $topic corresponds to the name of a .tex file in |
Line 1095 be useful for certain help topics with b
|
Line 1095 be useful for certain help topics with b
|
=cut |
=cut |
|
|
sub help_open_topic { |
sub help_open_topic { |
my ($topic, $text, $stayOnPage, $width, $height, $imgid) = @_; |
my ($topic, $text, $stayOnPage, $width, $height) = @_; |
$text = "" if (not defined $text); |
$text = "" if (not defined $text); |
$stayOnPage = 0 if (not defined $stayOnPage); |
$stayOnPage = 0 if (not defined $stayOnPage); |
$width = 350 if (not defined $width); |
$width = 350 if (not defined $width); |
Line 1124 sub help_open_topic {
|
Line 1124 sub help_open_topic {
|
# (Always) Add the graphic |
# (Always) Add the graphic |
my $title = &mt('Online Help'); |
my $title = &mt('Online Help'); |
my $helpicon=&lonhttpdurl("/adm/help/help.png"); |
my $helpicon=&lonhttpdurl("/adm/help/help.png"); |
if ($imgid ne '') { |
|
$imgid = ' id="'.$imgid.'"'; |
|
} |
|
$template.=' <a target="_top" href="'.$link.'" title="'.$title.'">' |
$template.=' <a target="_top" href="'.$link.'" title="'.$title.'">' |
.'<img src="'.$helpicon.'" border="0"' |
.'<img src="'.$helpicon.'" border="0"' |
.' alt="'.&mt('Help: [_1]',$topic).'"' |
.' alt="'.&mt('Help: [_1]',$topic).'"' |
.' title="'.$title.'" style="vertical-align:middle;"'.$imgid |
.' title="'.$title.'" style="vertical-align:middle;"' |
.' /></a>'; |
.' /></a>'; |
if ($text ne "") { |
if ($text ne "") { |
$template.='</span>'; |
$template.='</span>'; |
} |
} |
return $template; |
return $template; |
Line 1205 ENDOUTPUT
|
Line 1202 ENDOUTPUT
|
sub help_open_menu { |
sub help_open_menu { |
my ($topic,$component_help,$faq,$bug,$stayOnPage,$width,$height,$text) |
my ($topic,$component_help,$faq,$bug,$stayOnPage,$width,$height,$text) |
= @_; |
= @_; |
$stayOnPage = 0 if (not defined $stayOnPage); |
$stayOnPage = 1; |
# only use pop-up help (stayOnPage == 0) |
|
# if environment.remote is on (using remote control UI) |
|
if ($env{'environment.remote'} eq 'off' ) { |
|
$stayOnPage=1; |
|
} |
|
my $output; |
my $output; |
if ($component_help) { |
if ($component_help) { |
if (!$text) { |
if (!$text) { |
Line 1231 sub help_open_menu {
|
Line 1223 sub help_open_menu {
|
sub top_nav_help { |
sub top_nav_help { |
my ($text) = @_; |
my ($text) = @_; |
$text = &mt($text); |
$text = &mt($text); |
my $stay_on_page = |
my $stay_on_page = 1; |
($env{'environment.remote'} eq 'off' ); |
|
my $link = ($stay_on_page) ? "javascript:helpMenu('display')" |
my $link = ($stay_on_page) ? "javascript:helpMenu('display')" |
: "javascript:helpMenu('open')"; |
: "javascript:helpMenu('open')"; |
my $banner_link = &update_help_link(undef,undef,undef,undef,$stay_on_page); |
my $banner_link = &update_help_link(undef,undef,undef,undef,$stay_on_page); |
Line 1247 END
|
Line 1239 END
|
|
|
sub help_menu_js { |
sub help_menu_js { |
my ($text) = @_; |
my ($text) = @_; |
|
my $stayOnPage = 1; |
my $stayOnPage = |
|
($env{'environment.remote'} eq 'off' ); |
|
|
|
my $width = 620; |
my $width = 620; |
my $height = 600; |
my $height = 600; |
my $helptopic=&general_help(); |
my $helptopic=&general_help(); |
Line 1307 sub help_open_bug {
|
Line 1296 sub help_open_bug {
|
unless ($env{'user.adv'}) { return ''; } |
unless ($env{'user.adv'}) { return ''; } |
unless ($Apache::lonnet::perlvar{'BugzillaHost'}) { return ''; } |
unless ($Apache::lonnet::perlvar{'BugzillaHost'}) { return ''; } |
$text = "" if (not defined $text); |
$text = "" if (not defined $text); |
$stayOnPage = 0 if (not defined $stayOnPage); |
|
if ($env{'environment.remote'} eq 'off' ) { |
|
$stayOnPage=1; |
$stayOnPage=1; |
} |
|
$width = 600 if (not defined $width); |
$width = 600 if (not defined $width); |
$height = 600 if (not defined $height); |
$height = 600 if (not defined $height); |
|
|
Line 1351 sub help_open_faq {
|
Line 1337 sub help_open_faq {
|
unless ($env{'user.adv'}) { return ''; } |
unless ($env{'user.adv'}) { return ''; } |
unless ($Apache::lonnet::perlvar{'FAQHost'}) { return ''; } |
unless ($Apache::lonnet::perlvar{'FAQHost'}) { return ''; } |
$text = "" if (not defined $text); |
$text = "" if (not defined $text); |
$stayOnPage = 0 if (not defined $stayOnPage); |
|
if ($env{'environment.remote'} eq 'off' ) { |
|
$stayOnPage=1; |
$stayOnPage=1; |
} |
|
$width = 350 if (not defined $width); |
$width = 350 if (not defined $width); |
$height = 400 if (not defined $height); |
$height = 400 if (not defined $height); |
|
|
Line 1803 sub domain_select {
|
Line 1786 sub domain_select {
|
return &multiple_select_form($name,$value,4,\%domains); |
return &multiple_select_form($name,$value,4,\%domains); |
} else { |
} else { |
$domains{'select_form_order'} = [sort {lc($a) cmp lc($b) } (keys(%domains))]; |
$domains{'select_form_order'} = [sort {lc($a) cmp lc($b) } (keys(%domains))]; |
return &select_form($name,$value,\%domains); |
return &select_form($name,$value,%domains); |
} |
} |
} |
} |
|
|
Line 1865 sub multiple_select_form {
|
Line 1848 sub multiple_select_form {
|
|
|
=pod |
=pod |
|
|
=item * &select_form($defdom,$name,$hashref,$onchange) |
=item * &select_form($defdom,$name,%hash) |
|
|
Returns a string containing a <select name='$name' size='1'> form to |
Returns a string containing a <select name='$name' size='1'> form to |
allow a user to select options from a ref to a hash containing: |
allow a user to select options from a hash option_name => displayed text. |
option_name => displayed text. An optional $onchange can include |
|
a javascript onchange item, e.g., onchange="this.form.submit();" |
|
|
|
See lonrights.pm for an example invocation and use. |
See lonrights.pm for an example invocation and use. |
|
|
=cut |
=cut |
|
|
#------------------------------------------- |
#------------------------------------------- |
sub select_form { |
sub select_form { |
my ($def,$name,$hashref,$onchange) = @_; |
my ($def,$name,%hash) = @_; |
return unless (ref($hashref) eq 'HASH'); |
my $selectform = "<select name=\"$name\" size=\"1\">\n"; |
if ($onchange) { |
|
$onchange = ' onchange="'.$onchange.'"'; |
|
} |
|
my $selectform = "<select name=\"$name\" size=\"1\"$onchange>\n"; |
|
my @keys; |
my @keys; |
if (exists($hashref->{'select_form_order'})) { |
if (exists($hash{'select_form_order'})) { |
@keys=@{$hashref->{'select_form_order'}}; |
@keys=@{$hash{'select_form_order'}}; |
} else { |
} else { |
@keys=sort(keys(%{$hashref})); |
@keys=sort(keys(%hash)); |
} |
} |
foreach my $key (@keys) { |
foreach my $key (@keys) { |
$selectform.= |
$selectform.= |
'<option value="'.&HTML::Entities::encode($key,'"<>&').'" '. |
'<option value="'.&HTML::Entities::encode($key,'"<>&').'" '. |
($key eq $def ? 'selected="selected" ' : ''). |
($key eq $def ? 'selected="selected" ' : ''). |
">".$hashref->{$key}."</option>\n"; |
">".$hash{$key}."</option>\n"; |
} |
} |
$selectform.="</select>"; |
$selectform.="</select>"; |
return $selectform; |
return $selectform; |
Line 1912 sub display_filter {
|
Line 1888 sub display_filter {
|
&mt('Filter [_1]', |
&mt('Filter [_1]', |
&select_form($env{'form.displayfilter'}, |
&select_form($env{'form.displayfilter'}, |
'displayfilter', |
'displayfilter', |
{'currentfolder' => 'Current folder/page', |
('currentfolder' => 'Current folder/page', |
'containing' => 'Containing phrase', |
'containing' => 'Containing phrase', |
'none' => 'None'})). |
'none' => 'None'))). |
'<input type="text" name="containingphrase" size="30" value="'.&HTML::Entities::encode($env{'form.containingphrase'}).'" /></span>'; |
'<input type="text" name="containingphrase" size="30" value="'.&HTML::Entities::encode($env{'form.containingphrase'}).'" /></span>'; |
} |
} |
|
|
Line 3257 sub filecategoryselect {
|
Line 3233 sub filecategoryselect {
|
my ($name,$value)=@_; |
my ($name,$value)=@_; |
return &select_form($value,$name, |
return &select_form($value,$name, |
'' => &mt('Any category'), |
'' => &mt('Any category'), |
{'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))}); |
map { $_,$_ } sort(keys(%category_extensions))); |
} |
} |
|
|
=pod |
=pod |
Line 3422 sub get_previous_attempt {
|
Line 3398 sub get_previous_attempt {
|
} |
} |
$prevattempts=&start_data_table().&start_data_table_header_row(); |
$prevattempts=&start_data_table().&start_data_table_header_row(); |
$prevattempts.='<th>'.&mt('History').'</th>'; |
$prevattempts.='<th>'.&mt('History').'</th>'; |
my (%typeparts,%lasthidden); |
my %typeparts; |
my $showsurv=&Apache::lonnet::allowed('vas',$env{'request.course.id'}); |
my $showsurv=&Apache::lonnet::allowed('vas',$env{'request.course.id'}); |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
my ($ign,@parts) = split(/\./,$key); |
my ($ign,@parts) = split(/\./,$key); |
Line 3433 sub get_previous_attempt {
|
Line 3409 sub get_previous_attempt {
|
unless ($showsurv) { |
unless ($showsurv) { |
my $id = join(',',@parts); |
my $id = join(',',@parts); |
$typeparts{$ign.'.'.$id} = $lasthash{$key}; |
$typeparts{$ign.'.'.$id} = $lasthash{$key}; |
if (($lasthash{$key} eq 'anonsurvey') || ($lasthash{$key} eq 'anonsurveycred')) { |
|
$lasthidden{$ign.'.'.$id} = 1; |
|
} |
|
} |
} |
delete($lasthash{$key}); |
delete($lasthash{$key}); |
} else { |
} else { |
Line 3450 sub get_previous_attempt {
|
Line 3423 sub get_previous_attempt {
|
} |
} |
} |
} |
$prevattempts.=&end_data_table_header_row(); |
$prevattempts.=&end_data_table_header_row(); |
|
my %lasthidden; |
if ($getattempt eq '') { |
if ($getattempt eq '') { |
for ($version=1;$version<=$returnhash{'version'};$version++) { |
for ($version=1;$version<=$returnhash{'version'};$version++) { |
my @hidden; |
my @hidden; |
Line 3457 sub get_previous_attempt {
|
Line 3431 sub get_previous_attempt {
|
foreach my $id (keys(%typeparts)) { |
foreach my $id (keys(%typeparts)) { |
if (($returnhash{$version.':'.$id.'.type'} eq 'anonsurvey') || ($returnhash{$version.':'.$id.'.type'} eq 'anonsurveycred')) { |
if (($returnhash{$version.':'.$id.'.type'} eq 'anonsurvey') || ($returnhash{$version.':'.$id.'.type'} eq 'anonsurveycred')) { |
push(@hidden,$id); |
push(@hidden,$id); |
|
$lasthidden{$id} = 1; |
|
} elsif ($lasthidden{$id}) { |
|
if (exists($returnhash{$version.':'.$id.'.award'})) { |
|
delete($lasthidden{$id}); |
|
} |
} |
} |
} |
} |
} |
} |
Line 3708 sub submlink {
|
Line 3687 sub submlink {
|
} |
} |
if (!$symb) { $symb=&Apache::lonnet::symbread(); } |
if (!$symb) { $symb=&Apache::lonnet::symbread(); } |
$symb=&escape($symb); |
$symb=&escape($symb); |
if ($target) { $target=" target=\"$target\""; } |
if ($target) { $target="target=\"$target\""; } |
return |
return '<a href="/adm/grades?&command=submission&'. |
'<a href="/adm/grades?command=submission'. |
'symb='.$symb.'&student='.$uname. |
'&symb='.$symb. |
'&userdom='.$udom.'" '.$target.'>'.$text.'</a>'; |
'&student='.$uname. |
|
'&userdom='.$udom.'"'. |
|
$target.'>'.$text.'</a>'; |
|
} |
} |
############################################## |
############################################## |
|
|
Line 3836 sub findallcourses {
|
Line 3812 sub findallcourses {
|
$udom = $env{'user.domain'}; |
$udom = $env{'user.domain'}; |
} |
} |
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) { |
my $extra = &Apache::lonnet::freeze_escape({'skipcheck' => 1}); |
my %roleshash = &Apache::lonnet::dump('roles',$udom,$uname); |
my %roleshash = &Apache::lonnet::dump('roles',$udom,$uname,'.',undef, |
|
$extra); |
|
if (!%roles) { |
if (!%roles) { |
%roles = ( |
%roles = ( |
cc => 1, |
cc => 1, |
Line 4562 Inputs:
|
Line 4536 Inputs:
|
|
|
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value |
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value |
|
|
=item * $no_inline_link, if true and in remote mode, don't show the |
#RC =item * $no_inline_link, if true and in remote mode, don't show the |
'Switch To Inline Menu' link |
#RC 'Switch To Inline Menu' link |
|
#RC |
=item * $args, optional argument valid values are |
=item * $args, optional argument valid values are |
no_auto_mt_title -> prevents &mt()ing the title arg |
no_auto_mt_title -> prevents &mt()ing the title arg |
inherit_jsmath -> when creating popup window in a page, |
inherit_jsmath -> when creating popup window in a page, |
Line 4584 sub bodytag {
|
Line 4558 sub bodytag {
|
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg, |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg, |
$no_nav_bar,$bgcolor,$no_inline_link,$args)=@_; |
$no_nav_bar,$bgcolor,$no_inline_link,$args)=@_; |
|
|
my $public; |
|
if ((($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) |
|
|| ($env{'user.name'} eq '') && ($env{'user.domain'} eq '')) { |
|
$public = 1; |
|
} |
|
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
|
|
$function = &get_users_function() if (!$function); |
$function = &get_users_function() if (!$function); |
Line 4638 sub bodytag {
|
Line 4607 sub bodytag {
|
} |
} |
|
|
my $name = &plainname($env{'user.name'},$env{'user.domain'}); |
my $name = &plainname($env{'user.name'},$env{'user.domain'}); |
if ($public) { |
if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') { |
undef($role); |
undef($role); |
} else { |
} else { |
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}); |
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}); |
} |
} |
|
|
my $titleinfo = '<h1>'.$title.'</h1>'; |
my $titleinfo = '<h1>'.$title.'</h1>'; |
# |
# |
# Extra info if you are the DC |
# Extra info if you are the DC |
Line 4659 sub bodytag {
|
Line 4628 sub bodytag {
|
$role = '<span class="LC_nobreak">('.$role.')</span>' if $role; |
$role = '<span class="LC_nobreak">('.$role.')</span>' if $role; |
&get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); |
&get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); |
|
|
if ($env{'environment.remote'} eq 'off') { |
|
# No Remote |
# No Remote |
if ($no_nav_bar || $env{'form.inhibitmenu'} eq 'yes') { |
if ($no_nav_bar || $env{'form.inhibitmenu'} eq 'yes') { |
return $bodytag; |
return $bodytag; |
Line 4697 sub bodytag {
|
Line 4665 sub bodytag {
|
$bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|; |
$bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|; |
|
|
#don't show menus for public users |
#don't show menus for public users |
if (!$public){ |
if($env{'user.name'} ne 'public' && $env{'user.domain'} ne 'public'){ |
$bodytag .= Apache::lonmenu::secondary_menu(); |
$bodytag .= Apache::lonmenu::secondary_menu(); |
$bodytag .= Apache::lonmenu::serverform(); |
$bodytag .= Apache::lonmenu::serverform(); |
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
Line 4715 sub bodytag {
|
Line 4683 sub bodytag {
|
} |
} |
|
|
return $bodytag; |
return $bodytag; |
} |
|
|
|
# |
|
# Top frame rendering, Remote is up |
|
# |
|
|
|
my $imgsrc = $img; |
|
if ($img =~ /^\/adm/) { |
|
$imgsrc = &lonhttpdurl($img); |
|
} |
|
my $upperleft='<img src="'.$imgsrc.'" alt="'.$function.'" />'; |
|
|
|
# Explicit link to get inline menu |
|
my $menu= ($no_inline_link?'' |
|
:'<a href="/adm/remote?action=collapse" target="_top">'.&mt('Switch to Inline Menu Mode').'</a>'); |
|
|
|
if ($dc_info) { |
|
$dc_info = qq|<span class="LC_cusr_subheading">($dc_info)</span>|; |
|
} |
|
|
|
$bodytag .= qq|<div id="LC_nav_bar">$name $role</div> |
|
<ol class="LC_primary_menu LC_right"> |
|
<li>$menu</li> |
|
</ol><div id="LC_realm"> $realm $dc_info</div>| unless $env{'form.inhibitmenu'}; |
|
return(<<ENDBODY); |
|
$bodytag |
|
<table id="LC_title_bar" class="LC_with_remote"> |
|
<tr><td>$upperleft</td> |
|
<td>$messages </td> |
|
</tr> |
|
<tr><td>$titleinfo $dc_info $menu</td> |
|
</tr> |
|
</table> |
|
ENDBODY |
|
} |
} |
|
|
sub dc_courseid_toggle { |
sub dc_courseid_toggle { |
my ($dc_info) = @_; |
my ($dc_info) = @_; |
return ' <span id="dccidtext" class="LC_cusr_subheading LC_nobreak">'. |
return ' <span id="dccidtext" class="LC_cusr_subheading">'. |
'<a href="javascript:showCourseID();">'. |
'<a href="javascript:showCourseID();">'. |
&mt('(More ...)').'</a></span>'. |
&mt('(More ...)').'</a></span>'. |
'<div id="dccid" class="LC_dccid">'.$dc_info.'</div>'; |
'<div id="dccid" class="LC_dccid">'.$dc_info.'</div>'; |
Line 4869 sub standard_css {
|
Line 4803 sub standard_css {
|
my $vlink = &designparm($function.'.vlink', $domain); |
my $vlink = &designparm($function.'.vlink', $domain); |
my $link = &designparm($function.'.link', $domain); |
my $link = &designparm($function.'.link', $domain); |
|
|
|
my $loginbg = &designparm('login.sidebg',$domain); |
|
my $bgcol = &designparm('login.bgcol',$domain); |
|
my $textcol = &designparm('login.textcol',$domain); |
|
|
my $sans = 'Verdana,Arial,Helvetica,sans-serif'; |
my $sans = 'Verdana,Arial,Helvetica,sans-serif'; |
my $mono = 'monospace'; |
my $mono = 'monospace'; |
my $data_table_head = $sidebg; |
my $data_table_head = $sidebg; |
Line 4887 sub standard_css {
|
Line 4825 sub standard_css {
|
my $table_header = '#DDDDDD'; |
my $table_header = '#DDDDDD'; |
my $feedback_link_bg = '#BBBBBB'; |
my $feedback_link_bg = '#BBBBBB'; |
my $lg_border_color = '#C8C8C8'; |
my $lg_border_color = '#C8C8C8'; |
my $button_hover = '#BF2317'; |
|
|
|
my $border = ($env{'browser.type'} eq 'explorer' || |
my $border = ($env{'browser.type'} eq 'explorer' || |
$env{'browser.type'} eq 'safari' ) ? '0 2px 0 2px' |
$env{'browser.type'} eq 'safari' ) ? '0 2px 0 2px' |
: '0 3px 0 4px'; |
: '0 3px 0 4px'; |
|
|
|
|
return <<END; |
return <<END; |
|
|
/* needed for iframe to allow 100% height in FF */ |
/* needed for iframe to allow 100% height in FF */ |
Line 4909 body {
|
Line 4847 body {
|
color:$font; |
color:$font; |
} |
} |
|
|
a:focus, |
a:focus { |
a:focus img { |
|
color: red; |
color: red; |
background: yellow; |
background: yellow; |
} |
} |
Line 5125 td.LC_table_cell_checkbox {
|
Line 5062 td.LC_table_cell_checkbox {
|
padding: 0; |
padding: 0; |
} |
} |
|
|
/* Preliminary fix to hide breadcrumbs inside remote control window */ |
|
#LC_remote #LC_breadcrumbs { |
|
display:none; |
|
} |
|
|
|
#LC_head_subbox { |
#LC_head_subbox { |
clear:both; |
clear:both; |
background: #F8F8F8; /* $sidebg; */ |
background: #F8F8F8; /* $sidebg; */ |
border: 1px solid $sidebg; |
border: 1px solid $sidebg; |
margin: 0 0 10px 0; |
margin: 0 0 10px 0; |
padding: 3px; |
|
} |
} |
|
|
.LC_fontsize_medium { |
.LC_fontsize_medium { |
Line 5156 td.LC_table_cell_checkbox {
|
Line 5087 td.LC_table_cell_checkbox {
|
vertical-align: middle; |
vertical-align: middle; |
} |
} |
|
|
li.LC_menubuttons_inline_text img,a { |
|
cursor:pointer; |
|
} |
|
|
|
.LC_menubuttons_link { |
.LC_menubuttons_link { |
text-decoration: none; |
text-decoration: none; |
} |
} |
Line 5502 span.LC_parm_symb {
|
Line 5429 span.LC_parm_symb {
|
color: #AAAAAA; |
color: #AAAAAA; |
} |
} |
|
|
ul.LC_parm_parmlist li { |
|
display: inline-block; |
|
padding: 0.3em 0.8em; |
|
vertical-align: top; |
|
width: 150px; |
|
border-top:1px solid $lg_border_color; |
|
} |
|
|
|
td.LC_parm_overview_level_menu, |
td.LC_parm_overview_level_menu, |
td.LC_parm_overview_map_menu, |
td.LC_parm_overview_map_menu, |
td.LC_parm_overview_parm_selectors, |
td.LC_parm_overview_parm_selectors, |
Line 6046 ol#LC_PathBreadcrumbs a:hover,
|
Line 5965 ol#LC_PathBreadcrumbs a:hover,
|
ul#LC_secondary_menu a:hover, |
ul#LC_secondary_menu a:hover, |
.LC_FormSectionClearButton input:hover |
.LC_FormSectionClearButton input:hover |
ul.LC_TabContent li:hover a { |
ul.LC_TabContent li:hover a { |
color:$button_hover; |
color:#BF2317; |
text-decoration:none; |
text-decoration:none; |
} |
} |
|
|
Line 6113 fieldset > legend {
|
Line 6032 fieldset > legend {
|
|
|
#LC_nav_bar { |
#LC_nav_bar { |
float: left; |
float: left; |
margin: 0 0 2px 0; |
margin: 0; |
} |
} |
|
|
#LC_realm { |
#LC_realm { |
Line 6128 fieldset > legend {
|
Line 6047 fieldset > legend {
|
font-style: normal; |
font-style: normal; |
} |
} |
|
|
/* Preliminary fix to hide nav_bar inside bookmarks window */ |
|
#LC_bookmarks #LC_nav_bar { |
|
display:none; |
|
} |
|
|
|
ol.LC_primary_menu { |
ol.LC_primary_menu { |
float: right; |
float: right; |
margin: 0; |
margin: 0; |
} |
} |
|
|
span.LC_new_message{ |
|
font-weight:bold; |
|
color: darkred; |
|
} |
|
|
|
ol#LC_PathBreadcrumbs { |
ol#LC_PathBreadcrumbs { |
margin: 0; |
margin: 0; |
} |
} |
Line 6163 ol.LC_primary_menu a {
|
Line 6072 ol.LC_primary_menu a {
|
text-decoration: none; |
text-decoration: none; |
} |
} |
|
|
ol.LC_docs_parameters { |
ol.LC_primary_menu a.LC_new_message { |
margin-left: 0; |
font-weight:bold; |
padding: 0; |
color: darkred; |
list-style: none; |
|
} |
|
|
|
ol.LC_docs_parameters li { |
|
margin: 0; |
|
padding-right: 20px; |
|
display: inline; |
|
} |
|
|
|
ol.LC_docs_parameters li:before { |
|
content: "\\002022 \\0020"; |
|
} |
|
|
|
li.LC_docs_parameters_title { |
|
font-weight: bold; |
|
} |
|
|
|
ol.LC_docs_parameters li.LC_docs_parameters_title:before { |
|
content: ""; |
|
} |
} |
|
|
ul#LC_secondary_menu { |
ul#LC_secondary_menu { |
Line 6226 ul#LC_secondary_menu li a {
|
Line 6116 ul#LC_secondary_menu li a {
|
} |
} |
|
|
ul.LC_TabContent { |
ul.LC_TabContent { |
min-height:20px; |
min-height:1.5em; |
} |
} |
|
|
ul.LC_TabContent li { |
ul.LC_TabContent li { |
vertical-align:middle; |
vertical-align:middle; |
padding: 0 16px 0 10px; |
padding: 0 10px 0 10px; |
background-color:$tabbg; |
background-color:$tabbg; |
border-bottom:solid 1px $lg_border_color; |
border-bottom:solid 1px $lg_border_color; |
border-right: solid 1px $font; |
|
} |
} |
|
|
ul.LC_TabContent .right { |
ul.LC_TabContent .right { |
Line 6247 ul.LC_TabContent li {
|
Line 6136 ul.LC_TabContent li {
|
text-decoration:none; |
text-decoration:none; |
font-size:95%; |
font-size:95%; |
font-weight:bold; |
font-weight:bold; |
min-height:20px; |
padding-right: 16px; |
} |
|
|
|
ul.LC_TabContent li a:hover, |
|
ul.LC_TabContent li a:focus { |
|
color: $button_hover; |
|
background:none; |
|
outline:none; |
|
} |
|
|
|
ul.LC_TabContent li:hover { |
|
color: $button_hover; |
|
cursor:pointer; |
|
} |
} |
|
|
|
ul.LC_TabContent li:hover, |
ul.LC_TabContent li.active { |
ul.LC_TabContent li.active { |
color: $font; |
|
background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center; |
background:#FFFFFF url(/adm/lonIcons/open.gif) no-repeat scroll right center; |
border-bottom:solid 1px #FFFFFF; |
border-bottom:solid 2px #FFFFFF; |
cursor: default; |
padding-right: 16px; |
} |
} |
|
|
ul.LC_TabContent li.active a { |
|
color:$font; |
|
background:#FFFFFF; |
|
outline: none; |
|
} |
|
#maincoursedoc { |
#maincoursedoc { |
clear:both; |
clear:both; |
} |
} |
Line 6292 ul.LC_TabContentBigger li {
|
Line 6164 ul.LC_TabContentBigger li {
|
color: #737373; |
color: #737373; |
} |
} |
|
|
ul.LC_TabContentBigger li.active { |
|
position: relative; |
|
top: 1px; |
|
} |
|
|
|
ul.LC_TabContentBigger li a { |
ul.LC_TabContentBigger li a { |
background:url('/adm/lonIcons/tabbgleft.gif') left bottom no-repeat; |
background:url('/adm/lonIcons/tabbgleft.gif') left bottom no-repeat; |
Line 6304 ul.LC_TabContentBigger li a {
|
Line 6172 ul.LC_TabContentBigger li a {
|
text-align: center; |
text-align: center; |
display: block; |
display: block; |
text-decoration: none; |
text-decoration: none; |
outline: none; |
|
} |
} |
|
|
|
ul.LC_TabContentBigger li:hover a, |
ul.LC_TabContentBigger li.active a { |
ul.LC_TabContentBigger li.active a { |
background:url('/adm/lonIcons/tabbgleft.gif') left top no-repeat; |
background:url('/adm/lonIcons/tabbgleft.gif') left top no-repeat; |
color:$font; |
color:$font; |
|
text-decoration: underline; |
} |
} |
|
|
|
|
ul.LC_TabContentBigger li b { |
ul.LC_TabContentBigger li b { |
background: url('/adm/lonIcons/tabbgright.gif') no-repeat right bottom; |
background: url('/adm/lonIcons/tabbgright.gif') no-repeat right bottom; |
display: block; |
display: block; |
float: left; |
float: left; |
padding: 0 30px; |
padding: 0 30px; |
border-bottom: 1px solid $lg_border_color; |
|
} |
|
|
|
ul.LC_TabContentBigger li:hover b { |
|
color:$button_hover; |
|
} |
} |
|
|
|
ul.LC_TabContentBigger li:hover b, |
ul.LC_TabContentBigger li.active b { |
ul.LC_TabContentBigger li.active b { |
background:url('/adm/lonIcons/tabbgright.gif') right top no-repeat; |
background:url('/adm/lonIcons/tabbgright.gif') right top no-repeat; |
color:$font; |
color:$font; |
border: 0; |
border-bottom: 1px solid #FFFFFF; |
cursor:default; |
|
} |
} |
|
|
|
|
ul.LC_CourseBreadcrumbs { |
ul.LC_CourseBreadcrumbs { |
background: $sidebg; |
background: $sidebg; |
line-height: 32px; |
line-height: 32px; |
Line 6360 ul.LC_CourseBreadcrumbs li a {
|
Line 6226 ul.LC_CourseBreadcrumbs li a {
|
font-size:90%; |
font-size:90%; |
} |
} |
|
|
ol#LC_MenuBreadcrumbs h1 { |
|
display: inline; |
|
font-size: 90%; |
|
line-height: 2.5em; |
|
margin: 0; |
|
padding: 0; |
|
} |
|
|
|
ol#LC_PathBreadcrumbs li a { |
ol#LC_PathBreadcrumbs li a { |
text-decoration:none; |
text-decoration:none; |
font-size:100%; |
font-size:100%; |
Line 6464 div.LC_columnSection>* {
|
Line 6322 div.LC_columnSection>* {
|
overflow:hidden; |
overflow:hidden; |
} |
} |
|
|
|
.LC_loginpage_container { |
|
text-align:left; |
|
margin : 0 auto; |
|
width:90%; |
|
padding: 10px; |
|
height: auto; |
|
background-color:#FFFFFF; |
|
border:1px solid #CCCCCC; |
|
} |
|
|
|
|
|
.LC_loginpage_loginContainer { |
|
float:left; |
|
width: 182px; |
|
padding: 2px; |
|
border:1px solid #CCCCCC; |
|
background-color:$loginbg; |
|
} |
|
|
|
.LC_loginpage_loginContainer h2 { |
|
margin-top: 0; |
|
display:block; |
|
background:$bgcol; |
|
color:$textcol; |
|
padding-left:5px; |
|
} |
|
|
|
.LC_loginpage_loginInfo { |
|
float:left; |
|
width:182px; |
|
border:1px solid #CCCCCC; |
|
padding:2px; |
|
} |
|
|
|
.LC_loginpage_space { |
|
clear: both; |
|
margin-bottom: 20px; |
|
border-bottom: 1px solid #CCCCCC; |
|
} |
|
|
|
.LC_loginpage_floatLeft { |
|
float: left; |
|
width: 200px; |
|
margin: 0; |
|
} |
|
|
table em { |
table em { |
font-weight: bold; |
font-weight: bold; |
font-style: normal; |
font-style: normal; |
Line 6710 Inputs: none
|
Line 6614 Inputs: none
|
sub xml_begin { |
sub xml_begin { |
my $output=''; |
my $output=''; |
|
|
|
if ($env{'internal.start_page'}==1) { |
|
&Apache::lonhtmlcommon::init_htmlareafields(); |
|
} |
|
|
if ($env{'browser.mathml'}) { |
if ($env{'browser.mathml'}) { |
$output='<?xml version="1.0"?>' |
$output='<?xml version="1.0"?>' |
#.'<?xml-stylesheet type="text/css" href="/adm/MathML/mathml.css"?>'."\n" |
#.'<?xml-stylesheet type="text/css" href="/adm/MathML/mathml.css"?>'."\n" |
Line 6802 $args - additional optional args support
|
Line 6710 $args - additional optional args support
|
skip_phases -> hash ref of |
skip_phases -> hash ref of |
head -> skip the <html><head> generation |
head -> skip the <html><head> generation |
body -> skip all <body> generation |
body -> skip all <body> generation |
no_inline_link -> if true and in remote mode, don't show the |
#RC no_inline_link -> if true and in remote mode, don't show the |
'Switch To Inline Menu' link |
#RC 'Switch To Inline Menu' link |
no_auto_mt_title -> prevent &mt()ing the title arg |
no_auto_mt_title -> prevent &mt()ing the title arg |
inherit_jsmath -> when creating popup window in a page, |
inherit_jsmath -> when creating popup window in a page, |
should it have jsmath forced on by the |
should it have jsmath forced on by the |
Line 6869 sub start_page {
|
Line 6777 sub start_page {
|
return $result if $args->{'only_body'}; |
return $result if $args->{'only_body'}; |
|
|
#Breadcrumbs for Construction Space provided by &bodytag. |
#Breadcrumbs for Construction Space provided by &bodytag. |
if (($env{'environment.remote'} eq 'off') && ($env{'request.state'} eq 'construct')) { |
if ( |
|
$env{'request.state'} eq 'construct') { |
return $result; |
return $result; |
} |
} |
|
|
Line 7004 sub simple_error_page {
|
Line 6913 sub simple_error_page {
|
|
|
{ |
{ |
my @row_count; |
my @row_count; |
|
|
sub start_data_table_count { |
|
unshift(@row_count, 0); |
|
return; |
|
} |
|
|
|
sub end_data_table_count { |
|
shift(@row_count); |
|
return; |
|
} |
|
|
|
sub start_data_table { |
sub start_data_table { |
my ($add_class) = @_; |
my ($add_class) = @_; |
my $css_class = (join(' ','LC_data_table',$add_class)); |
my $css_class = (join(' ','LC_data_table',$add_class)); |
&start_data_table_count(); |
unshift(@row_count,0); |
return '<table class="'.$css_class.'">'."\n"; |
return '<table class="'.$css_class.'">'."\n"; |
} |
} |
|
|
sub end_data_table { |
sub end_data_table { |
&end_data_table_count(); |
shift(@row_count); |
return '</table>'."\n";; |
return '</table>'."\n";; |
} |
} |
|
|
Line 7202 role status: active, previous or future.
|
Line 7100 role status: active, previous or future.
|
|
|
sub check_user_status { |
sub check_user_status { |
my ($udom,$uname,$cdom,$crs,$role,$sec) = @_; |
my ($udom,$uname,$cdom,$crs,$role,$sec) = @_; |
my $extra = &Apache::lonnet::freeze_escape({'skipcheck' => 1}); |
my %userinfo = &Apache::lonnet::dump('roles',$udom,$uname); |
my %userinfo = &Apache::lonnet::dump('roles',$udom,$uname,'.',undef,$extra); |
|
my @uroles = keys %userinfo; |
my @uroles = keys %userinfo; |
my $srchstr; |
my $srchstr; |
my $active_chk = 'none'; |
my $active_chk = 'none'; |
Line 8242 sub get_institutional_codes {
|
Line 8139 sub get_institutional_codes {
|
return; |
return; |
} |
} |
|
|
sub get_standard_codeitems { |
|
return ('Year','Semester','Department','Number','Section'); |
|
} |
|
|
|
=pod |
=pod |
|
|
=head1 Slot Helpers |
=head1 Slot Helpers |
Line 10316 sub construct_course {
|
Line 10209 sub construct_course {
|
$cenv{'url'}=$oldcenv{'url'}; |
$cenv{'url'}=$oldcenv{'url'}; |
# Restore title |
# Restore title |
$cenv{'description'}=$oldcenv{'description'}; |
$cenv{'description'}=$oldcenv{'description'}; |
# Restore creation date, creator and creation context. |
|
$cenv{'internal.created'}=$oldcenv{'internal.created'}; |
|
$cenv{'internal.creator'}=$oldcenv{'internal.creator'}; |
|
$cenv{'internal.creationcontext'}=$oldcenv{'internal.creationcontext'}; |
|
# Mark as cloned |
# Mark as cloned |
$cenv{'clonedfrom'}=$cloneid; |
$cenv{'clonedfrom'}=$cloneid; |
# Need to clone grading mode |
# Need to clone grading mode |
Line 10566 sub construct_course {
|
Line 10455 sub construct_course {
|
$title=&mt('Syllabus'); |
$title=&mt('Syllabus'); |
$url='/public/'.$$crsudom.'/'.$$crsunum.'/syllabus'; |
$url='/public/'.$$crsudom.'/'.$$crsunum.'/syllabus'; |
} else { |
} else { |
$title=&mt('Table of Contents'); |
$title=&mt('Navigate Contents'); |
$url='/adm/navmaps'; |
$url='/adm/navmaps'; |
} |
} |
|
|
Line 10748 sub init_user_environment {
|
Line 10637 sub init_user_environment {
|
my %userenv = &Apache::lonnet::dump('environment',$domain,$username); |
my %userenv = &Apache::lonnet::dump('environment',$domain,$username); |
my ($tmp) = keys(%userenv); |
my ($tmp) = keys(%userenv); |
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
# default remote control to off |
|
if ($userenv{'remote'} ne 'on') { $userenv{'remote'} = 'off'; } |
|
} else { |
} else { |
undef(%userenv); |
undef(%userenv); |
} |
} |
if (($userenv{'interface'}) && (!$form->{'interface'})) { |
if (($userenv{'interface'}) && (!$form->{'interface'})) { |
$form->{'interface'}=$userenv{'interface'}; |
$form->{'interface'}=$userenv{'interface'}; |
} |
} |
$env{'environment.remote'}=$userenv{'remote'}; |
|
if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; } |
if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; } |
|
|
# --------------- Do not trust query string to be put directly into environment |
# --------------- Do not trust query string to be put directly into environment |
Line 10788 sub init_user_environment {
|
Line 10674 sub init_user_environment {
|
$initial_env{"browser.localres"} = $form->{'localres'}; |
$initial_env{"browser.localres"} = $form->{'localres'}; |
} |
} |
|
|
if ($public) { |
|
$initial_env{"environment.remote"} = "off"; |
|
} |
|
if ($form->{'interface'}) { |
if ($form->{'interface'}) { |
$form->{'interface'}=~s/\W//gs; |
$form->{'interface'}=~s/\W//gs; |
$initial_env{"browser.interface"} = $form->{'interface'}; |
$initial_env{"browser.interface"} = $form->{'interface'}; |
$env{'browser.interface'}=$form->{'interface'}; |
$env{'browser.interface'}=$form->{'interface'}; |
} |
} |
my %is_adv = ( is_adv => $env{'user.adv'} ); |
|
my %domdef = &Apache::lonnet::get_domain_defaults($domain); |
|
|
|
foreach my $tool ('aboutme','blog','portfolio') { |
foreach my $tool ('aboutme','blog','portfolio') { |
$userenv{'availabletools.'.$tool} = |
$userenv{'availabletools.'.$tool} = |
&Apache::lonnet::usertools_access($username,$domain,$tool,'reload', |
&Apache::lonnet::usertools_access($username,$domain,$tool,'reload'); |
undef,\%userenv,\%domdef,\%is_adv); |
|
} |
} |
|
|
foreach my $crstype ('official','unofficial','community') { |
foreach my $crstype ('official','unofficial','community') { |
$userenv{'canrequest.'.$crstype} = |
$userenv{'canrequest.'.$crstype} = |
&Apache::lonnet::usertools_access($username,$domain,$crstype, |
&Apache::lonnet::usertools_access($username,$domain,$crstype, |
'reload','requestcourses', |
'reload','requestcourses'); |
\%userenv,\%domdef,\%is_adv); |
|
} |
} |
|
|
$env{'user.environment'} = "$lonids/$cookie.id"; |
$env{'user.environment'} = "$lonids/$cookie.id"; |