diff --git a/app/assets/javascripts/reports/new.js b/app/assets/javascripts/reports/new.js index 628a4f63e..3e43313a7 100644 --- a/app/assets/javascripts/reports/new.js +++ b/app/assets/javascripts/reports/new.js @@ -981,6 +981,12 @@ function reportHandsonTableConverter() { $('.reports-new-footer').attr('data-step', currentStep - 1); } + function allCheckboxesSelected(container) { + let checked = container.find('.sci-checkbox:not(.skip-select-all):checked'); + let all = container.find('.sci-checkbox:not(.skip-select-all)'); + return checked.length === all.length; + } + $('.continue-button').on('click', function() { nextStep(); }); @@ -991,14 +997,23 @@ function reportHandsonTableConverter() { $('.reports-new-body [href="#new-report-step-2"]').on('show.bs.tab', function() { var projectId = dropdownSelector.getValues('#projectSelector'); - var containerStep2 = $('#new-report-step-2'); + var projectContents = $('#new-report-step-2').find('.project-contents'); animateSpinner('.reports-new-body'); - $.get(containerStep2.data('project-content-url'), { project_id: projectId }, function(data) { + $.get(projectContents.data('project-content-url'), { project_id: projectId }, function(data) { animateSpinner('.reports-new-body', false); - containerStep2.html(data.html); + projectContents.html(data.html); + if ($('.select-all-my-modules-checkbox').prop('checked')) { + $('.select-all-my-modules-checkbox').trigger('change'); + } $('.experiment-contents').sortable(); }); }); + + $('.reports-new-body [href="#new-report-step-3"]').on('show.bs.tab', function() { + $('.protocol-steps-checkbox').prop('checked', allCheckboxesSelected($('.report-protocol-settings'))); + $('.all-results-checkbox').prop('checked', allCheckboxesSelected($('.report-result-settings'))); + $('.select-all-task-contents').prop('checked', allCheckboxesSelected($('.report-task-settings'))); + }); } function initProjectContents() { diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index 5bb8797a5..cdeef9fc4 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -49,6 +49,7 @@ class ReportsController < ApplicationController # Report grouped by modules def new @templates = Extends::REPORT_TEMPLATES + @report = current_team.reports.new end def new_template_values @@ -342,11 +343,11 @@ class ReportsController < ApplicationController def project_contents render json: { - html: render_to_string( - partial: 'reports/wizard/second_step.html.erb', - locals: { project: @project } - ) - } + html: render_to_string( + partial: 'reports/wizard/project_contents.html.erb', + locals: { project: @project } + ) + } end def experiment_contents diff --git a/app/models/concerns/settings_model.rb b/app/models/concerns/settings_model.rb index c74425422..4ae5f971c 100644 --- a/app/models/concerns/settings_model.rb +++ b/app/models/concerns/settings_model.rb @@ -1,22 +1,16 @@ +# frozen_string_literal: true + module SettingsModel extend ActiveSupport::Concern - @@default_settings = HashWithIndifferentAccess.new - included do serialize :settings, JsonbHashSerializer after_initialize :init_default_settings, if: :new_record? end - class_methods do - def default_settings(dfs) - @@default_settings.merge!(dfs) - end - end - protected def init_default_settings - self.settings = @@default_settings + self.settings = self.class::DEFAULT_SETTINGS end end diff --git a/app/models/report.rb b/app/models/report.rb index 18cb1e64b..ede6caea4 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class Report < ApplicationRecord + include SettingsModel include SearchableModel include SearchableByNameModel @@ -30,6 +31,27 @@ class Report < ApplicationRecord # or many module elements (if grouped by module) has_many :report_elements, inverse_of: :report, dependent: :delete_all + DEFAULT_SETTINGS = { + all_tasks: true, + task: { + protocol: { + description: true, + completed_steps: true, + uncompleted_steps: true, + step_checklists: true, + step_files: true, + step_tables: true, + step_comments: true + }, + file_results: false, + file_results_previews: false, + table_results: true, + text_results: true, + result_comments: true, + activities: true + } + }.freeze + def self.search( user, include_archived, diff --git a/app/models/user.rb b/app/models/user.rb index b0d149ff9..d16e1cd5d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -34,7 +34,7 @@ class User < ApplicationRecord store_accessor :settings, :time_zone, :notifications_settings - default_settings( + DEFAULT_SETTINGS = { time_zone: 'UTC', date_format: Constants::DEFAULT_DATE_FORMAT, notifications_settings: { @@ -44,7 +44,7 @@ class User < ApplicationRecord recent_email: false, system_message_email: false } - ) + }.freeze store_accessor :variables, :export_vars diff --git a/app/views/reports/new.html.erb b/app/views/reports/new.html.erb index 4f4c93434..31511d1cf 100644 --- a/app/views/reports/new.html.erb +++ b/app/views/reports/new.html.erb @@ -18,10 +18,11 @@
<%= render partial: 'reports/wizard/first_step' %>
-
+
+ <%= render partial: 'reports/wizard/second_step', locals: { report: @report } %>
- <%= render partial: 'reports/wizard/third_step' %> + <%= render partial: 'reports/wizard/third_step', locals: { report: @report } %>
diff --git a/app/views/reports/wizard/_project_contents.html.erb b/app/views/reports/wizard/_project_contents.html.erb new file mode 100644 index 000000000..7bbaa0dae --- /dev/null +++ b/app/views/reports/wizard/_project_contents.html.erb @@ -0,0 +1,36 @@ + diff --git a/app/views/reports/wizard/_second_step.html.erb b/app/views/reports/wizard/_second_step.html.erb index 2f2951080..9df9a0d9b 100644 --- a/app/views/reports/wizard/_second_step.html.erb +++ b/app/views/reports/wizard/_second_step.html.erb @@ -23,46 +23,11 @@
- + /> <%= t("projects.reports.wizard.second_step.select_all_tasks") %>
- +
diff --git a/app/views/reports/wizard/_third_step.html.erb b/app/views/reports/wizard/_third_step.html.erb index 808c742ee..e88594370 100644 --- a/app/views/reports/wizard/_third_step.html.erb +++ b/app/views/reports/wizard/_third_step.html.erb @@ -4,13 +4,13 @@
- + <%= t("projects.reports.wizard.third_step.select_all") %>
-