Merge release/5.0 into dev

pull/6827/head
Oliver Günther 9 years ago
commit c7674ad8dd
  1. 30
      .travis.yml
  2. 5
      app/assets/stylesheets/costs/costs_legacy.css
  3. 589
      app/views/cost_objects/_show_variable_cost_object.html.erb
  4. 39
      app/views/cost_types/index.html.erb

@ -61,6 +61,20 @@ env:
- "TEST_SUITE=plugins:spec DB=mysql"
- "TEST_SUITE=plugins:cucumber DB=mysql"
- "TEST_SUITE=npm"
- "TEST_SUITE=spec_legacy DB=mysql GROUP_SIZE=2 GROUP=1"
- "TEST_SUITE=spec_legacy DB=mysql GROUP_SIZE=2 GROUP=2"
- "TEST_SUITE=cucumber DB=mysql GROUP_SIZE=3 GROUP=1"
- "TEST_SUITE=cucumber DB=mysql GROUP_SIZE=3 GROUP=2"
- "TEST_SUITE=cucumber DB=mysql GROUP_SIZE=3 GROUP=3"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=1"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=2"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=3"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=4"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=5"
- "TEST_SUITE=rspec DB=mysql GROUP_SIZE=6 GROUP=6"
before_install:
# Custom plugin instructions follow.
@ -74,7 +88,7 @@ before_install:
- git init
- git remote add openproject https://github.com/opf/openproject.git
- git fetch --depth=1 openproject
- git checkout openproject/dev
- git checkout openproject/$TRAVIS_BRANCH
# End of custom plugin instructions.
@ -96,16 +110,6 @@ before_script:
script:
- sh script/ci_runner.sh $TEST_SUITE $GROUP_SIZE $GROUP
notifications:
email: false
slack:
secure: "a+I0uMgXgrDd3aitr2yhXrh7g/UOUTwoDVElunY7gYdrM+gpZ6RE1AP4/Q++hERBCs7rUBzmb//zxGTcc8Nw4nGqZOmPOMIsAoD49UupGLUzHbxzKlpwdBcwh77fq3rYwkjZjE/H1qiElPT7v6qyWMSdNGlj/bAB74eD7Zl3S5cMRvZ1whbSg2GA2v6ZqtXaKfrSFrPRzsIOBXs99OxWNWAsUGpEwTYac7wb6rdMJkBbzosp4gP99mGvQArEzo0nrIQgRH8W4Q6iLnrpX0g5uKccWl1u/G2bmH8L4F50ce4uuUE+TtHO/nfNFnb2KuDR4QyoccQQbGHXL/jaaAZXG/gzs5Hmru2Thaym43fSwxos80xmZs1vqB/rXE+Rg9qXcCKyyX31zjSI/iW4wS015fz8MKVX6qDg49epaw1ovn0AOYrvTd94GV6RX6eJ3/l+KJJHSKaaLP/713h11LWx/S27tiB40fboXQ68YzIQCuahRUEHUfhU3P10Wf9y2fdDsthtHHSrOJMQ3Ii/Jm3KQm6bE5RWORdHvc/sF2WLfLmJ627j9JhWYYi5mDKJ9AeMWtZNHreU0mM27OUgfhiW11ItKgpwQPEiiicrlYRrMmK+9hc9cym+8tRM+wEth1xhIkfgQFtngONKjv361Wt3JifxM79+bn0IyF72vAVNy8k="
addons:
firefox: "38.0esr"
postgresql: "9.3"
# Disabling coverage reporting until CodeClimate supports merging results from multiple partial tests
# code_climate:
# repo_token:
# secure: "W/lyd8Ud18GRASuVShsIKa2MRHhxjh8WICMQ4WKr68qt0X0Tlp7Bclv4ReiEgiQeKsIoJJy5FfJfINdAT8A4sy2JbrLeISShcIU7Kqpfh6DSLNoRAuLz5P7EXMNFns1gBKCmrSzcB+9ksuTLyTCKkjUcj1NbJzGqpB4jSTecAdg="
firefox: "45.0esr"
postgresql: "9.3"

@ -31,8 +31,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
background-position: 20px 40%;
}
.filter_values select {
width: 200px;
.simple-filters--filter .simple-filters--filter-name.-small {
max-width: 25%;
flex-basis: 25%;
}
table.material_budget_items,

@ -18,27 +18,108 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++#%>
<h3><%= t(:caption_materials) %></h3>
<div class="grid-block">
<div class="grid-content medium-6">
<h4><%= VariableCostObject.human_attribute_name(:material_budget) %></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table material_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<fieldset class="form--fieldset -collapsible collapsed" onclick="toggleFieldset(this);">
<legend class="form--fieldset-legend"><%= t(:caption_materials) %></legend>
<div class="grid-block" style="display:none">
<div class="grid-content medium-6">
<h4><%= VariableCostObject.human_attribute_name(:material_budget) %></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table material_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:units) %>
</span>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:cost_type) %>
</span>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:comment) %>
</span>
</div>
</div>
</th>
<th class="currency">
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:budget) %>
</span>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<% @cost_object.material_budget_items.each do |material_budget_item| %>
<tr>
<td class="units"><%=h pluralize(material_budget_item.units, material_budget_item.cost_type.unit, material_budget_item.cost_type.unit_plural) %></td>
<td><%=h material_budget_item.cost_type.name %></td>
<td class="comments"><%=h material_budget_item.comments %></td>
<td class="currency"><%= material_budget_item.costs_visible_by?(User.current) ? number_to_currency(material_budget_item.costs) : "" %></td>
</tr>
<% end %>
</tbody>
<% if User.current.allowed_to?(:view_cost_rates, @project) %>
<tfoot>
<tr>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.material_budget) %></strong>
</div>
</td>
</tr>
</tfoot>
<% end %>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</div>
</div>
</div>
</div>
<div class="grid-content medium-6">
<h4><%= t(:caption_material_costs) %></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table material_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:units) %>
<%= MaterialBudgetItem.human_attribute_name(:units)%>
</span>
</div>
</div>
@ -71,310 +152,232 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</div>
</th>
</tr>
</thead>
<tbody>
<% @cost_object.material_budget_items.each do |material_budget_item| %>
<tr>
<td class="units"><%=h pluralize(material_budget_item.units, material_budget_item.cost_type.unit, material_budget_item.cost_type.unit_plural) %></td>
<td><%=h material_budget_item.cost_type.name %></td>
<td class="comments"><%=h material_budget_item.comments %></td>
<td class="currency"><%= material_budget_item.costs_visible_by?(User.current) ? number_to_currency(material_budget_item.costs) : "" %></td>
</tr>
<% end %>
</tbody>
<% if User.current.allowed_to?(:view_cost_rates, @project) %>
<tfoot>
<tr>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.material_budget) %></strong>
</div>
</td>
</tr>
</tfoot>
<% end %>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</div>
</div>
</div>
</div>
<div class="grid-content medium-6">
<h4><%= t(:caption_material_costs) %></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table material_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:units)%>
</span>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:cost_type) %>
</span>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:comment) %>
</span>
</div>
</div>
</th>
<th class="currency">
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= MaterialBudgetItem.human_attribute_name(:budget) %>
</span>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<% @cost_object.cost_entries.visible(User.current, @project).includes(:cost_type).group_by(&:work_package).each do |work_package, cost_entries|
entries = cost_entries.inject(Hash.new) do |results, entry|
result = results[entry.cost_type.id.to_s]
unless result
result = CostEntry.new(cost_type: entry.cost_type, overridden_costs: 0.0, units: 0)
results[entry.cost_type.id.to_s] = result
end
result.overridden_costs += entry.real_costs
result.units += entry.units
results
end.values
entries.each do |c|
%>
</thead>
<tbody>
<% @cost_object.cost_entries.visible(User.current, @project).includes(:cost_type).group_by(&:work_package).each do |work_package, cost_entries|
entries = cost_entries.inject(Hash.new) do |results, entry|
result = results[entry.cost_type.id.to_s]
unless result
result = CostEntry.new(cost_type: entry.cost_type, overridden_costs: 0.0, units: 0)
results[entry.cost_type.id.to_s] = result
end
result.overridden_costs += entry.real_costs
result.units += entry.units
results
end.values
entries.each do |c|
%>
<tr>
<td class="subject"><%= link_to_work_package work_package %></td>
<td><%= link_to pluralize(c.units, c.cost_type.unit, c.cost_type.unit_plural), {:controller => "/costlog", :action => "index", :cost_type_id => c.cost_type, :work_package_id => work_package} %></td>
<td><%= c.cost_type %></td>
<td class="currency"><%= c.costs_visible_by?(User.current) ? number_to_currency(c.real_costs) : "" %></td>
</tr>
<% end %>
<% end %>
</tbody>
<% if User.current.allowed_to?(:view_cost_rates, @project) %>
<tfoot>
<tr>
<td class="subject"><%= link_to_work_package work_package %></td>
<td><%= link_to pluralize(c.units, c.cost_type.unit, c.cost_type.unit_plural), {:controller => "/costlog", :action => "index", :cost_type_id => c.cost_type, :work_package_id => work_package} %></td>
<td><%= c.cost_type %></td>
<td class="currency"><%= c.costs_visible_by?(User.current) ? number_to_currency(c.real_costs) : "" %></td>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.spent_material) %></strong>
</div>
</td>
</tr>
</tfoot>
<% end %>
<% end %>
</tbody>
<% if User.current.allowed_to?(:view_cost_rates, @project) %>
<tfoot>
<tr>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.spent_material) %></strong>
</div>
</td>
</tr>
</tfoot>
<% end %>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</fieldset>
<h3><%= t(:caption_labor) %></h3>
<div class="grid-block">
<div class="grid-content medium-6">
<h4><%= VariableCostObject.human_attribute_name(:labor_budget)%></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table labor_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:hours) %>
</span>
<fieldset class="form--fieldset -collapsible collapsed" onclick="toggleFieldset(this);">
<legend class="form--fieldset-legend"><%= t(:caption_labor) %></legend>
<div class="grid-block" style="display:none">
<div class="grid-content medium-6">
<h4><%= VariableCostObject.human_attribute_name(:labor_budget)%></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table labor_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:hours) %>
</span>
</div>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:user) %>
</span>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:user) %>
</span>
</div>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:comment) %>
</span>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:comment) %>
</span>
</div>
</div>
</div>
</th>
<th class="currency">
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:budget) %>
</span>
</th>
<th class="currency">
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= LaborBudgetItem.human_attribute_name(:budget) %>
</span>
</div>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<% @cost_object.labor_budget_items.each do |labor_budget_item| %>
<tr>
<td class="hours"><%= labor_budget_item.hours %>h</td>
<td><%=h labor_budget_item.user.name %></td>
<td class="comments"><%=h labor_budget_item.comments %></td>
<% if labor_budget_item.costs_visible_by?(User.current) %>
</th>
</tr>
</thead>
<tbody>
<% @cost_object.labor_budget_items.each do |labor_budget_item| %>
<tr>
<td class="hours"><%= labor_budget_item.hours %>h</td>
<td><%=h labor_budget_item.user.name %></td>
<td class="comments"><%=h labor_budget_item.comments %></td>
<% if labor_budget_item.costs_visible_by?(User.current) %>
<td class="currency">
<%= number_to_currency(labor_budget_item.costs)%>
</td>
<% else %>
<td></td>
<% end %>
</tr>
<% end %>
</tbody>
<% if User.current.allowed_to?(:view_hourly_rates, @project) || User.current.allowed_to?(:view_own_hourly_rate, @project) %>
<tfoot>
<tr>
<td class="currency">
<%= number_to_currency(labor_budget_item.costs)%>
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.labor_budget) %></strong>
</div>
</td>
<% else %>
<td></td>
<% end %>
</tr>
</tr>
</tfoot>
<% end %>
</tbody>
<% if User.current.allowed_to?(:view_hourly_rates, @project) || User.current.allowed_to?(:view_own_hourly_rate, @project) %>
<tfoot>
<tr>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.labor_budget) %></strong>
</div>
</td>
</tr>
</tfoot>
<% end %>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</div>
</div>
</div>
</div>
</div>
<div class="grid-content medium-6">
<h4><%= t(:caption_labor_costs) %></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table labor_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:work_package) %>
</span>
<div class="grid-content medium-6">
<h4><%= t(:caption_labor_costs) %></h4>
<div>
<div class="generic-table--container -with-footer">
<div class="generic-table--results-container">
<table interactive-table class="generic-table labor_budget_items">
<colgroup>
<col highlight-col>
<col highlight-col>
<col highlight-col>
<col highlight-col>
</colgroup>
<thead>
<tr>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:work_package) %>
</span>
</div>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:hours) %>
</span>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:hours) %>
</span>
</div>
</div>
</div>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:user) %>
</span>
</th>
<th>
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:user) %>
</span>
</div>
</div>
</div>
</th>
<th class="currency">
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:costs) %>
</span>
</th>
<th class="currency">
<div class="generic-table--sort-header-outer">
<div class="generic-table--sort-header">
<span>
<%= TimeEntry.human_attribute_name(:costs) %>
</span>
</div>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<% @cost_object.time_entries.visible(User.current, @project).group_by(&:work_package).each do |work_package, time_entries|
entries = time_entries.inject(Hash.new) do |results, entry|
result = results[entry.user.id.to_s]
unless result
result = TimeEntry.new(:user => entry.user, :overridden_costs => 0)
result.hours = 0
results[entry.user.id.to_s] = result
end
</th>
</tr>
</thead>
<tbody>
<% @cost_object.time_entries.visible(User.current, @project).group_by(&:work_package).each do |work_package, time_entries|
entries = time_entries.inject(Hash.new) do |results, entry|
result = results[entry.user.id.to_s]
unless result
result = TimeEntry.new(:user => entry.user, :overridden_costs => 0)
result.hours = 0
results[entry.user.id.to_s] = result
end
result.overridden_costs += entry.real_costs
result.hours += entry.hours
results
end.values
result.overridden_costs += entry.real_costs
result.hours += entry.hours
results
end.values
entries.each do |t|
%>
entries.each do |t|
%>
<tr>
<td class="subject"><%= link_to_work_package work_package %></td>
<td class="hours"><%= link_to "#{t.hours}h", {:controller => "/timelog", :action => "index", :work_package_id => work_package} %></td>
<td><%=h t.user.name %></td>
<td class="currency"><%= number_to_currency(t.real_costs) %></td>
</tr>
<% end %>
<% end %>
</tbody>
<tfoot>
<tr>
<td class="subject"><%= link_to_work_package work_package %></td>
<td class="hours"><%= link_to "#{t.hours}h", {:controller => "/timelog", :action => "index", :work_package_id => work_package} %></td>
<td><%=h t.user.name %></td>
<td class="currency"><%= number_to_currency(t.real_costs) %></td>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.spent_labor) %></strong>
</div>
</td>
</tr>
<% end %>
<% end %>
</tbody>
<tfoot>
<tr>
<td class="currency">
<div class="generic-table--footer-outer">
<strong><%= number_to_currency(@cost_object.spent_labor) %></strong>
</div>
</td>
</tr>
</tfoot>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</tfoot>
</table>
<div class="generic-table--header-background"></div>
<div class="generic-table--footer-background"></div>
</div>
</div>
</div>
</div>
</div>
</div>

@ -30,30 +30,37 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<% end %>
<%= styled_form_tag(cost_types_path, { :method => :get, :id => 'query_form' }) do %>
<fieldset id="filters">
<fieldset id="filters" class="simple-filters--container">
<legend><%= t(:label_filter_plural) %></legend>
<div class="form--field">
<%= styled_label_tag :fixed_date, t(:label_fixed_date) %>
<%= styled_text_field_tag :fixed_date, @fixed_date %>
<%= calendar_for :fixed_date %>
</div>
<div class="form--field">
<%= styled_label_tag :include_deleted, t(:caption_show_locked) %>
<%= styled_check_box_tag :include_deleted, "1", @include_deleted, :autocomplete => "off" %>
</div>
</fieldset>
<hr class="form--separator">
<%= link_to_remote t(:button_apply),
<ul class="simple-filters--filters">
<li class="simple-filters--filter">
<%= styled_label_tag :fixed_date, t(:label_fixed_date), class: 'simple-filters--filter-name' %>
<div class='simple-filters--filter-value'>
<%= styled_text_field_tag :fixed_date, @fixed_date %>
</div>
<%= calendar_for :fixed_date %>
</li>
<li class="simple-filters--filter">
<%= styled_label_tag :include_deleted, t(:caption_show_locked), class: 'simple-filters--filter-name -small' %>
<div class="simple-filters--filter-value">
<%= styled_check_box_tag :include_deleted, "1", @include_deleted, :autocomplete => "off" %>
</div>
</li>
<li class="simple-filters--controls">
<%= link_to_remote t(:button_apply),
{ :update => "content",
:with => "Form.serialize('query_form')",
:method => :get
}, :class => 'button -with-icon icon-checkmark' %>
}, :class => 'button -with-icon -highlight -small icon-checkmark' %>
<%= link_to_remote t(:button_clear),
<%= link_to_remote t(:button_clear),
{ :url => { :clear_filter => true },
:method => :get,
:update => "content",
}, :class => 'button icon-context icon-undo' %>
}, :class => 'button -with-icon -small icon-context icon-undo' %>
</li>
</ul>
</fieldset>
<% end %>
<div id="cost_type_flash_notice_outer" style="display:none">

Loading…
Cancel
Save