diff options
author | Christopher Lenz <cmlenz@apache.org> | 2009-01-09 18:20:37 +0000 |
---|---|---|
committer | Christopher Lenz <cmlenz@apache.org> | 2009-01-09 18:20:37 +0000 |
commit | e19b5124101f2ff5aa755df99b0fcbd0923aa01f (patch) | |
tree | f94bbddb7bdd113b5ee8e2fd00e53375b313daa7 /share/www/script/browse.js | |
parent | 3e0e530cae34bd8d5c9bb45a78923a9bfbc256ca (diff) |
Refactoring in Futon to clean up interactions between specific pages and the navigation. Also, switched some graphics over to PNGs with alpha-transparency (screw you IE6), and added a button for removing databases from the recent databases list.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@733104 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www/script/browse.js')
-rw-r--r-- | share/www/script/browse.js | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/share/www/script/browse.js b/share/www/script/browse.js index 66acd679..f6aad59f 100644 --- a/share/www/script/browse.js +++ b/share/www/script/browse.js @@ -107,7 +107,10 @@ function CouchDatabasePage() { viewName = decodeURIComponent(viewName); $.cookies.set(dbName + ".view", viewName); } else { - viewName = $.cookies.get(dbName + ".view") || ""; + viewName = $.cookies.get(dbName + ".view", ""); + if (viewName) { + location.href = "database.html?" + dbName + "/" + viewName; + } } var db = $.couch.db(dbName); @@ -157,15 +160,7 @@ function CouchDatabasePage() { $("#dbs li").filter(function(index) { return $("a", this).text() == dbName; }).remove(); - - // remove database from recent databases list - var recentDbs = $.cookies.get("recent", "").split(","); - var recentIdx = $.inArray(db.name, recentDbs) - if (recentIdx >= 0) { - recentDbs.splice(recentIdx, 1); - $.cookies.set("recent", recentDbs.join(",")); - updateRecentDatabasesList(); - } + $.futon.navigation.removeDatabase(dbName); } } }); @@ -200,6 +195,11 @@ function CouchDatabasePage() { .bind("textInput", updateDirtyState); } }); + } else if (viewName == "_slow_view") { + page.updateViewEditor( + $.cookies.get(db.name + ".map"), + $.cookies.get(db.name + ".reduce", "") + ); } } @@ -252,11 +252,7 @@ function CouchDatabasePage() { }, success: function(resp) { var viewCode = resp.views[localViewName]; - $("#viewcode_map").val(viewCode.map); - $("#viewcode_reduce").val(viewCode.reduce || ""); - var lines = Math.max(viewCode.map.split("\n").length, - (viewCode.reduce ? viewCode.reduce.split("\n").length : 1)); - $("#viewcode textarea").attr("rows", Math.min(15, Math.max(3, lines))); + page.updateViewEditor(viewCode.map, viewCode.reduce || ""); $("#viewcode button.revert, #viewcode button.save").attr("disabled", "disabled"); page.storedViewCode = viewCode; if (callback) callback(); @@ -271,13 +267,24 @@ function CouchDatabasePage() { } } + this.updateViewEditor = function(mapFun, reduceFun) { + if (!mapFun) return; + $("#viewcode_map").val(mapFun); + $("#viewcode_reduce").val(reduceFun); + var lines = Math.max( + mapFun.split("\n").length, + reduceFun.split("\n").length + ); + $("#viewcode textarea").attr("rows", Math.min(15, Math.max(3, lines))); + } + this.saveViewAs = function() { if (viewName && /^_design/.test(viewName)) { var viewNameParts = viewName.split("/"); var designDocId = viewNameParts[1]; var localViewName = viewNameParts[2]; } else { - var designDocId = "", localViewName = "" + var designDocId = "", localViewName = ""; } $.showDialog("dialog/_save_view_as.html", { load: function(elem) { @@ -496,7 +503,7 @@ function CouchDatabasePage() { $(document.body).removeClass("loading"); } - if (!viewName) { + if (!viewName || viewName == "_all_docs") { $("#switch select")[0].selectedIndex = 0; db.allDocs(options); } else { |