diff options
author | Valerio Virgillito | 2012-03-21 13:30:51 -0700 |
---|---|---|
committer | Valerio Virgillito | 2012-03-21 13:30:51 -0700 |
commit | 21a88a93f039bb7470c10d77efc01e549c4ae6dc (patch) | |
tree | 44c53c6911b71c1fd749dd733a02cce3d8ce318a /js/mediators/io-mediator.js | |
parent | 3888d7bce9bc9936cad2db4ed6e2f05b87265515 (diff) | |
parent | 44b66216531a872f8dba6a11f1cf13c612c90247 (diff) | |
download | ninja-21a88a93f039bb7470c10d77efc01e549c4ae6dc.tar.gz |
Merge branch 'refs/heads/FileIO-Montage-Components' into montage-integration
Diffstat (limited to 'js/mediators/io-mediator.js')
-rw-r--r-- | js/mediators/io-mediator.js | 72 |
1 files changed, 67 insertions, 5 deletions
diff --git a/js/mediators/io-mediator.js b/js/mediators/io-mediator.js index d81f4543..18a517a5 100644 --- a/js/mediators/io-mediator.js +++ b/js/mediators/io-mediator.js | |||
@@ -6,10 +6,11 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot | |||
6 | 6 | ||
7 | //////////////////////////////////////////////////////////////////////// | 7 | //////////////////////////////////////////////////////////////////////// |
8 | // | 8 | // |
9 | var Montage = require("montage/core/core").Montage, | 9 | var Montage = require("montage/core/core").Montage, |
10 | Component = require("montage/ui/component").Component, | 10 | Component = require("montage/ui/component").Component, |
11 | FileIo = require("js/io/system/fileio").FileIo, | 11 | FileIo = require("js/io/system/fileio").FileIo, |
12 | ProjectIo = require("js/io/system/projectio").ProjectIo; | 12 | ProjectIo = require("js/io/system/projectio").ProjectIo, |
13 | TemplateCreator = require("node_modules/tools/template-creator").TemplateCreator; | ||
13 | //////////////////////////////////////////////////////////////////////// | 14 | //////////////////////////////////////////////////////////////////////// |
14 | // | 15 | // |
15 | exports.IoMediator = Montage.create(Component, { | 16 | exports.IoMediator = Montage.create(Component, { |
@@ -369,7 +370,7 @@ exports.IoMediator = Montage.create(Component, { | |||
369 | } | 370 | } |
370 | } | 371 | } |
371 | // | 372 | // |
372 | var json, matchingtags = [], webgltag, scripts = template.document.content.document.getElementsByTagName('script'), webgljstag, webgllibtag, webglrdgetag; | 373 | var json, matchingtags = [], webgltag, scripts = template.document.content.document.getElementsByTagName('script'), webgljstag, webgllibtag, webglrdgetag, mjstag, mjslibtag; |
373 | // | 374 | // |
374 | for (var i in scripts) { | 375 | for (var i in scripts) { |
375 | if (scripts[i].getAttribute) { | 376 | if (scripts[i].getAttribute) { |
@@ -385,6 +386,12 @@ exports.IoMediator = Montage.create(Component, { | |||
385 | if (scripts[i].getAttribute('data-ninja-webgl-rdge') !== null) { | 386 | if (scripts[i].getAttribute('data-ninja-webgl-rdge') !== null) { |
386 | webglrdgetag = scripts[i]; // TODO: Add logic to delete unneccesary tags | 387 | webglrdgetag = scripts[i]; // TODO: Add logic to delete unneccesary tags |
387 | } | 388 | } |
389 | if (scripts[i].getAttribute('type') !== 'text/montage-serialization') { | ||
390 | mjstag = scripts[i]; // TODO: Add logic to delete unneccesary tags | ||
391 | } | ||
392 | if (scripts[i].getAttribute('data-mjs-lib') !== null) { | ||
393 | mjslibtag = scripts[i]; // TODO: Add logic to delete unneccesary tags | ||
394 | } | ||
388 | } | 395 | } |
389 | } | 396 | } |
390 | // | 397 | // |
@@ -451,6 +458,61 @@ function loadWebGL (e) {\n\ | |||
451 | //Setting string in tag | 458 | //Setting string in tag |
452 | webgltag.innerHTML = json; | 459 | webgltag.innerHTML = json; |
453 | } | 460 | } |
461 | |||
462 | |||
463 | |||
464 | |||
465 | |||
466 | |||
467 | |||
468 | // | ||
469 | var mjsCounter = 0, mjsComponents = [], temp = TemplateCreator.create(); | ||
470 | // | ||
471 | for (var m in template.mjs) { | ||
472 | mjsComponents.push(template.mjs[m]); | ||
473 | mjsCounter++; | ||
474 | } | ||
475 | // | ||
476 | if (template.mjs && mjsCounter > 0) { | ||
477 | var mjsDirName, mjsVersion, | ||
478 | mjscode = temp.initWithHeadAndBodyElements(template.document.content.document.documentElement.head, template.document.content.document.documentElement.body, mjsComponents)._ownerSerialization; | ||
479 | //Copy Montage library if needed | ||
480 | for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { | ||
481 | //Checking for Montage library to be available | ||
482 | if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'Montage') { | ||
483 | mjsDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name+this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase(); | ||
484 | mjsVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version; | ||
485 | this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.document.root, mjsDirName); | ||
486 | //TODO: Fix to allow no overwrite and nested locations | ||
487 | var packjson = this.application.ninja.coreIoApi.createFile({uri: template.document.root+'package.json', contents: '{"mappings": {"montage": "'+mjsDirName+'/"}}'}); | ||
488 | } else { | ||
489 | //TODO: Error handle no available library to copy | ||
490 | } | ||
491 | } | ||
492 | // | ||
493 | if (!mjslibtag) { | ||
494 | mjslibtag = template.document.content.document.createElement('script'); | ||
495 | mjslibtag.setAttribute('type', 'text/javascript'); | ||
496 | mjslibtag.setAttribute('src', mjsDirName+'/montage.js'); | ||
497 | mjslibtag.setAttribute('data-mjs-lib', 'true'); | ||
498 | template.document.content.document.head.appendChild(mjslibtag); | ||
499 | } | ||
500 | // | ||
501 | if (!mjstag) { | ||
502 | mjstag = template.document.content.document.createElement('script'); | ||
503 | mjstag.setAttribute('type', 'text/montage-serialization'); | ||
504 | template.document.content.document.head.appendChild(mjstag); | ||
505 | } | ||
506 | // | ||
507 | mjstag.innerHTML = mjscode; | ||
508 | } | ||
509 | |||
510 | |||
511 | |||
512 | |||
513 | |||
514 | |||
515 | |||
454 | //Cleaning URLs from HTML | 516 | //Cleaning URLs from HTML |
455 | var cleanHTML = template.document.content.document.documentElement.outerHTML.replace(/(\b(?:(?:https?|ftp|file|[A-Za-z]+):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$]))/gi, parseNinjaRootUrl.bind(this)); | 517 | var cleanHTML = template.document.content.document.documentElement.outerHTML.replace(/(\b(?:(?:https?|ftp|file|[A-Za-z]+):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$]))/gi, parseNinjaRootUrl.bind(this)); |
456 | // | 518 | // |