diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
index eeca990ef28..12263d8df2c 100644
--- a/htdocs/categories/viewcat.php
+++ b/htdocs/categories/viewcat.php
@@ -142,6 +142,11 @@ if ($id > 0 && $removeelem > 0) {
$tmpobject = new User($db);
$result = $tmpobject->fetch($removeelem);
$elementtype = 'user';
+ } elseif ($type == Categorie::TYPE_TICKET && $user->rights->ticket->write) {
+ require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php';
+ $tmpobject = new Ticket($db);
+ $result = $tmpobject->fetch($removeelem);
+ $elementtype = 'ticket';
}
$result = $object->del_type($tmpobject, $elementtype);
@@ -167,7 +172,8 @@ if ($user->rights->categorie->supprimer && $action == 'confirm_delete' && $confi
if ($elemid && $action == 'addintocategory' &&
(($type == Categorie::TYPE_PRODUCT && ($user->rights->produit->creer || $user->rights->service->creer)) ||
($type == Categorie::TYPE_CUSTOMER && $user->rights->societe->creer) ||
- ($type == Categorie::TYPE_SUPPLIER && $user->rights->societe->creer)
+ ($type == Categorie::TYPE_SUPPLIER && $user->rights->societe->creer) ||
+ ($type == Categorie::TYPE_TICKET && $user->rights->ticket->write)
)) {
if ($type == Categorie::TYPE_PRODUCT) {
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
@@ -181,6 +187,10 @@ if ($elemid && $action == 'addintocategory' &&
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
$newobject = new Societe($db);
$elementtype = 'supplier';
+ } elseif ($type == Categorie::TYPE_TICKET) {
+ require_once DOL_DOCUMENT_ROOT.'/ticket/class/ticket.class.php';
+ $newobject = new Ticket($db);
+ $elementtype = 'ticket';
}
$result = $newobject->fetch($elemid);
@@ -1024,6 +1034,84 @@ if ($type == Categorie::TYPE_WAREHOUSE) {
}
}
+if ($type == Categorie::TYPE_TICKET)
+{
+ $permission = ($user->rights->categorie->creer || $user->rights->categorie->creer);
+
+ $tickets = $object->getObjectsInCateg($type, 0, $limit, $offset);
+ if ($tickets < 0)
+ {
+ dol_print_error($db, $object->error, $object->errors);
+ } else {
+ // Form to add record into a category
+ $showclassifyform = 1;
+ if ($showclassifyform)
+ {
+ print '
';
+ print '
';
+ }
+
+ print ''."\n";
+ }
+}
// End of page
llxFooter();
diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang
index 4b806e1edbd..20bfb122c75 100644
--- a/htdocs/langs/fr_FR/categories.lang
+++ b/htdocs/langs/fr_FR/categories.lang
@@ -17,6 +17,7 @@ ContactsCategoriesArea=Espace tags/catégories de contacts
AccountsCategoriesArea=Espace des tags/categories de comptes bancaires
ProjectsCategoriesArea=Espace des tags/catégories des projets
UsersCategoriesArea=Espace des tags/catégories des utilisateurs
+TicketsCategoriesArea=Espace tags/catégories des tickets
SubCats=Sous-catégories
CatList=Liste des tags/catégories
CatListAll=Liste de toutes les catégories (de tous types)
@@ -90,6 +91,7 @@ CategorieRecursivHelp=Si l'option est activé, quand un produit est ajouté dans
AddProductServiceIntoCategory=Ajouter le produit/service suivant
AddCustomerIntoCategory=Assigner cette catégorie au client
AddSupplierIntoCategory=Assigner cette catégorie au fournisseur
+AddTicketIntoCategory=Assigner cette catégorie au ticket
ShowCategory=Afficher tag/catégorie
ByDefaultInList=Par défaut dans la liste
ChooseCategory=Choisissez une catégorie
diff --git a/htdocs/ticket/card.php b/htdocs/ticket/card.php
index 5faa7b201b7..9be858fd795 100644
--- a/htdocs/ticket/card.php
+++ b/htdocs/ticket/card.php
@@ -31,6 +31,7 @@ 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.'/core/class/extrafields.class.php';
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
+require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
if (!empty($conf->projet->enabled)) {
include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
@@ -202,6 +203,10 @@ if (empty($reshook)) {
$contactid = GETPOST('contactid', 'int');
$type_contact = GETPOST("type", 'alpha');
+ // Category association
+ $categories = GETPOST('categories', 'array');
+ $object->setCategories($categories);
+
if ($contactid > 0 && $type_contact) {
$typeid = (GETPOST('typecontact') ? GETPOST('typecontact') : GETPOST('type'));
$result = $object->add_contact($contactid, $typeid, 'external');
@@ -312,7 +317,11 @@ if (empty($reshook)) {
$object->severity_code = GETPOST('severity_code', 'alpha');
$ret = $object->update($user);
- if ($ret <= 0) {
+ if ($ret > 0) {
+ // Category association
+ $categories = GETPOST('categories', 'array');
+ $object->setCategories($categories);
+ } else {
$error++;
}
@@ -1054,6 +1063,13 @@ if ($action == 'create' || $action == 'presend') {
print '';
}
+ // Categories
+ if ($conf->categorie->enabled) {
+ print '| '.$langs->trans("Categories").' | ';
+ print $form->showCategories($object->id, Categorie::TYPE_TICKET, 1);
+ print " |
";
+ }
+
// Other attributes
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php';