diff options
| author | Robert | 2017-12-11 10:00:46 +0100 |
|---|---|---|
| committer | Robert | 2017-12-11 10:00:46 +0100 |
| commit | 406d99df9824d7d7dda72b3cc47504840324251c (patch) | |
| tree | eb83d8bdf9d1e3c30e2e41239233a2051b399fd0 | |
| parent | 3e0c0056b931cd3cfbb244a806d6e1ac100b7c43 (diff) | |
| parent | c9f2073abb231c67e87b5d0685c873c064420caa (diff) | |
| download | chouette-core-406d99df9824d7d7dda72b3cc47504840324251c.tar.bz2 | |
Merge branch 'master' of github.com:af83/stif-boiv
| -rw-r--r-- | app/helpers/compliance_control_sets_helper.rb | 77 | ||||
| -rw-r--r-- | app/views/compliance_control_sets/show.html.slim | 91 | ||||
| -rw-r--r-- | config/locales/compliance_control_blocks.en.yml | 5 | ||||
| -rw-r--r-- | config/locales/compliance_control_blocks.fr.yml | 5 | ||||
| -rw-r--r-- | config/locales/compliance_controls.en.yml | 1 | ||||
| -rw-r--r-- | config/locales/compliance_controls.fr.yml | 3 | ||||
| -rw-r--r-- | spec/features/compliance_control_sets_spec.rb | 10 |
7 files changed, 116 insertions, 76 deletions
diff --git a/app/helpers/compliance_control_sets_helper.rb b/app/helpers/compliance_control_sets_helper.rb index bb2a72623..b5d0c5afc 100644 --- a/app/helpers/compliance_control_sets_helper.rb +++ b/app/helpers/compliance_control_sets_helper.rb @@ -36,4 +36,81 @@ module ComplianceControlSetsHelper nil end end + + def render_compliance_control_block(block=nil) + content_tag :div, class: 'row' do + content_tag :div, class: 'col-lg-12' do + content_tag :h2 do + concat transport_mode_text(block) + concat dropdown(block) if block + end + end + end + end + + def dropdown(block) + dropdown_button = content_tag :div, class: 'btn dropdown-toggle', "data-toggle": "dropdown" do + content_tag :div, nil, class: 'span fa fa-cog' + end + + dropdown_menu = content_tag :ul, class: 'dropdown-menu' do + link_1 = content_tag :li do + link_to t('compliance_control_sets.actions.edit'), edit_compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id) + end + link_2 = content_tag :li do + link_to t('compliance_control_sets.actions.destroy'), compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id), :method => :delete, :data => {:confirm => t('compliance_control_sets.actions.destroy_confirm')} + end + link_1 + link_2 + end + + content_tag :div, class: 'btn-group' do + dropdown_button + dropdown_menu + end + + end + + def render_compliance_controls(compliance_controls) + content_tag :div, class: 'row' do + content_tag :div, class: 'col-lg-12' do + compliance_controls.try(:any?) ? render_table_builder(compliance_controls) : render_no_controls + end + end + + end + + def render_table_builder(compliance_controls) + table = content_tag :div, class: 'select_table' do + table_builder_2 compliance_controls, + [ + TableBuilderHelper::Column.new( + key: :code, + attribute: 'code' + ), + TableBuilderHelper::Column.new( + key: :name, + attribute: 'name', + link_to: lambda do |compliance_control| + compliance_control_set_compliance_control_path(@compliance_control_set, compliance_control) + end + ), + TableBuilderHelper::Column.new( + key: :criticity, + attribute: 'criticity' + ), + TableBuilderHelper::Column.new( + key: :comment, + attribute: 'comment' + ), + ], + sortable: true, + cls: 'table has-filter has-search', + model: ComplianceControl + end + metas = content_tag :div, I18n.t('compliance_control_blocks.metas.control', count: compliance_controls.count), class: 'pull-right' + table + metas + end + + def render_no_controls + content_tag :div, I18n.t('compliance_control_blocks.metas.control.zero'), class: 'alert alert-warning' + end end
\ No newline at end of file diff --git a/app/views/compliance_control_sets/show.html.slim b/app/views/compliance_control_sets/show.html.slim index e6416fda4..4385505b0 100644 --- a/app/views/compliance_control_sets/show.html.slim +++ b/app/views/compliance_control_sets/show.html.slim @@ -26,82 +26,25 @@ .col-lg-12 = render '/compliance_controls/filters' + / compliance controls without block + - if @direct_compliance_controls.try(:any?) + = render_compliance_control_block + = render_compliance_controls(@direct_compliance_controls) - - if @direct_compliance_controls.try(:any?) - .row - .col-lg-12 - h2 - = transport_mode_text() - .row - .col-lg-12 - .select_table - = table_builder_2 @direct_compliance_controls, - [ \ - TableBuilderHelper::Column.new( \ - key: :code, \ - attribute: 'code' \ - ), \ - TableBuilderHelper::Column.new( \ - key: :name, \ - attribute: 'name', \ - link_to: lambda do |compliance_control| \ - compliance_control_set_compliance_control_path(@compliance_control_set, compliance_control) \ - end \ - ), \ - TableBuilderHelper::Column.new( \ - key: :criticity, \ - attribute: 'criticity' \ - ), \ - TableBuilderHelper::Column.new( \ - key: :comment, \ - attribute: 'comment' \ - ), \ - ], - sortable: true, - cls: 'table has-filter has-search', - model: ComplianceControl - + / compliance controls with block + - if params[:q] && params[:q][:compliance_control_block_id_eq_any].try(:present?) - @blocks_to_compliance_controls_map.each do |block, compliance_controls| + = render_compliance_control_block(block) + = render_compliance_controls(compliance_controls) + - else + - @compliance_control_set.compliance_control_blocks.each do |block| + = render_compliance_control_block(block) + = render_compliance_controls(@blocks_to_compliance_controls_map[block]) - - if compliance_controls.try(:any?) - .row - .col-lg-12 - h2 - = transport_mode_text(block) - .btn-group - .btn.dropdown-toggle{ data-toggle="dropdown" } - .span.fa.fa-cog - ul.dropdown-menu - li - = link_to t('compliance_control_sets.actions.edit'), edit_compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id) - = link_to t('compliance_control_sets.actions.destroy'), compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id), :method => :delete, :data => {:confirm => t('compliance_control_sets.actions.destroy_confirm')} - .row - .col-lg-12 - .select_table - = table_builder_2 compliance_controls, - [ \ - TableBuilderHelper::Column.new( \ - key: :code, \ - attribute: 'code' \ - ), \ - TableBuilderHelper::Column.new( \ - key: :name, \ - attribute: 'name', \ - link_to: lambda do |compliance_control| \ - compliance_control_set_compliance_control_path(@compliance_control_set, compliance_control) \ - end \ - ), \ - TableBuilderHelper::Column.new( \ - key: :criticity, \ - attribute: 'criticity' \ - ), \ - TableBuilderHelper::Column.new( \ - key: :comment, \ - attribute: 'comment' \ - ), \ - ], - sortable: true, - cls: 'table has-filter has-search', - model: ComplianceControl + - if params[:q].present? && !@blocks_to_compliance_controls_map.try(:any?) && @direct_compliance_controls.nil? + .row.mt-xs + .col-lg-12 + = replacement_msg t('compliance_controls.search_no_results') + / flotted buttons = flotted_links @compliance_control_set.id diff --git a/config/locales/compliance_control_blocks.en.yml b/config/locales/compliance_control_blocks.en.yml index fbface6b2..150157ff3 100644 --- a/config/locales/compliance_control_blocks.en.yml +++ b/config/locales/compliance_control_blocks.en.yml @@ -18,3 +18,8 @@ fr: title: Create a control block edit: title: "Edit the control block : %{compliance_control_block}" + metas: + control: + zero: "No controls" + one: "1 control" + other: "%{count} controls" diff --git a/config/locales/compliance_control_blocks.fr.yml b/config/locales/compliance_control_blocks.fr.yml index 66df008be..1222b5c1a 100644 --- a/config/locales/compliance_control_blocks.fr.yml +++ b/config/locales/compliance_control_blocks.fr.yml @@ -18,3 +18,8 @@ fr: title: Créer un groupe de contrôle(s) edit: title: "Editer le groupe de contrôle : %{compliance_control_block}" + metas: + control: + zero: "Aucun contrôle" + one: "1 contrôle" + other: "%{count} contrôles"
\ No newline at end of file diff --git a/config/locales/compliance_controls.en.yml b/config/locales/compliance_controls.en.yml index 0c476a46d..f9d7d23d2 100644 --- a/config/locales/compliance_controls.en.yml +++ b/config/locales/compliance_controls.en.yml @@ -13,6 +13,7 @@ en: route: 'Route' routing_constraint_zone: 'RoutingConstraint' vehicle_journey: 'VehicleJourney' + search_no_results: 'No compliance controls matching your query' min_max_values: "the minimum (%{min}) is not supposed to be greater than the maximum (%{max})" errors: incoherent_control_sets: "Impossible to assign a control to a set (id: %{direct_set_name}) differing from the one of its group (id: %{indirect_set_name})" diff --git a/config/locales/compliance_controls.fr.yml b/config/locales/compliance_controls.fr.yml index 70227b01f..b77b4e6d4 100644 --- a/config/locales/compliance_controls.fr.yml +++ b/config/locales/compliance_controls.fr.yml @@ -4,7 +4,7 @@ fr: prefix: 'Copie de' filters: criticity: Criticité - name: "Chercher le nom ou code d'un contrôl" + name: "Chercher le nom ou code d'un contrôle" subclass: Objet subclasses: generic: 'Généric' @@ -13,6 +13,7 @@ fr: route: 'Itinéraire' routing_constraint_zone: 'ITL' vehicle_journey: 'Course' + search_no_results: 'Aucun contrôle ne correspond à votre recherche' min_max_values: "la valeur de minimum (%{min}) ne doit pas être superieur à la valuer du maximum (%{max})" errors: incoherent_control_sets: "Le contrôle ne peut pas être associé à un jeu de contrôle (id: %{direct_set_name}) différent de celui de son groupe (id: %{indirect_set_name})" diff --git a/spec/features/compliance_control_sets_spec.rb b/spec/features/compliance_control_sets_spec.rb index bcb989cdc..64125a577 100644 --- a/spec/features/compliance_control_sets_spec.rb +++ b/spec/features/compliance_control_sets_spec.rb @@ -1,4 +1,5 @@ RSpec.describe "ComplianceControlSets", type: :feature do + include TransportModeHelper login_user @@ -12,7 +13,7 @@ RSpec.describe "ComplianceControlSets", type: :feature do } before do - blox.first.update transport_mode: 'bus', transport_submode: 'bus' + blox.first.update transport_mode: 'bus', transport_submode: 'nightBus' blox.second.update transport_mode: 'train', transport_submode: 'train' make_control @@ -75,6 +76,13 @@ RSpec.describe "ComplianceControlSets", type: :feature do end end + context "wthout filter on compliance control block applied" do + it "we can see empty blocks" do + blox.first.compliance_controls.destroy_all + expect(page).to have_content (transport_mode_text(blox.first) ) + end + end + end def make_control ccblock=nil, times: 1, severity: :warning |
