diff options
Diffstat (limited to 'js')
-rwxr-xr-x | js/document/html-document.js | 4 | ||||
-rw-r--r-- | js/io/system/ninjalibrary.json | 4 | ||||
-rw-r--r-- | js/mediators/io-mediator.js | 70 |
3 files changed, 69 insertions, 9 deletions
diff --git a/js/document/html-document.js b/js/document/html-document.js index d4db6e2f..be1f89e2 100755 --- a/js/document/html-document.js +++ b/js/document/html-document.js | |||
@@ -905,7 +905,7 @@ exports.HTMLDocument = Montage.create(TextDocument, { | |||
905 | } | 905 | } |
906 | } | 906 | } |
907 | } | 907 | } |
908 | return {mode: 'html', document: this._userDocument, webgl: this.glData, styles: styles, head: this._templateDocument.head.innerHTML, body: this._templateDocument.body.innerHTML}; | 908 | return {mode: 'html', document: this._userDocument, mjs: this._userComponents, webgl: this.glData, styles: styles, head: this._templateDocument.head.innerHTML, body: this._templateDocument.body.innerHTML}; |
909 | } else if (this.currentView === "code"){ | 909 | } else if (this.currentView === "code"){ |
910 | //TODO: Would this get call when we are in code of HTML? | 910 | //TODO: Would this get call when we are in code of HTML? |
911 | } else { | 911 | } else { |
@@ -928,7 +928,7 @@ exports.HTMLDocument = Montage.create(TextDocument, { | |||
928 | } | 928 | } |
929 | } | 929 | } |
930 | } | 930 | } |
931 | return {mode: 'html', document: this._userDocument, webgl: this.glData, css: css, head: this._templateDocument.head.innerHTML, body: this._templateDocument.body.innerHTML}; | 931 | return {mode: 'html', document: this._userDocument, mjs: this._userComponents, webgl: this.glData, css: css, head: this._templateDocument.head.innerHTML, body: this._templateDocument.body.innerHTML}; |
932 | } else if (this.currentView === "code"){ | 932 | } else if (this.currentView === "code"){ |
933 | //TODO: Would this get call when we are in code of HTML? | 933 | //TODO: Would this get call when we are in code of HTML? |
934 | } else { | 934 | } else { |
diff --git a/js/io/system/ninjalibrary.json b/js/io/system/ninjalibrary.json index 00ee7ed2..42505e38 100644 --- a/js/io/system/ninjalibrary.json +++ b/js/io/system/ninjalibrary.json | |||
@@ -1,6 +1,6 @@ | |||
1 | { | 1 | { |
2 | "libraries": [ | 2 | "libraries": [ |
3 | {"name": "Montage", "path": "/node_modules/descriptor.json", "version": "0.6.0.0"}, | 3 | {"name": "Montage", "path": "/node_modules/descriptor.json", "version": "0.7.0.0"}, |
4 | {"name": "RDGE", "path": "/assets/descriptor.json", "version": "0.5.1.0"} | 4 | {"name": "RDGE", "path": "/assets/descriptor.json", "version": "0.5.1.1"} |
5 | ] | 5 | ] |
6 | } \ No newline at end of file | 6 | } \ No newline at end of file |
diff --git a/js/mediators/io-mediator.js b/js/mediators/io-mediator.js index d81f4543..01879bac 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,59 @@ 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 | var mjsCounter = 0, mjsComponents = [], temp = TemplateCreator.create(); | ||
467 | for (var m in template.mjs) { | ||
468 | mjsComponents.push(template.mjs[m]); | ||
469 | mjsCounter++; | ||
470 | } | ||
471 | |||
472 | // console.log(mjsComponents); | ||
473 | |||
474 | //console.log(TemplateCreator.) | ||
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 | ||
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 | |||
454 | //Cleaning URLs from HTML | 514 | //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)); | 515 | 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 | // | 516 | // |