1
0

compute_quantities now returns single hash

Fixed MeasurementsController view management
This commit is contained in:
cryptogopher
2020-04-26 20:21:17 +02:00
parent 9f5f31ca42
commit 4230d72206
27 changed files with 118 additions and 108 deletions

View File

@@ -1,4 +1,5 @@
<% if User.current.allowed_to?(:manage_common, @project) %>
<%= link_to t(".link_new_measurement"), new_project_measurement_path(@project, view: view),
<%= link_to t(".link_new_measurement"),
new_project_measurement_path(@project, @view_params),
{remote: true, class: 'icon icon-add'} %>
<% end %>

View File

@@ -1,5 +1,5 @@
<%= labelled_form_for @measurement,
url: measurement_path(@measurement, view: view),
url: measurement_path(@measurement, @view_params),
method: :patch, remote: true,
html: {id: 'edit-measurement-form', name: 'edit-measurement-form'} do |f| %>

View File

@@ -3,8 +3,8 @@
<div>
<%= error_messages_for @filter_q %>
<%= form_tag url, id: 'filters-form', name: 'filters-form',
method: :get, remote: true do %>
<%= form_tag url, id: 'filters-form', name: 'filters-form', method: :get,
remote: true do %>
<table class="filter">
<tr>

View File

@@ -2,10 +2,12 @@
<div class="box">
<div id='measurement-routine-form' class="tabular">
<% if @routine.persisted? %>
<%= render partial: 'measurement_routines/show_form', locals: {f: f} %>
<% if @measurement.routine.persisted? %>
<%= render partial: 'measurement_routines/show_form',
locals: {routine: @measurement.routine} %>
<% else %>
<%= render partial: 'measurement_routines/form', locals: {f: f} %>
<%= render partial: 'measurement_routines/form',
locals: {routine: @measurement.routine} %>
<% end %>
</div>
<hr style="width: 95%;">

View File

@@ -1,5 +1,5 @@
<%= render partial: 'measurements/filters',
locals: {url: filter_project_measurements_path(@project, view: :index)} %>
locals: {url: filter_project_measurements_path(@project, @view_params)} %>
<% if @measurements.any? { |m| m.persisted? } %>
<%= error_messages_for @filter_q.formula if @filter_q %>
@@ -29,7 +29,7 @@
</td>
<td class="notes ellipsible"><%= m.notes %></td>
<td class="source"><%= m.source.name if m.source.present? %></td>
<td class="action unwrappable"><%= action_links(m, :index) %></td>
<td class="action unwrappable"><%= action_links(m) %></td>
</tr>
<% end %>
</tbody>

View File

@@ -1,7 +1,7 @@
<h2><%= t ".heading_new_measurement" %></h2>
<%= labelled_form_for @measurement,
url: project_measurements_path(@project, view: view),
url: project_measurements_path(@project, @view_params),
remote: true,
html: {id: 'new-measurement-form', name: 'new-measurement-form'} do |f| %>

View File

@@ -1,7 +1,7 @@
<fieldset id="options" class="collapsible">
<legend onclick="toggleFieldset(this);"><%= l(:label_options) %></legend>
<div>
<%= form_tag toggle_exposure_measurement_routine_path(@routine),
<%= form_tag toggle_exposure_measurement_routine_path(@routine, @view_params),
id: 'toggle-exposure-form', name: 'toggle-exposure-form',
method: :post, remote: true do %>

View File

@@ -1,5 +1,5 @@
<%= render partial: 'measurements/filters',
locals: {url: filter_project_measurements_path(@project, view: :readouts)} %>
locals: {url: filter_project_measurements_path(@project, @view_params)} %>
<% if @measurements.any? %>
<%= render partial: 'measurements/options' %>
@@ -28,51 +28,52 @@
</thead>
<tbody>
<% @measurements.each_with_index do |m, index| %>
<% extra_quantities = @measurements.values.first.keys - @quantities %>
<% @measurements.each do |measurement, readouts| %>
<% row_class = "measurement #{cycle('odd', 'even')}" %>
<tr id="measurement-<%= m.id %>" class="primary <%= row_class %>">
<tr id="measurement-<%= measurement.id %>" class="primary <%= row_class %>">
<td class="date unwrappable" style="cursor: pointer;"
onclick="$(this).closest('tr').toggle(); $(this).closest('tr').nextUntil('tr.primary', '.measurement').toggle(); return false;">
<span class="icon icon-bullet-closed"><%= format_datetime(m) %></span>
<span class="icon icon-bullet-closed"><%= format_datetime(measurement) %></span>
</td>
<% @requested_r[index].each do |*, value| %>
<td class="primary value ellipsible"><%= format_value(value) %></td>
<% @quantities.each do |q| %>
<td class="primary value ellipsible"><%= format_value(readouts[q]) %></td>
<% end %>
<td class="action unwrappable"><%= action_links(m, :readouts) %></td>
<td class="action unwrappable"><%= action_links(measurement) %></td>
</tr>
<tr class="<%= row_class %>" style="display:none">
<% if @quantities.length > 0
rows = (@extra_r[index].length - 1) / @quantities.length + 2
rows = (readouts.length - 1) / @quantities.length + 1
else
rows = 1
end %>
<td rowspan="<%= rows %>" class="date unwrappable" style="cursor: pointer;"
onclick="$(this).closest('tr').prev('tr.primary').toggle(); $(this).closest('tr').prev('tr.primary').nextUntil('tr.primary', '.measurement').toggle(); return false;">
<span class="icon icon-bullet-open"><%= format_datetime(m) %></span>
<span class="icon icon-bullet-open"><%= format_datetime(measurement) %></span>
</td>
<% @requested_r[index].each do |q, value| %>
<% @quantities.each do |q| %>
<td class="primary quantity ellipsible">
<%= q.name %>
<p class="value"><%= format_value(value) %></p>
<p class="value"><%= format_value(readouts[q]) %></p>
</td>
<% end %>
<td rowspan="<%= rows %>" class="action unwrappable">
<%= action_links(m, :readouts) %>
<%= action_links(measurement) %>
</td>
</tr>
<% next unless @quantities.length > 0 %>
<% @extra_r[index].each_slice(@quantities.length).with_index do |values| %>
<% extra_quantities.each_slice(@quantities.length) do |eqs| %>
<tr class="extra <%= row_class %>" style="display:none">
<% values.each do |q, value| %>
<% eqs.each do |q| %>
<td class="extra quantity ellipsible">
<%= q.name if value %>
<p class="value"><%= format_value(value) %></p>
<%= q.name if readouts[q] %>
<p class="value"><%= format_value(readouts[q]) %></p>
</td>
<% end %>
<% if @quantities.length > values.length %>
<td class="space" colspan="<%= @quantities.length-values.length %>"></td>
<% if @quantities.length > eqs.length %>
<td class="space" colspan="<%= @quantities.length - eqs.length %>"></td>
<% end %>
</tr>
<% end %>

View File

@@ -1,5 +1,5 @@
$('#new-measurement').empty();
<% if params[:view] == 'index' %>
<% if @view_params[:view] == :index %>
$('#measurements').html('<%= j render partial: 'measurements/index' %>');
<% else %>
$('#readouts').html('<%= j render partial: 'measurements/readouts' %>');

View File

@@ -3,6 +3,6 @@ $('tr[id=measurement-<%= @measurement.id %>]').nextUntil('tr.primary', ':not(.me
var columns = $('table > thead > tr > th').length;
$('tr[id=measurement-<%= @measurement.id %>]').nextUntil('tr.primary').addBack().last().after(
'<tr><td class="form" colspan="'+columns+'"><div id="edit-measurement">' +
'<%= j render partial: 'measurements/edit_form', locals: {view: params[:view]} %>' +
'<%= j render partial: 'measurements/edit_form' %>' +
'</div></td></tr>'
);

View File

@@ -1,5 +1,5 @@
<div class="contextual">
<%= render partial: 'measurements/contextual', locals: {view: :index} %>
<%= render partial: 'measurements/contextual' %>
</div>
<div id="new-measurement">

View File

@@ -1,4 +1,4 @@
<% if params[:view] == 'index' %>
<% if @view_params[:view] == :index %>
$('#measurements').html('<%= j render partial: 'measurements/index' %>');
<% else %>
$('#readouts').html('<%= j render partial: 'measurements/readouts' %>');

View File

@@ -1,2 +1 @@
$('#new-measurement')
.html('<%= j render partial: 'measurements/new_form', locals: {view: params[:view]} %>');
$('#new-measurement').html('<%= j render partial: 'measurements/new_form' %>');

View File

@@ -1,5 +1,5 @@
<div class="contextual">
<%= render partial: 'measurements/contextual', locals: {view: :readouts} %>
<%= render partial: 'measurements/contextual' %>
</div>
<div id="new-measurement">