<html>
<?
include("../cfg.php");
?>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=<?=$ars[charSet];?>">
<title>Event Administration</title>
<link href="../lab.css" rel="stylesheet" type="text/css">
<script language="JavaScript">
<!--
// window.open for delete
function clkOp(delID,delName)
{
delWin = window.open("<? echo $SCRIPT_NAME; ?>?del=" + delID + "&name=" + delName ,"del","height=80,width=300,top=50,left=100");
delWin.focus();
}
function checkTimes(num)
{
if( num > document.all.myTimes.value )
{
alert("Can't decrese 'Repeat Times' under " + num + ", since people are registered to this event.");
document.all.myTimes.value = num;
}
}
// check form submit
function formSubmit(form)
{
if( form.name.value == "" )
{
alert("Event's unique id cannot be empty");
form.name.focus();
return false;
}
if( form.name.value == "labs" )
{
alert("Event's unique id cannot be 'labs'");
form.name.focus();
return false;
}
if( form.title.value == "" )
{
alert("Event's title cannot be empty");
form.title.focus();
return false;
}
if( form.repeat.value < 1 || isNaN(form.repeat.value) )
{
alert("Repeat-Times must be a number greater than zero");
form.repeat.focus();
return false;
}
if( form.inter.value < 1 || form.inter.value > 365 || isNaN(form.inter.value) )
{
alert("Repeat-Interval must be a number between 1 and 365");
form.inter.focus();
return false;
}
if( form.session.value < 10 || form.session.value > 240 || isNaN(form.session.value) )
{
alert("Session Length must be a number between 10 and 240");
form.session.focus();
return false;
}
if( form.pause.value == "" || form.pause.value < 0 || form.pause.value > 240 || isNaN(form.pause.value) )
{
alert("Break between sessions must be a number between 0 and 240");
form.pause.focus();
return false;
}
// no need to check on disabled fields
return checkDis(form);
}
-->
</script>
</head>
<body bgcolor=white>
<?
// delete & delete dialog
if( isset($del) && is_numeric($del) )
{
echo "<center>\n<br>\n<p class=adm9b>\n";
$db = mysql_pconnect($ars[host],$ars[user],$ars[pass]);
mysql_select_db($ars[dbname],$db);
if( $res = mysql_query("select name from labs where id=\"$del\"") )
if( $row = mysql_fetch_array($res) )
{
echo "Got Event name... Deleting Data...";
if( mysql_query("drop table $row[name]") )
echo "OK. ";
else
echo "Failed. " . mysql_error();
echo "<br>Deleting event reference...";
if( mysql_query("delete from labs where id=\"$del\"") )
echo "OK.";
else
echo "Failed. " . mysql_error();
}
else
echo "Error: " . mysql_error();
else
echo "Error: " . mysql_error();
}
// update int SQL
if( isset($submit) )
{
$update = 0;
// check vars
if( empty($name) || $name == "" )
die("<center><p class=adm11>Error, <b>Unique Identifier</b> is required</p></center></body></html>\n");
if( $name == "labs" )
die("<center><p class=adm11>Error, <b>Unique Identifier</b> cannot be \"labs\"</p></center></body></html>\n");
if( empty($title) || $title == "" )
die("<center><p class=adm11>Error, <b>Event Title</b> is required</p></center></body></html>\n");
if( empty($cat) || !is_numeric($cat) )
die("<center><p class=adm11>Error, <b>Event Category</b> is required</p></center></body></html>\n");
if( empty($month) || !is_numeric($month) )
die("<center><p class=adm11>Error, a <u>Valid</u> <b>First Start Time</b> is required</p></center></body></html>\n");
if( empty($day) || !is_numeric($day) )
die("<center><p class=adm11>Error, a <u>Valid</u> <b>First Start Time</b> is required</p></center></body></html>\n");
if( empty($year) || !is_numeric($year) )
die("<center><p class=adm11>Error, a <u>Valid</u> <b>First Start Time</b> is required</p></center></body></html>\n");
if( empty($hour) || !is_numeric($hour) )
die("<center><p class=adm11>Error, a <u>Valid</u> <b>First Start Time</b> is required</p></center></body></html>\n");
if( !isset($min) )
die("<center><p class=adm11>Error, a <u>Valid</u> <b>First Start Time</b> is required</p></center></body></html>\n");
if( empty($repeat) || !is_numeric($repeat) || $repeat < 1 )
die("<center><p class=adm11>Error, <b>Repeat</b> is required, and should be a positive number</p></center></body></html>\n");
if( empty($inter) || !is_numeric($inter) || $repeat < 1 || $repeat > 365 )
die("<center><p class=adm11>Error, <b>Repeat Interval in days</b> is required, and should be a number between 1 and 365</p></center></body></html>\n");
if( empty($klass) || !is_numeric($klass) || $klass < 1 || $klass > 240 )
die("<center><p class=adm11>Error, <b>Repeat in the same day</b> is required, and should be a number between 1 and 240</p></center></body></html>\n");
if( empty($session) || !is_numeric($session) || $session < 10 || $session > 240 )
die("<center><p class=adm11>Error, <b>Session size</b> is required, and should be a number between 10 and 120</p></center></body></html>\n");
if( !isset($pause) || !is_numeric($pause) || $pause < 0 || $pause > 240 )
die("<center><p class=adm11>Error, <b>Break size</b> is required, and should be a number between 0 and 240</p><!-- $pause --></center></body></html>\n");
if( empty($places) || !is_numeric($places) || $places < 1 )
die("<center><p class=adm11>Error, <b>Numer of places per session</b> is required, and should be a positive number</p></center></body></html>\n");
if( empty($seats) || !is_numeric($seats) || $seats < 1 )
die("<center><p class=adm11>Error, <b>Persons per place</b> is required, and should be a positive number</p></center></body></html>\n");
if( empty($funky) || strlen($funky)<1 )
die("<center><p class=adm11>Error, <b>Authentication function</b> is required.</p></center></body></html>\n");
// process the vars
if( isset($change) && is_numeric($change) )
{
$query = "update labs set ";
$update = 1;
}
else
$query = "insert labs set ";
$query .= "name=\"$name\", title=\"$title\", cat=$cat, repeat=$repeat, inter=$inter, class=$klass, session=$session, pause=$pause, places=$places, seats=$seats, func=\"$funky\"";
// date/time
$dt = $year . "-" . $month . "-" . $day . " " . $hour . ":" . $min . ":00";
$query .= ", starts=\"$dt\"";
// header and footer
if( isset($header) && $header != "" )
$query .= ", header=\"$header\"";
else
$query .= ", header=NULL";
if( isset($footer) && $footer != "" )
$query .= ", footer=\"$footer\"";
else
$query .= ", footer=NULL";
// checkboxes
if( isset($closed) && $closed == "on" )
$query .= ", closed=1";
else
$query .= ", closed=0";
if( isset($multi) && $multi != 1 )
$query .= ", multi=$multi";
else
$query .= ", multi=1";
// users can self delete
if( isset($arsdel) && $arsdel == "on" )
$query .= ", arsdel=1";
else
$query .= ", arsdel=0";
// second dialog field is a password
if( isset($isPass) && $isPass == "on" )
$query .= ", isPass=1";
else
$query .= ", isPass=0";
// moderator's email
if( isset($mother) && strlen($mother) )
$query .= ", mother='$mother'";
else
$query .= ", mother='$ars[admin]'";
// reg dialog title
if( isset($pop) && strlen($pop) )
$query .= ", POPtitle='$pop'";
else
$query .= ", POPtitle=NULL";
// reg dialog 1st field
if( isset($field1) && strlen($field1) )
$query .= ", POP1='$field1'";
else
$query .= ", POP1='User'";
// reg dialog 2nd field
if( isset($field2) && strlen($field2) )
$query .= ", POP2='$field2'";
else
$query .= ", POP2='Pass'";
// add update info if needed
if( $update )
$query .= " where id = \"$change\"";
// query is ready
$db = mysql_pconnect($ars[host],$ars[user],$ars[pass]);
mysql_select_db($ars[dbname],$db);
//echo "QUERY: $query<br>\n";
if( !$update )
{
if( !mysql_query("create table $name (place smallint unsigned not null, id tinytext not null, name tinytext not null, unique index (place))") )
die("<center><p class=err0>Error while trying to create table \"$name\": " . mysql_error() . "</p></html>\n");
}
else
$edit = $change;
if( mysql_query($query) )
if( $update )
echo "<p class=err1><b>Event \"$title\" Updated Successfully.</b></p>\n";
else
echo "<p class=err1><b>New Event \"$title\" Added Successfully.</b></p>\n";
else
die("<p class=err0><b>Error while trying to update events table: " . mysql_error() . "</p>\n");
}
// prepare default values;
list($defY,$defM,$defD,$defH,$defMin) = split(" ",date("Y n j G i"));
$tbl[repeat] = 1;
$tbl[inter] = 7;
$tbl["class"] = 3;
$tbl[session] = 60;
$tbl[pause] = 10;
$tbl[places] = 20;
$tbl[seats] = 3;
?>
<center>
<table border="0" cellpadding="4" cellspacing="0" width="95%" class="adm9">
<tr><td colspan="2" class="adm9b" align="center">Event Administration</td></tr>
<tr>
<td><a href="../docs/help.html">Help</a> </td>
<td align="right">
<a href="<? echo $SCRIPT_NAME; ?>?new=1">New Event</a>
<a href="#" onClick="window.open('cats.php?show=1','cats','top=200,left=200,width=350,height=300,resizable');">Edit Categories</a>
<a href="<? echo $SCRIPT_NAME; ?>">Event Index</a>
</td>
</tr>
</table>
<br><br>
<form action="<? echo $SCRIPT_NAME; ?>" method=post onSubmit="return formSubmit(this);">
<?
$Usage = 0;
if( isset($new) || isset($edit) )
{
// get data to edit
if( is_numeric($edit) )
{
$db = mysql_pconnect($ars[host],$ars[user],$ars[pass]);
mysql_select_db($ars[dbname],$db);
if( $res = mysql_query("select * from labs where id = \"$edit\"") )
$tbl = mysql_fetch_array($res);
// assign time values
if( isset($tbl[starts]) )
{
list($d,$h) = split(" ",$tbl[starts]);
list($defY,$defM,$defD) = split("-",$d);
list($defH,$defMin,$defS) = split(":",$h);
}
// get count for registered users for that table
if( isset($tbl[name]) )
if( $res = mysql_query("select count(place) as X from $tbl[name]") )
{
$row = mysql_fetch_array($res);
$Usage = $row[X];
}
}
?>
<table border=0 cellspacing=1 cellpadding=2 class=adm9>
<tr align=center>
<td colspan=2 class=adm11><b>
<? if( isset($tbl[title]) )
{
echo "Edit Event \"". $tbl[title] . "\"";
echo " ";
echo "[<a href=\"../lab.php?labID=$tbl[id]\">View Event</a>]\n";
echo "[<a href=\"mod.php?labID=$tbl[id]\">Audit Event</a>]\n";
} else
echo "New Event Definition";
?></b></td>
</tr>
<tr align=center>
<td valign=top><!-- General Properties Table -->
<table border=1 cellspacing=0 cellpadding=0 bordercolor=#A00000><tr><td><!-- coloring table -->
<? if( isset($tbl[id]) && is_numeric($tbl[id]) ) echo "<input type=hidden name=change value=\"$tbl[id]\">\n"; ?>
<table border=0 cellspacing=0 cellpadding=2 bordercolor=black class=adm9 bgcolor=white width=100%>
<tr align=center>
<td colspan=2><b>General Properties</b></td>
</tr>
<tr>
<td align=right>Unique Identifier:</td>
<td>
<? if( isset($tbl[name]) )
{
echo " <input type=hidden name=name value=\"$tbl[name]\">\n";
echo "<b>$tbl[name]</b>";
} else
echo " <input type=text name=name size=15 maxlength=20 class=adm9b value=\"$tbl[name]\">\n";
?>
</td>
</tr>
<tr>
<td align=right>Event's Title:</td>
<td><input type=text name=title size=25 maxlength=100 class=adm9b value="<?=$tbl[title];?>"></td>
</tr>
<tr>
<td align=right>Event's Category:</td>
<td><select name=cat class=adm9b>
<? catOpts($tbl[cat]); ?>
</select>
</td>
</tr>
</table>
</td></tr></table><!-- coloring table -->
</td>
<td valign=top rowspan=2><!-- Time Definitions -->
<table border=1 cellspacing=0 cellpadding=0 bordercolor=#008000><tr><td><!-- coloring table -->
<table border=0 cellspacing=0 cellpadding=2 bordercolor=black class=adm9 bgcolor=white width=100%>
<tr align=center>
<td colspan=2><b>Time Related Defintitions</b></td>
</tr>
<tr>
<td colspan=2><u>First Event will start at:</u></td>
</tr>
<tr align=center>
<td align=right>Date:</td>
<td>
<select name=month class=adm9b>
<? months($defM); ?>
</select>
<select name=day class=adm9b>
<? days($defD); ?>
</select>
<select name=year class=adm9b>
<? years(2000,10,$defY); ?>
</select>
</td>
<tr align=center>
<td align=right>Time:</td>
<td>
<select name=hour class=adm9b>
<? hours($defH); ?>
</select><b>:</b>
<select name=min class=adm9b>
<? mins($defMin); ?>
</select>
</td>
</tr>
<tr>
<td colspan=2><u>Events will...</u></td>
</tr>
<tr>
<td align=right>Repeat</td>
<td><input type=text size=3 maxlength=3 name=repeat id=myTimes class=adm9b <? printf("value=\"%s\"",$tbl[repeat]); if( $Usage ) echo " onChange=\"checkTimes($tbl[repeat]);\""; ?>> Times,</td>
</tr>
<td align=right>Every</td>
<td><input type=text size=3 maxlength=3 name=inter class=adm9b value="<?=$tbl[inter];?>"> Days</td>
</tr>
<tr>
<td colspan=2><u>Each Event will...</u></td>
</tr>
<tr>
<td align=right>Repeat for</td>
<td><input type=text size=3 maxlength=3 name=klass class=adm9b <? printf("value=\"%s\"",$tbl["class"]); if( $Usage ) echo "disabled><input type=hidden name=klass value=\"$tbl[class]\""; ?>> session(s) in that day,</td>
<tr>
<tr>
<td align=right>Session Length:</td>
<td><input type=text size=3 maxlength=3 name=session class=adm9b value="<?=$tbl[session];?>"> minutes,</td>
</tr>
<tr>
<td align=right>With a Break of:</td>
<td><input type=text size=3 maxlength=2 name=pause class=adm9b value="<?=$tbl[pause];?>"> minutes between sessions.</td>
</tr>
<tr>
<td colspan=2><u>In Each Session:</u></td>
</tr>
<tr>
<td align=right>There will be</td>
<td><input type=text size=3 maxlength=5 name=places class=adm9b <? printf("value=\"%s\"",$tbl[places]); if( $Usage ) echo "disabled><input type=hidden name=places value=\"$tbl[places]\""; ?>> Groups/Places</td>
</tr>
<tr>
<td align=right><input type=text size=3 maxlength=3 name=seats class=adm9b <? printf("value=\"%s\"",$tbl[seats]); if( $Usage ) echo "disabled><input type=hidden name=seats value=\"$tbl[seats]\""; ?>></td>
<td>Persons per group/place.</td>
</tr>
</table>
</td></tr></table><!-- coloring table -->
<?
if( $Usage )
{
echo "<br><span class=adm9><b>Some Time-Related Fields have been disabled,<br></b> since ($Usage) people are registered to this event.</span>\n";
echo "<input type=hidden name=class value=\"$tbl[class]\">\n";
echo "<input type=hidden name=places value=\"$tbl[places]\">\n";
echo "<input type=hidden name=seats value=\"$tbl[seats]\">\n";
echo "<script language=\"javascript\">\n";
echo "<!--\n";
echo "function checkDis(form) { return true; }\n";
echo "-->\n</script>\n";
}
else
{
?>
<script language="javascript">
<!--
function checkDis(form)
{
if( form.klass.value < 1 || form.klass.value > 240 || isNaN(form.klass.value) )
{
alert("Session repeat must be a number between 1 and 240");
form.klass.focus();
return false;
}
if( form.places.value < 1 || isNaN(form.places.value) )
{
alert("Number of places must be a number greater than zero");
form.places.focus();
return false;
}
if( form.seats.value < 1 || isNaN(form.seats.value) )
{
alert("Number of persons must be a number greater than zero");
form.seats.focus();
return false;
}
return true;
}
-->
</script>
<?
}
?>
</td>
</tr>
<tr align=center>
<td valign=top><!-- Reg Definitions -->
<table border=1 cellspacing=0 cellpadding=0 bordercolor=#000080><tr><td><!-- coloring table -->
<table border=0 cellspacing=0 cellpadding=2 bordercolor=black class=adm9 bgcolor=white width=100%>
<tr align=center>
<td><b>User Registration Options</b></td>
</tr>
<tr>
<td><input type=checkbox name=closed class=adm9b <? if( $tbl[closed] == 1 ) echo "checked"; ?>> Event is closed for registration</td>
</tr>
<tr>
<td align=right>Participants can register up to:
<input type=text name=multi size=1 maxlength=3 class=adm9b value="<? echo isset($tbl[multi])?$tbl[multi]:"0"; ?>">
times <br> (zero = unlimited)
</td>
</tr>
<tr>
<td><input type=checkbox name=arsdel class=adm9b <? if( $tbl[arsdel] == 1 ) echo "checked"; ?>> Participants are allowed to delete themselves</td>
</tr>
<tr>
<td> Event Admin's Email:
<input type=text name=mother class=adm9b maxlength=30 size=24 value="<? echo isset($tbl[mother])?$tbl[mother]:$ars[admin]; ?>">
</td>
</tr>
</table>
</td></tr>
<tr>
<td><!-- Reg Dialog Opt. -->
<table border=0 cellspacing=0 cellpadding=2 bordercolor=black class=adm9 bgcolor=white width=100%>
<tr>
<td colspan=2 align=center><b>Registration Dialog Options</b></td>
</tr>
<tr>
<td align=right>Title: </td>
<td><input type=text name=pop class=adm9b size=15 maxlength=50 value="<? echo isset($tbl[POPtitle])?$tbl[POPtitle]:$ars[pop]; ?>"></td>
</tr>
<tr>
<td align=right>First Field Name:</td>
<td> <input type=text name=field1 class=adm9b size=15 maxlength=20 value="<? echo isset($tbl[POP1])?$tbl[POP1]:$ars[first]; ?>"></td>
</tr>
<tr>
<td align=right>Second Field Name: </td>
<td><input type=text name=field2 class=adm9b size=15 maxlength=20 value="<? echo isset($tbl[POP2])?$tbl[POP2]:$ars[second]; ?>"></td>
</tr>
<tr>
<td colspan=2 align=center><input type=checkbox name=isPass class=adm9b <? echo ($tbl[isPass] == 1)?"checked":""; ?> >Second Field is a password </td>
</tr>
<tr>
<td colspan=2 align=center>Use Authentication Function:<br>
<select name=funky class=adm9b>
<?
foreach ($AAF as $k => $v )
{
if($tbl[func] == $k)
echo " <option value=\"$k\" selected>$v</option>\n";
else
echo " <option value=\"$k\">$v</option>\n";
}
?>
</select>
</td>
</tr>
</table> <!-- Reg Dialog Opt. -->
</td>
</tr>
</table><!-- coloring table -->
</td>
</tr>
<tr>
<td colspan=2 align=center>
<table border=1 cellspacing=0 cellpadding=0 bordercolor=#A080E0><tr><td><!-- coloring table -->
<table border=0 cellspacing=0 cellpadding=2 class=adm9>
<tr align=center>
<td colspan=2><b>HTML Definitions</b></td>
</tr>
<tr align=center>
<td>
Page Header (for this event):<br>
<textarea name=header cols=50 rows=5 class=adm9b><? if( isset($tbl[header]) && $tbl[header] != "" ) echo $tbl[header]; ?></textarea>
</td>
<td>
Page Footer (for this event):<br>
<textarea name=footer cols=50 rows=5 class=adm9b><? if( isset($tbl[footer]) && $tbl[footer] != "" ) echo $tbl[footer]; ?></textarea>
</td>
</tr>
</table>
</td></tr></table><!-- coloring table -->
</tr>
<tr>
<td colspan=2 align=center>
<input type=submit name=submit value="<? echo is_numeric($tbl[id])?"Update":"Commit"; ?>" class=adm9b>
</tr>
<?
}
else
{
// display a list of labs
$db = mysql_pconnect($ars[host],$ars[user],$ars[pass]);
mysql_select_db($ars[dbname]);
if( $res = mysql_query("select id,name,title,cat,multi,closed,class*seats*places*repeat as total from labs order by cat,title") )
{
echo "<table border=1 cellspacing=0 cellpadding=2 bordercolor=#000080>\n";
echo "<tr align=center>\n";
echo " <td class=adm9 width=120><b>Event Name</b></td>\n";
echo " <td class=adm9><b>Event Title</b></td>\n";
echo " <td class=adm9><b>Open For<br>Registration</b></td>\n";
echo " <td class=adm9><b>Multiple<br>Registration</b></td>\n";
echo " <td class=adm9><b>Registration<br>Stats</b></td>\n";
echo " <td class=adm9><b>Actions</b></td>\n";
echo "</tr>\n";
// get a list of categories
$mitzi = getCats();
$myCat = "";
while( $row = mysql_fetch_array($res) )
{
if( $row[cat] != $myCat )
{
echo "<tr><td align=left colspan=6 class=adm9b><b> Events in category: "" . $mitzi[$row[cat]] . ""</b></td></tr>\n";
$myCat = $row[cat];
}
$reg = "?";
$r2 = mysql_query("select count(id) as x from $row[name]");
if($rr = mysql_fetch_array($r2))
$reg = $rr[x];
echo "<tr align=center>\n";
echo " <td class=adm9>$row[name]</a></td>\n";
echo " <td class=adm9 align=left>$row[title]</a></td>\n";
printf(" <td class=adm9>%s</a></td>\n",($row[closed]==1)?"No":"Yes");
printf(" <td class=adm9>%s</a></td>\n",($row[multi] != 1)?"Yes":"No");
echo " <td class=adm9>$reg/$row[total]</td>\n";
echo " <td class=adm9>\n<b>";
echo " <a href=\"../lab.php?labID=$row[id]\">View</a> \n";
echo " <a href=\"$SCRIPT_NAME?edit=$row[id]\">Edit</a> \n";
echo " <a href=\"mod.php?labID=$row[id]\">Audit</a> \n";
$nn = urlencode("$row[title] ($row[name])");
echo " <a href=\"$SCRIPT_NAME?del=$row[id]&name=$nn&sure=1\"";
echo "onClick=\"return confirm('Are you sure you want to delete " . $row[name] . "?');\">Delete</a></td>\n";
echo "</tr>\n";
}
}
else
die("<p class=err0><b>Error! Could not fetch event list: " . mysql_error() . "</p>\n");
}
?>
</table>
</form>
</center>
</body>
</html>