aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorValerio Virgillito2012-03-21 13:30:51 -0700
committerValerio Virgillito2012-03-21 13:30:51 -0700
commit21a88a93f039bb7470c10d77efc01e549c4ae6dc (patch)
tree44c53c6911b71c1fd749dd733a02cce3d8ce318a /js
parent3888d7bce9bc9936cad2db4ed6e2f05b87265515 (diff)
parent44b66216531a872f8dba6a11f1cf13c612c90247 (diff)
downloadninja-21a88a93f039bb7470c10d77efc01e549c4ae6dc.tar.gz
Merge branch 'refs/heads/FileIO-Montage-Components' into montage-integration
Diffstat (limited to 'js')
-rwxr-xr-xjs/document/html-document.js4
-rw-r--r--js/io/system/ninjalibrary.json4
-rw-r--r--js/mediators/io-mediator.js72
3 files changed, 71 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..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//
9var Montage = require("montage/core/core").Montage, 9var 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//
15exports.IoMediator = Montage.create(Component, { 16exports.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 //