- content_for :javascript do :javascript function update_delta(input) { var units = $(input).val(); var expected = $(input).data('units-expected'); var html; if (units.replace(/\s/g,"")=="") { // no value html = ''; } else if (isNaN(units)) { html = ''; } else if (units == expected) { // equal value html = ''; } else if (units < expected) { html = '- '+(expected-units)+''; } else /*if (units> expected)*/ { html = '+ '+(units-expected)+''; } $(input).closest('tr').find('.units_delta').html(html); } $(document).on('change', 'input[data-units-expected]', function() { update_delta(this); }); $(function() { $('input[data-units-expected]').each(function() { update_delta(this); }); $('#add_article').removeAttr('disabled').select2({ placeholder: '#{t '.add_article'}', data: #{articles_for_select2(@order).to_json}, // TODO implement adding a new article, like in deliveries }).on('change', function(e) { var selectedArticle = $(e.currentTarget).select2('data'); if(!selectedArticle) { return false; } $.ajax({ url: '#{finance_receive_add_article_path(@order)}', type: 'get', data: {article_id: selectedArticle.id}, contentType: 'application/json; charset=UTF-8' }); $('#add_article').select2('data', null); return true; }); }); %table.ordered-articles.table.table-striped.stupidtable %thead %tr %th.sort{:data => {:sort => 'string'}}= t('.number') %th.sort{:data => {:sort => 'string'}}= t('.article') %th= heading_helper GroupOrderArticle, :units %th Members %th Ordered %th Invoice %th Received %th %tbody#result_table - @order_articles.each do |order_article| = render :partial => 'edit_article', :locals => {:order_article => order_article} %tfoot %tr %th{:colspan => 8} %input#add_article{:style => 'width: 500px;'}