From df706da7e0d85a0fb59da7d07e4fd2ec113130c7 Mon Sep 17 00:00:00 2001 From: James Allen Date: Thu, 13 Mar 2014 14:32:30 +0000 Subject: [PATCH] Add history entry into context menu for docs --- .../public/coffee/file-tree/EntityView.coffee | 2 ++ .../coffee/track-changes/DiffView.coffee | 9 +++-- .../track-changes/TrackChangesManager.coffee | 36 +++++++++++++++---- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/services/web/public/coffee/file-tree/EntityView.coffee b/services/web/public/coffee/file-tree/EntityView.coffee index eab47883bb..84bf1cf023 100644 --- a/services/web/public/coffee/file-tree/EntityView.coffee +++ b/services/web/public/coffee/file-tree/EntityView.coffee @@ -100,6 +100,8 @@ define [ showContextMenu: (position) -> entries = @getContextMenuEntries() + @manager.trigger "contextmenu:beforeshow", @model, entries + @contextMenu = new ContextMenu(position, entries) @contextMenu.on "destroy", () => delete @contextMenu diff --git a/services/web/public/coffee/track-changes/DiffView.coffee b/services/web/public/coffee/track-changes/DiffView.coffee index 396de3de67..73006e2f3d 100644 --- a/services/web/public/coffee/track-changes/DiffView.coffee +++ b/services/web/public/coffee/track-changes/DiffView.coffee @@ -23,11 +23,14 @@ define [ @insertNameTag() return @ + destroy: () -> + @$editor?.remove() + createAceEditor: () -> @$el.empty() - $editor = $("
") - @$el.append($editor) - @aceEditor = Ace.edit($editor[0]) + @$editor = $("
") + @$el.append(@$editor) + @aceEditor = Ace.edit(@$editor[0]) @aceEditor.setTheme("ace/theme/#{window.userSettings.theme}") @aceEditor.setReadOnly true @aceEditor.setShowPrintMargin(false) diff --git a/services/web/public/coffee/track-changes/TrackChangesManager.coffee b/services/web/public/coffee/track-changes/TrackChangesManager.coffee index 62a7aaf524..4e35ebe45f 100644 --- a/services/web/public/coffee/track-changes/TrackChangesManager.coffee +++ b/services/web/public/coffee/track-changes/TrackChangesManager.coffee @@ -4,26 +4,38 @@ define [ "track-changes/ChangeListView" "track-changes/DiffView" "utils/Modal" + "models/Doc" "moment" -], (ChangeList, Diff, ChangeListView, DiffView, Modal, moment) -> +], (ChangeList, Diff, ChangeListView, DiffView, Modal, Doc, moment) -> class TrackChangesManager template: $("#trackChangesPanelTemplate").html() constructor: (@ide) -> + @project_id = window.userSettings.project_id @$el = $(@template) $("#editorWrapper").append(@$el) - @hide() + @hideEl() @ide.editor.on "change:doc", () => - @hide() + @hideEl() @$el.find(".track-changes-close").on "click", (e) => e.preventDefault @hide() - show: () -> - @project_id = window.userSettings.project_id - @doc_id = @ide.editor.current_doc_id + @ide.fileTreeManager.on "contextmenu:beforeshow", (entity, entries) => + if entity instanceof Doc + entries.push { + divider: true + }, { + text: "History" + onClick: () => + @show(entity.id) + } + + show: (@doc_id) -> + @ide.fileTreeManager.selectEntity(@doc_id) + @changes = new ChangeList([], doc_id: @doc_id, project_id: @project_id) @changeListView = new ChangeListView( @@ -40,8 +52,15 @@ define [ @changeListView.on "restore", (change) => @restore(change) + if @diffView? + @diffView.destroy() + @showEl() + hide: () -> + @hideEl() + @ide.fileTreeManager.openDoc(@doc_id) + autoSelectDiff: () -> if @changes.models.length == 0 return @@ -69,6 +88,9 @@ define [ from: fromModel.get("fromVersion") to: toModel.get("toVersion") }) + + if @diffView? + @diffView.destroy() @diffView = new DiffView( model: @diff el: @$el.find(".track-changes-diff") @@ -79,7 +101,7 @@ define [ @ide.editor.hide() @$el.show() - hide: () -> + hideEl: () -> @ide.editor.show() @$el.hide()