From d0135e5b935a46cdabc4640679eddf1fd0fb82f5 Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Sat, 7 Mar 2015 12:33:24 -0500
Subject: [PATCH] save as hotkey

---
 js/menus/Navbar.js    | 16 +++++++++++++++-
 js/models/AppState.js |  9 ++++++++-
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/js/menus/Navbar.js b/js/menus/Navbar.js
index 203c1be5..3831f826 100644
--- a/js/menus/Navbar.js
+++ b/js/menus/Navbar.js
@@ -15,8 +15,11 @@ NavBar = Backbone.View.extend({
         "click .menuHoverControls":                     "_setNavSelection",
         "click #saveJSON":                              "_save",
         "click #saveAsJSON":                            "_saveAs",
+        "shown.bs.modal #saveAsModel":                  "_showSaveAsModal",
+        "hide.bs.modal #saveAsModel":                   "_hideSaveAsModal",
+        "change #saveAsModel":                          "_saveAs",
         "click #importJSON":                            "_importJSON",
-        "change #jsonInput":                            "_selectJSONFiles",
+        "change #jsonInput":                            "_selectJSONFiles"
     },
 
     initialize: function(){
@@ -100,6 +103,17 @@ NavBar = Backbone.View.extend({
         e.preventDefault();
         var fileName = $("#saveAsFileName").val();
         dmaGlobals.lattice.saveAsJSON(fileName);
+        $('#saveAsModel').modal('hide');
+    },
+
+    _showSaveAsModal: function(){
+        var input = $("#saveAsFileName");
+        input.focus();
+        input.select();
+    },
+
+    _hideSaveAsModal: function(){
+        $("#saveAsFileName").blur();
     },
 
     _uiStuff: function(){
diff --git a/js/models/AppState.js b/js/models/AppState.js
index 60b3f1bd..5fcfdb65 100644
--- a/js/models/AppState.js
+++ b/js/models/AppState.js
@@ -101,6 +101,8 @@ AppState = Backbone.Model.extend({
 
     _handleKeyStroke: function(e){//receives keyup and keydown
 
+        if ($("input").is(':focus')) return;//we are typing in an input
+
         var state = e.data.state;
         var currentTab = this.get("currentTab");
 
@@ -111,6 +113,7 @@ AppState = Backbone.Model.extend({
             this.downKeys[e.keyCode] = true;
         } else this.downKeys[e.keyCode] = false;
 
+//        console.log(e);
 //        console.log(e.keyCode);
         switch(e.keyCode){
             case 16://shift
@@ -135,7 +138,11 @@ AppState = Backbone.Model.extend({
             case 83://s save
                 if (e.ctrlKey || e.metaKey){//command
                     e.preventDefault();
-                    dmaGlobals.lattice.saveAsJSON();
+                    if (e.shiftKey){
+                        $("#saveAsModel").modal("show");
+                    } else {
+                        dmaGlobals.lattice.saveAsJSON();
+                    }
                 }
                 break;
             case 79://o open
-- 
GitLab