diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index e9b23bfdbd9..054676aca5d 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1893,10 +1893,12 @@ class ExtraFields $out .= ''; $out .= ''; + $collapse_group = $key.(!empty($object->id) ? '_'.$object->id : ''); + //$extrafields_collapse_num = $this->attributes[$object->table_element]['pos'][$key].(!empty($object->id)?'_'.$object->id:''); + if ($extrafield_collapse_display_value == 1 || $extrafield_collapse_display_value == 2) { // Set the collapse_display status to cookie in priority or if ignorecollapsesetup is 1, if cookie and ignorecollapsesetup not defined, use the setup. - $extrafields_collapse_num = $this->attributes[$object->table_element]['pos'][$key].(!empty($object->id)?'_'.$object->id:''); - $this->expand_display[$extrafields_collapse_num] = $expand_display; + $this->expand_display[$collapse_group] = $expand_display; if (!empty($conf->use_javascript_ajax)) { $out .= ''."\n"; @@ -1904,15 +1906,15 @@ class ExtraFields $out .= 'jQuery(document).ready(function(){'."\n"; if ($expand_display === false) { $out .= ' console.log("Inject js for the collapsing of extrafield '.$key.' - hide");'."\n"; - $out .= ' jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").hide();'."\n"; + $out .= ' jQuery(".trextrafields_collapse'.$collapse_group.'").hide();'."\n"; } else { $out .= ' console.log("Inject js for collapsing of extrafield '.$key.' - keep visible and set cookie");'."\n"; $out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=1; path='.$_SERVER["PHP_SELF"].'"'."\n"; } $out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').'").click(function(){'."\n"; - $out .= ' console.log("We click on collapse/uncollapse .trextrafields_collapse'.$extrafields_collapse_num.'");'."\n"; - $out .= ' jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").toggle(100, function(){'."\n"; - $out .= ' if (jQuery(".trextrafields_collapse'.$extrafields_collapse_num.'").is(":hidden")) {'."\n"; + $out .= ' console.log("We click on collapse/uncollapse .trextrafields_collapse'.$collapse_group.'");'."\n"; + $out .= ' jQuery(".trextrafields_collapse'.$collapse_group.'").toggle(100, function(){'."\n"; + $out .= ' if (jQuery(".trextrafields_collapse'.$collapse_group.'").is(":hidden")) {'."\n"; $out .= ' jQuery("#trextrafieldseparator'.$key.(!empty($object->id)?'_'.$object->id:'').' '.$tagtype_dyn.' span").addClass("fa-plus-square").removeClass("fa-minus-square");'."\n"; $out .= ' document.cookie = "DOLCOLLAPSE_'.$object->table_element.'_extrafields_'.$key.'=0; path='.$_SERVER["PHP_SELF"].'"'."\n"; $out .= ' } else {'."\n"; @@ -1924,6 +1926,8 @@ class ExtraFields $out .= '});'."\n"; $out .= ''."\n"; } + } else { + $this->expand_display[$collapse_group] = 1; } return $out; diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php index 8afa9a16ff0..f14052766ee 100644 --- a/htdocs/core/tpl/extrafields_view.tpl.php +++ b/htdocs/core/tpl/extrafields_view.tpl.php @@ -107,19 +107,7 @@ if (empty($reshook) && isset($extrafields->attributes[$object->table_element]['l // Print line tr of extra field if ($extrafields->attributes[$object->table_element]['type'][$tmpkeyextra] == 'separate') { - $extrafields_collapse_num = ''; - $extrafield_param = $extrafields->attributes[$object->table_element]['param'][$tmpkeyextra]; - if (!empty($extrafield_param) && is_array($extrafield_param)) { - $extrafield_param_list = array_keys($extrafield_param['options']); - - if (count($extrafield_param_list) > 0) { - $extrafield_collapse_display_value = intval($extrafield_param_list[0]); - - if ($extrafield_collapse_display_value == 1 || $extrafield_collapse_display_value == 2) { - $extrafields_collapse_num = $extrafields->attributes[$object->table_element]['pos'][$tmpkeyextra]; - } - } - } + $extrafields_collapse_num = $tmpkeyextra; print $extrafields->showSeparator($tmpkeyextra, $object);