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,13 +2,17 @@
module Admin
class RulesController < BaseController
before_action :set_rule, except: [:index, :create]
before_action :set_rule, except: [:index, :new, :create]
def index
authorize :rule, :index?
@rules = Rule.ordered
@rule = Rule.new
end
def new
authorize :rule, :create?
@rule = Rule.new
end
def edit
@ -24,7 +28,7 @@ module Admin
redirect_to admin_rules_path
else
@rules = Rule.ordered
render :index
render :new
end
end

View file

@ -1,21 +1,12 @@
- content_for :page_title do
= t('admin.rules.title')
%p= t('admin.rules.description_html')
- content_for :heading_actions do
- if can? :create, :rule
= link_to t('admin.rules.add_new'), new_admin_rule_path, class: 'button'
%hr.spacer/
- if can? :create, :rule
= 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
%hr.spacer/
- if @rules.empty?
.muted-hint.center-text
= t 'admin.rules.empty'

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
resources :rules, only: [:index, :create, :edit, :update, :destroy]
resources :rules, only: [:index, :new, :create, :edit, :update, :destroy]
resources :webhooks do
member do

View file

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