index.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Template (front controller in MVC pattern) used for distpaching to the controllers depend on the current action
  5. * @author Christian Fasanando <christian1827@gmail.com>
  6. * @author Carlos Vargas (link to attendance tool )<litox84@gmail.com>
  7. * @package chamilo.attendance
  8. */
  9. // name of the language file that needs to be included
  10. $language_file = array ('userInfo', 'admin');
  11. // including files
  12. require_once '../inc/global.inc.php';
  13. require_once api_get_path(LIBRARY_PATH).'attendance.lib.php';
  14. require_once api_get_path(LIBRARY_PATH).'app_view.php';
  15. require_once 'attendance_controller.php';
  16. require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
  17. require_once api_get_path(LIBRARY_PATH).'course.lib.php';
  18. require_once api_get_path(LIBRARY_PATH).'sortabletable.class.php';
  19. require_once api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
  20. require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php';
  21. // current section
  22. $this_section = SECTION_COURSES;
  23. // protect a course script
  24. api_protect_course_script(true);
  25. // defining constants and variables
  26. $calendar_id = '';
  27. if (isset($_GET['calendar_id'])) {
  28. $calendar_id = intval($_GET['calendar_id']);
  29. }
  30. // get actions
  31. $actions = array('attendance_list', 'attendance_sheet_list', 'attendance_sheet_add', 'attendance_add', 'attendance_edit', 'attendance_delete', 'attendance_delete_select');
  32. $actions_calendar = array('calendar_list', 'calendar_add', 'calendar_edit', 'calendar_delete', 'calendar_all_delete');
  33. $action = 'attendance_list';
  34. if (isset($_GET['action']) && (in_array($_GET['action'],$actions) || in_array($_GET['action'],$actions_calendar))) {
  35. $action = $_GET['action'];
  36. }
  37. // get attendance id
  38. $attendance_id = 0;
  39. if (isset($_GET['attendance_id'])) {
  40. $attendance_id = intval($_GET['attendance_id']);
  41. }
  42. // instance object attendance for using like library here
  43. $attendance = new Attendance();
  44. // attendance controller object
  45. $attendance_controller = new AttendanceController();
  46. if (!empty($attendance_id)) {
  47. // attendance data by id
  48. $attendance_data = $attendance->get_attendance_by_id($attendance_id);
  49. }
  50. $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/jquery.js" type="text/javascript" language="javascript"></script>';
  51. $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/thickbox.js" type="text/javascript" language="javascript"></script>';
  52. $htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/thickbox.css" type="text/css" media="projection, screen">';
  53. $htmlHeadXtra[] = '<script language="javascript">
  54. $(function() {
  55. $("table th img").click(function() {
  56. var col_id = this.id;
  57. var col_split = col_id.split("_");
  58. var calendar_id = col_split[2];
  59. var class_img = $(this).attr("class");
  60. if (class_img == "img_unlock") {
  61. $("#checkbox_head_"+calendar_id).attr("disabled",true);
  62. $(".row_odd td.checkboxes_col_"+calendar_id).css({"background-color":"#F2F2F2"});
  63. $(".row_even td.checkboxes_col_"+calendar_id).css({"background-color":"#FFF"});
  64. $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("disabled",true);
  65. $(this).attr("src","'.api_get_path(WEB_CODE_PATH).'img/lock.gif");
  66. $(this).attr("class","img_lock");
  67. $("#hidden_input_"+calendar_id).attr("value","");
  68. $("#hidden_input_"+calendar_id).attr("disabled",true);
  69. return false;
  70. } else {
  71. $("#checkbox_head_"+calendar_id).attr("disabled",false);
  72. $(".checkboxes_col_"+calendar_id).css({"background-color":"#e1e1e1"});
  73. $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("disabled",false);
  74. $(this).attr("src","'.api_get_path(WEB_CODE_PATH).'img/unlock.gif");
  75. $(this).attr("class","img_unlock");
  76. $("#hidden_input_"+calendar_id).attr("disabled",false);
  77. $("#hidden_input_"+calendar_id).attr("value",calendar_id);
  78. return false;
  79. }
  80. });
  81. $("table th input:checkbox").click(function() {
  82. var col_id = this.id;
  83. var col_split = col_id.split("_");
  84. var calendar_id = col_split[2];
  85. if ($("#"+col_id).is(":checked")) {
  86. $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("checked",true);
  87. } else {
  88. $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("checked",false);
  89. }
  90. });
  91. $(".attendance-sheet-content .row_odd, .attendance-sheet-content .row_even").mouseover(function() {
  92. $(".row_odd").css({"background-color":"#F2F2F2"});
  93. $(".row_even").css({"background-color":"#FFF"});
  94. });
  95. $(".attendance-sheet-content .row_odd, .attendance-sheet-content .row_even").mouseout(function() {
  96. $(".row_odd").css({"background-color":"#F2F2F2"});
  97. $(".row_even").css({"background-color":"#FFF"});
  98. });
  99. $(".advanced_parameters").click(function() {
  100. if ($("#id_qualify").css("display") == "none") {
  101. $("#id_qualify").css("display","block");
  102. $("#img_plus_and_minus").html(\'&nbsp;'.Display::return_icon('div_hide.gif',get_lang('Hide'),array('style'=>'vertical-align:middle')).'&nbsp;'.get_lang('AdvancedParameters').'\');
  103. } else {
  104. $("#id_qualify").css("display","none");
  105. $("#img_plus_and_minus").html(\'&nbsp;'.Display::return_icon('div_show.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).'&nbsp;'.get_lang('AdvancedParameters').'\');
  106. }
  107. });
  108. });
  109. </script>';
  110. // interbreadcrumbs
  111. if (!empty($_GET['gradebook']) && $_GET['gradebook']=='view' ) {
  112. $_SESSION['gradebook']=Security::remove_XSS($_GET['gradebook']);
  113. $gradebook= $_SESSION['gradebook'];
  114. } elseif (empty($_GET['gradebook'])) {
  115. unset($_SESSION['gradebook']);
  116. $gradebook= '';
  117. }
  118. $param_gradebook = '';
  119. if (isset($_SESSION['gradebook'])) {
  120. $param_gradebook = '&gradebook='.$gradebook;
  121. }
  122. $student_param = '';
  123. if (api_is_drh() && isset($_GET['student_id'])) {
  124. $student_id = intval($_GET['student_id']);
  125. $student_param = '&student_id='.$student_id;
  126. $student_info = api_get_user_info($student_id);
  127. $student_name = api_get_person_name($student_info['firstname'],$student_info['lastname']);
  128. $interbreadcrumb[] = array ('url' => '/main/mySpace/myStudents.php?student='.$student_id, 'name' => $student_name);
  129. }
  130. if (!empty($gradebook)) {
  131. $interbreadcrumb[] = array ('url' => '/main/gradebook/index.php', 'name' => get_lang('ToolGradebook'));
  132. }
  133. $interbreadcrumb[] = array ('url' => 'index.php?action=attendance_list'.$param_gradebook.$student_param, 'name' => get_lang('ToolAttendance'));
  134. if($action == 'attendance_add') $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('CreateANewAttendance'));
  135. if($action == 'attendance_edit') $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('Edit'));
  136. if($action == 'attendance_sheet_list' || $action == 'attendance_sheet_add') $interbreadcrumb[] = array ('url' => '#', 'name' => $attendance_data['name']);
  137. if($action == 'calendar_list' || $action == 'calendar_edit' || $action == 'calendar_delete' || $action == 'calendar_all_delete') {
  138. $interbreadcrumb[] = array ('url' => 'index.php?'.api_get_cidreq().'&action=attendance_sheet_list&attendance_id='.$attendance_id.$param_gradebook, 'name' => $attendance_data['name']);
  139. $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('AttendanceCalendar'));
  140. }
  141. if($action == 'calendar_add') {
  142. $interbreadcrumb[] = array ('url' => 'index.php?'.api_get_cidreq().'&action=attendance_sheet_list&attendance_id='.$attendance_id.$param_gradebook, 'name' => $attendance_data['name']);
  143. $interbreadcrumb[] = array ('url' => '#', 'name' => get_lang('AddDateAndTime'));
  144. }
  145. // delete selected attendance
  146. if (isset($_POST['action']) && $_POST['action'] == 'attendance_delete_select') {
  147. $attendance_controller->attendance_delete($_POST['id']);
  148. }
  149. // distpacher actions to controller
  150. switch ($action) {
  151. case 'attendance_list' : $attendance_controller->attendance_list();
  152. break;
  153. case 'attendance_add' : $attendance_controller->attendance_add();
  154. break;
  155. case 'attendance_edit' : $attendance_controller->attendance_edit($attendance_id);
  156. break;
  157. case 'attendance_delete' : $attendance_controller->attendance_delete($attendance_id);
  158. break;
  159. case 'attendance_sheet_list' : $attendance_controller->attendance_sheet($action, $attendance_id, $student_id);
  160. break;
  161. case 'attendance_sheet_add' : $attendance_controller->attendance_sheet($action, $attendance_id);
  162. break;
  163. case 'calendar_list' :
  164. case 'calendar_add' :
  165. case 'calendar_edit' :
  166. case 'calendar_all_delete' :
  167. case 'calendar_delete' : $attendance_controller->attendance_calendar($action, $attendance_id, $calendar_id);
  168. break;
  169. default : $attendance_controller->attendance_list();
  170. }
  171. ?>