From 482b306920b8bd6e91f8eaf0540a7e5220478da9 Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Wed, 25 Apr 2018 15:09:24 +0200 Subject: [PATCH] Show enabled features for admins in manager --- Gemfile | 2 +- Gemfile.lock | 11 ++++++++--- app/dashboards/administrateur_dashboard.rb | 2 ++ app/fields/features_field.rb | 4 ++++ app/views/fields/features_field/_show.html.haml | 7 +++++++ config/features.rb | 12 +++++++++--- 6 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 app/fields/features_field.rb create mode 100644 app/views/fields/features_field/_show.html.haml diff --git a/Gemfile b/Gemfile index 4e03bcce1..a73fe2979 100644 --- a/Gemfile +++ b/Gemfile @@ -97,7 +97,7 @@ gem 'scenic' gem 'sanitize-url' -gem 'flipflop' +gem 'flipflop', github: 'voormedia/flipflop' # Cron jobs gem 'delayed_job_active_record' diff --git a/Gemfile.lock b/Gemfile.lock index f5347d04d..73ffc753f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,10 @@ +GIT + remote: git://github.com/voormedia/flipflop.git + revision: a6e639c6c631cdb5e74cb84a1a2a314ca3420579 + specs: + flipflop (2.3.1) + activesupport (>= 4.0) + GIT remote: https://github.com/breckenedge/delayed_job_web.git revision: 6bcb10e61ea2b9a44ffa16be8536dff46ad51449 @@ -203,8 +210,6 @@ GEM ffi (1.9.23) fission (0.5.0) CFPropertyList (~> 2.2) - flipflop (2.3.1) - activesupport (>= 4.0) fog (1.42.0) fog-aliyun (>= 0.1.0) fog-atmos @@ -805,7 +810,7 @@ DEPENDENCIES dotenv-rails draper factory_bot - flipflop + flipflop! fog fog-openstack font-awesome-rails diff --git a/app/dashboards/administrateur_dashboard.rb b/app/dashboards/administrateur_dashboard.rb index d8f7afe5e..7f581595d 100644 --- a/app/dashboards/administrateur_dashboard.rb +++ b/app/dashboards/administrateur_dashboard.rb @@ -15,6 +15,7 @@ class AdministrateurDashboard < Administrate::BaseDashboard procedures: Field::HasMany.with_options(limit: 20), registration_state: Field::String.with_options(searchable: false), current_sign_in_at: Field::DateTime, + features: FeaturesField }.freeze # COLLECTION_ATTRIBUTES @@ -38,6 +39,7 @@ class AdministrateurDashboard < Administrate::BaseDashboard :updated_at, :registration_state, :current_sign_in_at, + :features, :procedures, ].freeze diff --git a/app/fields/features_field.rb b/app/fields/features_field.rb new file mode 100644 index 000000000..a6ed5cbe2 --- /dev/null +++ b/app/fields/features_field.rb @@ -0,0 +1,4 @@ +require "administrate/field/base" + +class FeaturesField < Administrate::Field::Base +end diff --git a/app/views/fields/features_field/_show.html.haml b/app/views/fields/features_field/_show.html.haml new file mode 100644 index 000000000..d096740be --- /dev/null +++ b/app/views/fields/features_field/_show.html.haml @@ -0,0 +1,7 @@ +%table + - Flipflop.feature_set.features.each do |feature| + - if !feature.group || feature.group.key != :production + %tr + %td= feature.title + %td + = check_box_tag "Enabled", "enabled", field.data[feature.name], disabled: true diff --git a/config/features.rb b/config/features.rb index c582f0be4..2fb97a82e 100644 --- a/config/features.rb +++ b/config/features.rb @@ -1,14 +1,20 @@ Flipflop.configure do - strategy :cookie + strategy :cookie, + secure: Rails.env.production?, + httponly: true strategy :active_record strategy :user_preference strategy :default group :champs do - feature :champ_pj - feature :champ_siret + feature :champ_pj, + title: "Champ pièce justificative" + feature :champ_siret, + title: "Champ SIRET" end + feature :web_hook + group :production do feature :remote_storage, default: Rails.env.production? || Rails.env.staging?