[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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user