diff options
author | Jose Antonio Marquez | 2012-02-08 13:11:48 -0800 |
---|---|---|
committer | Jose Antonio Marquez | 2012-02-08 13:11:48 -0800 |
commit | 4bfac53c9a77a3af35d029757eece53f4b7212ed (patch) | |
tree | 60c9881df445ada5c02ba22e5091b0bab0f92d1b /js | |
parent | 95808eb6ac82b8bf33de658bd135340b66a8fa29 (diff) | |
download | ninja-4bfac53c9a77a3af35d029757eece53f4b7212ed.tar.gz |
Fixed data type issue on copying library files
Fixed the methods to allow for ArrayBuffer data to be sent, fixes saving files that are not plain text.
Diffstat (limited to 'js')
-rw-r--r-- | js/io/system/chromeapi.js | 2 | ||||
-rwxr-xr-x | js/io/system/coreioapi.js | 5 | ||||
-rw-r--r-- | js/io/system/ninjalibrary.js | 18 |
3 files changed, 19 insertions, 6 deletions
diff --git a/js/io/system/chromeapi.js b/js/io/system/chromeapi.js index c19a7d3b..eee7409d 100644 --- a/js/io/system/chromeapi.js +++ b/js/io/system/chromeapi.js | |||
@@ -146,7 +146,7 @@ exports.ChromeApi = Montage.create(Object.prototype, { | |||
146 | callback({content: this.result, data: file, file: f, url: f.toURL()}); | 146 | callback({content: this.result, data: file, file: f, url: f.toURL()}); |
147 | } | 147 | } |
148 | }; | 148 | }; |
149 | reader.readAsText(file); | 149 | reader.readAsArrayBuffer(file); |
150 | }, function (e) {if (callback) callback(false)}); | 150 | }, function (e) {if (callback) callback(false)}); |
151 | }, function (e) {if (callback) callback(false)}); | 151 | }, function (e) {if (callback) callback(false)}); |
152 | } | 152 | } |
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js index 7edb469b..e2c2e4dd 100755 --- a/js/io/system/coreioapi.js +++ b/js/io/system/coreioapi.js | |||
@@ -402,15 +402,16 @@ exports.CoreIoApi = Montage.create(Component, { | |||
402 | xhr = new XMLHttpRequest(); | 402 | xhr = new XMLHttpRequest(); |
403 | // | 403 | // |
404 | xhr.open("POST", serviceURL, false); | 404 | xhr.open("POST", serviceURL, false); |
405 | xhr.responseType = "arraybuffer"; | ||
405 | if(file.contentType && file.contentType.length) | 406 | if(file.contentType && file.contentType.length) |
406 | xhr.setRequestHeader("Content-Type", file.contentType); | 407 | xhr.setRequestHeader("Content-Type", file.contentType); |
407 | else | 408 | else |
408 | xhr.setRequestHeader("Content-Type", "text/plain"); | 409 | xhr.setRequestHeader("Content-Type", "text/plain"); |
409 | 410 | ||
410 | if(file.contents && file.contents.length) | 411 | if (file.contents) |
411 | xhr.send(file.contents); | 412 | xhr.send(file.contents); |
412 | else | 413 | else |
413 | xhr.send(); | 414 | xhr.send(); |
414 | 415 | ||
415 | if (xhr.readyState === 4) { | 416 | if (xhr.readyState === 4) { |
416 | retValue.status = xhr.status; | 417 | retValue.status = xhr.status; |
diff --git a/js/io/system/ninjalibrary.js b/js/io/system/ninjalibrary.js index 3914ec29..7b524189 100644 --- a/js/io/system/ninjalibrary.js +++ b/js/io/system/ninjalibrary.js | |||
@@ -114,8 +114,18 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
114 | //File to copy | 114 | //File to copy |
115 | this.chromeApi.fileContent(contents[i].fullPath, function (result) { | 115 | this.chromeApi.fileContent(contents[i].fullPath, function (result) { |
116 | // | 116 | // |
117 | this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: result.content, contentType: result.data.type}); | 117 | |
118 | //this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: result.content}); | 118 | /* |
119 | var ui8a = new Uint8Array(result.content); | ||
120 | console.log(ui8a); | ||
121 | |||
122 | var blob = new window.WebKitBlobBuilder; | ||
123 | blob.append(result.content); | ||
124 | */ | ||
125 | //console.log(blob.getBlob(result.data.type)); | ||
126 | //this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: result.content, contentType: result.data.type}); | ||
127 | //this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: blob.getBlob(result.data.type), contentType: result.data.type}); | ||
128 | this.coreApi.createFile({uri: fileRoot+result.file.fullPath, contents: result.content}); | ||
119 | }.bind(this)); | 129 | }.bind(this)); |
120 | } | 130 | } |
121 | } | 131 | } |
@@ -187,11 +197,12 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
187 | //Getting file contents | 197 | //Getting file contents |
188 | xhr = new XMLHttpRequest(); | 198 | xhr = new XMLHttpRequest(); |
189 | xhr.open("GET", tocopylibs[i].path, false); | 199 | xhr.open("GET", tocopylibs[i].path, false); |
200 | xhr.responseType = "arraybuffer"; | ||
190 | xhr.send(); | 201 | xhr.send(); |
191 | //Checking for status | 202 | //Checking for status |
192 | if (xhr.readyState === 4) { //TODO: add check for mime type | 203 | if (xhr.readyState === 4) { //TODO: add check for mime type |
193 | //Creating new file from loaded content | 204 | //Creating new file from loaded content |
194 | //this.chromeApi.fileNew('/'+tocopylibs[i].name+'/'+tocopylibs[i].file, xhr.response, function (status) {if(status) this.libraryCopied()}.bind(this)); | 205 | this.chromeApi.fileNew('/'+tocopylibs[i].name+'/'+tocopylibs[i].file, xhr.response, function (status) {if(status) this.libraryCopied()}.bind(this)); |
195 | } else { | 206 | } else { |
196 | //Error creating single file library | 207 | //Error creating single file library |
197 | } | 208 | } |
@@ -225,6 +236,7 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { | |||
225 | for (i=0; this.files[i]; i++) { | 236 | for (i=0; this.files[i]; i++) { |
226 | xhr = new XMLHttpRequest(); | 237 | xhr = new XMLHttpRequest(); |
227 | xhr.open("GET", this.root+this.files[i], false); | 238 | xhr.open("GET", this.root+this.files[i], false); |
239 | xhr.responseType = "arraybuffer"; | ||
228 | xhr.send(); | 240 | xhr.send(); |
229 | //Checking for status | 241 | //Checking for status |
230 | if (xhr.readyState === 4) { | 242 | if (xhr.readyState === 4) { |