version 1.827, 2009/05/27 14:59:49
|
version 1.847, 2009/07/01 13:16:41
|
Line 4183 sub designparm {
|
Line 4183 sub designparm {
|
############################################## |
############################################## |
=pod |
=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() |
=item * &head_subbox() |
|
|
Inputs: $content (contains HTML code with page functions, etc.) |
Inputs: $content (contains HTML code with page functions, etc.) |
Line 4195 Returns: HTML div with $content
|
Line 4223 Returns: HTML div with $content
|
sub head_subbox { |
sub head_subbox { |
my ($content)=@_; |
my ($content)=@_; |
my $output = |
my $output = |
'<div id="LC_head_subbox2">' #FIXME: solve conflicts with lonhtmlcommon:breadcrumbs LC_head_subbox |
'<div id="LC_head_subbox">' |
.$content |
.$content |
.'</div>' |
.'</div>' |
} |
} |
Line 4274 Inputs:
|
Line 4302 Inputs:
|
=item * $forcereg, if page should register as content page (relevant for |
=item * $forcereg, if page should register as content page (relevant for |
text interface only) |
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 |
=item * $no_nav_bar, if true, keep the 'what is this' info but remove the |
navigational links |
navigational links |
|
|
Line 4302 other decorations will be returned.
|
Line 4326 other decorations will be returned.
|
=cut |
=cut |
|
|
sub bodytag { |
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)=@_; |
$no_nav_bar,$bgcolor,$no_inline_link,$args)=@_; |
|
|
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
Line 4357 sub bodytag {
|
Line 4381 sub bodytag {
|
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}); |
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}); |
} |
} |
|
|
my $roleinfo=(<<ENDROLE); |
|
<td class="LC_title_bar_who"> |
|
<div class="LC_title_bar_name"> |
|
$name |
|
|
|
</div> |
|
<div class="LC_title_bar_role"> |
|
$role |
|
</div> |
|
<div class="LC_title_bar_realm"> |
|
$realm |
|
</div> |
|
</td> |
|
ENDROLE |
|
|
|
my $titleinfo = '<h1>'.$title.'</h1>'; |
my $titleinfo = '<h1>'.$title.'</h1>'; |
if ($customtitle) { |
|
$titleinfo = $customtitle; |
|
} |
|
# |
# |
# Extra info if you are the DC |
# Extra info if you are the DC |
my $dc_info = ''; |
my $dc_info = ''; |
Line 4388 ENDROLE
|
Line 4394 ENDROLE
|
$dc_info = '('.$dc_info.')'; |
$dc_info = '('.$dc_info.')'; |
} |
} |
|
|
if (($env{'environment.remote'} eq 'off') || ($args->{'suppress_header_logos'})) { |
if ($env{'environment.remote'} eq 'off') { |
# No Remote |
# No Remote |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$forcereg=1; |
$forcereg=1; |
} |
} |
|
|
if (!$customtitle && $env{'request.state'} eq 'construct') { |
# if ($env{'request.state'} eq 'construct') { |
$titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls |
# $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls |
} |
# } |
|
|
my $titletable = '<table id="LC_title_bar">' |
my $titletable = '<table id="LC_title_bar">' |
."<tr><td> $titleinfo $dc_info</td>".$roleinfo |
."<tr><td> $titleinfo $dc_info</td>" |
.'</tr></table>'; |
.'</tr></table>'; |
|
|
if ($no_nav_bar) { |
if ($no_nav_bar) { |
Line 4439 $bodytag
|
Line 4445 $bodytag
|
<td>$messages </td> |
<td>$messages </td> |
</tr> |
</tr> |
<tr><td>$titleinfo $dc_info $menu</td> |
<tr><td>$titleinfo $dc_info $menu</td> |
$roleinfo |
|
</tr> |
</tr> |
</table> |
</table> |
ENDBODY |
ENDBODY |
Line 4600 a:focus {
|
Line 4605 a:focus {
|
background: yellow |
background: yellow |
} |
} |
|
|
|
hr { |
|
clear: both; |
|
color: $tabbg; |
|
background-color: $tabbg; |
|
height: 3px; |
|
border: none; |
|
} |
|
|
form, .inline { |
form, .inline { |
display: inline; |
display: inline; |
} |
} |
Line 4722 table#LC_nav_location {
|
Line 4735 table#LC_nav_location {
|
table#LC_title_bar a { |
table#LC_title_bar a { |
color: $fontmenu; |
color: $fontmenu; |
} |
} |
|
|
table#LC_title_bar { |
table#LC_title_bar { |
clear: both; |
clear: both; |
/*display: none;*/ |
display: none; |
} |
} |
|
|
table#LC_title_bar, |
table#LC_title_bar, |
Line 4742 table#LC_title_bar.LC_with_remote {
|
Line 4755 table#LC_title_bar.LC_with_remote {
|
margin: 0; |
margin: 0; |
} |
} |
|
|
table.LC_docs_path { |
|
width: 100%; |
|
border: 0; |
|
background: $pgbg; |
|
border-collapse: collapse; |
|
padding: 0; |
|
} |
|
|
|
table#LC_title_bar td { |
table#LC_title_bar td { |
background: $tabbg; |
background: $tabbg; |
} |
} |
|
|
table#LC_title_bar .LC_title_bar_who { |
|
background: $tabbg; |
|
color: $fontmenu; |
|
font: small; |
|
text-align: right; |
|
margin: 0; |
|
} |
|
|
|
table#LC_title_bar div.LC_title_bar_name { |
|
margin: 0; |
|
} |
|
|
|
table#LC_title_bar div.LC_title_bar_role { |
|
margin: 0; |
|
} |
|
|
|
table#LC_title_bar div.LC_title_bar_realm { |
|
margin: 0; |
|
} |
|
|
|
table#LC_menubuttons img{ |
table#LC_menubuttons img{ |
border: none; |
border: none; |
} |
} |
Line 4813 table#LC_top_nav td.LC_top_nav_login {
|
Line 4798 table#LC_top_nav td.LC_top_nav_login {
|
text-align: center; |
text-align: center; |
} |
} |
|
|
table.LC_breadcrumbs td, |
.LC_breadcrumbs_component { |
table.LC_docs_path td { |
float: right; |
background: $tabbg; |
margin: 0 1em; |
color: $fontmenu; |
|
font-size: smaller; |
|
} |
} |
|
.LC_breadcrumbs_component img { |
table.LC_breadcrumbs td.LC_breadcrumbs_component, |
vertical-align: middle; |
table.LC_docs_path td.LC_docs_path_component { |
|
background: $tabbg; |
|
color: $fontmenu; |
|
font-size: larger; |
|
text-align: right; |
|
} |
} |
|
|
td.LC_table_cell_checkbox { |
td.LC_table_cell_checkbox { |
Line 4840 table#LC_mainmenu td.LC_mainmenu_column
|
Line 4818 table#LC_mainmenu td.LC_mainmenu_column
|
font-size: 70%; |
font-size: 70%; |
} |
} |
|
|
#LC_head_subbox { |
#LC_breadcrumbs { |
clear:both; |
clear:both; |
background: $sidebg; |
background: $sidebg; |
border-bottom: 1px solid $lg_border_color; |
border-bottom: 1px solid $lg_border_color; |
height: 32px; |
|
line-height: 32px; |
line-height: 32px; |
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_subbox2 { /* FIXME: replace by LC_head_subbox once lonhtmlcommon::breadcrumbs has been fixed */ |
#LC_head_subbox { |
clear:both; |
clear:both; |
background: #F8F8F8; /* $sidebg; */ |
background: #F8F8F8; /* $sidebg; */ |
border-bottom: 1px solid $lg_border_color; |
border-bottom: 1px solid $lg_border_color; |
Line 4896 td.LC_menubuttons_text {
|
Line 4877 td.LC_menubuttons_text {
|
font-weight: bold; |
font-weight: bold; |
} |
} |
|
|
.LC_preferences_labeltext { |
|
text-align: right; |
|
} |
|
|
|
.LC_roleslog_note { |
.LC_roleslog_note { |
font-size: small; |
font-size: small; |
} |
} |
|
|
.LC_mail_functions { |
|
font-weight: bold; |
|
} |
|
|
|
table.LC_data_table, |
table.LC_data_table, |
table.LC_mail_list { |
table.LC_mail_list { |
border: 1px solid #000000; |
border: 1px solid #000000; |
Line 5209 table#LC_helpmenu {
|
Line 5182 table#LC_helpmenu {
|
|
|
table#LC_helpmenu fieldset legend { |
table#LC_helpmenu fieldset legend { |
font-size: larger; |
font-size: larger; |
font-weight: bold; |
|
} |
} |
|
|
table#LC_helpmenu_links { |
table#LC_helpmenu_links { |
Line 5425 table.LC_status_selector td {
|
Line 5397 table.LC_status_selector td {
|
|
|
div.LC_feedback_link { |
div.LC_feedback_link { |
clear: both; |
clear: both; |
background: white; |
background: $sidebg; |
width: 100%; |
width: 100%; |
|
padding-bottom: 10px; |
|
border: 1px $tabbg solid; |
|
height: 22px; |
|
line-height: 22px; |
|
padding-top: 5px; |
|
} |
|
|
|
div.LC_feedback_link img { |
|
height: 22px; |
|
} |
|
|
|
div.LC_feedback_link a{ |
|
text-decoration: none; |
} |
} |
|
|
span.LC_feedback_link { |
span.LC_feedback_link { |
background: $feedback_link_bg; |
//background: $feedback_link_bg; |
font-size: larger; |
font-size: larger; |
} |
} |
|
|
span.LC_message_link { |
span.LC_message_link { |
background: $feedback_link_bg; |
//background: $feedback_link_bg; |
font-size: larger; |
font-size: larger; |
position: absolute; |
position: absolute; |
right: 1em; |
right: 1em; |
Line 5722 div.LC_edit_problem_editxml_header div {
|
Line 5707 div.LC_edit_problem_editxml_header div {
|
margin-top: 5px; |
margin-top: 5px; |
} |
} |
|
|
div.LC_edit_problem_header_edit_row { |
|
background: $tabbg; |
|
padding: 3px; |
|
margin-bottom: 5px; |
|
} |
|
|
|
div.LC_edit_problem_header_title { |
div.LC_edit_problem_header_title { |
font-weight: bold; |
font-weight: bold; |
font-size: larger; |
font-size: larger; |
Line 5757 div.LC_edit_problem_saves {
|
Line 5736 div.LC_edit_problem_saves {
|
padding-bottom: 5px; |
padding-bottom: 5px; |
} |
} |
|
|
hr.LC_edit_problem_divide { |
|
clear: both; |
|
color: $tabbg; |
|
background-color: $tabbg; |
|
height: 3px; |
|
border: none; |
|
} |
|
|
|
img.stift{ |
img.stift{ |
border-width: 0; |
border-width: 0; |
vertical-align: middle; |
vertical-align: middle; |
Line 5828 h2,h3,h4,h5,h6 {
|
Line 5799 h2,h3,h4,h5,h6 {
|
border-bottom:solid 1px $lg_border_color; |
border-bottom:solid 1px $lg_border_color; |
} |
} |
|
|
|
.LC_Box > .LC_hcell { |
|
margin: 0 -10px 10px -10px; |
|
} |
|
|
.LC_noBorder { |
.LC_noBorder { |
border: 0; |
border: 0; |
} |
} |
|
|
|
|
/* Main Header with discription of Person, Course, etc. */ |
|
|
|
.LC_Right { |
.LC_Right { |
float: right; |
float: right; |
margin: 0; |
margin: 0; |
Line 5863 dl,ul,div,fieldset {
|
Line 5835 dl,ul,div,fieldset {
|
/* overflow: hidden; */ |
/* overflow: hidden; */ |
} |
} |
|
|
|
fieldset > legend { |
|
font-weight: bold; |
|
padding: 0 5px 0 5px; |
|
} |
|
|
#LC_nav_bar { |
#LC_nav_bar { |
float: left; |
float: left; |
margin: 0; |
margin: 0; |
Line 5918 ul#LC_TabMainMenuContent li {
|
Line 5895 ul#LC_TabMainMenuContent li {
|
vertical-align: middle; |
vertical-align: middle; |
} |
} |
|
|
ul.LC_TabContent , |
ul.LC_TabContent { |
ul.LC_TabContentBigger { |
|
display:block; |
display:block; |
|
background: $sidebg; |
|
border-bottom: solid 1px $lg_border_color |
list-style:none; |
list-style:none; |
margin: 0; |
margin: -10px -10px 0 -10px; |
padding: 0; |
padding: 0; |
} |
} |
|
|
|
ul.LC_TabContentBigger { |
|
display:block; |
|
list-style:none; |
|
padding: 0; |
|
} |
|
|
|
|
ul.LC_TabContent li, |
ul.LC_TabContent li, |
ul.LC_TabContentBigger li { |
ul.LC_TabContentBigger li { |
display: inline; |
display: inline; |
Line 5941 ul#LC_TabMainMenuContent li a {
|
Line 5926 ul#LC_TabMainMenuContent li a {
|
} |
} |
|
|
ul.LC_TabContent { |
ul.LC_TabContent { |
min-height:1.6em; |
min-height:1.5em; |
} |
} |
|
|
ul.LC_TabContent li { |
ul.LC_TabContent li { |
Line 5951 ul.LC_TabContent li {
|
Line 5936 ul.LC_TabContent li {
|
border-bottom:solid 1px $lg_border_color; |
border-bottom:solid 1px $lg_border_color; |
} |
} |
|
|
|
ul.LC_TabContent .right { |
|
float:right; |
|
} |
|
|
ul.LC_TabContent li a, ul.LC_TabContent li { |
ul.LC_TabContent li a, ul.LC_TabContent li { |
color:rgb(47,47,47); |
color:rgb(47,47,47); |
text-decoration:none; |
text-decoration:none; |
Line 5961 ul.LC_TabContent li a, ul.LC_TabContent
|
Line 5950 ul.LC_TabContent li a, ul.LC_TabContent
|
|
|
ul.LC_TabContent li:hover, ul.LC_TabContent li.active { |
ul.LC_TabContent li:hover, 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 1px #FFFFFF; |
border-bottom:solid 2px #FFFFFF; |
padding-right: 16px; |
padding-right: 16px; |
} |
} |
|
|
Line 5971 ul.LC_TabContentBigger li {
|
Line 5960 ul.LC_TabContentBigger li {
|
border-left:solid 1px $lg_border_color; |
border-left:solid 1px $lg_border_color; |
padding:5px 10px 5px 10px; |
padding:5px 10px 5px 10px; |
margin-left:2px; |
margin-left:2px; |
background:url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
background: #d9d9d9; |
|
} |
|
|
|
#maincoursedoc { |
|
clear:both; |
} |
} |
|
|
ul.LC_TabContentBigger li:hover, |
ul.LC_TabContentBigger li:hover, |
ul.LC_TabContentBigger li.active { |
ul.LC_TabContentBigger li.active { |
background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom; |
background: #ffffff; |
} |
} |
|
|
ul.LC_TabContentBigger li, |
ul.LC_TabContentBigger li, |
Line 5996 ul#LC_CourseBreadcrumbs {
|
Line 5989 ul#LC_CourseBreadcrumbs {
|
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; |
padding: 0 0 0 10px; |
white-space: nowrap; |
overflow:hidden; |
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li a, |
ol#LC_MenuBreadcrumbs li a, |
Line 6013 ol#LC_PathBreadcrumbs li a {
|
Line 6005 ol#LC_PathBreadcrumbs li a {
|
font-weight:bold; |
font-weight:bold; |
} |
} |
|
|
.LC_BoxPadding { |
.LC_Box { |
padding: 10px; |
border: solid 1px $lg_border_color; |
} |
padding: 0 10px 10px 10px; |
|
margin: 0; |
.LC_ContentBoxSpecial { |
clear: both; |
border: solid 1px $lg_border_color; |
|
} |
|
|
|
.LC_ContentBoxSpecialContactInfo { |
|
border: solid 1px $lg_border_color; |
|
max-width:25%; |
|
min-width:25%; |
|
} |
} |
|
|
.LC_AboutMe_Image { |
.LC_AboutMe_Image { |
Line 6113 div.LC_columnSection>* {
|
Line 6098 div.LC_columnSection>* {
|
overflow:hidden; |
overflow:hidden; |
} |
} |
|
|
.ContentBoxSpecialTemplate { |
|
border: solid 1px $lg_border_color; |
|
} |
|
|
|
.ContentBoxTemplate { |
|
padding:10px; |
|
} |
|
|
|
div.LC_columnSection > .ContentBoxTemplate, |
|
div.LC_columnSection > .ContentBoxSpecialTemplate { |
|
width: 600px; |
|
} |
|
|
|
.clear { |
.clear { |
clear: both; |
clear: both; |
line-height: 0; |
line-height: 0; |
Line 6281 a.LC_toolbarItem {
|
Line 6253 a.LC_toolbarItem {
|
background-color:transparent; |
background-color:transparent; |
} |
} |
|
|
ul.LC_functionslist li { |
ul.LC_funclist li { |
float: left; |
float: left; |
white-space: nowrap; |
white-space: nowrap; |
height: 35px; /* at least as high as heighest list item */ |
height: 35px; /* at least as high as heighest list item */ |
Line 6492 $args - additional optional args support
|
Line 6464 $args - additional optional args support
|
a html attribute |
a html attribute |
force_register -> if is true will turn on the &bodytag() |
force_register -> if is true will turn on the &bodytag() |
$forcereg arg |
$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 <frameset> |
frameset -> if true will start with a <frameset> |
rather than <body> |
rather than <body> |
skip_phases -> hash ref of |
skip_phases -> hash ref of |
Line 6538 sub start_page {
|
Line 6507 sub start_page {
|
my $attr_string = &make_attr_string($args->{'force_register'}, |
my $attr_string = &make_attr_string($args->{'force_register'}, |
$args->{'add_entries'}); |
$args->{'add_entries'}); |
$result .= "\n<frameset $attr_string>\n"; |
$result .= "\n<frameset $attr_string>\n"; |
} else { |
} else { |
$result .= |
$result .= |
&bodytag($title, |
&bodytag($title, |
$args->{'function'}, $args->{'add_entries'}, |
$args->{'function'}, $args->{'add_entries'}, |
$args->{'only_body'}, $args->{'domain'}, |
$args->{'only_body'}, $args->{'domain'}, |
$args->{'force_register'}, $args->{'body_title'}, |
$args->{'force_register'}, $args->{'no_nav_bar'}, |
$args->{'no_nav_bar'}, $args->{'bgcolor'}, |
$args->{'bgcolor'}, $args->{'no_inline_link'}, |
$args->{'no_inline_link'}, |
$args); |
$args); |
} |
} |
|
} |
} |
|
|
if ($args->{'js_ready'}) { |
if ($args->{'js_ready'}) { |
Line 8569 sub csv_print_samples {
|
Line 8537 sub csv_print_samples {
|
$r->print(&mt('Samples').'<br />'.&start_data_table(). |
$r->print(&mt('Samples').'<br />'.&start_data_table(). |
&start_data_table_header_row()); |
&start_data_table_header_row()); |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
$r->print('<th>'.&mt('Column [_1]',($sample+1)).'</th>'); } |
$r->print('<th>'.&mt('Column [_1]',($sample+1)).'</th>'); } |
$r->print(&end_data_table_header_row()); |
$r->print(&end_data_table_header_row()); |
foreach my $hash (@$samples) { |
foreach my $hash (@$samples) { |
$r->print(&start_data_table_row()); |
$r->print(&start_data_table_row()); |