aboutsummaryrefslogtreecommitdiff
path: root/js/document
diff options
context:
space:
mode:
authorNivesh Rajbhandari2012-05-24 13:54:00 -0700
committerNivesh Rajbhandari2012-05-24 13:54:00 -0700
commitfd4af6d81725dfa0630ac5e52ba95405336f4074 (patch)
tree868197f79862e98b9c7f5a1f296d64832c68d48f /js/document
parentde25d2b7d05476d4f0d385b5e910db189f682d21 (diff)
parent70ff8dd670bc37c14caf850e06791d1e293b1e4b (diff)
downloadninja-fd4af6d81725dfa0630ac5e52ba95405336f4074.tar.gz
Merge branch 'refs/heads/dom-architecture-master' into Dom-Architecture
Diffstat (limited to 'js/document')
-rwxr-xr-xjs/document/_toDelete/html-document.js (renamed from js/document/html-document.js)0
-rwxr-xr-xjs/document/_toDelete/text-document.js (renamed from js/document/text-document.js)0
-rwxr-xr-xjs/document/document-html.js34
-rwxr-xr-xjs/document/models/html.js5
-rwxr-xr-xjs/document/views/base.js2
-rwxr-xr-xjs/document/views/design.js15
6 files changed, 27 insertions, 29 deletions
diff --git a/js/document/html-document.js b/js/document/_toDelete/html-document.js
index 447d90e3..447d90e3 100755
--- a/js/document/html-document.js
+++ b/js/document/_toDelete/html-document.js
diff --git a/js/document/text-document.js b/js/document/_toDelete/text-document.js
index 2574b67c..2574b67c 100755
--- a/js/document/text-document.js
+++ b/js/document/_toDelete/text-document.js
diff --git a/js/document/document-html.js b/js/document/document-html.js
index 2fc32791..c60a12a2 100755
--- a/js/document/document-html.js
+++ b/js/document/document-html.js
@@ -6,10 +6,10 @@ 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 HtmlDocumentModel = require("js/document/models/html").HtmlDocumentModel, 11 HtmlDocumentModel = require("js/document/models/html").HtmlDocumentModel,
12 DesignDocumentView = require("js/document/views/design").DesignDocumentView; 12 DesignDocumentView = require("js/document/views/design").DesignDocumentView;
13//////////////////////////////////////////////////////////////////////// 13////////////////////////////////////////////////////////////////////////
14// 14//
15exports.HtmlDocument = Montage.create(Component, { 15exports.HtmlDocument = Montage.create(Component, {
@@ -33,15 +33,10 @@ exports.HtmlDocument = Montage.create(Component, {
33 _observer: { 33 _observer: {
34 value: null 34 value: null
35 }, 35 },
36 ////////////////////////////////////////////////////////////////////
37 //
38 _document: {
39 value: null //TODO: Figure out if this will be needed, probably not
40 },
41 //////////////////////////////////////////////////////////////////// 36 ////////////////////////////////////////////////////////////////////
42 // 37 //
43 exclusionList: { 38 exclusionList: {
44 value: ["HTML", "BODY", "NINJA-CONTENT"] //TODO: Update to correct list 39 value: ["HTML", "BODY", "NINJA-CONTENT"]
45 }, 40 },
46 //////////////////////////////////////////////////////////////////// 41 ////////////////////////////////////////////////////////////////////
47 // 42 //
@@ -72,7 +67,7 @@ exports.HtmlDocument = Montage.create(Component, {
72 //Hiding iFrame, just initiliazing 67 //Hiding iFrame, just initiliazing
73 this.model.views.design.hide(); 68 this.model.views.design.hide();
74 } else { 69 } else {
75 //ERROR: Design View not initilized 70 //ERROR: Design View not initialized
76 } 71 }
77 // 72 //
78 if (view === 'design') { 73 if (view === 'design') {
@@ -84,23 +79,10 @@ exports.HtmlDocument = Montage.create(Component, {
84 this.model.views.design.show(); 79 this.model.views.design.show();
85 this.model.views.design.iframe.style.opacity = 0; 80 this.model.views.design.iframe.style.opacity = 0;
86 this.model.views.design.content = this.model.file.content; 81 this.model.views.design.content = this.model.file.content;
87 //TODO: Improve reference 82 //TODO: Improve reference (probably through binding values)
88 this.model.views.design.model = this.model; 83 this.model.views.design.model = this.model;
89 // 84 //Rendering design view, using observers to know when template is ready
90 //TODO: Clean up
91 this.model.views.design.render(function () { 85 this.model.views.design.render(function () {
92 //TODO: Identify and remove usage of '_document'
93 this._document = this.model.views.design.document;
94 //TODO: Remove usage, seems as not needed
95 if (template && template.type === 'banner') {
96 this.documentRoot = this.model.views.design.document.body.getElementsByTagName('ninja-content')[0];
97 } else {
98 this.documentRoot = this.model.views.design.document.body;
99 }
100 //TODO: Why is this needed?
101 this.model.views.design._liveNodeList = this.documentRoot.getElementsByTagName('*');
102 //Initiliazing document model
103 document.application.njUtils.makeElementModel(this.documentRoot, "Body", "body");
104 //Adding observer to know when template is ready 86 //Adding observer to know when template is ready
105 this._observer = new WebKitMutationObserver(this.handleTemplateReady.bind(this)); 87 this._observer = new WebKitMutationObserver(this.handleTemplateReady.bind(this));
106 this._observer.observe(this.model.views.design.document.head, {childList: true}); 88 this._observer.observe(this.model.views.design.document.head, {childList: true});
diff --git a/js/document/models/html.js b/js/document/models/html.js
index 9cc8ce92..fd42d4de 100755
--- a/js/document/models/html.js
+++ b/js/document/models/html.js
@@ -64,6 +64,11 @@ exports.HtmlDocumentModel = Montage.create(BaseDocumentModel, {
64 userComponents: { 64 userComponents: {
65 value: {} 65 value: {}
66 }, 66 },
67 ////////////////////////////////////////////////////////////////////
68 //
69 documentRoot: {
70 value: null
71 },
67 //////////////////////////////////////////////////////////////////// 72 ////////////////////////////////////////////////////////////////////
68 //Add a reference to a component instance to the userComponents hash using the element UUID 73 //Add a reference to a component instance to the userComponents hash using the element UUID
69 setComponentInstance: { 74 setComponentInstance: {
diff --git a/js/document/views/base.js b/js/document/views/base.js
index db72cc60..d13dce1a 100755
--- a/js/document/views/base.js
+++ b/js/document/views/base.js
@@ -28,7 +28,7 @@ exports.BaseDocumentView = Montage.create(Component, {
28 value: null 28 value: null
29 }, 29 },
30 //////////////////////////////////////////////////////////////////// 30 ////////////////////////////////////////////////////////////////////
31 // 31 //TODO: This should be renamed to better illustrate it's a container (iframe for design, div for code view)
32 iframe: { 32 iframe: {
33 get: function() {return this._iframe;}, 33 get: function() {return this._iframe;},
34 set: function(value) {this._iframe= value;} 34 set: function(value) {this._iframe= value;}
diff --git a/js/document/views/design.js b/js/document/views/design.js
index 13f89692..d772aa86 100755
--- a/js/document/views/design.js
+++ b/js/document/views/design.js
@@ -113,7 +113,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
113 render: { 113 render: {
114 value: function (callback, template) { 114 value: function (callback, template) {
115 //TODO: Remove, this is a temp patch for webRequest API gate 115 //TODO: Remove, this is a temp patch for webRequest API gate
116 this.application.ninja.documentController._hackRootFlag = false; 116 this.application.ninja.documentController.redirectRequests = false;
117 //Storing callback for dispatch ready 117 //Storing callback for dispatch ready
118 this._callback = callback; 118 this._callback = callback;
119 this._template = template; 119 this._template = template;
@@ -131,7 +131,8 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
131 // 131 //
132 onTemplateLoad: { 132 onTemplateLoad: {
133 value: function (e) { 133 value: function (e) {
134 this.application.ninja.documentController._hackRootFlag = true; 134 //console.log(this.iframe.contentWindow);
135 this.application.ninja.documentController.redirectRequests = true;
135 //TODO: Add support to constructing URL with a base HREF 136 //TODO: Add support to constructing URL with a base HREF
136 var basetag = this.content.document.getElementsByTagName('base'); 137 var basetag = this.content.document.getElementsByTagName('base');
137 //Removing event 138 //Removing event
@@ -279,6 +280,16 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
279 } else { 280 } else {
280 //Else there is not data to parse 281 //Else there is not data to parse
281 } 282 }
283 //TODO: Verify appropiate location for this operation
284 if (this._template && this._template.type === 'banner') {
285 this.model.documentRoot = this.document.body.getElementsByTagName('ninja-content')[0];
286 } else {
287 this.model.documentRoot = this.document.body;
288 }
289 //Storing node list for reference (might need to store in the model)
290 this._liveNodeList = this.model.documentRoot.getElementsByTagName('*');
291 //Initiliazing document model
292 document.application.njUtils.makeElementModel(this.model.documentRoot, "Body", "body");
282 //Makign callback if specified 293 //Makign callback if specified
283 if (this._callback) this._callback(); 294 if (this._callback) this._callback();
284 } 295 }