From 83bec3644ce7a879aa3f85bc962ec8de27d77585 Mon Sep 17 00:00:00 2001 From: Nestor <npegane@hotmail.com> Date: Mon, 23 Oct 2017 12:10:41 +0200 Subject: [PATCH] FEAT #6159 Signatory name criteria added in advanced search --- .../class_indexing_searching_app_Abstract.php | 30 +++++++++++++++++-- .../indexing_searching/search_adv.php | 2 +- .../indexing_searching/search_adv_result.php | 11 +++---- apps/maarch_entreprise/js/functions.js | 9 ++++++ .../xml/IVS/validation_rules.xml | 2 ++ 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/apps/maarch_entreprise/class/class_indexing_searching_app_Abstract.php b/apps/maarch_entreprise/class/class_indexing_searching_app_Abstract.php index f2b981de7a3..9d5f69bf6c0 100755 --- a/apps/maarch_entreprise/class/class_indexing_searching_app_Abstract.php +++ b/apps/maarch_entreprise/class/class_indexing_searching_app_Abstract.php @@ -554,14 +554,27 @@ abstract class indexing_searching_app_Abstract extends Database ), "date courrier" => array*/ // $this->show_array($param); - $options_criteria_list = '<option id="default" value="">'._CHOOSE_PARAMETERS.'</option>'; + if($value['param']['autocompletion']){ + $idListByName = $key.'ListByName'; + $autocompleteId = 'ac_'.$key; + $options_criteria_list .= '<option id="option_'.$key.'" value="'.$value['label'].'" data-load={"id":"'.$key.'","idList":"'.$idListByName.'","autocompleteId":"'.$autocompleteId.'","config":"'.$_SESSION['config']['businessappurl'].'"} > '.$value['label'].'</option>'; + } else { + $options_criteria_list .= '<option id="option_'.$key.'" value="'.$value['label'].'"> '.$value['label'].'</option>'; + } + $json_tab = ''; foreach($param as $key => $value) { $json_tab .= "'".$key."' : {"; //echo 'key '.$key."<br/>val "; //$this->show_array($value); - $options_criteria_list .= '<option id="option_'.$key.'" value="'.$value['label'].'"> '.$value['label'].'</option>'; + if($value['param']['autocompletion']){ + $idListByName = $key.'ListByName'; + $autocompleteId = 'ac_'.$key; + $options_criteria_list .= '<option id="option_'.$key.'" value="'.$value['label'].'" data-load={"id":"'.$key.'","idList":"'.$idListByName.'","autocompleteId":"'.$autocompleteId.'","config":"'.$_SESSION['config']['businessappurl'].'"} > '.$value['label'].'</option>'; + } else { + $options_criteria_list .= '<option id="option_'.$key.'" value="'.$value['label'].'"> '.$value['label'].'</option>'; + } $json_tab .= $this->json_line($key,$value['type'],$value['param']); $json_tab .= '} ,'; @@ -581,7 +594,18 @@ abstract class indexing_searching_app_Abstract extends Database //$hidden = '<input type="hidden" name="meta[]" value="" />'; if ($field_type == 'input_text') { - $str = $init.'<input type="hidden" name="meta[]" value="'.$id.'#'.$id.'#input_text" /><input name="'.$id.'" id="'.$id.'" type="text" '.$param['other'].' value="" />'.$end; + if($param['autocompletion']){ + $idListByName = $id.'ListByName'; + $autocompleteId = 'ac_'.$id; + $str = $init.'<input type="hidden" name="meta[]" value="'.$id.'#'.$id.'#input_text"/>'; + $str .= '<input name="'.$id.'" id="'.$id.'" type="text" '.$param['other'].' value="" onkeyup="erase_contact_external_id('."\'".$id."\'".','."\'".$autocompleteId."\'".')"/>'; + $str .='<div id="'.$idListByName.'" class="autocomplete"></div>'; + $str .= '<script type="text/javascript">'; + $str .= 'initList_hidden_input("'.$id.'", "'.$idListByName.'","'.$_SESSION['config']['businessappurl'].'index.php?display=true&dir=indexing_searching&page=users_list_by_name_search", "what", "2", "'.$autocompleteId.'");</script>'; + $str .= '<input id="'.$autocompleteId.'" name="'.$autocompleteId.'" type="hidden" />'.$end; + } else { + $str = $init.'<input type="hidden" name="meta[]" value="'.$id.'#'.$id.'#input_text" /><input name="'.$id.'" id="'.$id.'" type="text" '.$param['other'].' value="" />'.$end; + } } else if ($field_type == 'textarea') { diff --git a/apps/maarch_entreprise/indexing_searching/search_adv.php b/apps/maarch_entreprise/indexing_searching/search_adv.php index 2fbcc39c521..99dfda9fa2d 100755 --- a/apps/maarch_entreprise/indexing_searching/search_adv.php +++ b/apps/maarch_entreprise/indexing_searching/search_adv.php @@ -451,7 +451,7 @@ $arr_tmp2 = array('label' => _SIGNATORY_GROUP, 'type' => 'select_simple', 'param $param['signatory_group'] = $arr_tmp2; // signatory name -$arr_tmp2 = array('label' => _SIGNATORY_NAME, 'type' => 'input_text', 'param' => array('field_label' => _SIGNATORY_NAME, 'other' => $size)); +$arr_tmp2 = array('label' => _SIGNATORY_NAME, 'type' => 'input_text', 'param' => array('field_label' => _SIGNATORY_NAME, 'other' => $size, 'autocompletion' => true)); $param['signatory_name'] = $arr_tmp2; diff --git a/apps/maarch_entreprise/indexing_searching/search_adv_result.php b/apps/maarch_entreprise/indexing_searching/search_adv_result.php index 060faa28089..e9f59cda97e 100755 --- a/apps/maarch_entreprise/indexing_searching/search_adv_result.php +++ b/apps/maarch_entreprise/indexing_searching/search_adv_result.php @@ -838,12 +838,13 @@ if (count($_REQUEST['meta']) > 0) { $arrayPDO = array_merge($arrayPDO, array(":visa_user" => "%".$visaUser."%")); } // Nom du signataire - elseif ($tab_id_fields[$j] == 'signatory_name' && !empty($_REQUEST['signatory_name_id'])) + elseif ($tab_id_fields[$j] == 'signatory_name' && !empty($_REQUEST['ac_signatory_name'])) { - $json_txt .= " 'signatory_name' : ['".addslashes(trim($_REQUEST['signatory_name']))."'], 'signatory_name_id' : ['".addslashes(trim($_REQUEST['signatory_name_id']))."']"; - $signatory_name = $_REQUEST['signatory_name_id']; - $where_request .= " (res_id in (select res_id from listinstance where item_id = :signatoryNameId and coll_id = '" . $coll_id . "' and item_mode = 'sign' and difflist_type = 'VISA_CIRCUIT')) and "; - $arrayPDO = array_merge($arrayPDO, array(":signatoryNameId" => $signatory_name)); + $json_txt .= " 'signatory_name' : ['".addslashes(trim($_REQUEST['signatory_name']))."'], 'signatory_name_id' : ['".addslashes(trim($_REQUEST['ac_signatory_name']))."']"; + $signatory_name = $_REQUEST['ac_signatory_name']; + $where_request .= " (res_id in (select res_id_master from res_attachments where coll_id = '" . $coll_id . "' and signatory_user_serial_id in (select id from users where user_id = :signatory_name_id))) and "; + $arrayPDO = array_merge($arrayPDO, array(":signatory_name_id" => $signatory_name)); + } //recherche sur les signataires en fonction de ce que la personne a saisi elseif ($tab_id_fields[$j] == 'signatory_name' && empty($_REQUEST['signatory_name_id']) && !empty($_REQUEST['signatory_name'])) diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js index 211efeacaca..026cf67cfee 100755 --- a/apps/maarch_entreprise/js/functions.js +++ b/apps/maarch_entreprise/js/functions.js @@ -3431,12 +3431,21 @@ function add_criteria(elem_comp, id_form, ie_browser, error_txt_ie) node.innerHTML = tmp; form.appendChild(node); var label = $(elem_comp); + if(elem_comp=='option_signatory_name' || elem_comp=='option_visa_user'){ + loadAutocompletionScript(elem_comp); + } label.parentNode.selectedIndex = 0; label.style.display = 'none'; } } } +function loadAutocompletionScript(optionId){ + infos = $j('#'+optionId).data('load'); + initList_hidden_input(infos.id,infos.idList,infos.config+'index.php?display=true&dir=indexing_searching&page=users_list_by_name_search','what',"2",infos.autocompleteId); +} + + /** * Deletes a criteria in the search form * diff --git a/apps/maarch_entreprise/xml/IVS/validation_rules.xml b/apps/maarch_entreprise/xml/IVS/validation_rules.xml index b1273bd22f9..2a9420ca54b 100755 --- a/apps/maarch_entreprise/xml/IVS/validation_rules.xml +++ b/apps/maarch_entreprise/xml/IVS/validation_rules.xml @@ -434,6 +434,8 @@ <parameter name="admission_date_to" type="string" /> <parameter name="creation_date_from" type="string" /> <parameter name="creation_date_to" type="string" /> + <parameter name="signatoryNameId" type="string" /> + <parameter name="ac_signatory_name" type="string" /> <parameter name="closing_date_from" type="string" /> <parameter name="closing_date_to" type="string" /> <parameter name="doc_date_from" type="string" /> -- GitLab