fixed - minimum width for dates columns inside attendance sheet, added lock icon

skala
Cristian Fasanando 16 years ago
parent 10e30bf6b1
commit 20f6308d1a
  1. 4
      main/attendance/attendance_add.php
  2. 31
      main/attendance/attendance_controller.php
  3. 6
      main/attendance/attendance_edit.php
  4. 29
      main/attendance/attendance_sheet.php
  5. 38
      main/attendance/index.php
  6. 4
      main/inc/lib/attendance.lib.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', '<div class="row"><div class="label">');
$form->addElement('html', '<div class="formw"><a href="javascript://" class = "advanced_parameters" ><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_show.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a></div></div></div>');
$form->addElement('html', '<div class="row"><div class="label"></div>');
$form->addElement('html', '<div class="formw"><br /><a href="javascript://" class = "advanced_parameters" ><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_show.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a></div></div>');
$form->addElement('html','<div id="id_qualify" style="display:none">');
// Qualify Attendance for gradebook option

@ -179,37 +179,16 @@
$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;
}
}
// 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);
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];
}
} 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);

@ -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', '<div class="row"><div class="label">');
$form->addElement('html', '<div class="row"><div class="label"></div>');
if (!empty($attendance_qualify_title) || !empty($attendance_weight)) {
$form->addElement('html', '<div class="formw"><a href="javascript://" class="advanced_parameters"><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_hide.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a></div></div></div>');
$form->addElement('html', '<div class="formw"><br /><a href="javascript://" class="advanced_parameters"><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_hide.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a></div></div>');
$form->addElement('html','<div id="id_qualify" style="display:block">');
$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','<div id="options_field" style="display:block">');
} else {
$form->addElement('html', '<div class="formw"><a href="javascript://" class="advanced_parameters"><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_show.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a></div></div></div>');
$form->addElement('html', '<div class="formw"><br /><a href="javascript://" class="advanced_parameters"><span id="img_plus_and_minus">&nbsp;'.Display::return_icon('div_show.gif',get_lang('Show'),array('style'=>'vertical-align:middle')).' '.get_lang('AdvancedParameters').'</span></a></div></div>');
$form->addElement('html','<div id="id_qualify" style="display:none">');
$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','<div id="options_field" style="display:none">');

@ -34,7 +34,7 @@ if (api_is_allowed_to_edit(null, true)) {
<table class="data_table" width="100%">
<tr class="row_odd" >
<th height="60px" width="35px" ><?php echo get_lang('Order')?></th>
<th height="65px" width="35px" ><?php echo get_lang('Order')?></th>
<th width="45px" ><?php echo get_lang('Photo')?></th>
<th><?php echo get_lang('LastName')?></th>
<th><?php echo get_lang('FirstName')?></th>
@ -70,22 +70,27 @@ if (api_is_allowed_to_edit(null, true)) {
<?php
if (count($attendant_calendar) > 0 ) {
foreach ($attendant_calendar as $calendar) {
//$datetime = explode(' ',$calendar['date_time']);
$date = $calendar['date'];
$time = $calendar['time'];
$datetime = $date.'<br />'.$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 = '<font color="blue">'.$date.'<br />'.$time.'</font>';
}
$disabled_check = 'disabled';
$input_hidden = '<input type="hidden" id="hidden_input_'.$calendar['id'].'" name="hidden_input[]" value="" disabled />';
if ($next_attendance_calendar_id == $calendar['id']) {
$checked_date = 'checked';
$input_hidden = '<input type="hidden" id="hidden_input_'.$calendar['id'].'" name="hidden_input[]" value="'.$calendar['id'].'" />';
$disabled_check = '';
$img_lock = Display::return_icon('unlock.gif',get_lang('DateUnlock'),array('class'=>'img_unlock','id'=>'datetime_column_'.$calendar['id']));
}
?>
<th height="60px" style="padding:5px;"><?php echo '<span style="font-size:10px;">'.$datetime.'<br /><input type="checkbox" name="datetime_column['.$calendar['id'].']" id="datetime_column_'.$calendar['id'].'" '.$checked_date.'/></span>' ?></th>
<th height="65px" style="padding:1px 5px;" ><?php echo '<center><div style="font-size:10px;min-width:80px;width:80px;">'.$datetime.'&nbsp;<span id="attendance_lock" style="cursor:pointer">'.$img_lock.'</span><br /><input type="checkbox" id="checkbox_head_'.$calendar['id'].'" '.$disabled_check.' checked />'.$input_hidden.'</div></center>' ?></th>
<?php }
} else { ?>
<th height="60px" style="padding:5px;"><span><a href="index.php?<?php echo api_get_cidreq() ?>&action=calendar_list&attendance_id=<?php echo $attendance_id.$param_gradebook ?>">
<th height="65px" style="padding:5px;"><span><a href="index.php?<?php echo api_get_cidreq() ?>&action=calendar_list&attendance_id=<?php echo $attendance_id.$param_gradebook ?>">
<?php echo Display::return_icon('calendar_up.gif',get_lang('AttendanceCalendar')).' '.get_lang('GoToAttendanceCalendar') ?></a></span></th>
<?php } ?>
</tr>
@ -116,7 +121,7 @@ if (api_is_allowed_to_edit(null, true)) {
$disabled = '';
}
?>
<td height="50px" style="<?php echo $style_td ?>" class="checkboxes_col_<?php echo $calendar['id'] ?>"><center><input type="checkbox" name="check_presence[]" value="cal_<?php echo $calendar['id'] ?>_user_<?php echo $user['user_id'] ?>" <?php echo $disabled.' '.$checked ?> /><span class="<?php echo 'anchor_'.$calendar['id'] ?>"></span></center></td>
<td height="50px" style="<?php echo $style_td ?>" class="checkboxes_col_<?php echo $calendar['id'] ?>"><center><input type="checkbox" name="check_presence[<?php echo $calendar['id'] ?>][]" value="<?php echo $user['user_id'] ?>" <?php echo $disabled.' '.$checked ?> /><span class="<?php echo 'anchor_'.$calendar['id'] ?>"></span></center></td>
<?php }
} else { ?>
@ -143,6 +148,7 @@ if (api_is_allowed_to_edit(null, true)) {
// View for students
?>
<h3><?php echo get_lang('AttendanceSheetReport') ?></h3>
<?php if(!empty($users_presence)) { ?>
<div>
<table width="200px;">
<tr>
@ -150,6 +156,7 @@ if (api_is_allowed_to_edit(null, true)) {
</tr>
</table>
</div>
<?php } ?>
<div>
<br />
<center>
@ -159,6 +166,8 @@ if (api_is_allowed_to_edit(null, true)) {
<th><?php echo get_lang('Attendance')?></th>
</tr>
<?php
if (!empty($users_presence)) {
$i = 0;
foreach($users_presence[$user_id] as $presence) {
$class = '';
@ -166,8 +175,12 @@ if (api_is_allowed_to_edit(null, true)) {
else {$class = 'row_odd';}
?>
<tr class="<?php echo $class ?>"><td><?php echo Display::return_icon('lp_calendar_event.png',get_lang('DateTime')).' '.$presence['date_time'] ?></td><td><center><?php echo $presence['presence']?Display::return_icon('checkbox_on.gif',get_lang('Presence')):Display::return_icon('checkbox_off.gif',get_lang('Presence')) ?></center></td></tr>
<?php }
} else { ?>
<tr><td colspan="2"><center><?php echo get_lang('YouDoNotHaveDoneAttendance')?></center></td></tr>
<?php }
<?php } ?>
?>
</table>
</center>
</div>

@ -66,17 +66,45 @@ $htmlHeadXtra[] = '<link rel="stylesheet" href="'.api_get_path(WEB_LIBRARY_PATH)
$htmlHeadXtra[] = '<script language="javascript">
$(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);
$(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);
}
});

@ -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 <christian1827@gmail.com>
* @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) {

Loading…
Cancel
Save