diff options
Diffstat (limited to 'js/mediators/io-mediator.js')
-rw-r--r-- | js/mediators/io-mediator.js | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/js/mediators/io-mediator.js b/js/mediators/io-mediator.js index 733e44b2..e763c67c 100644 --- a/js/mediators/io-mediator.js +++ b/js/mediators/io-mediator.js | |||
@@ -39,6 +39,12 @@ exports.IoMediator = Montage.create(Component, { | |||
39 | enumerable: false, | 39 | enumerable: false, |
40 | value: ProjectIo | 40 | value: ProjectIo |
41 | }, | 41 | }, |
42 | //////////////////////////////////////////////////////////////////// | ||
43 | // | ||
44 | appTemplatesUrl: { | ||
45 | enumerable: false, | ||
46 | value: new RegExp(chrome.extension.getURL('js/document/templates/montage-html/'), 'gi') | ||
47 | }, | ||
42 | //////////////////////////////////////////////////////////////////// | 48 | //////////////////////////////////////////////////////////////////// |
43 | // | 49 | // |
44 | fileNew: { | 50 | fileNew: { |
@@ -209,8 +215,7 @@ exports.IoMediator = Montage.create(Component, { | |||
209 | template.document.content.document.head.innerHTML = template.head; | 215 | template.document.content.document.head.innerHTML = template.head; |
210 | //Getting all CSS (style or link) tags | 216 | //Getting all CSS (style or link) tags |
211 | var styletags = template.document.content.document.getElementsByTagName('style'), | 217 | var styletags = template.document.content.document.getElementsByTagName('style'), |
212 | linktags = template.document.content.document.getElementsByTagName('link'), | 218 | linktags = template.document.content.document.getElementsByTagName('link'); |
213 | url = new RegExp(chrome.extension.getURL('js/document/templates/montage-html/'), 'gi'); //TODO: Make public into var | ||
214 | //Looping through link tags and removing file recreated elements | 219 | //Looping through link tags and removing file recreated elements |
215 | for (var j in styletags) { | 220 | for (var j in styletags) { |
216 | if (styletags[j].getAttribute) { | 221 | if (styletags[j].getAttribute) { |
@@ -260,6 +265,17 @@ exports.IoMediator = Montage.create(Component, { | |||
260 | var styleCounter = 0, | 265 | var styleCounter = 0, |
261 | docStyles = template.document.content.document.getElementsByTagName('style'), | 266 | docStyles = template.document.content.document.getElementsByTagName('style'), |
262 | docLinks = template.document.content.document.getElementsByTagName('link'); | 267 | docLinks = template.document.content.document.getElementsByTagName('link'); |
268 | //Removing Ninja Data Attributes | ||
269 | for (var n in docLinks) { | ||
270 | if (docLinks[n].attributes) { | ||
271 | for (var m in docLinks[n].attributes) { | ||
272 | if (docLinks[n].attributes[m].name && docLinks[n].attributes[m].name.indexOf('data-ninja')!=-1) { | ||
273 | docLinks[n].removeAttribute(docLinks[n].attributes[m].name); | ||
274 | } | ||
275 | } | ||
276 | } | ||
277 | } | ||
278 | // | ||
263 | for(var i in template.css) { | 279 | for(var i in template.css) { |
264 | if (template.css[i].ownerNode) { | 280 | if (template.css[i].ownerNode) { |
265 | if (template.css[i].ownerNode.getAttribute) { | 281 | if (template.css[i].ownerNode.getAttribute) { |
@@ -268,6 +284,22 @@ exports.IoMediator = Montage.create(Component, { | |||
268 | docStyles[styleCounter].innerHTML = this.getCssFromRules(template.css[i].cssRules); | 284 | docStyles[styleCounter].innerHTML = this.getCssFromRules(template.css[i].cssRules); |
269 | styleCounter++; | 285 | styleCounter++; |
270 | } else { | 286 | } else { |
287 | //Checking for attributes to be added to tag upon saving | ||
288 | for (var k in docLinks) { | ||
289 | if (docLinks[k].getAttribute) { | ||
290 | if (docLinks[k].getAttribute('href') && ('/'+docLinks[k].getAttribute('href')) === template.css[i].ownerNode.getAttribute('data-ninja-file-url')) { | ||
291 | for (var l in template.css[i].ownerNode.attributes) { | ||
292 | if (template.css[i].ownerNode.attributes[l].value) { | ||
293 | if (template.css[i].ownerNode.attributes[l].name.indexOf('data-ninja')!=-1) { | ||
294 | //Ninja attribute... | ||
295 | } else { | ||
296 | docLinks[k].setAttribute(template.css[i].ownerNode.attributes[l].name, template.css[i].ownerNode.attributes[l].value); | ||
297 | } | ||
298 | } | ||
299 | } | ||
300 | } | ||
301 | } | ||
302 | } | ||
271 | //Saving data from rules array converted to string into <link> file | 303 | //Saving data from rules array converted to string into <link> file |
272 | var save = this.fio.saveFile({uri: template.css[i].ownerNode.getAttribute('data-ninja-uri'), contents: this.getCssFromRules(template.css[i].cssRules)}); | 304 | var save = this.fio.saveFile({uri: template.css[i].ownerNode.getAttribute('data-ninja-uri'), contents: this.getCssFromRules(template.css[i].cssRules)}); |
273 | } | 305 | } |
@@ -318,7 +350,7 @@ exports.IoMediator = Montage.create(Component, { | |||
318 | webgltag.innerHTML = json; | 350 | webgltag.innerHTML = json; |
319 | } | 351 | } |
320 | // | 352 | // |
321 | return this.getPrettyHtml(template.document.content.document.documentElement.outerHTML.replace(url, '')); | 353 | return this.getPrettyHtml(template.document.content.document.documentElement.outerHTML.replace(this.appTemplatesUrl, '')); |
322 | } | 354 | } |
323 | }, | 355 | }, |
324 | //////////////////////////////////////////////////////////////////// | 356 | //////////////////////////////////////////////////////////////////// |
@@ -327,7 +359,7 @@ exports.IoMediator = Montage.create(Component, { | |||
327 | enumerable: false, | 359 | enumerable: false, |
328 | value: function (list) { | 360 | value: function (list) { |
329 | //Variable to store CSS definitions | 361 | //Variable to store CSS definitions |
330 | var i, str, url, css = ''; | 362 | var i, str, css = ''; |
331 | //Looping through list | 363 | //Looping through list |
332 | if (list && list.length > 0) { | 364 | if (list && list.length > 0) { |
333 | //Adding each list item to string and also adding breaks | 365 | //Adding each list item to string and also adding breaks |
@@ -335,10 +367,8 @@ exports.IoMediator = Montage.create(Component, { | |||
335 | css += list[i].cssText; | 367 | css += list[i].cssText; |
336 | } | 368 | } |
337 | } | 369 | } |
338 | //TODO: Add better logic for creating this string | ||
339 | url = new RegExp(chrome.extension.getURL('js/document/templates/montage-html/'), 'gi'); | ||
340 | //Returning the CSS string | 370 | //Returning the CSS string |
341 | return this.getPrettyCss(css.replace(url, '')); | 371 | return this.getPrettyCss(css.replace(this.appTemplatesUrl, '')); |
342 | } | 372 | } |
343 | }, | 373 | }, |
344 | //////////////////////////////////////////////////////////////////// | 374 | //////////////////////////////////////////////////////////////////// |