version 1.724, 2008/12/18 16:58:26
|
version 1.744, 2009/02/10 12:20:17
|
Line 943 ENDTEMPLATE
|
Line 943 ENDTEMPLATE
|
# This is a quicky function for Latex cheatsheet editing, since it |
# This is a quicky function for Latex cheatsheet editing, since it |
# appears in at least four places |
# appears in at least four places |
sub helpLatexCheatsheet { |
sub helpLatexCheatsheet { |
my $other = shift; |
my ($topic,$text,$not_author) = @_; |
|
my $out; |
my $addOther = ''; |
my $addOther = ''; |
if ($other) { |
if ($topic) { |
$addOther = Apache::loncommon::help_open_topic($other, shift, |
$addOther = &Apache::loncommon::help_open_topic($topic,$text, |
undef, undef, 600) . |
undef, undef, 600). |
'</td><td>'; |
'</td><td>'; |
} |
} |
return '<table><tr><td>'. |
$out = '<table><tr><td>'. |
$addOther . |
$addOther . |
&Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'), |
&Apache::loncommon::help_open_topic("Greek_Symbols",&mt('Greek Symbols'), |
undef,undef,600) |
undef,undef,600). |
.'</td><td>'. |
'</td><td>'. |
&Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'), |
&Apache::loncommon::help_open_topic("Other_Symbols",&mt('Other Symbols'), |
undef,undef,600) |
undef,undef,600). |
.'</td><td>'. |
'</td>'; |
&Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'), |
unless ($not_author) { |
undef,undef,600) |
$out .= '<td>'. |
.'</td></tr></table>'; |
&Apache::loncommon::help_open_topic("Authoring_Output_Tags",&mt('Output Tags'), |
|
undef,undef,600). |
|
'</td>'; |
|
} |
|
$out .= '</tr></table>'; |
|
return $out; |
} |
} |
|
|
sub general_help { |
sub general_help { |
Line 1629 sub multiple_select_form {
|
Line 1635 sub multiple_select_form {
|
$size = scalar(keys(%$hash)); |
$size = scalar(keys(%$hash)); |
} |
} |
} |
} |
$output.="\n<select name='$name' size='$size' multiple='1'>"; |
$output.="\n".'<select name="'.$name.'" size="'.$size.'" multiple="multiple">'; |
my @order; |
my @order; |
if (ref($order) eq 'ARRAY') { |
if (ref($order) eq 'ARRAY') { |
@order = @{$order}; |
@order = @{$order}; |
Line 1740 sub select_level_form {
|
Line 1746 sub select_level_form {
|
|
|
=pod |
=pod |
|
|
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc) |
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$autosubmit) |
|
|
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 the domain to preform an operation in. |
allow a user to select the domain to preform an operation in. |
Line 1749 See loncreateuser.pm for an example invo
|
Line 1755 See loncreateuser.pm for an example invo
|
If the $includeempty flag is set, it also includes an empty choice ("no domain |
If the $includeempty flag is set, it also includes an empty choice ("no domain |
selected"); |
selected"); |
|
|
If the $showdomdesc flag is set, the domain name is followed by the domain description. |
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. |
|
|
=cut |
=cut |
|
|
#------------------------------------------- |
#------------------------------------------- |
sub select_dom_form { |
sub select_dom_form { |
my ($defdom,$name,$includeempty,$showdomdesc) = @_; |
my ($defdom,$name,$includeempty,$showdomdesc,$autosubmit) = @_; |
|
my $onchange; |
|
if ($autosubmit) { |
|
$onchange = ' onchange="this.form.submit()"'; |
|
} |
my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains()); |
my @domains = sort {lc($a) cmp lc($b)} (&Apache::lonnet::all_domains()); |
if ($includeempty) { @domains=('',@domains); } |
if ($includeempty) { @domains=('',@domains); } |
my $selectdomain = "<select name=\"$name\" size=\"1\">\n"; |
my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange>\n"; |
foreach my $dom (@domains) { |
foreach my $dom (@domains) { |
$selectdomain.="<option value=\"$dom\" ". |
$selectdomain.="<option value=\"$dom\" ". |
($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom; |
($dom eq $defdom ? 'selected="selected" ' : '').'>'.$dom; |
Line 2717 sub flush_email_cache {
|
Line 2729 sub flush_email_cache {
|
&Apache::lonnet::devalidate_cache_new('emailscache',$id); |
&Apache::lonnet::devalidate_cache_new('emailscache',$id); |
} |
} |
|
|
|
# -------------------------------------------------------------------- getlangs |
|
|
|
=pod |
|
|
|
=item * &getlangs($uname,$udom) |
|
|
|
Gets a user's language preference and returns it as a hash with key: |
|
language. |
|
|
|
=cut |
|
|
|
|
|
sub getlangs { |
|
my ($uname,$udom) = @_; |
|
if (!$udom) { $udom =$env{'user.domain'}; } |
|
if (!$uname) { $uname=$env{'user.name'}; } |
|
my $id=$uname.':'.$udom; |
|
my ($langs,$cached)=&Apache::lonnet::is_cached_new('userlangs',$id); |
|
if ($cached) { |
|
return %{$langs}; |
|
} else { |
|
my %loadlangs=&Apache::lonnet::get('environment',['languages'], |
|
$udom,$uname); |
|
&Apache::lonnet::do_cache_new('userlangs',$id,\%loadlangs); |
|
return %loadlangs; |
|
} |
|
} |
|
|
|
sub flush_langs_cache { |
|
my ($uname,$udom)=@_; |
|
if (!$udom) { $udom =$env{'user.domain'}; } |
|
if (!$uname) { $uname=$env{'user.name'}; } |
|
return if ($udom eq 'public' && $uname eq 'public'); |
|
my $id=$uname.':'.$udom; |
|
&Apache::lonnet::devalidate_cache_new('userlangs',$id); |
|
} |
|
|
# ------------------------------------------------------------------ Screenname |
# ------------------------------------------------------------------ Screenname |
|
|
=pod |
=pod |
Line 3030 sub languages {
|
Line 3079 sub languages {
|
return $preferred_possibilities[0]; |
return $preferred_possibilities[0]; |
} |
} |
|
|
|
sub user_lang { |
|
my ($touname,$toudom,$fromcid) = @_; |
|
my @userlangs; |
|
if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) { |
|
@userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/, |
|
$env{'course.'.$fromcid.'.languages'})); |
|
} else { |
|
my %langhash = &getlangs($touname,$toudom); |
|
if ($langhash{'languages'} ne '') { |
|
@userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'}); |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($toudom); |
|
if ($domdefs{'lang_def'} ne '') { |
|
@userlangs = ($domdefs{'lang_def'}); |
|
} |
|
} |
|
} |
|
my @languages=&Apache::lonlocal::get_genlanguages(@userlangs); |
|
my $user_lh = Apache::localize->get_handle(@languages); |
|
return $user_lh; |
|
} |
|
|
|
|
############################################################### |
############################################################### |
## Student Answer Attempts ## |
## Student Answer Attempts ## |
############################################################### |
############################################################### |
Line 3168 sub relative_to_absolute {
|
Line 3240 sub relative_to_absolute {
|
} |
} |
$thisdir=~s-/[^/]*$--; |
$thisdir=~s-/[^/]*$--; |
foreach my $link (@rlinks) { |
foreach my $link (@rlinks) { |
unless (($link=~/^http:\/\//i) || |
unless (($link=~/^https?\:\/\//i) || |
($link=~/^\//) || |
($link=~/^\//) || |
($link=~/^javascript:/i) || |
($link=~/^javascript:/i) || |
($link=~/^mailto:/i) || |
($link=~/^mailto:/i) || |
Line 4456 form, .inline { display: inline; }
|
Line 4528 form, .inline { display: inline; }
|
.LC_200Box {width:200px; } |
.LC_200Box {width:200px; } |
.LC_500Box {width:500px; } |
.LC_500Box {width:500px; } |
.LC_600Box {width:600px; } |
.LC_600Box {width:600px; } |
|
.LC_800Box {width:800px;} |
/* end */ |
/* end */ |
|
|
.LC_filename {font-family: $mono; white-space:pre;} |
.LC_filename {font-family: $mono; white-space:pre;} |
Line 4465 form, .inline { display: inline; }
|
Line 4538 form, .inline { display: inline; }
|
} |
} |
.LC_warning, |
.LC_warning, |
.LC_diff_removed { |
.LC_diff_removed { |
|
color: red; |
} |
} |
|
|
.LC_info, |
.LC_info, |
Line 4491 form, .inline { display: inline; }
|
Line 4564 form, .inline { display: inline; }
|
} |
} |
|
|
.LC_internal_info { |
.LC_internal_info { |
color: #999; |
color: #999999; |
} |
} |
|
|
table.LC_pastsubmission { |
table.LC_pastsubmission { |
Line 4713 table.LC_prior_tries tr th {
|
Line 4786 table.LC_prior_tries tr th {
|
font-size:90%; |
font-size:90%; |
} |
} |
table.LC_data_table tr.LC_info_row > td { |
table.LC_data_table tr.LC_info_row > td { |
background-color: #CCC; |
background-color: #CCCCCC; |
font-weight: bold; |
font-weight: bold; |
text-align: left; |
text-align: left; |
} |
} |
Line 4761 table.LC_nested_outer tr td.LC_subheader
|
Line 4834 table.LC_nested_outer tr td.LC_subheader
|
text-align: right; |
text-align: right; |
} |
} |
table.LC_nested tr.LC_info_row td { |
table.LC_nested tr.LC_info_row td { |
background-color: #CCC; |
background-color: #CCCCCC; |
font-weight: bold; |
font-weight: bold; |
font-size: small; |
font-size: small; |
text-align: center; |
text-align: center; |
Line 4771 table.LC_nested_outer tr th.LC_left_item
|
Line 4844 table.LC_nested_outer tr th.LC_left_item
|
text-align: left; |
text-align: left; |
} |
} |
table.LC_nested td { |
table.LC_nested td { |
background-color: #FFF; |
background-color: #FFFFFF; |
font-size: small; |
font-size: small; |
} |
} |
table.LC_nested_outer tr th.LC_right_item, |
table.LC_nested_outer tr th.LC_right_item, |
Line 4782 table.LC_nested tr td.LC_right_item {
|
Line 4855 table.LC_nested tr td.LC_right_item {
|
} |
} |
|
|
table.LC_nested tr.LC_odd_row td { |
table.LC_nested tr.LC_odd_row td { |
background-color: #EEE; |
background-color: #EEEEEE; |
} |
} |
|
|
table.LC_createuser { |
table.LC_createuser { |
Line 4793 table.LC_createuser tr.LC_section_row td
|
Line 4866 table.LC_createuser tr.LC_section_row td
|
} |
} |
|
|
table.LC_createuser tr.LC_info_row td { |
table.LC_createuser tr.LC_info_row td { |
background-color: #CCC; |
background-color: #CCCCCC; |
font-weight: bold; |
font-weight: bold; |
text-align: center; |
text-align: center; |
} |
} |
Line 4983 table.LC_pick_box td.LC_pick_box_title {
|
Line 5056 table.LC_pick_box td.LC_pick_box_title {
|
background: $tabbg; |
background: $tabbg; |
font-weight: bold; |
font-weight: bold; |
text-align: right; |
text-align: right; |
|
vertical-align: top; |
width: 184px; |
width: 184px; |
padding: 8px; |
padding: 8px; |
} |
} |
Line 5224 table.LC_docs_documents td.LC_docs_docum
|
Line 5298 table.LC_docs_documents td.LC_docs_docum
|
padding: 4px; |
padding: 4px; |
} |
} |
|
|
.LC_docs_course_commands div { |
|
float: left; |
|
border: 4px solid #AAAAAA; |
|
padding: 4px; |
|
background: #DDDDCC; |
|
} |
|
|
|
.LC_docs_entry_move { |
.LC_docs_entry_move { |
border: 0px; |
border: 0px; |
border-collapse: collapse; |
border-collapse: collapse; |
Line 5501 h2,h3,h4,h5,h6
|
Line 5568 h2,h3,h4,h5,h6
|
} |
} |
|
|
.LC_bgLightGrey{ |
.LC_bgLightGrey{ |
background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left bottom; |
} |
|
.LC_bgLightGreyYellow { |
|
background-color:#EFECE0; |
|
} |
} |
|
|
|
|
/* Main Header with discription of Person, Course, etc. */ |
/* Main Header with discription of Person, Course, etc. */ |
.LC_HeadRight { |
.LC_HeadRight { |
text-align: right; |
text-align: right; |
Line 5523 p, .LC_ContentBox {
|
Line 5588 p, .LC_ContentBox {
|
|
|
} |
} |
.LC_FormSectionClearButton input { |
.LC_FormSectionClearButton input { |
|
background-color:transparent; |
border:0px; |
border:0px; |
cursor:pointer; |
cursor:pointer; |
text-decoration:underline; |
text-decoration:underline; |
Line 5553 ol.LC_smallMenu a {
|
Line 5618 ol.LC_smallMenu a {
|
color: RGB(80, 80, 80); |
color: RGB(80, 80, 80); |
text-decoration: none; |
text-decoration: none; |
} |
} |
|
ol#LC_TabMainMenueContent, ul.LC_TabContent , |
ol#LC_TabMainMenuContent { |
ul.LC_TabContentBigger { |
display:block; |
display:block; |
list-style:none; |
list-style:none; |
margin: 0px 0px 10px 0px; |
margin: 0px; |
padding: 0px; |
padding: 0px; |
} |
} |
|
|
ol#LC_TabMainMenuContent li { |
ol#LC_TabMainMenuContent li, ul.LC_TabContent li, |
|
ul.LC_TabContentBigger li{ |
display: inline; |
display: inline; |
|
border-right: solid 1px $lg_border_color; |
|
float:left; |
|
line-height:140%; |
|
white-space:nowrap; |
|
} |
|
ol#LC_TabMainMenuContent li{ |
vertical-align: bottom; |
vertical-align: bottom; |
border-bottom: solid 1px RGB(175, 175, 175); |
border-bottom: solid 1px RGB(175, 175, 175); |
border-right: solid 1px RGB(175, 175, 175); |
|
padding: 5px 10px 5px 10px; |
padding: 5px 10px 5px 10px; |
margin-right:3px; |
margin-right:5px; |
line-height: 140%; |
margin-bottom:3px; |
font-weight: bold; |
font-weight: bold; |
white-space:nowrap; |
|
background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
} |
} |
|
|
Line 5579 ol#LC_TabMainMenuContent li a{
|
Line 5649 ol#LC_TabMainMenuContent li a{
|
text-decoration: none; |
text-decoration: none; |
} |
} |
ul.LC_TabContent { |
ul.LC_TabContent { |
margin:0px; |
min-height:1.6em; |
padding:0px; |
border-bottom:solid 1px $lg_border_color; |
display:block; |
|
list-style:none; |
|
min-height:1.5em; |
|
} |
} |
ul.LC_TabContent li{ |
ul.LC_TabContent li{ |
display:inline; |
vertical-align:middle; |
vertical-align:top; |
padding:0px 10px 0px 10px; |
border-bottom:solid 1px $lg_border_color; |
background-color:$lg_border_color; |
border-right:solid 1px $lg_border_color; |
|
padding:5px 10px 5px 10px; |
|
margin-right:2px; |
|
background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top; |
|
} |
} |
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; |
font-size:95%; |
font-size:95%; |
font-weight:bold; |
font-weight:bold; |
white-space:nowrap; |
|
} |
} |
|
ul.LC_TabContent li:hover, ul.LC_TabContent li.active{ |
|
background-color:#FFFFFF; |
|
} |
|
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; |
|
} |
|
ul.LC_TabContentBigger li:hover, ul.LC_TabContentBigger li.active{ |
|
background:url(/adm/lonIcons/lightGreyBG.png) repeat-x right bottom; |
|
} |
|
ul.LC_TabContentBigger li, ul.LC_TabContentBigger li a{ |
|
font-size:110%; |
|
font-weight:bold; |
|
} |
|
#LC_CourseDocuments, #LC_SupplementalCourseDocuments |
|
{ |
|
margin:0px; |
|
} |
|
|
.LC_hideThis |
.LC_hideThis |
{ |
{ |
display:none; |
display:none; |
Line 5619 ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr
|
Line 5704 ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr
|
} |
} |
|
|
ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li { |
ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li { |
|
/* |
background: url(/adm/lonIcons/arrow_white.png) no-repeat left center; |
background: url(/adm/lonIcons/arrow_white.png) no-repeat left center; |
|
*/ |
display: inline; |
display: inline; |
padding: 0px 0px 0px 10px; |
padding: 0px 0px 0px 10px; |
vertical-align: bottom; |
vertical-align: bottom; |
Line 5639 ol#LC_PathBreadcrumbs li a{
|
Line 5726 ol#LC_PathBreadcrumbs li a{
|
{ |
{ |
border: solid 1px $lg_border_color; |
border: solid 1px $lg_border_color; |
} |
} |
.LC_PopUp |
|
{ |
|
padding:10px; |
|
border-left:solid 1px $lg_border_color; |
|
border-top:solid 1px $lg_border_color; |
|
border-bottom:outset 1px $lg_border_color; |
|
border-right:outset 1px $lg_border_color; |
|
display:none; |
|
position:absolute; |
|
right:0; |
|
background-color:white; |
|
z-index:5; |
|
} |
|
|
|
dl.LC_ListStyleClean dt { |
dl.LC_ListStyleClean dt { |
padding-right: 5px; |
padding-right: 5px; |
Line 5804 div.LC_columnSection > .ContentBoxSpecia
|
Line 5878 div.LC_columnSection > .ContentBoxSpecia
|
border-bottom: 1px solid #CCCCCC; |
border-bottom: 1px solid #CCCCCC; |
} |
} |
|
|
.LC_loginpage_fieldset{ |
|
border: 1px solid #CCCCCC; |
|
margin: 0 auto; |
|
} |
|
|
|
.LC_loginpage_legend{ |
|
padding: 2px; |
|
margin: 0px; |
|
font-size:14px; |
|
font-weight:bold; |
|
} |
|
|
|
|
|
END |
END |
} |
} |
|
|
Line 7943 sub upfile_select_html {
|
Line 8004 sub upfile_select_html {
|
# xml => &mt('HTML/XML'), |
# xml => &mt('HTML/XML'), |
); |
); |
my $Str = '<input type="file" name="upfile" size="50" />'. |
my $Str = '<input type="file" name="upfile" size="50" />'. |
'<br />Type: <select name="upfiletype">'; |
'<br />'.&mt('Type').': <select name="upfiletype">'; |
foreach my $type (sort(keys(%Types))) { |
foreach my $type (sort(keys(%Types))) { |
$Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n"; |
$Str .= '<option value="'.$type.'" >'.$Types{$type}."</option>\n"; |
} |
} |
Line 8031 sub csv_print_select_table {
|
Line 8092 sub csv_print_select_table {
|
&end_data_table_header_row()."\n"); |
&end_data_table_header_row()."\n"); |
foreach my $array_ref (@$d) { |
foreach my $array_ref (@$d) { |
my ($value,$display,$defaultcol)=@{ $array_ref }; |
my ($value,$display,$defaultcol)=@{ $array_ref }; |
$r->print(&start_data_table_row().'<tr><td>'.$display.'</td>'); |
$r->print(&start_data_table_row().'<td>'.$display.'</td>'); |
|
|
$r->print('<td><select name=f'.$i. |
$r->print('<td><select name=f'.$i. |
' onchange="javascript:flip(this.form,'.$i.');">'); |
' onchange="javascript:flip(this.form,'.$i.');">'); |
Line 9367 sub construct_course {
|
Line 9428 sub construct_course {
|
'policy.email', |
'policy.email', |
'comment.email', |
'comment.email', |
'pch.users.denied', |
'pch.users.denied', |
'plc.users.denied'], |
'plc.users.denied', |
|
'hidefromcat', |
|
'categories'], |
$$crsudom,$$crsunum); |
$$crsudom,$$crsunum); |
} |
} |
|
|
Line 9868 sub _add_to_env {
|
Line 9931 sub _add_to_env {
|
# --- Get the symbolic name of a problem and the url |
# --- Get the symbolic name of a problem and the url |
sub get_symb { |
sub get_symb { |
my ($request,$silent) = @_; |
my ($request,$silent) = @_; |
(my $url=$env{'form.url'}) =~ s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
(my $url=$env{'form.url'}) =~ s-^https?\://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
my $symb=($env{'form.symb'} ne '' ? $env{'form.symb'} : (&Apache::lonnet::symbread($url))); |
if ($symb eq '') { |
if ($symb eq '') { |
if (!$silent) { |
if (!$silent) { |
Line 9895 sub get_annotation {
|
Line 9958 sub get_annotation {
|
} |
} |
|
|
sub clean_symb { |
sub clean_symb { |
my ($symb) = @_; |
my ($symb,$delete_enc) = @_; |
|
|
&Apache::lonenc::check_decrypt(\$symb); |
&Apache::lonenc::check_decrypt(\$symb); |
my $enc = $env{'request.enc'}; |
my $enc = $env{'request.enc'}; |
delete($env{'request.enc'}); |
if ($delete_enc) { |
|
delete($env{'request.enc'}); |
|
} |
|
|
return ($symb,$enc); |
return ($symb,$enc); |
} |
} |