Subversion Repositories ORC

Rev

Rev 2 | Rev 8 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7 - 1
#!/usr/bin/perl
2
 
3
use strict;
4
use RollerCon;
5
use tableViewer;
6
use CGI qw/param cookie header start_html url/;
7
use HTML::Tiny;
8
my $h = HTML::Tiny->new( mode => 'html' );
9
 
10
my $cookie_string = authenticate(1) || die;
11
my ($EML, $PWD, $LVL) = split /&/, $cookie_string;
12
my $user = getUser($EML);
13
my $RCAUTH_cookie = CGI::Cookie->new(-name=>'RCAUTH',-value=>"$cookie_string",-expires=>"+30m");
14
 
15
print header (-cookie=>$RCAUTH_cookie);
16
 
17
#foreach (sort keys %ENV) {
18
#	print "$_: $ENV{$_}\n<br>";
19
#}
20
my $change = param ('change');
21
my $RCid   = param ('RCid') // $user->{RCid};
22
my $id     = param ('id');
23
my $role   = param ('role') // "";
24
my $noshow = param ('noshow');
25
my $department = getShiftDepartment ($role ? $id."-".$role : $id);
26
 
27
print start_html (-title => "vORC Make Shift Change", -style => {'src' => "/style.css"}), $h->open ("body");
28
 
29
 
30
if ($change eq "lookup") {
31
	if (convertDepartments($user->{department})->{$department} < 2 and $LVL < 5) {
32
    print $h->div ({ class=>"error" }, "You're not allowed to change other people's schedules.");
33
    print $h->close ("body"), $h->close ("html");
34
	  die;
35
	}
36
 
37
	my $options = fetchDerbyNameWithRCid ($department);
38
 
39
  print $h->form ({ action=>url }, [
40
    $h->input ({ type=>"hidden", name=>"change", value=>"add" }),
41
    $h->input ({ type=>"hidden", name=>"id", value=>$id }),
42
    $h->input ({ type=>"hidden", name=>"role", value=>$role }),
43
    $h->p ("Add User to Shift ($id):"),
44
    $h->select ({ name=>"RCid", id=>"pickname" }, [ $h->option, $options ]),
45
    $h->input ({ type=>"submit", value=>"Save", onClick=>"if (document.getElementById('pickname').selectedIndex === 0) { return false; }" }),
46
    $h->button ({ onClick=>"window.close();" }, "Cancel")
47
  ]);
48
 
49
} else {
50
	print $h->p ("Making a shift change...");
51
 
52
  if ($noshow eq "true") {
53
    logit ($RCid, "NO SHOW: $id");
54
    logit ($user->{RCid}, "Logged a No Show for ($RCid): $id");
55
    print $h->p ("Logged a No Show and removing the official from the shift...");
56
  } elsif ($RCid eq $user->{RCid}) {
57
    print $h->p ("So, <b>$user->{derby_name}</b>, you'd like to <b>$change</b> a shift: <b>$id</b>...");
58
  } else {
59
    my $target = getUserDerbyName ($RCid);
60
    print $h->p ("So, <b>$user->{derby_name}</b>, you'd like to <b>$change</b> a shift for <b>$target</b>: <b>$id</b>...");
61
  }
62
 
63
 
64
	my $change_err = changeShift($change, $id, $role, $RCid);
65
	my $closer;
66
	if ($change_err) {
67
	  print $change_err;
68
	  print $h->br, $h->button ({ onClick=>"window.close();" }, "Close");
69
	} else {
70
	  print "<br>This window will close automatically in 3 seconds.";
71
 	  $closer = 'setTimeout(() => { window.close(); }, 3000);';
72
	}
73
 
74
	print<<tail;
75
	<SCRIPT language="JavaScript">
76
	<!--
77
			function reloadParent() {
78
	      window.opener.location.reload();
79
	      $closer
80
			}
81
 
82
			reloadParent();
83
	//-->
84
	</SCRIPT>
85
tail
86
  print $h->close ("body"), $h->close ("html");
2 - 87
}