From 8429cfe1fb971442e9687e006cadbe1526a8d409 Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Wed, 11 Mar 2015 17:55:56 -0400
Subject: [PATCH] don't init a bunch of exporters

---
 js/cam/Assembler.js      | 21 ++++++++++++++++++---
 js/menus/SendMenuView.js | 11 ++++++++++-
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/js/cam/Assembler.js b/js/cam/Assembler.js
index 7c3e7ffe..cac5ebe1 100644
--- a/js/cam/Assembler.js
+++ b/js/cam/Assembler.js
@@ -29,10 +29,25 @@ Assembler = Backbone.Model.extend({
         this.set("editsMadeToProgram", true);
     },
 
+    _getExporter: function(){
+        var currentExporter = this.get("exporter");
+        if (this.get("camProcess") == "shopbot") {
+            if (currentExporter && currentExporter.constructor == ShopbotExporter){
+                return currentExporter;
+            } else {
+                return new ShopbotExporter();
+            }
+        } else if (this.get("camProcess") == "gcode") {
+            if (currentExporter && currentExporter.constructor == GCodeExporter){
+                return currentExporter;
+            } else {
+                return new GCodeExporter();
+            }
+        }
+    },
+
     postProcess: function(){
-        var exporter;
-        if (this.get("camProcess") == "shopbot") exporter = new ShopbotExporter();
-        else if (this.get("camProcess") == "gcode") exporter = new GCodeExporter();
+        var exporter = this._getExporter();
         if (exporter) {
             var data = "";
             data += exporter.makeHeader();
diff --git a/js/menus/SendMenuView.js b/js/menus/SendMenuView.js
index 15fe7383..765e48ef 100644
--- a/js/menus/SendMenuView.js
+++ b/js/menus/SendMenuView.js
@@ -7,11 +7,14 @@ SendMenuView = Backbone.View.extend({
     el: "#menuContent",
 
     events: {
-        "click #saveSendMenu":                                       "_save"
+        "click #saveSendMenu":                                       "_save",
+        "click #overrideEdits":                                      "_postProcess"
     },
 
     initialize: function(){
 
+        //bind events
+        this.listenTo(dmaGlobals.assembler, "change", this.render);
 
         _.bindAll(this, "render");
     },
@@ -21,6 +24,11 @@ SendMenuView = Backbone.View.extend({
         dmaGlobals.assembler.save();
     },
 
+    _postProcess: function(e){
+        e.preventDefault();
+        dmaGlobals.assembler.postProcess();
+    },
+
     render: function(){
         if (this.model.get("currentTab") != "send") return;
         if (dmaGlobals.assembler.get("needsPostProcessing")) dmaGlobals.assembler.postProcess();
@@ -30,6 +38,7 @@ SendMenuView = Backbone.View.extend({
     template: _.template('\
         <a href="#" id="saveSendMenu" class=" btn btn-block btn-lg btn-default">Save</a><br/>\
         <textarea id="gcodeEditor"><%= dataOut %></textarea>\
+        <a href="#" id="overrideEdits" class=" btn btn-block btn-lg btn-default">Undo Changes</a><br/>\
         ')
 
 });
\ No newline at end of file
-- 
GitLab