--- loncom/interface/loncommon.pm 2011/05/27 19:31:50 1.948.2.28 +++ loncom/interface/loncommon.pm 2010/12/24 07:58:04 1.990 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.948.2.28 2011/05/27 19:31:50 raeburn Exp $ +# $Id: loncommon.pm,v 1.990 2010/12/24 07:58:04 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1090,7 +1090,11 @@ a new window using Javascript. (Default $width and $height are optional numerical parameters that will override the width and height of the popped up window, which may -be useful for certain help topics with big pictures included. +be useful for certain help topics with big pictures included. + +$imgid is the id of the img tag used for the help icon. This may be +used in a javascript call to switch the image src. See +lonhtmlcommon::htmlareaselectactive() for an example. =cut @@ -1130,9 +1134,9 @@ sub help_open_topic { $template.=' ' .''.&mt('Help: [_1]',$topic).''; - if ($text ne "") { + if ($text ne "") { $template.=''; } return $template; @@ -1205,12 +1209,7 @@ ENDOUTPUT sub help_open_menu { my ($topic,$component_help,$faq,$bug,$stayOnPage,$width,$height,$text) = @_; - $stayOnPage = 0 if (not defined $stayOnPage); - # only use pop-up help (stayOnPage == 0) - # if environment.remote is on (using remote control UI) - if ($env{'environment.remote'} eq 'off' ) { - $stayOnPage=1; - } + $stayOnPage = 1; my $output; if ($component_help) { if (!$text) { @@ -1231,8 +1230,8 @@ sub help_open_menu { sub top_nav_help { my ($text) = @_; $text = &mt($text); - my $stay_on_page = - ($env{'environment.remote'} eq 'off' ); + my $stay_on_page = 1; + my $link = ($stay_on_page) ? "javascript:helpMenu('display')" : "javascript:helpMenu('open')"; my $banner_link = &update_help_link(undef,undef,undef,undef,$stay_on_page); @@ -1247,10 +1246,7 @@ END sub help_menu_js { my ($text) = @_; - - my $stayOnPage = - ($env{'environment.remote'} eq 'off' ); - + my $stayOnPage = 1; my $width = 620; my $height = 600; my $helptopic=&general_help(); @@ -1307,10 +1303,7 @@ sub help_open_bug { unless ($env{'user.adv'}) { return ''; } unless ($Apache::lonnet::perlvar{'BugzillaHost'}) { return ''; } $text = "" if (not defined $text); - $stayOnPage = 0 if (not defined $stayOnPage); - if ($env{'environment.remote'} eq 'off' ) { $stayOnPage=1; - } $width = 600 if (not defined $width); $height = 600 if (not defined $height); @@ -1351,10 +1344,7 @@ sub help_open_faq { unless ($env{'user.adv'}) { return ''; } unless ($Apache::lonnet::perlvar{'FAQHost'}) { return ''; } $text = "" if (not defined $text); - $stayOnPage = 0 if (not defined $stayOnPage); - if ($env{'environment.remote'} eq 'off' ) { $stayOnPage=1; - } $width = 350 if (not defined $width); $height = 400 if (not defined $height); @@ -1870,7 +1860,7 @@ sub multiple_select_form { Returns a string containing a \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,7 +2277,7 @@ function set_auth_radio_buttons(newvalue var numauthchoices = currentform.login.length; if (typeof numauthchoices == "undefined") { return; - } + } var i=0; while (i < numauthchoices) { if (currentform.login[i].value == newvalue) { break; } @@ -3260,7 +3250,7 @@ sub filemimetype { sub filecategoryselect { my ($name,$value)=@_; return &select_form($value,$name, - {'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))}); + {'' => &mt('Any category'), map { $_,$_ } sort(keys(%category_extensions))}); } =pod @@ -3570,23 +3560,23 @@ sub format_previous_attempt_value { my @anskeys = sort(keys(%answers)); if (@anskeys == 1) { my $answer = $answers{$anskeys[0]}; - if ($answer =~ m{\0}) { - $answer =~ s{\0}{,}g; + 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; + $value = $answer; } else { $value = $anskeys[0].'='.$answer; } } else { foreach my $ans (@anskeys) { my $answer = $answers{$ans}; - if ($answer =~ m{\0}) { - $answer =~ s{\0}{,}g; + if ($answer =~ m{\Q\0\E}) { + $answer =~ s{\Q\0\E}{, }g; } $value .= $ans.'='.$answer.'
';; - } + } } } else { $value = &unescape($value); @@ -4496,7 +4486,7 @@ Returns: HTML div with $content sub head_subbox { my ($content)=@_; my $output = - '
' + '
' .$content .'
' } @@ -4592,9 +4582,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, @@ -4612,7 +4599,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')) @@ -4654,8 +4641,6 @@ sub bodytag { } if (!$realm) { $realm=' '; } -# Set messages - my $messages=&domainlogo($domain); my $extra_body_attr = &make_attr_string($forcereg,\%design); @@ -4673,7 +4658,7 @@ sub bodytag { } else { $name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}); } - + my $titleinfo = '

'.$title.'

'; # # Extra info if you are the DC @@ -4689,11 +4674,9 @@ sub bodytag { $role = '('.$role.')' if $role; &get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); - if ($env{'environment.remote'} ne 'on') { - # No Remote if ($no_nav_bar || $env{'form.inhibitmenu'} eq 'yes') { - return $bodytag; - } + return $bodytag; + } if ($env{'request.state'} eq 'construct') { $forcereg=1; } @@ -4711,10 +4694,6 @@ sub bodytag { $realm $dc_info
|; return $bodytag; } - if (($env{'request.noversionuri'} =~ m{^/adm/navmaps}) && - ($env{'environment.remotenavmap'} eq 'on')) { - return $bodytag; - } unless ($env{'request.symb'} =~ m/\.page___\d+___/) { $bodytag .= qq|
$name $role
|; @@ -4736,7 +4715,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); @@ -4749,43 +4728,6 @@ sub bodytag { } return $bodytag; - } - -# -# Top frame rendering, Remote is up -# - - my $imgsrc = $img; - if ($img =~ /^\/adm/) { - $imgsrc = &lonhttpdurl($img); - } - my $upperleft=''.$function.''; - - # 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)|; - } - - unless ($env{'form.inhibitmenu'}) { - $bodytag .= qq|
$name $role
-
    -
  1. $menu
  2. -
$realm $dc_info
|; - } - - return(< -$upperleft - $messages  - -$titleinfo $dc_info $menu - - -ENDBODY } sub dc_courseid_toggle { @@ -4817,22 +4759,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; @@ -4930,6 +4858,7 @@ sub standard_css { $env{'browser.type'} eq 'safari' ) ? '0 2px 0 2px' : '0 3px 0 4px'; + return < legend { #LC_nav_bar { float: left; - background-color: $pgbg_or_bgcolor; margin: 0 0 2px 0; } @@ -6162,7 +6072,6 @@ fieldset > legend { padding: 0; font-weight: bold; text-align: center; - background-color: $pgbg_or_bgcolor; } #LC_nav_bar em { @@ -6170,20 +6079,9 @@ fieldset > 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; - background-color: $pgbg_or_bgcolor; -} - -ol.LC_primary_menu a.LC_new_message { - font-weight:bold; - color: darkred; } ol#LC_PathBreadcrumbs { @@ -6206,6 +6104,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; @@ -6238,7 +6141,6 @@ ul#LC_secondary_menu { padding: 0; margin: 0; width: 100%; - text-align: left; } ul#LC_secondary_menu li { @@ -6348,7 +6250,7 @@ ul.LC_TabContentBigger li a { text-align: center; display: block; text-decoration: none; - outline: none; + outline: none; } ul.LC_TabContentBigger li.active a { @@ -6375,6 +6277,7 @@ ul.LC_TabContentBigger li.active b { cursor:default; } + ul.LC_CourseBreadcrumbs { background: $sidebg; line-height: 32px; @@ -6543,14 +6446,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); } @@ -6641,6 +6536,10 @@ ul.LC_funclist li { padding: 0px 4px } +.LC_hidden { + display: none; +} + END } @@ -6692,8 +6591,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'} @@ -6719,7 +6618,7 @@ ADDMETA $result .= ' LON-CAPA '.$title.'' .'' .$head_extra; - return $result; + return $result.''; } =pod @@ -6772,43 +6671,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. @@ -6846,8 +6708,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 @@ -6864,6 +6724,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', @@ -6872,13 +6740,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'}) ) { @@ -6892,8 +6763,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); } } @@ -6909,14 +6779,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(); @@ -6937,28 +6803,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'}++; @@ -7062,28 +6906,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 { @@ -7830,7 +7676,7 @@ sub get_secgrprole_info { } sub user_picker { - my ($dom,$srch,$forcenewuser,$caller,$cancreate,$usertype,$context) = @_; + my ($dom,$srch,$forcenewuser,$caller,$cancreate,$usertype) = @_; my $currdom = $dom; my %curr_selected = ( srchin => 'dom', @@ -7921,15 +7767,10 @@ sub user_picker { $srchtypesel .= "\n \n"; my ($newuserscript,$new_user_create); - my $context_dom = $env{'request.role.domain'}; - if ($context eq 'requestcrs') { - if ($env{'form.coursedom'} ne '') { - $context_dom = $env{'form.coursedom'}; - } - } + if ($forcenewuser) { if (ref($srch) eq 'HASH') { - if ($srch->{'srchby'} eq 'uname' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchin'} eq 'dom' && $srch->{'srchdomain'} eq $context_dom) { + if ($srch->{'srchby'} eq 'uname' && $srch->{'srchtype'} eq 'exact' && $srch->{'srchin'} eq 'dom' && $srch->{'srchdomain'} eq $env{'request.role.domain'}) { if ($cancreate) { $new_user_create = '

&"').'" onclick="javascript:setSearch(\'1\','.$caller.');" />

'; } else { @@ -7968,7 +7809,7 @@ function setSearch(createnew,callingForm } } for (var i=0; i{'current_path'} =~ m{/priv/($match_username)/?(.*)$}); $url = '/home/'.$uname.'/public_html/'; $toplevel = $url; @@ -8562,7 +8403,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); @@ -8670,7 +8511,7 @@ sub ask_for_embedded_content { } elsif ($applies) { $output = ''.&mt('Referenced files').':
'; if ($applies > 1) { - $output .= + $output .= &mt('No files need to be uploaded, as one of the following applies to each reference:').'
    '; if ($numremref) { $output .= '
  • '.&mt('reference is to a URL which points to another server').'
  • '."\n"; @@ -8700,7 +8541,7 @@ sub ask_for_embedded_content { $embed_file,\%mapping, $allfiles,$codebase); } else { - $pathchange_output .= + $pathchange_output .= &start_data_table_row(). ''. @@ -8719,7 +8560,7 @@ sub ask_for_embedded_content { $output .= ''."\n"; } - if (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank') || + if (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank') || ($actionurl eq '/adm/imsimport')) { $output .= ''."\n"; } elsif ($actionurl eq '/adm/portfolio' || $actionurl eq '/adm/coursegrp_portfolio') { @@ -8731,8 +8572,8 @@ sub ask_for_embedded_content { my %pathchange = (); $output .= &modify_html_form('pathchange',$actionurl,$state,\%pathchange,$pathchange_output); if (($actionurl eq '/adm/portfolio') || ($actionurl eq '/adm/coursegrp_portfolio')) { - $output .= '

    '.&mt('or').'

    '; - } + $output .= '

    '.&mt('or').'

    '; + } } return ($output,$num,$numpathchg); } @@ -8747,7 +8588,7 @@ sub embedded_file_element { } $output .= ''; - unless (($context eq 'upload_embedded') && + unless (($context eq 'upload_embedded') && ($mapping->{$embed_file} eq $embed_file)) { $output .=' '; @@ -8848,7 +8689,7 @@ sub upload_embedded { next; } else { $output .= &mt('Uploaded [_1]',''. - $path.$fname.'').'
    '; + $path.$fname.'').'
    '; } } } elsif ($context eq 'coursedoc') { @@ -8955,7 +8796,7 @@ sub modify_html_form { ''. &end_data_table_row(); - } + } } } else { $modifyform = $pathchgtable; @@ -9006,7 +8847,7 @@ sub modify_html_refs { $content = &Apache::lonnet::getfile($container); return if ($content eq '-1'); } else { - return unless ($container =~ /^\Q$dir_root\E/); + return unless ($container =~ /^\Q$dir_root\E/); if (open(my $fh,"<$container")) { $content = join('', <$fh>); close($fh); @@ -9018,7 +8859,7 @@ sub modify_html_refs { my $mm = new File::MMagic; my $mime_type = $mm->checktype_contents($content); if ($mime_type eq 'text/html') { - my $parse_result = + my $parse_result = &Apache::lonnet::extract_embedded_items($container,\%allfiles, \%codebase,\$content); if ($parse_result eq 'ok') { @@ -9028,7 +8869,7 @@ sub modify_html_refs { if ($allfiles{$ref}) { my $newname = $orig; my ($attrib_regexp,$codebase); - $attrib_regexp = &unescape($env{'form.embedded_attrib_'.$i}); + my $attrib_regexp = &unescape($env{'form.embedded_attrib_'.$i}); if ($attrib_regexp =~ /:/) { $attrib_regexp =~ s/\:/|/g; } @@ -9037,7 +8878,7 @@ sub modify_html_refs { $count += $numchg; } if ($env{'form.embedded_codebase_'.$i} ne '') { - $codebase = &unescape($env{'form.embedded_codebase_'.$i}); + my $codebase = &unescape($env{'form.embedded_codebase_'.$i}); my $numchg = ($content =~ s/(codebase\s*=\s*["']?)\Q$codebase\E(["']?)/$1.$2/i); #' stupid emacs $codebasecount ++; } @@ -9051,7 +8892,7 @@ sub modify_html_refs { my ($fname) = ($container =~ m{/([^/]+)$}); $output = '

    '.&mt('Updated [quant,_1,reference] in [_2].', $count,''. - $fname.'').'

    '; + $fname.'').'

    '; } else { $output = '

    '. &mt('Error: update failed for: [_1].', @@ -9103,10 +8944,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 attempted to upload 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); } @@ -9116,11 +8957,6 @@ sub check_for_upload { $getpropath); my $found_file = 0; my $locked_file = 0; - my @lockers; - my $navmap; - if ($env{'request.course.id'}) { - $navmap = Apache::lonnavmaps::navmap->new(); - } foreach my $line (@dir_list) { my ($file_name,$rest)=split(/\&/,$line,2); if ($file_name eq $fname){ @@ -9129,28 +8965,8 @@ sub check_for_upload { $file_name = $group.$file_name; } $found_file = 1; - if (&Apache::lonnet::is_locked($file_name,$udom,$uname,\@lockers) eq 'true') { - foreach my $lock (@lockers) { - if (ref($lock) eq 'ARRAY') { - my ($symb,$crsid) = @{$lock}; - if ($crsid eq $env{'request.course.id'}) { - if (ref($navmap)) { - my $res = $navmap->getBySymb($symb); - foreach my $part (@{$res->parts()}) { - my ($slot_status,$slot_time,$slot_name)=$res->check_for_slot($part); - unless (($slot_status == $res->RESERVED) || - ($slot_status == $res->RESERVED_LOCATION)) { - $locked_file = 1; - } - } - } else { - $locked_file = 1; - } - } else { - $locked_file = 1; - } - } - } + if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { + $locked_file = 1; } else { my @info = split(/\&/,$rest); my $currsize = $info[6]/1000; @@ -11153,6 +10969,8 @@ sub construct_course { ############################################################ ############################################################ +#SD +# only Community and Course, or anything else? sub course_type { my ($cid) = @_; if (!defined($cid)) { @@ -11318,15 +11136,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 @@ -11358,14 +11173,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);