diff --git a/application/forms/Security/RoleForm.php b/application/forms/Security/RoleForm.php index 4afd48b8c..ff44e820f 100644 --- a/application/forms/Security/RoleForm.php +++ b/application/forms/Security/RoleForm.php @@ -171,16 +171,24 @@ class RoleForm extends RepositoryForm 'autosubmit' => isset($spec['isFullPerm']), 'disabled' => $hasFullPerm || $hasAdminPerm ?: null, 'value' => $hasFullPerm || $hasAdminPerm, - 'label' => preg_replace( - // Adds a zero-width char after each slash to help browsers break onto newlines - '~(?$1$2', - $name - ) - ), + 'label' => isset($spec['label']) + ? $spec['label'] + : join('', iterator_to_array(call_user_func(function ($segments) { + foreach ($segments as $segment) { + if ($segment[0] === '/') { + // Adds a zero-width char after each slash to help browsers break onto newlines + yield '/​'; + yield '' . substr($segment, 1) . ''; + } else { + yield '' . $segment . ''; + } + } + }, preg_split( + '~(/[^/]+)~', + $name, + -1, + PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY + )))), 'description' => isset($spec['description']) ? $spec['description'] : $name, 'decorators' => array_merge( array_slice(self::$defaultElementDecorators, 0, 3), @@ -220,16 +228,24 @@ class RoleForm extends RepositoryForm 'text', $elementName, [ - 'label' => preg_replace( - // Adds a zero-width char after each slash to help browsers break onto newlines - '~(?$1$2', - $name - ) - ), + 'label' => isset($spec['label']) + ? $spec['label'] + : join('', iterator_to_array(call_user_func(function ($segments) { + foreach ($segments as $segment) { + if ($segment[0] === '/') { + // Add zero-width char after each slash to help browsers break onto newlines + yield '/​'; + yield '' . substr($segment, 1) . ''; + } else { + yield '' . $segment . ''; + } + } + }, preg_split( + '~(/[^/]+)~', + $name, + -1, + PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY + )))), 'description' => $spec['description'], 'style' => $isUnrestricted ? 'text-decoration:line-through;' : '', 'readonly' => $isUnrestricted ?: null diff --git a/public/css/icinga/main.less b/public/css/icinga/main.less index 15bee5cda..0fe9ed634 100644 --- a/public/css/icinga/main.less +++ b/public/css/icinga/main.less @@ -45,6 +45,10 @@ } } +.no-wrap { + white-space: nowrap; +} + .pull-right { float: right; }