aboutsummaryrefslogtreecommitdiff
path: root/js/io
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-02-09 15:02:16 -0800
committerJose Antonio Marquez2012-02-09 15:02:16 -0800
commit74efc1238f51e9c0ffdeffe2a349f66011ef9f17 (patch)
treee50598ebfe139b7cda4a3ff9702d7d3243cbd6b2 /js/io
parent44c65bc6bbd5b754f9073f93a3afca8dd9acc864 (diff)
downloadninja-74efc1238f51e9c0ffdeffe2a349f66011ef9f17.tar.gz
File Open
Adding file open functionality.
Diffstat (limited to 'js/io')
-rwxr-xr-xjs/io/system/coreioapi.js10
-rwxr-xr-xjs/io/system/fileio.js68
2 files changed, 73 insertions, 5 deletions
diff --git a/js/io/system/coreioapi.js b/js/io/system/coreioapi.js
index d9505cd6..f62133ac 100755
--- a/js/io/system/coreioapi.js
+++ b/js/io/system/coreioapi.js
@@ -92,9 +92,15 @@ exports.CoreIoApi = Montage.create(Component, {
92 //TODO: Remove test 92 //TODO: Remove test
93 //this.ninjaLibrary.copyLibToCloud('Users/kgq387/Desktop/Ninja Cloud/Disk', 'montage0.6.0'); 93 //this.ninjaLibrary.copyLibToCloud('Users/kgq387/Desktop/Ninja Cloud/Disk', 'montage0.6.0');
94 //this.ninjaLibrary.deleteLibraries(); 94 //this.ninjaLibrary.deleteLibraries();
95 window.hack = function (name, type) { 95 /*
96window.hack = function (name, type) {
96 this.application.ninja.ioMediator.fileNew('Users/kgq387/Desktop/Ninja Cloud/Disk/'+name+'.'+type, '/js/io/templates/files/'+type+'.txt', function (status) {console.log(status)}); 97 this.application.ninja.ioMediator.fileNew('Users/kgq387/Desktop/Ninja Cloud/Disk/'+name+'.'+type, '/js/io/templates/files/'+type+'.txt', function (status) {console.log(status)});
97 }.bind(this); 98 }.bind(this);
99*/
100 window.hack = function (path) {
101 //
102 this.application.ninja.ioMediator.fileOpen('Users/kgq387/Desktop/Ninja Cloud/Disk/'+path, function (result) {console.log(result)});
103 }.bind(this);
98 } 104 }
99 }, 105 },
100 //////////////////////////////////////////////////////////////////// 106 ////////////////////////////////////////////////////////////////////
@@ -621,7 +627,7 @@ exports.CoreIoApi = Montage.create(Component, {
621 // 200 - the file was read and its contents were returned 627 // 200 - the file was read and its contents were returned
622 // 404 - the file does not exist 628 // 404 - the file does not exist
623 // 500 - unknown server error occurred 629 // 500 - unknown server error occurred
624 openFile: { 630 readFile: {
625 enumerable: false, 631 enumerable: false,
626 value: function(file) { 632 value: function(file) {
627 // 633 //
diff --git a/js/io/system/fileio.js b/js/io/system/fileio.js
index 7bf4d41f..045fa2fd 100755
--- a/js/io/system/fileio.js
+++ b/js/io/system/fileio.js
@@ -64,13 +64,40 @@ exports.FileIo = Montage.create(Component, {
64 // 64 //
65 readFile: { 65 readFile: {
66 enumerable: true, 66 enumerable: true,
67 value: function() { 67 value: function(file) {
68 //Checking for API to be available 68 //Checking for API to be available
69 if (!this.application.ninja.coreIoApi.cloudAvailable()) { 69 if (!this.application.ninja.coreIoApi.cloudAvailable()) {
70 //API not available, no IO action taken 70 //API not available, no IO action taken
71 return null; 71 return null;
72 } 72 }
73 // 73 //Peforming check for file to exist
74 var check = this.application.ninja.coreIoApi.fileExists({uri: file.uri}), status, create, result;
75 //Upon successful check, handling results
76 if (check.success) {
77 //Handling status of check
78 switch (check.status) {
79 case 204:
80 //File exists
81 result = {};
82 result.content = this.application.ninja.coreIoApi.readFile(file).content;
83 result.details = this.infoFile(file);
84 status = check.status;
85 break;
86 case 404:
87 //File does not exists, ready to be created
88 status = check.status;
89 break;
90 default:
91 //Unknown Error
92 status = 500;
93 break;
94 }
95 } else {
96 //Unknown Error
97 status = 500;
98 }
99 //Returning resulting code
100 return {status: status, file: result};
74 } 101 }
75 }, 102 },
76 //////////////////////////////////////////////////////////////////// 103 ////////////////////////////////////////////////////////////////////
@@ -116,14 +143,49 @@ exports.FileIo = Montage.create(Component, {
116 // 143 //
117 infoFile: { 144 infoFile: {
118 enumerable: true, 145 enumerable: true,
119 value: function() { 146 value: function(file) {
120 //Checking for API to be available 147 //Checking for API to be available
121 if (!this.application.ninja.coreIoApi.cloudAvailable()) { 148 if (!this.application.ninja.coreIoApi.cloudAvailable()) {
122 //API not available, no IO action taken 149 //API not available, no IO action taken
123 return null; 150 return null;
124 } 151 }
125 // 152 //
153 var check = this.application.ninja.coreIoApi.fileExists({uri: file.uri}), details;
154 //
155 if (check.success) {
156 //Handling status of check
157 switch (check.status) {
158 case 204:
159 //File exists
160 details = JSON.parse(this.application.ninja.coreIoApi.isFileWritable(file).content);
161 details.uri = file.uri;
162 details.name = this.getFileNameFromPath(file.uri);
163 details.extension = details.name.split('.')[details.name.split('.').length-1];
164 break;
165 case 404:
166 //File does not exists, ready to be created
167
168 break;
169 default:
170 //Unknown Error
171
172 break;
173 }
174 } else {
175 //Unknown Error
176
177 }
178 return details;
126 } 179 }
180 },
181 ////////////////////////////////////////////////////////////////////
182 //
183 getFileNameFromPath : {
184 value: function(path) {
185 path = path.replace(/[/\\]$/g,"");
186 path = path.replace(/\\/g,"/");
187 return path.substr(path.lastIndexOf('/') + 1);
188 }
127 } 189 }
128 //////////////////////////////////////////////////////////////////// 190 ////////////////////////////////////////////////////////////////////
129 //////////////////////////////////////////////////////////////////// 191 ////////////////////////////////////////////////////////////////////