[#6574] Add a Labor Budget JS template for adding more budget items
The JS template is generated by Rails for adding a new record and gets appended to the finance section using addNewDeliverableFinance() (JS).
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
<script type="text/html" id="labor-budget-template">
|
||||
<% form.fields_for :labor_budgets, resource.labor_budgets.new(:id => 0) do |labor_budget| %>
|
||||
<%= render :partial => 'labor_budget_form', :locals => {:labor_budget => labor_budget} %>
|
||||
<% end %>
|
||||
</script>
|
||||
|
||||
<% form.inputs :name => label, :class => "deliverable-finances #{fieldset_class}" do %>
|
||||
|
||||
<li style="display:none;" id='retainer-finances-message'>
|
||||
@@ -7,28 +13,11 @@
|
||||
<li class="numeric optional">
|
||||
<%= content_tag(:label, l(:field_labor)) %>
|
||||
<table id="deliverable-labor" class="deliverable_finance_table">
|
||||
|
||||
<tbody>
|
||||
<% form.fields_for :labor_budgets, labor_budgets do |labor_budget| %>
|
||||
<%= labor_budget.hidden_field(:year) %>
|
||||
<%= labor_budget.hidden_field(:month) %>
|
||||
<tr>
|
||||
<td>
|
||||
<%= labor_budget.label(:time_entry_activity_id, :class => "hidden") %>
|
||||
<%= labor_budget.select(:time_entry_activity_id, options_from_collection_for_select(@project.billable_activities, :id, :name, labor_budget.object.time_entry_activity_id), {:include_blank => false}, {:class => 'financial'}) %>
|
||||
</td>
|
||||
<td>
|
||||
<p class="inline-hints"><%= labor_budget.label(:hours, l(:text_short_hours)) %></p>
|
||||
<%= labor_budget.text_field(:hours, :value => format_deliverable_value_fields(labor_budget.object.hours), :class => 'financial') %>
|
||||
</td>
|
||||
<td>
|
||||
<p class="inline-hints"><%= labor_budget.label(:budget, l(:text_dollar_sign)) %></p>
|
||||
<%= labor_budget.text_field(:budget, :value => format_deliverable_value_fields(labor_budget.object.budget), :class => 'financial') %>
|
||||
</td>
|
||||
<td>
|
||||
<%= release(3, "Green Add button for multiple records") %>
|
||||
</td>
|
||||
</tr>
|
||||
<%= render :partial => 'labor_budget_form', :locals => {:labor_budget => labor_budget} %>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
|
||||
@@ -56,13 +56,13 @@
|
||||
<% if resource.retainer? && resource.respond_to?(:months) %>
|
||||
<% if resource.months.present? %>
|
||||
<% resource.months.each do |month| %>
|
||||
<%= render :partial => 'finance_form', :locals => {:form => form, :labor_budgets => resource.labor_budgets_for_date(month), :overhead_budgets => resource.overhead_budgets_for_date(month), :fixed_budgets => resource.fixed_budgets_for_date(month), :label => l(:text_deliverable_finances_date, :date => month.strftime("%B, %Y")), :fieldset_class => 'date-' + month.strftime('%Y-%m') } %>
|
||||
<%= render :partial => 'finance_form', :locals => {:resource => resource, :form => form, :labor_budgets => resource.labor_budgets_for_date(month), :overhead_budgets => resource.overhead_budgets_for_date(month), :fixed_budgets => resource.fixed_budgets_for_date(month), :label => l(:text_deliverable_finances_date, :date => month.strftime("%B, %Y")), :fieldset_class => 'date-' + month.strftime('%Y-%m') } %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= content_tag(:p, l(:text_missing_period), :class => 'nodata') %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= render :partial => 'finance_form', :locals => {:form => form, :labor_budgets => resource.labor_budgets, :overhead_budgets => resource.overhead_budgets, :fixed_budgets => resource.fixed_budgets, :label => l(:text_deliverable_finances), :fieldset_class => '' } %>
|
||||
<%= render :partial => 'finance_form', :locals => {:form => form, :labor_budgets => resource.labor_budgets.all(:order => 'id asc'), :overhead_budgets => resource.overhead_budgets, :fixed_budgets => resource.fixed_budgets, :label => l(:text_deliverable_finances), :fieldset_class => '' } %>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<tr>
|
||||
<td>
|
||||
<%= labor_budget.hidden_field(:year) %>
|
||||
<%= labor_budget.hidden_field(:month) %>
|
||||
|
||||
<%= labor_budget.label(:time_entry_activity_id, :class => "hidden") %>
|
||||
<%= labor_budget.select(:time_entry_activity_id, options_from_collection_for_select(@project.billable_activities, :id, :name, labor_budget.object.time_entry_activity_id), {:include_blank => false}, {:class => 'financial'}) %>
|
||||
</td>
|
||||
<td>
|
||||
<p class="inline-hints"><%= labor_budget.label(:hours, l(:text_short_hours)) %></p>
|
||||
<%= labor_budget.text_field(:hours, :value => format_deliverable_value_fields(labor_budget.object.hours), :class => 'financial') %>
|
||||
</td>
|
||||
<td>
|
||||
<p class="inline-hints"><%= labor_budget.label(:budget, l(:text_dollar_sign)) %></p>
|
||||
<%= labor_budget.text_field(:budget, :value => format_deliverable_value_fields(labor_budget.object.budget), :class => 'financial') %>
|
||||
</td>
|
||||
<td>
|
||||
<%= release(3, "Green Add button for multiple records") %>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -68,6 +68,15 @@ jQuery(function($) {
|
||||
}
|
||||
},
|
||||
|
||||
addNewDeliverableFinance = function(financeType) {
|
||||
var t = $('#labor-budget-template').tmpl({});
|
||||
var countOfExisting = $("#deliverable-labor tbody tr").size();
|
||||
var recordLocation = countOfExisting + 1; // increments the Rails [n] placeholder
|
||||
var newContent = t.html().replace(/\[0\]/g, "[" + recordLocation + "]");
|
||||
|
||||
$("<tr>" + newContent + '</tr>').appendTo('#deliverable-labor tbody');
|
||||
},
|
||||
|
||||
toggleSpecificDeliverableFields($('form.deliverable'));
|
||||
|
||||
$('select#deliverable_type').change(function() {
|
||||
|
||||
+1
File diff suppressed because one or more lines are too long
@@ -9,6 +9,7 @@ module RedmineContracts
|
||||
return stylesheet_link_tag("redmine_contracts", :plugin => "redmine_contracts", :media => "screen") +
|
||||
|
||||
javascript_include_tag('jquery-1.4.2.min.js', :plugin => 'redmine_contracts') +
|
||||
javascript_include_tag('jquery.tmpl.min.js', :plugin => 'redmine_contracts') +
|
||||
javascript_tag('jQuery.noConflict();') +
|
||||
javascript_include_tag('contracts.js', :plugin => 'redmine_contracts')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user