+ ns.PickerMultiPopup = function(pp) {
+ this.pp = pp;
+ this.callback = 'Part/add_multi_' + this.pp.o.part_type + '_items';
+ this.open_dialog();
+ };
+
+ ns.PickerMultiPopup.prototype = {
+ open_dialog: function() {
+ var self = this;
+ $('#row_table_id thead a img').remove();
+
+ kivi.popup_dialog({
+ url: 'controller.pl?action=Part/show_multi_items_dialog',
+ data: $.extend({
+ real_id: self.pp.real_id,
+ show_pos_input: self.pp.o.multiple_pos_input,
+ }, self.pp.ajax_data(this.pp.$dummy.val())),
+ id: 'jq_multi_items_dialog',
+ dialog: {
+ title: kivi.t8('Add multiple items'),
+ width: 800,
+ height: 800
+ },
+ load: function() {
+ self.init_search();
+ }
+ });
+ return true;
+ },
+ init_search: function() {
+ var self = this;
+ $('#multi_items_filter_table input, #multi_items_filter_table select').keydown(function(event) {
+ if(event.which == KEY.ENTER) {
+ event.preventDefault();
+ self.update_results();
+ return false;
+ }
+ });
+
+ $('#multi_items_filter_all_substr_multi_ilike').focus();
+ $('#multi_items_filter_button').click(function(){ self.update_results(); });
+ $('#multi_items_filter_reset').click(function(){ $("#multi_items_form").resetForm(); });
+ $('#continue_button').click(function(){ self.add_multi_items(); });
+ },
+ update_results: function() {
+ var self = this;
+ var data = $('#multi_items_form').serializeArray();
+ data.push({ name: 'type', value: self.pp.type });
+ data.push({ name: 'limit', value: self.pp.o.multiple_limit });
+ var ppdata = self.pp.ajax_data(function(){
+ var val = $('#multi_items_filter').val();
+ return val === undefined ? '' : val;
+ });
+ $.each(Object.keys(ppdata), function() {data.push({ name: 'multi_items.' + this, value: ppdata[this]});});
+ $.ajax({
+ url: 'controller.pl?action=Part/multi_items_update_result',
+ data: data,
+ method: 'post',
+ success: function(data){
+ $('#multi_items_result').html(data);
+ self.init_results();
+ self.enable_continue();
+ }
+ });
+ },
+ set_qty_to_one: function(clicked) {
+ if ($(clicked).val() === '') {
+ $(clicked).val(kivi.format_amount(1.00, -2));
+ }
+ $(clicked).select();
+ },
+ init_results: function() {
+ var self = this;
+ $('#multi_items_all_qty').change(function(event){
+ $('.multi_items_qty').val($(event.target).val());
+ });
+ $('.multi_items_qty').click(function(){ self.set_qty_to_one(this); });
+ },
+ result_timer: function() {
+ },
+ close_dialog: function() {
+ $('#jq_multi_items_dialog').dialog('close');
+ },
+ disable_continue: function() {
+ $('#multi_items_result input, #multi_items_position').off("keydown");
+ $('#continue_button').prop('disabled', true);
+ },
+ enable_continue: function() {
+ var self = this;
+ $('#multi_items_result input, #multi_items_position').keydown(function(event) {
+ if(event.keyCode == KEY.ENTER) {
+ event.preventDefault();
+ self.add_multi_items();
+ return false;
+ }
+ });
+ $('#continue_button').prop('disabled', false);
+ },
+ add_multi_items: function() {
+ // rows at all
+ var n_rows = $('.multi_items_qty').length;
+ if ( n_rows === 0) { return; }
+
+ // filled rows
+ n_rows = $('.multi_items_qty').filter(function() {
+ return $(this).val().length > 0;
+ }).length;
+ if (n_rows === 0) { return; }
+
+ this.disable_continue();
+
+ var data = $('#multi_items_form').serializeArray();
+ this.pp.set_multi_items(data);
+ }
+ };
+