From f52ccfd6069a0a27b5c332ae9790777ebaf33ca5 Mon Sep 17 00:00:00 2001 From: mlorb Date: Tue, 7 Aug 2018 11:47:26 +0200 Subject: [PATCH 01/11] fix editing of inventory items of hidden columns --- .../repositories/forms/repository_item_edit.js | 15 ++++++++++----- app/controllers/repository_rows_controller.rb | 10 +++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/repositories/forms/repository_item_edit.js b/app/assets/javascripts/repositories/forms/repository_item_edit.js index 1cbd8b08a..acb2b1cce 100644 --- a/app/assets/javascripts/repositories/forms/repository_item_edit.js +++ b/app/assets/javascripts/repositories/forms/repository_item_edit.js @@ -125,14 +125,19 @@ } else { var colId = element.replace('colId-', ''); var $el = $('#' + element); + // don't save anything if element is not visible + if($el.length == 0) { + return true; + } if($el.attr('type') === 'file') { - // don't save anything if element is deleted + // handle deleting of element if($el.attr('remove') === "true") { - return true; + formDataObj.append('repository_cells[' + colId + ']', 'remove'); + } else { + formDataObj.append('repository_cells[' + colId + ']', + getFileValue($el)); } - formDataObj.append('repository_cells[' + colId + ']', - getFileValue($el)); - } else if(value.length > 0) { + } else if(value.length >= 0) { formDataObj.append('repository_cells[' + colId + ']', value); } } diff --git a/app/controllers/repository_rows_controller.rb b/app/controllers/repository_rows_controller.rb index b7feb3f0e..084a0d9df 100644 --- a/app/controllers/repository_rows_controller.rb +++ b/app/controllers/repository_rows_controller.rb @@ -134,7 +134,7 @@ class RepositoryRowsController < ApplicationController existing.delete end elsif existing.value_type == 'RepositoryAssetValue' - next if value.blank? + existing.value.destroy && next if value == 'remove' if existing.value.asset.update(file: value) existing.value.asset.created_by = current_user existing.value.asset.last_modified_by = current_user @@ -145,6 +145,7 @@ class RepositoryRowsController < ApplicationController } end else + existing.value.destroy && next if value == '' existing.value.data = value if existing.value.save record_annotation_notification(@record, existing) @@ -156,17 +157,12 @@ class RepositoryRowsController < ApplicationController end end else + next if value == '' # Looks like it is a new cell, so we need to create new value, cell # will be created automatically next if create_cell_value(@record, key, value, errors).nil? end end - # Clean up empty cells, not present in updated record - @record.repository_cells.each do |cell| - next if cell.value_type == 'RepositoryListValue' - cell.value.destroy unless cell_params - .key?(cell.repository_column_id.to_s) - end else @record.repository_cells.each { |c| c.value.destroy } end From 45a4c1c598bd369ecd2ad049813c74442069e558 Mon Sep 17 00:00:00 2001 From: Zanz2 Date: Tue, 14 Aug 2018 13:26:48 +0200 Subject: [PATCH 02/11] changed the icons as per last comment in jira issue --- app/assets/javascripts/sitewide/drag_n_drop.js.erb | 4 ++-- app/views/my_modules/archive/_result.html.erb | 2 +- app/views/my_modules/protocols/_protocol_buttons.html.erb | 4 ++-- app/views/protocols/index.html.erb | 6 +++--- app/views/reports/new/_report_navigation.html.erb | 4 +++- app/views/search/index.html.erb | 2 +- app/views/search/results/_assets.html.erb | 2 +- app/views/search/results/_results.html.erb | 2 +- app/views/steps/_empty_step.html.erb | 2 +- app/views/steps/_form_assets.html.erb | 2 +- 10 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/assets/javascripts/sitewide/drag_n_drop.js.erb b/app/assets/javascripts/sitewide/drag_n_drop.js.erb index dcc56621c..2a468b317 100644 --- a/app/assets/javascripts/sitewide/drag_n_drop.js.erb +++ b/app/assets/javascripts/sitewide/drag_n_drop.js.erb @@ -270,7 +270,7 @@ function _uploadedAssetPreview(asset, i) { var html = '
'; html += '
'; - html += ''; + html += ''; html += '<%= I18n.t 'assets.drag_n_drop.file_label' %>'; html += '
'; html += ''; @@ -442,7 +442,7 @@ function _uploadedAssetPreview(asset, i) { var html = '
'; html += '
'; - html += ''; + html += ''; html += '<%= I18n.t 'assets.drag_n_drop.file_label' %>'; html += ' diff --git a/app/views/protocols/index.html.erb b/app/views/protocols/index.html.erb index 006ae081d..7d8c1ccc3 100644 --- a/app/views/protocols/index.html.erb +++ b/app/views/protocols/index.html.erb @@ -57,7 +57,7 @@ From 92a4a54ae7a3dbb456e678870ee23f983529d5c8 Mon Sep 17 00:00:00 2001 From: Luka Murn Date: Tue, 21 Aug 2018 16:46:47 +0200 Subject: [PATCH 08/11] Slighty change the parameter parsing of removed file cells --- .../javascripts/repositories/forms/repository_item_edit.js | 5 ++++- app/controllers/repository_rows_controller.rb | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/repositories/forms/repository_item_edit.js b/app/assets/javascripts/repositories/forms/repository_item_edit.js index acb2b1cce..0a36e2d9e 100644 --- a/app/assets/javascripts/repositories/forms/repository_item_edit.js +++ b/app/assets/javascripts/repositories/forms/repository_item_edit.js @@ -115,6 +115,7 @@ RepositoryItemEditForm.prototype.parseToFormObject = function(tableID, selectedRecord) { var formData = this.formData; var formDataObj = new FormData(); + var removeFileColumns = []; formDataObj.append('request_url', $(tableID).data('current-uri')); formDataObj.append('repository_row_id', $(selectedRecord).attr('id')); @@ -132,7 +133,8 @@ if($el.attr('type') === 'file') { // handle deleting of element if($el.attr('remove') === "true") { - formDataObj.append('repository_cells[' + colId + ']', 'remove'); + removeFileColumns.push(colId); + formDataObj.append('repository_cells[' + colId + ']', null); } else { formDataObj.append('repository_cells[' + colId + ']', getFileValue($el)); @@ -142,6 +144,7 @@ } } }); + formDataObj.append('remove_file_columns', JSON.stringify(removeFileColumns)); return formDataObj; } /** diff --git a/app/controllers/repository_rows_controller.rb b/app/controllers/repository_rows_controller.rb index 084a0d9df..942634b2f 100644 --- a/app/controllers/repository_rows_controller.rb +++ b/app/controllers/repository_rows_controller.rb @@ -134,7 +134,7 @@ class RepositoryRowsController < ApplicationController existing.delete end elsif existing.value_type == 'RepositoryAssetValue' - existing.value.destroy && next if value == 'remove' + existing.value.destroy && next if remove_file_columns_params.include?(key) if existing.value.asset.update(file: value) existing.value.asset.created_by = current_user existing.value.asset.last_modified_by = current_user @@ -365,6 +365,10 @@ class RepositoryRowsController < ApplicationController params.permit(repository_cells: {}).to_h[:repository_cells] end + def remove_file_columns_params + JSON.parse(params.fetch(:remove_file_columns) { '[]' }) + end + def selected_params params.permit(selected_rows: []).to_h[:selected_rows] end From 0322316d74eb1b7a9844370cd361a85c1641ddb1 Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Fri, 24 Aug 2018 12:11:28 +0200 Subject: [PATCH 09/11] Make API V1 togglable [SCI-2686] --- app/services/api.rb | 2 ++ config/initializers/api.rb | 2 ++ config/routes.rb | 6 ++++-- spec/rails_helper.rb | 3 +++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/services/api.rb b/app/services/api.rb index 589cc0275..a06f328be 100644 --- a/app/services/api.rb +++ b/app/services/api.rb @@ -16,12 +16,14 @@ module Api attr_accessor :core_api_token_ttl attr_accessor :core_api_token_iss attr_accessor :azure_ad_apps + attr_accessor :core_api_v1_preview def initialize @core_api_sign_alg = 'HS256' @core_api_token_ttl = 30.minutes @core_api_token_iss = 'SciNote' @azure_ad_apps = {} + @core_api_v1_preview = false end end end diff --git a/config/initializers/api.rb b/config/initializers/api.rb index 4ab3e3898..cad116bbf 100644 --- a/config/initializers/api.rb +++ b/config/initializers/api.rb @@ -9,6 +9,8 @@ Api.configure do |config| config.core_api_token_iss = ENV['CORE_API_TOKEN_ISS'] end + config.core_api_v1_preview = true if ENV['CORE_API_V1_PREVIEW'] + vars = ENV.select { |name, _| name =~ /^[[:alnum:]]*_AZURE_AD_APP_ID/ } vars.each do |name, value| app_name = name.sub('_AZURE_AD_APP_ID', '') diff --git a/config/routes.rb b/config/routes.rb index ddca6879a..785cd4805 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -540,8 +540,10 @@ Rails.application.routes.draw do get 'health', to: 'api#health' get 'status', to: 'api#status' post 'auth/token', to: 'api#authenticate' - namespace :v1 do - resources :teams, only: %i(index show) do + if Api.configuration.core_api_v1_preview + namespace :v1 do + resources :teams, only: %i(index show) do + end end end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 79e319489..1f74b4ae3 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -5,6 +5,9 @@ require 'database_cleaner' require 'devise' require_relative 'support/controller_macros' ENV['RAILS_ENV'] = 'test' + +ENV['CORE_API_V1_PREVIEW'] = 'true' + require File.expand_path('../../config/environment', __FILE__) # Prevent database truncation if the environment is production abort('The Rails environment is running in production mode!') if Rails.env.production? From b71c5d14c65ca34766cb87daa0e1536f6405ffaf Mon Sep 17 00:00:00 2001 From: Luka Murn Date: Fri, 24 Aug 2018 17:11:59 +0200 Subject: [PATCH 10/11] Fix bootstrap-select to work with turbolinks 5.x This was causing invite users modal, among other things, to not function correctly after visiting another redirect within SciNote using Turbolinks 5.x. Closes SCI-2707. --- app/assets/javascripts/application.js.erb | 7 ++++++- .../users/settings/teams/invite_users_modal.js | 9 ++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/application.js.erb b/app/assets/javascripts/application.js.erb index ab967548e..1e39e67a1 100644 --- a/app/assets/javascripts/application.js.erb +++ b/app/assets/javascripts/application.js.erb @@ -262,4 +262,9 @@ var HelperModule = (function(){ $('.modal').modal('hide'); }); }); -})(); + + /* Fix .selectpicker (bootstrap-select) to work with Turbolinks 5.x */ + $(document).on('turbolinks:load', function() { + $(window).trigger('load.bs.select.data-api'); + }); +})(); \ No newline at end of file diff --git a/app/assets/javascripts/users/settings/teams/invite_users_modal.js b/app/assets/javascripts/users/settings/teams/invite_users_modal.js index 51cd11c53..638d2c330 100644 --- a/app/assets/javascripts/users/settings/teams/invite_users_modal.js +++ b/app/assets/javascripts/users/settings/teams/invite_users_modal.js @@ -173,8 +173,11 @@ }); } - $('[data-role=invite-users-modal]').each(function() { - initializeModal($(this)); + $(document).on('turbolinks:load', function() { + $('[data-role=invite-users-modal]').each(function() { + initializeModal($(this)); + }); + + initializeModalsToggle(); }); - initializeModalsToggle(); }()); From fcf947e29b215540e0666999dadd795479629ada Mon Sep 17 00:00:00 2001 From: Luka Murn Date: Wed, 29 Aug 2018 11:02:44 +0200 Subject: [PATCH 11/11] Update VERSION to 1.14.4 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 4ea8ad87e..4e00d0ac0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.14.3 +1.14.4