diff options
author | Christopher Baines <mail@cbaines.net> | 2018-05-28 20:37:27 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-05-30 20:17:50 +0100 |
commit | de6535e52fb0eb92689d19e4025997bf090ebc75 (patch) | |
tree | ff348ae72c38a3aeffaa8dbb80429b31db555367 /app/controllers | |
parent | 3b135d15e48eafb99395b3f1a62e15e5de1c5a4f (diff) | |
download | govuk-mini-environment-admin-de6535e52fb0eb92689d19e4025997bf090ebc75.tar govuk-mini-environment-admin-de6535e52fb0eb92689d19e4025997bf090ebc75.tar.gz |
Enable editing the services when creating a mini environment
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/mini_environments_controller.rb | 69 |
1 files changed, 67 insertions, 2 deletions
diff --git a/app/controllers/mini_environments_controller.rb b/app/controllers/mini_environments_controller.rb index 94aa18c..237e8c5 100644 --- a/app/controllers/mini_environments_controller.rb +++ b/app/controllers/mini_environments_controller.rb @@ -19,6 +19,43 @@ # <http://www.gnu.org/licenses/>. class MiniEnvironmentsController < ApplicationController + DEFAULT_SERVICES = %w( + collections-publisher + contacts-admin + content-tagger + local-links-manager + manuals-publisher + maslow + policy-publisher + publisher + service-manual-publisher + short-url-manager + specialist-publisher + travel-advice-publisher + whitehall + + calculators + calendars + collections + email-alert-frontend + feedback + finder-frontend + frontend + government-frontend + licencefinder + manuals-frontend + service-manual-frontend + smartanswers + + draft-collections + draft-email-alert-frontend + draft-frontend + draft-government-frontend + draft-finder-frontend + draft-manuals-frontend + draft-service-manual-frontend + ).freeze + def show @mini_environment = MiniEnvironment.find(params[:id]) end @@ -58,9 +95,37 @@ class MiniEnvironmentsController < ApplicationController @mini_environment.signon_users[0]['passphrase'] = SecureRandom.hex @mini_environment.save! - @mini_environment.backend.build(@mini_environment) + redirect_to services_mini_environment_path(@mini_environment) + end + + def services + @mini_environment = MiniEnvironment.find(params[:id]) + + @mini_environment.transaction do + @mini_environment.govuk_guix_revision.all_available_services + .each do |service| - redirect_to @mini_environment + name = service['name'] + + next if params["#{name}-selected"] != 'on' + + revision = params["#{name}-revision"] + + @mini_environment.services.where( + name: name + ).delete_all + + @mini_environment.services.create( + name: name, + revision: revision + ) + end + end + + if request.put? + @mini_environment.backend.build(@mini_environment) + redirect_to @mini_environment + end end def perform_action |