diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php
index a0790ba23fe..71b4d674044 100644
--- a/htdocs/admin/dict.php
+++ b/htdocs/admin/dict.php
@@ -695,7 +695,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) {
$listfieldmodify = explode(',', $tabfieldinsert[$id]);
$listfieldvalue = explode(',', $tabfieldvalue[$id]);
- // Check that all fields are filled
+ // Check that all mandatory fields are filled
$ok = 1;
foreach ($listfield as $f => $value) {
// Discard check of mandatory fields for country for some tables
@@ -1341,6 +1341,9 @@ if ($id) {
if ($value == 'short_label') {
$valuetoshow = $langs->trans("ShortLabel");
}
+ if ($value == 'fk_parent') {
+ $valuetoshow = $langs->trans("ParentID"); $class = 'center';
+ }
if ($value == 'range_account') {
$valuetoshow = $langs->trans("Range");
}
@@ -1686,6 +1689,9 @@ if ($id) {
if ($value == 'short_label') {
$valuetoshow = $langs->trans("ShortLabel");
}
+ if ($value == 'fk_parent') {
+ $valuetoshow = $langs->trans("ParentID"); $cssprefix = 'center ';
+ }
if ($value == 'range_account') {
$valuetoshow = $langs->trans("Range");
}
@@ -1995,16 +2001,13 @@ if ($id) {
if ($value == 'position') {
$class .= ' right';
}
- if ($value == 'localtax1_type') {
- $class .= ' nowrap';
- }
- if ($value == 'localtax2_type') {
+ if (in_array($value, array('localtax1_type', 'localtax2_type'))) {
$class .= ' nowrap';
}
if ($value == 'pos') {
$class .= ' right';
}
- if ($value == 'use_default') {
+ if (in_array($value, array('use_default', 'fk_parent'))) {
$class .= ' center';
}
if ($value == 'public') {
@@ -2271,7 +2274,13 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
print '
';
print $form->selectarray('source', $sourceList, (!empty($obj->{$value}) ? $obj->{$value}:''));
print ' | ';
+ } elseif (in_array($value, array('public', 'use_default'))) {
+ // Fields 0/1 with a combo select Yes/No
+ print '';
+ print $form->selectyesno($value, (!empty($obj->{$value}) ? $obj->{$value}:''), 1);
+ print ' | ';
} elseif ($value == 'private') {
+ // Fields 'no'/'yes' with a combo select Yes/No
print '';
print $form->selectyesno("private", (!empty($obj->{$value}) ? $obj->{$value}:''));
print ' | ';
@@ -2367,7 +2376,7 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
print $form->selectExpenseRanges($obj->fk_range);
print '';
} else {
- $fieldValue = isset($obj->{$value}) ? $obj->{$value}:'';
+ $fieldValue = isset($obj->{$value}) ? $obj->{$value}: '';
if ($value == 'sortorder') {
$fieldlist[$field] = 'position';
@@ -2377,15 +2386,21 @@ function fieldList($fieldlist, $obj = '', $tabname = '', $context = '')
if ($fieldlist[$field] == 'code') {
$class = 'maxwidth100';
}
- if (in_array($fieldlist[$field], array('dayrule', 'day', 'month', 'year', 'pos', 'use_default', 'affect', 'delay', 'position', 'public', 'sortorder', 'sens', 'category_type'))) {
+ if (in_array($fieldlist[$field], array('dayrule', 'day', 'month', 'year', 'pos', 'use_default', 'affect', 'delay', 'position', 'public', 'sortorder', 'sens', 'category_type', 'fk_parent'))) {
$class = 'maxwidth50 center';
}
- if (in_array($fieldlist[$field], array('use_default', 'public'))) {
+ if (in_array($fieldlist[$field], array('use_default', 'public', 'fk_parent'))) {
$classtd = 'center';
}
if (in_array($fieldlist[$field], array('libelle', 'label', 'tracking'))) {
$class = 'quatrevingtpercent';
}
+ // Fields that must be suggested as '0' instead of ''
+ if ($fieldlist[$field] == 'fk_parent') {
+ if (empty($fieldValue)) {
+ $fieldValue = '0';
+ }
+ }
print '';
$transfound = 0;
$transkey = '';
diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php
index 8b1a1dc8525..15f2b5fecca 100644
--- a/htdocs/core/modules/modTicket.class.php
+++ b/htdocs/core/modules/modTicket.class.php
@@ -127,19 +127,19 @@ class modTicket extends DolibarrModules
'tabsql' => array(
'SELECT f.rowid as rowid, f.code, f.pos, f.label, f.active, f.use_default FROM '.MAIN_DB_PREFIX.'c_ticket_type as f',
'SELECT f.rowid as rowid, f.code, f.pos, f.label, f.active, f.use_default FROM '.MAIN_DB_PREFIX.'c_ticket_severity as f',
- 'SELECT f.rowid as rowid, f.code, f.pos, f.label, f.active, f.use_default, f.public FROM '.MAIN_DB_PREFIX.'c_ticket_category as f',
+ 'SELECT f.rowid as rowid, f.code, f.pos, f.label, f.active, f.use_default, f.public, f.fk_parent FROM '.MAIN_DB_PREFIX.'c_ticket_category as f',
'SELECT f.rowid as rowid, f.code, f.pos, f.label, f.active, f.use_default FROM '.MAIN_DB_PREFIX.'c_ticket_resolution as f'
),
'tabsqlsort' => array("pos ASC", "pos ASC", "pos ASC", "pos ASC"),
- 'tabfield' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public", "code,label,pos,use_default"),
- 'tabfieldvalue' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public", "code,label,pos,use_default"),
- 'tabfieldinsert' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public", "code,label,pos,use_default"),
+ 'tabfield' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"),
+ 'tabfieldvalue' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"),
+ 'tabfieldinsert' => array("code,label,pos,use_default", "code,label,pos,use_default", "code,label,pos,use_default,public,fk_parent", "code,label,pos,use_default"),
'tabrowid' => array("rowid", "rowid", "rowid", "rowid"),
'tabcond' => array($conf->ticket->enabled, $conf->ticket->enabled, $conf->ticket->enabled, $conf->ticket->enabled),
'tabhelp' => array(
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")),
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1")),
- array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1"), 'public'=>$langs->trans("Enter0or1").' '.$langs->trans("TicketGroupIsPublicDesc")),
+ array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1"), 'public'=>$langs->trans("Enter0or1").' '.$langs->trans("TicketGroupIsPublicDesc"), 'fk_parent'=>$langs->trans("IfThisCategoryIsChildOfAnother")),
array('code'=>$langs->trans("EnterAnyCode"), 'use_default'=>$langs->trans("Enter0or1"))
),
);
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 81f03a9aee6..cd75af67b6d 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -118,6 +118,7 @@ MultiCurrencySetup=Multi-currency setup
MenuLimits=Limits and accuracy
MenuIdParent=Parent menu ID
DetailMenuIdParent=ID of parent menu (empty for a top menu)
+ParentID=Parent ID
DetailPosition=Sort number to define menu position
AllMenus=All
NotConfigured=Module/Application not configured
|