version 1.948.2.11, 2010/09/27 01:16:22
|
version 1.948.2.16, 2010/12/24 17:30:35
|
Line 2284 function changed_text(choice,currentform
|
Line 2284 function changed_text(choice,currentform
|
} |
} |
|
|
function set_auth_radio_buttons(newvalue,currentform) { |
function set_auth_radio_buttons(newvalue,currentform) { |
|
var numauthchoices = currentform.login.length; |
|
if (typeof numauthchoices == "undefined") { |
|
return; |
|
} |
var i=0; |
var i=0; |
while (i < currentform.login.length) { |
while (i < numauthchoices) {) { |
if (currentform.login[i].value == newvalue) { break; } |
if (currentform.login[i].value == newvalue) { break; } |
i++; |
i++; |
} |
} |
if (i == currentform.login.length) { |
if (i == numauthchoices) { |
return; |
return; |
} |
} |
current.radiovalue = newvalue; |
current.radiovalue = newvalue; |
Line 3428 sub get_previous_attempt {
|
Line 3432 sub get_previous_attempt {
|
my ($ign,@parts) = split(/\./,$key); |
my ($ign,@parts) = split(/\./,$key); |
if ($#parts > 0) { |
if ($#parts > 0) { |
my $data=$parts[-1]; |
my $data=$parts[-1]; |
|
next if ($data eq 'foilorder'); |
pop(@parts); |
pop(@parts); |
if ($data eq 'type') { |
if ($data eq 'type') { |
unless ($showsurv) { |
unless ($showsurv) { |
Line 3464 sub get_previous_attempt {
|
Line 3469 sub get_previous_attempt {
|
'<td>'.&mt('Transaction [_1]',$version).'</td>'; |
'<td>'.&mt('Transaction [_1]',$version).'</td>'; |
if (@hidden) { |
if (@hidden) { |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
|
next if ($key =~ /\.foilorder$/); |
my $hide; |
my $hide; |
foreach my $id (@hidden) { |
foreach my $id (@hidden) { |
if ($key =~ /^\Q$id\E/) { |
if ($key =~ /^\Q$id\E/) { |
Line 3492 sub get_previous_attempt {
|
Line 3498 sub get_previous_attempt {
|
} |
} |
} else { |
} else { |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
|
next if ($key =~ /\.foilorder$/); |
my $value = &format_previous_attempt_value($key, |
my $value = &format_previous_attempt_value($key, |
$returnhash{$version.':'.$key}); |
$returnhash{$version.':'.$key}); |
$prevattempts.='<td>'.$value.' </td>'; |
$prevattempts.='<td>'.$value.' </td>'; |
Line 3503 sub get_previous_attempt {
|
Line 3510 sub get_previous_attempt {
|
my @currhidden = keys(%lasthidden); |
my @currhidden = keys(%lasthidden); |
$prevattempts.=&start_data_table_row().'<td>'.&mt('Current').'</td>'; |
$prevattempts.=&start_data_table_row().'<td>'.&mt('Current').'</td>'; |
foreach my $key (sort(keys(%lasthash))) { |
foreach my $key (sort(keys(%lasthash))) { |
|
next if ($key =~ /\.foilorder$/); |
if (%typeparts) { |
if (%typeparts) { |
my $hidden; |
my $hidden; |
foreach my $id (@currhidden) { |
foreach my $id (@currhidden) { |
Line 3558 sub format_previous_attempt_value {
|
Line 3566 sub format_previous_attempt_value {
|
$value = &Apache::lonlocal::locallocaltime($value); |
$value = &Apache::lonlocal::locallocaltime($value); |
} elsif (ref($value) eq 'ARRAY') { |
} elsif (ref($value) eq 'ARRAY') { |
$value = '('.join(', ', @{ $value }).')'; |
$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.'<br />';; |
|
} |
|
} |
} else { |
} else { |
$value = &unescape($value); |
$value = &unescape($value); |
} |
} |
Line 6809 $args - additional optional args support
|
Line 6840 $args - additional optional args support
|
should it have jsmath forced on by the |
should it have jsmath forced on by the |
current page |
current page |
bread_crumbs -> Array containing breadcrumbs |
bread_crumbs -> Array containing breadcrumbs |
bread_crumbs_components -> 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 |
|
|
=back |
=back |
|
|
Line 8437 sub get_env_multiple {
|
Line 8468 sub get_env_multiple {
|
|
|
sub ask_for_embedded_content { |
sub ask_for_embedded_content { |
my ($actionurl,$state,$allfiles,$codebase,$args)=@_; |
my ($actionurl,$state,$allfiles,$codebase,$args)=@_; |
my $upload_output = ' |
my (%subdependencies,%dependencies,%newfiles); |
<form name="upload_embedded" action="'.$actionurl.'" |
|
method="post" enctype="multipart/form-data">'; |
|
$upload_output .= $state; |
|
$upload_output .= '<b>Upload embedded files</b>:<br />'.&start_data_table(); |
|
|
|
my $num = 0; |
my $num = 0; |
foreach my $embed_file (sort {lc($a) cmp lc($b)} keys(%{$allfiles})) { |
my $upload_output; |
|
foreach my $embed_file (keys(%{$allfiles})) { |
|
unless ($embed_file =~ m{^\w+://} || $embed_file =~ m{^/}) { |
|
my ($relpath,$fname); |
|
if ($embed_file =~ m{/}) { |
|
my ($path,$fname) = ($embed_file =~ m{^(.+)/([^/]*)$}); |
|
$subdependencies{$path}{$fname} = 1; |
|
} else { |
|
$dependencies{$embed_file} = 1; |
|
} |
|
} |
|
} |
|
my ($url,$udom,$uname,$getpropath); |
|
if (($actionurl eq '/adm/portfolio') || ($actionurl eq '/adm/coursegrp_portfolio')) { |
|
my $current_path='/'; |
|
if ($env{'form.currentpath'}) { |
|
$current_path = $env{'form.currentpath'}; |
|
} |
|
if ($actionurl eq '/adm/coursegrp_portfolio') { |
|
$udom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
$uname = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
$url = '/userfiles/groups/'.$env{'form.group'}.'/portfolio'; |
|
} else { |
|
$udom = $env{'user.domain'}; |
|
$uname = $env{'user.name'}; |
|
$url = '/userfiles/portfolio'; |
|
} |
|
$url .= $current_path; |
|
$getpropath = 1; |
|
} elsif ($actionurl eq '/adm/upload') { |
|
($uname,my $rest) = ($args->{'current_path'} =~ m{/priv/($match_username)/?(.*)$}); |
|
$url = '/home/'.$uname.'/public_html'; |
|
if ($rest ne '') { |
|
$url .= '/'.$rest; |
|
} |
|
} |
|
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; |
|
} |
|
} elsif ($actionurl eq '/adm/upload') { |
|
if (opendir(my $dir,$url.'/'.$path)) { |
|
my @subdir_list = grep(!/^\./,readdir($dir)); |
|
map {$currsubfile{$_} = 1;} @subdir_list; |
|
} |
|
} |
|
foreach my $file (keys(%{$subdependencies{$path}})) { |
|
unless ($currsubfile{$file}) { |
|
$newfiles{$path.'/'.$file} = 1; |
|
} |
|
} |
|
} |
|
my (@dir_list,%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; |
|
} |
|
} elsif ($actionurl eq '/adm/upload') { |
|
if (opendir(my $dir,$url)) { |
|
@dir_list = grep(!/^\./,readdir($dir)); |
|
map {$currfile{$_} = 1;} @dir_list; |
|
} |
|
} |
|
foreach my $file (keys(%dependencies)) { |
|
unless ($currfile{$file}) { |
|
$newfiles{$file} = 1; |
|
} |
|
} |
|
foreach my $embed_file (sort {lc($a) cmp lc($b)} keys(%newfiles)) { |
$upload_output .= &start_data_table_row(). |
$upload_output .= &start_data_table_row(). |
'<td>'.$embed_file.'</td><td>'; |
'<td>'.$embed_file.'</td><td>'; |
if ($args->{'ignore_remote_references'} |
if ($args->{'ignore_remote_references'} |
Line 8471 sub ask_for_embedded_content {
|
Line 8571 sub ask_for_embedded_content {
|
&escape($$codebase{$embed_file}).'" />'; |
&escape($$codebase{$embed_file}).'" />'; |
} |
} |
} |
} |
$upload_output .= '</td>'.&Apache::loncommon::end_data_table_row(); |
$upload_output .= '</td>'.&Apache::loncommon::end_data_table_row()."\n"; |
$num++; |
$num++; |
} |
} |
$upload_output .= &Apache::loncommon::end_data_table().'<br /> |
if ($num) { |
<input type ="hidden" name="number_embedded_items" value="'.$num.'" /> |
$upload_output = '<form name="upload_embedded" action="'.$actionurl.'"'. |
<input type ="submit" value="'.&mt('Upload Listed Files').'" /> |
' method="post" enctype="multipart/form-data">'."\n". |
'.&mt('(only files for which a location has been provided will be uploaded)').' |
$state. |
</form>'; |
'<b>Upload embedded files</b>:<br />'.&start_data_table(). |
|
$upload_output. |
|
&Apache::loncommon::end_data_table().'<br />'."\n". |
|
'<input type ="hidden" name="number_embedded_items" value="'.$num.'" />'."\n". |
|
'<input type ="submit" value="'.&mt('Upload Listed Files').'" />'."\n". |
|
&mt('(only files for which a location has been provided will be uploaded)')."\n". |
|
'</form>'; |
|
} |
return $upload_output; |
return $upload_output; |
} |
} |
|
|
Line 8514 sub upload_embedded {
|
Line 8621 sub upload_embedded {
|
$dir_root,$port_path,$disk_quota, |
$dir_root,$port_path,$disk_quota, |
$current_disk_usage,$uname,$udom); |
$current_disk_usage,$uname,$udom); |
if ($state eq 'will_exceed_quota' |
if ($state eq 'will_exceed_quota' |
|| $state eq 'file_locked' |
|| $state eq 'file_locked') { |
|| $state eq 'file_exists' ) { |
|
$output .= $msg; |
$output .= $msg; |
next; |
next; |
} |
} |
Line 8542 sub upload_embedded {
|
Line 8648 sub upload_embedded {
|
|
|
$env{'form.embedded_item_'.$i.'.filename'}=$fname; |
$env{'form.embedded_item_'.$i.'.filename'}=$fname; |
if ($context eq 'portfolio') { |
if ($context eq 'portfolio') { |
my $result= |
my $result; |
&Apache::lonnet::userfileupload('embedded_item_'.$i,'', |
if ($state eq 'existingfile') { |
$dirpath.$path); |
$result= |
if ($result !~ m|^/uploaded/|) { |
&Apache::lonnet::userfileupload('embedded_item_'.$i,'existingfile', |
$output .= '<span class="LC_error">' |
$dirpath.$path,); |
.&mt('An error occurred ([_1]) while trying to upload [_2] for embedded element [_3].' |
|
,$result,$orig_uploaded_filename,$env{'form.embedded_orig_'.$i}) |
|
.'</span><br />'; |
|
next; |
|
} else { |
} else { |
$output .= '<p>'.&mt('Uploaded [_1]','<span class="LC_filename">'. |
$result= |
$path.$fname.'</span>').'</p>'; |
&Apache::lonnet::userfileupload('embedded_item_'.$i,'', |
|
$dirpath.$path); |
|
if ($result !~ m|^/uploaded/|) { |
|
$output .= '<span class="LC_error">' |
|
.&mt('An error occurred ([_1]) while trying to upload [_2] for embedded element [_3].' |
|
,$result,$orig_uploaded_filename,$env{'form.embedded_orig_'.$i}) |
|
.'</span><br />'; |
|
next; |
|
} else { |
|
$output .= '<p>'.&mt('Uploaded [_1]','<span class="LC_filename">'. |
|
$path.$fname.'</span>').'</p>'; |
|
} |
} |
} |
} else { |
} else { |
# Save the file |
# Save the file |
Line 8619 sub check_for_existing {
|
Line 8732 sub check_for_existing {
|
sub check_for_upload { |
sub check_for_upload { |
my ($path,$fname,$group,$element,$portfolio_root,$port_path, |
my ($path,$fname,$group,$element,$portfolio_root,$port_path, |
$disk_quota,$current_disk_usage,$uname,$udom) = @_; |
$disk_quota,$current_disk_usage,$uname,$udom) = @_; |
my $filesize = (length($env{'form.'.$element})) / 1000; #express in k (1024?) |
my $filesize = length($env{'form.'.$element}); |
|
if (!$filesize) { |
|
my $msg = '<span class="LC_error">'. |
|
&mt('Unable to upload [_1]. (size = [_2] bytes)', |
|
'<span class="LC_filename">'.$fname.'</span>', |
|
$filesize).'<br />'. |
|
&mt('Either the file you uploaded was empty, or your web browser was unable to read its contents.').'<br />'; |
|
'</span>'; |
|
return ('zero_bytes',$msg); |
|
} |
|
$filesize = $filesize/1000; #express in k (1024?) |
my $getpropath = 1; |
my $getpropath = 1; |
my @dir_list = &Apache::lonnet::dirlist($portfolio_root.$path,$udom,$uname, |
my @dir_list = &Apache::lonnet::dirlist($portfolio_root.$path,$udom,$uname, |
$getpropath); |
$getpropath); |
my $found_file = 0; |
my $found_file = 0; |
my $locked_file = 0; |
my $locked_file = 0; |
foreach my $line (@dir_list) { |
foreach my $line (@dir_list) { |
my ($file_name)=split(/\&/,$line,2); |
my ($file_name,$rest)=split(/\&/,$line,2); |
if ($file_name eq $fname){ |
if ($file_name eq $fname){ |
$file_name = $path.$file_name; |
$file_name = $path.$file_name; |
if ($group ne '') { |
if ($group ne '') { |
Line 8635 sub check_for_upload {
|
Line 8758 sub check_for_upload {
|
$found_file = 1; |
$found_file = 1; |
if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { |
if (&Apache::lonnet::is_locked($file_name,$udom,$uname) eq 'true') { |
$locked_file = 1; |
$locked_file = 1; |
|
} else { |
|
my @info = split(/\&/,$rest); |
|
my $currsize = $info[6]/1000; |
|
if ($currsize < $filesize) { |
|
my $extra = $filesize - $currsize; |
|
if (($current_disk_usage + $extra) > $disk_quota) { |
|
my $msg = '<span class="LC_error">'. |
|
&mt('Unable to upload [_1]. (size = [_2] kilobytes). Disk quota will be exceeded if existing (smaller) file with same name (size = [_3] kilobytes) is replaced.', |
|
'<span class="LC_filename">'.$fname.'</span>',$filesize,$currsize).'</span>'. |
|
'<br />'.&mt('Disk quota is [_1] kilobytes. Your current disk usage is [_2] kilobytes.', |
|
$disk_quota,$current_disk_usage); |
|
return ('will_exceed_quota',$msg); |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 8652 sub check_for_upload {
|
Line 8789 sub check_for_upload {
|
return ('file_locked',$msg); |
return ('file_locked',$msg); |
} else { |
} else { |
my $msg = '<span class="LC_error">'; |
my $msg = '<span class="LC_error">'; |
$msg .= &mt('Unable to upload [_1]. A file by that name was found in [_2].','<span class="LC_filename">'.$fname.'</span>',$port_path.$env{'form.currentpath'}); |
$msg .= &mt(' A file by that name: [_1] was found in [_2].','<span class="LC_filename">'.$fname.'</span>',$port_path.$env{'form.currentpath'}); |
$msg .= '</span>'; |
$msg .= '</span>'; |
$msg .= '<br />'; |
return ('existingfile',$msg); |
$msg .= &mt('To upload, rename or delete existing [_1] in [_2].','<span class="LC_filename">'.$fname.'</span>', $port_path.$env{'form.currentpath'}); |
|
return ('file_exists',$msg); |
|
} |
} |
} |
} |
} |
} |
Line 10888 sub clean_symb {
|
Line 11023 sub clean_symb {
|
return ($symb,$enc); |
return ($symb,$enc); |
} |
} |
|
|
|
sub build_release_hashes { |
|
my ($checkparms,$checkresponsetypes,$checkcrstypes,$anonsurvey,$randomizetry) = @_; |
|
return unless((ref($checkparms) eq 'HASH') && (ref($checkresponsetypes) eq 'HASH') && |
|
(ref($checkcrstypes) eq 'HASH') && (ref($anonsurvey) eq 'HASH') && |
|
(ref($randomizetry) eq 'HASH')); |
|
foreach my $key (keys(%Apache::lonnet::needsrelease)) { |
|
my ($item,$name,$value) = split(/:/,$key); |
|
if ($item eq 'parameter') { |
|
if (ref($checkparms->{$name}) eq 'ARRAY') { |
|
unless(grep(/^\Q$name\E$/,@{$checkparms->{$name}})) { |
|
push(@{$checkparms->{$name}},$value); |
|
} |
|
} else { |
|
push(@{$checkparms->{$name}},$value); |
|
} |
|
} elsif ($item eq 'resourcetag') { |
|
if ($name eq 'responsetype') { |
|
$checkresponsetypes->{$value} = $Apache::lonnet::needsrelease{$key} |
|
} |
|
} elsif ($item eq 'course') { |
|
if ($name eq 'crstype') { |
|
$checkcrstypes->{$value} = $Apache::lonnet::needsrelease{$key}; |
|
} |
|
} |
|
} |
|
($anonsurvey->{major},$anonsurvey->{minor}) = split(/\./,$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}); |
|
($randomizetry->{major},$randomizetry->{minor}) = split(/\./,$Apache::lonnet::needsrelease{'parameter:type:randomizetry'}); |
|
return; |
|
} |
|
|
=pod |
=pod |
|
|
=back |
=back |