mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-24 15:54:00 +08:00
Merge pull request #3285 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:
commit
4e5e58c66a
6 changed files with 121 additions and 18 deletions
app
assets/javascripts/reports
views/reports
config/locales
|
@ -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();
|
||||
|
|
26
app/views/reports/modals/_project_change_warning.html.erb
Normal file
26
app/views/reports/modals/_project_change_warning.html.erb
Normal 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">×</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>
|
26
app/views/reports/modals/_template_change_warning.html.erb
Normal file
26
app/views/reports/modals/_template_change_warning.html.erb
Normal 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">×</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>
|
|
@ -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 %>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -630,6 +630,14 @@ en:
|
|||
description_new: "You’re about to cancel the process of generating a report. This will cause all selections and possible entered data to be lost."
|
||||
description_edit: "You’re 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: "You’re 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: "You’re 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:
|
||||
|
|
Loading…
Reference in a new issue