diff options
Diffstat (limited to 'js/io')
4 files changed, 69 insertions, 32 deletions
diff --git a/js/io/document/document-controller.js b/js/io/document/document-controller.js index e36181bf..6f67b57c 100755 --- a/js/io/document/document-controller.js +++ b/js/io/document/document-controller.js | |||
@@ -78,8 +78,9 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
78 | handleExecuteFileOpen: { | 78 | handleExecuteFileOpen: { |
79 | value: function(event) { | 79 | value: function(event) { |
80 | var pickerSettings = event._event.settings || {}; | 80 | var pickerSettings = event._event.settings || {}; |
81 | pickerSettings.callback = this.openFileWithURI; | 81 | pickerSettings.callback = this.openFileWithURI.bind(this); |
82 | pickerSettings.callbackScope = this; | 82 | pickerSettings.pickerMode = "read"; |
83 | pickerSettings.inFileMode = true; | ||
83 | this.application.ninja.filePickerController.showFilePicker(pickerSettings); | 84 | this.application.ninja.filePickerController.showFilePicker(pickerSettings); |
84 | } | 85 | } |
85 | }, | 86 | }, |
@@ -87,8 +88,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
87 | handleExecuteNewFile: { | 88 | handleExecuteNewFile: { |
88 | value: function(event) { | 89 | value: function(event) { |
89 | var newFileSettings = event._event.settings || {}; | 90 | var newFileSettings = event._event.settings || {}; |
90 | newFileSettings.callback = this.createNewFile; | 91 | newFileSettings.callback = this.createNewFile.bind(this); |
91 | newFileSettings.callbackScope = this; | ||
92 | this.application.ninja.newFileController.showNewFileDialog(newFileSettings); | 92 | this.application.ninja.newFileController.showNewFileDialog(newFileSettings); |
93 | } | 93 | } |
94 | }, | 94 | }, |
@@ -123,9 +123,9 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
123 | */ | 123 | */ |
124 | openNewFileCallback:{ | 124 | openNewFileCallback:{ |
125 | value:function(doc){ | 125 | value:function(doc){ |
126 | var response = doc || {"uri":"/Users/xhdq84/Documents/test.js", "success":true};//default just for testing | 126 | var response = doc || null;//default just for testing |
127 | if(!!response && response.success && !!response.uri){ | 127 | if(!!response && response.success && !!response.uri){ |
128 | this.application.ninja.ioMediator.fileOpen({"uri":response.uri}, this.openFileCallback.bind(this)); | 128 | this.application.ninja.ioMediator.fileOpen(response.uri, this.openFileCallback.bind(this)); |
129 | } | 129 | } |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -137,8 +137,9 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
137 | uri = uriArrayObj.uri[0]; | 137 | uri = uriArrayObj.uri[0]; |
138 | } | 138 | } |
139 | //console.log("URI is: ", uri); | 139 | //console.log("URI is: ", uri); |
140 | 140 | if(!!uri){ | |
141 | this.application.ninja.ioMediator.fileOpen({"uri":uri}, this.openFileCallback.bind(this)); | 141 | this.application.ninja.ioMediator.fileOpen(uri, this.openFileCallback.bind(this)); |
142 | } | ||
142 | } | 143 | } |
143 | }, | 144 | }, |
144 | 145 | ||
@@ -151,8 +152,44 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
151 | * uri : file uri | 152 | * uri : file uri |
152 | */ | 153 | */ |
153 | openFileCallback:{ | 154 | openFileCallback:{ |
154 | value:function(doc){ | 155 | value:function(response){ |
155 | this.openDocument(doc); | 156 | //Return Object Description |
157 | // Object.status (Always presents for handling) | ||
158 | // 204: File exists (Success) | ||
159 | // 404: File does not exists (Failure) | ||
160 | // 500: Unknown (Probably cloud API not running) | ||
161 | // | ||
162 | // (Below only present if succesfull 204) | ||
163 | // | ||
164 | // Object.content | ||
165 | // Object.extension | ||
166 | // Object.name | ||
167 | // Object.uri | ||
168 | // Object.creationDate | ||
169 | // Object.modifiedDate | ||
170 | // Object.readOnly | ||
171 | // Object.size | ||
172 | |||
173 | var fileDetails = {}; | ||
174 | if(!!response && (response.status === 204)){ | ||
175 | /** | ||
176 | * fileDetails format: | ||
177 | * {"type": "js", "name": "test", "source": fileContent, "uri": uri} | ||
178 | */ | ||
179 | fileDetails.type = response.extension; | ||
180 | fileDetails.source = response.content; | ||
181 | fileDetails.name = response.name; | ||
182 | fileDetails.uri = response.uri; | ||
183 | |||
184 | this.openDocument(fileDetails); | ||
185 | }else if(!!response && (response.status === 404)){ | ||
186 | alert("Unable to open file.\n [Error: File does not exist]"); | ||
187 | }else if(!!response && (response.status === 500)){ | ||
188 | alert("Unable to open file.\n Check if Ninja Local Cloud is running."); | ||
189 | }else{ | ||
190 | alert("Unable to open file."); | ||
191 | } | ||
192 | |||
156 | } | 193 | } |
157 | }, | 194 | }, |
158 | 195 | ||
diff --git a/js/io/templates/descriptor.json b/js/io/templates/descriptor.json index 20870934..acc03979 100644 --- a/js/io/templates/descriptor.json +++ b/js/io/templates/descriptor.json | |||
@@ -6,60 +6,60 @@ | |||
6 | "name":"Blank File", | 6 | "name":"Blank File", |
7 | "uri":"/", | 7 | "uri":"/", |
8 | "type":"directory", | 8 | "type":"directory", |
9 | "children":["/js/io/templates/files/html.txt", "/js/io/templates/files/files/js.txt", "/js/io/templates/files/css.txt", "/js/io/templates/files/json.txt", "/js/io/templates/files/php.txt", "/js/io/templates/files/pl.txt", "/js/io/templates/files/py.txt", "/js/io/templates/files/rb.txt"] | 9 | "children":["js/io/templates/files/html.txt", "js/io/templates/files/js.txt", "js/io/templates/files/css.txt", "js/io/templates/files/json.txt", "js/io/templates/files/php.txt", "js/io/templates/files/pl.txt", "js/io/templates/files/py.txt", "js/io/templates/files/rb.txt"] |
10 | }, | 10 | }, |
11 | "/js/io/templates/files/html.txt":{ | 11 | "js/io/templates/files/html.txt":{ |
12 | "name":"HTML", | 12 | "name":"HTML", |
13 | "uri":"/js/io/templates/files/html.txt", | 13 | "uri":"js/io/templates/files/html.txt", |
14 | "type":"file", | 14 | "type":"file", |
15 | "fileExtension":".html", | 15 | "fileExtension":".html", |
16 | "children":["defaultTemplate"] | 16 | "children":["defaultTemplate"] |
17 | }, | 17 | }, |
18 | "/js/io/templates/files/files/js.txt":{ | 18 | "js/io/templates/files/js.txt":{ |
19 | "name":"JavaScript", | 19 | "name":"JavaScript", |
20 | "uri":"/js/io/templates/files/files/js.txt", | 20 | "uri":"js/io/templates/files/js.txt", |
21 | "type":"file", | 21 | "type":"file", |
22 | "fileExtension":".js", | 22 | "fileExtension":".js", |
23 | "children":["defaultTemplate"] | 23 | "children":["defaultTemplate"] |
24 | }, | 24 | }, |
25 | "/js/io/templates/files/css.txt":{ | 25 | "js/io/templates/files/css.txt":{ |
26 | "name":"Cascading Style Sheets", | 26 | "name":"Cascading Style Sheets", |
27 | "uri":"/js/io/templates/files/css.txt", | 27 | "uri":"js/io/templates/files/css.txt", |
28 | "type":"file", | 28 | "type":"file", |
29 | "fileExtension":".css", | 29 | "fileExtension":".css", |
30 | "children":["defaultTemplate"] | 30 | "children":["defaultTemplate"] |
31 | }, | 31 | }, |
32 | "/js/io/templates/files/json.txt":{ | 32 | "js/io/templates/files/json.txt":{ |
33 | "name":"JSON", | 33 | "name":"JSON", |
34 | "uri":"/js/io/templates/files/json.txt", | 34 | "uri":"js/io/templates/files/json.txt", |
35 | "type":"file", | 35 | "type":"file", |
36 | "fileExtension":".json", | 36 | "fileExtension":".json", |
37 | "children":["defaultTemplate"] | 37 | "children":["defaultTemplate"] |
38 | }, | 38 | }, |
39 | "/js/io/templates/files/php.txt":{ | 39 | "js/io/templates/files/php.txt":{ |
40 | "name":"PHP", | 40 | "name":"PHP", |
41 | "uri":"/js/io/templates/files/php.txt", | 41 | "uri":"js/io/templates/files/php.txt", |
42 | "type":"file", | 42 | "type":"file", |
43 | "fileExtension":".php", | 43 | "fileExtension":".php", |
44 | "children":["defaultTemplate"] | 44 | "children":["defaultTemplate"] |
45 | }, | 45 | }, |
46 | "/js/io/templates/files/pl.txt":{ | 46 | "js/io/templates/files/pl.txt":{ |
47 | "name":"Perl", | 47 | "name":"Perl", |
48 | "uri":"/js/io/templates/files/pl.txt", | 48 | "uri":"js/io/templates/files/pl.txt", |
49 | "type":"file", | 49 | "type":"file", |
50 | "fileExtension":".pl", | 50 | "fileExtension":".pl", |
51 | "children":["defaultTemplate"] | 51 | "children":["defaultTemplate"] |
52 | }, | 52 | }, |
53 | "/js/io/templates/files/py.txt":{ | 53 | "js/io/templates/files/py.txt":{ |
54 | "name":"Python", | 54 | "name":"Python", |
55 | "uri":"/js/io/templates/files/py.txt", | 55 | "uri":"js/io/templates/files/py.txt", |
56 | "type":"file", | 56 | "type":"file", |
57 | "fileExtension":".py", | 57 | "fileExtension":".py", |
58 | "children":["defaultTemplate"] | 58 | "children":["defaultTemplate"] |
59 | }, | 59 | }, |
60 | "/js/io/templates/files/rb.txt":{ | 60 | "js/io/templates/files/rb.txt":{ |
61 | "name":"Ruby", | 61 | "name":"Ruby", |
62 | "uri":"/js/io/templates/files/rb.txt", | 62 | "uri":"js/io/templates/files/rb.txt", |
63 | "type":"file", | 63 | "type":"file", |
64 | "fileExtension":".rb", | 64 | "fileExtension":".rb", |
65 | "children":["defaultTemplate"] | 65 | "children":["defaultTemplate"] |
diff --git a/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js b/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js index bcb9d123..f514b81a 100644 --- a/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js +++ b/js/io/ui/new-file-dialog/new-file-options-navigator.reel/new-file-options-navigator.js | |||
@@ -230,10 +230,10 @@ var NewFileOptionsNavigator = exports.NewFileOptionsNavigator = Montage.create(C | |||
230 | ){ | 230 | ){ |
231 | this.error.innerHTML=""; | 231 | this.error.innerHTML=""; |
232 | //console.log("$$$ new file selections: \n" + selectionlog); | 232 | //console.log("$$$ new file selections: \n" + selectionlog); |
233 | if(!!this.newFileModel.callback && !!this.newFileModel.callbackScope){//inform document-controller if save successful | 233 | if(!!this.newFileModel.callback){//inform document-controller if save successful |
234 | this.newFileModel.callback.call(this.newFileModel.callbackScope, {"fileTemplateUri":selectedProjectTypeID, | 234 | this.newFileModel.callback({"fileTemplateUri":selectedProjectTypeID, |
235 | "newFilePath":newFilePath, | 235 | "newFilePath":newFilePath, |
236 | "fileExtension":fileExtension});//document-controller api | 236 | "fileExtension":fileExtension});//document-controller api |
237 | }else{ | 237 | }else{ |
238 | //send selection event | 238 | //send selection event |
239 | var newFileSelectionEvent = document.createEvent("Events"); |