Ver Fonte

[FIX] error handle

Gogs há 6 anos atrás
pai
commit
271277e65f
4 ficheiros alterados com 50 adições e 5225 exclusões
  1. 0 5205
      static/lib/js/html2canvas.js
  2. 43 18
      static/src/js/main.js
  3. 7 1
      static/src/xml/main.xml
  4. 0 1
      templates.xml

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 5205
static/lib/js/html2canvas.js


+ 43 - 18
static/src/js/main.js

@@ -1,9 +1,10 @@
 window.pdfjsLib.GlobalWorkerOptions.workerSrc = '/printer_bridge/static/lib/js/pdf.worker.js';
 
 // Tools
-openerp.pdfJs = window.pdfjsLib || {};
-openerp.printJs = window.printJS || {};
-openerp.html2canvas = window.html2canvas || {};
+openerp.pdfJs = window.pdfjsLib || _.noop();
+openerp.printJs = window.printJS || _.noop();
+openerp.html2canvas = window.html2canvas || _.noop();
+openerp.html2pdf = window.html2pdf || _.noop();
 
 /**
  * 
@@ -108,7 +109,7 @@ openerp.printer_bridge = function (instance, local) {
             }
 
             if (_.isEqual(data.status, 'error')) {
-                instance.web.notification.do_warn('Impresión', 'Ocurrió un error al imprimir: ' + data.printer);
+                instance.web.notification.do_warn('Impresión', 'Ocurrió un error al imprimir: ' + data.printer, data.cause);
             }
         },
         handle_download_data: function (data) {
@@ -278,6 +279,9 @@ openerp.printer_bridge = function (instance, local) {
         init: function (parent) {
             this._super(parent);
             this.start();
+
+            var config = local.socket_manager.config;
+            this.preview_pdf = config.action_preview_pdf || false;
         },
         start: function () {
             this.defer = $.Deferred();
@@ -578,13 +582,14 @@ openerp.printer_bridge = function (instance, local) {
             return;
         }
 
-        if (this.socket_manager.socket.disconnected) {
-            if (config.action_download_pdf) {
-                download_pdf(data);
-                return;
-            }
+        if (config.action_download_pdf) {
+            download_pdf(data);
+            return;
+        }
 
+        if (this.socket_manager.socket.disconnected) {
             var widget = new PrinterUnavailableDialog();
+
             widget.can_download().then(function (can_download) {
                 if (!can_download) {
                     return;
@@ -616,16 +621,35 @@ openerp.printer_bridge = function (instance, local) {
         print_test: function (e) {
             e.preventDefault();
 
-            var html = openerp.web.qweb.render('EiruPosTicket');
+            var wrapper = document.createElement('div');
+            wrapper.innerHTML = openerp.web.qweb.render('EiruPosTicket');
+            wrapper.setAttribute('id', 'ticket_wrapper')
+
+            $('body').append(wrapper);
+
+            // var ticket_el = $('body').find('.eiru_pos_ticket').get(0);
+            var ticket_el = document.querySelector('.eiru_pos_ticket');
+
+            console.log(ticket_el);
+
             var pdf = new jsPDF({
                 unit: 'mm',
                 format: [290, 70]
             });
 
-            pdf.fromHTML(html, 0, 0);
+            instance.html2canvas(ticket_el, {
+                canvas: pdf.canvas,
+                logging: false,
+                removeContainer: true,
+                width: 264.5,
+                height: 1016.6
+            }).then(function (canvas) {
+                console.log(canvas);
+            });
 
-            var data = pdf.output('datauristring');
-            local.print(data);
+            // var data = pdf.output('datauristring');
+            // console.log(data);
+            // local.print(data);
         }
     });
 
@@ -752,14 +776,15 @@ openerp.printer_bridge = function (instance, local) {
                         this.trigger_preview_pdf(action);
                         return;
                     }
+                    
+                    if (config.action_download_pdf) {
+                        self.trigger_download_pdf(action);
+                        return;
+                    }
 
                     if (local.socket_manager.socket.disconnected) {
-                        if (config.action_download_pdf) {
-                            self.trigger_download_pdf(action);
-                            return;
-                        }
-
                         var widget = new PrinterUnavailableDialog(this);
+
                         widget.can_download().then(function (can_download) {
                             if (!can_download) {
                                 return;

+ 7 - 1
static/src/xml/main.xml

@@ -57,12 +57,18 @@
                         <p style="margin-left: 25px;">La impresión rápida no está disponible, sin embargo puede hacer lo siguiente:</p>
                         <div class="printer_selection_wrapper" style="height: 120px;">
                             <ul class="printer_selection_list">
-                                <li>
+                                <li t-if="!widget.preview_pdf">
                                     <i class="fa fa-file-pdf-o"></i>
                                     <div>
                                         <h2>Descargar PDF</h2>
                                     </div>
                                 </li>
+                                <li t-if="widget.preview_pdf">
+                                    <i class="fa fa-file-pdf-o"></i>
+                                    <div>
+                                        <h2>Abrir PDF</h2>
+                                    </div>
+                                </li>
                             </ul>
                         </div>
                     </div>

+ 0 - 1
templates.xml

@@ -8,7 +8,6 @@
                 <script type="text/javascript" src="/printer_bridge/static/lib/js/pdf.js" />
                 <script type="text/javascript" src="/printer_bridge/static/lib/js/pdf.worker.js" />
                 <script type="text/javascript" src="/printer_bridge/static/lib/js/print.js" />
-                <script type="text/javascript" src="/printer_bridge/static/lib/js/html2canvas.js" />
                 <script type="text/javascript" src="/printer_bridge/static/src/js/main.js" />
                 <link rel="stylesheet" href="/printer_bridge/static/src/css/main.css" />
             </xpath>

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff