/teacher/assigned_xy.php

https://github.com/xmarcosx/enroll · PHP · 289 lines · 268 code · 0 blank · 21 comment · 27 complexity · 552ee2f719322d4b11d450f7fb1f5ef3 MD5 · raw file

  1. <?php
  2. session_start();
  3. //Not logged in or doesn't have the teacher role
  4. if (!isset($_SESSION['username']) ||
  5. $_SESSION['login']!=true ||
  6. $_SESSION['student'])
  7. {
  8. header("Location: ../login.html");
  9. }
  10. include_once '../admin/settings.php';
  11. //Connects to MySQL and Selects Database
  12. $con=mysql_connect($host,$db_username,$db_password);
  13. if (!$con)
  14. die('Could not connect: ' . mysql_error());
  15. //Select DB
  16. mysql_select_db($db, $con);
  17. $master_username=$_SESSION['username'];
  18. $ghostuser=$_SESSION['ghostuser'];
  19. if(!is_null($ghostuser))
  20. $username=$_SESSION['ghostuser'];
  21. else
  22. $username=$_SESSION['username'];
  23. //Internal user id
  24. $userid=NULL;
  25. $get_userid_result=mysql_query("SELECT id FROM users WHERE username=\"$username\"") or die(mysql_error());
  26. $get_userid_array=mysql_fetch_array($get_userid_result);
  27. $userid=$get_userid_array['id'];
  28. //Grab all dates xy is offered
  29. $get_dates_result=mysql_query("SELECT id,date FROM course_schedule WHERE x=1 OR y=1") or die(mysql_error());
  30. //Get all xy assignments
  31. $get_xy_assignments_result=mysql_query(
  32. "SELECT course_schedule.date, course_schedule.id AS dateid, courses.name, assignments.notes,
  33. assignments.xy_preferred_block AS preferred_block,assignments.final
  34. FROM `course_schedule`
  35. LEFT JOIN `assignments` on assignments.xy_date_id = course_schedule.id
  36. LEFT JOIN `courses` on assignments.course_id = courses.id
  37. WHERE (x=1 OR y=1) AND courses.teacher_id=$userid") or die(mysql_error());
  38. //Array of all dates with assignments if they exist
  39. $xy_assignments_dates=array();
  40. //Reset to first element in array
  41. mysql_data_seek($xyResult,0);
  42. //Fill array with arrays that consist of existing xy assignments
  43. while($row=mysql_fetch_array($get_xy_assignments_result)){
  44. $xy_assignments_dates[]=$row;
  45. }
  46. //Grab all of the teacher's xy repository
  47. $get_xy_repository_result=mysql_query("SELECT * FROM courses WHERE teacher_id=$userid") or die(mysql_error());
  48. //Close MySQL Connection, all necessary queries have been run
  49. mysql_close($con);
  50. ?>
  51. <!DOCTYPE html>
  52. <html lang="en">
  53. <head>
  54. <meta charset="utf-8">
  55. <title>Enroll: <?php echo $school_name; ?></title>
  56. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  57. <meta name="description" content="Flexible Scheduling for Today's Classroom">
  58. <meta name="author" content="Marcos Alcozer">
  59. <meta name="keywords" content="Education, Scheduling">
  60. <!-- CSS -->
  61. <style>
  62. body {
  63. padding-top: 60px; /** Clear the top bar **/
  64. }
  65. </style>
  66. <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
  67. <link href="../css/admin.css" rel="stylesheet">
  68. <!-- JQUERY -->
  69. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  70. <!-- BOOTSTRAP -->
  71. <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
  72. <!-- FORM VALIDATION USING JQUERY -->
  73. <!-- http://alittlecode.com/jquery-form-validation-with-styles-from-twitter-bootstrap/ -->
  74. <script src="../js/jquery.validate.min.js"></script>
  75. <!-- AJAX UPLOAD BY BRYAN GENTRY -->
  76. <!-- http://bryangentry.us/ajax-upload-with-javascript-and-php-upload-an-image-and-display-a-preview/ -->
  77. <script src="../js/ajaxupload.js"></script>
  78. <!-- <script src="../js/validate.js"></script> -->
  79. <!-- INHOUSE JAVASCRIPT -->
  80. <script src="../js/teacher.js"></script>
  81. <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
  82. <!--[if lt IE 9]>
  83. <script src="../js/html5shiv.js"></script>
  84. <![endif]-->
  85. </head>
  86. <body>
  87. <?php include_once("../admin/analyticstracking.php") ?>
  88. <!-- TOP MENU -->
  89. <div class="navbar navbar-inverse navbar-fixed-top">
  90. <div class="navbar-inner">
  91. <div class="container">
  92. <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
  93. <span class="icon-bar"></span>
  94. <span class="icon-bar"></span>
  95. <span class="icon-bar"></span>
  96. </button>
  97. <a class="brand appname" href="#">Enroll<img src='../img/beta-icon.png' style="vertical-align:text-top;"/></a>
  98. <div class="nav-collapse collapse">
  99. <ul class="nav">
  100. <li><a href="agenda.php">Agenda</a></li>
  101. <li class="dropdown active">
  102. <a href="#" class="dropdown-toggle" data-toggle="dropdown">X/Y <b class="caret"></b></a>
  103. <ul class="dropdown-menu">
  104. <li><a href="assigned_xy.php">Assign Course</a></li>
  105. <li><a href="repository_xy.php">Course Repository</a></li>
  106. <li><a href="preenroll_xy.php">Enroll Students</a></li>
  107. </ul>
  108. </li>
  109. <li class="dropdown">
  110. <a href="#" class="dropdown-toggle" data-toggle="dropdown">Colloquium <b class="caret"></b></a>
  111. <ul class="dropdown-menu">
  112. <li><a href="assigned_col.php">Assign Course</a></li>
  113. <li><a href="repository_col.php">Course Repository</a></li>
  114. <li class="dropdown-submenu">
  115. <a tabindex="-1" href="#">Enroll Students</a>
  116. <ul class="dropdown-menu">
  117. <li><a href="preenroll_col.php?semester=1">Semester 1</a></li>
  118. <li><a href="preenroll_col.php?semester=2">Semester 2</a></li>
  119. </ul>
  120. </li>
  121. </ul>
  122. </li>
  123. </ul>
  124. <ul class="nav pull-right">
  125. <?php if($_SESSION['admin'] && $_SESSION['teacher']){
  126. echo "<li><a href='../admin'>Admin Panel</a></li>";
  127. }
  128. if(!is_null($ghostuser)){ ?>
  129. <li><a href="javascript:void(0)" onclick='ghost_user("<?php echo $master_username; ?>","admin");'><?php echo $master_username; ?></a></li>
  130. <?php
  131. }
  132. if(!isset($_SESSION['username']))
  133. echo "<li class='login-button'><a href='../login.html' style='color:#FFFFFF'>Login</a></li>";
  134. else
  135. echo "<li class='login-button'><a href='../logout.php' style='color:#FFFFFF'>Logout</a></li>";
  136. ?>
  137. </ul>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="container">
  143. <!-- ASSIGNMENT MODULE -->
  144. <h2 id="assignLabel">Assign Course</h2>
  145. <hr />
  146. <div id="assign">
  147. <!-- SCROLLING MONTHS ALONG TOP -->
  148. <i id="previous" class="icon-chevron-left"></i>
  149. <div id="month"></div>
  150. <i id="next" class="icon-chevron-right"></i>
  151. <hr />
  152. <div class="controls controls-row">
  153. <?php
  154. //Array filled with names of the month
  155. $months = array('January','February','March','April','May','June','July','August','September','October','November','December');
  156. //This for loop creates a hidden div for each month with the respective xy dates
  157. foreach ($months as $month) {
  158. echo "<div id='$month' class='selectedMonth' hidden>";
  159. //Make a form for every date within the selected month
  160. mysql_data_seek($get_dates_result,0);
  161. while($selected_date=mysql_fetch_array($get_dates_result)){
  162. $date = $selected_date['date']; //ie. YYYY-MM-DD
  163. $xyAssigned=false;
  164. $xyName=NULL;
  165. $xyNotes=NULL;
  166. $xyPreferredBlock=NULL;
  167. $xyDateID=$selected_date['id'];
  168. $xyMonth = date('F', strtotime($date)); //ie. January
  169. $xyFinal=0;
  170. //If the month that is selected matches the month of the variable in the array
  171. if(strcmp($month, $xyMonth) == 0){
  172. //Check to see if there is an xy assigned to this date
  173. //Traverse xy assignments result
  174. mysql_data_seek($get_xy_assignments_result,0);
  175. while($xy_assignment=mysql_fetch_array($get_xy_assignments_result)){
  176. if(strcmp($date,$xy_assignment['date']) == 0){
  177. //XY is assigned, set other variables
  178. $xyAssigned=true;
  179. $xyName=$xy_assignment['name'];
  180. $xyNotes=$xy_assignment['notes'];
  181. $xyPreferredBlock=$xy_assignment['preferred_block'];
  182. $xyDateID=$xy_assignment['dateid'];
  183. $xyFinal=$xy_assignment['final'];
  184. break;
  185. }
  186. }
  187. ?>
  188. <!-- Still in the for loop for a date that matches the current month we are traversing -->
  189. <div class="span5">
  190. <form class='form-horizontal' id='selection<?php echo $xyDateID; ?>' enctype='multipart/form-data'>
  191. <input name="teacher_id" type="hidden" value="<?php echo $userid; ?>" />
  192. <input name="existing" type="hidden" value='<?php if($xyAssigned){ echo "true"; }else{ echo "false"; } ?>' />
  193. <input name="date_id" type="hidden" value="<?php echo $xyDateID; ?>" />
  194. <div class="control-group">
  195. <!-- Displays date as Wednesday the 28th -->
  196. <label class="control-label"><strong><?php echo date('l \t\h\e jS', strtotime($date)); ?></strong></label>
  197. <div class="controls"></div>
  198. </div>
  199. <div class="control-group">
  200. <label class="control-label">Course Name:</label>
  201. <!-- CHOOSE WHICH XY IS ASSIGNED TO THIS DATE -->
  202. <div class="controls">
  203. <?php
  204. $courseName;
  205. //If there is already an XY assigned to this date
  206. echo "<select name='xy_id' id='name$xyDateID' class='selectedXYDate' required";
  207. if($xyFinal==1){ echo " disabled "; }
  208. echo ">";
  209. echo "<option value=''></option>";
  210. //Traverse through teacher's XY repository
  211. mysql_data_seek($get_xy_repository_result,0);
  212. while($row = mysql_fetch_array($get_xy_repository_result)){
  213. echo "<option value=" . $row['id'];
  214. //Add selected attribute if current course is the one already assigned
  215. if(strcmp($xyName, $row['name']) == 0)
  216. echo " selected ";
  217. echo ">" . $row['name'] . "</option>";
  218. }
  219. ?>
  220. </select>
  221. </div>
  222. </div>
  223. <div class="control-group">
  224. <label class="control-label">Block Preference:</label>
  225. <div class="controls">
  226. <select name='blockpreference' id='preferred_block<?php echo $xyDateID; ?>' required <?php if($xyFinal==1){ echo " disabled "; } ?> >
  227. <option value=''></option>
  228. <?php
  229. if(strcmp($xyPreferredBlock, "x") == 0)
  230. echo '<option selected value="x">X</option>';
  231. else
  232. echo '<option value="x">X</option>';
  233. if(strcmp($xyPreferredBlock, "y") == 0)
  234. echo '<option selected value="y">Y</option>';
  235. else
  236. echo '<option value="y">Y</option>';
  237. if(strcmp($xyPreferredBlock, "xy") == 0)
  238. echo '<option selected value="xy">Span both X and Y</option>';
  239. else
  240. echo '<option value="xy">Span both X and Y</option>';
  241. ?>
  242. </select>
  243. </div>
  244. </div>
  245. <div class="control-group">
  246. <label class="control-label">Notes for programmer:</label>
  247. <div class="controls">
  248. <?php
  249. echo "<textarea name='notes' id='notes$xyDateID' rows='5'";
  250. if($xyFinal==1){ echo " disabled "; }
  251. echo ">";
  252. if($xyAssigned){ echo $xyNotes; }
  253. echo "</textarea>";
  254. ?>
  255. </div>
  256. </div>
  257. <div class="control-group">
  258. <div class="controls">
  259. <?php
  260. if($xyFinal==0){
  261. ?>
  262. <div><button class='btn' type='submit' onClick='assign_xy("<?php echo $xyDateID; ?>")' >Update</button></div>
  263. <?php if($xyAssigned){ ?>
  264. <div><em class='text-info'>Pending Approval</em></div>
  265. <?php } ?>
  266. <div id='status<?php echo $xyDateID; ?>'></div>
  267. <?php
  268. }
  269. else{
  270. ?>
  271. <div><em class='text-success'>Finalized, no changes possible.</em></div>
  272. <?php } ?>
  273. </div>
  274. </div>
  275. </form>
  276. </div>
  277. <?php
  278. }
  279. }
  280. echo "</div>";
  281. }
  282. ?>
  283. </div>
  284. </div>
  285. </div>
  286. </body>
  287. </html>