From 6bc07657c8ef58e6efddd383748ecf84d1c789ad Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Thu, 16 Feb 2012 15:58:26 -0800 Subject: Adding new RDGE library data --- js/io/system/ninjalibrary.js | 2 ++ js/io/system/ninjalibrary.json | 3 +-- js/mediators/io-mediator.js | 21 ++++++++++----------- 3 files changed, 13 insertions(+), 13 deletions(-) (limited to 'js') diff --git a/js/io/system/ninjalibrary.js b/js/io/system/ninjalibrary.js index 8c58883a..960bdef9 100644 --- a/js/io/system/ninjalibrary.js +++ b/js/io/system/ninjalibrary.js @@ -145,6 +145,8 @@ exports.NinjaLibrary = Montage.create(Object.prototype, { synchronize: { enumerable: true, value: function(chromeLibs, chrome) { + //TODO: Remove + window.wipeLibrary = this.deleteLibraries.bind(this); // this.chromeApi = chrome; // diff --git a/js/io/system/ninjalibrary.json b/js/io/system/ninjalibrary.json index 05e0a427..a61c30d1 100644 --- a/js/io/system/ninjalibrary.json +++ b/js/io/system/ninjalibrary.json @@ -1,7 +1,6 @@ { "libraries": [ {"name": "Montage", "path": "/node_modules/descriptor.json", "version": "0.6.0.0"}, - {"name": "Assets", "path": "/assets/descriptor.json", "version": "0.5.0.0"}, - {"name": "RDGE", "path": "/js/helper-classes/RDGE/rdge-compiled.js", "version": "0.5.0.0", "file": "rdge-compiled.js"} + {"name": "RDGE", "path": "/assets/descriptor.json", "version": "0.5.0.1"} ] } \ No newline at end of file diff --git a/js/mediators/io-mediator.js b/js/mediators/io-mediator.js index e9958ec3..56869839 100644 --- a/js/mediators/io-mediator.js +++ b/js/mediators/io-mediator.js @@ -143,6 +143,16 @@ exports.IoMediator = Montage.create(Component, { // switch (file.mode) { case 'html': + //Copy webGL library if needed + if (file.webgl.length > 0) { + for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { + //if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'Assets' || this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'RDGE') { + if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'RDGE') { + this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(file.document.root, (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name+this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase()); + } + } + } + // contents = this.parseNinjaTemplateToHtml(file); break; default: @@ -192,17 +202,6 @@ exports.IoMediator = Montage.create(Component, { // template.document.content.document.body.innerHTML = template.body; template.document.content.document.head.innerHTML = template.head; - // - if (template.webgl.length > 0) { - for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { - if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'Assets' || this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'RDGE') { - this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.document.root, (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name+this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase()); - } - } - - //this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(path, libname); - //console.log(this.application.ninja.coreIoApi.ninjaLibrary.libs); - } //TODO: Remove temp fix for styles if (template.style) { template.document.content.document.head.getElementsByTagName('style')[0].innerHTML = this.getCssFromRules(template.style.cssRules); -- cgit v1.2.3 From cfc2a432323d4620b1f4ca2061bbe57f46e7eaf7 Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Thu, 16 Feb 2012 23:10:15 -0800 Subject: Moving Ninja iFrame templates --- js/document/html-document.js | 11 +++- .../templates/montage-html/default_html.css | 75 ++++++++++++++++++++++ js/document/templates/montage-html/index.html | 50 +++++++++++++++ .../templates/montage-html/main.reel/main.js | 55 ++++++++++++++++ js/document/templates/montage-html/package.json | 8 +++ js/document/templates/montage-html/styles.css | 5 ++ 6 files changed, 202 insertions(+), 2 deletions(-) create mode 100755 js/document/templates/montage-html/default_html.css create mode 100755 js/document/templates/montage-html/index.html create mode 100644 js/document/templates/montage-html/main.reel/main.js create mode 100755 js/document/templates/montage-html/package.json create mode 100755 js/document/templates/montage-html/styles.css (limited to 'js') diff --git a/js/document/html-document.js b/js/document/html-document.js index 0c8695fb..a5483f40 100755 --- a/js/document/html-document.js +++ b/js/document/html-document.js @@ -14,7 +14,7 @@ var Montage = require("montage/core/core").Montage, exports.HTMLDocument = Montage.create(TextDocument, { _selectionExclude: { value: null, enumerable: false }, - _htmlTemplateUrl: { value: "user-document-templates/montage-application-cloud/index.html", enumerable: false}, + _htmlTemplateUrl: { value: "js/document/templates/montage-html/index.html", enumerable: false}, _iframe: { value: null, enumerable: false }, _server: { value: null, enumerable: false }, _templateDocument: { value: null, enumerable: false }, @@ -235,6 +235,7 @@ exports.HTMLDocument = Montage.create(TextDocument, { // initialize: { value: function(file, uuid, iframe, callback) { + //console.log('allow'); // this._userDocument = file; // @@ -359,6 +360,8 @@ exports.HTMLDocument = Montage.create(TextDocument, { // handleEvent: { value: function(event){ + //console.log('end'); + //console.log('file content start'); //TODO: Clean up, using for prototyping save this._templateDocument = {}; this._templateDocument.head = this.iframe.contentWindow.document.getElementById("userHead");; @@ -389,6 +392,8 @@ exports.HTMLDocument = Montage.create(TextDocument, { this._stylesheets = this._document.styleSheets; // Entire stlyesheets array this.callback(this); + + //console.log('file content end'); } }.bind(this), 50); @@ -440,7 +445,9 @@ exports.HTMLDocument = Montage.create(TextDocument, { } // Remving this callback and using the callback from the css load - // this.callback(this); + //this.callback(this); + + } }, diff --git a/js/document/templates/montage-html/default_html.css b/js/document/templates/montage-html/default_html.css new file mode 100755 index 00000000..68300edf --- /dev/null +++ b/js/document/templates/montage-html/default_html.css @@ -0,0 +1,75 @@ +/* +This file contains proprietary software owned by Motorola Mobility, Inc.
+No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ + +* { + -webkit-transition-duration: 0s !important; + -webkit-animation-duration: 0s !important; + -webkit-animation-name: none !important; +} + +html{ + overflow:hidden; +} + +body +{ + background: #808080; +} + +#Viewport +{ + margin: 0px; + padding: 0px; + top: 200px; + left: 700px; + /*position: absolute;*/ + /*height: 600px;*/ + /*width: 800px;*/ + opacity: 0.99; + z-index:2; +} + +#stageBG +{ + background: #ffffff; + top: 200px; + left: 700px; + z-index:1; +} + +.stageDimension +{ + position: absolute; + height: 600px; + width: 800px; +} + +.stageView +{ + border: 1px solid black; + -webkit-transform-style: preserve-3d; + -webkit-transform: perspective(1400) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); +} + +.stageContentShadow { + -webkit-box-shadow: 3px 5px 4px rgba(0,0,0,.5); + -moz-box-shadow: 3px 5px 4px rgba(0,0,0,.5); + box-shadow: 3px 5px 4px rgba(0,0,0,.5); +} + +#userHead +{ + display: none; +} + +.global3DSettings { + -webkit-transform-style: preserve-3d; + -webkit-transform: perspective(1400) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); +} + +.elem-red-outline { + outline: red solid thin; +} \ No newline at end of file diff --git a/js/document/templates/montage-html/index.html b/js/document/templates/montage-html/index.html new file mode 100755 index 00000000..8b3d73bb --- /dev/null +++ b/js/document/templates/montage-html/index.html @@ -0,0 +1,50 @@ + + + + + + + + Ninja Prototype + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/js/document/templates/montage-html/main.reel/main.js b/js/document/templates/montage-html/main.reel/main.js new file mode 100644 index 00000000..86871fd3 --- /dev/null +++ b/js/document/templates/montage-html/main.reel/main.js @@ -0,0 +1,55 @@ +/* + This file contains proprietary software owned by Motorola Mobility, Inc.
+ No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+ (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ +var Montage = require("montage/core/core").Montage, + Component = require("montage/ui/component").Component; + +//var Button = ("montage/ui/button.reel").Button; + +exports.Main = Montage.create(Component, { + + hasTemplate: { + value: false + }, + + /** + * Adding window hooks to callback into this object from Ninja. + */ + templateDidLoad: { + value: function(){ + window.addComponent = this.addComponentToUserDocument; +// window.addBinding = this.addBindingToUserDocument; + + // Dispatch event when this template has loaded. + var newEvent = document.createEvent( "CustomEvent" ); + newEvent.initCustomEvent( "userTemplateDidLoad", false, true ); + + document.body.dispatchEvent( newEvent ); + + } + }, + + addComponentToUserDocument:{ + value:function(element, data, callback){ + + var component; + + component = require.async(data.path) + .then(function(component) { + var componentRequire = component[data.name]; + var componentInstance = componentRequire.create(); + + componentInstance.element = element; + componentInstance.deserializedFromTemplate(); + componentInstance.needsDraw = true; + + callback(componentInstance, element); + }) + .end(); + + } + } + +}); \ No newline at end of file diff --git a/js/document/templates/montage-html/package.json b/js/document/templates/montage-html/package.json new file mode 100755 index 00000000..c8bc02fb --- /dev/null +++ b/js/document/templates/montage-html/package.json @@ -0,0 +1,8 @@ +{ + "directories": { + "lib": "" + }, + "mappings": { + "montage": "../../../../node_modules/montage/" + } +} \ No newline at end of file diff --git a/js/document/templates/montage-html/styles.css b/js/document/templates/montage-html/styles.css new file mode 100755 index 00000000..0441c1cf --- /dev/null +++ b/js/document/templates/montage-html/styles.css @@ -0,0 +1,5 @@ +/* + This file contains proprietary software owned by Motorola Mobility, Inc.
+ No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
+ (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. +
*/ \ No newline at end of file -- cgit v1.2.3 From 66af1dd3e5aa80b257ba711600d112752ecaf655 Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Fri, 17 Feb 2012 00:19:48 -0800 Subject: Adding Chrome webRequest intercept Need to add logic to resolve file's actual URL dynamically. --- js/controllers/document-controller.js | 25 +++++++++++++++++++++++++ js/document/html-document.js | 6 ++++-- 2 files changed, 29 insertions(+), 2 deletions(-) (limited to 'js') diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index b1a22c1b..9785d824 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js @@ -56,12 +56,37 @@ DocumentController = exports.DocumentController = Montage.create(Component, { this.eventManager.addEventListener("executeSave", this, false); this.eventManager.addEventListener("recordStyleChanged", this, false); + + + } }, + + + handleWebRequest: { + value: function (request) { + if (request.url.indexOf('js/document/templates/montage-html') !== -1) { + + console.log(request); + + //TODO: Figure out why active document is not available here + + /* +if (request.url.indexOf('calculator.css') !== -1) { + return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+'/calculator/components/calculator.reel/calculator.css'}; + } +*/ + } + } + }, + handleAppLoaded: { value: function() { // + + chrome.webRequest.onBeforeRequest.addListener(this.handleWebRequest.bind(this), {urls: [""]}, ["blocking"]); + } }, diff --git a/js/document/html-document.js b/js/document/html-document.js index a5483f40..16595d14 100755 --- a/js/document/html-document.js +++ b/js/document/html-document.js @@ -355,13 +355,15 @@ exports.HTMLDocument = Montage.create(TextDocument, { }, + + + //////////////////////////////////////////////////////////////////// // handleEvent: { value: function(event){ - //console.log('end'); - //console.log('file content start'); + //TODO: Clean up, using for prototyping save this._templateDocument = {}; this._templateDocument.head = this.iframe.contentWindow.document.getElementById("userHead");; -- cgit v1.2.3 From a42c536c2b3209afc058eabd31167bd0aa6f71c8 Mon Sep 17 00:00:00 2001 From: Jose Antonio Marquez Date: Fri, 17 Feb 2012 13:40:38 -0800 Subject: Adding webRequest redirects for iFrame templates --- js/controllers/document-controller.js | 20 ++++++++++++++------ js/document/html-document.js | 5 +++-- js/document/text-document.js | 5 +++-- js/io/ui/cloudpopup.reel/cloudpopup.html | 2 +- 4 files changed, 21 insertions(+), 11 deletions(-) (limited to 'js') diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index 9785d824..5e2a6461 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js @@ -14,7 +14,7 @@ var Montage = require("montage/core/core").Montage, DocumentController; //////////////////////////////////////////////////////////////////////// // -DocumentController = exports.DocumentController = Montage.create(Component, { +var DocumentController = exports.DocumentController = Montage.create(Component, { hasTemplate: { value: false }, @@ -22,6 +22,10 @@ DocumentController = exports.DocumentController = Montage.create(Component, { _documents: { value: [] }, + + _hackRootFlag: { + value: false + }, _activeDocument: { value: null }, _iframeCounter: { value: 1, enumerable: false }, @@ -71,11 +75,13 @@ DocumentController = exports.DocumentController = Montage.create(Component, { //TODO: Figure out why active document is not available here - /* -if (request.url.indexOf('calculator.css') !== -1) { - return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+'/calculator/components/calculator.reel/calculator.css'}; + if (this._hackRootFlag) { + + //console.log(request.url.split('/')[request.url.split('/').length-1]); + //console.log(this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController._activeDocument.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]); + + return {redirectUrl: this.application.ninja.coreIoApi.rootUrl+this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]+request.url.split('/')[request.url.split('/').length-1]}; } -*/ } } }, @@ -205,6 +211,9 @@ if (request.url.indexOf('calculator.css') !== -1) { // openDocument: { value: function(doc) { + + // + this.documentHackReference = doc; // switch (doc.extension) { case 'html': case 'html': @@ -302,7 +311,6 @@ if (request.url.indexOf('calculator.css') !== -1) { _onOpenDocument: { value: function(doc){ //var data = DocumentManager.activeDocument; - this._hideCurrentDocument(); this.application.ninja.stage.stageView.hideOtherDocuments(doc.uuid); diff --git a/js/document/html-document.js b/js/document/html-document.js index 16595d14..ae2b4600 100755 --- a/js/document/html-document.js +++ b/js/document/html-document.js @@ -235,7 +235,7 @@ exports.HTMLDocument = Montage.create(TextDocument, { // initialize: { value: function(file, uuid, iframe, callback) { - //console.log('allow'); + this.application.ninja.documentController._hackRootFlag = false; // this._userDocument = file; // @@ -363,7 +363,8 @@ exports.HTMLDocument = Montage.create(TextDocument, { // handleEvent: { value: function(event){ - + this.application.ninja.documentController._hackRootFlag = true; + //console.log(this._userDocument.root, this); //TODO: Clean up, using for prototyping save this._templateDocument = {}; this._templateDocument.head = this.iframe.contentWindow.document.getElementById("userHead");; diff --git a/js/document/text-document.js b/js/document/text-document.js index 6f8efaad..3e20e1f6 100755 --- a/js/document/text-document.js +++ b/js/document/text-document.js @@ -6,9 +6,10 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot //BaseDocument Object for all files types and base class for HTML documents. -var Montage = require("montage/core/core").Montage; +var Montage = require("montage/core/core").Montage, + Component = require("montage/ui/component").Component; -var TextDocument = exports.TextDocument = Montage.create(Montage, { +var TextDocument = exports.TextDocument = Montage.create(Component, { //TODO: Clean up, test diff --git a/js/io/ui/cloudpopup.reel/cloudpopup.html b/js/io/ui/cloudpopup.reel/cloudpopup.html index 2c1c169a..e58041ec 100755 --- a/js/io/ui/cloudpopup.reel/cloudpopup.html +++ b/js/io/ui/cloudpopup.reel/cloudpopup.html @@ -36,7 +36,7 @@

Connection to the Cloud Server was not detected. Please verify
that the server is running and the URL below is correct.

- + -- cgit v1.2.3