Mercurial > wiki
diff static-files/wiki.js @ 27:a42400d52a1e
Changed recent changes heading to two separate 'unpublished changes' and 'published changes' sections.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Thu, 12 Feb 2009 23:00:03 -0800 |
parents | 0aecc756ea18 |
children |
line wrap: on
line diff
--- a/static-files/wiki.js Thu Feb 12 22:23:10 2009 -0800 +++ b/static-files/wiki.js Thu Feb 12 23:00:03 2009 -0800 @@ -38,7 +38,7 @@ PART_SEPARATOR: "\n\n", creole: null, editingElement: null, - latestRemoteChangeset: null, + latestPublishedChangeset: null, localChanges: [], eventHandlers: {} }; @@ -61,11 +61,18 @@ return partsMarkup.join(App.PART_SEPARATOR); }; -App.saveChanges = function saveChanges(isUserChange) { +App.saveChanges = function saveChanges(options) { + var isUserChange = options.isUserChange; + var date = options.date ? new Date(options.date) : new Date(); + var container; + if (isUserChange) + container = $('#unpublished-changes'); + else + container = $('#published-changes'); + var markup = App.getMarkup($(window.document)); - var changeset = {date: new Date(), - content: markup, - parentRemoteChangeset: App.latestRemoteChangeset}; + var changeset = {date: date, + content: markup}; App.localChanges.push(changeset); var changesetElem = $('<div class="changeset selected"></div>'); function setText() { @@ -78,7 +85,7 @@ aEvt.preventDefault(); if (aEvt.shiftKey) { - $('#recent-changes').find('.changeset').removeClass('diffed'); + $(window.document).find('.changeset').removeClass('diffed'); var newerVersion = App.getMarkup($("#content")); var diff = $('<div class="diff"></div>'); var markupDiv = $('<div class="creole-markup"></div>'); @@ -89,20 +96,19 @@ $("#content").append(markupDiv); $(this).addClass('diffed'); } else { - $('#recent-changes').find('.changeset').removeClass('selected'); - $('#recent-changes').find('.changeset').removeClass('diffed'); + $(window.document).find('.changeset').removeClass('selected') + .removeClass('diffed'); $(this).addClass('selected'); $("#content").empty(); $("#content").append(App.createParts(changeset.content)); } } ); - $('#recent-changes').find('.changeset').removeClass('selected'); - $('#recent-changes').find('.changeset').removeClass('diffed'); - $('#recent-changes').find('h1').after(changesetElem); + $(window.document).find('.changeset').removeClass('selected') + .removeClass('diffed'); + container.find('h1').after(changesetElem); if (isUserChange) { - $('#recent-changes').fadeIn(); - var maybeNewChangeset = App.latestRemoteChangeset + 1; + var maybeNewChangeset = App.latestPublishedChangeset + 1; var jsonData = JSON.stringify({date: changeset.date.toString(), content: changeset.content}); jQuery.ajax({url: '/' + maybeNewChangeset, @@ -112,7 +118,8 @@ // weird things can happen here, e.g. if the user // makes another edit while the XHR is being // processed. - App.latestRemoteChangeset = maybeNewChangeset; + App.latestPublishedChangeset = maybeNewChangeset; + $('#published-changes').find('h1').after(changesetElem); }, error: function(xhr, textStatus, errorThrown) { // TODO: Do something here. @@ -142,7 +149,7 @@ var markup = $(this).attr("value"); $(this).replaceWith(App.createParts(markup)); if (markup != originalMarkup) { - App.saveChanges(true); + App.saveChanges({isUserChange: true}); } } @@ -214,13 +221,14 @@ }); function onStatus(status) { - App.latestRemoteChangeset = status.max_changeset; + App.latestPublishedChangeset = status.max_changeset; jQuery.get("/" + status.max_changeset, {}, function(obj) { var text = obj.content; $("#content").append(App.createParts(text)); - App.saveChanges(false); + App.saveChanges({isUserChange: false, + date: obj.date}); }, "json"); }