diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php
index 27be0636fdf..f158a86f5da 100644
--- a/htdocs/core/class/html.formcompany.class.php
+++ b/htdocs/core/class/html.formcompany.class.php
@@ -520,7 +520,7 @@ class FormCompany
* @param string $htmlname Name of HTML form
* @param array $limitto Disable answers that are not id in this array list
* @param int $forceid This is to force another object id than object->id
- * @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
+ * @param array $events More js events option. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
* @param string $moreparam String with more param to add into url when noajax search is used.
* @return int The selected third party ID
*/
@@ -573,13 +573,13 @@ class FormCompany
var obj = '.json_encode($events).';
$.each(obj, function(key,values) {
if (values.method.length) {
- getMethod'.$htmlname.'(values);
+ runJsCodeForEvent'.$htmlname.'(values);
}
});
});
// Function used to execute events when search_htmlname change
- function getMethod'.$htmlname.'(obj) {
+ function runJsCodeForEvent'.$htmlname.'(obj) {
var id = $("#'.$htmlname.'").val();
var method = obj.method;
var url = obj.url;
@@ -612,8 +612,8 @@ class FormCompany
}
print "\n".''."\n";
- print '
';
+ //print "\n";
return $socid;
}
else
diff --git a/htdocs/core/class/html.formintervention.class.php b/htdocs/core/class/html.formintervention.class.php
new file mode 100644
index 00000000000..0c42e1acdbc
--- /dev/null
+++ b/htdocs/core/class/html.formintervention.class.php
@@ -0,0 +1,144 @@
+
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ * or see http://www.gnu.org/
+ */
+
+/**
+ * \file htdocs/core/class/html.formintervention.class.php
+ * \ingroup core
+ * \brief File of class with all html predefined components
+ */
+
+/**
+ * Class to manage generation of HTML components for contract module
+ */
+class FormIntervention
+{
+ var $db;
+ var $error;
+
+
+ /**
+ * Constructor
+ *
+ * @param DoliDB $db Database handler
+ */
+ public function __construct($db)
+ {
+ $this->db = $db;
+ }
+
+
+ /**
+ * Show a combo list with contracts qualified for a third party
+ *
+ * @param int $socid Id third party (-1=all, 0=only interventions not linked to a third party, id=intervention not linked or linked to third party id)
+ * @param int $selected Id intervention preselected
+ * @param string $htmlname Nom de la zone html
+ * @param int $maxlength Maximum length of label
+ * @param int $showempty Show empty line
+ * @return int Nbre of project if OK, <0 if KO
+ */
+ function select_interventions($socid=-1, $selected='', $htmlname='interventionid', $maxlength=16, $showempty=1)
+ {
+ global $db,$user,$conf,$langs;
+
+ $out='';
+
+ $hideunselectables=false;
+
+ // Search all contacts
+ $sql = 'SELECT f.rowid, f.ref, f.fk_soc, f.fk_statut';
+ $sql.= ' FROM '.MAIN_DB_PREFIX .'fichinter as f';
+ $sql.= " WHERE f.entity = ".$conf->entity;
+ //if ($contratListId) $sql.= " AND c.rowid IN (".$contratListId.")";
+ if ($socid != '')
+ {
+ if ($socid == '0') $sql.= " AND (f.fk_soc = 0 OR f.fk_soc IS NULL)";
+ else $sql.= " AND f.fk_soc = ".$socid;
+ }
+
+ dol_syslog(get_class($this)."::select_intervention", LOG_DEBUG);
+ $resql=$db->query($sql);
+ if ($resql)
+ {
+ $out.='';
+ $db->free($resql);
+ return $out;
+ }
+ else
+ {
+ dol_print_error($db);
+ return '';
+ }
+ }
+}
diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
index 673f64e6261..9081fba5550 100644
--- a/htdocs/core/lib/ajax.lib.php
+++ b/htdocs/core/lib/ajax.lib.php
@@ -311,7 +311,7 @@ function ajax_dialog($title,$message,$w=350,$h=150)
* TODO: It is used when COMPANY_USE_SEARCH_TO_SELECT and CONTACT_USE_SEARCH_TO_SELECT are set by html.formcompany.class.php. Should use ajax_autocompleter instead like done by html.form.class.php for select_produits.
*
* @param string $htmlname Name of html select field
- * @param array $events Event options. Example: array(array('method'=>'getContacts', 'url'=>dol_buildpath('/core/ajax/contacts.php',1), 'htmlname'=>'contactid', 'params'=>array('add-customer-contact'=>'disabled')))
+ * @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
* @return string Return html string to convert a select field into a combo
*/
@@ -344,13 +344,13 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
var obj = '.json_encode($events).';
$.each(obj, function(key,values) {
if (values.method.length) {
- getMethod(values);
+ runJsCodeForEvent(values);
}
});
}
});
- function getMethod(obj) {
+ function runJsCodeForEvent(obj) {
var id = $("#'.$htmlname.'").val();
var method = obj.method;
var url = obj.url;
@@ -382,6 +382,7 @@ function ajax_combobox($htmlname, $events=array(), $minLengthToAutocomplete=0)
} else {
$("#inputautocomplete"+htmlname).val("");
}
+ $("select#" + htmlname).change(); /* Trigger event change */
});
}