Move server rule creation form to its own page (#34637)

This commit is contained in:
Claire 2025-05-14 11:43:07 +02:00 committed by GitHub
parent c45ce549af
commit aa04efb92a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 27 additions and 16 deletions

View file

@ -2,12 +2,16 @@
module Admin module Admin
class RulesController < BaseController class RulesController < BaseController
before_action :set_rule, except: [:index, :create] before_action :set_rule, except: [:index, :new, :create]
def index def index
authorize :rule, :index? authorize :rule, :index?
@rules = Rule.ordered @rules = Rule.ordered
end
def new
authorize :rule, :create?
@rule = Rule.new @rule = Rule.new
end end
@ -24,7 +28,7 @@ module Admin
redirect_to admin_rules_path redirect_to admin_rules_path
else else
@rules = Rule.ordered @rules = Rule.ordered
render :index render :new
end end
end end

View file

@ -1,18 +1,9 @@
- content_for :page_title do - content_for :page_title do
= t('admin.rules.title') = t('admin.rules.title')
%p= t('admin.rules.description_html') - content_for :heading_actions do
%hr.spacer/
- if can? :create, :rule - if can? :create, :rule
= simple_form_for @rule, url: admin_rules_path do |form| = link_to t('admin.rules.add_new'), new_admin_rule_path, class: 'button'
= render 'shared/error_messages', object: @rule
= render form
.actions
= form.button :button, t('admin.rules.add_new'), type: :submit
%hr.spacer/ %hr.spacer/

View file

@ -0,0 +1,14 @@
- content_for :page_title do
= t('admin.rules.add_new')
%p= t('admin.rules.description_html')
%hr.spacer/
= simple_form_for @rule, url: admin_rules_path do |form|
= render 'shared/error_messages', object: @rule
= render form
.actions
= form.button :button, t('admin.rules.add_new'), type: :submit

View file

@ -93,7 +93,7 @@ namespace :admin do
end end
end end
resources :rules, only: [:index, :create, :edit, :update, :destroy] resources :rules, only: [:index, :new, :create, :edit, :update, :destroy]
resources :webhooks do resources :webhooks do
member do member do

View file

@ -26,6 +26,8 @@ RSpec.describe 'Admin Rules' do
it 'creates new record with valid attributes' do it 'creates new record with valid attributes' do
visit admin_rules_path visit admin_rules_path
click_on I18n.t('admin.rules.add_new')
# Invalid submission # Invalid submission
fill_in 'rule_text', with: '' fill_in 'rule_text', with: ''
expect { submit_form } expect { submit_form }