--- loncom/interface/loncommon.pm 2011/10/03 12:39:41 1.948.2.31 +++ loncom/interface/loncommon.pm 2011/12/08 01:34:50 1.1031 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common routines # -# $Id: loncommon.pm,v 1.948.2.31 2011/10/03 12:39:41 raeburn Exp $ +# $Id: loncommon.pm,v 1.1031 2011/12/08 01:34:50 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -409,7 +409,7 @@ sub studentbrowser_javascript { +ENDRESBRW +} + sub selectstudent_link { - my ($form,$unameele,$udomele,$courseadvonly)=@_; - my $callargs = "'".$form."','".$unameele."','".$udomele."'"; + my ($form,$unameele,$udomele,$courseadvonly,$clickerid)=@_; + my $callargs = "'".&Apache::lonhtmlcommon::entity_encode($form)."','". + &Apache::lonhtmlcommon::entity_encode($unameele)."','". + &Apache::lonhtmlcommon::entity_encode($udomele)."'"; if ($env{'request.course.id'}) { if (!&Apache::lonnet::allowed('srm',$env{'request.course.id'}) && !&Apache::lonnet::allowed('srm',$env{'request.course.id'}. '/'.$env{'request.course.sec'})) { return ''; } + $callargs.=",'".&Apache::lonhtmlcommon::entity_encode($clickerid)."'"; if ($courseadvonly) { $callargs .= ",'',1,1"; } @@ -452,7 +475,7 @@ sub selectstudent_link { &mt('Select User').''; } if ($env{'request.role'}=~/^(au|dc|su)/) { - $callargs .= ",'',1"; + $callargs .= ",'',1"; return ''. ''. &mt('Select User').''; @@ -460,6 +483,19 @@ sub selectstudent_link { return ''; } +sub selectresource_link { + my ($form,$reslink,$arg)=@_; + + my $callargs = "'".&Apache::lonhtmlcommon::entity_encode($form)."','". + &Apache::lonhtmlcommon::entity_encode($reslink)."'"; + unless ($env{'request.course.id'}) { return $arg; } + return ''. + ''. + $arg.''; +} + + + sub authorbrowser_javascript { return <<"ENDAUTHORBRW"; +ENDMODAL +} + +sub modal_link { + my ($link,$linktext,$width,$height,$target,$scrolling)=@_; + unless ($width) { $width=480; } + unless ($height) { $height=400; } + unless ($scrolling) { $scrolling='yes'; } + return ''. + $linktext.''; +} + sub html_encode { my ($result) = @_; @@ -7083,6 +7051,24 @@ sub validate_page { } } + +sub start_scrollbox { + my ($outerwidth,$width,$height,$id)=@_; + unless ($outerwidth) { $outerwidth='520px'; } + unless ($width) { $width='500px'; } + unless ($height) { $height='200px'; } + my ($table_id,$div_id); + if ($id ne '') { + $table_id = " id='table_$id'"; + $div_id = " id='div_$id'"; + } + return "
"; +} + +sub end_scrollbox { + return '
'; +} + sub simple_error_page { my ($r,$title,$msg) = @_; my $page = @@ -7110,30 +7096,36 @@ sub simple_error_page { } sub start_data_table { - my ($add_class) = @_; + my ($add_class,$id) = @_; my $css_class = (join(' ','LC_data_table',$add_class)); - &start_data_table_count(); - return ''."\n"; + my $table_id; + if (defined($id)) { + $table_id = ' id="'.$id.'"'; + } + &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 { @@ -7238,7 +7230,7 @@ sub get_users_function { $function='admin'; } if (($env{'request.role'}=~/^(au|ca|aa)/) || - ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) { + ($ENV{'REQUEST_URI'}=~ m{/^(/priv)})) { $function='author'; } return $function; @@ -7973,7 +7965,7 @@ sub user_picker { my ($newuserscript,$new_user_create); my $context_dom = $env{'request.role.domain'}; if ($context eq 'requestcrs') { - if ($env{'form.coursedom'} ne '') { + if ($env{'form.coursedom'} ne '') { $context_dom = $env{'form.coursedom'}; } } @@ -8561,9 +8553,9 @@ sub ask_for_embedded_content { $url .= $current_path; $getpropath = 1; } elsif (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank') || - ($actionurl eq '/adm/imsimport')) { - ($uname,my $rest) = ($args->{'current_path'} =~ m{/priv/($match_username)/?(.*)$}); - $url = '/home/'.$uname.'/public_html/'; + ($actionurl eq '/adm/imsimport')) { + my ($udom,$uname,$rest) = ($args->{'current_path'} =~ m{/priv/($match_domain)/($match_username)/?(.*)$}); + $url = $Apache::lonnet::perlvar{'lonDocRoot'}."/priv/$udom/$uname/"; $toplevel = $url; if ($rest ne '') { $url .= $rest; @@ -8612,11 +8604,14 @@ sub ask_for_embedded_content { } foreach my $path (keys(%subdependencies)) { my %currsubfile; - 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); - $currsubfile{$file_name} = 1; + if (($actionurl eq '/adm/portfolio') || ($actionurl eq '/adm/coursegrp_portfolio')) { + my ($sublistref,$listerror) = + &Apache::lonnet::dirlist($url.$path,$udom,$uname,$getpropath); + if (ref($sublistref) eq 'ARRAY') { + foreach my $line (@{$sublistref}) { + my ($file_name,$rest) = split(/\&/,$line,2); + $currsubfile{$file_name} = 1; + } } } elsif (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank')) { if (opendir(my $dir,$url.'/'.$path)) { @@ -8639,10 +8634,13 @@ sub ask_for_embedded_content { } my %currfile; if (($actionurl eq '/adm/portfolio') || ($actionurl eq '/adm/coursegrp_portfolio')) { - my @dir_list = &Apache::lonnet::dirlist($url,$udom,$uname,$getpropath); - foreach my $line (@dir_list) { - my ($file_name,$rest) = split(/\&/,$line,2); - $currfile{$file_name} = 1; + my ($dirlistref,$listerror) = + &Apache::lonnet::dirlist($url,$udom,$uname,$getpropath); + if (ref($dirlistref) eq 'ARRAY') { + foreach my $line (@{$dirlistref}) { + my ($file_name,$rest) = split(/\&/,$line,2); + $currfile{$file_name} = 1; + } } } elsif (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank')) { if (opendir(my $dir,$url)) { @@ -8720,7 +8718,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:').'