![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/extmag/shiplab/view/adminhtml/web/js/print/ |
/** * @api */ define(['jquery', 'Magento_Ui/js/modal/alert', 'mage/translate', 'qzTray', 'domReady!'], function ($, malert, $t, qzTray) { 'use strict'; return { sendToPrinter: function (url, ids) { let thiz = this; $.ajax({ url: url, showLoader: false, data: {"selected": ids}, type: "GET", dataType: "json", success: function (results) { if (results && results['labels'] && results['labels'].length > 0) { if (!results['network'] || results['network'] != "1") { if (!results['application'] || results['application'] == 'elprint') { let port = results['port']; if (!port) { thiz.showAlert("Error: Port of el-Print program is undefined"); } let socket = new WebSocket("ws://localhost:" + port + "/ws"); socket.onopen = function () { let ln = results['labels'].length; for (let i = 0; i < ln; i++) { let result = results['labels'][i]; socket.send(JSON.stringify(result)); } socket.send('{"queue_end": "1"}'); console.log("Connection established"); }; socket.onmessage = function (event) { let incomingMessage = JSON.parse(event.data); if (incomingMessage["Message"]) { thiz.showAlert(incomingMessage["Message"]); } }; socket.onclose = function (event) { if (event.wasClean) { console.log('Close: Connection closed cleanly'); } else { console.log('Close: Connection break'); } console.log('Close: Code: ' + event.code + ' Cause: ' + event.reason); }; socket.onerror = function (error) { thiz.showAlert("Error: el-Print is not turned on local computer"); console.log("Error: " + error.message); }; } else { new Promise((resolve, reject) => { if (qz.websocket.isActive()) { resolve(qzTray.websocket); } else { resolve(qzTray.websocket.connect()); } }).then(function () { console.log("QZ Tray is connected!"); return qz.printers.find(results['qz_printer_name']); }).then(function (printer) { var config = qz.configs.create(printer); let ln = results['labels'].length; let data = []; for (let i = 0; i < ln; i++) { if (results['labels'][i]['ext'] == 'pdf') { data[i] = { type: 'pixel', format: 'pdf', flavor: 'base64', data: results['labels'][i]['data'] }; } else { data[i] = atob(results['labels'][i]['data']); } } return qz.print(config, data); }).catch(function (e) { console.error(e); alert(e); }); } } else { if (!results['error']) { let incomingMessage = JSON.parse(results['response']); if (incomingMessage["Message"]) { thiz.showAlert(incomingMessage["Message"]); } } else { thiz.showAlert(results['error']); } } } else { thiz.showAlert('Notice. No labels to print'); } }, error: function (err) { console.log(err); thiz.showAlert(err); } }); }, showAlert: function (text) { malert({ title: $t('Print'), content: $t(text), clickableOverlay: true, actions: { always: function () { } } }); } } } );