aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorXinhui2017-09-28 14:49:18 +0200
committerXinhui2017-09-28 14:54:26 +0200
commit9c64fa920c50683eb87debf8a10c223da9096b30 (patch)
tree9185c388db612e046ff2f0ecb3fff37d90f04d65 /app
parentd4f93417331115d36880db771903446e6397a8bc (diff)
downloadchouette-core-9c64fa920c50683eb87debf8a10c223da9096b30.tar.bz2
ComplianceControls#select_type action
Diffstat (limited to 'app')
-rw-r--r--app/controllers/compliance_controls_controller.rb13
-rw-r--r--app/decorators/compliance_control_set_decorator.rb2
-rw-r--r--app/views/compliance_controls/select_type.html.slim8
3 files changed, 15 insertions, 8 deletions
diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb
index 846dbb253..be8b773e2 100644
--- a/app/controllers/compliance_controls_controller.rb
+++ b/app/controllers/compliance_controls_controller.rb
@@ -2,15 +2,14 @@ class ComplianceControlsController < BreadcrumbController
defaults resource_class: ComplianceControl
belongs_to :compliance_control_set
- def new
- @compliance_control_set = parent
- @compliance_control = GenericAttributeControl::MinMax.new
- @compliance_control.build_compliance_control_block
+ def select_type
+ @sti_subclasses = ComplianceControl.subclasses
end
- def update
- path = compliance_control_set_compliance_control_path(parent, resource)
- update!(notice: t('notice.compliance_control.updated')) { path }
+ def new
+ redirect_to(action: :select_type) unless params[:sti_class]
+ @compliance_control_set = parent
+ @compliance_control = params[:sti_class].constantize.new
end
private
diff --git a/app/decorators/compliance_control_set_decorator.rb b/app/decorators/compliance_control_set_decorator.rb
index f9e4de836..6a9040358 100644
--- a/app/decorators/compliance_control_set_decorator.rb
+++ b/app/decorators/compliance_control_set_decorator.rb
@@ -23,7 +23,7 @@ class ComplianceControlSetDecorator < Draper::Decorator
# if h.policy(ComplianceControl).create?
links << Link.new(
content: h.t('compliance_control_sets.actions.add_compliance_control'),
- href: h.new_compliance_control_set_compliance_control_path(object.id)
+ href: h.select_type_compliance_control_set_compliance_controls_path(object.id)
)
# end
links
diff --git a/app/views/compliance_controls/select_type.html.slim b/app/views/compliance_controls/select_type.html.slim
new file mode 100644
index 000000000..66a38279d
--- /dev/null
+++ b/app/views/compliance_controls/select_type.html.slim
@@ -0,0 +1,8 @@
+= form_tag(new_compliance_control_set_compliance_control_path, method: :get) do
+ - @sti_subclasses.each do |klass|
+ = radio_button_tag(:sti_class, klass)
+ = label_tag(:sti_class, klass)
+ end
+ = submit_tag("suivant")
+end
+