You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by cm...@apache.org on 2009/07/22 23:35:10 UTC
svn commit: r796885 - /couchdb/trunk/share/www/script/futon.browse.js
Author: cmlenz
Date: Wed Jul 22 21:35:05 2009
New Revision: 796885
URL: http://svn.apache.org/viewvc?rev=796885&view=rev
Log:
Apply patch by Jason Davies that improves how the view menu is populated: only one HTTP request (thanks to `include_docs`), and design docs and view names are sorted alphabetically. Closes COUCHDB-426.
Modified:
couchdb/trunk/share/www/script/futon.browse.js
Modified: couchdb/trunk/share/www/script/futon.browse.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/futon.browse.js?rev=796885&r1=796884&r2=796885&view=diff
==============================================================================
--- couchdb/trunk/share/www/script/futon.browse.js [utf-8] (original)
+++ couchdb/trunk/share/www/script/futon.browse.js [utf-8] Wed Jul 22 21:35:05 2009
@@ -236,24 +236,27 @@
this.populateViewsMenu = function() {
var select = $("#switch select");
db.allDocs({startkey: "_design/", endkey: "_design0",
+ include_docs: true,
success: function(resp) {
select[0].options.length = 3;
for (var i = 0; i < resp.rows.length; i++) {
- db.openDoc(resp.rows[i].id, {
- success: function(doc) {
- var optGroup = $(document.createElement("optgroup"))
- .attr("label", doc._id.substr(8)).appendTo(select);
- for (var name in doc.views) {
- var path = $.couch.encodeDocId(doc._id) + "/_view/" +
- encodeURIComponent(name);
- var option = $(document.createElement("option"))
- .attr("value", path).text(name).appendTo(optGroup);
- if (path == viewName) {
- option[0].selected = true;
- }
- }
+ var doc = resp.rows[i].doc;
+ var optGroup = $(document.createElement("optgroup"))
+ .attr("label", doc._id.substr(8)).appendTo(select);
+ var viewNames = [];
+ for (var name in doc.views) {
+ viewNames.push(name);
+ }
+ viewNames.sort();
+ for (var j = 0; j < viewNames.length; j++) {
+ var path = $.couch.encodeDocId(doc._id) + "/_view/" +
+ encodeURIComponent(viewNames[j]);
+ var option = $(document.createElement("option"))
+ .attr("value", path).text(viewNames[j]).appendTo(optGroup);
+ if (path == viewName) {
+ option[0].selected = true;
}
- });
+ }
}
}
});