[MERGE] merged hsa's branch lp:~openerp-dev/openerp-web/trunk-diagramview-imp-bde-diagram-pager-hsa

bzr revid: bde@tinyerp.com-20121023084031-wfy713bfbs0kaclv
This commit is contained in:
Bharat Devnani (OpenERP)
2012-10-23 14:10:31 +05:30
2 changed files with 59 additions and 33 deletions
+52 -27
View File
@@ -22,6 +22,7 @@ instance.web.DiagramView = instance.web.View.extend({
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 @@ instance.web.DiagramView = instance.web.View.extend({
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,65 @@ instance.web.DiagramView = instance.web.View.extend({
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() {
@@ -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>