diff --git a/load_search.php b/load_search.php index 3ca444baba..5279ddf077 100644 --- a/load_search.php +++ b/load_search.php @@ -306,7 +306,7 @@ if ($formSearch->validate()) { } } } - +$params = []; if ($form->validate()) { $params = $form->getSubmitValues(); $save = false; @@ -484,15 +484,14 @@ $(function() { }); '; - - if (!empty($filterToSend)) { - $userStartDate = $params['extra_access_start_date']; + $userStartDate = isset($params['extra_access_start_date']) ? $params['extra_access_start_date'] : ''; + $userEndDate = isset($params['extra_access_end_date']) ? $params['extra_access_end_date'] : ''; + $date = new DateTime($userStartDate); $date->sub(new DateInterval('P3D')); $userStartDateMinus = $date->format('Y-m-d h:i:s'); - $userEndDate = $params['extra_access_end_date']; $date = new DateTime($userEndDate); $date->add(new DateInterval('P2D')); $userEndDatePlus = $date->format('Y-m-d h:i:s'); @@ -502,7 +501,10 @@ if (!empty($filterToSend)) { (s.access_start_date > '$userStartDateMinus' AND (s.access_start_date = '' OR s.access_start_date IS NULL)) OR ((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL)) )"; - $filterToSend['custom_dates'] = $sql; + + if ($userStartDate && !empty($userStartDate)) { + $filterToSend['custom_dates'] = $sql; + } $filterToSend = json_encode($filterToSend); $url = api_get_path(WEB_AJAX_PATH).'model.ajax.php?a=get_sessions&_search=true&load_extra_field='.$extraFieldListToString.'&_force_search=true&rows=20&page=1&sidx=&sord=asc&filters2='.$filterToSend; } else { diff --git a/main/inc/lib/extra_field.lib.php b/main/inc/lib/extra_field.lib.php index a5b2468389..7ad31b9a0d 100755 --- a/main/inc/lib/extra_field.lib.php +++ b/main/inc/lib/extra_field.lib.php @@ -454,7 +454,8 @@ class ExtraField extends Model $forceShowFields = false, $separateExtraMultipleSelect = [], $customLabelsExtraMultipleSelect = [], - $fieldsToFreeze = [] + $fieldsToFreeze = [], + $addEmptyOptionSelects = false ) { if (empty($form)) { return false; @@ -493,7 +494,8 @@ class ExtraField extends Model $orderDependingDefaults, $separateExtraMultipleSelect, $customLabelsExtraMultipleSelect, - $fieldsToFreeze + $fieldsToFreeze, + $addEmptyOptionSelects ); return $extra; @@ -821,7 +823,8 @@ class ExtraField extends Model $orderDependingDefaults = false, $separateExtraMultipleSelect = [], $customLabelsExtraMultipleSelect = [], - $fieldsToFreeze = [] + $fieldsToFreeze = [], + $addEmptyOptionSelects = false ) { $type = $this->type; $jquery_ready_content = ''; @@ -1163,6 +1166,9 @@ class ExtraField extends Model $defaultOptions = $extraData['extra_'.$field_details['variable']]; if (!empty($defaultOptions)) { $firstList = []; + if ($addEmptyOptionSelects) { + $firstList[] = ''; + } foreach ($defaultOptions as $key) { if (isset($options[$key])) { $firstList[$key] = $options[$key]; @@ -1325,8 +1331,6 @@ class ExtraField extends Model case ExtraField::FIELD_TYPE_TAG: $variable = $field_details['variable']; $field_id = $field_details['id']; - - $separateValue = 0; if (isset($separateExtraMultipleSelect[$field_details['variable']])) { $separateValue = $separateExtraMultipleSelect[$field_details['variable']]; @@ -1363,6 +1367,13 @@ class ExtraField extends Model null, array('id' => 'extra_'.$field_details['variable'].'_'.$i) ); + + if ($addEmptyOptionSelects) { + $tagsSelect->addOption( + '', + '' + ); + } foreach ($fieldTags as $fieldTag) { $tag = $em->find('ChamiloCoreBundle:Tag', $fieldTag->getTagId()); @@ -1371,8 +1382,7 @@ class ExtraField extends Model } $tagsSelect->addOption( $tag->getTag(), - $tag->getTag(), - ['selected' => 'selected', 'class' => 'selected'] + $tag->getTag() ); } } @@ -1931,6 +1941,8 @@ EOF; } if (in_array($field_details['variable'], $fieldsToFreeze)) { + $element = $form->getElement('extra_'.$field_details['variable']); + $element->freezeSeeOnlySelected = true; $form->freeze( 'extra_'.$field_details['variable'] ); diff --git a/main/inc/lib/pear/HTML/Common.php b/main/inc/lib/pear/HTML/Common.php index 822e08a3c8..25b5978e13 100755 --- a/main/inc/lib/pear/HTML/Common.php +++ b/main/inc/lib/pear/HTML/Common.php @@ -69,6 +69,7 @@ class HTML_Common * @access private */ var $_comment = ''; + public $freezeSeeOnlySelected; /** * Class constructor @@ -79,6 +80,7 @@ class HTML_Common */ public function __construct($attributes = null, $tabOffset = 0) { + $this->freezeSeeOnlySelected = false; $this->setAttributes($attributes); $this->setTabOffset($tabOffset); } // end constructor diff --git a/main/inc/lib/pear/HTML/QuickForm/group.php b/main/inc/lib/pear/HTML/QuickForm/group.php index f592159c79..a1fbe17367 100755 --- a/main/inc/lib/pear/HTML/QuickForm/group.php +++ b/main/inc/lib/pear/HTML/QuickForm/group.php @@ -503,6 +503,7 @@ class HTML_QuickForm_group extends HTML_QuickForm_element { parent::freeze(); foreach (array_keys($this->_elements) as $key) { + $this->_elements[$key]->freezeSeeOnlySelected = $this->freezeSeeOnlySelected; $this->_elements[$key]->freeze(); } } diff --git a/main/inc/lib/pear/HTML/QuickForm/radio.php b/main/inc/lib/pear/HTML/QuickForm/radio.php index 7bc6a8e0f0..21edf015b5 100755 --- a/main/inc/lib/pear/HTML/QuickForm/radio.php +++ b/main/inc/lib/pear/HTML/QuickForm/radio.php @@ -124,8 +124,12 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input { if (0 == strlen($this->_text)) { $label = ''; - } elseif ($this->_flagFrozen) { + } elseif ($this->isFrozen()) { $label = $this->_text; + if ($this->freezeSeeOnlySelected) { + $invisible = $this->getChecked() ? '' : ' style="display:none"'; + return "