From fc27e23f3cc57159b1ee91747591cb0496385489 Mon Sep 17 00:00:00 2001 From: Christopher Lenz Date: Fri, 11 Dec 2009 20:17:40 +0000 Subject: Futon: Allow control over the group and group_level options on reduce views. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@889795 13f79535-47bb-0310-9956-ffa450edef68 --- share/www/script/futon.browse.js | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'share/www/script/futon.browse.js') diff --git a/share/www/script/futon.browse.js b/share/www/script/futon.browse.js index 37f4ef08..9faf7669 100644 --- a/share/www/script/futon.browse.js +++ b/share/www/script/futon.browse.js @@ -104,6 +104,7 @@ map_fun: {}, reduce_fun: {}, reduce: {}, + group_level: {defaultValue: 100}, per_page: {defaultValue: 10}, view: {defaultValue: ""} }); @@ -192,14 +193,19 @@ clearTimeout(dirtyTimeout); dirtyTimeout = setTimeout(function() { var buttons = $("#viewcode button.save, #viewcode button.revert"); - page.isDirty = ($("#viewcode_map").val() != page.storedViewCode.map) - || ($("#viewcode_reduce").val() != (page.storedViewCode.reduce || "")) + var viewCode = { + map: $("#viewcode_map").val(), + reduce: $("#viewcode_reduce").val() + }; + page.isDirty = (viewCode.map != page.storedViewCode.map) + || (viewCode.reduce != (page.storedViewCode.reduce || "")) || page.viewLanguage != page.storedViewLanguage; if (page.isDirty) { buttons.removeAttr("disabled"); } else { buttons.attr("disabled", "disabled"); } + $("#reduce, #grouplevel").toggle(!!viewCode.reduce); }, 100); } $("#viewcode textarea").enableTabInsertion() @@ -215,16 +221,14 @@ $("#language").change(updateDirtyState); page.updateDocumentListing(); }); - $("#grouptruenotice").show(); } else if (viewName == "_temp_view") { page.viewLanguage = $.futon.storage.get("language"); page.updateViewEditor( $.futon.storage.get("map", templates[page.viewLanguage]), $.futon.storage.get("reduce") ); - $("#grouptruenotice").show(); } else { - $("#reduce").hide(); + $("#grouplevel, #reduce").hide(); page.updateDocumentListing(); } page.populateLanguagesMenu(); @@ -363,7 +367,7 @@ mapFun.split("\n").length, reduceFun.split("\n").length ); - $("#reduce").toggle(!!reduceFun); + $("#reduce, #grouplevel").toggle(!!reduceFun); $("#viewcode textarea").attr("rows", Math.min(15, Math.max(3, lines))); } @@ -532,7 +536,7 @@ } $("#paging a").unbind(); $("#documents").find("tbody.content").empty().end().show(); - this.updateDesignDocLink(); + page.updateDesignDocLink(); options.success = function(resp) { if (resp.offset === undefined) { @@ -659,7 +663,11 @@ if (reduceFun) { $.futon.storage.set("reduce_fun", reduceFun); if ($("#reduce :checked").length) { - options.group = true; + var level = parseInt($("#grouplevel select").val(), 10); + options.group = level > 0; + if (options.group && level < 100) { + options.group_level = level; + } } else { options.reduce = false; } @@ -679,7 +687,11 @@ var currentReduceCode = $.trim($("#viewcode_reduce").val()) || null; if (currentReduceCode) { if ($("#reduce :checked").length) { - options.group = true; + var level = parseInt($("#grouplevel select").val(), 10); + options.group = level > 0; + if (options.group && level < 100) { + options.group_level = level; + } } else { options.reduce = false; } -- cgit v1.2.3