diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php
index d9a7eb4b1c7..b5719d388f3 100644
--- a/htdocs/categories/class/categorie.class.php
+++ b/htdocs/categories/class/categorie.class.php
@@ -1152,6 +1152,7 @@ class Categorie extends CommonObject
$this->cats[$obj->rowid]['color'] = $obj->color;
$this->cats[$obj->rowid]['visible'] = $obj->visible;
$this->cats[$obj->rowid]['ref_ext'] = $obj->ref_ext;
+ $this->cats[$obj->rowid]['picto'] = 'category';
$i++;
}
} else {
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 0d560d741ce..8b057a6c702 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -50,6 +50,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
+if (isModEnabled('categorie')) {
+ require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
+ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcategory.class.php';
+}
// Load translation files required by the page
$langs->loadLangs(array('companies', 'propal', 'compta', 'bills', 'orders', 'products', 'deliveries', 'categories'));
@@ -1080,13 +1084,12 @@ if ($resql) {
$moreforfilter .= '';
}
// If the user can view products
- if (isModEnabled('categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
+ if (isModEnabled('categorie') && $user->hasRight('categorie', 'read') && ($user->rights->produit->lire || $user->rights->service->lire)) {
+ $searchCategoryProductOperator = -1;
include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
- $moreforfilter .= '
';
$tmptitle = $langs->trans('IncludingProductWithTag');
- $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT, null, 'parent', null, null, 1);
- $moreforfilter .= img_picto($tmptitle, 'category', 'class="pictofixedwidth"').$form->selectarray('search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0, '', 0, 0, 0, 0, (empty($conf->dol_optimize_smallscreen) ? 'maxwidth300 widthcentpercentminusx' : 'maxwidth250 widthcentpercentminusx'), 1);
- $moreforfilter .= '
';
+ $formcategory = new FormCategory($db);
+ $moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PRODUCT, array($search_product_category), 'maxwidth300', $searchCategoryProductOperator, 0, 0, $tmptitle);
}
if (isModEnabled('categorie') && $user->rights->categorie->lire) {
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index b104509a0c8..32f2fb9cde4 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4859,7 +4859,7 @@ class Form
* - int (id of category)
* - string (categories ids seprated by comma)
* - array (list of categories ids)
- * @param int $outputmode 0=HTML select string, 1=Array
+ * @param int $outputmode 0=HTML select string, 1=Array, 2=Array extended
* @param int $include [=0] Removed or 1=Keep only
* @param string $morecss More CSS
* @return string|array
@@ -4892,7 +4892,7 @@ class Form
while ($i < $num) {
$objp = $this->db->fetch_object($result);
if ($objp) {
- $cate_arbo[$objp->rowid] = array('id'=>$objp->rowid, 'fulllabel'=>$objp->label);
+ $cate_arbo[$objp->rowid] = array('id'=>$objp->rowid, 'fulllabel'=>$objp->label, 'color'=>'', 'picto'=>'category');
}
$i++;
}
@@ -4905,8 +4905,9 @@ class Form
$cate_arbo = $cat->get_full_arbo($type, $markafterid, $include);
}
- $output = '