aboutsummaryrefslogtreecommitdiff
path: root/js/mediators/io-mediator.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/mediators/io-mediator.js')
-rw-r--r--js/mediators/io-mediator.js47
1 files changed, 38 insertions, 9 deletions
diff --git a/js/mediators/io-mediator.js b/js/mediators/io-mediator.js
index 95e775a0..e9958ec3 100644
--- a/js/mediators/io-mediator.js
+++ b/js/mediators/io-mediator.js
@@ -86,6 +86,7 @@ exports.IoMediator = Montage.create(Component, {
86 case 204: 86 case 204:
87 //Creating and formatting result object for callbak 87 //Creating and formatting result object for callbak
88 result = read.file.details; 88 result = read.file.details;
89 result.root = read.file.details.uri.replace(read.file.details.name, "");
89 //Checking for type of content to returns 90 //Checking for type of content to returns
90 if (result.extension !== 'html' && result.extension !== 'htm') { 91 if (result.extension !== 'html' && result.extension !== 'htm') {
91 //Simple string 92 //Simple string
@@ -142,12 +143,7 @@ exports.IoMediator = Montage.create(Component, {
142 // 143 //
143 switch (file.mode) { 144 switch (file.mode) {
144 case 'html': 145 case 'html':
145 file.document.content.document.body.innerHTML = file.body; 146 contents = this.parseNinjaTemplateToHtml(file);
146 file.document.content.document.head.innerHTML = file.head;
147 if (file.style) {
148 file.document.content.document.head.getElementsByTagName('style')[0].innerHTML = this.getCssFromRules(file.style.cssRules);
149 }
150 contents = file.document.content.document.documentElement.outerHTML;
151 break; 147 break;
152 default: 148 default:
153 contents = file.content; 149 contents = file.content;
@@ -155,9 +151,8 @@ exports.IoMediator = Montage.create(Component, {
155 } 151 }
156 // 152 //
157 save = this.fio.saveFile({uri: file.document.uri, contents: contents}); 153 save = this.fio.saveFile({uri: file.document.uri, contents: contents});
158 if(save.status === 204){ 154 //
159 callback(); 155 if (callback) callback(save);
160 }
161 } 156 }
162 }, 157 },
163 //////////////////////////////////////////////////////////////////// 158 ////////////////////////////////////////////////////////////////////
@@ -170,6 +165,14 @@ exports.IoMediator = Montage.create(Component, {
170 }, 165 },
171 //////////////////////////////////////////////////////////////////// 166 ////////////////////////////////////////////////////////////////////
172 // 167 //
168 fileDelete: {
169 enumerable: false,
170 value: function (file, callback) {
171 //
172 }
173 },
174 ////////////////////////////////////////////////////////////////////
175 //
173 parseHtmlToNinjaTemplate: { 176 parseHtmlToNinjaTemplate: {
174 enumerable: false, 177 enumerable: false,
175 value: function (html) { 178 value: function (html) {
@@ -182,6 +185,32 @@ exports.IoMediator = Montage.create(Component, {
182 } 185 }
183 }, 186 },
184 //////////////////////////////////////////////////////////////////// 187 ////////////////////////////////////////////////////////////////////
188 //TODO: Expand to allow more templates
189 parseNinjaTemplateToHtml: {
190 enumerable: false,
191 value: function (template) {
192 //
193 template.document.content.document.body.innerHTML = template.body;
194 template.document.content.document.head.innerHTML = template.head;
195 //
196 if (template.webgl.length > 0) {
197 for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) {
198 if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'Assets' || this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'RDGE') {
199 this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.document.root, (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name+this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase());
200 }
201 }
202
203 //this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(path, libname);
204 //console.log(this.application.ninja.coreIoApi.ninjaLibrary.libs);
205 }
206 //TODO: Remove temp fix for styles
207 if (template.style) {
208 template.document.content.document.head.getElementsByTagName('style')[0].innerHTML = this.getCssFromRules(template.style.cssRules);
209 }
210 return template.document.content.document.documentElement.outerHTML;
211 }
212 },
213 ////////////////////////////////////////////////////////////////////
185 //Method to return a string from CSS rules (to be saved to a file) 214 //Method to return a string from CSS rules (to be saved to a file)
186 getCssFromRules: { 215 getCssFromRules: {
187 enumerable: false, 216 enumerable: false,