summaryrefslogtreecommitdiff
path: root/share/www/script/futon.browse.js
diff options
context:
space:
mode:
authorChristopher Lenz <cmlenz@apache.org>2009-12-11 18:58:12 +0000
committerChristopher Lenz <cmlenz@apache.org>2009-12-11 18:58:12 +0000
commitf6447a3f18a3a1ee51cd488af7e65b51f10c0131 (patch)
treeccfed74c72275196b4cc32745e24fe3b4bd0230a /share/www/script/futon.browse.js
parent908f1a6068f6a055b15790289643d0e0a53f53a2 (diff)
Futon: Improve storage of session state by storing short-term settings in the window.name.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@889766 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www/script/futon.browse.js')
-rw-r--r--share/www/script/futon.browse.js39
1 files changed, 26 insertions, 13 deletions
diff --git a/share/www/script/futon.browse.js b/share/www/script/futon.browse.js
index 76084d64..37f4ef08 100644
--- a/share/www/script/futon.browse.js
+++ b/share/www/script/futon.browse.js
@@ -18,6 +18,8 @@
CouchIndexPage: function() {
page = this;
+ $.futon.storage.declare("per_page", {defaultValue: 10});
+
this.addDatabase = function() {
$.showDialog("dialog/_create_database.html", {
submit: function(data, callback) {
@@ -95,11 +97,22 @@
CouchDatabasePage: function() {
var urlParts = location.search.substr(1).split("/");
var dbName = decodeURIComponent(urlParts.shift());
+
+ $.futon.storage.declareWithPrefix(dbName + ".", {
+ desc: {},
+ language: {defaultValue: "javascript"},
+ map_fun: {},
+ reduce_fun: {},
+ reduce: {},
+ per_page: {defaultValue: 10},
+ view: {defaultValue: ""}
+ });
+
var viewName = (urlParts.length > 0) ? urlParts.join("/") : null;
if (viewName) {
- $.cookies.set(dbName + ".view", viewName);
+ $.futon.storage.set("view", viewName);
} else {
- viewName = $.cookies.get(dbName + ".view", "");
+ viewName = $.futon.storage.get("view");
if (viewName) {
this.redirecting = true;
location.href = "database.html?" + encodeURIComponent(dbName) +
@@ -204,10 +217,10 @@
});
$("#grouptruenotice").show();
} else if (viewName == "_temp_view") {
- page.viewLanguage = $.cookies.get(db.name + ".language", page.viewLanguage);
+ page.viewLanguage = $.futon.storage.get("language");
page.updateViewEditor(
- $.cookies.get(db.name + ".map", templates[page.viewLanguage]),
- $.cookies.get(db.name + ".reduce", "")
+ $.futon.storage.get("map", templates[page.viewLanguage]),
+ $.futon.storage.get("reduce")
);
$("#grouptruenotice").show();
} else {
@@ -312,13 +325,13 @@
db.openDoc("_design/" + designDocId, {
error: function(status, error, reason) {
if (status == 404) {
- $.cookies.remove(dbName + ".view");
+ $.futon.storage.del("view");
location.href = "database.html?" + encodeURIComponent(db.name);
}
},
success: function(resp) {
if(!resp.views || !resp.views[localViewName]) {
- $.cookies.remove(dbName + ".view");
+ $.futon.storage.del("view");
location.href = "database.html?" + encodeURIComponent(db.name);
}
var viewCode = resp.views[localViewName];
@@ -512,10 +525,10 @@
if ($("#documents thead th.key").is(".desc")) {
if (typeof options.descending == 'undefined') options.descending = true;
var descend = true;
- $.cookies.set(dbName + ".desc", "1");
+ $.futon.storage.set("desc", "1");
} else {
var descend = false;
- $.cookies.remove(dbName + ".desc");
+ $.futon.storage.del("desc");
}
$("#paging a").unbind();
$("#documents").find("tbody.content").empty().end().show();
@@ -641,19 +654,19 @@
if (viewName == "_temp_view") {
$("#viewcode").show().removeClass("collapsed");
var mapFun = $("#viewcode_map").val();
- $.cookies.set(db.name + ".map", mapFun);
+ $.futon.storage.set("map_fun", mapFun);
var reduceFun = $.trim($("#viewcode_reduce").val()) || null;
if (reduceFun) {
- $.cookies.set(db.name + ".reduce", reduceFun);
+ $.futon.storage.set("reduce_fun", reduceFun);
if ($("#reduce :checked").length) {
options.group = true;
} else {
options.reduce = false;
}
} else {
- $.cookies.remove(db.name + ".reduce");
+ $.futon.storage.del("reduce");
}
- $.cookies.set(db.name + ".language", page.viewLanguage);
+ $.futon.storage.set("language", page.viewLanguage);
db.query(mapFun, reduceFun, page.viewLanguage, options);
} else if (viewName == "_design_docs") {
options.startkey = options.descending ? "_design0" : "_design";