From f6ece2d63e5fb4cdce89c57b19d347565a88459d Mon Sep 17 00:00:00 2001
From: Ruben Vereecken <rubenvereecken@gmail.com>
Date: Mon, 10 Mar 2014 12:16:08 +0100
Subject: [PATCH 1/3] Created a modal version of Version History

---
 app/templates/editor/level/edit.jade        |  4 ++-
 app/templates/editor/level/versions.jade    | 15 ++++++++++
 app/templates/kinds/versions.jade           | 33 ++++++++++++---------
 app/views/editor/level/edit.coffee          |  7 +++++
 app/views/editor/level/versions_view.coffee |  9 ++++++
 5 files changed, 53 insertions(+), 15 deletions(-)
 create mode 100644 app/templates/editor/level/versions.jade
 create mode 100644 app/views/editor/level/versions_view.coffee

diff --git a/app/templates/editor/level/edit.jade b/app/templates/editor/level/edit.jade
index 7d2c7ac66..ef788fe3e 100644
--- a/app/templates/editor/level/edit.jade
+++ b/app/templates/editor/level/edit.jade
@@ -38,9 +38,11 @@ block outer_content
 
             li.dropdown
               a.dropdown-toggle(href='#', data-toggle='dropdown')
-                | Help
+                | More
                 b.caret
               ul.dropdown-menu
+                li#version-history-button
+                  a(href='#') Version History
                 li
                   a(href='https://github.com/codecombat/codecombat/wiki/Artisan-Home') Wiki
                 li
diff --git a/app/templates/editor/level/versions.jade b/app/templates/editor/level/versions.jade
new file mode 100644
index 000000000..652a6b7c5
--- /dev/null
+++ b/app/templates/editor/level/versions.jade
@@ -0,0 +1,15 @@
+extends /templates/modal/modal_base
+include /templates/kinds/versions
+
+prepend modal-header
+  - var closeButton = true
+
+block modal-header-content
+  h3 Version History
+
+block modal-body-content
+  if dataList
+    +version-history-body()
+
+block modal-footer-content
+  button.close.btn(data-dismiss="modal", data-i18n="common.cancel") Cancel
\ No newline at end of file
diff --git a/app/templates/kinds/versions.jade b/app/templates/kinds/versions.jade
index 274e91513..a7db6039f 100755
--- a/app/templates/kinds/versions.jade
+++ b/app/templates/kinds/versions.jade
@@ -1,19 +1,24 @@
 extends /templates/base
 
+mixin version-history-title()
+  h3(data-i18n="general.version_history_for") Version History for: #{dataList[0]}
+
+mixin version-history-body()
+  table.table
+    tr
+      th(data-i18n="general.name") Name
+      th(data-i18n="general.version") Version
+      th(data-i18n="general.commit_msg") Commit Message
+    for data in dataList
+      tr
+        td
+          a(href="/editor/#{page}/#{data.slug || data._id}")
+            | #{data.name}
+        td #{data.version.major}.#{data.version.minor}
+        td #{data.commitMessage}
+
 block content
   if dataList
-    h3(data-i18n="general.version_history_for") Version History for: "#{dataList[0].name}"
+    +version-history-title()
   
-    table.table
-      tr
-        th(data-i18n="general.name") Name
-        th(data-i18n="general.version") Version
-        th(data-i18n="general.commit_msg") Commit Message
-    
-      for data in dataList
-        tr
-          td
-            a(href="/editor/#{page}/#{data.slug || data._id}")
-              | #{data.name}
-          td #{data.version.major}.#{data.version.minor}
-          td #{data.commitMessage}
+    +version-history-body()
\ No newline at end of file
diff --git a/app/views/editor/level/edit.coffee b/app/views/editor/level/edit.coffee
index 962db3fac..4f1ceee85 100644
--- a/app/views/editor/level/edit.coffee
+++ b/app/views/editor/level/edit.coffee
@@ -12,6 +12,7 @@ ComponentsTabView = require './components_tab_view'
 SystemsTabView = require './systems_tab_view'
 LevelSaveView = require './save_view'
 LevelForkView = require './fork_view'
+VersionHistoryView = require './versions_view'
 
 module.exports = class EditorLevelView extends View
   id: "editor-level-view"
@@ -23,6 +24,7 @@ module.exports = class EditorLevelView extends View
     'click #play-button': 'onPlayLevel'
     'click #commit-level-start-button': 'startCommittingLevel'
     'click #fork-level-start-button': 'startForkingLevel'
+    'click #version-history-button': 'showVersionHistory'
 
   constructor: (options, @levelID) ->
     super options
@@ -102,3 +104,8 @@ module.exports = class EditorLevelView extends View
     levelForkView = new LevelForkView level: @level
     @openModalView levelForkView
     Backbone.Mediator.publish 'level:view-switched', e
+
+  showVersionHistory: (e) ->
+    versionHistoryView = new VersionHistoryView level:@level, @levelID
+    @openModalView versionHistoryView
+    Backbone.Mediator.publish 'level:view-switched', e
\ No newline at end of file
diff --git a/app/views/editor/level/versions_view.coffee b/app/views/editor/level/versions_view.coffee
new file mode 100644
index 000000000..4fb2b3690
--- /dev/null
+++ b/app/views/editor/level/versions_view.coffee
@@ -0,0 +1,9 @@
+SuperVersionsView = require './versions'
+template = require 'templates/editor/level/versions'
+
+module.exports = class ModalVersionsView extends SuperVersionsView
+  id: 'version-history-modal'
+  template: template
+
+  constructor: (options, @ID) ->
+    super options, ID
\ No newline at end of file

From 06ae06fa340078fa249047e7384447726b391b1c Mon Sep 17 00:00:00 2001
From: Ruben Vereecken <rubenvereecken@gmail.com>
Date: Mon, 10 Mar 2014 19:08:53 +0100
Subject: [PATCH 2/3] Used mix-ins to combine Modal and VersionView

---
 app/templates/editor/level/versions.jade    |  6 +----
 app/views/editor/level/versions_view.coffee | 27 ++++++++++++++++++---
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/app/templates/editor/level/versions.jade b/app/templates/editor/level/versions.jade
index 652a6b7c5..87748e109 100644
--- a/app/templates/editor/level/versions.jade
+++ b/app/templates/editor/level/versions.jade
@@ -1,9 +1,6 @@
 extends /templates/modal/modal_base
 include /templates/kinds/versions
 
-prepend modal-header
-  - var closeButton = true
-
 block modal-header-content
   h3 Version History
 
@@ -11,5 +8,4 @@ block modal-body-content
   if dataList
     +version-history-body()
 
-block modal-footer-content
-  button.close.btn(data-dismiss="modal", data-i18n="common.cancel") Cancel
\ No newline at end of file
+block modal-footer-content
\ No newline at end of file
diff --git a/app/views/editor/level/versions_view.coffee b/app/views/editor/level/versions_view.coffee
index 4fb2b3690..39af46ae4 100644
--- a/app/views/editor/level/versions_view.coffee
+++ b/app/views/editor/level/versions_view.coffee
@@ -1,9 +1,30 @@
-SuperVersionsView = require './versions'
+VersionsView = require 'views/kinds/VersionsView'
+ModalView = require 'views/kinds/ModalView'
 template = require 'templates/editor/level/versions'
 
-module.exports = class ModalVersionsView extends SuperVersionsView
+module.exports = class ModalVersionsView extends VersionsView
   id: 'version-history-modal'
+  url: "/db/level/"
+  page: "level"
   template: template
 
+  className: "modal fade"
+  closeButton: true
+  closesOnClickOutside: true
+  modalWidthPercent: null
+
+  shortcuts:
+    'esc': 'hide'
+
   constructor: (options, @ID) ->
-    super options, ID
\ No newline at end of file
+    super options, ID, require 'models/Level'
+    _.extend @, ModalView
+    ModalView.prototype.constructor options
+
+  getRenderData: (context={}) ->
+    context = super(context)
+    context.closeButton = true
+    context
+
+  hide: ->
+    @$el.removeClass('fade').modal "hide"
\ No newline at end of file

From 29901787f73a01e4cc64a1a6fa7d43e89d839d05 Mon Sep 17 00:00:00 2001
From: Ruben Vereecken <rubenvereecken@gmail.com>
Date: Mon, 10 Mar 2014 19:11:37 +0100
Subject: [PATCH 3/3] Added i18n for Version History

---
 app/locale/en.coffee                     | 1 +
 app/locale/nl.coffee                     | 1 +
 app/templates/editor/level/versions.jade | 2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/app/locale/en.coffee b/app/locale/en.coffee
index 2afc376cd..c4dd578e4 100644
--- a/app/locale/en.coffee
+++ b/app/locale/en.coffee
@@ -264,6 +264,7 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
     body: "Body"
     version: "Version"
     commit_msg: "Commit Message"
+    version_history: "Version History"
     version_history_for: "Version History for: "
     results: "Results"
     description: "Description"
diff --git a/app/locale/nl.coffee b/app/locale/nl.coffee
index 929741d23..831161810 100644
--- a/app/locale/nl.coffee
+++ b/app/locale/nl.coffee
@@ -264,6 +264,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     body: "Inhoud"
     version: "Versie"
     commit_msg: "Commit Bericht"
+    version_history: "Versie geschiedenis"
     version_history_for: "Versie geschiedenis voor: "
     results: "Resultaten"
     description: "Beschrijving"
diff --git a/app/templates/editor/level/versions.jade b/app/templates/editor/level/versions.jade
index 87748e109..b40c7b6f0 100644
--- a/app/templates/editor/level/versions.jade
+++ b/app/templates/editor/level/versions.jade
@@ -2,7 +2,7 @@ extends /templates/modal/modal_base
 include /templates/kinds/versions
 
 block modal-header-content
-  h3 Version History
+  h3(data-i18n="general.version_history") Version History
 
 block modal-body-content
   if dataList