--- loncom/homework/bridgetask.pm 2007/01/10 21:46:24 1.216 +++ loncom/homework/bridgetask.pm 2007/01/10 22:46:22 1.217 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: bridgetask.pm,v 1.216 2007/01/10 21:46:24 albertel Exp $ +# $Id: bridgetask.pm,v 1.217 2007/01/10 22:46:22 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -98,7 +98,7 @@ sub check_in { &check_in_sequence($user,$domain,$slot_name); } else { &create_new_version($type,$user,$domain,$slot_name); - &Apache::structuretags::finalize_storage($res->symb); + &Apache::structuretags::finalize_storage(); } return 1; } @@ -1579,17 +1579,16 @@ sub show_queue { my $ekey=&escape($key); my ($action,$description,$status)=('select',&mt('Select')); if (exists($queue{"$key\0locked"})) { - my $locker = $queue{"$key\0locked"}; - my $time; - if (ref($queue{"$key\0locked"}) eq 'ARRAY') { - ($locker, $time) = @{$queue{"$key\0locked"}}; + my ($locker,$time) = + &get_lock_info($queue{"$key\0locked"}); + if ($time) { $time = &Apache::lonnavmaps::timeToHumanString($time, 'start'); } my $me=$env{'user.name'}.':'.$env{'user.domain'}; $status=&mt('Locked by [_1] [_2]',$locker,$time); - if ($me eq $queue{"$key\0locked"}) { + if ($me eq $locker) { ($action,$description)=('resume',&mt('Resume')); } else { ($action,$description)=('unlock',&mt('Unlock')); @@ -1699,7 +1698,7 @@ sub queue_key_locked { my ($key_locked,$value)= &Apache::lonnet::get($queue,["$key\0locked"],$cdom,$cnum); if ($key_locked eq "$key\0locked") { - return $value; + return &get_lock_info($value); } return undef; } @@ -1780,6 +1779,24 @@ sub pick_from_queue_data { return undef; } +sub get_lock_info { + my ($lock_info) = @_; + if (wantarray) { + if (ref($lock_info) eq 'ARRAY') { + return @{$lock_info}; + } else { + return ($lock_info); + } + } else { + if (ref($lock_info) eq 'ARRAY') { + return $lock_info->[0]; + } else { + return $lock_info; + } + } + return; +} + sub find_mid_grade { my ($queue,$symb,$cdom,$cnum)=@_; my $todo=&unescape($env{'form.gradingkey'}); @@ -1791,7 +1808,7 @@ sub find_mid_grade { my $regexp="^$symb\0.*\0locked\$"; my %locks=&Apache::lonnet::dump($queue,$cdom,$cnum,$regexp); foreach my $key (keys(%locks)) { - my $who=$locks{$key}; + my $who= &get_lock_info($locks{$key}); if ($who eq $me) { $todo=$key; $todo=~s/\0locked$//;