2010-06-15 21:43:21 +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 >
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 ( " common.inc.php " );
2010-06-15 21:52:03 +00:00
require_once ( " schedule.inc.php " );
2010-06-15 21:43:21 +00:00
if ( $_SESSION [ 'schoolid' ] && $_SESSION [ 'schoolaccesscode' ]){
// we're logged in, make sure the school is good
$q = mysql_query ( " SELECT * FROM schools WHERE id=' " . $_SESSION [ 'schoolid' ] . " ' AND accesscode=' " . $_SESSION [ 'schoolaccesscode' ] . " ' " );
echo mysql_error ();
$school = mysql_fetch_object ( $q );
if ( $school ) {
$ROWHEIGHT = 20 ;
$BORDERSIZE = 2 ;
if ( $_GET [ 'action' ] == " loadschedule " ) {
$date = $_POST [ 'date' ];
//cant change this
$q = mysql_query ( " SELECT MIN(hour) AS minhour, MAX(hour) AS maxhour, CEIL(MAX(hour)+duration/60) AS maxfinish FROM schedule WHERE conferences_id=' { $conference [ 'id' ] } ' AND date=' { $date } ' " );
$parameters = mysql_fetch_object ( $q );
$starthour = $parameters -> minhour ;
$endhour = $parameters -> maxfinish ;
//do some sanity checks
if ( $starthour < 0 || $starthour > 24 ) $starthour = 8 ;
if ( $endhour < $starthour )
$endhour = $starthour + 10 ;
if ( $endhour < 0 || $endhour > 24 ) $endhour = 15 ;
//minute increment
$increment = 15 ;
if ( ! eregi ( " [0-9] { 4}-[0-9] { 2}-[0-9] { 2} " , $date )) {
echo " Invalid date " ;
exit ;
}
echo " <h3> " . i18n ( " Schedule for %1 " , array ( format_date ( $date ))) . " </h3> " ;
$q = mysql_query ( " SELECT * FROM locations WHERE conferences_id=' { $conference [ 'id' ] } ' ORDER BY name " );
while ( $r = mysql_fetch_object ( $q )) {
$locations [ $r -> id ] = $r -> name ;
}
if ( ! count ( $locations )) {
echo error ( i18n ( " There are no locations defined. " ));
exit ;
}
echo " <table class= \" schedule \" id= \" schedule \" > \n " ;
echo " <tr> " ;
echo " <th style= \" width: 50px; \" > </th> " ;
foreach ( $locations AS $id => $name ) {
echo " <th> $name </th> \n " ;
}
for ( $h = $starthour ; $h < $endhour ; $h ++ ) {
for ( $m = 0 ; $m < 60 ; $m += $increment ) {
echo " <tr> " ;
echo " <td class= \" scheduletime \" > " ;
if ( $m == 0 ) {
echo format_time ( " $h : $m " );
}
echo " </td> " ;
foreach ( $locations AS $id => $name ) {
echo " <td id= \" { $h } _ { $m } _ { $id } \" > " ;
echo " </td> " ;
}
echo " </tr> " ;
}
}
echo " </table> \n " ;
$js = " var eventdivs=new Array(); \n " ;
//now make all our DIV's for the events that are scheduled in the database
$x = 0 ;
//they will be moved by javascript after the fact
$q = mysql_query ( " SELECT schedule.*, events.name, events.eventtype FROM schedule JOIN events ON schedule.events_id=events.id WHERE schedule.conferences_id=' { $conference [ 'id' ] } ' AND date=' { $date } ' " );
echo mysql_error ();
while ( $r = mysql_fetch_object ( $q )) {
echo " <div class= \" scheduleevent scheduleevent_ { $r -> eventtype } \" id= \" event_ { $r -> id } \" onclick= \" viewEvent( $r->id ) \" > " ;
echo " <span class= \" scheduleevent_title \" > " ;
echo $r -> title ;
echo " </span> " ;
echo " <br /> " ;
$starttime = strtotime ( $r -> hour . " : " . $r -> minute );
$endtime = $starttime + $r -> duration * 60 ;
echo format_time ( $starttime );
echo " to " ;
echo format_time ( $endtime );
if ( $r -> eventtype == " scienceolympic " ) {
echo " <br /> " ;
echo i18n ( " Capacity " ) . " : " ;
2010-06-15 21:52:03 +00:00
$regteams = getNumRegistrations ( $r -> id );
2010-06-15 21:43:21 +00:00
$maxteams = $r -> somaxteams ;
echo i18n ( " %1 of %2 " , array ( $regteams , $maxteams ));
}
echo " </div> " ;
$js .= " eventdivs[ $r->id ]= { hour: $r->hour ,minute: $r->minute ,location: $r->locations_id ,duration: $r->duration }; \n " ;
$x ++ ;
}
echo " <script type= \" text/javascript \" > \n " ;
echo $js ;
echo " </script> " ;
}
else if ( $_GET [ 'action' ] == " loadevent " ) {
}
else if ( $_GET [ 'action' ] == " saveevent " ) {
}
else {
send_header ( " Event Registration " ,
array ( 'Committee Main' => 'committee_main.php' ,
'Administration' => 'admin/index.php' ,
'Events & Scheduling' => 'admin/eventsscheduling.php' ),
" events_scheduling " );
echo " <br /> " ;
?>
< script type = " text/javascript " >
$ ( document ) . ready ( function () {
$ ( " .date " ) . datepicker ({ dateFormat : 'yy-mm-dd' });
changeDate ();
/* Setup the editor dialog */
$ ( " #event_dialog " ) . dialog ({
bgiframe : true , autoOpen : false ,
modal : true , resizable : false ,
draggable : false ,
buttons : {
" <?=i18n('Close')?> " : function () {
$ ( this ) . dialog ( " close " );
2010-06-15 21:52:03 +00:00
changeDate ();
2010-06-15 21:43:21 +00:00
}
}
});
$ ( window ) . resize ( function () {
placeEvents ();
}
);
});
function changeDate () {
$ ( " #schedulediv " ) . load ( " schoolschedule.php?action=loadschedule " ,{ date : $ ( " #date " ) . val ()}, function () {
placeEvents ();
});
}
function placeEvents () {
$ ( '.scheduleevent' ) . each ( function ( idx , item ) {
var eventid = item . id . substr ( 6 );
var eventobj = eventdivs [ eventid ];
var tablecellid = eventobj . hour + '_' + eventobj . minute + '_' + eventobj . location ;
if ( $ ( " # " + tablecellid ) . length ) {
var eheight = (( eventobj . duration / 15 ) *< ? = $ROWHEIGHT ?> )-<? echo $BORDERSIZE*2; ?>;
var ewidth = $ ( " # " + tablecellid ) . width () -< ? echo $BORDERSIZE ; ?> ;
var p = $ ( " # " + tablecellid ) . offset ();
$ ( " # " + item . id ) . css ( p );
$ ( " # " + item . id ) . show ();
$ ( " # " + item . id ) . height ( eheight );
$ ( " # " + item . id ) . width ( ewidth );
}
else {
$ ( " # " + item . id ) . hide ();
}
}
);
}
var scheduleId ;
function viewEvent ( id ) {
scheduleId = id ;
if ( id ) {
var eventobj = eventdivs [ id ];
$ ( " #event_dialog " ) . dialog ( 'option' , 'title' , 'Event Information' );
$ ( " #event_dialog " ) . dialog ( 'option' , 'width' , 600 );
$ ( " #event_dialog " ) . dialog ( 'option' , 'height' , 400 );
$ ( " #event_dialog " ) . dialog ( 'open' );
$ ( " #event_tabs " ) . tabs ( 'select' , 0 );
update_tab_summary ();
}
}
function saveEvent () {
var o = $ ( " #edit_event_form " ) . serializeArray ();
//alert(o);
$ ( " #debug " ) . load ( " schoolschedule.php?action=saveevent " , o , function () {
changeDate ();
});
}
</ script >
< ?
$q = mysql_query ( " SELECT DISTINCT(date) AS date FROM schedule WHERE conferences_id=' { $conference [ 'id' ] } ' ORDER BY date " );
$dates = array ();
while ( $r = mysql_fetch_object ( $q )) {
$dates [] = $r -> date ;
}
if ( count ( $dates ))
$editdate = $dates [ 0 ];
else
list ( $editdate , $bla ) = explode ( " " , $config [ 'dates' ][ 'fairdate' ]);
echo " <form method= \" post \" > \n " ;
echo i18n ( " Schedule date " ) . " : " ;
echo " <select id= \" date \" name= \" date \" onchange= \" changeDate() \" > " ;
foreach ( $dates AS $d ) {
echo " <option value= \" $d\ " > " .format_date( $d ). " </ option > \n " ;
}
echo " </select> " ;
echo " </form> \n " ;
?>
< hr />
< div id = " schedulediv " >
</ div >
< div id = " event_dialog " >
< ? include " schoolschedule_event_dialog.php " ; ?>
</ div >
< ?
send_footer ();
}
}
}
?>