version 1.1425, 2023/12/31 23:03:40
|
version 1.1477, 2025/03/31 13:55:07
|
Line 966 ENDSCRT
|
Line 966 ENDSCRT
|
|
|
sub select_timezone { |
sub select_timezone { |
my ($name,$selected,$onchange,$includeempty,$id,$disabled)=@_; |
my ($name,$selected,$onchange,$includeempty,$id,$disabled)=@_; |
my $output='<select name="'.$name.'" '.$id.$onchange.$disabled.'>'."\n"; |
my $labeltext = &HTML::Entities::encode(&mt('Select Time Zone')); |
|
my $output='<select name="'.$name.'" '.$id.$onchange.$disabled. |
|
' aria-label="'.$labeltext.'">'."\n"; |
if ($includeempty) { |
if ($includeempty) { |
$output .= '<option value=""'; |
$output .= '<option value=""'; |
if (($selected eq '') || ($selected eq 'local')) { |
if (($selected eq '') || ($selected eq 'local')) { |
Line 1174 sub linked_select_forms {
|
Line 1176 sub linked_select_forms {
|
$menuorder, |
$menuorder, |
$onchangefirst, |
$onchangefirst, |
$onchangesecond, |
$onchangesecond, |
$suffix |
$suffix, |
|
$haslabel |
) = @_; |
) = @_; |
my $second = "document.$formname.$secondselectname"; |
my $second = "document.$formname.$secondselectname"; |
my $first = "document.$formname.$firstselectname"; |
my $first = "document.$formname.$firstselectname"; |
Line 1240 END
|
Line 1243 END
|
$result.=">".&mt($hashref->{$value}->{'text'})."</option>\n"; |
$result.=">".&mt($hashref->{$value}->{'text'})."</option>\n"; |
} |
} |
$result .= "</select>\n"; |
$result .= "</select>\n"; |
|
if ($haslabel) { |
|
$result .= '</label>'; |
|
} |
my %select2; |
my %select2; |
if (ref($hashref->{$firstdefault}) eq 'HASH') { |
if (ref($hashref->{$firstdefault}) eq 'HASH') { |
if (ref($hashref->{$firstdefault}->{'select2'}) eq 'HASH') { |
if (ref($hashref->{$firstdefault}->{'select2'}) eq 'HASH') { |
%select2 = %{$hashref->{$firstdefault}->{'select2'}}; |
%select2 = %{$hashref->{$firstdefault}->{'select2'}}; |
} |
} |
} |
} |
$result .= $middletext; |
if ($middletext ne '') { |
|
$result .= '<label>'.$middletext; |
|
} |
$result .= "<select size=\"1\" name=\"$secondselectname\""; |
$result .= "<select size=\"1\" name=\"$secondselectname\""; |
if ($onchangesecond) { |
if ($onchangesecond) { |
$result .= ' onchange="'.$onchangesecond.'"'; |
$result .= ' onchange="'.$onchangesecond.'"'; |
Line 1264 END
|
Line 1272 END
|
$result.=">".&mt($select2{$value})."</option>\n"; |
$result.=">".&mt($select2{$value})."</option>\n"; |
} |
} |
$result .= "</select>\n"; |
$result .= "</select>\n"; |
|
if ($middletext ne '') { |
|
$result .= '</label>'; |
|
} |
# return $debug; |
# return $debug; |
return $result; |
return $result; |
} # end of sub linked_select_forms { |
} # end of sub linked_select_forms { |
Line 1342 sub help_open_topic {
|
Line 1353 sub help_open_topic {
|
} |
} |
$template.=' <a'.$target.' href="'.$link.'" title="'.$title.'">' |
$template.=' <a'.$target.' href="'.$link.'" title="'.$title.'">' |
.'<img src="'.$helpicon.'" border="0"' |
.'<img src="'.$helpicon.'" border="0"' |
.' alt="'.&mt('Help: [_1]',$topic).'"' |
.' alt="'.&mt('Help icon').'"' |
.' title="'.$title.'" style="vertical-align:middle;"'.$imgid |
.' title="'.$title.'" style="vertical-align:middle;"'.$imgid |
.' /></a>'; |
.' /></a>'; |
if ($text ne "") { |
if ($text ne "") { |
Line 1451 $banner_link
|
Line 1462 $banner_link
|
<a href="$link" title="$title" $linkattr>$text</a> |
<a href="$link" title="$title" $linkattr>$text</a> |
END |
END |
} else { |
} else { |
return ' '.$text.' '; |
return ' <h1 class="LC_helpmenu">'.$text.'</h1> '; |
} |
} |
} |
} |
|
|
Line 1463 sub help_menu_js {
|
Line 1474 sub help_menu_js {
|
my $helptopic=&general_help(); |
my $helptopic=&general_help(); |
my $details_link = $httphost.'/adm/help/'.$helptopic.'.hlp'; |
my $details_link = $httphost.'/adm/help/'.$helptopic.'.hlp'; |
my $nothing=&Apache::lonhtmlcommon::javascript_nothing(); |
my $nothing=&Apache::lonhtmlcommon::javascript_nothing(); |
|
my $bannertitle = &mt('Help Menu'); |
|
&js_escape(\$bannertitle); |
|
my $bodytitle = &mt('Documentation'); |
|
&js_escape(\$bodytitle); |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Help Menu', undef, |
&Apache::loncommon::start_page('Help Menu', undef, |
{'frameset' => 1, |
{'frameset' => 1, |
Line 1474 sub help_menu_js {
|
Line 1489 sub help_menu_js {
|
my $end_page = |
my $end_page = |
&Apache::loncommon::end_page({'frameset' => 1, |
&Apache::loncommon::end_page({'frameset' => 1, |
'js_ready' => 1,}); |
'js_ready' => 1,}); |
|
|
my $template .= <<"ENDTEMPLATE"; |
my $template .= <<"ENDTEMPLATE"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 1499 function helpMenu(target) {
|
Line 1513 function helpMenu(target) {
|
return; |
return; |
} |
} |
function writeHelp(caller) { |
function writeHelp(caller) { |
caller.document.writeln('$start_page\\n<frame name="bannerframe" src="'+banner_link+'" marginwidth="0" marginheight="0" frameborder="0">\\n'); |
caller.document.writeln('$start_page\\n<frame name="bannerframe" title="$bannertitle" src="'+banner_link+'" marginwidth="0" marginheight="0" frameborder="0">\\n'); |
caller.document.writeln('<frame name="bodyframe" src="$details_link" marginwidth="0" marginheight="0" frameborder="0">\\n$end_page'); |
caller.document.writeln('<frame name="bodyframe" title="$bodytitle" src="$details_link" marginwidth="0" marginheight="0" frameborder="0">\\n$end_page'); |
caller.document.close(); |
caller.document.close(); |
caller.focus(); |
caller.focus(); |
} |
} |
Line 2300 sub import_crsauthor_form {
|
Line 2314 sub import_crsauthor_form {
|
dire => 'Directory', |
dire => 'Directory', |
se => 'Select', |
se => 'Select', |
); |
); |
$output = $lt{'dire'}.': '. |
$output = '<label>'.$lt{'dire'}.': '. |
'<select id="'.$firstselectname.'" name="'.$firstselectname.'" '. |
'<select id="'.$firstselectname.'" name="'.$firstselectname.'" '. |
'onchange="populateCrsSelects(this.form,'."'$firstselectname','$secondselectname',1,'$js_only',0,1,0,0,0".');">'. |
'onchange="populateCrsSelects(this.form,'."'$firstselectname','$secondselectname',1,'$js_only',0,1,0,0,0".');">'. |
'<option value="" selected="selected">'.$lt{'se'}.'</option>'; |
'<option value="" selected="selected">'.$lt{'se'}.'</option>'; |
Line 2311 sub import_crsauthor_form {
|
Line 2325 sub import_crsauthor_form {
|
next if ($key eq '/'); |
next if ($key eq '/'); |
$output .= '<option value="'.$key.'">'.$key.'</option>'."\n"; |
$output .= '<option value="'.$key.'">'.$key.'</option>'."\n"; |
} |
} |
$output .= '</select><br />'."\n". |
$output .= '</select></label><br /><label>'."\n". |
$lt{'fnam'}.': <select id="'.$secondselectname.'" name="'.$secondselectname.'">'."\n". |
$lt{'fnam'}.': <select id="'.$secondselectname.'" name="'.$secondselectname.'">'."\n". |
'<option value="" selected="selected"></option>'."\n". |
'<option value="" selected="selected"></option>'."\n". |
'</select>'."\n". |
'</select></label>'."\n". |
'<input type="hidden" id="crsres_include_'.$suffix.'" value="'.$only.'" />'; |
'<input type="hidden" id="crsres_include_'.$suffix.'" value="'.$only.'" />'; |
return ($numdirs,$output); |
return ($numdirs,$output); |
} |
} |
Line 2437 sub show_crsfiles_js {
|
Line 2451 sub show_crsfiles_js {
|
END |
END |
} |
} |
|
|
|
sub crsauthor_rights { |
|
my ($rightsfile,$path,$docroot,$cnum,$cdom) = @_; |
|
my $sourcerights = "$path/$rightsfile"; |
|
my $now = time; |
|
if (!-e $sourcerights) { |
|
my $cid = $cdom.'_'.$cnum; |
|
if (!-e "$docroot/priv/$cdom") { |
|
mkdir("$docroot/priv/$cdom",0755); |
|
} |
|
if (!-e "$docroot/priv/$cdom/$cnum") { |
|
mkdir("$docroot/priv/$cdom/$cnum",0755); |
|
} |
|
if (open(my $fh,">$sourcerights")) { |
|
print $fh <<END; |
|
<accessrule effect="deny" realm="" type="course" role="" /> |
|
<accessrule effect="allow" realm="$cid" type="course" role="" /> |
|
END |
|
close($fh); |
|
} |
|
} |
|
if (!-e "$sourcerights.meta") { |
|
if (open(my $fh,">$sourcerights.meta")) { |
|
my $author=$env{'environment.firstname'}.' '. |
|
$env{'environment.middlename'}.' '. |
|
$env{'environment.lastname'}.' '. |
|
$env{'environment.generation'}; |
|
$author =~ s/\s+$//; |
|
print $fh <<"END"; |
|
|
|
<abstract></abstract> |
|
<author>$author</author> |
|
<authorspace>$cnum:$cdom</authorspace> |
|
<copyright>private</copyright> |
|
<creationdate>$now</creationdate> |
|
<customdistributionfile></customdistributionfile> |
|
<dependencies></dependencies> |
|
<domain>$cdom</domain> |
|
<highestgradelevel>0</highestgradelevel> |
|
<keywords></keywords> |
|
<language>notset</language> |
|
<lastrevisiondate>$now</lastrevisiondate> |
|
<lowestgradelevel>0</lowestgradelevel> |
|
<mime>rights</mime> |
|
<modifyinguser>$env{'user.name'}:$env{'user.domain'}</modifyinguser> |
|
<notes></notes> |
|
<obsolete></obsolete> |
|
<obsoletereplacement></obsoletereplacement> |
|
<owner>$cnum:$cdom</owner> |
|
<rule>deny:::course,allow:$cid::course</rule> |
|
<sourceavail></sourceavail> |
|
<standards></standards> |
|
<subject></subject> |
|
<title>Course Authoring Rights</title> |
|
END |
|
close($fh); |
|
} |
|
} |
|
return; |
|
} |
|
|
=pod |
=pod |
|
|
=item * &iframe_wrapper_headjs() |
=item * &iframe_wrapper_headjs() |
Line 2726 sub create_text_file {
|
Line 2800 sub create_text_file {
|
# ------------------------------------------ |
# ------------------------------------------ |
|
|
sub domain_select { |
sub domain_select { |
my ($name,$value,$multiple,$incdoms,$excdoms)=@_; |
my ($name,$value,$multiple,$incdoms,$excdoms,$id)=@_; |
my @possdoms; |
my @possdoms; |
if (ref($incdoms) eq 'ARRAY') { |
if (ref($incdoms) eq 'ARRAY') { |
@possdoms = @{$incdoms}; |
@possdoms = @{$incdoms}; |
Line 2747 sub domain_select {
|
Line 2821 sub domain_select {
|
if ($multiple) { |
if ($multiple) { |
$domains{''}=&mt('Any domain'); |
$domains{''}=&mt('Any domain'); |
$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 &multiple_select_form($name,$value,4,\%domains); |
return &multiple_select_form($name,$value,4,\%domains,undef,$id); |
} 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,'','',$id); |
} |
} |
} |
} |
|
|
Line 2762 sub domain_select {
|
Line 2836 sub domain_select {
|
|
|
=over 4 |
=over 4 |
|
|
=item * &multiple_select_form($name,$value,$size,$hash,$order) |
=item * &multiple_select_form($name,$value,$size,$hash,$order,$id) |
|
|
Returns a string containing a <select> element int multiple mode |
Returns a string containing a <select> element int multiple mode |
|
|
Line 2774 Args:
|
Line 2848 Args:
|
$hash - the elements should be 'option' => 'shown text' |
$hash - the elements should be 'option' => 'shown text' |
(shown text should already have been &mt()) |
(shown text should already have been &mt()) |
$order - (optional) array ref of the order to show the elements in |
$order - (optional) array ref of the order to show the elements in |
|
$id = (optional) id for <select> element |
|
|
=cut |
=cut |
|
|
#------------------------------------------- |
#------------------------------------------- |
sub multiple_select_form { |
sub multiple_select_form { |
my ($name,$value,$size,$hash,$order)=@_; |
my ($name,$value,$size,$hash,$order,$id)=@_; |
my %selected = map { $_ => 1 } ref($value)?@{$value}:($value); |
my %selected = map { $_ => 1 } ref($value)?@{$value}:($value); |
my $output=''; |
my $output=''; |
if (! defined($size)) { |
if (! defined($size)) { |
Line 2788 sub multiple_select_form {
|
Line 2863 sub multiple_select_form {
|
$size = scalar(keys(%$hash)); |
$size = scalar(keys(%$hash)); |
} |
} |
} |
} |
$output.="\n".'<select name="'.$name.'" size="'.$size.'" multiple="multiple">'; |
if ($id ne '') { |
|
$id = ' id="'.$id.'"'; |
|
} |
|
$output.="\n".'<select name="'.$name.'" size="'.$size.'" multiple="multiple"'.$id.'>'; |
my @order; |
my @order; |
if (ref($order) eq 'ARRAY') { |
if (ref($order) eq 'ARRAY') { |
@order = @{$order}; |
@order = @{$order}; |
Line 2812 sub multiple_select_form {
|
Line 2890 sub multiple_select_form {
|
|
|
=pod |
=pod |
|
|
=item * &select_form($defdom,$name,$hashref,$onchange,$readonly) |
=item * &select_form($defdom,$name,$hashref,$onchange,$readonly,$id,$aria_labelledby) |
|
|
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 ref to a hash containing: |
Line 2820 option_name => displayed text. An option
|
Line 2898 option_name => displayed text. An option
|
a javascript onchange item, e.g., onchange="this.form.submit();". |
a javascript onchange item, e.g., onchange="this.form.submit();". |
An optional arg -- $readonly -- if true will cause the select form |
An optional arg -- $readonly -- if true will cause the select form |
to be disabled, e.g., for the case where an instructor has a section- |
to be disabled, e.g., for the case where an instructor has a section- |
specific role, and is viewing/modifying parameters. |
specific role, and is viewing/modifying parameters. An optional arg |
|
-- $id -- will be used as the id attribute of the select element. An |
|
optional arg -- $aria_labelledby -- will be included as the aria-labelledby |
|
attribute of the select element. |
|
|
See lonrights.pm for an example invocation and use. |
See lonrights.pm for an example invocation and use. |
|
|
Line 2828 See lonrights.pm for an example invocati
|
Line 2909 See lonrights.pm for an example invocati
|
|
|
#------------------------------------------- |
#------------------------------------------- |
sub select_form { |
sub select_form { |
my ($def,$name,$hashref,$onchange,$readonly) = @_; |
my ($def,$name,$hashref,$onchange,$readonly,$id,$aria_labelledby) = @_; |
return unless (ref($hashref) eq 'HASH'); |
return unless (ref($hashref) eq 'HASH'); |
if ($onchange) { |
if ($onchange) { |
$onchange = ' onchange="'.$onchange.'"'; |
$onchange = ' onchange="'.$onchange.'"'; |
Line 2837 sub select_form {
|
Line 2918 sub select_form {
|
if ($readonly) { |
if ($readonly) { |
$disabled = ' disabled="disabled"'; |
$disabled = ' disabled="disabled"'; |
} |
} |
my $selectform = "<select name=\"$name\" size=\"1\"$onchange$disabled>\n"; |
if ($id ne '') { |
|
$id = ' id="'.$id.'"'; |
|
} |
|
if ($aria_labelledby ne '') { |
|
$aria_labelledby = ' aria-labelledby="'.$aria_labelledby.'"'; |
|
} |
|
my $selectform = "<select name=\"$name\" size=\"1\"$onchange$disabled$id$aria_labelledby>\n"; |
my @keys; |
my @keys; |
if (exists($hashref->{'select_form_order'})) { |
if (exists($hashref->{'select_form_order'})) { |
@keys=@{$hashref->{'select_form_order'}}; |
@keys=@{$hashref->{'select_form_order'}}; |
Line 2888 sub display_filter {
|
Line 2975 sub display_filter {
|
my $onchange = "javascript:toggleHistoryOptions(this,'containingphrase','$context', |
my $onchange = "javascript:toggleHistoryOptions(this,'containingphrase','$context', |
'$secondid','$thirdid')"; |
'$secondid','$thirdid')"; |
return '<span class="LC_nobreak"><label>'.&mt('Records: [_1]', |
return '<span class="LC_nobreak"><label>'.&mt('Records: [_1]', |
&Apache::lonmeta::selectbox('show',$env{'form.show'},'',undef, |
&Apache::lonmeta::selectbox('show',$env{'form.show'},'','',undef, |
(&mt('all'),10,20,50,100,1000,10000))). |
(&mt('all'),10,20,50,100,1000,10000))). |
'</label></span> <span class="LC_nobreak">'. |
'</label></span> <span class="LC_nobreak">'. |
&mt('Filter: [_1]', |
&mt('Filter: [_1]', |
Line 2990 sub gradeleveldescription {
|
Line 3077 sub gradeleveldescription {
|
} |
} |
|
|
sub select_level_form { |
sub select_level_form { |
my ($deflevel,$name)=@_; |
my ($deflevel,$name,$id)=@_; |
|
if ($id ne '') { |
|
$id = ' id="'.$id.'"'; |
|
} |
unless ($deflevel) { $deflevel=0; } |
unless ($deflevel) { $deflevel=0; } |
my $selectform = "<select name=\"$name\" size=\"1\">\n"; |
my $selectform = "<select name=\"$name\" size=\"1\"$id>\n"; |
for (my $i=0; $i<=18; $i++) { |
for (my $i=0; $i<=18; $i++) { |
$selectform.="<option value=\"$i\" ". |
$selectform.="<option value=\"$i\" ". |
($i==$deflevel ? 'selected="selected" ' : ''). |
($i==$deflevel ? 'selected="selected" ' : ''). |
Line 3006 sub select_level_form {
|
Line 3096 sub select_level_form {
|
|
|
=pod |
=pod |
|
|
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled) |
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled,$id) |
|
|
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 3025 The optional $excdoms is a reference to
|
Line 3115 The optional $excdoms is a reference to
|
|
|
The optional $disabled argument, if true, adds the disabled attribute to the select tag. |
The optional $disabled argument, if true, adds the disabled attribute to the select tag. |
|
|
|
The option $id argument is the value (if any) to set as the (unique) id attribute for the select tag. |
|
|
=cut |
=cut |
|
|
#------------------------------------------- |
#------------------------------------------- |
sub select_dom_form { |
sub select_dom_form { |
my ($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled) = @_; |
my ($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms,$disabled,$id) = @_; |
if ($onchange) { |
if ($onchange) { |
$onchange = ' onchange="'.$onchange.'"'; |
$onchange = ' onchange="'.$onchange.'"'; |
} |
} |
if ($disabled) { |
if ($disabled) { |
$disabled = ' disabled="disabled"'; |
$disabled = ' disabled="disabled"'; |
} |
} |
|
if ($id ne '') { |
|
$id = ' id="'.$id.'"'; |
|
} |
my (@domains,%exclude); |
my (@domains,%exclude); |
if (ref($incdoms) eq 'ARRAY') { |
if (ref($incdoms) eq 'ARRAY') { |
@domains = sort {lc($a) cmp lc($b)} (@{$incdoms}); |
@domains = sort {lc($a) cmp lc($b)} (@{$incdoms}); |
Line 3046 sub select_dom_form {
|
Line 3141 sub select_dom_form {
|
if (ref($excdoms) eq 'ARRAY') { |
if (ref($excdoms) eq 'ARRAY') { |
map { $exclude{$_} = 1; } @{$excdoms}; |
map { $exclude{$_} = 1; } @{$excdoms}; |
} |
} |
my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange$disabled>\n"; |
my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange$disabled$id>\n"; |
foreach my $dom (@domains) { |
foreach my $dom (@domains) { |
next if ($exclude{$dom}); |
next if ($exclude{$dom}); |
$selectdomain.="<option value=\"$dom\" ". |
$selectdomain.="<option value=\"$dom\" ". |
Line 3890 sub passwd_validation_js {
|
Line 3985 sub passwd_validation_js {
|
} else { |
} else { |
$alertmsg = &mt('A secret did not satisfy requirement(s):').'\n\n'; |
$alertmsg = &mt('A secret did not satisfy requirement(s):').'\n\n'; |
} |
} |
|
} elsif ($context eq 'ltitools') { |
|
my %domconfig = &Apache::lonnet::get_dom('configuration',['toolsec'],$domain); |
|
if (ref($domconfig{'toolsec'}) eq 'HASH') { |
|
if (ref($domconfig{'toolsec'}{'rules'}) eq 'HASH') { |
|
%passwdconf = %{$domconfig{'toolsec'}{'rules'}}; |
|
} |
|
} |
|
if ($id eq 'add') { |
|
$alertmsg = &mt('Secret for added external tool did not satisfy requirement(s):').'\n\n'; |
|
} elsif ($id =~ /^\d+$/) { |
|
my $pos = $id+1; |
|
$alertmsg = &mt('Secret for external tool [_1] did not satisfy requirement(s):','#'.$pos).'\n\n'; |
|
} else { |
|
$alertmsg = &mt('A secret did not satisfy requirement(s):').'\n\n'; |
|
} |
} else { |
} else { |
%passwdconf = &Apache::lonnet::get_passwdconf($domain); |
%passwdconf = &Apache::lonnet::get_passwdconf($domain); |
$alertmsg = &mt('Initial password did not satisfy requirement(s):').'\n\n'; |
$alertmsg = &mt('Initial password did not satisfy requirement(s):').'\n\n'; |
Line 4767 sub filemimetype {
|
Line 4877 sub filemimetype {
|
|
|
|
|
sub filecategoryselect { |
sub filecategoryselect { |
my ($name,$value)=@_; |
my ($name,$value,$id)=@_; |
return &select_form($value,$name, |
return &select_form($value,$name, |
{'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))}); |
{'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))}, |
|
'','',$id); |
} |
} |
|
|
=pod |
=pod |
Line 5253 sub get_student_view {
|
Line 5364 sub get_student_view {
|
$userview=~s/\<\/html\>//gi; |
$userview=~s/\<\/html\>//gi; |
$userview=~s/\<head\>//gi; |
$userview=~s/\<head\>//gi; |
$userview=~s/\<\/head\>//gi; |
$userview=~s/\<\/head\>//gi; |
|
$userview=~s/\Q<div class="LC_landmark" role="main"\E/<div class="LC_landmark"/; |
$userview=~s/action\s*\=/would_be_action\=/gi; |
$userview=~s/action\s*\=/would_be_action\=/gi; |
$userview=&relative_to_absolute($feedurl,$userview); |
$userview=&relative_to_absolute($feedurl,$userview); |
if (wantarray) { |
if (wantarray) { |
Line 5616 sub blockcheck {
|
Line 5728 sub blockcheck {
|
} |
} |
unless ($has_evb) { |
unless ($has_evb) { |
if (($activity eq 'printout') || ($activity eq 'grades') || ($activity eq 'search') || |
if (($activity eq 'printout') || ($activity eq 'grades') || ($activity eq 'search') || |
($activity eq 'boards') || ($activity eq 'groups') || ($activity eq 'chat')) { |
($activity eq 'index') || ($activity eq 'boards') || ($activity eq 'groups') || |
|
($activity eq 'chat')) { |
if ($udom eq $cdom) { |
if ($udom eq $cdom) { |
$check_ipaccess = 1; |
$check_ipaccess = 1; |
} |
} |
Line 5707 sub blockcheck {
|
Line 5820 sub blockcheck {
|
|
|
if (($activity eq 'boards' || $activity eq 'chat' || |
if (($activity eq 'boards' || $activity eq 'chat' || |
$activity eq 'groups' || $activity eq 'printout' || |
$activity eq 'groups' || $activity eq 'printout' || |
$activity eq 'search' || $activity eq 'reinit' || |
$activity eq 'search' || $activity eq 'index' || |
$activity eq 'alert') && |
$activity eq 'reinit' || $activity eq 'alert') && |
($env{'request.course.id'})) { |
($env{'request.course.id'})) { |
foreach my $key (keys(%live_courses)) { |
foreach my $key (keys(%live_courses)) { |
if ($key ne $env{'request.course.id'}) { |
if ($key ne $env{'request.course.id'}) { |
Line 6043 END_MYBLOCK
|
Line 6156 END_MYBLOCK
|
$text = &mt('Gradebook Blocked'); |
$text = &mt('Gradebook Blocked'); |
} elsif ($activity eq 'search') { |
} elsif ($activity eq 'search') { |
$text = &mt('Search Blocked'); |
$text = &mt('Search Blocked'); |
|
} elsif ($activity eq 'index') { |
|
$text = &mt('Content Index Blocked'); |
} elsif ($activity eq 'alert') { |
} elsif ($activity eq 'alert') { |
$text = &mt('Checking Critical Messages Blocked'); |
$text = &mt('Checking Critical Messages Blocked'); |
} elsif ($activity eq 'reinit') { |
} elsif ($activity eq 'reinit') { |
Line 6476 Input: (optional) filename from which br
|
Line 6591 Input: (optional) filename from which br
|
If page header is being requested for use in a frameset, then |
If page header is being requested for use in a frameset, then |
the second (option) argument -- frameset will be true, and |
the second (option) argument -- frameset will be true, and |
the target attribute set for links should be target="_parent". |
the target attribute set for links should be target="_parent". |
If $title is supplied as the thitd arg, that will be used to |
If $title is supplied as the third arg, that will be used to |
the left of the breadcrumbs tail for the current path. |
the left of the breadcrumbs tail for the current path. |
|
|
Returns: HTML div with CSTR path and recent box |
Returns: HTML div with CSTR path and recent box |
Line 6596 sub nocodemirror {
|
Line 6711 sub nocodemirror {
|
Input: $uri (optional) |
Input: $uri (optional) |
|
|
Returns: %editors hash in which keys are editors |
Returns: %editors hash in which keys are editors |
permitted in current Authoring Space. |
permitted in current Authoring Space, |
|
or in current course for web pages |
|
created in a course. |
|
|
Value for each key is 1. Possible keys |
Value for each key is 1. Possible keys |
are: edit, xml, and daxe. If no specific |
are: edit, xml, and daxe. |
|
|
|
For a regular Authoring Space, if no specific |
set of editors has been set for the Author |
set of editors has been set for the Author |
who owns the Authoring Space, then the |
who owns the Authoring Space, then the |
domain default will be used. If no domain |
domain default will be used. If no domain |
default has been set, then the keys will be |
default has been set, then the keys will be |
edit and xml. |
edit and xml. |
|
|
|
For a course author, or for web pages created |
|
in a course, if no specific set of editors has |
|
been set for the course, then the domain |
|
course default will be used. If no domain |
|
course default has been set, then the keys |
|
will be edit and xml. |
|
|
=cut |
=cut |
|
|
sub permitted_editors { |
sub permitted_editors { |
my ($uri) = @_; |
my ($uri) = @_; |
my ($is_author,$is_coauthor,$auname,$audom,%editors); |
my ($is_author,$is_coauthor,$is_course,$auname,$audom,%editors); |
if ($env{'request.role'} =~ m{^au\./}) { |
if ($env{'request.role'} =~ m{^au\./}) { |
$is_author = 1; |
$is_author = 1; |
} elsif ($env{'request.role'} =~ m{^(?:ca|aa)\./($match_domain)/($match_username)}) { |
} elsif ($env{'request.role'} =~ m{^(?:ca|aa)\./($match_domain)/($match_username)}) { |
Line 6623 sub permitted_editors {
|
Line 6750 sub permitted_editors {
|
} |
} |
} |
} |
} elsif ($env{'request.course.id'}) { |
} elsif ($env{'request.course.id'}) { |
if ($env{'request.editurl'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
my ($cdom,$cnum); |
|
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
if (($env{'request.editurl'} =~ m{^/priv/\Q$cdom/$cnum\E/}) || |
|
($env{'request.editurl'} =~ m{^/uploaded/\Q$cdom/$cnum\E/(docs|supplemental)/}) || |
|
($uri =~ m{^/uploaded/\Q$cdom/$cnum\E/(docs|supplemental)/})) { |
|
$is_course = 1; |
|
} elsif ($env{'request.editurl'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
($audom,$auname) = ($1,$2); |
($audom,$auname) = ($1,$2); |
} elsif ($env{'request.uri'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
} elsif ($env{'request.uri'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
($audom,$auname) = ($1,$2); |
($audom,$auname) = ($1,$2); |
} elsif (($uri eq '/daxesave') && |
} elsif (($uri eq '/daxesave') && |
|
(($env{'form.path'} =~ m{^/daxeopen/priv/\Q$cdom/$cnum\E/}) || |
|
($env{'form.path'} =~ m{^/daxeopen/uploaded/\Q$cdom/$cnum\E/(docs|supplemental)/}))) { |
|
$is_course = 1; |
|
} elsif (($uri eq '/daxesave') && |
($env{'form.path'} =~ m{^/daxeopen/priv/($match_domain)/($match_username)/})) { |
($env{'form.path'} =~ m{^/daxeopen/priv/($match_domain)/($match_username)/})) { |
($audom,$auname) = ($1,$2); |
($audom,$auname) = ($1,$2); |
} |
} |
if (($audom ne '') && ($auname ne '')) { |
unless ($is_course) { |
if (($env{'user.domain'} eq $audom) && |
if (($audom ne '') && ($auname ne '')) { |
($env{'user.name'} eq $auname)) { |
if (($env{'user.domain'} eq $audom) && |
$is_author = 1; |
($env{'user.name'} eq $auname)) { |
} else { |
$is_author = 1; |
$is_coauthor = 1; |
} else { |
|
$is_coauthor = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 6656 sub permitted_editors {
|
Line 6796 sub permitted_editors {
|
xml => 1, |
xml => 1, |
); |
); |
} |
} |
|
} elsif ($is_course) { |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.internal.crseditors'})) { |
|
map { $editors{$_} = 1; } split(/,/,$env{'course.'.$env{'request.course.id'}.'.internal.crseditors'}); |
|
} else { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if (exists($domdefaults{'crseditors'})) { |
|
map { $editors{$_} = 1; } split(/,/,$domdefaults{'crseditors'}); |
|
} else { |
|
%editors = ( edit => 1, |
|
xml => 1, |
|
); |
|
} |
|
} |
} else { |
} else { |
%editors = ( edit => 1, |
%editors = ( edit => 1, |
xml => 1, |
xml => 1, |
Line 6764 sub bodytag {
|
Line 6917 sub bodytag {
|
my $hostname = $args->{'hostname'}; |
my $hostname = $args->{'hostname'}; |
|
|
$function = &get_users_function() if (!$function); |
$function = &get_users_function() if (!$function); |
my $img = &designparm($function.'.img',$domain); |
|
my $font = &designparm($function.'.font',$domain); |
my $font = &designparm($function.'.font',$domain); |
my $pgbg = $bgcolor || &designparm($function.'.pgbg',$domain); |
my $pgbg = $bgcolor || &designparm($function.'.pgbg',$domain); |
|
|
Line 6818 sub bodytag {
|
Line 6970 sub bodytag {
|
$role = &Apache::lonnet::plaintext($role); |
$role = &Apache::lonnet::plaintext($role); |
} |
} |
|
|
if (!$realm) { $realm=' '; } |
|
|
|
my $extra_body_attr = &make_attr_string($forcereg,\%design); |
my $extra_body_attr = &make_attr_string($forcereg,\%design); |
|
|
# construct main body tag |
# construct main body tag |
Line 6843 sub bodytag {
|
Line 6993 sub bodytag {
|
undef($role); |
undef($role); |
} |
} |
unless ($ltimenu->{'coursetitle'}) { |
unless ($ltimenu->{'coursetitle'}) { |
$realm=' '; |
|
$showcrstitle = 0; |
$showcrstitle = 0; |
} |
} |
} |
} |
Line 6853 sub bodytag {
|
Line 7002 sub bodytag {
|
undef($role); |
undef($role); |
} |
} |
unless ($menuref->{'crs'}) { |
unless ($menuref->{'crs'}) { |
$realm=' '; |
|
$showcrstitle = 0; |
$showcrstitle = 0; |
} |
} |
} |
} |
Line 6887 sub bodytag {
|
Line 7035 sub bodytag {
|
# $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 |
# } |
# } |
|
|
$bodytag .= Apache::lonhtmlcommon::scripttag( |
my $need_endlcint; |
Apache::lonmenu::utilityfunctions($httphost), 'start'); |
unless ($args->{'switchserver'}) { |
|
$bodytag .= Apache::lonhtmlcommon::scripttag( |
|
Apache::lonmenu::utilityfunctions($httphost), 'start'); |
|
$need_endlcint = 1; |
|
} |
|
|
|
my $collapsible; |
if ($args->{'collapsible_header'} ne '') { |
if ($args->{'collapsible_header'} ne '') { |
my $alttext = &mt('menu state: collapsed'); |
$collapsible = 1; |
my $tooltip = &mt('display standard menus'); |
my ($menustate,$tiptext,$divclass); |
|
if ($args->{'start_collapsed'}) { |
|
$menustate = 'collapsed'; |
|
$tiptext = 'display'; |
|
$divclass = 'hidden'; |
|
} else { |
|
$menustate = 'expanded'; |
|
$tiptext = 'hide'; |
|
$divclass = 'shown'; |
|
} |
|
my $alttext = &mt('menu state: '.$menustate); |
|
my $tooltip = &mt($tiptext.' standard menus'); |
$bodytag .= <<"END"; |
$bodytag .= <<"END"; |
<div id="LC_expandingContainer" style="display:inline;"> |
<div id="LC_expandingContainer" style="display:inline;" role="navigation"> |
<div id="LC_collapsible" class="LC_collapse_trigger" style="position: absolute;top: -5px;left: 0px; z-index:101; display:inline;"> |
<div id="LC_collapsible" class="LC_collapse_trigger" style="position: absolute;top: -5px;left: 0px; z-index:101; display:inline;"> |
<a href="#" style="text-decoration:none;"><img class="LC_collapsible_indicator" alt="$alttext" title="$tooltip" src="/res/adm/pages/collapsed.png" style="border:0;margin:0;padding:0;max-width:100%;height:auto" /></a></div> |
<a href="#" style="text-decoration:none;"><img class="LC_collapsible_indicator" alt="$alttext" title="$tooltip" src="/res/adm/pages/$menustate.png" style="border:0;margin:0;padding:0;max-width:100%;height:auto" /></a></div> |
<div class="LC_menus_content hidden"> |
<div class="LC_menus_content $divclass"> |
END |
END |
} |
} |
unless ($args->{'no_primary_menu'}) { |
unless ($args->{'no_primary_menu'}) { |
my ($left,$right) = Apache::lonmenu::primary_menu($crstype,$ltimenu,$menucoll,$menuref, |
my ($left,$right) = Apache::lonmenu::primary_menu($crstype,$ltimenu,$menucoll,$menuref, |
$args->{'links_disabled'}, |
$args->{'links_disabled'}, |
$args->{'links_target'}, |
$args->{'links_target'}, |
$args->{'collapsible_header'}); |
$collapsible); |
|
my $labeltext = &HTML::Entities::encode(&mt('Primary links')); |
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { |
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { |
if ($dc_info) { |
if ($dc_info) { |
$dc_info = qq|<span class="LC_cusr_subheading">$dc_info</span>|; |
$dc_info = qq|<span class="LC_cusr_subheading">$dc_info</span>|; |
} |
} |
$bodytag .= qq|<div id="LC_nav_bar">$left $role<br /> |
$bodytag .= qq|<div id="LC_nav_bar" role="navigation" aria-label="$labeltext">$left $role</div>|; |
<em>$realm</em> $dc_info</div>|; |
unless (($realm eq '') && ($dc_info eq '')) { |
|
$bodytag .= qq|<div id="LC_realm" role="complementary"><em>$realm</em> $dc_info</div>|; |
|
} |
|
if ($need_endlcint) { |
|
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
|
} |
return $bodytag; |
return $bodytag; |
} |
} |
|
|
|
$bodytag .= '<div class="LC_landmark" style="margin: 3px 0 0 0;" role="navigation" aria-label="'.$labeltext.'">'; |
unless ($env{'request.symb'} =~ m/\.page___\d+___/) { |
unless ($env{'request.symb'} =~ m/\.page___\d+___/) { |
$bodytag .= qq|<div id="LC_nav_bar">$left $role</div>|; |
$bodytag .= qq|<div id="LC_nav_bar">$left $role</div>|; |
} |
} |
|
|
$bodytag .= $right; |
$bodytag .= $right.'</div>'; |
|
|
if ($dc_info) { |
if ($dc_info) { |
$dc_info = &dc_courseid_toggle($dc_info); |
$dc_info = &dc_courseid_toggle($dc_info); |
} |
} |
$bodytag .= qq|<div id="LC_realm">$realm $dc_info</div>|; |
unless (($realm eq '') && ($dc_info eq '')) { |
|
$bodytag .= qq|<div id="LC_realm" role="complementary">$realm $dc_info</div>|; |
|
} |
|
$bodytag .= qq|<div style="clear: both; margin: 5px 0 0 0;"></div>|; |
} |
} |
|
|
#if directed to not display the secondary menu, don't. |
#if directed to not display the secondary menu, don't. |
if ($args->{'no_secondary_menu'}) { |
if ($args->{'no_secondary_menu'}) { |
|
if ($need_endlcint) { |
|
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
|
} |
return $bodytag; |
return $bodytag; |
} |
} |
#don't show menus for public users |
#don't show menus for public users |
if (!$public){ |
if (!$public){ |
unless ($args->{'no_inline_menu'}) { |
unless ($args->{'no_inline_menu'}) { |
$bodytag .= Apache::lonmenu::secondary_menu($httphost,$ltiscope,$ltimenu, |
$bodytag .= '<div class="LC_landmark" role="navigation" aria-label="Secondary Links">'. |
|
Apache::lonmenu::secondary_menu($httphost,$ltiscope,$ltimenu, |
$args->{'no_primary_menu'}, |
$args->{'no_primary_menu'}, |
$menucoll,$menuref, |
$menucoll,$menuref, |
$args->{'links_disabled'}, |
$args->{'links_disabled'}, |
$args->{'links_target'}); |
$args->{'links_target'}). |
|
'</div>'; |
} |
} |
$bodytag .= Apache::lonmenu::serverform(); |
$bodytag .= Apache::lonmenu::serverform(); |
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
if ($need_endlcint) { |
|
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
|
} |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$bodytag .= &Apache::lonmenu::innerregister($forcereg, |
$bodytag .= &Apache::lonmenu::innerregister($forcereg, |
$args->{'bread_crumbs'},'','',$hostname, |
$args->{'bread_crumbs'},'','',$hostname, |
Line 6951 END
|
Line 7131 END
|
$args->{'group'},$args->{'hide_buttons'}, |
$args->{'group'},$args->{'hide_buttons'}, |
$hostname,$ltiscope,$ltiuri,$showncrumbsref); |
$hostname,$ltiscope,$ltiuri,$showncrumbsref); |
} else { |
} else { |
$bodytag .= |
$bodytag .= |
&Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, |
&Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, |
$forcereg,$args->{'group'}, |
$forcereg,$args->{'group'}, |
$args->{'bread_crumbs'}, |
$args->{'bread_crumbs'}, |
$advtoolsref,'',$hostname); |
$advtoolsref,'',$hostname); |
} |
} |
}else{ |
} else { |
# this is to seperate menu from content when there's no secondary |
# this is to separate menu from content when there's no secondary |
# menu. Especially needed for public accessible ressources. |
# menu. Especially needed for publicly accessible resources. |
$bodytag .= '<hr style="clear:both" />'; |
$bodytag .= '<hr style="clear:both" role="complementary" />'; |
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
if ($need_endlcint) { |
|
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end'); |
|
} |
} |
} |
if ($args->{'collapsible_header'} ne '') { |
if ($args->{'collapsible_header'} ne '') { |
$bodytag .= $args->{'collapsible_header'}. |
$bodytag .= $args->{'collapsible_header'}. |
Line 7096 Inputs: (all optional)
|
Line 7278 Inputs: (all optional)
|
sub standard_css { |
sub standard_css { |
my ($function,$domain,$bgcolor) = @_; |
my ($function,$domain,$bgcolor) = @_; |
$function = &get_users_function() if (!$function); |
$function = &get_users_function() if (!$function); |
my $img = &designparm($function.'.img', $domain); |
|
my $tabbg = &designparm($function.'.tabbg', $domain); |
my $tabbg = &designparm($function.'.tabbg', $domain); |
my $font = &designparm($function.'.font', $domain); |
my $font = &designparm($function.'.font', $domain); |
my $fontmenu = &designparm($function.'.fontmenu', $domain); |
my $fontmenu = &designparm($function.'.fontmenu', $domain); |
Line 7149 body {
|
Line 7330 body {
|
line-height:130%; |
line-height:130%; |
font-size:0.83em; |
font-size:0.83em; |
color:$font; |
color:$font; |
|
background-color: $pgbg_or_bgcolor; |
} |
} |
|
|
a:focus, |
a:focus, |
Line 7160 form, .inline {
|
Line 7342 form, .inline {
|
display: inline; |
display: inline; |
} |
} |
|
|
|
.LC_landmark { |
|
margin: 0; |
|
padding: 0; |
|
border: none; |
|
} |
|
|
|
.LC_visually_hidden:not(:focus):not(:active) { |
|
clip-path: inset(50%); |
|
height: 1px; |
|
overflow: hidden; |
|
position: absolute; |
|
white-space: nowrap; |
|
width: 1px; |
|
display: inline; |
|
} |
|
|
|
.LC_heading_2 { |
|
font-size: 1.17em; |
|
} |
|
|
|
.LC_heading_3 { |
|
font-size: 1.0em; |
|
} |
|
|
|
h1.LC_search_results { |
|
font-size: 1.0em; |
|
font-weight: normal; |
|
} |
|
|
.LC_menus_content.shown{ |
.LC_menus_content.shown{ |
display: inline; |
display: block; |
} |
} |
|
|
.LC_menus_content.hidden { |
.LC_menus_content.hidden { |
Line 7172 form, .inline {
|
Line 7383 form, .inline {
|
text-align:right; |
text-align:right; |
} |
} |
|
|
|
.LC_left { |
|
text-align:left; |
|
} |
|
|
|
.LC_center { |
|
text-align:center; |
|
} |
|
|
.LC_middle { |
.LC_middle { |
vertical-align:middle; |
vertical-align:middle; |
} |
} |
|
|
|
.LC_bottom { |
|
vertical-align:bottom; |
|
} |
|
|
.LC_floatleft { |
.LC_floatleft { |
float: left; |
float: left; |
} |
} |
Line 7261 div.LC_confirm_box .LC_success img {
|
Line 7484 div.LC_confirm_box .LC_success img {
|
height: auto; |
height: auto; |
} |
} |
|
|
|
div.LC_minheight { |
|
min-height: 24px; |
|
border: 0; |
|
margin: 4px 0 0 0; |
|
padding: 0; |
|
vertical-align: middle; |
|
} |
|
|
.LC_textsize_mobile { |
.LC_textsize_mobile { |
\@media only screen and (max-device-width: 480px) { |
\@media only screen and (max-device-width: 480px) { |
-webkit-text-size-adjust:100%; -moz-text-size-adjust:100%; -ms-text-size-adjust:100%; |
-webkit-text-size-adjust:100%; -moz-text-size-adjust:100%; -ms-text-size-adjust:100%; |
Line 7315 div.LC_confirm_box .LC_success img {
|
Line 7546 div.LC_confirm_box .LC_success img {
|
padding: 4px; |
padding: 4px; |
} |
} |
|
|
table.LC_pastsubmission { |
.LC_pastsubmission { |
border: 1px solid black; |
border: 1px solid black; |
margin: 2px; |
margin: 2px; |
|
padding: 2px; |
} |
} |
|
|
table#LC_menubuttons { |
table#LC_menubuttons { |
Line 7453 li.LC_menubuttons_inline_text img {
|
Line 7685 li.LC_menubuttons_inline_text img {
|
text-decoration: none; |
text-decoration: none; |
} |
} |
|
|
|
.LC_menubuttons_link img { |
|
vertical-align: middle; |
|
} |
|
|
.LC_menubuttons_category { |
.LC_menubuttons_category { |
color: $font; |
color: $font; |
background: $pgbg; |
background: $pgbg; |
Line 7460 li.LC_menubuttons_inline_text img {
|
Line 7696 li.LC_menubuttons_inline_text img {
|
font-weight: bold; |
font-weight: bold; |
} |
} |
|
|
td.LC_menubuttons_text { |
.LC_menu_text { |
|
clear: left; |
|
text-align: left; |
color: $font; |
color: $font; |
} |
} |
|
|
Line 7552 table.LC_data_table tr td.LC_leftcol_hea
|
Line 7790 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, |
|
table.LC_nested tr.LC_empty_row th { |
font-weight: bold; |
font-weight: bold; |
font-style: italic; |
font-style: italic; |
text-align: center; |
text-align: center; |
padding: 8px; |
padding: 8px; |
|
border: 0; |
} |
} |
|
|
table.LC_data_table tr.LC_empty_row td, |
table.LC_data_table tr.LC_empty_row td, |
Line 7564 table.LC_data_table tr.LC_footer_row td
|
Line 7804 table.LC_data_table tr.LC_footer_row td
|
background-color: $sidebg; |
background-color: $sidebg; |
} |
} |
|
|
|
table.LC_nested tr.LC_empty_row th, |
table.LC_nested tr.LC_empty_row td { |
table.LC_nested tr.LC_empty_row td { |
|
padding: 4ex; |
background-color: #FFFFFF; |
background-color: #FFFFFF; |
} |
} |
|
|
table.LC_caption { |
table.LC_caption { |
} |
} |
|
|
table.LC_nested tr.LC_empty_row td { |
caption.LC_caption_prefs { |
padding: 4ex |
font-weight: normal; |
|
text-align: left; |
|
padding-bottom: 0.8em; |
} |
} |
|
|
table.LC_nested_outer tr th { |
table.LC_nested_outer tr th { |
Line 7591 table.LC_nested_outer tr td.LC_subheader
|
Line 7835 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, |
|
table.LC_nested tr.LC_info_row th { |
background-color: #CCCCCC; |
background-color: #CCCCCC; |
font-weight: bold; |
font-weight: bold; |
font-size: small; |
font-size: small; |
text-align: center; |
text-align: center; |
|
border: 0; |
} |
} |
|
|
table.LC_nested tr.LC_info_row td.LC_left_item, |
table.LC_nested tr.LC_info_row td.LC_left_item, |
|
table.LC_nested tr.LC_info_row th.LC_left_item, |
table.LC_nested_outer tr th.LC_left_item { |
table.LC_nested_outer tr th.LC_left_item { |
text-align: left; |
text-align: left; |
} |
} |
Line 7741 table.LC_data_table tr > td.LC_roles_sel
|
Line 7988 table.LC_data_table tr > td.LC_roles_sel
|
border-right: 8px solid #11CC55; |
border-right: 8px solid #11CC55; |
} |
} |
|
|
|
table.LC_data_table tr.LC_prefs_row { |
|
line-height: 250%; |
|
} |
|
|
|
table.LC_manage_reservations tr th { |
|
font-weight: normal; |
|
font-style: italic; |
|
text-align: left; |
|
background: transparent; |
|
font-size: 100%; |
|
} |
|
|
span.LC_current_location { |
span.LC_current_location { |
font-size:larger; |
font-size:larger; |
background: $pgbg; |
background: $pgbg; |
Line 7814 table.LC_parm_overview_restrictions th {
|
Line 8073 table.LC_parm_overview_restrictions th {
|
border-color: $pgbg; |
border-color: $pgbg; |
} |
} |
|
|
table#LC_helpmenu { |
h1.LC_helpmenu { |
border: none; |
display: inline; |
height: 55px; |
font-size: 100%; |
border-spacing: 0; |
font-weight: normal; |
|
line-height: 1em; |
|
margin: 0; |
|
padding: 0; |
|
border: 0; |
} |
} |
|
|
table#LC_helpmenu fieldset legend { |
.LC_helpdesk_headbox { |
font-size: larger; |
border: 2px groove threedface; |
|
padding: 1em; |
} |
} |
|
|
table#LC_helpmenu_links { |
h1.LC_helpdesk_legend { |
width: 100%; |
float: left; |
border: 1px solid black; |
margin: -1.7em 0 0; |
|
padding: 0 .5em; |
background: $pgbg; |
background: $pgbg; |
|
font-size: 1em; |
|
font-weight: bold; |
|
} |
|
|
|
h1.LC_helpdesk_title { |
|
display: inline; |
|
font-size: 1em; |
|
line-height: 2.5em; |
|
margin: 0; |
padding: 0; |
padding: 0; |
border-spacing: 1px; |
vertical-align: bottom; |
} |
} |
|
|
table#LC_helpmenu_links tr td { |
.LC_helpdesk_links { |
padding: 1px; |
border: 1px solid black; |
|
padding: 3px; |
background: $tabbg; |
background: $tabbg; |
text-align: center; |
text-align: center; |
font-weight: bold; |
font-weight: bold; |
|
display: inline; |
|
margin-right: -6px; |
} |
} |
|
|
table#LC_helpmenu_links a:link, |
.LC_helpdesk_img, |
table#LC_helpmenu_links a:visited, |
.LC_helpdesk_text { |
table#LC_helpmenu_links a:active { |
padding: 0; |
|
margin: 0; |
|
border: 0; |
|
display: inline; |
|
} |
|
|
|
.LC_helpdesk_img a:link, |
|
.LC_helpdesk_img a:visited, |
|
.LC_helpdesk_img a:active, |
|
.LC_helpdesk_text a:link, |
|
.LC_helpdesk_text a:visited, |
|
.LC_helpdesk_text a:active { |
text-decoration: none; |
text-decoration: none; |
color: $font; |
color: $font; |
} |
} |
|
|
table#LC_helpmenu_links a:hover { |
div.LC_helpdesk_text a:hover { |
text-decoration: underline; |
text-decoration: underline; |
color: $vlink; |
color: $vlink; |
} |
} |
Line 7873 table.LC_pick_box {
|
Line 8161 table.LC_pick_box {
|
border-spacing: 1px; |
border-spacing: 1px; |
} |
} |
|
|
table.LC_pick_box td.LC_pick_box_title { |
table.LC_pick_box th.LC_pick_box_title { |
background: $sidebg; |
background: $sidebg; |
font-weight: bold; |
font-weight: bold; |
text-align: left; |
text-align: left; |
Line 7914 table.LC_pick_box td.LC_oddrow_value {
|
Line 8202 table.LC_pick_box td.LC_oddrow_value {
|
background-color: $data_table_light; |
background-color: $data_table_light; |
} |
} |
|
|
|
td.LC_log_filter, |
|
th.LC_log_filter { |
|
vertical-align: top; |
|
text-align: left; |
|
padding: 0 4px; |
|
} |
|
|
span.LC_helpform_receipt_cat { |
span.LC_helpform_receipt_cat { |
font-weight: bold; |
font-weight: bold; |
} |
} |
Line 8076 table.LC_prior_tries td {
|
Line 8371 table.LC_prior_tries td {
|
padding: 6px; |
padding: 6px; |
} |
} |
|
|
|
span.LC_prob_status { |
|
margin: 5px 0 0 0; |
|
padding: 0 5px 0 0; |
|
vertical-align: middle; |
|
} |
|
|
|
div.LC_prob_status_outer { |
|
display: inline-block; |
|
margin: -5px 0 0 0; |
|
padding: 0; |
|
} |
|
|
|
div.LC_prob_status_inner { |
|
display: inline-block; |
|
margin: 0 5px 0 0; |
|
padding: 5px; |
|
} |
|
|
|
caption.LC_filesub_status { |
|
text-align: left; |
|
font-weight: bold; |
|
} |
|
|
|
.LC_mail_actions { |
|
float: left; |
|
padding: 0; |
|
margin: 6px; |
|
} |
|
|
|
.LC_vertical_line { |
|
width: 1px; |
|
background-color: black; |
|
height: 4em; |
|
float: left; |
|
margin: 0; |
|
padding: 0; |
|
} |
|
|
span.LC_prior_numerical, |
span.LC_prior_numerical, |
span.LC_prior_string, |
span.LC_prior_string, |
span.LC_prior_custom, |
span.LC_prior_custom, |
Line 8229 div.LC_grade_show_user div.LC_Box {
|
Line 8562 div.LC_grade_show_user div.LC_Box {
|
margin-right: 50px; |
margin-right: 50px; |
} |
} |
|
|
|
div.LC_grade_show_user div.LC_Box table tr th { |
|
font-weight: normal; |
|
} |
|
|
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 { |
Line 8259 table.LC_scantron_action tr th {
|
Line 8596 table.LC_scantron_action tr th {
|
font-style:normal; |
font-style:normal; |
} |
} |
|
|
|
div.LC_edit_problem_daxe_header { |
|
padding: 3px; |
|
background: $tabbg; |
|
z-index: 100; |
|
} |
|
|
.LC_edit_problem_header, |
.LC_edit_problem_header, |
div.LC_edit_problem_footer { |
div.LC_edit_problem_footer { |
font-weight: normal; |
font-weight: normal; |
Line 8324 img.stift {
|
Line 8667 img.stift {
|
vertical-align: middle; |
vertical-align: middle; |
} |
} |
|
|
table td.LC_mainmenu_col_fieldset { |
div.LC_mainmenu { |
vertical-align: top; |
margin: 3px 2px 2px 1px; |
|
float: left; |
} |
} |
|
|
div.LC_createcourse { |
div.LC_createcourse { |
Line 8373 h6 {
|
Line 8717 h6 {
|
border-bottom:solid 1px $lg_border_color; |
border-bottom:solid 1px $lg_border_color; |
} |
} |
|
|
|
.LC_MainMenu_Box > .LC_hcell, |
.LC_Box > .LC_hcell { |
.LC_Box > .LC_hcell { |
margin: 0 -10px 10px -10px; |
margin: 0 -10px 10px -10px; |
} |
} |
Line 8407 fieldset {
|
Line 8752 fieldset {
|
} |
} |
|
|
fieldset#LC_selectuser { |
fieldset#LC_selectuser { |
margin: 0; |
margin: -1px 0 0 0; |
padding: 0; |
padding: 0; |
|
border: 0; |
|
} |
|
|
|
fieldset.LC_delete_slot { |
|
display:inline; |
|
margin: 0 4px 4px; |
|
padding: 4px; |
|
} |
|
|
|
fieldset.LC_delete_slot > legend { |
|
font-weight: normal; |
|
} |
|
|
|
p.LC_medium_line { |
|
line-height: 0.85em; |
} |
} |
|
|
article.geogebraweb div { |
article.geogebraweb div { |
Line 8810 ol#LC_PathBreadcrumbs li a {
|
Line 9170 ol#LC_PathBreadcrumbs li a {
|
padding: 0 0 10px 10px; |
padding: 0 0 10px 10px; |
} |
} |
|
|
|
.LC_MainMenu_Box { |
|
border: solid 1px $lg_border_color; |
|
padding: 0 10px 0 10px; |
|
} |
|
|
.LC_AboutMe_Image { |
.LC_AboutMe_Image { |
float:left; |
float:left; |
margin-right:10px; |
margin-right:10px; |
Line 8831 dl.LC_ListStyleClean dd {
|
Line 9196 dl.LC_ListStyleClean dd {
|
.LC_ListStyleClean, |
.LC_ListStyleClean, |
.LC_ListStyleSimple, |
.LC_ListStyleSimple, |
.LC_ListStyleNormal, |
.LC_ListStyleNormal, |
|
.LC_ListStyleMainMenu, |
.LC_ListStyleSpecial { |
.LC_ListStyleSpecial { |
/* display:block; */ |
/* display:block; */ |
list-style-position: inside; |
list-style-position: inside; |
Line 8868 dl.LC_ListStyleClean dd {
|
Line 9234 dl.LC_ListStyleClean dd {
|
margin-bottom: 4px; |
margin-bottom: 4px; |
} |
} |
|
|
|
.LC_ListStyleMainMenu li { |
|
margin: 0; |
|
padding: 2px 5px 2px 10px; |
|
clear: both; |
|
} |
|
|
table.LC_SimpleTable { |
table.LC_SimpleTable { |
margin:5px; |
margin:5px; |
border:solid 1px $lg_border_color; |
border:solid 1px $lg_border_color; |
Line 8966 ul#LC_toolbar {
|
Line 9338 ul#LC_toolbar {
|
padding: 0; |
padding: 0; |
margin: 2px; |
margin: 2px; |
list-style:none; |
list-style:none; |
position:relative; |
display:inline; |
background-color:white; |
background-color:white; |
overflow: auto; |
overflow: auto; |
} |
} |
Line 8994 a.LC_toolbarItem {
|
Line 9366 a.LC_toolbarItem {
|
background-color:transparent; |
background-color:transparent; |
} |
} |
|
|
|
.LC_navtools { |
|
display: inline-block; |
|
padding: 0; |
|
margin: 2px; |
|
vertical-align: middle; |
|
} |
|
|
ul.LC_funclist { |
ul.LC_funclist { |
margin: 0; |
margin: 0; |
padding: 0.5em 1em 0.5em 0; |
padding: 0.5em 1em 0.5em 0; |
Line 9098 pre.LC_wordwrap {
|
Line 9477 pre.LC_wordwrap {
|
/* |
/* |
styles used for response display |
styles used for response display |
*/ |
*/ |
div.LC_radiofoil, div.LC_rankfoil { |
div.LC_radiofoil, div.LC_rankfoil, div.LC_optionfoil, div.LC_matchfoil, div.LC_login_links { |
margin: .5em 0em .5em 0em; |
margin: .5em 0em .5em 0em; |
} |
} |
table.LC_itemgroup { |
table.LC_itemgroup { |
margin-top: 1em; |
margin-top: 1em; |
} |
} |
|
|
|
table.LC_itemgroup tr th { |
|
font-weight: normal; |
|
} |
|
|
|
fieldset.LC_webbubbles { |
|
margin: 2px 0 0 0; |
|
padding: 0; |
|
border: 0; |
|
} |
|
|
|
ul.LC_webbubbles { |
|
list-style: none; |
|
padding: 0; |
|
margin: 0; |
|
text-align: left; |
|
float: left; |
|
} |
|
|
|
ul.LC_webbubbles li { |
|
line-height: 1.8em; |
|
border: 1px solid black; |
|
padding: 0 2px 0 5px; |
|
margin: 0 0 0 -1px; |
|
float: left; |
|
} |
|
|
/* |
/* |
styles used by TTH when "Default set of options to pass to tth/m |
styles used by TTH when "Default set of options to pass to tth/m |
when converting TeX" in course settings has been set |
when converting TeX" in course settings has been set |
Line 9300 sub headtag {
|
Line 9705 sub headtag {
|
$inhibitprint = &print_suppression(); |
$inhibitprint = &print_suppression(); |
} |
} |
|
|
if (!$args->{'frameset'}) { |
if (!$args->{'frameset'} && !$args->{'switchserver'}) { |
$result .= &Apache::lonhtmlcommon::htmlareaheaders(); |
$result .= &Apache::lonhtmlcommon::htmlareaheaders(); |
} |
} |
if ($args->{'force_register'} && $env{'request.noversionuri'} !~ m{^/res/adm/pages/}) { |
if ($args->{'force_register'} && $env{'request.noversionuri'} !~ m{^/res/adm/pages/}) { |
Line 9308 sub headtag {
|
Line 9713 sub headtag {
|
} |
} |
if (!$args->{'no_nav_bar'} |
if (!$args->{'no_nav_bar'} |
&& !$args->{'only_body'} |
&& !$args->{'only_body'} |
&& !$args->{'frameset'}) { |
&& !$args->{'frameset'} |
|
&& !$args->{'switchserver'}) { |
$result .= &help_menu_js($httphost); |
$result .= &help_menu_js($httphost); |
$result.=&modal_window(); |
$result.=&modal_window(); |
$result.=&togglebox_script(); |
$result.=&togglebox_script(); |
Line 9504 OFFLOAD
|
Line 9910 OFFLOAD
|
$title = 'The LearningOnline Network with CAPA'; |
$title = 'The LearningOnline Network with CAPA'; |
} |
} |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
$result .= '<title> LON-CAPA '.$title.'</title>' |
if ($title =~ /^LON-CAPA\s+/) { |
.'<link rel="stylesheet" type="text/css" href="'.$url.'"'; |
$result .= '<title> '.$title.'</title>'; |
|
} else { |
|
$result .= '<title> LON-CAPA '.$title.'</title>'; |
|
} |
|
$result .= "\n".'<link rel="stylesheet" type="text/css" href="'.$url.'"'; |
if (!$args->{'frameset'}) { |
if (!$args->{'frameset'}) { |
$result .= ' /'; |
$result .= ' /'; |
} |
} |
Line 9520 OFFLOAD
|
Line 9930 OFFLOAD
|
} |
} |
if ($clientmobile) { |
if ($clientmobile) { |
$result .= ' |
$result .= ' |
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"> |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
<meta name="apple-mobile-web-app-capable" content="yes" />'; |
<meta name="apple-mobile-web-app-capable" content="yes" />'; |
} |
} |
$result .= '<meta name="google" content="notranslate" />'."\n"; |
$result .= '<meta name="google" content="notranslate"'; |
|
if (!$args->{'frameset'}) { |
|
$result .= ' /'; |
|
} |
|
$result .= '>'."\n"; |
return $result.'</head>'; |
return $result.'</head>'; |
} |
} |
|
|
Line 9654 sub xml_begin {
|
Line 10068 sub xml_begin {
|
.'xmlns="http://www.w3.org/1999/xhtml">'; |
.'xmlns="http://www.w3.org/1999/xhtml">'; |
} elsif ($is_frameset) { |
} elsif ($is_frameset) { |
$output='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'."\n". |
$output='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">'."\n". |
'<html>'."\n"; |
'<html lang="en">'."\n"; |
} else { |
} else { |
$output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\n". |
$output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\n". |
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'."\n"; |
'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'."\n"; |
Line 9704 $args - additional optional args support
|
Line 10118 $args - additional optional args support
|
no_auto_mt_title -> prevent &mt()ing the title arg |
no_auto_mt_title -> prevent &mt()ing the title arg |
bread_crumbs -> Array containing breadcrumbs |
bread_crumbs -> Array containing breadcrumbs |
bread_crumbs_component -> if exists show it as headline else show only the breadcrumbs |
bread_crumbs_component -> if exists show it as headline else show only the breadcrumbs |
|
bread_crumbs_style -> breadcrumbs are contained within <div id="LC_breadcrumbs">, |
|
and &standard_css() contains CSS for #LC_breadcrumbs, if you want |
|
to override those values, or add to them, specify the value to |
|
include in the style attribute to include in the div tag by using |
|
bread_crumbs_style (e.g., overflow: visible) |
bread_crumbs_nomenu -> if true will pass false as the value of $menulink |
bread_crumbs_nomenu -> if true will pass false as the value of $menulink |
to lonhtmlcommon::breadcrumbs |
to lonhtmlcommon::breadcrumbs |
group -> includes the current group, if page is for a |
group -> includes the current group, if page is for a |
Line 9872 sub start_page {
|
Line 10291 sub start_page {
|
} |
} |
#if bread_crumbs_component exists show it as headline else show only the breadcrumbs |
#if bread_crumbs_component exists show it as headline else show only the breadcrumbs |
if(exists($args->{'bread_crumbs_component'})){ |
if(exists($args->{'bread_crumbs_component'})){ |
$result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'},'',$menulink); |
$result .= &Apache::lonhtmlcommon::breadcrumbs($args->{'bread_crumbs_component'}, |
|
'',$menulink,'', |
|
$args->{'bread_crumbs_style'}); |
} else { |
} else { |
$result .= &Apache::lonhtmlcommon::breadcrumbs('','',$menulink); |
$result .= &Apache::lonhtmlcommon::breadcrumbs('','',$menulink,'', |
|
$args->{'bread_crumbs_style'}); |
} |
} |
} |
} |
} |
} |
Line 10559 sub simple_error_page {
|
Line 10981 sub simple_error_page {
|
} |
} |
|
|
my $page = |
my $page = |
&Apache::loncommon::start_page($title,'',\%displayargs). |
&Apache::loncommon::start_page($title,'',\%displayargs)."\n". |
|
'<div class="LC_landmark" style="clear:both" role="main">'. |
'<p class="LC_error">'.$msg.'</p>'. |
'<p class="LC_error">'.$msg.'</p>'. |
|
'</div>'. |
&Apache::loncommon::end_page(); |
&Apache::loncommon::end_page(); |
if (ref($r)) { |
if (ref($r)) { |
$r->print($page); |
$r->print($page); |
Line 10582 sub simple_error_page {
|
Line 11006 sub simple_error_page {
|
return; |
return; |
} |
} |
|
|
|
sub set_data_table_count { |
|
my ($count) = @_; |
|
unshift(@row_count,$count); |
|
} |
|
|
sub start_data_table { |
sub start_data_table { |
my ($add_class,$id) = @_; |
my ($add_class,$id) = @_; |
my $css_class = (join(' ','LC_data_table',$add_class)); |
my $css_class = (join(' ','LC_data_table',$add_class)); |
Line 10629 sub simple_error_page {
|
Line 11058 sub simple_error_page {
|
} |
} |
|
|
sub start_data_table_header_row { |
sub start_data_table_header_row { |
return '<tr class="LC_header_row">'."\n";; |
my ($add_class,$id) = @_; |
|
my $css_class = 'LC_header_row'; |
|
$css_class = (join(' ',$css_class,$add_class)) unless ($add_class eq ''); |
|
$id = (' id="'.$id.'"') unless ($id eq ''); |
|
return '<tr class="'.$css_class.'"'.$id.'>'."\n"; |
} |
} |
|
|
sub end_data_table_header_row { |
sub end_data_table_header_row { |
Line 10637 sub simple_error_page {
|
Line 11070 sub simple_error_page {
|
} |
} |
|
|
sub data_table_caption { |
sub data_table_caption { |
my $caption = shift; |
my ($caption,$css_class) = @_; |
return "<caption class=\"LC_caption\">$caption</caption>"; |
return "<caption class=\"LC_caption $css_class\">$caption</caption>"; |
} |
} |
} |
} |
|
|
Line 15308 sub upfile_select_html {
|
Line 15741 sub upfile_select_html {
|
tab => &mt('Tabulator separated'), |
tab => &mt('Tabulator separated'), |
# xml => &mt('HTML/XML'), |
# xml => &mt('HTML/XML'), |
); |
); |
my $Str = '<input type="file" name="upfile" size="50" />'. |
my $Str = '<input type="file" name="upfile" id="upfile" size="50" />'. |
'<br />'.&mt('Type').': <select name="upfiletype">'; |
'<br /><label>'.&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"; |
} |
} |
$Str .= "</select>\n"; |
$Str .= "</select></label>\n"; |
return $Str; |
return $Str; |
} |
} |
|
|
Line 15397 sub csv_print_select_table {
|
Line 15830 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().'<td>'.$display.'</td>'); |
$r->print(&start_data_table_row().'<td><label for="f'.$i.'">'.$display.'</label></td>'); |
|
|
$r->print('<td><select name="f'.$i.'"'. |
$r->print('<td><select name="f'.$i.'" id="f'.$i.'"'. |
' onchange="javascript:flip(this.form,'.$i.');">'); |
' onchange="javascript:flip(this.form,'.$i.');">'); |
$r->print('<option value="none"></option>'); |
$r->print('<option value="none"></option>'); |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
foreach my $sample (sort({$a <=> $b} keys(%{ $samples->[0] }))) { |
Line 15444 sub csv_samples_select_table {
|
Line 15877 sub csv_samples_select_table {
|
&end_data_table_header_row()); |
&end_data_table_header_row()); |
|
|
foreach my $key (sort(keys(%{ $samples->[0] }))) { |
foreach my $key (sort(keys(%{ $samples->[0] }))) { |
|
my $num = $i+1; |
|
my $labeltext = &HTML::Entities::encode(&mt('Field for data in column [_1]',$num)); |
$r->print(&start_data_table_row().'<td><select name="f'.$i.'"'. |
$r->print(&start_data_table_row().'<td><select name="f'.$i.'"'. |
' onchange="javascript:flip(this.form,'.$i.');">'); |
' onchange="javascript:flip(this.form,'.$i.');" aria-label="'.$labeltext.'">'); |
foreach my $option (@$d) { |
foreach my $option (@$d) { |
my ($value,$display,$defaultcol)=@{ $option }; |
my ($value,$display,$defaultcol)=@{ $option }; |
$r->print('<option value="'.$value.'"'. |
$r->print('<option value="'.$value.'"'. |
Line 17962 sub init_user_environment {
|
Line 18397 sub init_user_environment {
|
} else { |
} else { |
$userenv{'editors'} = 'edit,xml'; |
$userenv{'editors'} = 'edit,xml'; |
} |
} |
|
if ($userenv{'authorarchive'}) { |
|
$userenv{'canarchive'} = 1; |
|
} elsif (($userenv{'authorarchive'} eq '') && |
|
($domdef{'archive'})) { |
|
$userenv{'canarchive'} = 1; |
|
} |
} |
} |
|
|
$userenv{'canrequest.author'} = |
$userenv{'canrequest.author'} = |
Line 18750 Returns: HTML to display with informatio
|
Line 19191 Returns: HTML to display with informatio
|
sub check_release_result { |
sub check_release_result { |
my ($switchwarning,$switchserver) = @_; |
my ($switchwarning,$switchserver) = @_; |
my $output = &start_page('Selected course unavailable on this server'). |
my $output = &start_page('Selected course unavailable on this server'). |
'<p class="LC_warning">'; |
'<div class="LC_landmark" role="main"><p class="LC_warning">'; |
if ($switchwarning) { |
if ($switchwarning) { |
$output .= $switchwarning.'<br /><a href="/adm/roles">'; |
$output .= $switchwarning.'<br /><a href="/adm/roles">'; |
if (&show_course()) { |
if (&show_course()) { |
Line 18766 sub check_release_result {
|
Line 19207 sub check_release_result {
|
&mt('Switch Server'). |
&mt('Switch Server'). |
'</a>'; |
'</a>'; |
} |
} |
$output .= '</p>'.&end_page(); |
$output .= '</p></div>'.&end_page(); |
return $output; |
return $output; |
} |
} |
|
|
Line 18850 sub needs_coursereinit {
|
Line 19291 sub needs_coursereinit {
|
$update = 'supp'; |
$update = 'supp'; |
} |
} |
} |
} |
return ($update); |
|
} |
} |
|
return ($update); |
} |
} |
return (); |
return (); |
} |
} |
Line 19382 sub create_captcha {
|
Line 19823 sub create_captcha {
|
if (-e $Apache::lonnet::perlvar{'lonCaptchaDir'}.'/'.$md5sum.'.png') { |
if (-e $Apache::lonnet::perlvar{'lonCaptchaDir'}.'/'.$md5sum.'.png') { |
$output = '<input type="hidden" name="crypt" value="'.$md5sum.'" />'."\n". |
$output = '<input type="hidden" name="crypt" value="'.$md5sum.'" />'."\n". |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
&mt('Type in the letters/numbers shown below').' '. |
'<label>'.&mt('Type in the letters/numbers shown below').' '. |
'<input type="text" size="5" name="code" value="" autocomplete="new-password" />'. |
'<input type="text" size="5" name="code" value="" autocomplete="new-password" aria-required="true" />'. |
'</span><br />'. |
'</label></span><br />'. |
'<img src="'.$captcha_params{'www_output_dir'}.'/'.$md5sum.'.png" alt="captcha" />'; |
'<img src="'.$captcha_params{'www_output_dir'}.'/'.$md5sum.'.png" alt="captcha" />'; |
last; |
last; |
} |
} |