From 7fc8799c3d1eba8a1b6ccc3eeea615b4248a2501 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 15 Sep 2014 16:18:19 +0200 Subject: [PATCH] Qual: Clean code from user table tr td --- htdocs/core/class/html.formcompany.class.php | 18 +-- .../class/html.formintervention.class.php | 144 ++++++++++++++++++ htdocs/core/lib/ajax.lib.php | 7 +- 3 files changed, 157 insertions(+), 12 deletions(-) create mode 100644 htdocs/core/class/html.formintervention.class.php 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 ''; + //print ''; + //print '
'; + //print ''; + //print ''; - print ''; - print '
'; if ($obj->rowid == 0) { print ''; @@ -623,10 +623,10 @@ class FormCompany print ''; } print ajax_autocompleter(($socid?$socid:-1),$htmlname,DOL_URL_ROOT.'/societe/ajaxcompanies.php','',$minLength); - print '
'; - print "\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 */ }); }