Gogs 7 anni fa
parent
commit
9fc7189de3
4 ha cambiato i file con 94 aggiunte e 1 eliminazioni
  1. 7 1
      __openerp__.py
  2. 55 0
      static/src/js/main.js
  3. 14 0
      static/src/xml/main.xml
  4. 18 0
      templates.xml

+ 7 - 1
__openerp__.py

@@ -4,5 +4,11 @@
     'author': "Robert Gauto",
     'category': 'Uncategorized',
     'version': '0.1',
-    'depends': ['base']
+    'depends': ['base', 'web'],
+    'data': [
+        'templates.xml',
+    ],
+    'qweb': [
+        'static/src/xml/*.xml'
+    ]
 }

+ 55 - 0
static/src/js/main.js

@@ -0,0 +1,55 @@
+openerp.printers_manager = function(instance, local) {
+
+    local.TestWidget = instance.Widget.extend({
+        template: 'test_widget_tmpl',
+        events: {
+            'click input': 'send_data'
+        },
+        start() {
+            this.socket = new WebSocket('ws://127.0.0.1:8701')
+            this.on('change:printers', this, this.populate_selector)
+            var self = this;
+
+            this.socket.onopen = function (e) {
+                self.socket.send(JSON.stringify({
+                    'action': 'list'
+                }))
+            }
+
+            this.socket.onmessage = function (e) {
+                self.set('printers', JSON.parse(e.data));
+            }
+        },
+        populate_selector: function () {
+            var printers = this.get('printers').printers;
+
+            if (!printers) {
+                return;
+            }
+
+            for (var i = 0; i < printers.length; i++) {
+                this.$el.find('select').append('<option>' + printers[i] + '</option>');
+            }
+        },
+        send_data: function (e) {
+            e.preventDefault();
+
+            var serializeData = $(e.target).closest('form').serialize();
+            var fields = serializeData.split(/\&/)
+            var obj = {
+                action: 'print'
+            }
+
+            for (var i = 0; i < fields.length; i++) {
+                var values = fields[i].split(/\=/);
+                obj[values[0]] = values[1].replace(/\+/g, ' ').replace(/%0D%0A/g, '\n');
+            }
+
+            this.socket.send(JSON.stringify(obj));
+            
+            return false;
+        }
+    })
+
+    instance.web.client_actions.add('printers_manager.printers_view', 'instance.printers_manager.TestWidget');
+}

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

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<template xml:space="preserve">
+    <t t-name="test_widget_tmpl">
+        <form action="#">
+            <label for="selected-printer">Impresora:</label>
+            <select id="selected-printer" name="printer"></select>
+            <br/>
+            <textarea name="data" cols="30" rows="10"></textarea>
+            <br/>
+            <input type="button" value="Imprimir"/>
+        </form>
+    </t>
+</template>

+ 18 - 0
templates.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <template id="printers_manager_assets" inherit_id="web.assets_backend">
+            <xpath expr="." position="inside">
+                <script type="text/javascript" src="/printers_manager/static/src/js/main.js" />
+            </xpath>
+        </template>
+
+        <record id="printers_manager.manager_action" model="ir.actions.client">
+            <field name="name">Printers Manager</field>
+            <field name="tag">printers_manager.printers_view</field>
+        </record>
+
+        <menuitem id="printers_manager_menu" name="Reportes" parent="base.menu_reporting" />
+        <menuitem id="printers_manager_submenu" parent="printers_manager_menu" name="Impresoras Test" action="printers_manager.manager_action" />
+    </data>
+</openerp>