Moved tracking of view state from session to params
This commit is contained in:
parent
8882385dfa
commit
0c724ed63f
@ -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
|
||||
|
@ -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 %>
|
||||
|
@ -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| %>
|
||||
|
||||
|
@ -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 %>
|
||||
|
@ -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| %>
|
||||
|
||||
|
@ -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' %>
|
||||
|
@ -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 %>
|
||||
|
@ -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>'
|
||||
);
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="contextual">
|
||||
<%= render partial: 'measurements/contextual' %>
|
||||
<%= render partial: 'measurements/contextual', locals: {view: :index} %>
|
||||
</div>
|
||||
|
||||
<div id="new-measurement">
|
||||
|
@ -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 %>
|
||||
|
@ -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]} %>');
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="contextual">
|
||||
<%= render partial: 'measurements/contextual' %>
|
||||
<%= render partial: 'measurements/contextual', locals: {view: :readouts} %>
|
||||
</div>
|
||||
|
||||
<div id="new-measurement">
|
||||
|
1
app/views/measurements/toggle_column.js.erb
Normal file
1
app/views/measurements/toggle_column.js.erb
Normal file
@ -0,0 +1 @@
|
||||
$('#readouts').html('<%= j render partial: 'measurements/readouts' %>');
|
Reference in New Issue
Block a user