version 1.932, 2010/01/19 16:06:49
|
version 1.950, 2010/03/16 13:04:54
|
Line 1127 sub help_open_topic {
|
Line 1127 sub help_open_topic {
|
$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.'"' |
.' title="'.$title.'" style="vertical-align:middle;"' |
.' /></a>'; |
.' /></a>'; |
if ($text ne "") { |
if ($text ne "") { |
$template.='</span>'; |
$template.='</span>'; |
Line 1202 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 1228 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 1244 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 1304 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 1348 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 3412 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; |
|
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); |
if ($#parts > 0) { |
if ($#parts > 0) { |
my $data=$parts[-1]; |
my $data=$parts[-1]; |
pop(@parts); |
pop(@parts); |
$prevattempts.='<th>'.&mt('Part ').join('.',@parts).'<br />'.$data.' </th>'; |
if ($data eq 'type') { |
|
unless ($showsurv) { |
|
my $id = join(',',@parts); |
|
$typeparts{$ign.'.'.$id} = $lasthash{$key}; |
|
} |
|
delete($lasthash{$key}); |
|
} else { |
|
$prevattempts.='<th>'.&mt('Part ').join('.',@parts).'<br />'.$data.' </th>'; |
|
} |
} else { |
} else { |
if ($#parts == 0) { |
if ($#parts == 0) { |
$prevattempts.='<th>'.$parts[0].'</th>'; |
$prevattempts.='<th>'.$parts[0].'</th>'; |
Line 3427 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++) { |
$prevattempts.=&start_data_table_row(). |
my @hidden; |
'<td>'.&mt('Transaction [_1]',$version).'</td>'; |
if (%typeparts) { |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $id (keys(%typeparts)) { |
my $value = &format_previous_attempt_value($key, |
if (($returnhash{$version.':'.$id.'.type'} eq 'anonsurvey') || ($returnhash{$version.':'.$id.'.type'} eq 'anonsurveycred')) { |
$returnhash{$version.':'.$key}); |
push(@hidden,$id); |
$prevattempts.='<td>'.$value.' </td>'; |
$lasthidden{$id} = 1; |
} |
} elsif ($lasthidden{$id}) { |
$prevattempts.=&end_data_table_row(); |
if (exists($returnhash{$version.':'.$id.'.award'})) { |
|
delete($lasthidden{$id}); |
|
} |
|
} |
|
} |
|
} |
|
$prevattempts.=&start_data_table_row(). |
|
'<td>'.&mt('Transaction [_1]',$version).'</td>'; |
|
if (@hidden) { |
|
foreach my $key (sort(keys(%lasthash))) { |
|
my $hide; |
|
foreach my $id (@hidden) { |
|
if ($key =~ /^\Q$id\E/) { |
|
$hide = 1; |
|
last; |
|
} |
|
} |
|
if ($hide) { |
|
my ($id,$data) = ($key =~ /^(.+)\.([^.]+)$/); |
|
if (($data eq 'award') || ($data eq 'awarddetail')) { |
|
my $value = &format_previous_attempt_value($key, |
|
$returnhash{$version.':'.$key}); |
|
$prevattempts.='<td>'.$value.' </td>'; |
|
} else { |
|
$prevattempts.='<td> </td>'; |
|
} |
|
} else { |
|
if ($key =~ /\./) { |
|
my $value = &format_previous_attempt_value($key, |
|
$returnhash{$version.':'.$key}); |
|
$prevattempts.='<td>'.$value.' </td>'; |
|
} else { |
|
$prevattempts.='<td> </td>'; |
|
} |
|
} |
|
} |
|
} else { |
|
foreach my $key (sort(keys(%lasthash))) { |
|
my $value = &format_previous_attempt_value($key, |
|
$returnhash{$version.':'.$key}); |
|
$prevattempts.='<td>'.$value.' </td>'; |
|
} |
|
} |
|
$prevattempts.=&end_data_table_row(); |
} |
} |
} |
} |
|
my @currhidden = keys(%lasthidden); |
$prevattempts.=&start_data_table_row().'<td>'.&mt('Current').'</td>'; |
$prevattempts.=&start_data_table_row().'<td>'.&mt('Current').'</td>'; |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
my $value = &format_previous_attempt_value($key,$lasthash{$key}); |
if (%typeparts) { |
if ($key =~/$regexp$/ && (defined &$gradesub)) {$value = &$gradesub($value)} |
my $hidden; |
$prevattempts.='<td>'.$value.' </td>'; |
foreach my $id (@currhidden) { |
|
if ($key =~ /^\Q$id\E/) { |
|
$hidden = 1; |
|
last; |
|
} |
|
} |
|
if ($hidden) { |
|
my ($id,$data) = ($key =~ /^(.+)\.([^.]+)$/); |
|
if (($data eq 'award') || ($data eq 'awarddetail')) { |
|
my $value = &format_previous_attempt_value($key,$lasthash{$key}); |
|
if ($key =~/$regexp$/ && (defined &$gradesub)) { |
|
$value = &$gradesub($value); |
|
} |
|
$prevattempts.='<td>'.$value.' </td>'; |
|
} else { |
|
$prevattempts.='<td> </td>'; |
|
} |
|
} else { |
|
my $value = &format_previous_attempt_value($key,$lasthash{$key}); |
|
if ($key =~/$regexp$/ && (defined &$gradesub)) { |
|
$value = &$gradesub($value); |
|
} |
|
$prevattempts.='<td>'.$value.' </td>'; |
|
} |
|
} else { |
|
my $value = &format_previous_attempt_value($key,$lasthash{$key}); |
|
if ($key =~/$regexp$/ && (defined &$gradesub)) { |
|
$value = &$gradesub($value); |
|
} |
|
$prevattempts.='<td>'.$value.' </td>'; |
|
} |
} |
} |
$prevattempts.= &end_data_table_row().&end_data_table(); |
$prevattempts.= &end_data_table_row().&end_data_table(); |
} else { |
} else { |
Line 4146 sub get_domainconf {
|
Line 4217 sub get_domainconf {
|
if (defined($cached)) { return %{$result}; } |
if (defined($cached)) { return %{$result}; } |
|
|
my %domconfig = &Apache::lonnet::get_dom('configuration', |
my %domconfig = &Apache::lonnet::get_dom('configuration', |
['login','rolecolors'],$udom); |
['login','rolecolors','autoenroll'],$udom); |
my (%designhash,%legacy); |
my (%designhash,%legacy); |
if (keys(%domconfig) > 0) { |
if (keys(%domconfig) > 0) { |
if (ref($domconfig{'login'}) eq 'HASH') { |
if (ref($domconfig{'login'}) eq 'HASH') { |
if (keys(%{$domconfig{'login'}})) { |
if (keys(%{$domconfig{'login'}})) { |
foreach my $key (keys(%{$domconfig{'login'}})) { |
foreach my $key (keys(%{$domconfig{'login'}})) { |
if (ref($domconfig{'login'}{$key}) eq 'HASH') { |
if (ref($domconfig{'login'}{$key}) eq 'HASH') { |
foreach my $img (keys(%{$domconfig{'login'}{$key}})) { |
if ($key eq 'loginvia') { |
$designhash{$udom.'.login.'.$key.'_'.$img} = |
if (ref($domconfig{'login'}{'loginvia'}) eq 'HASH') { |
$domconfig{'login'}{$key}{$img}; |
my @ids = &Apache::lonnet::current_machine_ids(); |
|
foreach my $hostname (@ids) { |
|
if (ref($domconfig{'login'}{'loginvia'}{$hostname}) eq 'HASH') { |
|
if ($domconfig{'login'}{'loginvia'}{$hostname}{'server'}) { |
|
my $server = $domconfig{'login'}{'loginvia'}{$hostname}{'server'}; |
|
$designhash{$udom.'.login.loginvia'} = $server; |
|
if ($domconfig{'login'}{'loginvia'}{$hostname}{'serverpath'} eq 'custom') { |
|
|
|
$designhash{$udom.'.login.loginvia_'.$hostname} = $server.':'.$domconfig{'login'}{'loginvia'}{$hostname}{'custompath'}; |
|
} else { |
|
$designhash{$udom.'.login.loginvia_'.$hostname} = $server.':'.$domconfig{'login'}{'loginvia'}{$hostname}{'serverpath'}; |
|
} |
|
if ($domconfig{'login'}{'loginvia'}{$hostname}{'exempt'}) { |
|
$designhash{$udom.'.login.loginvia_exempt_'.$hostname} = $domconfig{'login'}{'loginvia'}{$hostname}{'exempt'}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} else { |
|
foreach my $img (keys(%{$domconfig{'login'}{$key}})) { |
|
$designhash{$udom.'.login.'.$key.'_'.$img} = |
|
$domconfig{'login'}{$key}{$img}; |
|
} |
} |
} |
} else { |
} else { |
$designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key}; |
$designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key}; |
Line 4182 sub get_domainconf {
|
Line 4276 sub get_domainconf {
|
} else { |
} else { |
$legacy{'rolecolors'} = 1; |
$legacy{'rolecolors'} = 1; |
} |
} |
|
if (ref($domconfig{'autoenroll'}) eq 'HASH') { |
|
if ($domconfig{'autoenroll'}{'co-owners'}) { |
|
$designhash{$udom.'.autoassign.co-owners'}=$domconfig{'autoenroll'}{'co-owners'}; |
|
} |
|
} |
if (keys(%legacy) > 0) { |
if (keys(%legacy) > 0) { |
my %legacyhash = &get_legacy_domconf($udom); |
my %legacyhash = &get_legacy_domconf($udom); |
foreach my $item (keys(%legacyhash)) { |
foreach my $item (keys(%legacyhash)) { |
Line 4437 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 4529 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 4584 sub bodytag {
|
Line 4682 sub bodytag {
|
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
} |
} |
|
|
#SD testing |
|
#$bodytag .= Apache::lonmenu::menubuttons($forcereg); |
|
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 { |
Line 4770 sub standard_css {
|
Line 4832 sub standard_css {
|
|
|
|
|
return <<END; |
return <<END; |
|
|
|
/* needed for iframe to allow 100% height in FF */ |
|
body, html { |
|
margin: 0; |
|
padding: 0 0.5%; |
|
height: 99%; /* to avoid scrollbars */ |
|
} |
|
|
body { |
body { |
font-family: $sans; |
font-family: $sans; |
line-height:130%; |
line-height:130%; |
Line 4794 form, .inline {
|
Line 4864 form, .inline {
|
vertical-align:middle; |
vertical-align:middle; |
} |
} |
|
|
/* just for tests */ |
|
.LC_400Box { |
.LC_400Box { |
width:400px; |
width:400px; |
} |
} |
/* end */ |
|
|
.LC_iframecontainer { |
|
width: 98%; |
|
margin: 0; |
|
position: fixed; |
|
top: 8.5em; |
|
bottom: 0; |
|
} |
|
|
|
.LC_iframecontainer iframe{ |
|
border: none; |
|
width: 100%; |
|
height: 100%; |
|
} |
|
|
.LC_filename { |
.LC_filename { |
font-family: $mono; |
font-family: $mono; |
Line 4912 table#LC_title_bar {
|
Line 4994 table#LC_title_bar {
|
} |
} |
|
|
table#LC_title_bar, |
table#LC_title_bar, |
table.LC_breadcrumbs, |
table.LC_breadcrumbs, /* obsolete? */ |
table#LC_title_bar.LC_with_remote { |
table#LC_title_bar.LC_with_remote { |
width: 100%; |
width: 100%; |
border-color: $pgbg; |
border-color: $pgbg; |
Line 4925 table#LC_title_bar.LC_with_remote {
|
Line 5007 table#LC_title_bar.LC_with_remote {
|
margin: 0; |
margin: 0; |
} |
} |
|
|
/* #SD START (work in progress)*/ |
ul.LC_breadcrumb_tools_outerlist { |
|
|
ul.LC_bct { |
|
margin: 0; |
margin: 0; |
padding: 0; |
padding: 0; |
|
position: relative; |
|
list-style: none; |
} |
} |
ul.LC_bct ol { |
ul.LC_breadcrumb_tools_outerlist li { |
display: inline; |
|
} |
|
ul.LC_bct ul { |
|
display: inline; |
|
padding: 0; |
|
} |
|
ul.LC_bct li { |
|
list-style-type: none; |
|
display: inline; |
display: inline; |
} |
} |
|
|
|
.LC_breadcrumb_tools_navigation { |
ul.LC_breadcrumb_tools { |
padding: 0; |
} |
margin: 0; |
|
float: left; |
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 { |
.LC_breadcrumb_tools_tools { |
margin: 0 1em 0 0; |
padding: 0; |
|
margin: 0; |
float: right; |
float: right; |
} |
} |
/* #SD END */ |
|
|
|
table#LC_title_bar td { |
table#LC_title_bar td { |
background: $tabbg; |
background: $tabbg; |
Line 4995 td.LC_table_cell_checkbox {
|
Line 5057 td.LC_table_cell_checkbox {
|
background: $sidebg; |
background: $sidebg; |
border-bottom: 1px solid $lg_border_color; |
border-bottom: 1px solid $lg_border_color; |
line-height: 2.5em; |
line-height: 2.5em; |
/* SD working here |
overflow: hidden; |
height: 2.5em; |
|
overflow: hidden; */ |
|
margin: 0; |
margin: 0; |
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; */ |
Line 5028 td.LC_table_cell_checkbox {
|
Line 5083 td.LC_table_cell_checkbox {
|
padding-left:3px; |
padding-left:3px; |
} |
} |
|
|
|
.LC_menubuttons_inline_text img{ |
|
vertical-align: middle; |
|
} |
|
|
.LC_menubuttons_link { |
.LC_menubuttons_link { |
text-decoration: none; |
text-decoration: none; |
} |
} |
Line 5047 td.LC_menubuttons_text {
|
Line 5106 td.LC_menubuttons_text {
|
background: $tabbg; |
background: $tabbg; |
} |
} |
|
|
table.LC_data_table, |
table.LC_data_table { |
table.LC_mail_list { |
|
border: 1px solid #000000; |
border: 1px solid #000000; |
border-collapse: separate; |
border-collapse: separate; |
border-spacing: 1px; |
border-spacing: 1px; |
Line 5084 table.LC_nested {
|
Line 5142 table.LC_nested {
|
|
|
table.LC_data_table tr th, |
table.LC_data_table tr th, |
table.LC_calendar tr th, |
table.LC_calendar tr th, |
table.LC_mail_list tr th, |
|
table.LC_prior_tries tr th, |
table.LC_prior_tries tr th, |
table.LC_innerpickbox tr th { |
table.LC_innerpickbox tr th { |
font-weight: bold; |
font-weight: bold; |
Line 5137 table.LC_data_table tr td.LC_leftcol_hea
|
Line 5194 table.LC_data_table tr td.LC_leftcol_hea
|
|
|
table.LC_data_table tr.LC_empty_row td, |
table.LC_data_table tr.LC_empty_row td, |
table.LC_nested tr.LC_empty_row td { |
table.LC_nested tr.LC_empty_row td { |
background-color: #FFFFFF; |
|
font-weight: bold; |
font-weight: bold; |
font-style: italic; |
font-style: italic; |
text-align: center; |
text-align: center; |
padding: 8px; |
padding: 8px; |
} |
} |
|
|
|
table.LC_data_table tr.LC_empty_row td { |
|
background-color: $sidebg; |
|
} |
|
|
|
table.LC_nested tr.LC_empty_row td { |
|
background-color: #FFFFFF; |
|
} |
|
|
table.LC_caption { |
table.LC_caption { |
} |
} |
|
|
Line 5248 table.LC_calendar tr td.LC_calendar_day_
|
Line 5312 table.LC_calendar tr td.LC_calendar_day_
|
background-color: $data_table_highlight; |
background-color: $data_table_highlight; |
} |
} |
|
|
table.LC_mail_list tr.LC_mail_new { |
table.LC_data_table tr td.LC_mail_new { |
background-color: $mail_new; |
background-color: $mail_new; |
} |
} |
|
|
table.LC_mail_list tr.LC_mail_new:hover { |
table.LC_data_table tr.LC_mail_new:hover { |
background-color: $mail_new_hover; |
background-color: $mail_new_hover; |
} |
} |
|
|
table.LC_mail_list tr.LC_mail_read { |
table.LC_data_table tr td.LC_mail_read { |
background-color: $mail_read; |
background-color: $mail_read; |
} |
} |
|
|
table.LC_mail_list tr.LC_mail_read:hover { |
/* |
|
table.LC_data_table tr.LC_mail_read:hover { |
background-color: $mail_read_hover; |
background-color: $mail_read_hover; |
} |
} |
|
*/ |
|
|
table.LC_mail_list tr.LC_mail_replied { |
table.LC_data_table tr td.LC_mail_replied { |
background-color: $mail_replied; |
background-color: $mail_replied; |
} |
} |
|
|
table.LC_mail_list tr.LC_mail_replied:hover { |
/* |
|
table.LC_data_table tr.LC_mail_replied:hover { |
background-color: $mail_replied_hover; |
background-color: $mail_replied_hover; |
} |
} |
|
*/ |
|
|
table.LC_mail_list tr.LC_mail_other { |
table.LC_data_table tr td.LC_mail_other { |
background-color: $mail_other; |
background-color: $mail_other; |
} |
} |
|
|
table.LC_mail_list tr.LC_mail_other:hover { |
/* |
|
table.LC_data_table tr.LC_mail_other:hover { |
background-color: $mail_other_hover; |
background-color: $mail_other_hover; |
} |
} |
|
*/ |
|
|
table.LC_data_table tr > td.LC_browser_file, |
table.LC_data_table tr > td.LC_browser_file, |
table.LC_data_table tr > td.LC_browser_file_published { |
table.LC_data_table tr > td.LC_browser_file_published { |
Line 5308 table.LC_data_table tr > td.LC_roles_is
|
Line 5378 table.LC_data_table tr > td.LC_roles_is
|
} |
} |
|
|
table.LC_data_table tr > td.LC_roles_future { |
table.LC_data_table tr > td.LC_roles_future { |
background: #FFFF77; |
border-right: 8px solid #FFFF77; |
} |
} |
|
|
table.LC_data_table tr > td.LC_roles_will { |
table.LC_data_table tr > td.LC_roles_will { |
background: #FFAA77; |
border-right: 8px solid #FFAA77; |
} |
} |
|
|
table.LC_data_table tr > td.LC_roles_expired { |
table.LC_data_table tr > td.LC_roles_expired { |
background: #FF7777; |
border-right: 8px solid #FF7777; |
} |
} |
|
|
table.LC_data_table tr > td.LC_roles_will_not { |
table.LC_data_table tr > td.LC_roles_will_not { |
background: #AAFF77; |
border-right: 8px solid #AAFF77; |
} |
} |
|
|
table.LC_data_table tr > td.LC_roles_selected { |
table.LC_data_table tr > td.LC_roles_selected { |
background: #11CC55; |
border-right: 8px solid #11CC55; |
} |
} |
|
|
span.LC_current_location { |
span.LC_current_location { |
Line 5786 div.LC_clear_float_footer {
|
Line 5856 div.LC_clear_float_footer {
|
} |
} |
|
|
div.LC_grade_show_user { |
div.LC_grade_show_user { |
margin-top: 20px; |
/* border-left: 5px solid $sidebg; */ |
border: 1px solid black; |
border-top: 5px solid #000000; |
|
margin: 50px 0 0 0; |
|
padding: 15px 0 5px 10px; |
} |
} |
|
|
div.LC_grade_user_name { |
div.LC_grade_show_user_odd_row { |
background: #DDDDEE; |
/* border-left: 5px solid #000000; */ |
border-bottom: 1px solid black; |
|
font-weight: bold; |
|
font-size: large; |
|
} |
} |
|
|
div.LC_grade_show_user_odd_row div.LC_grade_user_name { |
div.LC_grade_show_user div.LC_Box { |
background: #DDEEDD; |
margin-right: 50px; |
} |
} |
|
|
div.LC_grade_show_problem, |
|
div.LC_grade_submissions, |
div.LC_grade_submissions, |
div.LC_grade_message_center, |
div.LC_grade_message_center, |
div.LC_grade_info_links, |
div.LC_grade_info_links { |
div.LC_grade_assign { |
|
margin: 5px; |
margin: 5px; |
width: 99%; |
width: 99%; |
background: #FFFFFF; |
background: #FFFFFF; |
} |
} |
|
|
div.LC_grade_show_problem_header, |
|
div.LC_grade_submissions_header, |
div.LC_grade_submissions_header, |
div.LC_grade_message_center_header, |
div.LC_grade_message_center_header { |
div.LC_grade_assign_header { |
|
font-weight: bold; |
font-weight: bold; |
font-size: large; |
font-size: large; |
} |
} |
|
|
div.LC_grade_show_problem_problem, |
|
div.LC_grade_submissions_body, |
div.LC_grade_submissions_body, |
div.LC_grade_message_center_body, |
div.LC_grade_message_center_body { |
div.LC_grade_assign_body { |
|
border: 1px solid black; |
border: 1px solid black; |
width: 99%; |
width: 99%; |
background: #FFFFFF; |
background: #FFFFFF; |
} |
} |
|
|
span.LC_grade_check_note { |
|
font-weight: normal; |
|
font-size: medium; |
|
display: inline; |
|
position: absolute; |
|
right: 1em; |
|
} |
|
|
|
table.LC_scantron_action { |
table.LC_scantron_action { |
width: 100%; |
width: 100%; |
} |
} |
Line 5869 div.LC_edit_problem_header_title {
|
Line 5924 div.LC_edit_problem_header_title {
|
} |
} |
|
|
table.LC_edit_problem_header_title { |
table.LC_edit_problem_header_title { |
font-size: larger; |
|
font-weight: bold; |
|
width: 100%; |
width: 100%; |
border-color: $pgbg; |
|
border-style: solid; |
|
border-width: $border; |
|
background: $tabbg; |
background: $tabbg; |
border-collapse: collapse; |
|
padding: 0; |
|
} |
} |
|
|
div.LC_edit_problem_discards { |
div.LC_edit_problem_discards { |
Line 5910 div.LC_createcourse {
|
Line 5958 div.LC_createcourse {
|
display:none; |
display:none; |
} |
} |
|
|
/* ---- Remove when done ---- |
|
# The following styles is part of the redesign of LON-CAPA and are |
|
# subject to change during this project. |
|
# Don't rely on their current functionality as they might be |
|
# changed or removed. |
|
# --------------------------*/ |
|
|
|
a:hover, |
a:hover, |
ol.LC_primary_menu a:hover, |
ol.LC_primary_menu a:hover, |
ol#LC_MenuBreadcrumbs a:hover, |
ol#LC_MenuBreadcrumbs a:hover, |
Line 5991 fieldset > legend {
|
Line 6032 fieldset > legend {
|
|
|
#LC_nav_bar { |
#LC_nav_bar { |
float: left; |
float: left; |
margin: 0.2em 0 0 0; |
margin: 0; |
} |
} |
|
|
#LC_realm { |
#LC_realm { |
Line 6008 fieldset > legend {
|
Line 6049 fieldset > legend {
|
|
|
ol.LC_primary_menu { |
ol.LC_primary_menu { |
float: right; |
float: right; |
margin: 0.2em 0 0 0; |
margin: 0; |
} |
|
|
|
span.LC_new_message{ |
|
font-weight:bold; |
|
color: darkred; |
|
} |
} |
|
|
ol#LC_PathBreadcrumbs { |
ol#LC_PathBreadcrumbs { |
Line 6028 ol.LC_primary_menu li {
|
Line 6064 ol.LC_primary_menu li {
|
|
|
ol.LC_primary_menu li img { |
ol.LC_primary_menu li img { |
vertical-align: bottom; |
vertical-align: bottom; |
|
height: 1.1em; |
} |
} |
|
|
ol.LC_primary_menu a { |
ol.LC_primary_menu a { |
font-size: 90%; |
|
color: RGB(80, 80, 80); |
color: RGB(80, 80, 80); |
text-decoration: none; |
text-decoration: none; |
} |
} |
|
|
|
ol.LC_primary_menu a.LC_new_message { |
|
font-weight:bold; |
|
color: darkred; |
|
} |
|
|
ul#LC_secondary_menu { |
ul#LC_secondary_menu { |
clear: both; |
clear: both; |
color: $fontmenu; |
color: $fontmenu; |
Line 6103 ul.LC_TabContent li.active {
|
Line 6144 ul.LC_TabContent li.active {
|
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 2px #FFFFFF; |
border-bottom:solid 2px #FFFFFF; |
padding-right: 16px; |
padding-right: 16px; |
|
cursor:pointer; |
} |
} |
|
|
#maincoursedoc { |
#maincoursedoc { |
Line 6169 ol#LC_MenuBreadcrumbs,
|
Line 6211 ol#LC_MenuBreadcrumbs,
|
ol#LC_PathBreadcrumbs { |
ol#LC_PathBreadcrumbs { |
padding-left: 10px; |
padding-left: 10px; |
margin: 0; |
margin: 0; |
list-style-position: inside; |
height: 2.5em; /* equal to #LC_breadcrumbs line-height */ |
/* SD working here |
|
white-space: nowrap; */ |
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li, |
ol#LC_MenuBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ol#LC_PathBreadcrumbs li, |
ul.LC_CourseBreadcrumbs li { |
ul.LC_CourseBreadcrumbs li { |
display: inline; |
display: inline; |
white-space: nowrap; |
white-space: normal; |
/* SD working here |
|
white-space: normal; */ |
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li a, |
ol#LC_MenuBreadcrumbs li a, |
Line 6433 ul.LC_funclist {
|
Line 6471 ul.LC_funclist {
|
padding: 0.5em 1em 0.5em 0; |
padding: 0.5em 1em 0.5em 0; |
} |
} |
|
|
|
ul.LC_funclist > li:first-child { |
|
font-weight:bold; |
|
margin-left:0.8em; |
|
} |
|
|
ul.LC_funclist + ul.LC_funclist { |
ul.LC_funclist + ul.LC_funclist { |
/* |
/* |
left border as a seperator if we have more than |
left border as a seperator if we have more than |
Line 6668 $args - additional optional args support
|
Line 6711 $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 6735 sub start_page {
|
Line 6778 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 10032 sub check_clone {
|
Line 10076 sub check_clone {
|
my $clonehome=&Apache::lonnet::homeserver($clonecrsunum,$clonecrsudom); |
my $clonehome=&Apache::lonnet::homeserver($clonecrsunum,$clonecrsudom); |
my $clonemsg; |
my $clonemsg; |
my $can_clone = 0; |
my $can_clone = 0; |
my $lctype = lc($args->{'type'}); |
my $lctype = lc($args->{'crstype'}); |
if ($lctype ne 'community') { |
if ($lctype ne 'community') { |
$lctype = 'course'; |
$lctype = 'course'; |
} |
} |
if ($clonehome eq 'no_host') { |
if ($clonehome eq 'no_host') { |
if ($args->{'type'} eq 'Community') { |
if ($args->{'crstype'} eq 'Community') { |
$clonemsg = &mt('No new community created.').$linefeed.&mt('A new community could not be cloned from the specified original - [_1] - because it is a non-existent community.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
$clonemsg = &mt('No new community created.').$linefeed.&mt('A new community could not be cloned from the specified original - [_1] - because it is a non-existent community.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
} else { |
} else { |
$clonemsg = &mt('No new course created.').$linefeed.&mt('A new course could not be cloned from the specified original - [_1] - because it is a non-existent course.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
$clonemsg = &mt('No new course created.').$linefeed.&mt('A new course could not be cloned from the specified original - [_1] - because it is a non-existent course.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
} |
} |
} else { |
} else { |
my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1}); |
my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1}); |
if ($args->{'type'} eq 'Community') { |
if ($args->{'crstype'} eq 'Community') { |
if ($clonedesc{'type'} ne 'Community') { |
if ($clonedesc{'type'} ne 'Community') { |
$clonemsg = &mt('No new community created.').$linefeed.&mt('A new community could not be cloned from the specified original - [_1] - because it is a course not a community.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
$clonemsg = &mt('No new community created.').$linefeed.&mt('A new community could not be cloned from the specified original - [_1] - because it is a course not a community.',$args->{'clonecourse'}.':'.$args->{'clonedomain'}); |
return ($can_clone, $clonemsg, $cloneid, $clonehome); |
return ($can_clone, $clonemsg, $cloneid, $clonehome); |
Line 10063 sub check_clone {
|
Line 10107 sub check_clone {
|
$can_clone = 1; |
$can_clone = 1; |
} else { |
} else { |
my $ccrole = 'cc'; |
my $ccrole = 'cc'; |
if ($args->{'type'} eq 'Community') { |
if ($args->{'crstype'} eq 'Community') { |
$ccrole = 'co'; |
$ccrole = 'co'; |
} |
} |
my %roleshash = |
my %roleshash = |
Line 10072 sub check_clone {
|
Line 10116 sub check_clone {
|
'userroles',['active'],[$ccrole], |
'userroles',['active'],[$ccrole], |
[$args->{'clonedomain'}]); |
[$args->{'clonedomain'}]); |
if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':'.$ccrole}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) { |
if (($roleshash{$args->{'clonecourse'}.':'.$args->{'clonedomain'}.':'.$ccrole}) || (grep(/^\Q$args->{'ccuname'}\E:\Q$args->{'ccdomain'}\E$/,@cloners))) { |
$can_clone = 1; |
$can_clone = 1; |
} else { |
} elsif (&Apache::lonnet::is_course_owner($args->{'clonedomain'},$args->{'clonecourse'},$args->{'ccuname'},$args->{'ccdomain'})) { |
if ($args->{'type'} eq 'Community') { |
$can_clone = 1; |
|
} else { |
|
if ($args->{'crstype'} eq 'Community') { |
$clonemsg = &mt('No new community created.').$linefeed.&mt('The new community could not be cloned from the existing community because the new community owner ([_1]) does not have cloning rights in the existing community ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'}); |
$clonemsg = &mt('No new community created.').$linefeed.&mt('The new community could not be cloned from the existing community because the new community owner ([_1]) does not have cloning rights in the existing community ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'}); |
} else { |
} else { |
$clonemsg = &mt('No new course created.').$linefeed.&mt('The new course could not be cloned from the existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'}); |
$clonemsg = &mt('No new course created.').$linefeed.&mt('The new course could not be cloned from the existing course because the new course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$args->{'ccuname'}.':'.$args->{'ccdomain'},$clonedesc{'description'}); |
Line 10133 sub construct_course {
|
Line 10179 sub construct_course {
|
# if anyone ever decides to not show this, and Utils::Course::new |
# if anyone ever decides to not show this, and Utils::Course::new |
# will need to be suitably modified. |
# will need to be suitably modified. |
$outcome .= &mt('New LON-CAPA [_1] ID: [_2]',$crstype,$$courseid).$linefeed; |
$outcome .= &mt('New LON-CAPA [_1] ID: [_2]',$crstype,$$courseid).$linefeed; |
|
if ($$courseid =~ /^error:/) { |
|
return (0,$outcome); |
|
} |
|
|
# |
# |
# Check if created correctly |
# Check if created correctly |
# |
# |
($$crsudom,$$crsunum)= &LONCAPA::split_courseid($$courseid); |
($$crsudom,$$crsunum)= &LONCAPA::split_courseid($$courseid); |
my $crsuhome=&Apache::lonnet::homeserver($$crsunum,$$crsudom); |
my $crsuhome=&Apache::lonnet::homeserver($$crsunum,$$crsudom); |
|
if ($crsuhome eq 'no_host') { |
|
$outcome .= &mt('Course creation failed, unrecognized course home server.').$linefeed; |
|
return (0,$outcome); |
|
} |
$outcome .= &mt('Created on').': '.$crsuhome.$linefeed; |
$outcome .= &mt('Created on').': '.$crsuhome.$linefeed; |
|
|
# |
# |
Line 10584 sub init_user_environment {
|
Line 10638 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 10624 sub init_user_environment {
|
Line 10675 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'}; |