Fixing loading js libraries bug.

1.9.x
Julio Montoya 12 years ago
parent ba086d68d9
commit 584d5661d4
  1. 1
      main/inc/lib/formvalidator/Element/DatePicker.php
  2. 33
      main/inc/lib/formvalidator/Element/DateRangePicker.php
  3. 24
      main/inc/lib/formvalidator/Element/DateTimePicker.php
  4. 32
      main/inc/lib/formvalidator/FormValidator.class.php
  5. 8
      main/inc/lib/pear/HTML/QuickForm.php

@ -7,7 +7,6 @@ require_once 'HTML/QuickForm/date.php';
*/
class DatePicker extends HTML_QuickForm_text
{
public $addLibrary = false;
/**
* Constructor
*/

@ -7,7 +7,6 @@ require_once 'HTML/QuickForm/date.php';
*/
class DateRangePicker extends HTML_QuickForm_text
{
public $addLibrary = false;
/**
* Constructor
*/
@ -47,22 +46,6 @@ class DateRangePicker extends HTML_QuickForm_text
{
$js = null;
if ($this->addLibrary == true) {
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/daterange/moment.min.js" type="text/javascript"></script>';
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/daterange/daterangepicker.js" type="text/javascript"></script>';
$js .='<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/daterange/daterangepicker-bs2.css" rel="stylesheet" type="text/css" />';
$isocode = api_get_language_isocode();
if ($isocode != 'en') {
$js .= api_get_js('jquery-ui/jquery-ui-i18n.min.js');
$js .= '<script>
$(function(){
moment.lang("'.$isocode.'");
});
</script>';
}
}
$id = $this->getAttribute('id');
//timeFormat: 'hh:mm'
$js .= "<script>
@ -73,18 +56,18 @@ class DateRangePicker extends HTML_QuickForm_text
timePickerIncrement: 30,
timePicker12Hour: false,
ranges: {
'".get_lang('Today')."': [moment(), moment()],
'".get_lang('ThisWeek')."': [moment().weekday(1), moment().weekday(5)],
'".get_lang('NextWeek')."': [moment().weekday(8), moment().weekday(12)]
'".addslashes(get_lang('Today'))."': [moment(), moment()],
'".addslashes(get_lang('ThisWeek'))."': [moment().weekday(1), moment().weekday(5)],
'".addslashes(get_lang('NextWeek'))."': [moment().weekday(8), moment().weekday(12)]
},
//showDropdowns : true,
separator: ' / ',
locale: {
applyLabel: '".get_lang('Apply')."',
cancelLabel: '".get_lang('Cancel')."',
fromLabel: '".get_lang('From')."',
toLabel: '".get_lang('To')."',
customRangeLabel: '".get_lang('CustomRange')."',
applyLabel: '".addslashes(get_lang('Ok'))."',
cancelLabel: '".addslashes(get_lang('Cancel'))."',
fromLabel: '".addslashes(get_lang('From'))."',
toLabel: '".addslashes(get_lang('Until'))."',
customRangeLabel: '".addslashes(get_lang('CustomRange'))."',
}
});
});

@ -7,7 +7,6 @@ require_once 'HTML/QuickForm/date.php';
*/
class DateTimePicker extends HTML_QuickForm_text
{
public $addLibrary = false;
/**
* Constructor
*/
@ -31,6 +30,9 @@ class DateTimePicker extends HTML_QuickForm_text
return $js.parent::toHtml();
}
/**
* @param string $value
*/
function setValue($value)
{
$value = substr($value, 0, 16);
@ -47,24 +49,6 @@ class DateTimePicker extends HTML_QuickForm_text
private function getElementJS()
{
$js = null;
if ($this->addLibrary == true) {
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/datetimepicker/jquery-ui-timepicker-addon.js" type="text/javascript"></script>';
$js .='<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/datetimepicker/jquery-ui-timepicker-addon.css" rel="stylesheet" type="text/css" />';
$isocode = api_get_language_isocode();
if ($isocode != 'en') {
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/datetimepicker/i18n/jquery-ui-timepicker-'.$isocode.'.js" type="text/javascript"></script>';
$js .= api_get_js('jquery-ui/jquery-ui-i18n.min.js');
$js .= '<script>
$(function(){
$.datepicker.setDefaults($.datepicker.regional["'.$isocode.'"]);
});
</script>';
}
}
$id = $this->getAttribute('id');
//timeFormat: 'hh:mm'
$js .= "<script>
@ -75,7 +59,7 @@ class DateTimePicker extends HTML_QuickForm_text
});
});
</script>";
return $js;
}
}

@ -540,13 +540,45 @@ EOT;
function return_form()
{
$error = false;
$addDateLibraries = false;
/** @var HTML_QuickForm_element $element */
foreach ($this->_elements as $element) {
if (in_array(
$element->getType(),
array('date_range_picker', 'date_time_picker', 'date_picker', 'datepicker', 'datetimepicker'))
) {
$addDateLibraries = true;
}
if (!is_null(parent::getElementError($element->getName()))) {
$error = true;
break;
}
}
$return_value = '';
$js = null;
if ($addDateLibraries) {
$js = api_get_js('jquery-ui/jquery-ui-i18n.min.js');
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/datetimepicker/jquery-ui-timepicker-addon.js" type="text/javascript"></script>';
$js .= '<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/datetimepicker/jquery-ui-timepicker-addon.css" rel="stylesheet" type="text/css" />';
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/daterange/moment.min.js" type="text/javascript"></script>';
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/daterange/daterangepicker.js" type="text/javascript"></script>';
$js .= '<link href="'.api_get_path(WEB_LIBRARY_PATH).'javascript/daterange/daterangepicker-bs2.css" rel="stylesheet" type="text/css" />';
$isocode = api_get_language_isocode();
if ($isocode != 'en') {
$js .= '<script src="'.api_get_path(WEB_LIBRARY_PATH).'javascript/datetimepicker/i18n/jquery-ui-timepicker-'.$isocode.'.js" type="text/javascript"></script>';
$js .= '<script>
$(function(){
$.datepicker.setDefaults($.datepicker.regional["'.$isocode.'"]);
moment.lang("'.$isocode.'");
});
</script>';
}
}
$return_value .= $js;
if ($error) {
$return_value = Display::return_message(get_lang('FormHasErrorsPleaseComplete'), 'warning');
}

@ -661,14 +661,6 @@ class HTML_QuickForm extends HTML_Common
}
}
$elementName = $elementObject->getName();
$type = $elementObject->getType();
if (in_array($type, array('date_time_picker', 'date_picker', 'date_range_picker')) && $this->dateTimePickerLibraryAdded == false) {
$elementObject->addLibrary = true;
$this->dateTimePickerLibraryAdded = true;
} else {
$elementObject->addLibrary = false;
}
// Add the element if it is not an incompatible duplicate
if (!empty($elementName) && isset($this->_elementIndex[$elementName])) {

Loading…
Cancel
Save