diff options
Diffstat (limited to 'js/io/system/fileio.js')
-rwxr-xr-x[-rw-r--r--] | js/io/system/fileio.js | 220 |
1 files changed, 181 insertions, 39 deletions
diff --git a/js/io/system/fileio.js b/js/io/system/fileio.js index 1d76a91b..2c49e849 100644..100755 --- a/js/io/system/fileio.js +++ b/js/io/system/fileio.js | |||
@@ -4,21 +4,188 @@ 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 | //Required modules | 7 | /* ///////////////////////////////////////////////////////////////////// |
8 | var Serializer = require("montage/core/serializer").Serializer; | 8 | //////////////////////////////////////////////////////////////////////// |
9 | NOTES: | ||
10 | |||
11 | For newFile, only the 'uri' is required, if contents is empty, such | ||
12 | empty file will be created. 'contents' should be a string to be saved | ||
13 | as the file. 'contentType' is the mime type of the file. | ||
14 | |||
15 | Core API reference in NINJA: this.application.ninja.coreIoApi | ||
16 | |||
17 | //////////////////////////////////////////////////////////////////////// | ||
18 | ///////////////////////////////////////////////////////////////////// */ | ||
19 | // | ||
20 | var Montage = require("montage/core/core").Montage; | ||
21 | //////////////////////////////////////////////////////////////////////// | ||
9 | //Exporting as File I/O | 22 | //Exporting as File I/O |
10 | exports.FileIo = (require("montage/core/core").Montage).create(Object.prototype, { | 23 | exports.FileIo = Montage.create(Object.prototype, { |
11 | /* | ||
12 | create: { | ||
13 | enumerable: true, | ||
14 | value: function (type) { | ||
15 | // | ||
16 | } | ||
17 | }, | ||
18 | */ | ||
19 | //////////////////////////////////////////////////////////////////// | 24 | //////////////////////////////////////////////////////////////////// |
25 | //newFile Object (*required): {uri*, contents, contentType} | ||
26 | //Return codes | ||
27 | // 204: File exists | 400: File exists | 404: File does not exists | ||
28 | // 201: File succesfully created | 500: Unknown | undefined: Unknown | ||
29 | newFile: { | ||
30 | enumerable: true, | ||
31 | value: function(file) { | ||
32 | //Checking for API to be available | ||
33 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | ||
34 | //API not available, no IO action taken | ||
35 | return null; | ||
36 | } | ||
37 | //Peforming check for file to exist | ||
38 | var check = this.application.ninja.coreIoApi.fileExists(file.uri), status, create; | ||
39 | //Upon successful check, handling results | ||
40 | if (check.success) { | ||
41 | //Handling status of check | ||
42 | switch (check.status) { | ||
43 | case 204: | ||
44 | //Storing status to be returned (for UI handling) | ||
45 | status = check.status; | ||
46 | break; | ||
47 | case 404: | ||
48 | //File does not exists, ready to be created | ||
49 | create = this.application.ninja.coreIoApi.createFile(file); | ||
50 | //Storing status to be returned (for UI handling) | ||
51 | if (create.success) { | ||
52 | status = check.status; | ||
53 | } | ||
54 | break; | ||
55 | default: | ||
56 | //Unknown Error | ||
57 | break; | ||
58 | } | ||
59 | } else { | ||
60 | //Unknown Error | ||
61 | } | ||
62 | //Returning resulting code | ||
63 | return status; | ||
64 | } | ||
65 | }, | ||
66 | //////////////////////////////////////////////////////////////////// | ||
20 | // | 67 | // |
21 | open: { | 68 | readFile: { |
69 | enumerable: true, | ||
70 | value: function() { | ||
71 | //Checking for API to be available | ||
72 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | ||
73 | //API not available, no IO action taken | ||
74 | return null; | ||
75 | } | ||
76 | // | ||
77 | } | ||
78 | }, | ||
79 | //////////////////////////////////////////////////////////////////// | ||
80 | // | ||
81 | saveFile: { | ||
82 | enumerable: true, | ||
83 | value: function() { | ||
84 | //Checking for API to be available | ||
85 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | ||
86 | //API not available, no IO action taken | ||
87 | return null; | ||
88 | } | ||
89 | // | ||
90 | } | ||
91 | }, | ||
92 | //////////////////////////////////////////////////////////////////// | ||
93 | // | ||
94 | deleteFile: { | ||
95 | enumerable: true, | ||
96 | value: function() { | ||
97 | //Checking for API to be available | ||
98 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | ||
99 | //API not available, no IO action taken | ||
100 | return null; | ||
101 | } | ||
102 | // | ||
103 | } | ||
104 | }, | ||
105 | //////////////////////////////////////////////////////////////////// | ||
106 | // | ||
107 | copyFile: { | ||
108 | enumerable: true, | ||
109 | value: function() { | ||
110 | //Checking for API to be available | ||
111 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | ||
112 | //API not available, no IO action taken | ||
113 | return null; | ||
114 | } | ||
115 | // | ||
116 | } | ||
117 | }, | ||
118 | //////////////////////////////////////////////////////////////////// | ||
119 | // | ||
120 | infoFile: { | ||
121 | enumerable: true, | ||
122 | value: function() { | ||
123 | //Checking for API to be available | ||
124 | if (!this.application.ninja.coreIoApi.cloudAvailable()) { | ||
125 | //API not available, no IO action taken | ||
126 | return null; | ||
127 | } | ||
128 | // | ||
129 | } | ||
130 | } | ||
131 | //////////////////////////////////////////////////////////////////// | ||
132 | //////////////////////////////////////////////////////////////////// | ||
133 | |||
134 | |||
135 | |||
136 | |||
137 | |||
138 | |||
139 | |||
140 | |||
141 | |||
142 | |||
143 | |||
144 | |||
145 | |||
146 | |||
147 | |||
148 | |||
149 | |||
150 | |||
151 | |||
152 | |||
153 | |||
154 | |||
155 | |||
156 | |||
157 | |||
158 | |||
159 | |||
160 | |||
161 | |||
162 | |||
163 | |||
164 | |||
165 | |||
166 | |||
167 | |||
168 | |||
169 | |||
170 | |||
171 | |||
172 | |||
173 | |||
174 | |||
175 | |||
176 | |||
177 | |||
178 | |||
179 | |||
180 | |||
181 | |||
182 | |||
183 | |||
184 | |||
185 | |||
186 | |||
187 | /* | ||
188 | open: { | ||
22 | enumerable: true, | 189 | enumerable: true, |
23 | value: function(doc, type, uri, server) { | 190 | value: function(doc, type, uri, server) { |
24 | // | 191 | // |
@@ -70,32 +237,7 @@ create: { | |||
70 | enumerable: true, | 237 | enumerable: true, |
71 | value: function(type, id, components) { | 238 | value: function(type, id, components) { |
72 | 239 | ||
73 | /* | ||
74 | |||
75 | GETS HTML IN LOADED DOCUMENT | ||
76 | document.getElementById('userDocument').contentDocument.documentElement.outerHTML | ||
77 | |||
78 | GETS HTML IN <HEAD> AND <BODY> OR ANYTHING INSIDE <HTML> | ||
79 | document.getElementById('userDocument').contentDocument.documentElement.innerHTML | ||
80 | |||
81 | THE ABOVE METHOD SEEMS TO BE BETTER JUST IN CASE PEOPLE REMOVE THE BODY TAG SINCE NOT REQUIRED IN HTML5 | ||
82 | |||
83 | GETS HTML IN <BODY> ONLY | ||
84 | document.getElementById('userDocument').contentDocument.body.innerHTML | ||
85 | |||
86 | HACK TO GET THE STYLES OF THE ELEMENTS ADDED WHILE DRAWING | ||
87 | document.getElementById('userDocument').contentDocument.styleSheets[document.getElementById('userDocument').contentDocument.styleSheets.length-1] | ||
88 | 240 | ||
89 | CSS SEEMS TO BE RESERVED WHEN APPENDED, MEANING 0 IN THE ARRAY IS ACTUALLY THE LAST DEFINED STYLE IN THE CSS | ||
90 | |||
91 | //GETS CSS RULES APPLIED TO ALL OBJECTS CREATED BY THE APP | ||
92 | document.getElementById('userDocument').contentDocument.styleSheets[document.getElementById('userDocument').contentDocument.styleSheets.length-1].cssRules | ||
93 | |||
94 | document.getElementById('userDocument').contentDocument.getElementById('userHead').innerHTML | ||
95 | document.getElementById('userDocument').contentDocument.getElementById('UserContent').innerHTML | ||
96 | this.getCssFromRules(document.getElementById('userDocument').contentDocument.styleSheets[document.getElementById('userDocument').contentDocument.styleSheets.length-1].cssRules) | ||
97 | |||
98 | */ | ||
99 | 241 | ||
100 | // | 242 | // |
101 | var contents, counter = 0; | 243 | var contents, counter = 0; |
@@ -215,12 +357,12 @@ create: { | |||
215 | return css; | 357 | return css; |
216 | } |