diff options
-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 | ||||
-rw-r--r-- | node_modules/descriptor.json | 9 | ||||
-rw-r--r-- | node_modules/tools/template-creator.js | 12 |
5 files changed, 80 insertions, 19 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 | // |
diff --git a/node_modules/descriptor.json b/node_modules/descriptor.json index c460066c..d5bb81f3 100644 --- a/node_modules/descriptor.json +++ b/node_modules/descriptor.json | |||
@@ -169,6 +169,7 @@ | |||
169 | "ui/component.js", | 169 | "ui/component.js", |
170 | "ui/composer/composer.js", | 170 | "ui/composer/composer.js", |
171 | "ui/composer/long-press-composer.js", | 171 | "ui/composer/long-press-composer.js", |
172 | "ui/composer/press-composer.js", | ||
172 | "ui/composer/swipe-composer.js", | 173 | "ui/composer/swipe-composer.js", |
173 | "ui/composer/translate-composer.js", | 174 | "ui/composer/translate-composer.js", |
174 | "ui/condition.reel/condition.js", | 175 | "ui/condition.reel/condition.js", |
@@ -219,21 +220,19 @@ | |||
219 | "ui/popup/popup.reel/popup.css", | 220 | "ui/popup/popup.reel/popup.css", |
220 | "ui/popup/popup.reel/popup.html", | 221 | "ui/popup/popup.reel/popup.html", |
221 | "ui/popup/popup.reel/popup.js", | 222 | "ui/popup/popup.reel/popup.js", |
222 | "ui/progress.reel/progress.css", | ||
223 | "ui/progress.reel/progress.html", | ||
224 | "ui/progress.reel/progress.js", | 223 | "ui/progress.reel/progress.js", |
225 | "ui/progress.reel/rule.png", | ||
226 | "ui/progress.reel/scroll.png", | ||
227 | "ui/radio-button.reel/radio-button.js", | 224 | "ui/radio-button.reel/radio-button.js", |
228 | "ui/range-input.reel/range-input.js", | 225 | "ui/range-input.reel/range-input.js", |
229 | "ui/repetition.reel/repetition.js", | 226 | "ui/repetition.reel/repetition.js", |
230 | "ui/scroll-bars.reel/scroll-bars.html", | 227 | "ui/scroll-bars.reel/scroll-bars.html", |
231 | "ui/scroll-bars.reel/scroll-bars.js", | 228 | "ui/scroll-bars.reel/scroll-bars.js", |
232 | "ui/scroll.js", | ||
233 | "ui/scroller.reel/scroller.html", | 229 | "ui/scroller.reel/scroller.html", |
234 | "ui/scroller.reel/scroller.js", | 230 | "ui/scroller.reel/scroller.js", |
235 | "ui/scrollview.reel/scrollview.js", | 231 | "ui/scrollview.reel/scrollview.js", |
236 | "ui/select-input.reel/select-input.js", | 232 | "ui/select-input.reel/select-input.js", |
233 | "ui/skeleton/range-input.reel/range-input.css", | ||
234 | "ui/skeleton/range-input.reel/range-input.html", | ||
235 | "ui/skeleton/range-input.reel/range-input.js", | ||
237 | "ui/slot.reel/slot.js", | 236 | "ui/slot.reel/slot.js", |
238 | "ui/substitution.reel/substitution.js", | 237 | "ui/substitution.reel/substitution.js", |
239 | "ui/tabs.reel/tabs.css", | 238 | "ui/tabs.reel/tabs.css", |
diff --git a/node_modules/tools/template-creator.js b/node_modules/tools/template-creator.js index 6b50cc1e..ba4cdc7a 100644 --- a/node_modules/tools/template-creator.js +++ b/node_modules/tools/template-creator.js | |||
@@ -31,10 +31,10 @@ var TemplateCreator = exports.TemplateCreator = Montage.create(Template, /** @le | |||
31 | }, | 31 | }, |
32 | 32 | ||
33 | initWithHeadAndBodyElements: { | 33 | initWithHeadAndBodyElements: { |
34 | value: function(head, body, montageJsPath) { | 34 | value: function(head, body, components, montageJsPath) { |
35 | var serializer = this.serializer, | 35 | var serializer = this.serializer, |
36 | objects = {}, | 36 | objects = {}, |
37 | components = {}, | 37 | //components = {}, |
38 | doc, | 38 | doc, |
39 | script, | 39 | script, |
40 | self = this; | 40 | self = this; |
@@ -42,7 +42,8 @@ var TemplateCreator = exports.TemplateCreator = Montage.create(Template, /** @le | |||
42 | this._objectNamesIndex = {}; | 42 | this._objectNamesIndex = {}; |
43 | doc = this._document = document.implementation.createHTMLDocument(""); | 43 | doc = this._document = document.implementation.createHTMLDocument(""); |
44 | 44 | ||
45 | function copyNode(sourceNode, targetNo |