| … | |
… | |
| 244 | -label => "Solutions", |
244 | -label => "Solutions", |
| 245 | ), |
245 | ), |
| 246 | ); |
246 | ); |
| 247 | print CGI::start_table({-width=>"100%"}), CGI::start_Tr({-valign=>"top"}); |
247 | print CGI::start_table({-width=>"100%"}), CGI::start_Tr({-valign=>"top"}); |
| 248 | |
248 | |
| 249 | my $multiSet = $self->{permissionLevel} > 0; |
249 | my $multiSet = $self->{permissionLevel} > 0; |
| 250 | my $multiUser = $self->{permissionLevel} > 0; |
250 | my $multiUser = $self->{permissionLevel} > 0; |
| 251 | my $preOpenSets = $self->{permissionLevel} > 0; |
251 | my $preOpenSets = $self->{permissionLevel} > 0; |
|
|
252 | my $effectiveUserName = $self->{effectiveUser}->user_id; |
|
|
253 | my @setNames = $db->listUserSets($effectiveUserName); |
|
|
254 | my @sets = $db->getMergedSets( map { [$effectiveUserName, $_] } @setNames ); |
|
|
255 | @sets = sort { $a->set_id cmp $b->set_id } @sets; |
|
|
256 | @setNames = map( {$_->set_id } @sets ); # get sorted version of setNames |
|
|
257 | my %setLabels = map( {($_->set_id, "set ".$_->set_id )} @sets ); |
|
|
258 | my (@users, @userNames,%userLabels); |
| 252 | |
259 | |
|
|
260 | if ($multiUser) { |
|
|
261 | @userNames = $self->{db}->listUsers(); |
|
|
262 | @users = $self->{db}->getUsers(@userNames); |
|
|
263 | @users = sort { $a->last_name cmp $b->last_name } @users; |
|
|
264 | @userNames = map( {$_->user_id} @users ); # get sorted version of user names |
|
|
265 | %userLabels = map( {($_->user_id , $_->last_name .", ". $_->first_name ." --- ". $_->user_id ) } @users ); |
|
|
266 | } |
| 253 | # set selection menu |
267 | # set selection menu |
| 254 | { |
268 | { |
| 255 | print CGI::start_td(); |
269 | print CGI::start_td(); |
| 256 | print CGI::h3("Sets"); |
270 | print CGI::h3("Sets"); |
| 257 | print CGI::start_table(); |
271 | # print CGI::start_table(); |
| 258 | my @sets; |
|
|
| 259 | push @sets, $db->getMergedSet($self->{effectiveUser}->user_id, $_) |
|
|
| 260 | foreach ($db->listUserSets($self->{effectiveUser}->user_id)); |
|
|
| 261 | @sets = sort { $a->set_id cmp $b->set_id } @sets; |
|
|
| 262 | foreach my $set (@sets) { |
272 | # foreach my $set (@sets) { |
| 263 | my $checked = grep { $_ eq $set->set_id } @{$self->{sets}}; |
273 | # my $checked = grep { $_ eq $set->set_id } @{$self->{sets}}; |
| 264 | my $control; |
274 | # my $control; |
| 265 | if (time < $set->open_date and not $preOpenSets) { |
275 | # if (time < $set->open_date and not $preOpenSets) { |
| 266 | $control = ""; |
276 | # $control = ""; |
| 267 | } else { |
277 | # } else { |
| 268 | if ($multiSet) { |
278 | # if ($multiSet) { |
| 269 | $control = CGI::checkbox( |
279 | # $control = CGI::checkbox( |
| 270 | -name=>"hcSet", |
280 | # -name=>"hcSet", |
| 271 | -value=>$set->set_id, |
281 | # -value=>$set->set_id, |
| 272 | -label=>"", |
282 | # -label=>"", |
| 273 | -checked=>$checked |
283 | # -checked=>$checked |
| 274 | ); |
284 | # ); |
| 275 | } else { |
285 | # } else { |
| 276 | $control = CGI::radio_group( |
286 | # $control = CGI::radio_group( |
| 277 | -name=>"hcSet", |
287 | # -name=>"hcSet", |
| 278 | -values=>[$set->set_id], |
288 | # -values=>[$set->set_id], |
| 279 | -default=>($checked ? $set->set_id : "-"), |
289 | # -default=>($checked ? $set->set_id : "-"), |
| 280 | -labels=>{$set->set_id => ""} |
290 | # -labels=>{$set->set_id => ""} |
| 281 | ); |
291 | # ); |
| 282 | } |
292 | # } |
| 283 | } |
293 | # } |
| 284 | print CGI::Tr(CGI::td([ |
294 | # print CGI::Tr(CGI::td([ |
| 285 | $control, |
295 | # $control, |
| 286 | $set->set_id, |
296 | # $set->set_id, |
| 287 | ])); |
297 | # ])); |
| 288 | } |
298 | # } |
| 289 | print CGI::end_table(); |
299 | # print CGI::end_table(); |
|
|
300 | print CGI::scrolling_list(-name=>'hcSet', |
|
|
301 | -values=>\@setNames, |
|
|
302 | -labels=>\%setLabels, |
|
|
303 | -size => 10, |
|
|
304 | -multiple => $multiSet, |
|
|
305 | -defaults => $self->{sets}, |
|
|
306 | ); |
| 290 | print CGI::end_td(); |
307 | print CGI::end_td(); |
| 291 | } |
308 | } |
| 292 | |
309 | |
| 293 | # user selection menu |
310 | # user selection menu |
| 294 | if ($multiUser) { |
311 | if ($multiUser) { |
| 295 | print CGI::start_td(); |
312 | print CGI::start_td(); |
| 296 | print CGI::h3("Users"); |
313 | print CGI::h3("Users"); |
| 297 | print CGI::start_table(); |
314 | #print CGI::start_table(); |
| 298 | #print CGI::Tr( |
315 | #print CGI::Tr( |
| 299 | # CGI::td(CGI::checkbox(-name=>"hcAllUsers", -value=>"1", -label=>"")), |
316 | # CGI::td(CGI::checkbox(-name=>"hcAllUsers", -value=>"1", -label=>"")), |
| 300 | # CGI::td({-colspan=>"2"}, "All Users"), |
317 | # CGI::td({-colspan=>"2"}, "All Users"), |
| 301 | #); |
318 | #); |
| 302 | #print CGI::Tr(CGI::td({-colspan=>"3"}, " ")); |
319 | #print CGI::Tr(CGI::td({-colspan=>"3"}, " ")); |
| 303 | |
320 | |
| 304 | my @users; |
321 | |
| 305 | push @users, $self->{db}->getUser($_) |
|
|
| 306 | foreach ($self->{db}->listUsers()); |
|
|
| 307 | @users = sort { $a->last_name cmp $b->last_name } @users; |
|
|
| 308 | foreach my $user (@users) { |
322 | # foreach my $user (@users) { |
| 309 | my $checked = grep { $_ eq $user->user_id } @{$self->{users}}; |
323 | # my $checked = grep { $_ eq $user->user_id } @{$self->{users}}; |
| 310 | print CGI::Tr(CGI::td([ |
324 | # print CGI::Tr(CGI::td([ |
| 311 | CGI::checkbox(-name=>"hcUser", -value=>$user->user_id, -label=>"", -checked=>$checked), |
325 | # CGI::checkbox(-name=>"hcUser", -value=>$user->user_id, -label=>"", -checked=>$checked), |
| 312 | $user->user_id, |
326 | # $user->user_id, |
| 313 | $user->last_name.", ".$user->first_name, |
327 | # $user->last_name.", ".$user->first_name, |
| 314 | ])); |
328 | # ])); |
| 315 | } |
329 | # } |
| 316 | |
330 | # |
| 317 | print CGI::end_table(); |
331 | # print CGI::end_table(); |
|
|
332 | print CGI::scrolling_list(-name=>'hcUser', |
|
|
333 | -values=>\@userNames, |
|
|
334 | -labels=>\%userLabels, |
|
|
335 | -size => 10, |
|
|
336 | -multiple => 'true', |
|
|
337 | -defaults => $self->{users}, |
|
|
338 | ); |
| 318 | print CGI::end_td(); |
339 | print CGI::end_td(); |
| 319 | } |
340 | } |
| 320 | |
341 | |
| 321 | print CGI::end_Tr(), CGI::end_table(); |
342 | print CGI::end_Tr(), CGI::end_table(); |
| 322 | if ($download_texQ) { # provide choice of pdf or tex output |
343 | if ($download_texQ) { # provide choice of pdf or tex output |