Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/extmag/shiplab/view/adminhtml/web/js/print/printer.js
/**
 * @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 () {
                        }
                    }
                });
            }
        }
    }
);

Spamworldpro Mini