aboutsummaryrefslogtreecommitdiff
path: root/js/document
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-05-11 14:41:20 -0700
committerJose Antonio Marquez2012-05-11 14:41:20 -0700
commitc87e538fdc337639bc4d54bb087dbf2b4f20297f (patch)
treebbbcf496841932261b21f977061fd41c01c0e0a6 /js/document
parentf10bec0c594c6404eec51dc1a005f7f17570ba52 (diff)
downloadninja-c87e538fdc337639bc4d54bb087dbf2b4f20297f.tar.gz
Adding support for new templates
This is supported for NEW and OPEN, SAVE is not supported yet by I/O. Saving works, but it will not be a banner template.
Diffstat (limited to 'js/document')
-rwxr-xr-xjs/document/document-html.js14
-rwxr-xr-xjs/document/models/base.js5
-rwxr-xr-xjs/document/templates/banner/index.html94
-rw-r--r--js/document/templates/banner/main.js (renamed from js/document/templates/montage-web/main.js)0
-rwxr-xr-xjs/document/templates/banner/package.json (renamed from js/document/templates/montage-html/package.json)0
-rwxr-xr-xjs/document/templates/html/index.html (renamed from js/document/templates/montage-web/index.html)0
-rw-r--r--js/document/templates/html/main.js (renamed from js/document/templates/montage-html/main.reel/main.js)3
-rwxr-xr-xjs/document/templates/html/package.json (renamed from js/document/templates/montage-web/package.json)0
-rwxr-xr-xjs/document/templates/montage-html/default_html.css74
-rwxr-xr-xjs/document/templates/montage-html/index.html48
-rwxr-xr-xjs/document/views/design.js90
11 files changed, 182 insertions, 146 deletions
diff --git a/js/document/document-html.js b/js/document/document-html.js
index e00333f0..7e1f1806 100755
--- a/js/document/document-html.js
+++ b/js/document/document-html.js
@@ -63,13 +63,14 @@ exports.HtmlDocument = Montage.create(Component, {
63 //////////////////////////////////////////////////////////////////// 63 ////////////////////////////////////////////////////////////////////
64 // 64 //
65 init: { 65 init: {
66 value:function(file, context, callback, view, template) { //TODO: Add template support logic 66 value:function(file, context, callback, view, template) {
67 //Storing callback data for loaded dispatch 67 //Storing callback data for loaded dispatch
68 this.loaded.callback = callback; 68 this.loaded.callback = callback;
69 this.loaded.context = context; 69 this.loaded.context = context;
70 //Creating instance of HTML Document Model 70 //Creating instance of HTML Document Model
71 this.model = Montage.create(HtmlDocumentModel,{ 71 this.model = Montage.create(HtmlDocumentModel,{
72 file: {value: file}, 72 file: {value: file},
73 fileTemplate: {value: template},
73 parentContainer: {value: document.getElementById("iframeContainer")}, //Saving reference to parent container of all views (should be changed to buckets approach 74 parentContainer: {value: document.getElementById("iframeContainer")}, //Saving reference to parent container of all views (should be changed to buckets approach
74 views: {value: {'design': DesignDocumentView.create(), 'code': null}} //TODO: Add code view logic 75 views: {value: {'design': DesignDocumentView.create(), 'code': null}} //TODO: Add code view logic
75 }); 76 });
@@ -97,8 +98,13 @@ exports.HtmlDocument = Montage.create(Component, {
97 this.model.views.design.render(function () { 98 this.model.views.design.render(function () {
98 //TODO: Identify and remove usage of '_document' 99 //TODO: Identify and remove usage of '_document'
99 this._document = this.model.views.design.document; 100 this._document = this.model.views.design.document;
100 //TODO: Remove usage, seems as not needed 101 //TODO: Remove usage, seems as not needed
101 this.documentRoot = this.model.views.design.document.body; 102 if (template && template.type === 'banner') {
103 //this.documentRoot = this.model.views.design.document.body;
104 this.documentRoot = this.model.views.design.document.body.getElementsByTagName('ninja-banner')[0];
105 } else {
106 this.documentRoot = this.model.views.design.document.body;
107 }
102 //TODO: Why is this needed? 108 //TODO: Why is this needed?
103 this._liveNodeList = this.model.views.design.document.body.getElementsByTagName('*'); 109 this._liveNodeList = this.model.views.design.document.body.getElementsByTagName('*');
104 //Initiliazing document model 110 //Initiliazing document model
@@ -106,7 +112,7 @@ exports.HtmlDocument = Montage.create(Component, {
106 //Adding observer to know when template is ready 112 //Adding observer to know when template is ready
107 this._observer = new WebKitMutationObserver(this.handleTemplateReady.bind(this)); 113 this._observer = new WebKitMutationObserver(this.handleTemplateReady.bind(this));
108 this._observer.observe(this.model.views.design.document.head, {childList: true}); 114 this._observer.observe(this.model.views.design.document.head, {childList: true});
109 }.bind(this)); 115 }.bind(this), template);
110 } else { 116 } else {
111 //TODO: Identify default view (probably code) 117 //TODO: Identify default view (probably code)
112 } 118 }
diff --git a/js/document/models/base.js b/js/document/models/base.js
index ebfb73b8..0f58e75c 100755
--- a/js/document/models/base.js
+++ b/js/document/models/base.js
@@ -62,6 +62,11 @@ exports.BaseDocumentModel = Montage.create(Component, {
62 }, 62 },
63 //////////////////////////////////////////////////////////////////// 63 ////////////////////////////////////////////////////////////////////
64 // 64 //
65 fileTemplate: {
66 value: null
67 },
68 ////////////////////////////////////////////////////////////////////
69 //
65 parentContainer: { 70 parentContainer: {
66 value: null 71 value: null
67 }, 72 },
diff --git a/js/document/templates/banner/index.html b/js/document/templates/banner/index.html
new file mode 100755
index 00000000..2cd82f51
--- /dev/null
+++ b/js/document/templates/banner/index.html
@@ -0,0 +1,94 @@
1<!DOCTYPE html>
2<!-- <copyright>
3 This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
4 No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
5 (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
6 </copyright> -->
7
8
9<!--
10 NOTE(s):
11 All elements in the head of the document to be exclude from I/O
12 must set the 'data-ninja-template'
13 data-ninja-template="true"
14-->
15<html>
16
17 <head>
18
19 <style type="text/css" id="nj-stage-stylesheet" data-ninja-template="true">
20 * {
21 -webkit-transition-duration: 0s !important;
22 -webkit-animation-duration: 0s !important;
23 -webkit-animation-name: none !important;
24 }
25
26 body {
27 margin: 0;
28 padding: 0;
29 position: absolute;
30 -webkit-transform-style: preserve-3d;
31 -webkit-transform: perspective(1400) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
32 }
33
34 html {
35 overflow: scroll;
36 }
37
38 html, body {
39 width: 100%;
40 height: 100%;
41 background: #666;
42 }
43
44 ninjaloadinghack {
45 display: none;
46 }
47
48 .active-element-outline {
49 outline: #adff2f solid 2px;
50 }
51
52 .nj-preset-transition {
53 -webkit-transition: all 450ms linear !important;
54 }
55
56 ninja-banner {
57 display: block;
58 margin: 0;
59 padding: 0;
60 border: 0;
61 position: absolute;
62 overflow: visible;
63 top: 50%;
64 left: 50%;
65 background: #FFF;
66 }
67 </style>
68
69 <script type="text/javascript" data-ninja-template="true">
70 function getElement(x,y) {
71 return document.elementFromPoint(x,y);
72 }
73 </script>
74
75 <!-- TODO: Determine if loading Montage is always needed or if it could be done author-time or on file open -->
76
77 <script type="text/javascript" data-package="." src="../../../../node_modules/montage/montage.js" data-ninja-template="true"></script>
78
79 <script type="text/montage-serialization" data-ninja-template="true">
80 {
81 "owner": {
82 "prototype": "main"
83 }
84 }
85 </script>
86
87 </head>
88
89 <body>
90 <ninjaloadinghack></ninjaloadinghack>
91 <ninja-banner></ninja-banner>
92 </body>
93
94</html> \ No newline at end of file
diff --git a/js/document/templates/montage-web/main.js b/js/document/templates/banner/main.js
index d5ac88d5..d5ac88d5 100644
--- a/js/document/templates/montage-web/main.js
+++ b/js/document/templates/banner/main.js
diff --git a/js/document/templates/montage-html/package.json b/js/document/templates/banner/package.json
index c8bc02fb..c8bc02fb 100755
--- a/js/document/templates/montage-html/package.json
+++ b/js/document/templates/banner/package.json
diff --git a/js/document/templates/montage-web/index.html b/js/document/templates/html/index.html
index a1b8b242..a1b8b242 100755
--- a/js/document/templates/montage-web/index.html
+++ b/js/document/templates/html/index.html
diff --git a/js/document/templates/montage-html/main.reel/main.js b/js/document/templates/html/main.js
index 019c675e..d5ac88d5 100644
--- a/js/document/templates/montage-html/main.reel/main.js
+++ b/js/document/templates/html/main.js
@@ -38,10 +38,11 @@ exports.Main = Montage.create(Component, {
38 }; 38 };
39 39
40 // Dispatch event when this template has loaded. 40 // Dispatch event when this template has loaded.
41 /*
41 var newEvent = document.createEvent( "CustomEvent" ); 42 var newEvent = document.createEvent( "CustomEvent" );
42 newEvent.initCustomEvent( "userTemplateDidLoad", false, true ); 43 newEvent.initCustomEvent( "userTemplateDidLoad", false, true );
43
44 document.body.dispatchEvent( newEvent ); 44 document.body.dispatchEvent( newEvent );
45 */
45 46
46 } 47 }
47 } 48 }
diff --git a/js/document/templates/montage-web/package.json b/js/document/templates/html/package.json
index c8bc02fb..c8bc02fb 100755
--- a/js/document/templates/montage-web/package.json
+++ b/js/document/templates/html/package.json
diff --git a/js/document/templates/montage-html/default_html.css b/js/document/templates/montage-html/default_html.css
deleted file mode 100755
index 04b21c6f..00000000
--- a/js/document/templates/montage-html/default_html.css
+++ /dev/null
@@ -1,74 +0,0 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5</copyright> */
6
7* {
<