aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin/Roles.pm11
-rw-r--r--perllib/FixMyStreet/App/Form/Role.pm1
-rw-r--r--perllib/FixMyStreet/App/Form/Widget/Field/CheckboxGroup.pm6
-rw-r--r--templates/web/base/admin/roles/index.html4
4 files changed, 14 insertions, 8 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin/Roles.pm b/perllib/FixMyStreet/App/Controller/Admin/Roles.pm
index 15c96a4ed..902ed6255 100644
--- a/perllib/FixMyStreet/App/Controller/Admin/Roles.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin/Roles.pm
@@ -11,7 +11,10 @@ sub auto :Private {
my $user = $c->user;
if ($user->is_superuser) {
- $c->stash(rs => $c->model('DB::Role')->search_rs({}, { join => 'body', order_by => ['body.name', 'me.name'] }));
+ $c->stash(rs => $c->model('DB::Role')->search_rs({}, {
+ prefetch => 'body',
+ order_by => ['body.name', 'me.name']
+ }));
} elsif ($user->from_body) {
$c->stash(rs => $user->from_body->roles->search_rs({}, { order_by => 'name' }));
}
@@ -36,7 +39,7 @@ sub index :Path :Args(0) {
}
sub create :Local :Args(0) {
- my ($self, $c, $id) = @_;
+ my ($self, $c) = @_;
my $role = $c->stash->{rs}->new_result({});
return $self->form($c, $role);
@@ -60,7 +63,7 @@ sub form {
if ($c->get_param('delete_role')) {
$role->delete;
- $c->response->redirect($c->uri_for($self->action_for('list')));
+ $c->response->redirect($c->uri_for($self->action_for('index')));
$c->detach;
}
@@ -90,7 +93,7 @@ sub form {
$form->process(item => $role, params => $c->req->params);
return unless $form->validated;
- $c->response->redirect($c->uri_for($self->action_for('list')));
+ $c->response->redirect($c->uri_for($self->action_for('index')));
}
1;
diff --git a/perllib/FixMyStreet/App/Form/Role.pm b/perllib/FixMyStreet/App/Form/Role.pm
index f0711af15..0b0d20703 100644
--- a/perllib/FixMyStreet/App/Form/Role.pm
+++ b/perllib/FixMyStreet/App/Form/Role.pm
@@ -15,6 +15,7 @@ has_field 'body' => ( type => 'Select', empty_select => 'Select a body', require
has_field 'permissions' => (
type => 'Multiple',
widget => 'CheckboxGroup',
+ ul_class => 'permissions-checkboxes',
tags => { inline => 1, wrapper_tag => 'fieldset', },
);
diff --git a/perllib/FixMyStreet/App/Form/Widget/Field/CheckboxGroup.pm b/perllib/FixMyStreet/App/Form/Widget/Field/CheckboxGroup.pm
index 1dc55e49b..e755f1c11 100644
--- a/perllib/FixMyStreet/App/Form/Widget/Field/CheckboxGroup.pm
+++ b/perllib/FixMyStreet/App/Form/Widget/Field/CheckboxGroup.pm
@@ -4,11 +4,13 @@ use Moose::Role;
with 'HTML::FormHandler::Widget::Field::CheckboxGroup';
use namespace::autoclean;
+has ul_class => ( is => 'ro' );
+
sub render_element {
my ( $self, $result ) = @_;
$result ||= $self->result;
- my $output = '<ul class="permissions-checkboxes">';
+ my $output = '<ul class="' . ($self->ul_class || '') . '">';
foreach my $option ( @{ $self->{options} } ) {
if ( my $label = $option->{group} ) {
$label = $self->_localize( $label ) if $self->localize_labels;
@@ -23,7 +25,7 @@ sub render_element {
$output .= qq{</ul>\n</li>};
}
else {
- $output .= $self->render_option( $option, $result );
+ $output .= '<li>' . $self->render_option( $option, $result ) . '</li>';
}
}
$output .= '</ul>';
diff --git a/templates/web/base/admin/roles/index.html b/templates/web/base/admin/roles/index.html
index ba3fd434b..6c561199c 100644
--- a/templates/web/base/admin/roles/index.html
+++ b/templates/web/base/admin/roles/index.html
@@ -14,7 +14,7 @@
[% SET last_name = role.body.name %]
[% END %]
<tr>
- <td>[% role.name %]</td>
+ <td>[% role.name | html %]</td>
<td><ul class="no-margin no-bullets">
[% FOR perm IN role.permissions.sort %]
<li>[% labels.$perm %]
@@ -29,7 +29,7 @@
</table>
<p>
- <a href="[% c.uri_for(c.controller.action_for('create')) %]">Create</a>
+ <a href="[% c.uri_for(c.controller.action_for('create')) %]">[% loc('Create') %]</a>
</p>
[% INCLUDE 'admin/footer.html' %]