aboutsummaryrefslogtreecommitdiff
path: root/js/document
diff options
context:
space:
mode:
authorNivesh Rajbhandari2012-05-15 14:19:12 -0700
committerNivesh Rajbhandari2012-05-15 14:19:12 -0700
commitd8c7c8959f330c3a153aac65197cce54172275fc (patch)
tree222d7939f0ac4863b13fae288aa5c0a8da862749 /js/document
parent253b8803c71c88a6f87fb1caccd42fa081fc6eca (diff)
parent1d72a82a4c27a288e900eab99818222159ef8e23 (diff)
downloadninja-d8c7c8959f330c3a153aac65197cce54172275fc.tar.gz
Merge branch 'refs/heads/dom-architecture-master' into Dom-Architecture
Diffstat (limited to 'js/document')
-rwxr-xr-xjs/document/models/base.js2
-rwxr-xr-xjs/document/views/design.js25
2 files changed, 20 insertions, 7 deletions
diff --git a/js/document/models/base.js b/js/document/models/base.js
index 0f58e75c..5f2a5893 100755
--- a/js/document/models/base.js
+++ b/js/document/models/base.js
@@ -138,6 +138,7 @@ exports.BaseDocumentModel = Montage.create(Component, {
138 file: this.file, 138 file: this.file,
139 webgl: this.webGlHelper.glData, 139 webgl: this.webGlHelper.glData,
140 styles: this.getStyleSheets(), 140 styles: this.getStyleSheets(),
141 template: this.fileTemplate,
141 document: this.views.design.iframe.contentWindow.document, 142 document: this.views.design.iframe.contentWindow.document,
142 head: this.views.design.iframe.contentWindow.document.head, 143 head: this.views.design.iframe.contentWindow.document.head,
143 body: this.views.design.iframe.contentWindow.document.body 144 body: this.views.design.iframe.contentWindow.document.body
@@ -165,6 +166,7 @@ exports.BaseDocumentModel = Montage.create(Component, {
165 file: this.file, 166 file: this.file,
166 webgl: this.webGlHelper.glData, 167 webgl: this.webGlHelper.glData,
167 css: this.getStyleSheets(), 168 css: this.getStyleSheets(),
169 template: this.fileTemplate,
168 document: this.views.design.iframe.contentWindow.document, 170 document: this.views.design.iframe.contentWindow.document,
169 head: this.views.design.iframe.contentWindow.document.head, 171 head: this.views.design.iframe.contentWindow.document.head,
170 body: this.views.design.iframe.contentWindow.document.body 172 body: this.views.design.iframe.contentWindow.document.body
diff --git a/js/document/views/design.js b/js/document/views/design.js
index 4c91ff39..48c91aad 100755
--- a/js/document/views/design.js
+++ b/js/document/views/design.js
@@ -160,16 +160,23 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
160 value: function (e) { 160 value: function (e) {
161 //Getting first element in DOM (assumes it's root) 161 //Getting first element in DOM (assumes it's root)
162 //TODO: Ensure wrapper logic is proper 162 //TODO: Ensure wrapper logic is proper
163 var banner = this._bodyFragment.getElementsByTagName('*')[2], 163 var wrapper = this._bodyFragment.getElementsByTagName('*')[1],
164 ninjaBanner = this.document.body.getElementsByTagName('ninja-content')[0]; 164 banner = this._bodyFragment.getElementsByTagName('*')[2],
165 //Copying attributes to maintain same properties as the banner root 165 ninjaBanner = this.document.body.getElementsByTagName('ninja-content')[0],
166 ninjaWrapper = this.document.body.getElementsByTagName('ninja-viewport')[0];
167 //Copying attributes to maintain same properties as the banner wrapper
168 for (var n in wrapper.attributes) {
169 if (wrapper.attributes[n].value) {
170 ninjaWrapper.setAttribute(wrapper.attributes[n].name, wrapper.attributes[n].value);
171 }
172 }
173 //Copying attributes to maintain same properties as the banner content
166 for (var n in banner.attributes) { 174 for (var n in banner.attributes) {
167 if (banner.attributes[n].value) { 175 if (banner.attributes[n].value) {
168 ninjaBanner.setAttribute(banner.attributes[n].name, banner.attributes[n].value); 176 ninjaBanner.setAttribute(banner.attributes[n].name, banner.attributes[n].value);
169 } 177 }
170 } 178 }
171 //Adjusting margin per size of document 179 //Adjusting margin per size of document
172 //this.document.head.getElementsByTagName('style')[0].innerHTML += '\n ninja-banner {overflow: visible !important; margin-top: -'+Math.floor(this._template.size.height/2)+'px; margin-left: -'+Math.floor(this._template.size.width/2)+'px}';
173 this.document.head.getElementsByTagName('style')[0].innerHTML += '\n ninja-content {overflow: visible !important;} ninja-content, ninja-viewport {width: ' + this._template.size.width + 'px; height: ' + this._template.size.height + 'px;}'; 180 this.document.head.getElementsByTagName('style')[0].innerHTML += '\n ninja-content {overflow: visible !important;} ninja-content, ninja-viewport {width: ' + this._template.size.width + 'px; height: ' + this._template.size.height + 'px;}';
174 //Setting content in template 181 //Setting content in template
175 ninjaBanner.innerHTML = banner.innerHTML; 182 ninjaBanner.innerHTML = banner.innerHTML;
@@ -204,7 +211,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
204 //Removing event, only needed on initial load 211 //Removing event, only needed on initial load
205 this._observer.body.disconnect(); 212 this._observer.body.disconnect();
206 this._observer.body = null; 213 this._observer.body = null;
207 //Removing loading container 214 //Removing loading container (should be removed)
208 this.document.body.removeChild(this.document.getElementsByTagName('ninjaloadinghack')[0]); 215 this.document.body.removeChild(this.document.getElementsByTagName('ninjaloadinghack')[0]);
209 //Getting style and link tags in document 216 //Getting style and link tags in document
210 var stags = this.document.getElementsByTagName('style'), 217 var stags = this.document.getElementsByTagName('style'),
@@ -218,8 +225,12 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
218 for (i = 0; i < ltags.length; i++) { 225 for (i = 0; i < ltags.length; i++) {
219 // 226 //
220 if (ltags[i].href) { 227 if (ltags[i].href) {
221 //TODO: Verify this works for tags in body as well (working in head) 228 //Inseting <style> right above of <link> to maintain hierarchy
222 this.document.head.insertBefore(this.getStyleTagFromCssFile(ltags[i]), ltags[i]) || this.document.body.insertBefore(this.getStyleTagFromCssFile(ltags[i]), ltags[i]); 229 try {
230 this.document.head.insertBefore(this.getStyleTagFromCssFile(ltags[i]), ltags[i])
231 } catch (e) {
232 this.document.body.insertBefore(this.getStyleTagFromCssFile(ltags[i]), ltags[i]);
233 }
223 //Disabling tag once it has been reloaded 234 //Disabling tag once it has been reloaded
224 ltags[i].setAttribute('disabled', 'true'); 235 ltags[i].setAttribute('disabled', 'true');
225 } else { 236 } else {