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 "
".HTML_QuickForm_input::toHtml().$this->_text."
"; + } } else { $labelClass = $this->labelClass; $radioClass = $this->radioClass; diff --git a/search.php b/search.php index 28a0bafb7d..01f37eaae2 100644 --- a/search.php +++ b/search.php @@ -41,8 +41,8 @@ $diagnosisComplete = $extraFieldValue->get_values_by_handler_and_field_variable( if ($diagnosisComplete && isset($diagnosisComplete['value']) && $diagnosisComplete['value'] == 1) { if (!isset($_GET['result'])) { - header('Location:'.api_get_self().'?result=1'); - exit; + //header('Location:'.api_get_self().'?result=1'); + //exit; } } @@ -116,39 +116,46 @@ $(document).ready(function() { "href": "'.$url.'&field_variable=extra_theme_de", "text": "'.get_lang('Order').'" }) - ); - + ); - $("#extra_domaine").on("change", function() { + $("#extra_domaine_0, #extra_domaine_1, #extra_domaine_2").on("change", function() { var domainList = []; - $( "#extra_domaine option:selected" ).each(function() { + $("#extra_domaine_0 option:selected").each(function() { domainList.push($(this).val()); }); - + $("#extra_domaine_1 option:selected").each(function() { + domainList.push($(this).val()); + }); + $("#extra_domaine_2 option:selected").each(function() { + domainList.push($(this).val()); + }); + var domainListToString = JSON.stringify(domainList); $.ajax({ contentType: "application/x-www-form-urlencoded", type: "GET", url: "'.api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?a=search_options_from_tags&type=session&from=extra_domaine&search="+themeDefault+"&options="+domainListToString, - success: function(data) { - $("#"+themeDefault).find("option").remove().end(); - $("#"+themeDefault).empty(); + success: function(data) { + var selectToString = ""; jQuery.each(JSON.parse(data), function(i, item) { selectToString += ""; - jQuery.each(item.children, function(j, data) { - console.log(data); + jQuery.each(item.children, function(j, data) { if (data.text != "") { selectToString += "" } }); selectToString += ""; - }); - - $("#"+themeDefault).html(selectToString); - $("#"+themeDefault).selectpicker("refresh"); - } - + }); + + for (i = 0; i <= 5; i++) { + var themeId = "#"+themeDefault+"_"+i; + $(themeId).find("option").remove().end(); + $(themeId).empty(); + $(themeId).html(selectToString); + $(themeId).selectpicker("refresh"); + } + } }); }); }); @@ -234,6 +241,7 @@ if ($form->validate()) { } } } + $forceShowFields = true; $extraField = new ExtraField('user'); $userForm = new FormValidator('user_form', 'post', api_get_self()); @@ -410,10 +418,6 @@ $fieldsToShow = [ $theme ]; -/*$specialUrlList = [ - $theme => api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?a=search_tags_from_diagnosis' -];*/ - $extra = $extraFieldSession->addElements( $userForm, api_get_user_id(), @@ -440,7 +444,9 @@ $extra = $extraFieldSession->addElements( get_lang('Theme').' 4', get_lang('Theme').' 5' ], - ] + ], + [], + true //$addEmptyOptionSelects ); $jqueryExtra .= $extra['jquery_ready_content']; @@ -599,15 +605,17 @@ if ($userForm->validate()) { $field_variable = substr($key, 6); $extraFieldInfo = $extraFieldValueSession ->getExtraField() - ->get_handler_field_info_by_field_variable($field_variable); + ->get_handler_field_info_by_field_variable($field_variable) + ; if (!$extraFieldInfo) { continue; } - - - $extraFieldObj = $em->getRepository('ChamiloCoreBundle:ExtraField')->find($extraFieldInfo['id']); + $extraFieldObj = $em + ->getRepository('ChamiloCoreBundle:ExtraField') + ->find($extraFieldInfo['id']) + ; $search = [ 'field' => $extraFieldObj,