1jQuery(document).ready(function() {
2 var spinner = jQuery('#withSelectedSpinner'),
3 selectedTickets = [];
4 spinner.hide();
5
6 WHMCS.ui.dataTable.getTableById(
7 'tblClientTickets',
8 {
9 'dom': '<"listtable"><"row"<"col-md-6"i><"col-md-6"f><"col-md-12"t><"col-md-6"l><"col-md-6"p>>',
10 'aoColumnDefs': [
11 {
12 'bSortable': false,
13 'aTargets': [0, 1, 3]
14 }
15 ],
16 'order': [5, 'desc']
17 }
18 );
19
20 jQuery('#checkAllTickets').click(function (event) {
21 var checked = this.checked;
22 jQuery(event.target).parents('.datatable').find('input.ticket-checkbox:visible').each(function () {
23 jQuery(this).prop('checked', checked);
24 jQuery(this).trigger('change');
25 });
26 });
27
28 jQuery(document).on('change', '.ticket-checkbox', function () {
29 if (jQuery(this).is(':checked')) {
30 selectedTickets.push(parseInt(jQuery(this).val()));
31 } else {
32 selectedTickets.splice(selectedTickets.indexOf(parseInt(jQuery(this).val())), 1);
33 }
34 });
35
36 jQuery(document).on('click', '#ticketsClose,#ticketsDelete,#ticketsMerge', function (event)
37 {
38 event.preventDefault();
39 if (jQuery(this).attr('disabled')) {
40 return;
41 }
42 var type = jQuery(this).attr('id'),
43 name = eval(type);
44
45 if (selectedTickets.length === 0) {
46 swal({
47 title: missingSelections.title,
48 html: true,
49 text: missingSelections.text,
50 type: missingSelections.type,
51 confirmButtonText: missingSelections.confirmButtonText
52 });
53 } else if (type === 'ticketsMerge' && selectedTickets.length === 1) {
54 swal({
55 title: mergeError.title,
56 html: true,
57 text: mergeError.text,
58 type: mergeError.type,
59 confirmButtonText: mergeError.confirmButtonText
60 });
61 } else {
62 var btnDropdown = jQuery('#btnTicketsWithSelected');
63 swal(
64 {
65 title: name.title,
66 html: true,
67 text: name.text,
68 type: name.type,
69 showCancelButton: true,
70 confirmButtonText: name.confirmButtonText,
71 cancelButtonText: name.cancelButtonText
72 },
73 function() {
74 btnDropdown.prop('disabled', true).addClass('disabled');
75 spinner.fadeIn('fast');
76 WHMCS.http.jqClient.post(
77 name.url,
78 {
79 token: csrfToken,
80 ticketIds: selectedTickets
81 }
82 ).always(function(data) {
83 window.location.reload();
84 });
85 }
86 );
87 }
88
89 });
90});
91