summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarren Smith <garren.smith@gmail.com>2014-02-03 15:08:20 +0200
committerGarren Smith <garren.smith@gmail.com>2014-03-03 11:18:41 +0200
commit2cf0f41324b5332e0b60690be669deec234c395e (patch)
treec3f2760ea2bd0e134a87ac417ab6dba601b5e8df
parent55b6ea67ac7e3b0180b216007c2018cd140e5703 (diff)
downloadcouchdb-2cf0f41324b5332e0b60690be669deec234c395e.tar.gz
fix previous paginate
-rw-r--r--src/fauxton/app/addons/documents/resources.js7
-rw-r--r--src/fauxton/app/addons/documents/routes.js8
-rw-r--r--src/fauxton/app/addons/documents/views.js1
-rw-r--r--src/fauxton/app/addons/fauxton/components.js8
4 files changed, 18 insertions, 6 deletions
diff --git a/src/fauxton/app/addons/documents/resources.js b/src/fauxton/app/addons/documents/resources.js
index 4028cb168..c2f9a706c 100644
--- a/src/fauxton/app/addons/documents/resources.js
+++ b/src/fauxton/app/addons/documents/resources.js
@@ -281,7 +281,6 @@ function(app, FauxtonAPI) {
this.database = options.database;
this.params = _.clone(options.params);
this.skipFirstItem = false;
- this.totalRowsToPaginate = 100;
this.on("remove",this.decrementTotalRows , this);
this.perPageLimit = options.perPageLimit || 20;
@@ -426,6 +425,12 @@ function(app, FauxtonAPI) {
this.view = options.view;
this.design = options.design.replace('_design/','');
this.skipFirstItem = false;
+ this.perPageLimit = options.perPageLimit || 20;
+
+ if (this.params.limit > this.perPageLimit) {
+ this.params.limit = this.perPageLimit;
+ }
+
},
url: function(context) {
diff --git a/src/fauxton/app/addons/documents/routes.js b/src/fauxton/app/addons/documents/routes.js
index 3ec640f89..a0edc0780 100644
--- a/src/fauxton/app/addons/documents/routes.js
+++ b/src/fauxton/app/addons/documents/routes.js
@@ -356,8 +356,12 @@ function(app, FauxtonAPI, Documents, Databases) {
this.documentsView.collection.skipFirstItem = true;
this.documentsView.collection.nextPage(options.perPage);
} else {
- this.documentsView.collection.skipFirstItem = false;
- this.documentsView.collection.previousPage(options.perPage);
+ if (options.params && options.params.startkey) {
+ this.documentsView.collection.skipFirstItem = true;
+ } else {
+ this.documentsView.collection.skipFirstItem = false;
+ }
+ this.documentsView.collection.previousPage(options.perPage, options.params);
}
},
diff --git a/src/fauxton/app/addons/documents/views.js b/src/fauxton/app/addons/documents/views.js
index 674b21ba6..8fa426aed 100644
--- a/src/fauxton/app/addons/documents/views.js
+++ b/src/fauxton/app/addons/documents/views.js
@@ -456,7 +456,6 @@ function(app, FauxtonAPI, Components, Documents, Databases, pouchdb, resizeColum
pageEnd = this.pagination.pageEnd();
}
- console.log('t', totalRows, this.collection);
return {
database: app.utils.safeURLName(this.collection.database.id),
updateSeq: updateSeq,
diff --git a/src/fauxton/app/addons/fauxton/components.js b/src/fauxton/app/addons/fauxton/components.js
index c755428de..b31c6235e 100644
--- a/src/fauxton/app/addons/fauxton/components.js
+++ b/src/fauxton/app/addons/fauxton/components.js
@@ -75,6 +75,7 @@ function(app, FauxtonAPI, ace, spin) {
this._pageStart = 1;
this.perPage = 20;
this.docLimit = options.docLimit || 100;
+ this.paramsHistory = [];
},
canShowPreviousfn: function () {
@@ -106,7 +107,8 @@ function(app, FauxtonAPI, ace, spin) {
FauxtonAPI.triggerRouteEvent('paginate', {
direction: 'previous',
- perPage: this.perPage
+ perPage: this.perPage,
+ params: this.paramsHistory.pop()
});
},
@@ -114,7 +116,8 @@ function(app, FauxtonAPI, ace, spin) {
event.preventDefault();
event.stopPropagation();
if (!this.canShowNextfn()) { return; }
-
+
+ this.paramsHistory.push(_.clone(this.collection.params));
this.pageNumber = this.pageNumber + 1;
this.incPageStart();
@@ -129,6 +132,7 @@ function(app, FauxtonAPI, ace, spin) {
direction: 'next',
perPage: limit
});
+
},
serialize: function () {