Prechádzať zdrojové kódy

[IMP] default printer

Gogs 7 rokov pred
rodič
commit
e814c25686

BIN
static/description/icon.png


+ 20 - 0
static/src/css/main.css

@@ -0,0 +1,20 @@
+#printer-status {
+    width: 5px;
+    height: 5px;
+    border-radius: 50%;
+    position: absolute;
+    top: 25px;
+    left: 18px;
+}
+
+.printer-status-online {
+    background: #66BB6A;
+}
+
+.printer-status-reconnect {
+    background: #fff176;
+}
+
+.printer-status-offline {
+    background: #ef5350;
+}

+ 31 - 3
static/src/js/main.js

@@ -69,10 +69,18 @@
         },
         reconnect: function () {
             this.state = 'reconnecting';
+
+            $('#printer-status').removeClass();
+            $('#printer-status').addClass('printer-status-reconnect');
+
             var self = this;
 
             if (this.attemps === 3) {
                 this.state = 'offline';
+
+                $('#printer-status').removeClass();
+                $('#printer-status').addClass('printer-status-offline');
+
                 return;
             }
 
@@ -84,6 +92,9 @@
         },
         handleOpen: function (e) {
             this.state = 'online';
+
+            $('#printer-status').removeClass();
+            $('#printer-status').addClass('printer-status-online');
         },
         handleClose: function (e) {
             this.reconnect();
@@ -176,7 +187,24 @@
             this._super(parent)
         },
         start: function () {
-            console.log('started');
+            this.$el.click(this, this.selectDefaultPrinter);
+        },
+        selectDefaultPrinter: function (e) {
+            e.preventDefault();
+            var self = e.data;
+
+            instance.client.action_manager.do_action({
+                context: self.session.user_context,
+                name: 'Impresora por defecto',
+                type: 'ir.actions.act_window',
+                res_model: 'print.engine.printer',
+                views: [[false, 'list'], [false, 'form']],
+                domain : [['socket_id.user_id', '=', self.session.user_context.uid]],
+                target: 'new',
+                flags: {
+                    action_buttons: true
+                }
+            })
         }
     })
 
@@ -229,8 +257,6 @@
         instance.print_engine.socket_manager.print();
     }
 
-    instance.print_engine.socket_manager = new instance.print_engine.SocketManager()
-
     instance.web.client_actions.add('print_engine.ping', 'instance.print_engine.ping')
     instance.web.client_actions.add('print_engine.discovery_printers', 'instance.print_engine.discovery_printers')
     instance.web.client_actions.add('print_engine.test_printer', 'instance.print_engine.test_printer')
@@ -242,6 +268,8 @@
                 var printer = new openerp.print_engine.PrinterTopWidget(this);
                 printer.appendTo($('.oe_systray'));
 
+                instance.print_engine.socket_manager = new instance.print_engine.SocketManager()
+
                 return this._super.apply(this, arguments);
             }
         });

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

@@ -4,6 +4,7 @@
         <li t-att-title='_t("Printer Status")'>
             <a href="#">
                 <i class="fa fa-print" aria-hidden="true" />
+                <div id="printer-status"></div>
             </a>
         </li>
     </t>

+ 1 - 0
templates.xml

@@ -4,6 +4,7 @@
         <template id="printers_manager_assets" inherit_id="web.assets_backend">
             <xpath expr="." position="inside">
                 <script type="text/javascript" src="/print_engine/static/src/js/main.js" />
+                <link rel="stylesheet" href="/print_engine/static/src/css/main.css" />
             </xpath>
         </template>
     </data>