aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/compliance_control_sets_controller.rb14
-rw-r--r--app/models/compliance_control.rb43
-rw-r--r--app/views/compliance_control_sets/simple.html.slim34
-rw-r--r--app/views/compliance_controls/_filters.html.slim42
-rw-r--r--app/views/compliance_controls/_simple_filters.html.slim38
5 files changed, 136 insertions, 35 deletions
diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb
index f576a55c5..ac07c5495 100644
--- a/app/controllers/compliance_control_sets_controller.rb
+++ b/app/controllers/compliance_control_sets_controller.rb
@@ -21,12 +21,22 @@ class ComplianceControlSetsController < InheritedResources::Base
@compliance_controls = @compliance_control_set.compliance_controls
@q_controls_form = @compliance_controls.ransack(params[:q])
@compliance_controls =
- decorate_compliance_controls( @compliance_controls)
- .group_by(&:compliance_control_block)
+ decorate_compliance_controls( @compliance_controls)
+ .group_by(&:compliance_control_block)
}
end
end
+ def simple
+ show! do | format |
+ format.html do
+ @compliance_controls = @compliance_control_set.compliance_controls
+ @q_controls_form = @compliance_controls.ransack(params[:q])
+ @compliance_control_set = @compliance_control_set.decorate
+ end
+ end
+ end
+
def clone
ComplianceControlSetCloner.new.copy(params[:id], current_organisation.id)
flash[:notice] = I18n.t("compliance_control_sets.errors.operation_in_progress")
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index 08efa7e9a..e00a2c109 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -1,9 +1,31 @@
class ComplianceControl < ActiveRecord::Base
+
+ class << self
+ def criticities; %i(warning error) end
+ def default_code; "" end
+ def dynamic_attributes
+ hstore_metadata_for_control_attributes.keys
+ end
+
+ def policy_class
+ ComplianceControlPolicy
+ end
+
+ def inherited(child)
+ child.instance_eval do
+ def model_name
+ ComplianceControl.model_name
+ end
+ end
+ super
+ end
+ end
+
extend Enumerize
belongs_to :compliance_control_set
belongs_to :compliance_control_block
- enumerize :criticity, in: %i(warning error), scope: true, default: :warning
+ enumerize :criticity, in: criticities, scope: true, default: :warning
hstore_accessor :control_attributes, {}
validates :criticity, presence: true
@@ -23,25 +45,6 @@ class ComplianceControl < ActiveRecord::Base
direct_set_name: names.last))
end
- class << self
- def default_code; "" end
- def dynamic_attributes
- hstore_metadata_for_control_attributes.keys
- end
-
- def policy_class
- ComplianceControlPolicy
- end
-
- def inherited(child)
- child.instance_eval do
- def model_name
- ComplianceControl.model_name
- end
- end
- super
- end
- end
def initialize(attributes = {})
super
diff --git a/app/views/compliance_control_sets/simple.html.slim b/app/views/compliance_control_sets/simple.html.slim
new file mode 100644
index 000000000..73f127646
--- /dev/null
+++ b/app/views/compliance_control_sets/simple.html.slim
@@ -0,0 +1,34 @@
+/ PageHeader
+= pageheader 'Simple',
+ t('compliance_control_sets.show.title', name: @compliance_control_set.name),
+ 'Lorem ipsum dolor sit amet'
+
+
+/ PageContent
+.page_content
+ .container-fluid
+ .row
+ .col-lg-6.col-md-6.col-sm-12.col-xs-12
+ = definition_list t('metadatas'),
+ ComplianceControlSet.human_attribute_name(:name) => @compliance_control_set.name
+ - if params[:q].present? or @compliance_controls.any?
+ .row
+ .col-lg-12
+ = render '/compliance_controls/simple_filters'
+
+ - if @compliance_controls.any?
+ .row
+ .col-lg-12
+ .select_table
+ table
+ thead
+ th id
+ th name
+ tbody
+ - @compliance_controls.each do | cc |
+ tr
+ td
+ = cc.id
+ td
+ = cc.name
+
diff --git a/app/views/compliance_controls/_filters.html.slim b/app/views/compliance_controls/_filters.html.slim
index b9cb69a2a..55490e01b 100644
--- a/app/views/compliance_controls/_filters.html.slim
+++ b/app/views/compliance_controls/_filters.html.slim
@@ -1,27 +1,43 @@
= search_form_for @q_controls_form,
- url: compliance_control_set_compliance_controls_path(@compliance_control_set),
- builder: SimpleForm::FormBuilder,
+ url: compliance_control_set_path(@compliance_control_set),
+ builder: SimpleForm::FormBuilder,
class: 'form form-filter' do |f|
-// Rewriting the ransack filter copied from cc_stes/_filter
.ffg-row
.input-group.search_bar
- = f.search_field :name_cont, class: 'form-control', placeholder: t('compliance_control_sets.filters.name')
+ = f.search_field :name_cont,
+ class: 'form-control',
+ placeholder: t('compliance_controls.filters.name')
span.input-group-btn
button.btn.btn-default type='submit'
span.fa.fa-search
+
.ffg-row
.form-group.togglable
- = f.label t('activerecord.models.organisation.one'), required: false, class: 'control-label'
- = f.input :organisation_name_eq_any, collection: organisations_filters_values, as: :check_boxes, label: false, label_method: lambda {|w| ("<span>#{w.name}</span>").html_safe}, required: false, wrapper_html: {class: 'checkbox_list'}
-
+ = f.label t('activerecord.models.compliance_control_block.one'), required: false, class: 'control-label'
+ = f.input :compliance_control_block_name_eq_any,
+ collection: @compliance_control_set.compliance_control_blocks,
+ as: :check_boxes,
+ label: true,
+ label_method: lambda {|w| ("<span>#{w.name}</span>").html_safe},
+ required: false,
+ wrapper_html: {class: 'checkbox_list'}
+ .form-group.togglable
+ = f.label t('compliance_controls.filters.comment'), required: false, class: 'control-label'
+ = f.collection_check_boxes :comment_eq_any,
+ @compliance_control_set.compliance_controls,
+ :id, :comment,
+ label: true,
+ wrapper_html: {class: 'checkbox_list'}
.form-group.togglable
- = f.label Import.human_attribute_name(:updated_at), required: false, class: 'control-label'
- .filter_menu
- = f.simple_fields_for :updated_at do |p|
- = p.input :start_date, as: :date, label: false, wrapper_html: {class: 'date smart_date filter_menu-item'}, default: @begin_range, include_blank: @begin_range ? false : true
- = p.input :end_date, as: :date, label: false, wrapper_html: {class: 'date smart_date filter_menu-item'}, default: @end_range, include_blank: @end_range ? false : true
+ = f.label t('compliance_controls.filters.criticity'), required: false, class: 'control-label'
+ = f.input :criticity_eq,
+ collection: ComplianceControl.criticities,
+ as: :check_boxes,
+ label: true,
+ required: false,
+ wrapper_html: {class: 'checkbox_list'}
.actions
= link_to t('actions.erase'), @compliance_control_set, class: 'btn btn-link'
- = f.submit t('actions.filter'), class: 'btn btn-default', id: 'compliance_control_set_filter_btn'
+ = f.submit t('actions.filter'), class: 'btn btn-default', id: 'compliance_control_set_compliance_controls_filter_btn'
diff --git a/app/views/compliance_controls/_simple_filters.html.slim b/app/views/compliance_controls/_simple_filters.html.slim
new file mode 100644
index 000000000..da037c051
--- /dev/null
+++ b/app/views/compliance_controls/_simple_filters.html.slim
@@ -0,0 +1,38 @@
+= search_form_for @q_controls_form,
+ url: simple_compliance_control_set_path(@compliance_control_set),
+ builder: SimpleForm::FormBuilder,
+ class: 'form form-filter' do |f|
+
+ .ffg-row
+ .input-group.search_bar
+ = f.search_field :name_cont,
+ class: 'form-control',
+ placeholder: t('compliance_controls.filters.name')
+ span.input-group-btn
+ button.btn.btn-default type='submit'
+ span.fa.fa-search
+
+ .ffg-row
+ .form-group.togglable
+ = f.label t('activerecord.models.compliance_control_block.one'), required: false, class: 'control-label'
+ = f.input :compliance_control_block_id_eq_any,
+ collection: @compliance_control_set.compliance_control_blocks,
+ as: :check_boxes,
+ label: false,
+ label_method: lambda {|w| ("<span>#{w.name}</span>").html_safe},
+ required: false,
+ wrapper_html: {class: 'checkbox_list'}
+
+ .form-group.togglable
+ = f.label t('compliance_controls.filters.criticity'), required: false, class: 'control-label'
+ = f.input :criticity_eq,
+ collection: ComplianceControl.criticities,
+ as: :check_boxes,
+ label: false,
+ label_method: lambda {|w| ("<span>#{w}</span>").html_safe},
+ required: false,
+ wrapper_html: {class: 'checkbox_list'}
+
+ .actions
+ = link_to t('actions.erase'), @compliance_control_set, class: 'btn btn-link'
+ = f.submit t('actions.filter'), class: 'btn btn-default', id: 'compliance_control_set_compliance_controls_filter_btn'