aboutsummaryrefslogtreecommitdiff
path: root/js/io
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-02-01 13:31:56 -0800
committerJose Antonio Marquez2012-02-01 13:31:56 -0800
commitd3208408027c90696af91883935279cf4d023ddc (patch)
tree353e60c8b0cc30012dfd5a0d3573bd0055d30bd3 /js/io
parent54ccd309722797e79ca35fe115b0372e86850551 (diff)
parentfc4d32e0df064ecdbe7ed86aab25eeab58253032 (diff)
downloadninja-d3208408027c90696af91883935279cf4d023ddc.tar.gz
Merge branch 'refs/heads/AnanyaFileIO' into FileIO
Diffstat (limited to 'js/io')
-rwxr-xr-xjs/io/document/document-controller.js52
-rwxr-xr-xjs/io/system/coreioapi.js45
-rw-r--r--js/io/utils/file-utils.js76
-rw-r--r--[-rwxr-xr-x]js/io/workflow/newFileDialog/new-file-options-navigator.reel/new-file-options-navigator.js41
-rw-r--r--[-rwxr-xr-x]js/io/workflow/save-as-dialog.reel/save-as-dialog.css6
-rw-r--r--[-rwxr-xr-x]js/io/workflow/save-as-dialog.reel/save-as-dialog.html4
-rw-r--r--[-rwxr-xr-x]js/io/workflow/save-as-dialog.reel/save-as-dialog.js138
7 files changed, 223 insertions, 139 deletions
diff --git a/js/io/document/document-controller.js b/js/io/document/document-controller.js
index 6f363bc7..bba7e0e7 100755
--- a/js/io/document/document-controller.js
+++ b/js/io/document/document-controller.js
@@ -15,10 +15,9 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
15var Montage = require("montage/core/core").Montage, 15var Montage = require("montage/core/core").Montage,
16 Component = require("montage/ui/component").Component, 16 Component = require("montage/ui/component").Component,
17 Uuid = require("montage/core/uuid").Uuid, 17 Uuid = require("montage/core/uuid").Uuid,
18 fileSystem = require("js/io/system/filesystem").FileSystem; 18 nj= require("js/lib/NJUtils.js").NJUtils,
19 19 HTMLDocument = require("js/io/document/html-document").HTMLDocument,
20var HTMLDocument = require("js/io/document/html-document").HTMLDocument; 20 TextDocument = require("js/io/document/text-document").TextDocument;
21var TextDocument = require("js/io/document/text-document").TextDocument;
22 21
23var DocumentController = exports.DocumentController = Montage.create(Component, { 22var DocumentController = exports.DocumentController = Montage.create(Component, {
24 hasTemplate: { 23 hasTemplate: {
@@ -96,7 +95,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
96 95
97 openFileWithURI: { 96 openFileWithURI: {
98 value: function(uriArrayObj) { 97 value: function(uriArrayObj) {
99 var uri = "", fileContent = "", response=null; 98 var uri = "", fileContent = "", response=null, filename="", fileType="js";
100 if(!!uriArrayObj && !!uriArrayObj.uri && (uriArrayObj.uri.length > 0)){ 99 if(!!uriArrayObj && !!uriArrayObj.uri && (uriArrayObj.uri.length > 0)){
101 uri = uriArrayObj.uri[0]; 100 uri = uriArrayObj.uri[0];
102 } 101 }
@@ -104,18 +103,23 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
104 103
105 // Get file from Jose Code with a callback to here 104 // Get file from Jose Code with a callback to here
106 if(!!uri){ 105 if(!!uri){
107 response = fileSystem.shellApiHandler.openFile({"uri":uri}); 106 response = this.application.ninja.coreIoApi.openFile({"uri":uri});
108 if((response.success === true) && ((response.status === 200) || (response.status === 304))){ 107 if((response.success === true) && ((response.status === 200) || (response.status === 304))){
109 fileContent = response.content; 108 fileContent = response.content;
110 } 109 }
111 110
112 console.log("$$$ "+uri+"\n content = \n\n\n"+ fileContent+"\n\n\n"); 111 //console.log("$$$ "+uri+"\n content = \n\n\n"+ fileContent+"\n\n\n");
113 this.openDocument({"type": "js", "name": "tmp.js", "source": fileContent}); 112 filename = nj.getFileNameFromPath(uri);
113 if(uri.indexOf('.') != -1){
114 fileType = uri.substr(uri.lastIndexOf('.') + 1);
115 }
116 this.openDocument({"type": ""+fileType, "name": ""+filename, "source": fileContent});
114 } 117 }
115 118
116 } 119 }
117 }, 120 },
118 121
122
119 openProjectWithURI: { 123 openProjectWithURI: {
120 value: function(uri) { 124 value: function(uri) {
121 console.log("URI is: ", uri); 125 console.log("URI is: ", uri);
@@ -211,7 +215,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
211 this._documents.splice(this._findIndexByUUID(id), 1); 215 this._documents.splice(this._findIndexByUUID(id), 1);
212 216
213 if(this.activeDocument.uuid === id && this._documents.length > 0) { 217 if(this.activeDocument.uuid === id && this._documents.length > 0) {
214 this.switchDocument(this._documents[0].uuid) 218 this.switchDocument(this._documents[0].uuid);
215 } 219 }
216 } 220 }
217 }, 221 },
@@ -254,11 +258,11 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
254 lineNumbers: true, 258 lineNumbers: true,
255 mode: "htmlmixed", 259 mode: "htmlmixed",
256 onCursorActivity: function() { 260 onCursorActivity: function() {
257 DocumentManager._codeEditor.editor.setLineClass(DocumentManager._codeEditor.hline, null); 261 DocumentController._codeEditor.editor.setLineClass(DocumentController._codeEditor.hline, null);
258 DocumentManager._codeEditor.hline = DocumentManager._codeEditor.editor.setLineClass(DocumentManager._codeEditor.editor.getCursor().line, "activeline"); 262 DocumentController._codeEditor.hline = DocumentController._codeEditor.editor.setLineClass(DocumentController._codeEditor.editor.getCursor().line, "activeline");
259 } 263 }
260 }); 264 });
261 this._codeEditor.hline = DocumentManager._codeEditor.editor.setLineClass(0, "activeline"); 265 this._codeEditor.hline = DocumentController._codeEditor.editor.setLineClass(0, "activeline");
262 } 266 }
263 } 267 }
264 }, 268 },
@@ -284,9 +288,9 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
284 288
285 _onOpenTextDocument: { 289 _onOpenTextDocument: {
286 value: function(doc) { 290 value: function(doc) {
287 DocumentManager._hideCurrentDocument(); 291 this._hideCurrentDocument();
288 this.application.ninja.stage._scrollFlag = false; // TODO HACK to prevent type error on Hide/Show Iframe 292 this.application.ninja.stage._scrollFlag = false; // TODO HACK to prevent type error on Hide/Show Iframe
289 DocumentManager.activeDocument = doc; 293 this.activeDocument = doc;
290 294
291 var type; 295 var type;
292 296
@@ -299,15 +303,15 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
299 break; 303 break;
300 } 304 }
301 305
302 DocumentManager._codeEditor.editor = CodeMirror.fromTextArea(doc.textArea, { 306 DocumentController._codeEditor.editor = CodeMirror.fromTextArea(doc.textArea, {
303 lineNumbers: true, 307 lineNumbers: true,
304 mode: type, 308 mode: type,
305 onCursorActivity: function() { 309 onCursorActivity: function() {
306 DocumentManager._codeEditor.editor.setLineClass(DocumentManager._codeEditor.hline, null); 310 DocumentController._codeEditor.editor.setLineClass(DocumentController._codeEditor.hline, null);
307 DocumentManager._codeEditor.hline = DocumentManager._codeEditor.editor.setLineClass(DocumentManager._codeEditor.editor.getCursor().line, "activeline"); 311 DocumentController._codeEditor.hline = DocumentController._codeEditor.editor.setLineClass(DocumentController._codeEditor.editor.getCursor().line, "activeline");
308 } 312 }
309 }); 313 });
310 DocumentManager._codeEditor.hline = DocumentManager._codeEditor.editor.setLineClass(0, "activeline"); 314 DocumentController._codeEditor.hline = DocumentController._codeEditor.editor.setLineClass(0, "activeline");
311 315
312 } 316 }
313 }, 317 },
@@ -349,7 +353,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
349 value: function() { 353 value: function() {
350 if(this.activeDocument) { 354 if(this.activeDocument) {
351 this.activeDocument.container.style["display"] = "none"; 355 this.activeDocument.container.style["display"] = "none";
352 if(this.activeDocument.documentType === "htm" || this.activeDocument.documentType === "html") this.application.ninja.stage.toggleCanvas(); 356 //if(this.activeDocument.documentType === "htm" || this.activeDocument.documentType === "html") this.application.ninja.stage.toggleCanvas();
353 } 357 }
354 } 358 }
355 }, 359 },
@@ -358,7 +362,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component,
358 value: function() { 362 value: function() {
359 if(this.activeDocument) { 363 if(this.activeDocument) {
360 this.activeDocument.container.style["display"] = "block"; 364 this.activeDocument.container.style["display"] = "block";
361 if(this.activeDocument.documentType === "htm" || this.activeDocument.documentType === "html") this.application.ninja.stage.toggleCanvas(); 365 //if(this.activeDocument.documentType === "htm" || this.activeDocument.documentType === "html") this.application.ninja.stage.toggleCanvas();
362 } 366 }
363 } 367 }
364 }, 368 },
@@ -415,12 +419,12 @@ _createTextAreaElement: {
415 textArea.id = "code"; 419 textArea.id = "code";
416 textArea.name = "code"; 420 textArea.name = "code";
417 421
418 codeMirrorDiv.appendChild(textArea); 422 //codeMirrorDiv.appendChild(textArea);
419 423
420 if(!this._textHolder) this._textHolder = document.getElementById("codeViewContainer"); 424// if(!this._textHolder) this._textHolder = document.getElementById("codeViewContainer");
421 this._textHolder.appendChild(codeMirrorDiv); 425// this._textHolder.appendChild(codeMirrorDiv);
422 426
423 return codeMirrorDiv; 427 return textArea;
424 } 428 }
425 } 429 }
426}); \ No newline at end of file 430}); \ No newline at end of file
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js
index 7e883b81..3a007028 100755
--- a/js/io/system/coreioapi.js
+++ b/js/io/system/coreioapi.js
@@ -937,50 +937,7 @@ exports.CoreIoApi = Montage.create(Component, {
937 var serviceURL = this._prepareServiceURL(this.fileServiceURL, file.uri), 937 var serviceURL = this._prepareServiceURL(this.fileServiceURL, file.uri),
938 xhr = new XMLHttpRequest(); 938 xhr = new XMLHttpRequest();
939 xhr.open("GET", serviceURL, false); 939 xhr.open("GET", serviceURL, false);
940 xhr.setRequestHeader("get-attributes", "true"); 940 xhr.setRequestHeader("get-file-info", "true");
941 xhr.send();
942 if (xhr.readyState === 4) {
943 retValue.status = xhr.status;
944 if(xhr.status == 200) {
945 retValue.content = xhr.responseText;
946 }
947 retValue.success = true;
948 }
949 }
950 catch(error) {
951 xhr = null;
952 retValue.success = false;
953 }
954 }
955 return retValue;
956 }
957 },
958
959 ////////////////////////////////////////////////////////////////////
960 // Checks if the directory is writable
961 // Parameters:
962 // the file parameter must contain the following properties