# HG changeset patch # User Atul Varma # Date 1233533058 28800 # Node ID ec3ec75a8d167456c8f367dfc1dc11ca819aab15 # Parent 20ed90d10deea43c0b7523ed5018ca674e4d431c The user can now 'zoom out' while editing by shift-clicking the edit field. diff -r 20ed90d10dee -r ec3ec75a8d16 wiki.js --- a/wiki.js Sun Feb 01 15:26:55 2009 -0800 +++ b/wiki.js Sun Feb 01 16:04:18 2009 -0800 @@ -8,25 +8,44 @@ aEvt.preventDefault(); - App.enterEditMode(this); + App.enterEditMode([this], 1); }; -App.enterEditMode = function enterEditMode(part) { - var editablePart = $('').get(0); - $(editablePart).attr("value", $(".creole-markup", part).text()); +App.enterEditMode = function enterEditMode(parts, level) { + var partsMarkup = []; + $(".creole-markup", parts).each( + function(i) { partsMarkup.push($(this).text()); } + ); + + var editablePart = $(''); + $(editablePart).attr("value", partsMarkup.join("\n\n")); function setScrollHeight() { $(this).height(this.scrollHeight); } - $(editablePart).blur( - function() { + function exitEditMode() { var markup = $(this).attr("value"); $(this).replaceWith(App.createParts(markup)); - }); + } + + function editSiblings(aEvt) { + if (!aEvt.shiftKey || level == 0) + return; + + aEvt.preventDefault(); + var allSiblings = this.parentNode.childNodes; + exitEditMode.apply(this); + + App.enterEditMode(allSiblings, level-1); + } + + $(editablePart).blur(exitEditMode); + $(editablePart).mousedown(editSiblings); $(editablePart).keyup(setScrollHeight); - $(part).replaceWith(editablePart); + $(parts).filter(":not(:first)").remove(); + $(parts).replaceWith(editablePart); setScrollHeight.apply(editablePart); $(editablePart).focus();