diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 4ce9cfe9621..302b49fbdb7 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -1894,7 +1894,7 @@ if ($action == 'create') print ''; print ''; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0); + $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1); } else { $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0); } diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index b44a8b0f457..1f24b2e7662 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1975,7 +1975,7 @@ if ($action == 'create' && $user->rights->commande->creer) { print ''; // print "$object->id, $object->socid, $object->fk_project"; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0); + $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1); } else { $form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0); } diff --git a/htdocs/compta/deplacement/card.php b/htdocs/compta/deplacement/card.php index bcef3512c33..20dc403f7c3 100644 --- a/htdocs/compta/deplacement/card.php +++ b/htdocs/compta/deplacement/card.php @@ -486,11 +486,11 @@ else if ($id) print ''; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'projectid'); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'projectid', 0, 0, 1); } else { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'none'); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'none', 0, 0); } print ''; print ''; diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 865d7d95f9f..c9fe00b4594 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -3352,7 +3352,7 @@ if ($action == 'create') print ''; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0); + $form->form_project($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1); } else { $form->form_project($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0); } diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 4770ff10e50..2a78f8a8616 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -1192,11 +1192,11 @@ else print ''; if ($action == "classify") { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id,$object->socid,$object->fk_project,"projectid"); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id,$object->socid,$object->fk_project,"projectid", 0, 0, 1); } else { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id,$object->socid,$object->fk_project,"none"); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id,$object->socid,$object->fk_project,"none", 0, 0); } print ""; } @@ -1730,7 +1730,7 @@ else if ($user->societe_id == 0) { print '
'; - + $parameters=array(); $reshook=$hookmanager->executeHooks('addMoreActionsButtons',$parameters,$object,$action); // Note that $action and $object may have been modified by hook diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index a8bd15afe89..97039adea57 100755 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1226,12 +1226,13 @@ class Form if ($num) { // Enhance with select2 - if ($conf->use_javascript_ajax) + $nodatarole=''; + /*if ($conf->use_javascript_ajax) { include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; - $out.= ajax_combobox($htmlname); + $out.= ajax_combobox($htmlname); $nodatarole=' data-role="none"'; - } + }*/ $out.= ''; print ''; print ''; print ''; print ''; print '
'; - $formproject->select_projects($socid,$selected,$htmlname,$maxlength,0,1,$discard_closed); + $formproject->select_projects($socid,$selected,$htmlname,$maxlength,0,1,$discard_closed, $forcefocus); print '
'; diff --git a/htdocs/core/class/html.formprojet.class.php b/htdocs/core/class/html.formprojet.class.php index 6fb331670ed..aba8abf78a3 100644 --- a/htdocs/core/class/html.formprojet.class.php +++ b/htdocs/core/class/html.formprojet.class.php @@ -52,9 +52,10 @@ class FormProjets * @param int $option_only Return only html options lines without the select tag * @param int $show_empty Add an empty line * @param int $discard_closed Discard closed projects (0=Keep,1=hide completely,2=Disable) + * @param int $forcefocus Force focus on field (works with javascript only) * @return int Nber of project if OK, <0 if KO */ - function select_projects($socid=-1, $selected='', $htmlname='projectid', $maxlength=24, $option_only=0, $show_empty=1, $discard_closed=0) + function select_projects($socid=-1, $selected='', $htmlname='projectid', $maxlength=24, $option_only=0, $show_empty=1, $discard_closed=0, $forcefocus=0) { global $user,$conf,$langs; @@ -85,8 +86,17 @@ class FormProjets $resql=$this->db->query($sql); if ($resql) { + // Use select2 selector + $nodatarole=''; + if (! empty($conf->use_javascript_ajax)) + { + include_once DOL_DOCUMENT_ROOT . '/core/lib/ajax.lib.php'; + $out.= ajax_combobox($htmlname, '', 0, $forcefocus); + $nodatarole=' data-role="none"'; + } + if (empty($option_only)) { - $out.= ''; } if (!empty($show_empty)) { $out.= ''; @@ -162,14 +172,9 @@ class FormProjets if (empty($option_only)) { $out.= ''; } + print $out; - // Use select2 selector - if (! empty($conf->use_javascript_ajax)) - { - - } - $this->db->free($resql); return $num; } diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php index 96c7bc8d05a..ee876aa87c6 100644 --- a/htdocs/core/lib/ajax.lib.php +++ b/htdocs/core/lib/ajax.lib.php @@ -314,25 +314,28 @@ function ajax_dialog($title,$message,$w=350,$h=150) * @param string $htmlname Name of html select field * @param array $events More events option. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled'))) * @param int $minLengthToAutocomplete Minimum length of input string to start autocomplete + * @param int $forcefocus Force focus on field * @return string Return html string to convert a select field into a combo */ -function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0) +function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0, $forcefocus=0) { global $conf; //if (! empty($conf->browser->phone)) return ''; // combobox disabled for smartphones (does not works) //if (! empty($conf->dol_use_jmobile)) return ''; // select2 works with jmobile if (! empty($conf->global->MAIN_DISABLE_AJAX_COMBOX)) return ''; - if (empty($conf->use_javascript_ajax)) return ''; - + if (empty($conf->use_javascript_ajax)) return ''; + if (empty($minLengthToAutocomplete)) $minLengthToAutocomplete=0; - + $msg = '\n"; diff --git a/htdocs/expedition/shipment.php b/htdocs/expedition/shipment.php index bce365447e1..339d0f0d662 100644 --- a/htdocs/expedition/shipment.php +++ b/htdocs/expedition/shipment.php @@ -337,11 +337,11 @@ if ($id > 0 || ! empty($ref)) print ''; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->fk_project, 'projectid'); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->fk_project, 'projectid', 0, 0, 1); } else { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->fk_project, 'none'); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$commande->id, $commande->socid, $commande->fk_project, 'none', 0, 0); } print ''; } diff --git a/htdocs/fichinter/card.php b/htdocs/fichinter/card.php index f618e6ff9ad..1746db04abf 100644 --- a/htdocs/fichinter/card.php +++ b/htdocs/fichinter/card.php @@ -1270,11 +1270,11 @@ else if ($id > 0 || ! empty($ref)) print ''; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'projectid'); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'projectid', 0, 0, 1); } else { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'none'); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project,'none', 0, 0); } print ''; print ''; diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index a06998eaeed..96de2262d25 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -1615,7 +1615,7 @@ elseif (! empty($object->id)) //print "$object->id, $object->socid, $object->fk_project"; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)?$object->socid:'-1', $object->fk_project, 'projectid', 0, 0); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)?$object->socid:'-1'), $object->fk_project, 'projectid', 0, 0, 1); } else { diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 5cb8e3fbd57..88d8d495737 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -215,6 +215,7 @@ if ($resql) $userstatic = new User($db); $objectstatic=new CommandeFournisseur($db); + $projectstatic=new Project($db); while ($i < min($num,$conf->liste_limit)) { diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index fafadfafd82..7f75f34a149 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -1941,7 +1941,7 @@ else print ''; if ($action == 'classify') { - $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)?$object->socid:'-1', $object->fk_project, 'projectid', 0, 0); + $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, (empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)?$object->socid:'-1'), $object->fk_project, 'projectid', 0, 0, 1); } else {