\n";
my @keys;
if (exists($hashref->{'select_form_order'})) {
- @keys=@{$hashref->{'select_form_order'}};
+ @keys=@{$hashref->{'select_form_order'}};
} else {
- @keys=sort(keys(%{$hashref}));
+ @keys=sort(keys(%{$hashref}));
}
foreach my $key (@keys) {
$selectform.=
@@ -2287,9 +2277,9 @@ function set_auth_radio_buttons(newvalue
var numauthchoices = currentform.login.length;
if (typeof numauthchoices == "undefined") {
return;
- }
+ }
var i=0;
- while (i < numauthchoices) {) {
+ while (i < numauthchoices) {
if (currentform.login[i].value == newvalue) { break; }
i++;
}
@@ -3260,8 +3250,7 @@ sub filemimetype {
sub filecategoryselect {
my ($name,$value)=@_;
return &select_form($value,$name,
- '' => &mt('Any category'),
- {'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))});
+ {'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))});
}
=pod
@@ -3432,7 +3421,6 @@ sub get_previous_attempt {
my ($ign,@parts) = split(/\./,$key);
if ($#parts > 0) {
my $data=$parts[-1];
- next if ($data eq 'foilorder');
pop(@parts);
if ($data eq 'type') {
unless ($showsurv) {
@@ -3469,7 +3457,6 @@ sub get_previous_attempt {
''.&mt('Transaction [_1]',$version).' ';
if (@hidden) {
foreach my $key (sort(keys(%lasthash))) {
- next if ($key =~ /\.foilorder$/);
my $hide;
foreach my $id (@hidden) {
if ($key =~ /^\Q$id\E/) {
@@ -3498,7 +3485,6 @@ sub get_previous_attempt {
}
} else {
foreach my $key (sort(keys(%lasthash))) {
- next if ($key =~ /\.foilorder$/);
my $value = &format_previous_attempt_value($key,
$returnhash{$version.':'.$key});
$prevattempts.=''.$value.' ';
@@ -3510,7 +3496,6 @@ sub get_previous_attempt {
my @currhidden = keys(%lasthidden);
$prevattempts.=&start_data_table_row().''.&mt('Current').' ';
foreach my $key (sort(keys(%lasthash))) {
- next if ($key =~ /\.foilorder$/);
if (%typeparts) {
my $hidden;
foreach my $id (@currhidden) {
@@ -3566,29 +3551,6 @@ sub format_previous_attempt_value {
$value = &Apache::lonlocal::locallocaltime($value);
} elsif (ref($value) eq 'ARRAY') {
$value = '('.join(', ', @{ $value }).')';
- } elsif ($key =~ /answerstring$/) {
- my %answers = &Apache::lonnet::str2hash($value);
- my @anskeys = sort(keys(%answers));
- if (@anskeys == 1) {
- my $answer = $answers{$anskeys[0]};
- if ($answer =~ m{\Q\0\E}) {
- $answer =~ s{\Q\0\E}{, }g;
- }
- my $tag_internal_answer_name = 'INTERNAL';
- if ($anskeys[0] eq $tag_internal_answer_name) {
- $value = $answer;
- } else {
- $value = $anskeys[0].'='.$answer;
- }
- } else {
- foreach my $ans (@anskeys) {
- my $answer = $answers{$ans};
- if ($answer =~ m{\Q\0\E}) {
- $answer =~ s{\Q\0\E}{, }g;
- }
- $value .= $ans.'='.$answer.' ';;
- }
- }
} else {
$value = &unescape($value);
}
@@ -4593,9 +4555,6 @@ Inputs:
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value
-=item * $no_inline_link, if true and in remote mode, don't show the
- 'Switch To Inline Menu' link
-
=item * $args, optional argument valid values are
no_auto_mt_title -> prevents &mt()ing the title arg
inherit_jsmath -> when creating popup window in a page,
@@ -4613,7 +4572,7 @@ other decorations will be returned.
sub bodytag {
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,
- $no_nav_bar,$bgcolor,$no_inline_link,$args)=@_;
+ $no_nav_bar,$bgcolor,$args)=@_;
my $public;
if ((($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public'))
@@ -4655,8 +4614,6 @@ sub bodytag {
}
if (!$realm) { $realm=' '; }
-# Set messages
- my $messages=&domainlogo($domain);
my $extra_body_attr = &make_attr_string($forcereg,\%design);
@@ -4674,7 +4631,7 @@ sub bodytag {
} else {
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'});
}
-
+
my $titleinfo = ''.$title.' ';
#
# Extra info if you are the DC
@@ -4690,8 +4647,6 @@ sub bodytag {
$role = '('.$role.') ' if $role;
&get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']);
- if ($env{'environment.remote'} eq 'off') {
- # No Remote
if ($no_nav_bar || $env{'form.inhibitmenu'} eq 'yes') {
return $bodytag;
}
@@ -4733,7 +4688,7 @@ sub bodytag {
$bodytag .= Apache::lonmenu::serverform();
$bodytag .= Apache::lonhtmlcommon::scripttag('', 'end');
if ($env{'request.state'} eq 'construct') {
- $bodytag .= &Apache::lonmenu::innerregister($forcereg,'',
+ $bodytag .= &Apache::lonmenu::innerregister($forcereg,
$args->{'bread_crumbs'});
} elsif ($forcereg) {
$bodytag .= &Apache::lonmenu::innerregister($forcereg);
@@ -4746,40 +4701,6 @@ sub bodytag {
}
return $bodytag;
- }
-
-#
-# Top frame rendering, Remote is up
-#
-
- my $imgsrc = $img;
- if ($img =~ /^\/adm/) {
- $imgsrc = &lonhttpdurl($img);
- }
- my $upperleft=' ';
-
- # Explicit link to get inline menu
- my $menu= ($no_inline_link?''
- :''.&mt('Switch to Inline Menu Mode').' ');
-
- if ($dc_info) {
- $dc_info = qq|($dc_info) |;
- }
-
- $bodytag .= qq|$name $role
- $realm $dc_info
| unless $env{'form.inhibitmenu'};
- return(<
-$upperleft
- $messages
-
-$titleinfo $dc_info $menu
-
-
-ENDBODY
}
sub dc_courseid_toggle {
@@ -4811,22 +4732,8 @@ sub make_attr_string {
delete($attr_ref->{$key});
}
}
- $attr_ref->{'onload'} =
- &Apache::lonmenu::loadevents(). $on_load;
- $attr_ref->{'onunload'}=
- &Apache::lonmenu::unloadevents().$on_unload;
- }
-
-# Accessibility font enhance
- if ($env{'browser.fontenhance'} eq 'on') {
- my $style;
- foreach my $key (keys(%{$attr_ref})) {
- if (lc($key) eq 'style') {
- $style.=$attr_ref->{$key}.';';
- delete($attr_ref->{$key});
- }
- }
- $attr_ref->{'style'}=$style.'; font-size: x-large;';
+ $attr_ref->{'onload'} = $on_load;
+ $attr_ref->{'onunload'}= $on_unload;
}
my $attr_string;
@@ -4924,6 +4831,7 @@ sub standard_css {
$env{'browser.type'} eq 'safari' ) ? '0 2px 0 2px'
: '0 3px 0 4px';
+
return < legend {
font-style: normal;
}
-/* Preliminary fix to hide nav_bar inside bookmarks window */
-#LC_bookmarks #LC_nav_bar {
- display:none;
-}
-
ol.LC_primary_menu {
float: right;
margin: 0;
}
-span.LC_new_message{
- font-weight:bold;
- color: darkred;
-}
-
ol#LC_PathBreadcrumbs {
margin: 0;
}
@@ -6194,6 +6077,11 @@ ol.LC_primary_menu a {
text-decoration: none;
}
+ol.LC_primary_menu a.LC_new_message {
+ font-weight:bold;
+ color: darkred;
+}
+
ol.LC_docs_parameters {
margin-left: 0;
padding: 0;
@@ -6335,7 +6223,7 @@ ul.LC_TabContentBigger li a {
text-align: center;
display: block;
text-decoration: none;
- outline: none;
+ outline: none;
}
ul.LC_TabContentBigger li.active a {
@@ -6362,6 +6250,7 @@ ul.LC_TabContentBigger li.active b {
cursor:default;
}
+
ul.LC_CourseBreadcrumbs {
background: $sidebg;
line-height: 32px;
@@ -6530,14 +6419,6 @@ a#LC_content_toolbar_firsthomework {
background-image:url(/res/adm/pages/open-first-problem.gif);
}
-a#LC_content_toolbar_launchnav {
- background-image:url(/res/adm/pages/start-navigation.gif);
-}
-
-a#LC_content_toolbar_closenav {
- background-image:url(/res/adm/pages/close-navigation.gif);
-}
-
a#LC_content_toolbar_everything {
background-image:url(/res/adm/pages/show-all.gif);
}
@@ -6628,6 +6509,10 @@ ul.LC_funclist li {
padding: 0px 4px
}
+.LC_hidden {
+ display: none;
+}
+
END
}
@@ -6679,8 +6564,8 @@ sub headtag {
if (!$args->{'frameset'}) {
$result .= &Apache::lonhtmlcommon::htmlareaheaders();
}
- if ($args->{'force_register'}) {
- $result .= &Apache::lonmenu::registerurl(1);
+ if ($args->{'force_register'} && $env{'request.noversionuri'} !~ m{^/res/adm/pages/}) {
+ $result .= Apache::lonxml::display_title();
}
if (!$args->{'no_nav_bar'}
&& !$args->{'only_body'}
@@ -6706,7 +6591,7 @@ ADDMETA
$result .= ' LON-CAPA '.$title.' '
.' '
.$head_extra;
- return $result;
+ return $result.'';
}
=pod
@@ -6759,43 +6644,6 @@ sub xml_begin {
=pod
-=item * &endheadtag()
-
-Returns a uniform for LON-CAPA web pages.
-
-Inputs: none
-
-=cut
-
-sub endheadtag {
- return '';
-}
-
-=pod
-
-=item * &head()
-
-Returns a uniform complete .. section for LON-CAPA web pages.
-
-Inputs:
-
-=over 4
-
-$title - optional title for the page
-
-$head_extra - optional extra HTML to put inside the
-
-=back
-
-=cut
-
-sub head {
- my ($title,$head_extra,$args) = @_;
- return &headtag($title,$head_extra,$args).&endheadtag();
-}
-
-=pod
-
=item * &start_page()
Returns a complete .. section for LON-CAPA web pages.
@@ -6833,8 +6681,6 @@ $args - additional optional args support
skip_phases -> hash ref of
head -> skip the generation
body -> skip all generation
- no_inline_link -> if true and in remote mode, don't show the
- 'Switch To Inline Menu' link
no_auto_mt_title -> prevent &mt()ing the title arg
inherit_jsmath -> when creating popup window in a page,
should it have jsmath forced on by the
@@ -6851,6 +6697,14 @@ $args - additional optional args support
sub start_page {
my ($title,$head_extra,$args) = @_;
#&Apache::lonnet::logthis("start_page ".join(':',caller(0)));
+#SD
+#I don't see why we copy certain elements of %$args to %head_args
+#head args is passed to headtag() and this routine only reads those
+#keys that are needed. There doesn't happen any writes or any processing
+#of other keys.
+#proposal: just pass $args to headtag instead of \%head_args and delete
+#marked lines
+#<- MARK
my %head_args;
foreach my $arg ('redirect','force_register','domain','function',
'bgcolor','frameset','no_nav_bar','only_body',
@@ -6859,13 +6713,16 @@ sub start_page {
$head_args{$arg} = $args->{$arg};
}
}
+#MARK ->
$env{'internal.start_page'}++;
my $result;
+
if (! exists($args->{'skip_phases'}{'head'}) ) {
- $result.=
- &xml_begin().
- &headtag($title,$head_extra,\%head_args).&endheadtag();
+ $result .=
+ &xml_begin() . &headtag($title,$head_extra,\%head_args);
+#replace prev line by
+# &xml_begin() . &headtag($title, $head_extra, $args);
}
if (! exists($args->{'skip_phases'}{'body'}) ) {
@@ -6879,8 +6736,7 @@ sub start_page {
$args->{'function'}, $args->{'add_entries'},
$args->{'only_body'}, $args->{'domain'},
$args->{'force_register'}, $args->{'no_nav_bar'},
- $args->{'bgcolor'}, $args->{'no_inline_link'},
- $args);
+ $args->{'bgcolor'}, $args);
}
}
@@ -6896,14 +6752,10 @@ sub start_page {
# $result .= &build_functionlist();
#}
- # Don't add anything more if only_body wanted
- return $result if $args->{'only_body'};
+ # Don't add anything more if only_body wanted or in const space
+ return $result if $args->{'only_body'}
+ || $env{'request.state'} eq 'construct';
- #Breadcrumbs for Construction Space provided by &bodytag.
- if (($env{'environment.remote'} eq 'off') && ($env{'request.state'} eq 'construct')) {
- return $result;
- }
-
#Breadcrumbs
if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) {
&Apache::lonhtmlcommon::clear_breadcrumbs();
@@ -6924,28 +6776,6 @@ sub start_page {
return $result;
}
-
-=pod
-
-=item * &head()
-
-Returns a complete section for LON-CAPA web pages.
-
-Inputs: $args - additional optional args supported are:
- js_ready -> return a string ready for being used in
- a javascript writeln
- html_encode -> return a string ready for being used in
- a html attribute
- frameset -> if true will start with a
- rather than
- dicsussion -> if true will get discussion from
- lonxml::xmlend
- (you can pass the target and parser arguments
- through optional 'target' and 'parser' args
- to this routine)
-
-=cut
-
sub end_page {
my ($args) = @_;
$env{'internal.end_page'}++;
@@ -7049,28 +6879,30 @@ sub simple_error_page {
sub start_data_table {
my ($add_class) = @_;
my $css_class = (join(' ','LC_data_table',$add_class));
- &start_data_table_count();
+ &start_data_table_count();
return ''."\n";
}
sub end_data_table {
- &end_data_table_count();
+ &end_data_table_count();
return '
'."\n";;
}
sub start_data_table_row {
- my ($add_class) = @_;
+ my ($add_class, $id) = @_;
$row_count[0]++;
my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';
$css_class = (join(' ',$css_class,$add_class)) unless ($add_class eq '');
- return ''."\n";;
+ $id = (' id="'.$id.'"') unless ($id eq '');
+ return ' '."\n";
}
sub continue_data_table_row {
- my ($add_class) = @_;
+ my ($add_class, $id) = @_;
my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';
- $css_class = (join(' ',$css_class,$add_class)) unless ($add_class eq '');;
- return ' '."\n";;
+ $css_class = (join(' ',$css_class,$add_class)) unless ($add_class eq '');
+ $id = (' id="'.$id.'"') unless ($id eq '');
+ return ' '."\n";
}
sub end_data_table_row {
@@ -8508,7 +8340,7 @@ sub ask_for_embedded_content {
}
foreach my $path (keys(%subdependencies)) {
my %currsubfile;
- if (($actionurl eq '/adm/portfolio') || ($actionurl eq '/adm/coursegrp_portfolio')) {
+ if (($actionurl eq '/adm/portfolio') || ($actionurl eq '/adm/coursegrp_portfolio')) {
my @subdir_list = &Apache::lonnet::dirlist($url.$path,$udom,$uname,$getpropath);
foreach my $line (@subdir_list) {
my ($file_name,$rest) = split(/\&/,$line,2);
@@ -8522,7 +8354,7 @@ sub ask_for_embedded_content {
}
foreach my $file (keys(%{$subdependencies{$path}})) {
unless ($currsubfile{$file}) {
- $newfiles{$path.'/'.$file} = 1;
+ $newfiles{$path.'/'.$file} = 1;
}
}
}
@@ -8735,10 +8567,10 @@ sub check_for_upload {
my $filesize = length($env{'form.'.$element});
if (!$filesize) {
my $msg = ''.
- &mt('Unable to upload [_1]. (size = [_2] bytes)',
+ &mt('Unable to upload [_1]. (size = [_2] bytes)',
''.$fname.' ',
$filesize).' '.
- &mt('Either the file you uploaded was empty, or your web browser was unable to read its contents.').' ';
+ &mt('Either the file you uploaded was empty, or your web browser was unable to read its contents.').' ';
' ';
return ('zero_bytes',$msg);
}
@@ -10718,6 +10550,8 @@ sub construct_course {
############################################################
############################################################
+#SD
+# only Community and Course, or anything else?
sub course_type {
my ($cid) = @_;
if (!defined($cid)) {
@@ -10883,15 +10717,12 @@ sub init_user_environment {
my %userenv = &Apache::lonnet::dump('environment',$domain,$username);
my ($tmp) = keys(%userenv);
if ($tmp !~ /^(con_lost|error|no_such_host)/i) {
- # default remote control to off
- if ($userenv{'remote'} ne 'on') { $userenv{'remote'} = 'off'; }
} else {
undef(%userenv);
}
if (($userenv{'interface'}) && (!$form->{'interface'})) {
$form->{'interface'}=$userenv{'interface'};
}
- $env{'environment.remote'}=$userenv{'remote'};
if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; }
# --------------- Do not trust query string to be put directly into environment
@@ -10923,14 +10754,12 @@ sub init_user_environment {
$initial_env{"browser.localres"} = $form->{'localres'};
}
- if ($public) {
- $initial_env{"environment.remote"} = "off";
- }
if ($form->{'interface'}) {
$form->{'interface'}=~s/\W//gs;
$initial_env{"browser.interface"} = $form->{'interface'};
$env{'browser.interface'}=$form->{'interface'};
}
+
my %is_adv = ( is_adv => $env{'user.adv'} );
my %domdef = &Apache::lonnet::get_domain_defaults($domain);