2009-09-09 00:26:12 +00:00
< ?
/*
This file is part of the 'Science Fair In A Box' project
SFIAB Website : http :// www . sfiab . ca
Copyright ( C ) 2005 Sci - Tech Ontario Inc < info @ scitechontario . org >
Copyright ( C ) 2005 James Grant < james @ lightbox . org >
Copyright ( C ) 2009 David Grant < dave @ lightbox . org >
This program is free software ; you can redistribute it and / or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation , version 2.
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; see the file COPYING . If not , write to
the Free Software Foundation , Inc . , 59 Temple Place - Suite 330 ,
Boston , MA 02111 - 1307 , USA .
*/
?>
< ?
require_once ( 'common.inc.php' );
require_once ( 'user.inc.php' );
require_once ( 'judge.inc.php' );
2009-09-26 20:39:52 +00:00
/* Sort out who we're editting */
if ( $_POST [ 'users_id' ])
$eid = intval ( $_POST [ 'users_id' ]); /* From a save form */
else if ( array_key_exists ( 'embed_edit_id' , $_SESSION ))
$eid = $_SESSION [ 'embed_edit_id' ]; /* From the embedded editor */
else
$eid = $_SESSION [ 'users_id' ]; /* Regular entry */
if ( $eid != $_SESSION [ 'users_id' ]) {
/* Not editing ourself , we had better be
* a committee member */
user_auth_required ( 'committee' , 'admin' );
2009-09-09 00:26:12 +00:00
}
2009-09-26 20:39:52 +00:00
$u = user_load ( $eid );
2009-09-09 00:26:12 +00:00
$times = array ();
/* Load the judging rounds */
2024-12-09 06:06:15 +00:00
$q = $pdo -> prepare ( " SELECT date,starttime,endtime,name FROM judges_timeslots WHERE round_id='0' AND year=' { $config [ 'FAIRYEAR' ] } ' ORDER BY starttime,type " );
$q2 -> execute ();
2009-09-09 00:26:12 +00:00
$x = 0 ;
2024-12-09 06:06:15 +00:00
while ( $r = $q -> fetch ( PDO :: FETCH_OBJ )) {
2009-09-09 00:26:12 +00:00
$found = false ;
foreach ( $times as $xx => $t ) {
if ( $t [ 'date' ] == $r -> date && $t [ 'starttime' ] == $r -> starttime && $t [ 'endtime' ] == $r -> endtime ) {
$times [ $xx ][ 'name' ] .= " , { $r -> name } " ;
$found = true ;
break ;
}
}
if ( ! $found ) {
$times [ $x ] = array ( 'date' => $r -> date ,
'starttime' => $r -> starttime ,
'endtime' => $r -> endtime ,
'name' => $r -> name );
$x ++ ;
}
}
2009-09-26 20:39:52 +00:00
switch ( $_GET [ 'action' ]) {
case 'save' :
2024-12-09 06:06:15 +00:00
$stmt = $pdo -> prepare ( " DELETE FROM judges_availability WHERE users_id=' { $u [ 'id' ] } ' " );
$stmt -> execute ();
2009-09-09 00:26:12 +00:00
if ( is_array ( $_POST [ 'time' ]) ) {
foreach ( $_POST [ 'time' ] as $x ) {
if ( trim ( $times [ $x ][ 'starttime' ]) == '' ) continue ;
2024-12-09 06:06:15 +00:00
$stmt = $pdo -> prepare ( " INSERT INTO judges_availability (users_id, `date`,`start`,`end`)
2009-09-09 00:26:12 +00:00
VALUES ( '{$u[' id ']}' ,
'{$times[$x][' date ']}' ,
'{$times[$x][' starttime ']}' , '{$times[$x][' endtime ']}' ) " );
2024-12-09 06:06:15 +00:00
$stmt -> execute ();
2009-09-09 00:26:12 +00:00
}
}
2009-09-26 20:39:52 +00:00
happy_ ( " Time Availability preferences successfully saved " );
exit ;
2009-09-09 00:26:12 +00:00
}
if ( $_SESSION [ 'embed' ] == true ) {
display_messages ();
2009-09-26 20:39:52 +00:00
echo " <h4> " . i18n ( 'Time Availability' ) . " </h4> " ;
2009-09-09 00:26:12 +00:00
echo " <br /> " ;
} else {
//send the header
send_header ( 'Time Availability' ,
array ( 'Judge Registration' => 'judge_main.php' )
);
}
2009-09-26 20:39:52 +00:00
?>
< script type = " text/javascript " >
function judgeavailability_save ()
{
$ ( " #debug " ) . load ( " <?= $config['SFIABDIRECTORY'] ?>/judge_availability.php?action=save " , $ ( " #judgeavailability_form " ) . serializeArray ());
return false ;
}
</ script >
< ?
2009-09-09 00:26:12 +00:00
judge_status_update ( $u );
if ( $_SESSION [ 'embed' ] != true ) {
//output the current status
$newstatus = judge_status_availability ( $u );
if ( $newstatus != 'complete' )
echo error ( i18n ( " Time Availability Preferences Incomplete " ));
else
echo happy ( i18n ( " Time Availability Preferences Complete " ));
}
2009-09-26 20:39:52 +00:00
?>
< form id = " judgeavailability_form " >
< input type = " hidden " name = " users_id " value = " <?= $u['id'] ?> " />
< br />
< table >
< ?
2009-09-09 00:26:12 +00:00
/* Get all their available times */
2024-12-09 06:06:15 +00:00
$q = $pdo -> prepare ( " SELECT * FROM judges_availability WHERE users_id= \" { $u [ 'id' ] } \" ORDER BY `start` " );
$q -> execute ();
2009-09-09 00:26:12 +00:00
$sel = array ();
2024-12-09 06:06:15 +00:00
while ( $r = $q -> fetch ( PDO :: FETCH_OBJ )) {
2009-09-09 00:26:12 +00:00
foreach ( $times as $x => $t ) {
if ( $r -> start == $t [ 'starttime' ] && $r -> end == $t [ 'endtime' ] && $r -> date == $t [ 'date' ]) {
$sel [ $x ] = true ;
}
}
}
2009-12-14 20:34:03 +00:00
if ( count ( $times ) > 1 ) {
echo i18n ( " Please Note, you will be scheduled to judge in ALL (not just one) judging timeslots you select. " );
echo '<br /><br />' ;
}
2009-09-09 00:26:12 +00:00
foreach ( $times as $x => $t ) {
$ch = $sel [ $x ] == true ? 'checked="checked"' : '' ;
echo " <tr><td> " ;
echo " <input onclick= \" checkboxclicked(this) \" $ch type= \" checkbox \" name= \" time[] \" value= \" $x\ " /> " ;
$st = substr ( $t [ 'starttime' ], 0 , 5 );
$end = substr ( $t [ 'endtime' ], 0 , 5 );
echo " </td><td><b> { $times [ $x ][ 'date' ] } $st - $end </b></td></tr> " ;
echo " <tr><td></td><td><p> { $t [ 'name' ] } </td> " ;
echo " </tr> " ;
}
2009-09-26 20:39:52 +00:00
?>
</ table >
< br />
< br />
2009-09-09 00:26:12 +00:00
2009-09-26 20:39:52 +00:00
< input type = " submit " onclick = " judgeavailability_save();return false; " value = " <?=i18n( " Save Time Availability Preferences " )?> " />
</ form >
2009-09-09 00:26:12 +00:00
2009-09-26 20:39:52 +00:00
< ?
2009-09-09 00:26:12 +00:00
if ( $_SESSION [ 'embed' ] != true ) send_footer ();
?>