| @@ 141-151 (lines=11) @@ | ||
| 138 | $mapper->remove($key); |
|
| 139 | ||
| 140 | // compensating the partial removal in Sonata Admin, that does not touch the groups when removing a field |
|
| 141 | if ($mapper instanceof BaseGroupedMapper) { |
|
| 142 | foreach ($groups = $this->{$fcts['groups']['getter']}() as $groupkey => $group) { |
|
| 143 | if (isset($group['fields'][$key])) { |
|
| 144 | unset($groups[$groupkey]['fields'][$key]); |
|
| 145 | if (!$groups[$groupkey]['fields']) { |
|
| 146 | unset($groups[$groupkey]); |
|
| 147 | } |
|
| 148 | $this->{$fcts['groups']['setter']}($groups); |
|
| 149 | } |
|
| 150 | } |
|
| 151 | } |
|
| 152 | } |
|
| 153 | } |
|
| 154 | } |
|
| @@ 196-209 (lines=14) @@ | ||
| 193 | ||
| 194 | // removing empty tabs |
|
| 195 | $tabs = $this->{$fcts['tabs']['getter']}(); |
|
| 196 | if (is_array($tabs)) { |
|
| 197 | foreach ($tabs as $tabkey => $tab) { |
|
| 198 | foreach ($tab['groups'] as $groupkey => $group) { |
|
| 199 | if (!isset($this->{$fcts['groups']['getter']}()[$group])) { |
|
| 200 | unset($tabs[$tabkey]['groups'][$groupkey]); |
|
| 201 | } |
|
| 202 | } |
|
| 203 | ||
| 204 | if (!$tabs[$tabkey]['groups']) { |
|
| 205 | unset($tabs[$tabkey]); |
|
| 206 | } |
|
| 207 | } |
|
| 208 | $this->{$fcts['tabs']['setter']}($tabs); |
|
| 209 | } |
|
| 210 | } |
|
| 211 | ||
| 212 | $this->fixTemplates($mapper); |
|