From 1e8a0614be1f51fc9b275e8a2c316fca6a12cf65 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Tue, 27 Oct 2015 01:14:31 -0400 Subject: [PATCH] save script --- css/main.css | 9 +++++++++ index.html | 5 ++++- js/menus/otherUI/Console.js | 32 +++++++++++++++++++++++++++----- js/models/FileSaver.js | 7 ++++++- 4 files changed, 46 insertions(+), 7 deletions(-) diff --git a/css/main.css b/css/main.css index 158ad82e..c5697fb6 100644 --- a/css/main.css +++ b/css/main.css @@ -596,4 +596,13 @@ label { .consoleWarning { color: orange; +} +.consoleComment { + color: darkgray; +} + +#saveConsole { + height: 42px; + border-bottom-width: 0; + border-radius: 0; } \ No newline at end of file diff --git a/index.html b/index.html index c2c1f353..51d27b01 100644 --- a/index.html +++ b/index.html @@ -131,7 +131,10 @@ <div id="console"> <div> <div id="consoleOutput"></div> - <input id="consoleInput" value="" placeholder="Type Command" class="form-control" type="text"> + <div class="input-group"> + <input id="consoleInput" value="" aria-describedby="consoleSaveScript" placeholder="Type Command" class="form-control" type="text"> + <span class="input-group-addon btn btn-defualt" id="consoleSaveScript">Save Script</span> + </div> </div> </div> <div id="menuWrapper"><div id="menuHeader"></div><div id="menuContent"></div></div> diff --git a/js/menus/otherUI/Console.js b/js/menus/otherUI/Console.js index 625095bc..a73d0a02 100644 --- a/js/menus/otherUI/Console.js +++ b/js/menus/otherUI/Console.js @@ -10,7 +10,7 @@ define(['jquery', 'underscore', 'backbone', 'appState'], function($, _, Backbone el: "#console", events: { - + "click #consoleSaveScript": "_saveScript" }, initialize: function(){ @@ -42,12 +42,16 @@ define(['jquery', 'underscore', 'backbone', 'appState'], function($, _, Backbone return appState.get("consoleIsVisible"); }, - write: function(string){ - this._writeOutput(string + "<br/>"); + write: function(string){//for commands + this._writeOutput(string + "<br>"); + }, + + log: function(string){//for comments + this._writeOutput("<span class='consoleComment'>" + string + "</span><br>"); }, warn: function(string){ - this._writeOutput("<span class='consoleWarning'>" + string + "</span><br/>"); + this._writeOutput("<span class='consoleWarning'>" + string + "</span><br>"); }, error: function(string){ @@ -89,7 +93,25 @@ define(['jquery', 'underscore', 'backbone', 'appState'], function($, _, Backbone // var command = $input.val(); var command = "nice try, this doesn't work yet :)"; $input.val(""); - this.write(command); + this.log(command); + }, + + _saveScript: function(e){ + e.preventDefault(); + var self = this; + require(['fileSaver'], function(fileSaver){ + fileSaver.saveConsoleScript(self.getConsoleData()); + }) + }, + + getConsoleData: function(){ + var data = $("#consoleOutput").html().split("<br>"); + data.pop();//last line is "" + var commands = [] + _.each(data, function(line, index){ + if (line.substr(0,5) != "<span") commands.push(line); + }); + return commands.join('\n'); } }); diff --git a/js/models/FileSaver.js b/js/models/FileSaver.js index 95188c55..0790a08a 100644 --- a/js/models/FileSaver.js +++ b/js/models/FileSaver.js @@ -140,6 +140,10 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra }); } + function saveConsoleScript(data){ + saveData(data, "script", "js"); + } + return {//return public methods // save: save, @@ -150,6 +154,7 @@ define(['underscore', 'fileSaverLib', 'lattice', 'materials', 'ribbon', 'menuWra // saveAssembler: saveAssembler, loadFile: loadFile, saveSequences: saveSequences, - saveSTL: saveSTL + saveSTL: saveSTL, + saveConsoleScript: saveConsoleScript } }); \ No newline at end of file -- GitLab