mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-05 22:44:22 +08:00
Refactoring of modal for adding content to report. [fixes SCI-487]
This commit is contained in:
parent
27cfd55ea5
commit
b97cb91840
8 changed files with 152 additions and 153 deletions
|
@ -136,16 +136,6 @@ label {
|
|||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
&.project-contents-list {
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
|
||||
&.experiment-contents-list {
|
||||
padding-left: 30px !important;
|
||||
}
|
||||
}
|
||||
|
||||
/** "New element" floating element */
|
||||
.new-element {
|
||||
display: block;
|
||||
|
|
|
@ -747,6 +747,13 @@ a[data-toggle="tooltip"] {
|
|||
}
|
||||
}
|
||||
|
||||
// Checkbox tree
|
||||
.checkbox-tree ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
/** Add users modal */
|
||||
.btn-group-existing-users {
|
||||
width: 100%;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
<% if experiment.my_modules.count > 0 %>
|
||||
<%= form.check_box :experiment, label: experiment.name, class: "experiment-all-cb" %>
|
||||
<ul class="no-style experiment-contents-list">
|
||||
<ul class="experiment-contents-list">
|
||||
<% experiment.my_module_groups.each do |my_module_group| %>
|
||||
<% if my_module_group.my_modules.present? then %>
|
||||
<% my_module_group.ordered_modules.each do |my_module| %>
|
||||
|
|
|
@ -6,50 +6,66 @@
|
|||
</em>
|
||||
</div>
|
||||
|
||||
<%= form.check_box :module_content_all, label: t("projects.reports.elements.modals.module_contents_inner.check_all") %>
|
||||
<div class="no-style" style="padding-left: 15px;">
|
||||
<div class="checkbox-tree">
|
||||
<ul>
|
||||
<li>
|
||||
<%= form.check_box :module_content_all, label: t("projects.reports.elements.modals.module_contents_inner.check_all") %>
|
||||
<ul>
|
||||
|
||||
<% if my_module_undefined or my_module.protocol.steps.count > 0 %>
|
||||
<%= form.check_box :module_steps, label: t("projects.reports.elements.modals.module_contents_inner.steps") %>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.module_contents_inner.no_steps") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if my_module_undefined or my_module.protocol.steps.count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_steps, label: t("projects.reports.elements.modals.module_contents_inner.steps") %>
|
||||
</li>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.module_contents_inner.no_steps") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.active? }).present? %>
|
||||
<li>
|
||||
<%= form.check_box :module_results, label: t("projects.reports.elements.modals.module_contents_inner.results"), class: "results-all" %>
|
||||
<ul>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.is_asset && r.active? }).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_result_assets, label: t("projects.reports.elements.modals.module_contents_inner.result_assets"), class: "result-cb" %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.is_table && r.active? }).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_result_tables, label: t("projects.reports.elements.modals.module_contents_inner.result_tables"), class: "result-cb" %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.is_text && r.active? }).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_result_texts, label: t("projects.reports.elements.modals.module_contents_inner.result_texts"), class: "result-cb" %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.module_contents_inner.no_results") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.active? }).count > 0 %>
|
||||
<%= form.check_box :module_results, label: t("projects.reports.elements.modals.module_contents_inner.results"), class: "results-all" %>
|
||||
<ul class="no-style" style="padding-left: 15px;">
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.is_asset && r.active? }).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_result_assets, label: t("projects.reports.elements.modals.module_contents_inner.result_assets"), class: "result-cb" %>
|
||||
<%= form.check_box :module_activity, label: t("projects.reports.elements.modals.module_contents_inner.activity") %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.is_table && r.active? }).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_result_tables, label: t("projects.reports.elements.modals.module_contents_inner.result_tables"), class: "result-cb" %>
|
||||
<%= form.check_box :module_samples, label: t("projects.reports.elements.modals.module_contents_inner.samples") %>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if my_module_undefined or (my_module.results.select { |r| r.is_text && r.active? }).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box :module_result_texts, label: t("projects.reports.elements.modals.module_contents_inner.result_texts"), class: "result-cb" %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.module_contents_inner.no_results") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= form.check_box :module_activity, label: t("projects.reports.elements.modals.module_contents_inner.activity") %>
|
||||
|
||||
<%= form.check_box :module_samples, label: t("projects.reports.elements.modals.module_contents_inner.samples") %>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -40,41 +40,6 @@
|
|||
<% end %>
|
||||
|
||||
<script type="javascript">
|
||||
$(function() {
|
||||
var form = $("#add-contents-form");
|
||||
var tasksTab = form.find("#tasks-tab");
|
||||
var contentTab = form.find("#content-tab");
|
||||
|
||||
var modulesCheckAll = contentTab.find("#_module_content_all");
|
||||
var modulesOthers = contentTab.find("input:checkbox[name^='[module']:not([name$='all]'])");
|
||||
var modulesResultsAll = contentTab.find(".results-all");
|
||||
var modulesResults = contentTab.find(".result-cb");
|
||||
checkboxTree(modulesResultsAll, modulesResults);
|
||||
checkboxTree(modulesCheckAll, modulesOthers);
|
||||
|
||||
var stepsCheckAll = contentTab.find("#_step_content_all");
|
||||
var stepsOthers = contentTab.find("input:checkbox[name^='[step']:not([name$='all]'])");
|
||||
checkboxTree(stepsCheckAll, stepsOthers);
|
||||
});
|
||||
|
||||
function checkboxTree($select_all, $others) {
|
||||
// Update child checkboxes based on the parent "select all" checkbox
|
||||
$select_all.change(function() {
|
||||
$others.prop('checked', $(this).prop("checked"));
|
||||
});
|
||||
|
||||
$others.change(function(){
|
||||
// Uncheck "select all" checkbox, if one of the listed checkbox item is unchecked
|
||||
if(!$(this).prop("checked")) {
|
||||
$select_all.prop('checked', false);
|
||||
}
|
||||
// Check "select all" checkbox if all checkboxes are checked
|
||||
if ($others.filter(':checked').length == $others.length ){
|
||||
$select_all.prop('checked', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function checkboxTree2() {
|
||||
$(".checkbox-tree input:checkbox").change(function() {
|
||||
// Update descendent checkboxes
|
||||
|
@ -86,10 +51,8 @@
|
|||
});
|
||||
|
||||
// Update ancestor checkboxes
|
||||
var $checkboxesContainer;
|
||||
while (!$checkboxesContainer ||
|
||||
!$checkboxesContainer.hasClass("checkbox-tree")) {
|
||||
|
||||
// Loop until top checkbox is reached or until parent checkbox isn't there
|
||||
while ($checkbox.length !== 0 && !$checkbox.hasClass("checkbox-tree")) {
|
||||
var $checkboxesContainer = $checkbox.closest("ul");
|
||||
var $parentCheckbox = $checkboxesContainer.siblings().find("input:checkbox");
|
||||
var $checkboxes = $checkboxesContainer.find("input:checkbox");
|
||||
|
|
|
@ -4,41 +4,42 @@
|
|||
</em>
|
||||
</div>
|
||||
|
||||
<% if project.project_my_modules.is_archived(false).count > 0 %>
|
||||
<ul class="no-style checkbox-tree">
|
||||
<li>
|
||||
<%= form.check_box :project, label: project.name %>
|
||||
<ul class="no-style project-contents-list">
|
||||
<% project.experiments.is_archived(false).each do |experiment| %>
|
||||
<% next unless experiment.my_modules.is_archived(false).count > 0 %>
|
||||
<li>
|
||||
<%= form.check_box "experiment_#{experiment.id}", label: experiment.name %>
|
||||
<ul class="no-style experiment-contents-list">
|
||||
<% experiment.my_module_groups.each do |my_module_group| %>
|
||||
<% if my_module_group.my_modules.is_archived(false).present? then %>
|
||||
<% my_module_group.ordered_modules.is_archived(false).each do |my_module| %>
|
||||
<li>
|
||||
<%= form.check_box "modules[#{my_module.id}]", label: my_module.name %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if project.project_my_modules.is_archived(false).present? %>
|
||||
<div class="checkbox-tree">
|
||||
<ul>
|
||||
<li>
|
||||
<%= form.check_box :project, label: project.name %>
|
||||
<ul>
|
||||
<% project.experiments.is_archived(false).each do |experiment| %>
|
||||
<% next unless experiment.my_modules.is_archived(false).present? %>
|
||||
<li>
|
||||
<%= form.check_box "experiment_#{experiment.id}", label: experiment.name %>
|
||||
<ul>
|
||||
<% experiment.my_module_groups.each do |my_module_group| %>
|
||||
<% next unless my_module_group.my_modules.is_archived(false).present? %>
|
||||
<% my_module_group.ordered_modules.is_archived(false).each do |my_module| %>
|
||||
<li>
|
||||
<%= form.check_box "modules[#{my_module.id}]", label: my_module.name %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<!-- Tasks without groups -->
|
||||
<% modules_without_group = experiment.modules_without_group %>
|
||||
<% if modules_without_group.present? and modules_without_group.count > 0 %>
|
||||
<% modules_without_group.each do |my_module| %>
|
||||
<li>
|
||||
<%= form.check_box "modules[#{my_module.id}]", label: my_module.name %>
|
||||
</li>
|
||||
<!-- Tasks without groups -->
|
||||
<% modules_without_group = experiment.modules_without_group %>
|
||||
<% if modules_without_group.present? %>
|
||||
<% modules_without_group.each do |my_module| %>
|
||||
<li>
|
||||
<%= form.check_box "modules[#{my_module.id}]", label: my_module.name %>
|
||||
</li>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
|
|
|
@ -4,9 +4,17 @@
|
|||
</em>
|
||||
</div>
|
||||
|
||||
<%= form.label :result_content_all, t("projects.reports.elements.modals.result_contents_inner.check_all"), class: "checkbox" %>
|
||||
<div class="no-style" style="padding-left: 15px;">
|
||||
<div class="checkbox-tree">
|
||||
<ul>
|
||||
<li><!-- result_content_all needed?-->
|
||||
<%= form.label :result_content_all, t("projects.reports.elements.modals.result_contents_inner.check_all"), class: "checkbox" %>
|
||||
<ul>
|
||||
|
||||
<%= form.check_box :result_comments, label: t("projects.reports.elements.modals.result_contents_inner.comments") %>
|
||||
<li>
|
||||
<%= form.check_box :result_comments, label: t("projects.reports.elements.modals.result_contents_inner.comments") %>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -6,39 +6,53 @@
|
|||
</em>
|
||||
</div>
|
||||
|
||||
<%= form.check_box :step_content_all, label: t("projects.reports.elements.modals.step_contents_inner.check_all") %>
|
||||
<div class="no-style" style="padding-left: 15px;">
|
||||
<div class="checkbox-tree">
|
||||
<ul>
|
||||
<li>
|
||||
<%= form.check_box :step_content_all, label: t("projects.reports.elements.modals.step_contents_inner.check_all") %>
|
||||
<ul>
|
||||
|
||||
<% if step_undefined or step.checklists.count > 0 %>
|
||||
<%= form.check_box :step_checklists, label: t("projects.reports.elements.modals.step_contents_inner.checklists") %>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.step_contents_inner.no_checklists") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if step_undefined or step.checklists.present? %>
|
||||
<li>
|
||||
<%= form.check_box :step_checklists, label: t("projects.reports.elements.modals.step_contents_inner.checklists") %>
|
||||
</li>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.step_contents_inner.no_checklists") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if step_undefined or step.assets.count > 0 %>
|
||||
<%= form.check_box :step_assets, label: t("projects.reports.elements.modals.step_contents_inner.assets") %>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.step_contents_inner.no_assets") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if step_undefined or step.assets.present? %>
|
||||
<li>
|
||||
<%= form.check_box :step_assets, label: t("projects.reports.elements.modals.step_contents_inner.assets") %>
|
||||
</li>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.step_contents_inner.no_assets") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if step_undefined or step.tables.count > 0 %>
|
||||
<%= form.check_box :step_tables, label: t("projects.reports.elements.modals.step_contents_inner.tables") %>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.step_contents_inner.no_tables") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
<% if step_undefined or step.tables.present? %>
|
||||
<li>
|
||||
<%= form.check_box :step_tables, label: t("projects.reports.elements.modals.step_contents_inner.tables") %>
|
||||
</li>
|
||||
<% else %>
|
||||
<div>
|
||||
<em>
|
||||
<%= t("projects.reports.elements.modals.step_contents_inner.no_tables") %>
|
||||
</em>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<%= form.check_box :step_comments, label: t("projects.reports.elements.modals.step_contents_inner.comments") %>
|
||||
<li>
|
||||
<%= form.check_box :step_comments, label: t("projects.reports.elements.modals.step_contents_inner.comments") %>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
Loading…
Reference in a new issue