diff options
| author | Guillaume | 2017-10-18 14:19:47 +0200 |
|---|---|---|
| committer | Guillaume | 2017-10-18 14:20:19 +0200 |
| commit | 8f16ba911810f93c5a651e6fb9c355953e41d53c (patch) | |
| tree | 638b9e0d807c5c7ede70f504610f64b7bd5bf9a3 | |
| parent | 5559c8639f977b2ee946d3f982da1bbf0643a5a4 (diff) | |
| download | chouette-core-8f16ba911810f93c5a651e6fb9c355953e41d53c.tar.bz2 | |
add clone method in compliance_control_sets_controller, add duplicate button to IHM and flash message Refs #4741
| -rw-r--r-- | app/controllers/compliance_control_sets_controller.rb | 11 | ||||
| -rw-r--r-- | app/decorators/compliance_control_set_decorator.rb | 7 | ||||
| -rw-r--r-- | config/locales/compliance_control_sets.en.yml | 2 | ||||
| -rw-r--r-- | config/locales/compliance_control_sets.fr.yml | 2 | ||||
| -rw-r--r-- | config/routes.rb | 1 |
5 files changed, 21 insertions, 2 deletions
diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 9de90c21c..1f578f781 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -23,12 +23,19 @@ class ComplianceControlSetsController < BreadcrumbController end end - protected - def begin_of_association_chain current_organisation end + def clone + ComplianceControlSetCloner.new.copy(params[:id], current_organisation) + flash[:notice] = I18n.t("compliance_control_sets.errors.operation_in_progress") + redirect_to(compliance_control_sets_path) + end + + protected + + private def decorate_compliance_control_sets(compliance_control_sets) diff --git a/app/decorators/compliance_control_set_decorator.rb b/app/decorators/compliance_control_set_decorator.rb index f4aa607e1..7515316ce 100644 --- a/app/decorators/compliance_control_set_decorator.rb +++ b/app/decorators/compliance_control_set_decorator.rb @@ -4,6 +4,13 @@ class ComplianceControlSetDecorator < Draper::Decorator def action_links links = [] + # if policy.clone? + links << Link.new( + content: h.t('actions.clone'), + href: h.clone_compliance_control_set_path(object.id) + ) + # end + # if h.policy(object).destroy? links << Link.new( content: h.destroy_link_content, diff --git a/config/locales/compliance_control_sets.en.yml b/config/locales/compliance_control_sets.en.yml index f72342894..7e5381786 100644 --- a/config/locales/compliance_control_sets.en.yml +++ b/config/locales/compliance_control_sets.en.yml @@ -2,6 +2,8 @@ en: compliance_control_sets: clone: prefix: 'Copie de' + errors: + operation_in_progress: "The clone operation is in progress. Please wait and refresh the page in a few moments" index: title: Compliance control set new: New compliance control set diff --git a/config/locales/compliance_control_sets.fr.yml b/config/locales/compliance_control_sets.fr.yml index c31eb9423..ff559b945 100644 --- a/config/locales/compliance_control_sets.fr.yml +++ b/config/locales/compliance_control_sets.fr.yml @@ -2,6 +2,8 @@ fr: compliance_control_sets: clone: prefix: 'Copy of' + errors: + operation_in_progress: "L'opération de clone est en cours. Veuillez patienter et raffraichir la page dans quelques instants" index: title: "Liste des jeux de contrôles" edit: diff --git a/config/routes.rb b/config/routes.rb index b9e318f91..b105e77d6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -74,6 +74,7 @@ ChouetteIhm::Application.routes.draw do resources :api_keys, :only => [:edit, :update, :new, :create, :destroy] resources :compliance_control_sets do + get :clone, on: :member resources :compliance_controls, except: :index do get :select_type, on: :collection end |
