diff --git a/main/attendance/attendance_add.php b/main/attendance/attendance_add.php
index dda715d2f1..6c6b5086de 100755
--- a/main/attendance/attendance_add.php
+++ b/main/attendance/attendance_add.php
@@ -31,8 +31,8 @@ $form->applyFilter('title','html_filter');
$form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'TrainingDescription', 'Width' => '100%', 'Height' => '200'));
// Adavanced Parameters
-$form->addElement('html', '
');
-$form->addElement('html', '
');
+$form->addElement('html', '');
+$form->addElement('html', '
');
$form->addElement('html','');
// Qualify Attendance for gradebook option
diff --git a/main/attendance/attendance_controller.php b/main/attendance/attendance_controller.php
index 26b081f600..61f58b1b46 100755
--- a/main/attendance/attendance_controller.php
+++ b/main/attendance/attendance_controller.php
@@ -179,38 +179,17 @@
$data['next_attendance_calendar_id'] = $attendance->get_next_attendance_calendar_id($attendance_id);
if (strtoupper($_SERVER['REQUEST_METHOD']) == "POST") {
- $presences = array();
- $check_values = array();
- $users_present = array();
- if (isset($_POST['check_presence'])) {
- $presences = $_POST['check_presence'];
- $calendar_tmp = array();
- foreach ($presences as $presence) {
- $presence_split = explode('_',$presence);
- $calendar_id = $presence_split[1];
- $user_id = $presence_split[3];
- $calendar_tmp[] = $calendar_id;
- if (in_array($calendar_id, $calendar_tmp)) {
- $check_values[$calendar_id][] = $user_id;
+ if (isset($_POST['hidden_input'])) {
+ foreach ($_POST['hidden_input'] as $cal_id) {
+ $users_present = array();
+ if (isset($_POST['check_presence'][$cal_id])) {
+ $users_present = $_POST['check_presence'][$cal_id];
}
+ $affected_rows = $attendance->attendance_sheet_add($cal_id,$users_present,$attendance_id);
}
- // save when is present at least one user
- foreach ($check_values as $cal_id => $value) {
- $users_present = $value;
- $affected_rows = $attendance->attendance_sheet_add($cal_id,$users_present,$attendance_id);
- }
-
- } else {
- // save attendance done with all absents students
- if (isset($_POST['datetime_column'])) {
- foreach ($_POST['datetime_column'] as $key=>$date_time_col) {
- $cal_id = $key;
- $affected_rows = $attendance->attendance_sheet_add($cal_id,$users_present,$attendance_id);
- }
- }
- }
-
+ }
+
$data['users_in_course'] = $attendance->get_users_rel_course($attendance_id);
$data['attendant_calendar'] = $attendance->get_attendance_calendar($attendance_id);
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);
diff --git a/main/attendance/attendance_edit.php b/main/attendance/attendance_edit.php
index 7a75894b21..393876477a 100755
--- a/main/attendance/attendance_edit.php
+++ b/main/attendance/attendance_edit.php
@@ -33,14 +33,14 @@ $form->applyFilter('title','html_filter');
$form->add_html_editor('description', get_lang('Description'), false, false, array('ToolbarSet' => 'TrainingDescription', 'Width' => '100%', 'Height' => '200'));
// Adavanced Parameters
-$form->addElement('html', '
');
+$form->addElement('html', '
');
if (!empty($attendance_qualify_title) || !empty($attendance_weight)) {
- $form->addElement('html', '
');
+ $form->addElement('html', '
');
$form->addElement('html','
');
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),array('checked'=>'true','onclick'=>'javascript:if(this.checked==true){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}'));
$form -> addElement('html','
');
} else {
- $form->addElement('html', '
');
+ $form->addElement('html', '
');
$form->addElement('html','');
$form->addElement('checkbox', 'attendance_qualify_gradebook', '', get_lang('QualifyAttendanceGradebook'),'onclick="javascript:if(this.checked==true){document.getElementById(\'options_field\').style.display = \'block\';}else{document.getElementById(\'options_field\').style.display = \'none\';}"');
$form -> addElement('html','
');
diff --git a/main/attendance/attendance_sheet.php b/main/attendance/attendance_sheet.php
index 97a3f914e5..b3a7469965 100755
--- a/main/attendance/attendance_sheet.php
+++ b/main/attendance/attendance_sheet.php
@@ -34,7 +34,7 @@ if (api_is_allowed_to_edit(null, true)) {
- |
+ |
|
|
|
@@ -70,22 +70,27 @@ if (api_is_allowed_to_edit(null, true)) {
0 ) {
foreach ($attendant_calendar as $calendar) {
- //$datetime = explode(' ',$calendar['date_time']);
+
$date = $calendar['date'];
$time = $calendar['time'];
$datetime = $date.'
'.$time;
- $checked_date = '';
+
+ $img_lock = Display::return_icon('lock.gif',get_lang('DateLock'),array('class'=>'img_lock','id'=>'datetime_column_'.$calendar['id']));
if (!empty($calendar['done_attendance'])){
$datetime = ''.$date.'
'.$time.'';
- }
+ }
+ $disabled_check = 'disabled';
+ $input_hidden = '';
if ($next_attendance_calendar_id == $calendar['id']) {
- $checked_date = 'checked';
- }
- ?>
- '.$datetime.' ' ?> |
+ $input_hidden = '';
+ $disabled_check = '';
+ $img_lock = Display::return_icon('unlock.gif',get_lang('DateUnlock'),array('class'=>'img_unlock','id'=>'datetime_column_'.$calendar['id']));
+ }
+ ?>
+ '.$datetime.' '.$img_lock.' '.$input_hidden.' ' ?> |
-
+ |
|
@@ -116,7 +121,7 @@ if (api_is_allowed_to_edit(null, true)) {
$disabled = '';
}
?>
- /> |
+ /> |
@@ -143,13 +148,15 @@ if (api_is_allowed_to_edit(null, true)) {
// View for students
?>
-
+
+
+
@@ -159,15 +166,21 @@ if (api_is_allowed_to_edit(null, true)) {
|
+ | |
+
+ |
+
- | |
-
-
diff --git a/main/attendance/index.php b/main/attendance/index.php
index cb787fdf92..add8b61236 100644
--- a/main/attendance/index.php
+++ b/main/attendance/index.php
@@ -66,17 +66,45 @@ $htmlHeadXtra[] = '
$(function() {
- $("table th input:checkbox").click(function() {
+
+ $("table th img").click(function() {
+
var col_id = this.id;
var col_split = col_id.split("_");
var calendar_id = col_split[2];
- if ($("#"+col_id).is(":checked")) {
- $(".checkboxes_col_"+calendar_id).css({"background-color":"#e1e1e1"});
- $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("disabled",false);
- } else {
+ var class_img = $(this).attr("class");
+
+ if (class_img == "img_unlock") {
+ $("#checkbox_head_"+calendar_id).attr("disabled",true);
$(".row_odd td.checkboxes_col_"+calendar_id).css({"background-color":"#F2F2F2"});
$(".row_even td.checkboxes_col_"+calendar_id).css({"background-color":"#FFF"});
- $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("disabled",true);
+ $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("disabled",true);
+ $(this).attr("src","'.api_get_path(WEB_CODE_PATH).'img/lock.gif");
+ $(this).attr("class","img_lock");
+ $("#hidden_input_"+calendar_id).attr("value","");
+ $("#hidden_input_"+calendar_id).attr("disabled",true);
+ return false;
+ } else {
+ $("#checkbox_head_"+calendar_id).attr("disabled",false);
+ $(".checkboxes_col_"+calendar_id).css({"background-color":"#e1e1e1"});
+ $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("disabled",false);
+ $(this).attr("src","'.api_get_path(WEB_CODE_PATH).'img/unlock.gif");
+ $(this).attr("class","img_unlock");
+ $("#hidden_input_"+calendar_id).attr("disabled",false);
+ $("#hidden_input_"+calendar_id).attr("value",calendar_id);
+ return false;
+ }
+
+ });
+
+ $("table th input:checkbox").click(function() {
+ var col_id = this.id;
+ var col_split = col_id.split("_");
+ var calendar_id = col_split[2];
+ if ($("#"+col_id).is(":checked")) {
+ $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("checked",true);
+ } else {
+ $(".checkboxes_col_"+calendar_id+" input:checkbox").attr("checked",false);
}
});
diff --git a/main/inc/lib/attendance.lib.php b/main/inc/lib/attendance.lib.php
index 5806dca779..2a3a34bc1c 100755
--- a/main/inc/lib/attendance.lib.php
+++ b/main/inc/lib/attendance.lib.php
@@ -2,7 +2,7 @@
/* For licensing terms, see /license.txt */
/**
- * This file contains class used like library provides functions for attendance tool. It's also used like model to attendance_controller (MVC pattern)
+ * This file contains class used like library, provides functions for attendance tool. It's also used like model to attendance_controller (MVC pattern)
* @author Christian Fasanando
* @package chamilo.attendance
*/
@@ -779,7 +779,7 @@ class Attendance
/**
* buid a string datetime from array
- * @param array array containing data e.g: e.g: $array('Y'=>'2010', 'F' => '02', 'd' => '10', 'H' => '12', 'i' => '30')
+ * @param array array containing data e.g: $array('Y'=>'2010', 'F' => '02', 'd' => '10', 'H' => '12', 'i' => '30')
* @return string date and time e.g: '2010-02-10 12:30:00'
*/
public function build_datetime_from_array($array) {