Files
doitinpoland.com/wp-content/plugins/sitepress-multilingual-cms/res/js/taxonomy-translation/views/nav-view.js
2023-09-12 21:41:04 +02:00

74 lines
1.9 KiB
JavaScript

(function () {
TaxonomyTranslation.views.NavView = Backbone.View.extend({
template: WPML_core[ 'templates/taxonomy-translation/nav.html' ],
model: TaxonomyTranslation.models.taxonomy,
events: {
"change .current-page": 'goToPage',
"click .next-page": 'nextPage',
"click .prev-page": 'prevPage',
"click .first-page": 'firstPage',
"click .last-page": 'lastPage'
},
initialize: function (data, options) {
this.page = 1;
this.perPage = options.perPage;
},
goToPage: function () {
var self = this;
var currentPageField = jQuery(".current-page");
var page = currentPageField.val();
if (page > 0 && page <= self.pages) {
self.page = parseInt(page);
self.trigger("newPage");
} else {
currentPageField.val(self.page);
}
return self;
},
nextPage: function(){
var self = this;
self.$el.find('.current-page').val(self.page + 1).change();
},
prevPage: function(){
var self = this;
self.$el.find('.current-page').val(self.page - 1).change();
},
firstPage: function(){
var self = this;
self.$el.find('.current-page').val(1).change();
},
lastPage: function(){
var self = this;
self.$el.find('.current-page').val(self.pages).change();
},
setCounts: function(){
var self = this;
var rows = TaxonomyTranslation.data.termRowsCollection.length;
var displayedCount = TaxonomyTranslation.mainView.termRowsView.getDisplayCount();
rows = displayedCount >= 0 ? displayedCount : rows;
rows = rows ? rows : 0;
self.rows = rows;
self.pages = Math.ceil(rows / self.perPage);
},
render: function () {
var self = this;
self.setCounts();
if (self.pages > 1) {
self.$el.html(self.template({
page: self.page,
pages: self.pages,
items: self.rows
}));
self.$el.show();
} else {
self.$el.hide();
}
return self;
}
});
})(TaxonomyTranslation);