summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorChristopher Lenz <cmlenz@apache.org>2009-07-20 21:31:30 +0000
committerChristopher Lenz <cmlenz@apache.org>2009-07-20 21:31:30 +0000
commit65491b2704a2e3894e4803689313e2d90174bc47 (patch)
treeff4e6796258216e7c4ed29965fb8fd60874bc49d /share
parentc2cde95cddcfee01213d8984e5076e2b0e28e55c (diff)
Make the view URL in Futon consistent with the URL for views in the HTTP interface (and thereby also avoid a redirect). Thanks to Volker Mische for the suggestion and patch. Closes COUCHDB-408.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@796027 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share')
-rw-r--r--share/www/database.html7
-rw-r--r--share/www/script/futon.browse.js18
2 files changed, 11 insertions, 14 deletions
diff --git a/share/www/database.html b/share/www/database.html
index 5a722e1a..1abed3db 100644
--- a/share/www/database.html
+++ b/share/www/database.html
@@ -40,11 +40,6 @@ specific language governing permissions and limitations under the License.
if (page.redirecting) return;
$("h1 strong").text(page.db.name);
var viewPath = page.viewName || "_all_docs";
- if (/^_design\//.test(viewPath)) {
- var parts = viewPath.split("/");
- parts.splice(2, 0, "_view");
- viewPath = parts.join("/");
- }
if (viewPath != "_temp_view" && viewPath != "_design_docs") {
$("h1 a.raw").attr("href", "/" + encodeURIComponent(page.db.name) +
"/" + viewPath);
@@ -95,7 +90,7 @@ specific language governing permissions and limitations under the License.
var viewName = $(this).val();
if (!viewName) $.cookies.remove(page.db.name + ".view");
location.href = "?" + encodeURIComponent(page.db.name) +
- (viewName ? "/" + encodeURIComponent(viewName) : "");
+ (viewName ? "/" + viewName : "");
});
$("#documents thead th.key").click(function() {
$(this).toggleClass("desc");
diff --git a/share/www/script/futon.browse.js b/share/www/script/futon.browse.js
index 1b91e27d..84b3474e 100644
--- a/share/www/script/futon.browse.js
+++ b/share/www/script/futon.browse.js
@@ -104,7 +104,7 @@
if (viewName) {
this.redirecting = true;
location.href = "database.html?" + encodeURIComponent(dbName) +
- "/" + encodeDocId(viewName);
+ "/" + viewName;
}
}
var db = $.couch.db(dbName);
@@ -258,9 +258,10 @@
.attr("label", doc._id.substr(8));
for (var name in doc.views) {
var option = $(document.createElement("option"))
- .attr("value", doc._id + "/" + name).text(name)
+ .attr("value", encodeURIComponent(doc._id) + "/_view/" +
+ encodeURIComponent(name)).text(name)
.appendTo(optGroup);
- if (doc._id + "/" + name == viewName) {
+ if (doc._id + "/_view/" + name == viewName) {
option[0].selected = true;
}
}
@@ -283,7 +284,7 @@
if (!page.storedViewCode) {
var viewNameParts = viewName.split("/");
var designDocId = viewNameParts[1];
- var localViewName = viewNameParts[2];
+ var localViewName = viewNameParts[3];
db.openDoc(["_design", designDocId].join("/"), {
error: function(status, error, reason) {
if (status == 404) {
@@ -332,7 +333,7 @@
if (viewName && /^_design/.test(viewName)) {
var viewNameParts = viewName.split("/");
var designDocId = viewNameParts[1];
- var localViewName = viewNameParts[2];
+ var localViewName = viewNameParts[3];
} else {
var designDocId = "", localViewName = "";
}
@@ -407,7 +408,7 @@
page.isDirty = false;
location.href = "database.html?" + encodeURIComponent(dbName) +
"/" + encodeDocId(doc._id) +
- "/" + encodeURIComponent(data.name);
+ "/_view/" + encodeURIComponent(data.name);
}
});
}
@@ -428,7 +429,7 @@
this.saveViewChanges = function() {
var viewNameParts = viewName.split("/");
var designDocId = viewNameParts[1];
- var localViewName = viewNameParts[2];
+ var localViewName = viewNameParts[3];
db.openDoc(["_design", designDocId].join("/"), {
success: function(doc) {
var numViews = 0;
@@ -635,7 +636,8 @@
if (page.isDirty) {
db.query(currentMapCode, currentReduceCode, page.viewLanguage, options);
} else {
- db.view(viewName.substr(8), options);
+ var viewParts = viewName.split('/');
+ db.view(viewParts[1] + "/" + viewParts[3], options);
}
}
}