PageSourceSearch

https://stfi.org/wp-content/plugins/custom-hs-qb-integration/expor…/assets/script.js?ver=1791521714

js stfi.org collected 2026-10-09 17:09:04 UTC 5,606 bytes, 118 lines download raw bytes

1jQuery(document).ready(function($) {
2    // $('#upload-csv').on('click', function() {
3    //     $('#csv-file-input').click();
4    // });
5
6    jQuery(document).on('click','#upload-csv',function(){
7        jQuery('#csv-file-input').click();
8    });
9
10
11    jQuery(document).on('change','#csv-file-input',function(){
12        var file_data = $(this).prop('files')[0];
13        console.log('file_data',file_data);
14        var form_data = new FormData();
15        form_data.append('file', file_data);
16        form_data.append('action', 'handle_excel_upload');
17
18        // empty validation msg and show process gif
19        $("#processing-gif").show();
20        $("#proceed-buttons").hide();
21        $("#refresh-buttons").hide();
22        $('#validation-messages').empty();
23        $('#importDeals #excelName').val("");
24        $('#importDeals #ignoreRowsInfo').empty();
25        
26        $.ajax({
27            url: excelValidator.ajax_url,
28            type: 'POST',
29            data: form_data,
30            contentType: false,
31            processData: false,
32            success: function(response) {
33                try {
34                    var result = typeof response === 'string' ? JSON.parse(response) : response;
35                    var msg = result.data.message ? result.data.message : "File uploaded successfully!";
36                    if (result.success) {
37                        $('#validation-messages').append('<p class="success">'+msg+'</p>');
38                        $('#importDeals #excelName').val(result.data.newFileName);
39                        if(result.data.allRowsHasError=="Yes") {
40                            $('#validation-messages').append('<p class="error">Uploaded excel file data is not correct.</p>');
41                            $('#refresh-buttons').show();
42                        } else {
43                            $('#proceed-buttons').show();
44                            $('#proceed-yes').removeAttr("disabled");
45                        }
46                        // Check if errorData exists and is not empty
47                        if (Object.keys(result.data.errorData).length > 0) {
48                            // Create table elements
49                            var tbl = $('<table>').addClass('error-table');
50                            var tblHead = $('<thead>');
51                            var tblbody = $('<tbody>');
52
53                            // Add table headers
54                            tblHead.append(`<tr><th width='20%'>Row Number</th><th width='80%'>Error Message</th></tr>`);
55                            tbl.append(tblHead);
56                            Object.entries(result.data.errorData).forEach(([rowNumber, fieldErrors]) => {
57                                $('#importDeals #ignoreRowsInfo').append(`<input type="hidden" name="excelIgnoreRows[]" value="${rowNumber}" />`);
58                                var tblTr = $('<tr>');
59                                tblTr.append(`<td>${rowNumber}</td>`);
60                                var tbltd = $('<td>').addClass('error');
61                                var errMsgs = '';
62                                Object.entries(fieldErrors).forEach(([field, message]) => {
63                                    errMsgs += message+', ';
64                                    tbltd.append(`<p class="error pad-bottom2">${message}</p>`);
65                                });
66                                //tblTr.append(tbltd);
67                                var errmsg = errMsgs.slice(0, -2);
68                                tblTr.append(`<td class="error">${errmsg}</td>`);
69                                tblbody.append(tblTr);
70                            });
71                            tbl.append(tblbody);
72                            $('#validation-messages').append(tbl);
73                        }
74                    } else {
75                        $('#validation-messages').append('<p class="error">' + msg + '</p>');
76                        $('#proceed-yes').attr("disabled",true);
77                    }
78                } catch (error) {
79                    $('#validation-messages').append('<p>Error processing response. Check console for details.</p>');
80                }
81                $("#processing-gif").hide();
82            }
83        });
84    });
85
86    $('#proceed-yes').on('click', function(e) {
87        e.preventDefault();
88        $('#processing-gif').show();
89        $('#proceed-yes').attr("disabled",true);
90        let formData = $(".csv-upload-container #importDeals").seri
90alize()
91        $.ajax({
92            url: excelValidator.ajax_url,
93            type: 'POST',
94            data: formData+'&action=handle_excel_data_process',
95            processData: false,
96            success: function(response) {
97                $("#processing-gif").hide();
98                $("#proceed-buttons").hide();
99                $('#validation-messages').empty();
100                $('#importDeals #excelName').val("");
101                $('#importDeals #ignoreRowsInfo').empty();
102                
103                var result = typeof response === 'string' ? JSON.parse(response) : response;
104                var msg = result.data.message ? result.data.message : "File uploaded successfully!";
105                if (result.success) {
106                    $('#validation-messages').append('<p class="success">' + msg + '</p>');
107                } else {
108                    $('#validation-messages').append('<p class="error">' + msg + '</p>');
109                }
110            }
111        });
112    });
113
114    $('#proceed-no, #refresh-btn').on('click', function(e) {
115        e.preventDefault();
116        location.reload();
117    });
118});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.