diff options
Diffstat (limited to 'js/io')
-rwxr-xr-x | js/io/document/document-controller.js | 52 | ||||
-rwxr-xr-x | js/io/system/coreioapi.js | 45 | ||||
-rw-r--r-- | js/io/utils/file-utils.js | 76 | ||||
-rw-r--r--[-rwxr-xr-x] | js/io/workflow/newFileDialog/new-file-options-navigator.reel/new-file-options-navigator.js | 41 | ||||
-rw-r--r--[-rwxr-xr-x] | js/io/workflow/save-as-dialog.reel/save-as-dialog.css | 6 | ||||
-rw-r--r--[-rwxr-xr-x] | js/io/workflow/save-as-dialog.reel/save-as-dialog.html | 4 | ||||
-rw-r--r--[-rwxr-xr-x] | js/io/workflow/save-as-dialog.reel/save-as-dialog.js | 138 |
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 | |||
15 | var Montage = require("montage/core/core").Montage, | 15 | var 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, | |
20 | var HTMLDocument = require("js/io/document/html-document").HTMLDocument; | 20 | TextDocument = require("js/io/document/text-document").TextDocument; |
21 | var TextDocument = require("js/io/document/text-document").TextDocument; | ||
22 | 21 | ||
23 | var DocumentController = exports.DocumentController = Montage.create(Component, { | 22 | var 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 | ||
963 | // uri: string value containing the full directory path/URI i.e. "c:/foo" | ||
964 | // | ||
965 | // Return values: | ||
966 | // returns an object with two properties | ||