Merge pull request from aignatov-bio/ai-sci-5684-add-warning-modal-for-template-and-project-change

Add warning modal on project and template change [SCI-5684]
This commit is contained in:
Alex Kriuchykhin 2021-05-07 10:06:18 +02:00 committed by GitHub
commit 4e5e58c66a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 121 additions and 18 deletions

View file

@ -1060,7 +1060,7 @@ function reportHandsonTableConverter() {
$.ajax({
url: this.dataset.createUrl,
type: 'POST',
data: JSON.stringify(getReportData()),
data: JSON.stringify(params),
contentType: 'application/json; charset=utf-8',
success: function() {}
@ -1127,10 +1127,11 @@ function reportHandsonTableConverter() {
$('.reports-new-body [href="#new-report-step-2"]').on('show.bs.tab', function() {
var projectContents = $('#new-report-step-2').find('.project-contents');
var projectId = dropdownSelector.getValues('#projectSelector');
if (projectContents.data('project-id') !== parseInt(projectId, 10)) {
if (parseInt(projectContents.attr('data-project-id'), 10) !== parseInt(projectId, 10)) {
animateSpinner('.reports-new-body');
$.get(projectContents.data('project-content-url'), { project_id: projectId }, function(data) {
animateSpinner('.reports-new-body', false);
projectContents.attr('data-project-id', projectId);
projectContents.html(data.html);
if ($('.select-all-my-modules-checkbox').prop('checked')) {
$('.select-all-my-modules-checkbox').trigger('change');
@ -1230,6 +1231,12 @@ function reportHandsonTableConverter() {
noEmptyOption: true,
selectAppearance: 'simple',
onChange: function() {
let projectContents = $('#new-report-step-2').find('.project-contents');
let loadedProjectId = parseInt(projectContents.attr('data-project-id'), 10);
let projectId = parseInt(dropdownSelector.getValues('#projectSelector'), 10);
if (!Number.isNaN(loadedProjectId) && loadedProjectId !== projectId) {
$('#projectReportWarningModal').modal('show');
}
$('.continue-button').attr('disabled', false);
}
});
@ -1241,26 +1248,41 @@ function reportHandsonTableConverter() {
selectAppearance: 'simple',
disableSearch: true,
onChange: function() {
let template = $('#templateSelector').val();
let params = {
project_id: dropdownSelector.getValues('#projectSelector'),
template: template
};
$.get($('#templateSelector').data('valuesEditorPath'), params, function(result) {
$('.report-template-values-container').html(result.html);
$('.report-template-value-dropdown').each(function() {
dropdownSelector.init($(this), {
singleSelect: false,
closeOnSelect: true,
noEmptyOption: true,
selectAppearance: 'simple'
});
});
});
let filledFieldsCount = $('.report-template-values-container')
.find('input.sci-input-field, textarea.sci-input-field').filter(function () {
return !!this.value;
}).length;
if (filledFieldsCount === 0) {
loadTemplate();
} else {
$('#templateReportWarningModal').modal('show');
}
}
});
}
function loadTemplate() {
let template = $('#templateSelector').val();
let params = {
project_id: dropdownSelector.getValues('#projectSelector'),
template: template
};
$('#templateSelector').data('selected-template', template);
$.get($('#templateSelector').data('valuesEditorPath'), params, function(result) {
$('.report-template-values-container').html(result.html);
$('.report-template-value-dropdown').each(function() {
dropdownSelector.init($(this), {
singleSelect: false,
closeOnSelect: true,
noEmptyOption: true,
selectAppearance: 'simple'
});
});
});
}
function initTaskContents() {
dropdownSelector.init('.task-contents-container .order-results', {
singleSelect: true,
@ -1316,6 +1338,23 @@ function reportHandsonTableConverter() {
});
}
$('#templateReportWarningModal')
.on('click', '#loadSelectedTemplate', function() {
loadTemplate();
$('#templateReportWarningModal').modal('hide');
})
.on('click', '#cancelTemplateChange', function() {
let previousTemplate = $('#templateSelector').data('selected-template');
dropdownSelector.selectValues('#templateSelector', previousTemplate);
$('#templateReportWarningModal').modal('hide');
});
$('#projectReportWarningModal').on('click', '#cancelProjectChange', function() {
let loadedProjectId = $('#new-report-step-2').find('.project-contents').attr('data-project-id');
dropdownSelector.selectValues('#projectSelector', loadedProjectId);
$('#projectReportWarningModal').modal('hide');
});
$('#reportWizardEditWarning').modal('show');
initGenerateButton();

View file

@ -0,0 +1,26 @@
<div class="modal" id="projectReportWarningModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="<%= t('general.close') %>"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="regenerate-report-modal-label">
<%= t('projects.reports.new.project_warning_modal.title') %>
</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<%= t('projects.reports.new.project_warning_modal.description') %>
<h4>
<%= t('projects.reports.new.project_warning_modal.confirmation') %>
</h4>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="cancelProjectChange" data-dismiss="modal"><%= t('general.no') %></button>
<button type="button" data-dismiss="modal" class="btn btn-primary btn-confirm"><%= t('general.yes') %></button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,26 @@
<div class="modal" id="templateReportWarningModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="<%= t('general.close') %>"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="regenerate-report-modal-label">
<%= t('projects.reports.new.template_warning_modal.title') %>
</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<%= t('projects.reports.new.template_warning_modal.description') %>
<h4>
<%= t('projects.reports.new.template_warning_modal.confirmation') %>
</h4>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="cancelTemplateChange"><%= t('general.no') %></button>
<button type="button" id="loadSelectedTemplate" class="btn btn-primary btn-confirm"><%= t('general.yes') %></button>
</div>
</div>
</div>
</div>

View file

@ -114,6 +114,9 @@
</div>
</div>
<%= render partial: 'reports/modals/project_change_warning' %>
<%= render partial: 'reports/modals/template_change_warning' %>
<% if @edit %>
<%= render partial: 'report_edit_warning_modal' %>
<% end %>

View file

@ -15,6 +15,7 @@
options_for_select(@templates.invert, report.settings[:template]),
data: {
placeholder: t('projects.reports.wizard.first_step.select_template'),
selected_template: report.settings[:template] || @templates.first[0],
values_editor_path: reports_new_template_values_path(report_id: report.id)
} %>
</div>

View file

@ -630,6 +630,14 @@ en:
description_new: "Youre about to cancel the process of generating a report. This will cause all selections and possible entered data to be lost."
description_edit: "Youre about to cancel the process of generating an edited report. This will cause all changes to be lost."
description_2: "Do you want to continue?"
template_warning_modal:
title: "Template data will be lost"
description: "Youre about to switch to a different template. All the data related to the template you entered will be lost."
confirmation: "Do you want to continue?"
project_warning_modal:
title: "Task selection will refresh"
description: "Youre about to switch to a different project. The task selections you made will be completly refreshed."
confirmation: "Do you want to continue?"
generate_PDF:
generated_on: "Report generated by SciNote on: %{timestamp}"
renderers: