From caa80642c030693ce38de662c4da8efc440a28bd Mon Sep 17 00:00:00 2001 From: zmagod Date: Wed, 3 Aug 2016 09:34:10 +0200 Subject: [PATCH] [fixes SCI-304], [fixes SCI-37] --- app/assets/javascripts/experiments/index.js | 24 ++++++++++ app/controllers/experiments_controller.rb | 35 ++++++++++----- app/controllers/user_my_modules_controller.rb | 6 +-- app/helpers/permission_helper.rb | 2 +- app/views/experiments/_edit_modal.html.erb | 2 +- app/views/experiments/canvas.html.erb | 45 +++++++++++++++++-- .../shared/sidebar/_experiments.html.erb | 7 +-- config/locales/en.yml | 8 +++- config/routes.rb | 3 +- 9 files changed, 104 insertions(+), 28 deletions(-) diff --git a/app/assets/javascripts/experiments/index.js b/app/assets/javascripts/experiments/index.js index ec2d051c4..7fb43df6e 100644 --- a/app/assets/javascripts/experiments/index.js +++ b/app/assets/javascripts/experiments/index.js @@ -25,5 +25,29 @@ }); } + // Initialize edit experiment form + function initializeEditExperimentModal(){ + $("#edit-experiment") + .on("ajax:beforeSend", function(){ + animateSpinner(); + }) + .on("ajax:success", function(e, data){ + $('body').append($.parseHTML(data.html)); + $('#edit-experiment-modal').modal('show',{ + backdrop: true, + keyboard: false, + }); + }) + .on("ajax:error", function() { + animateSpinner(null, false); + // TODO + }) + .on("ajax:complete", function(){ + animateSpinner(null, false); + }); + } + + // init modals initializeNewExperimentModal(); + initializeEditExperimentModal(); })(); diff --git a/app/controllers/experiments_controller.rb b/app/controllers/experiments_controller.rb index 1ef63c8b6..9e55135bf 100644 --- a/app/controllers/experiments_controller.rb +++ b/app/controllers/experiments_controller.rb @@ -26,9 +26,9 @@ class ExperimentsController < ApplicationController @experiment.last_modified_by = current_user @experiment.project = @project if @experiment.save - flash[:success] = t('experiments.create.success_flash', experiment: @experiment.name) - # have to change to experiments path - redirect_to root_path + flash[:success] = t('experiments.create.success_flash', + experiment: @experiment.name) + redirect_to project_path(@project) else flash[:alert] = t('experiments.create.error_flash') redirect_to :back @@ -39,27 +39,40 @@ class ExperimentsController < ApplicationController @project = @experiment.project end + def edit + respond_to do |format| + format.json do + render json: { + html: render_to_string( + partial: 'edit_modal.html.erb' + ) + } + end + end + end + def update @experiment.update_attributes(experiment_params) @experiment.last_modified_by = current_user if @experiment.save - flash[:success] = t('experiments.update.success_flash', experiment: @experiment.name) - # have to change to experiments path - redirect_to root_path + flash[:success] = t('experiments.update.success_flash', + experiment: @experiment.name) + redirect_to canvas_experiment_path(@experiment) else flash[:alert] = t('experiments.update.error_flash') redirect_to :back end end - def archive_experiment + def archive @experiment.archived = true @experiment.archived_by = current_user @experiment.archived_on = DateTime.now + if @experiment.save - flash[:success] = t('experiments.archive.success_flash', experiment: @experiment.name) - # have to change to experiments path - redirect_to root_path + flash[:success] = t('experiments.archive.success_flash', + experiment: @experiment.name) + redirect_to project_path(@experiment.project) else flash[:alert] = t('experiments.archive.error_flash') redirect_to :back @@ -87,6 +100,6 @@ class ExperimentsController < ApplicationController end def choose_layout - action_name.in?(['index', 'archive']) ? 'main' : 'fluid' + action_name.in?(%w(index archive)) ? 'main' : 'fluid' end end diff --git a/app/controllers/user_my_modules_controller.rb b/app/controllers/user_my_modules_controller.rb index f050f227a..3b1ce6f34 100644 --- a/app/controllers/user_my_modules_controller.rb +++ b/app/controllers/user_my_modules_controller.rb @@ -62,7 +62,7 @@ class UserMyModulesController < ApplicationController ) Activity.create( user: current_user, - project: @um.my_module.project, + project: @um.my_module.experiment.project, my_module: @um.my_module, message: message, type_of: :assign_user_to_module @@ -116,7 +116,7 @@ class UserMyModulesController < ApplicationController Activity.create( user: current_user, - project: @um.my_module.project, + project: @um.my_module.experiment.project, my_module: @um.my_module, message: message, type_of: :unassign_user_from_module @@ -159,7 +159,7 @@ class UserMyModulesController < ApplicationController @my_module = MyModule.find_by_id(params[:my_module_id]) if @my_module - @project = @my_module.project + @project = @my_module.experiment.project else render_404 end diff --git a/app/helpers/permission_helper.rb b/app/helpers/permission_helper.rb index 162d332b3..3cdc584af 100644 --- a/app/helpers/permission_helper.rb +++ b/app/helpers/permission_helper.rb @@ -343,7 +343,7 @@ module PermissionHelper end def can_restore_experiment(experiment) - experiment.archived? and is_user_or_higher_of_project(experiment.project) + experiment.archived? && is_user_or_higher_of_project(experiment.project) end # ---- WORKFLOW PERMISSIONS ---- diff --git a/app/views/experiments/_edit_modal.html.erb b/app/views/experiments/_edit_modal.html.erb index 6da40a7a0..2fb063ad3 100644 --- a/app/views/experiments/_edit_modal.html.erb +++ b/app/views/experiments/_edit_modal.html.erb @@ -1,6 +1,6 @@