[IMP] Improved form pager
bzr revid: fme@openerp.com-20110405085750-vhlzm4wesg8l03w3
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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() {
|
||||
},
|
||||
|
||||
@@ -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"><<</button>
|
||||
<span class="dataset_index">0</span> / <span class="dataset_count">0</span>
|
||||
<button type="button" class="pager_next">>></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"><<</button>
|
||||
|
||||
<span class="oe_pager_index">0</span> / <span class="oe_pager_count">0</span>
|
||||
|
||||
<button type="button" data-pager-action="next">>></button>
|
||||
<button type="button" data-pager-action="last">Last</button>
|
||||
</div>
|
||||
<t t-raw="frame.render()"/>
|
||||
<div style="text-align:right;">
|
||||
|
||||
Reference in New Issue
Block a user