diff options
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin/Roles.pm | 11 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Form/Role.pm | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Form/Widget/Field/CheckboxGroup.pm | 6 | ||||
-rw-r--r-- | templates/web/base/admin/roles/index.html | 4 |
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' %] |