[IMP] Improved form pager

bzr revid: fme@openerp.com-20110405085750-vhlzm4wesg8l03w3
This commit is contained in:
Fabien Meghazi
2011-04-05 10:57:50 +02:00
parent e178b57778
commit 5af48556d4
3 changed files with 37 additions and 19 deletions
+3
View File
@@ -405,6 +405,9 @@ body.openerp {
.openerp .required.error {
border: 1px solid #900;
}
.openerp .oe_form_pager {
text-align: right;
}
/* Inputs */
.openerp input[type="text"], .openerp input[type="password"], .openerp select, .openerp textarea {
+26 -13
View File
@@ -41,17 +41,10 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
_.each(this.widgets, function(w) {
w.start();
});
this.$element.find('button.pager_previous').click(this.on_previous);
this.$element.find('button.pager_next').click(this.on_next);
this.$element.find('button.form_save').click(this.do_save);
},
on_previous: function() {
this.dataset.previous();
this.dataset.fetch_index(this.fields_view.fields, this.on_record_loaded);
},
on_next: function() {
this.dataset.next();
this.dataset.fetch_index(this.fields_view.fields, this.on_record_loaded);
this.$element.find('div.oe_form_pager button[data-pager-action]').click(function() {
var action = $(this).data('pager-action');
self.on_pager_action(action);
});
},
on_record_loaded: function(record) {
if (record.length) {
@@ -108,8 +101,28 @@ openerp.base.FormView = openerp.base.Controller.extend( /** @lends openerp.base
this.$element.hide();
},
do_update_pager: function() {
this.$element.find('span.dataset_index').html(this.dataset.index + 1);
this.$element.find('span.dataset_count').html(this.dataset.count);
var $pager = this.$element.find('div.oe_form_pager');
$pager.find("button[data-pager-action='first'], button[data-pager-action='previous']").attr('disabled', this.dataset.index == 0);
$pager.find("button[data-pager-action='next'], button[data-pager-action='last']").attr('disabled', this.dataset.index == this.dataset.ids.length - 1);
this.$element.find('span.oe_pager_index').html(this.dataset.index + 1);
this.$element.find('span.oe_pager_count').html(this.dataset.count);
},
on_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.dataset.fetch_index(this.fields_view.fields, this.on_record_loaded);
},
on_invalid: function() {
},
+8 -6
View File
@@ -146,12 +146,14 @@
</t>
<t t-name="FormView">
<h2 class="oe_view_title"><t t-esc="view.fields_view.arch.attrs.string"/></h2>
<div style="text-align:right;">
<input type="button" value="First"/>
<button type="button" class="pager_previous">&lt;&lt;</button>
<span class="dataset_index">0</span> / <span class="dataset_count">0</span>
<button type="button" class="pager_next">&gt;&gt;</button>
<input type="button" value="Last"/>
<div class="oe_form_pager">
<button type="button" data-pager-action="first">First</button>
<button type="button" data-pager-action="previous">&lt;&lt;</button>
<span class="oe_pager_index">0</span> / <span class="oe_pager_count">0</span>
<button type="button" data-pager-action="next">&gt;&gt;</button>
<button type="button" data-pager-action="last">Last</button>
</div>
<t t-raw="frame.render()"/>
<div style="text-align:right;">