diff options
author | Garren Smith <garren.smith@gmail.com> | 2014-02-03 15:08:20 +0200 |
---|---|---|
committer | Garren Smith <garren.smith@gmail.com> | 2014-03-03 11:18:41 +0200 |
commit | 2cf0f41324b5332e0b60690be669deec234c395e (patch) | |
tree | c3f2760ea2bd0e134a87ac417ab6dba601b5e8df | |
parent | 55b6ea67ac7e3b0180b216007c2018cd140e5703 (diff) | |
download | couchdb-2cf0f41324b5332e0b60690be669deec234c395e.tar.gz |
fix previous paginate
-rw-r--r-- | src/fauxton/app/addons/documents/resources.js | 7 | ||||
-rw-r--r-- | src/fauxton/app/addons/documents/routes.js | 8 | ||||
-rw-r--r-- | src/fauxton/app/addons/documents/views.js | 1 | ||||
-rw-r--r-- | src/fauxton/app/addons/fauxton/components.js | 8 |
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 () { |