ActionBar: Verwendung in MassInvoiceCreatePrint-Controller (nur Rechnungsliste)
[kivitendo-erp.git] / js / kivi.MassInvoiceCreatePrint.js
1 namespace('kivi.MassInvoiceCreatePrint', function(ns) {
2   this.checkSalesOrderSelection = function() {
3     if ($("[data-checkall=1]:checked").size() > 0)
4       return true;
5     alert(kivi.t8('No delivery orders have been selected.'));
6     return false;
7   };
8
9   this.checkDeliveryOrderSelection = function() {
10     if ($("[data-checkall=1]:checked").size() > 0)
11       return true;
12     alert(kivi.t8('No delivery orders have been selected.'));
13     return false;
14   };
15
16   this.checkInvoiceSelection = function() {
17     if ($("[data-checkall=1]:checked").size() > 0)
18       return true;
19     alert(kivi.t8('No invoices have been selected.'));
20     return false;
21   };
22
23   this.submitMassCreationForm = function() {
24     if (!kivi.MassInvoiceCreatePrint.checkDeliveryOrderSelection())
25       return false;
26
27     $('body').addClass('loading');
28     $('form').submit();
29     return false;
30   };
31
32   this.createPrintAllInitialize = function() {
33     kivi.popup_dialog({
34       id: 'create_print_all_dialog',
35       dialog: {
36         title: kivi.t8('Create and print all invoices')
37       }
38     });
39   };
40
41   this.createPrintAllStartProcess = function() {
42     $('#cpa_start_process_button,.ui-dialog-titlebar button.ui-dialog-titlebar-close').prop('disabled', 'disabled');
43     $('#cpa_start_process_abort_link').remove();
44
45     var filter = $('[name^=filter\\.]').serializeArray();
46     var data = {
47       action:             'MassInvoiceCreatePrint/create_print_all_start',
48       number_of_invoices: $('#cpa_number_of_invoices').val(),
49       bothsided:          $('#cpa_bothsided').val(),
50       printer_id:         $('#cpa_printer_id').val(),
51       copy_printer_id:    $('#cpa_copy_printer_id').val(),
52       transdate:          $('#transdate').val()
53     };
54
55     $(filter).each(function(index, obj){ data[obj.name] = obj.value; });
56
57     $.post('controller.pl', data, kivi.eval_json_result);
58   };
59
60   this.createPrintAllFinishProcess = function() {
61     $('#create_print_all_dialog').dialog('close');
62     window.location.href = 'controller.pl?action=MassInvoiceCreatePrint%2flist_invoices&noshow=1';
63   };
64
65   this.massConversionStarted = function() {
66     $('#create_print_all_dialog').data('timerId', setInterval(function() {
67       $.get("controller.pl", {
68         action: 'MassInvoiceCreatePrint/create_print_all_status',
69         job_id: $('#cpa_job_id').val()
70       }, kivi.eval_json_result);
71     }, 5000));
72   };
73
74   this.massConversionFinished = function() {
75     clearInterval($('#create_print_all_dialog').data('timerId'));
76     $('.ui-dialog-titlebar button.ui-dialog-titlebar-close').prop('disabled', '')
77   };
78
79   this.setup = function() {
80     $('#create_button').click(kivi.MassInvoiceCreatePrint.submitMassCreationForm);
81     $('#create_print_all_button').click(kivi.MassInvoiceCreatePrint.createPrintAllInitialize);
82   };
83
84   ns.showMassPrintOptions = function() {
85     $('#printer_options_printer_id').val($('#printer_id').val());
86
87     kivi.popup_dialog({
88       id: 'print_options',
89       dialog: {
90         title: kivi.t8('Print options'),
91         width:  600,
92         height: 200
93       }
94     });
95
96     return true;
97   };
98
99   ns.showMassPrintOptionsOrDownloadDirectly = function() {
100     if (!kivi.MassInvoiceCreatePrint.checkInvoiceSelection())
101       return false;
102
103     if ($('#print_options_printer_id').length === 0)
104       return kivi.MassInvoiceCreatePrint.massPrint();
105     return kivi.MassInvoiceCreatePrint.showMassPrintOptions();
106   };
107
108   ns.massPrint = function() {
109     $('#print_options').dialog('close');
110
111     $('#printer_id').val($('#print_options_printer_id').val());
112     $('#action').val('MassInvoiceCreatePrint/print');
113
114     $('#report_form').submit();
115
116     return true;
117   };
118
119   this.resetSearchForm = function() {
120     $("#filter_table input").val("");
121   };
122 });
123
124 $(kivi.MassInvoiceCreatePrint.setup);