Use jQuery calendar in date fields - refs BT#9070

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent da8d4ae2c7
commit b50178e607
  1. 52
      main/admin/session_add.php
  2. 63
      main/admin/session_edit.php
  3. 12
      main/inc/lib/main_api.lib.php
  4. 38
      main/inc/lib/sessionmanager.lib.php

@ -108,21 +108,13 @@ $(document).on('ready', function () {
});
function setDisable(select){
document.form.day_start.disabled = (select.checked) ? true : false;
document.form.month_start.disabled = (select.checked) ? true : false;
document.form.year_start.disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['session_visibility'].disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['session_visibility'].selectedIndex = 0;
document.form.day_end.disabled = (select.checked) ? true : false;
document.form.month_end.disabled = (select.checked) ? true : false;
document.form.year_end.disabled = (select.checked) ? true : false;
document.form.session_visibility.disabled = (select.checked) ? true : false;
document.form.session_visibility.selectedIndex = 0;
document.form.start_limit.disabled = (select.checked) ? true : false;
document.form.start_limit.checked = false;
document.form.end_limit.disabled = (select.checked) ? true : false;
document.form.end_limit.checked = false;
document.forms['edit_session'].elements['start_limit'].disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['start_limit'].checked = false;
document.forms['edit_session'].elements['end_limit'].disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['end_limit'].checked = false;
var end_div = document.getElementById('end_date');
end_div.style.display = 'none';
@ -313,12 +305,7 @@ $form->addElement('checkbox', 'start_limit', '', get_lang('DateStartSession'), a
$form->addElement('html','<div id="start_date" style="display:none">');
$startDateGroup = array ();
$startDateGroup[] = $form->createElement('select', 'day_start', null, $dayList);
$startDateGroup[] = $form->createElement('select', 'month_start', null, $monthList);
$startDateGroup[] = $form->createElement('select', 'year_start', null, $yearList);
$form->addGroup($startDateGroup, 'start_date_group', null, ' / ', true);
$form->addElement('date_picker', 'date_start');
$form->addElement('html','</div>');
@ -329,12 +316,7 @@ $form->addElement('checkbox', 'end_limit', '', get_lang('DateEndSession'), array
$form->addElement('html','<div id="end_date" style="display:none">');
$endDateGroup = array();
$endDateGroup[] = $form->createElement('select', 'day_end', null, $dayList);
$endDateGroup[] = $form->createElement('select', 'month_end', null, $monthList);
$endDateGroup[] = $form->createElement('select', 'year_end', null, $yearList);
$form->addGroup($endDateGroup, 'end_date_group', null, ' / ', true);
$form->addElement('date_picker', 'date_end');
$visibilityGroup = array();
$visibilityGroup[] = $form->createElement('advanced_settings', get_lang('SessionVisibility'));
@ -379,13 +361,9 @@ $formDefaults = array(
);
if (!$formSent) {
$formDefaults['start_date_group[day_start]'] = $thisDay;
$formDefaults['start_date_group[month_start]'] = $thisMonth;
$formDefaults['start_date_group[year_start]'] = $thisYear;
$formDefaults['date_start'] = "$thisYear-$thisMonth-$thisDay";
$formDefaults['end_date_group[day_end]'] = $thisDay;
$formDefaults['end_date_group[month_end]'] = $thisMonth;
$formDefaults['end_date_group[year_end]'] = $thisYear + 1;
$formDefaults['date_end'] = date('Y-m-d', strtotime("$thisYear-$thisMonth-$thisDay +1 year"));
} else {
$formDefaults['name'] = api_htmlentities($name,ENT_QUOTES,$charset);
}
@ -396,12 +374,8 @@ if ($form->validate()) {
$params = $form->getSubmitValues();
$name = $params['name'];
$year_start = $params['start_date_group']['year_start'];
$month_start = $params['start_date_group']['month_start'];
$day_start = $params['start_date_group']['day_start'];
$year_end = $params['end_date_group']['year_end'];
$month_end = $params['end_date_group']['month_end'];
$day_end = $params['end_date_group']['day_end'];
$startDate = $params['date_start'];
$endDate = $params['date_end'];
$nb_days_acess_before = $params['nb_days_acess_before'];
$nb_days_acess_after = $params['nb_days_acess_after'];
$coach_username = $params['coach_username'];
@ -426,7 +400,7 @@ if ($form->validate()) {
}
$return = SessionManager::create_session(
$name, $year_start, $month_start, $day_start, $year_end, $month_end, $day_end, $nb_days_acess_before,
$name, $startDate, $endDate, $nb_days_acess_before,
$nb_days_acess_after, $nolimit, $coach_username, $id_session_category, $id_visibility, $start_limit,
$end_limit, false, $duration, $extraFields
);

@ -69,7 +69,7 @@ if (api_is_multiple_url_enabled()) {
}
$result = Database::query($sql);
$Coaches = Database::store_result($result);
$coaches = Database::store_result($result);
$thisYear = date('Y');
$daysOption = array();
@ -97,7 +97,7 @@ $coachesOption = array(
'' => '----- ' . get_lang('None') . ' -----'
);
foreach ($Coaches as $coach) {
foreach ($coaches as $coach) {
$personName = api_get_person_name($coach['firstname'], $coach['lastname']);
$coachesOption[$coach['user_id']] = "$personName ({$coach['username']})";
@ -182,12 +182,7 @@ if ($year_start!="0000") {
$form->addElement('html','<div id="start_date" style="display:none">');
}
$startDateGroup = array ();
$startDateGroup[] = $form->createElement('select', 'day_start', null, $daysOption);
$startDateGroup[] = $form->createElement('select', 'month_start', null, $monthsOption);
$startDateGroup[] = $form->createElement('select', 'year_start', null, $yearsOption);
$form->addGroup($startDateGroup, 'start_date_group', null, ' / ', true);
$form->addElement('date_picker', 'date_start');
$form->addElement('html','</div>');
@ -208,12 +203,7 @@ if ($year_end != "0000") {
$form->addElement('html','<div id="end_date" style="display:none">');
}
$endDateGroup = array();
$endDateGroup[] = $form->createElement('select', 'day_end', null, $daysOption);
$endDateGroup[] = $form->createElement('select', 'month_end', null, $monthsOption);
$endDateGroup[] = $form->createElement('select', 'year_end', null, $yearsOption);
$form->addGroup($endDateGroup, 'end_date_group', null, ' / ', true);
$form->addElement('date_picker', 'date_end');
$visibilityGroup = array();
$visibilityGroup[] = $form->createElement('advanced_settings', get_lang('SessionVisibility'));
@ -270,12 +260,8 @@ $form->addElement('button', 'submit', get_lang('ModifyThisSession'), array(
$formDefaults = array(
'id_coach' => $infos['id_coach'],
'session_category' => $infos['session_category_id'],
'start_date_group[day_start]' => $day_start,
'start_date_group[month_start]' => $month_start,
'start_date_group[year_start]' => $year_start,
'end_date_group[day_end]' => $day_end,
'end_date_group[month_end]' => $month_end,
'end_date_group[year_end]' => $year_end,
'date_start' => $infos['date_start'],
'date_end' => $infos['date_end'],
'session_visibility' => $infos['visibility'],
'description' => array_key_exists('show_description', $infos) ? $infos['description'] : ''
);
@ -304,12 +290,8 @@ if ($form->validate()) {
$params = $form->getSubmitValues();
$name = $params['name'];
$year_start = $params['start_date_group']['year_start'];
$month_start = $params['start_date_group']['month_start'];
$day_start = $params['start_date_group']['day_start'];
$year_end = $params['end_date_group']['year_end'];
$month_end = $params['end_date_group']['month_end'];
$day_end = $params['end_date_group']['day_end'];
$startDate = $params['date_start'];
$endDate = $params['date_end'];
$nb_days_acess_before = $params['nb_days_access_before'];
$nb_days_acess_after = $params['nb_days_acc ess_after'];
$id_coach = $params['id_coach'];
@ -339,12 +321,8 @@ if ($form->validate()) {
$return = SessionManager::edit_session(
$id,
$name,
$year_start,
$month_start,
$day_start,
$year_end,
$month_end,
$day_end,
$startDate,
$endDate,
$nb_days_acess_before,
$nb_days_acess_after,
$nolimit,
@ -382,22 +360,13 @@ $form->display();
?>
function setDisable(select) {
document.forms['edit_session'].elements['session_visibility'].disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['session_visibility'].selectedIndex = 0;
document.form.day_start.disabled = (select.checked) ? true : false;
document.form.month_start.disabled = (select.checked) ? true : false;
document.form.year_start.disabled = (select.checked) ? true : false;
document.form.day_end.disabled = (select.checked) ? true : false;
document.form.month_end.disabled = (select.checked) ? true : false;
document.form.year_end.disabled = (select.checked) ? true : false;
document.form.session_visibility.disabled = (select.checked) ? true : false;
document.form.session_visibility.selectedIndex = 0;
document.form.start_limit.disabled = (select.checked) ? true : false;
document.form.start_limit.checked = false;
document.form.end_limit.disabled = (select.checked) ? true : false;
document.form.end_limit.checked = false;
document.forms['edit_session'].elements['start_limit'].disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['start_limit'].checked = false;
document.forms['edit_session'].elements['end_limit'].disabled = (select.checked) ? true : false;
document.forms['edit_session'].elements['end_limit'].checked = false;
var end_div = document.getElementById('end_date');
end_div.style.display = 'none';

@ -7582,3 +7582,15 @@ function api_site_use_cookie_warning_cookie_exist()
{
return isset($_COOKIE['ChamiloUsesCookies']);
}
/**
* Verify whether a datetime is valid
* @param string $dateTime The datetime to validate
* @param string $format
* @return boolean
*/
function apiIsValidDate($dateTime, $format = 'Y-m-d h:m:i') {
$tempDate = DateTime::createFromFormat($format, $dateTime);
return $tempDate && $tempDate->format($format) == $dateTime;
}

@ -68,12 +68,8 @@ class SessionManager
* */
public static function create_session(
$sname,
$syear_start,
$smonth_start,
$sday_start,
$syear_end,
$smonth_end,
$sday_end,
$startDate,
$endDate,
$snb_days_acess_before,
$snb_days_acess_after,
$nolimit,
@ -107,12 +103,6 @@ class SessionManager
}
$name = Database::escape_string(trim($sname));
$year_start = intval($syear_start);
$month_start = intval($smonth_start);
$day_start = intval($sday_start);
$year_end = intval($syear_end);
$month_end = intval($smonth_end);
$day_end = intval($sday_end);
$nb_days_acess_before = intval($snb_days_acess_before);
$nb_days_acess_after = intval($snb_days_acess_after);
$id_session_category = intval($id_session_category);
@ -129,8 +119,8 @@ class SessionManager
}
if (empty($nolimit)) {
$date_start = "$year_start-" . (($month_start < 10) ? "0$month_start" : $month_start) . "-" . (($day_start < 10) ? "0$day_start" : $day_start);
$date_end = "$year_end-" . (($month_end < 10) ? "0$month_end" : $month_end) . "-" . (($day_end < 10) ? "0$day_end" : $day_end);
$date_start = Database::escape_string($startDate);
$date_end = Database::escape_string($endDate);
} else {
$id_visibility = 1; // by default session visibility is read only
$date_start = "0000-00-00";
@ -152,10 +142,10 @@ class SessionManager
} elseif (empty($coach_username)) {
$msg = get_lang('CoachIsRequired');
return $msg;
} elseif (!empty($start_limit) && empty($nolimit) && (!$month_start || !$day_start || !$year_start || !checkdate($month_start, $day_start, $year_start))) {
} elseif (!empty($start_limit) && empty($nolimit) && !apiIsValidDate($date_start, 'Y-m-d')) {
$msg = get_lang('InvalidStartDate');
return $msg;
} elseif (!empty($end_limit) && empty($nolimit) && (!$month_end || !$day_end || !$year_end || !checkdate($month_end, $day_end, $year_end))) {
} elseif (!empty($end_limit) && empty($nolimit) && !apiIsValidDate($date_end, 'Y-m-d')) {
$msg = get_lang('InvalidEndDate');
return $msg;
} elseif (!empty($start_limit) && !empty($end_limit) && empty($nolimit) && $date_start >= $date_end) {
@ -1343,12 +1333,8 @@ class SessionManager
public static function edit_session(
$id,
$name,
$year_start,
$month_start,
$day_start,
$year_end,
$month_end,
$day_end,
$startDate,
$endDate,
$nb_days_acess_before,
$nb_days_acess_after,
$nolimit,
@ -1378,8 +1364,8 @@ class SessionManager
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
if (empty($nolimit)) {
$date_start = "$year_start-" . (($month_start < 10) ? "0$month_start" : $month_start) . "-" . (($day_start < 10) ? "0$day_start" : $day_start);
$date_end = "$year_end-" . (($month_end < 10) ? "0$month_end" : $month_end) . "-" . (($day_end < 10) ? "0$day_end" : $day_end);
$date_start = Database::escape_string($startDate);
$date_end = Database::escape_string($endDate);
} else {
$date_start = "0000-00-00";
$date_end = "0000-00-00";
@ -1405,10 +1391,10 @@ class SessionManager
} elseif (empty($id_coach)) {
$msg = get_lang('CoachIsRequired');
return $msg;
} elseif (!empty($start_limit) && empty($nolimit) && (!$month_start || !$day_start || !$year_start || !checkdate($month_start, $day_start, $year_start))) {
} elseif (!empty($start_limit) && empty($nolimit) && !apiIsValidDate($date_start, 'Y-m-d')) {
$msg = get_lang('InvalidStartDate');
return $msg;
} elseif (!empty($end_limit) && empty($nolimit) && (!$month_end || !$day_end || !$year_end || !checkdate($month_end, $day_end, $year_end))) {
} elseif (!empty($end_limit) && empty($nolimit) && !apiIsValidDate($date_end, 'Y-m-d')) {
$msg = get_lang('InvalidEndDate');
return $msg;
} elseif (!empty($start_limit) && !empty($end_limit) && empty($nolimit) && $date_start >= $date_end) {

Loading…
Cancel
Save