Mercurial > wiki
changeset 10:ec3ec75a8d16
The user can now 'zoom out' while editing by shift-clicking the edit field.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Sun, 01 Feb 2009 16:04:18 -0800 |
parents | 20ed90d10dee |
children | 98a77c9b13ea |
files | wiki.js |
diffstat | 1 files changed, 27 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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 = $('<textarea class="wiki-edit"></textarea>').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 = $('<textarea class="wiki-edit"></textarea>'); + $(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();