1
0

Moved tracking of view state from session to params

This commit is contained in:
cryptogopher 2020-03-29 18:52:30 +02:00
parent 8882385dfa
commit 0c724ed63f
13 changed files with 27 additions and 28 deletions

View File

@ -13,7 +13,6 @@ class MeasurementsController < ApplicationController
before_action :authorize
def index
session[:m_filters][:scope] = {}
prepare_measurements
end
@ -32,7 +31,7 @@ class MeasurementsController < ApplicationController
end
flash[:notice] = 'Created new measurement'
readouts_view? ? prepare_readouts : prepare_measurements
prepare_items
else
@measurement.readouts.new if @measurement.readouts.empty?
render :new
@ -45,7 +44,7 @@ class MeasurementsController < ApplicationController
def update
if @measurement.update(measurement_params)
flash[:notice] = 'Updated measurement'
readouts_view? ? prepare_readouts : prepare_measurements
prepare_items
render :index
else
render :edit
@ -68,19 +67,17 @@ class MeasurementsController < ApplicationController
end
def readouts
#session[:m_filters][:scope] = {routine: @routine}
prepare_readouts
end
def toggle_column
@routine.columns.toggle!(@quantity)
prepare_readouts
render :index
end
def filter
session[:m_filters] = params.permit(:name, formula: [:code, :zero_nil])
readouts_view? ? prepare_readouts : prepare_measurements
prepare_items
render :index
end
@ -110,6 +107,10 @@ class MeasurementsController < ApplicationController
)
end
def prepare_items
params[:view] == 'index' ? prepare_measurements : prepare_readouts
end
def prepare_measurements
@measurements, @formula_q = @project.measurements
.includes(:routine, :source, :readouts)
@ -117,13 +118,9 @@ class MeasurementsController < ApplicationController
end
def prepare_readouts
@quantities = @routine.quantities.includes(:formula)
@quantities = @measurement.routine.quantities.includes(:formula)
@measurements, @requested_r, @extra_r, @formula_q = @routine.measurements
.includes(:routine, :source)
.filter(session[:m_filters], @quantities)
end
def readouts_view?
session[:m_filters][:scope].present?
end
end

View File

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

View File

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

View File

@ -1,5 +1,5 @@
<%= render partial: 'measurements/filters',
locals: {url: filter_project_measurements_path(@project)} %>
locals: {url: filter_project_measurements_path(@project, view: :index)} %>
<% if @measurements.any? { |m| m.persisted? } %>
<%= error_messages_for @formula_q.formula if @formula_q %>

View File

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

View File

@ -1,5 +1,5 @@
<%= render partial: 'measurements/filters',
locals: {url: filter_project_measurements_path(@project)} %>
locals: {url: filter_project_measurements_path(@project, view: :readouts)} %>
<% if @measurements.any? %>
<%= render partial: 'measurements/options' %>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1 @@
$('#readouts').html('<%= j render partial: 'measurements/readouts' %>');