Hardik Sanchawat (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-diagramview-imp-bde-diagram-pager-hsa into 
lp:~openerp-dev/openerp-web/trunk-diagramview-imp-bde.

Requested reviews:
  OpenERP R&D Team (openerp-dev)

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-diagramview-imp-bde-diagram-pager-hsa/+merge/130946

Hello,

Diagram view, Pager is working.
Pager is Display on Header.

Thanks,
- HSA
-- 
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-diagramview-imp-bde-diagram-pager-hsa/+merge/130946
Your team OpenERP R&D Team is requested to review the proposed merge of 
lp:~openerp-dev/openerp-web/trunk-diagramview-imp-bde-diagram-pager-hsa into 
lp:~openerp-dev/openerp-web/trunk-diagramview-imp-bde.
=== modified file 'addons/web_diagram/static/src/js/diagram.js'
--- addons/web_diagram/static/src/js/diagram.js	2012-10-22 08:36:17 +0000
+++ addons/web_diagram/static/src/js/diagram.js	2012-10-23 07:35:24 +0000
@@ -22,6 +22,7 @@
         this.context = {};
         this.ids = this.dataset.ids;
         this.on('view_loaded', self, self.load_diagram);
+        this.on('pager_action_executed', self, self.pager_action_trigger);
     },
     start: function() {
         var self = this;
@@ -59,12 +60,7 @@
             self.$el.find('.oe_diagram_header').append(html_label);
         })
 
-        this.$el.find('div.oe_diagram_pager button[data-pager-action]').click(function() {
-            var action = $(this).data('pager-action');
-            self.execute_pager_action(action);
-        });
-
-        this.do_update_pager();
+        this.init_pager();
 
         // New Node,Edge
         this.$el.find('#new_node.oe_diagram_button_new').click(function(){self.add_node();});
@@ -366,36 +362,61 @@
             form_controller.fields[self.connectors.attrs.destination].dirty = true;
        });
     },
-
-    execute_pager_action: function(action) {
-        switch (action) {
-            case 'first':
-                this.dataset.index = 0;
-                break;
-            case 'previous':
-                this.dataset.previous();
-                break;
-            case 'next':
-                this.dataset.next();
-                break;
-            case 'last':
-                this.dataset.index = this.dataset.ids.length - 1;
-                break;
-        }
+    do_hide: function () {
+        if (this.$pager) {
+            this.$pager.hide();
+        }
+        this._super();
+    },
+    init_pager: function() {
+        var self = this;
+        if (this.$pager)
+            this.$pager.remove();
+        
+        this.$pager = $(QWeb.render("DiagramView.pager", {'widget':self})).hide();
+        if (this.options.$pager) {
+            this.$pager.appendTo(this.options.$pager);
+        } else {
+            this.$el.find('.oe_diagram_pager').replaceWith(this.$pager);
+        }
+        this.$pager.on('click','a[data-pager-action]',function() {
+            var action = $(this).data('pager-action');
+            self.execute_pager_action(action);
+        });
+        this.do_update_pager();
+    },
+    pager_action_trigger: function(){
         var loaded = this.dataset.read_index(_.keys(this.fields_view.fields))
                 .pipe(this.on_diagram_loaded);
         this.do_update_pager();
         return loaded;
     },
+    execute_pager_action: function(action) {
+	    switch (action) {
+	        case 'first':
+	            this.dataset.index = 0;
+	            break;
+	        case 'previous':
+	            this.dataset.previous();
+	            break;
+	        case 'next':
+	            this.dataset.next();
+	            break;
+	        case 'last':
+	            this.dataset.index = this.dataset.ids.length - 1;
+	            break;
+	    }
+	    this.trigger('pager_action_executed');
+
+    },
 
     do_update_pager: function(hide_index) {
-        var $pager = this.$el.find('div.oe_diagram_pager');
-        var index = hide_index ? '-' : this.dataset.index + 1;
-        if(!this.dataset.count) {
-            this.dataset.count = this.dataset.ids.length;
+        this.$pager.toggle(this.dataset.ids.length > 1);
+        if (hide_index) {
+            $(".oe_diagram_pager_state", this.$pager).html("");
+        } else {
+            $(".oe_diagram_pager_state", this.$pager).html(_.str.sprintf(_t("%d / %d"), this.dataset.index + 1, this.dataset.ids.length));
         }
-        $pager.find('span.oe_pager_index').html(index);
-        $pager.find('span.oe_pager_count').html(this.dataset.count);
     },
 
     do_show: function() {

=== modified file 'addons/web_diagram/static/src/xml/base_diagram.xml'
--- addons/web_diagram/static/src/xml/base_diagram.xml	2012-09-04 14:50:17 +0000
+++ addons/web_diagram/static/src/xml/base_diagram.xml	2012-10-23 07:35:24 +0000
@@ -1,18 +1,19 @@
 <template>
+<t t-name="DiagramView.pager">
+    <div class="oe_diagram_pager">
+        <t t-if="widget.options.pager !== false" t-call="ViewPager">
+            <span class="oe_diagram_pager_state"></span>
+        </t>
+    </div>
+</t>
 <t t-name="DiagramView">
     <div class="oe_diagram_header" t-att-id="widget.element_id + '_header'">
         <h3 class="oe_diagram_title"/>
         <div t-if="widget.is_action_enabled('create')" class="oe_diagram_buttons">
             <button type="button" id="new_node" class="oe_button oe_diagram_button_new">New Node</button>
         </div>
-        <div class="oe_diagram_pager">
-            <t t-call="ViewPager">
-                <span class="oe_pager_index">0</span> / <span class="oe_pager_count">0</span>
-            </t>
-        </div>
         <div class="clear"></div>
     </div>
-    
     <div class="diagram-container">
         <div class="oe_diagram_diagram"/>
     </div>

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to