aboutsummaryrefslogtreecommitdiff
path: root/js/io/system
diff options
context:
space:
mode:
Diffstat (limited to 'js/io/system')
-rwxr-xr-xjs/io/system/coreioapi.js64
-rwxr-xr-xjs/io/system/fileio.js4
-rw-r--r--js/io/system/ninjalibrary.js155
-rw-r--r--js/io/system/ninjalibrary.json4
4 files changed, 134 insertions, 93 deletions
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js
index a06f45c6..1e6518fe 100755
--- a/js/io/system/coreioapi.js
+++ b/js/io/system/coreioapi.js
@@ -193,6 +193,23 @@ exports.CoreIoApi = Montage.create(Component, {
193 this._fileServiceURL = value; 193 this._fileServiceURL = value;
194 } 194 }
195 }, 195 },
196 ////////////////////////////////////////////////////////////////////
197 //File service API URL
198 _webServiceURL: {
199 enumerable: false,
200 value: '/web'
201 },
202 ////////////////////////////////////////////////////////////////////
203 //
204 webServiceURL: {
205 enumerable: false,
206 get: function() {
207 return String(this.rootUrl+this._webServiceURL);
208 },
209 set: function(value) {
210 this._webServiceURL = value;
211 }
212 },
196 //////////////////////////////////////////////////////////////////// 213 ////////////////////////////////////////////////////////////////////
197 //Directory service API URL 214 //Directory service API URL
198 _directoryServiceURL: { 215 _directoryServiceURL: {
@@ -647,6 +664,53 @@ exports.CoreIoApi = Montage.create(Component, {
647 } 664 }
648 }, 665 },
649 //////////////////////////////////////////////////////////////////// 666 ////////////////////////////////////////////////////////////////////
667 // Reads an external file (cross-domain)
668 // Parameters:
669 // the file parameter must contain the following properties
670 // url: string value containing the full file path/URL i.e. "http://google.com/motorola.html"
671 // binary parameter is optional if the content is to be binary
672 // Return values:
673 // returns an object with two properties
674 // success: boolean indicating if the call succeeded or failed
675 // content: string containing the file contents
676 // status: int indicating the request HTTP status code
677 // 200 - the file was read and its contents were returned
678 // 404 - the file does not exist
679 // 500 - unknown server error occurred
680 readExternalFile: {
681 enumerable: false,
682 value: function(file) {
683 //
684 var retValue = {success:null, content:null, status:null};
685 //
686 if(file && file.url && file.url.length) {
687 try {
688 var serviceURL = this._prepareServiceURL(this.webServiceURL, ''),
689 xhr = new XMLHttpRequest();
690 //
691 xhr.open("GET", serviceURL+"?url="+file.url, false);
692 if (file.binary) xhr.setRequestHeader("return-type", "binary");
693 xhr.setRequestHeader("Content-Type", "text/plain");
694 xhr.send();
695 //
696 if (xhr.readyState === 4) {
697 retValue.status = xhr.status;
698 if(xhr.status == 200) {
699 retValue.content = xhr.response;
700 }
701 retValue.success = true;
702 }
703 }
704 catch(error) {
705 xhr = null;
706 retValue.success = false;
707 }
708 }
709 //
710 return retValue;
711 }
712 },
713 ////////////////////////////////////////////////////////////////////
650 // Create a new directory/folder 714 // Create a new directory/folder
651 // Parameters: 715 // Parameters:
652 // the dir parameter must contain the following properties 716 // the dir parameter must contain the following properties
diff --git a/js/io/system/fileio.js b/js/io/system/fileio.js
index f78ad173..1680ca7f 100755
--- a/js/io/system/fileio.js
+++ b/js/io/system/fileio.js
@@ -146,7 +146,7 @@ exports.FileIo = Montage.create(Component, {
146 } 146 }
147 }, 147 },
148 //////////////////////////////////////////////////////////////////// 148 ////////////////////////////////////////////////////////////////////
149 // 149 //TODO: Add functionality
150 deleteFile: { 150 deleteFile: {
151 enumerable: true, 151 enumerable: true,
152 value: function() { 152 value: function() {
@@ -159,7 +159,7 @@ exports.FileIo = Montage.create(Component, {
159 } 159 }
160 }, 160 },
161 //////////////////////////////////////////////////////////////////// 161 ////////////////////////////////////////////////////////////////////
162 // 162 //TODO: Add functionality
163 copyFile: { 163 copyFile: {
164 enumerable: true, 164 enumerable: true,
165 value: function() { 165 value: function() {
diff --git a/js/io/system/ninjalibrary.js b/js/io/system/ninjalibrary.js
index 201598fc..12af5988 100644
--- a/js/io/system/ninjalibrary.js
+++ b/js/io/system/ninjalibrary.js
@@ -4,12 +4,7 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. 4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5</copyright> */ 5</copyright> */
6 6
7/* /////////////////////////////////////////////////////////////////////
8//////////////////////////////////////////////////////////////////////// 7////////////////////////////////////////////////////////////////////////
9NOTES:
10
11////////////////////////////////////////////////////////////////////////
12///////////////////////////////////////////////////////////////////// */
13// 8//
14var Montage = require("montage/core/core").Montage; 9var Montage = require("montage/core/core").Montage;
15//////////////////////////////////////////////////////////////////////// 10////////////////////////////////////////////////////////////////////////
@@ -18,96 +13,80 @@ exports.NinjaLibrary = Montage.create(Object.prototype, {
18 //////////////////////////////////////////////////////////////////// 13 ////////////////////////////////////////////////////////////////////
19 // 14 //
20 _chromeApi: { 15 _chromeApi: {
21 enumerable: false,
22 value: null 16 value: null
23 }, 17 },
24 //////////////////////////////////////////////////////////////////// 18 ////////////////////////////////////////////////////////////////////
25 // 19 //
26 chromeApi: { 20 chromeApi: {
27 enumerable: false, 21 get: function() {return this._chromeApi;},
28 get: function() { 22 set: function(value) {this._chromeApi = value;}
29 return this._chromeApi;
30 },
31 set: function(value) {
32 this._chromeApi = value;
33 }
34 }, 23 },
35 //////////////////////////////////////////////////////////////////// 24 ////////////////////////////////////////////////////////////////////
36 // 25 //
37 _coreApi: { 26 _coreApi: {
38 enumerable: false,
39 value: null 27 value: null
40 }, 28 },
41 //////////////////////////////////////////////////////////////////// 29 ////////////////////////////////////////////////////////////////////
42 // 30 //
43 coreApi: { 31 coreApi: {
44 enumerable: false, 32 get: function() {return this._coreApi;},
45 get: function() { 33 set: function(value) {this._coreApi = value;}
46 return this._coreApi;
47 },
48 set: function(value) {
49 this._coreApi = value;
50 }
51 }, 34 },
52 //////////////////////////////////////////////////////////////////// 35 ////////////////////////////////////////////////////////////////////
53 // 36 //
54 _libs: { 37 _libs: {
55 enumerable: false,
56 value: null 38 value: null
57 }, 39 },
58 //////////////////////////////////////////////////////////////////// 40 ////////////////////////////////////////////////////////////////////
59 // 41 //
60 libs: { 42 libs: {
61 enumerable: false, 43 get: function() {return this._libs;},
62 get: function() { 44 set: function(value) {this._libs = value;}
63 return this._libs;
64 },
65 set: function(value) {
66 this._libs = value;
67 }
68 }, 45 },
69 //////////////////////////////////////////////////////////////////// 46 ////////////////////////////////////////////////////////////////////
70 // 47 //
71 _libsToSync: { 48 _libsToSync: {
72 enumerable: false,
73 value: 0 49 value: 0
74 }, 50 },
75 //////////////////////////////////////////////////////////////////// 51 ////////////////////////////////////////////////////////////////////
76 // 52 //
77 _syncedLibs: { 53 _syncedLibs: {
78 enumerable: false,
79 value: 0 54 value: 0
80 }, 55 },
81 //////////////////////////////////////////////////////////////////// 56 ////////////////////////////////////////////////////////////////////
82 // 57 //
83 copyLibToCloud: { 58 copyLibToCloud: {
84 enumerable: false,
85 value: function (path, libName, callback) { 59 value: function (path, libName, callback) {
86 // 60 //Checking for library to exists
87 if(this.coreApi.directoryExists({uri: path+libName}).status === 404) { 61 if(this.coreApi.directoryExists({uri: path+libName}).status === 404) {
62 //Getting contents to begin copying
88 this.chromeApi.directoryContents(this.chromeApi.fileSystem.root, function (contents) { 63 this.chromeApi.directoryContents(this.chromeApi.fileSystem.root, function (contents) {
89 for (var i in contents) { 64 for (var i in contents) {
90 if (libName === contents[i].name) { 65 if (libName === contents[i].name) {
91 //Getting contents of library to be copied 66 //Getting contents of library to be copied
92 this.chromeApi.directoryContents(contents[i], function (lib) { 67 this.chromeApi.directoryContents(contents[i], function (lib) {
93 //Creating directory structure from subfolders 68 //Copying to cloud, adding blocking if no callback specified
94 this.copyDirectoryToCloud(path, contents[i], path, callback); 69 if (!callback) {
70 //TODO: Add blocking logic here