02bf33ae9f8ebb6e54dc9706506df68cab223748
[kivitendo-erp.git] / templates / webpages / part / _multi_items_dialog.html
1 [%- USE T8 %][%- USE HTML %][%- USE L %][%- USE LxERP %]
2
3 <form method="post" id="multi_items_form" method="POST">
4
5 [% L.hidden_tag('part.part_type', FORM.part.part_type) %]
6
7 <table id='multi_items_filter_table'>
8   <tr>
9     <th>[%- LxERP.t8("Description") %]/[%- LxERP.t8("Partnumber") %]:</th>
10     <td>[%- L.input_tag('multi_items.filter.all:substr:multi::ilike', partfilter) %]</td>
11     <th>[%- LxERP.t8("Partsgroup") %]</th>
12     <td>[%- L.select_tag('multi_items.filter.partsgroup_id', all_partsgroups, title_key='partsgroup', value_key='id', with_empty=1) %]</td>
13   <tr>
14 </table>
15
16 [% L.button_tag('update_result()', LxERP.t8('Filter')) %]
17 <a href='#' onClick='javascript:$("#multi_items_filter_table input").val("");$("#multi_items_filter_table input[type=checkbox]").prop("checked", 0);$("#multi_items_filter_table select").prop("selectedIndex", 0);'>[% 'Reset' | $T8 %]</a>
18
19 <hr>
20 <div id='multi_items_result'></div>
21 <hr>
22
23 [% L.button_tag('add_multi_items()', LxERP.t8('Continue'), id='continue_button') %]
24 <a href="#" onclick="kivi.Part.close_multi_items_dialog();">[%- LxERP.t8("Cancel") %]</a>
25
26 <script type='text/javascript'>
27 function update_result() {
28   var data = $('#multi_items_form').serializeArray();
29   data.push({ name: 'type', value: '[%- FORM.type %]' });
30   $.ajax({
31     url: 'controller.pl?action=Part/multi_items_update_result',
32     data: data,
33     method: 'post',
34     success: function(data){
35       $('#multi_items_result').html(data);
36       enable_continue();
37     }
38   });
39 }
40
41 function disable_continue() {
42   // disable keydown-event and continue button to prevent
43   // impatient users to add parts multiple times
44   $('#multi_items_result input').off("keydown");
45   $('#continue_button').prop('disabled', true);
46 }
47
48 function enable_continue() {
49   $('#multi_items_result input').keydown(function(event) {
50     if(event.keyCode == 13) {
51       event.preventDefault();
52       add_multi_items();
53       return false;
54     }
55   });
56   $('#continue_button').prop('disabled', false);
57 }
58
59 function add_multi_items() {
60   // rows at all
61   var n_rows = $('.multi_items_qty').length;
62   if ( n_rows == 0) { return; }
63
64   // filled rows
65   n_rows = $('.multi_items_qty').filter(function() {
66     return $(this).val().length > 0;
67   }).length;
68   if ( n_rows == 0) { return; }
69
70   disable_continue();
71
72   // var data = $('#[%- FORM.callback_data_id %]').serializeArray(); /* do i need to serialize this as well? */
73   // var data = data.concat($('#multi_items_form').serializeArray());
74   var data = $('#multi_items_form').serializeArray();
75   data.push({ name: 'action', value: '[%- FORM.callback %]' });
76   data.push({ name: 'part_type', value: '[%- FORM.part.part_type %]' });
77   data.push({ name: 'part.id'  , value: '[%- FORM.part.id %]' });
78   $.post("controller.pl", data, kivi.eval_json_result);
79 }
80
81 $('#multi_items_filter_table input, #multi_items_filter_table select').keydown(function(event) {
82   if(event.keyCode == 13) {
83     event.preventDefault();
84     update_result();
85     return false;
86   }
87 });
88
89 $('#multi_items_filter_all_substr_multi_ilike').focus();
90 </script>
91
92 </form>