diff options
author | Eric Guzman | 2012-05-25 16:37:43 -0700 |
---|---|---|
committer | Eric Guzman | 2012-05-25 16:37:43 -0700 |
commit | e884d2769a53dd8920b485672631b50158ed0800 (patch) | |
tree | 526934085f973f0bcfef5a3f130794530396aa03 /js/document | |
parent | 1f7c17d688c3340b31d2e1c2b7205b10bd806968 (diff) | |
parent | 81239571c538f72e398fafa5b07725bf1bbb2d5d (diff) | |
download | ninja-e884d2769a53dd8920b485672631b50158ed0800.tar.gz |
Merge branch 'binding' of github.com:dhg637/ninja-internal into binding
Diffstat (limited to 'js/document')
-rwxr-xr-x | js/document/_toDelete/html-document.js (renamed from js/document/html-document.js) | 0 | ||||
-rwxr-xr-x | js/document/_toDelete/text-document.js (renamed from js/document/text-document.js) | 0 | ||||
-rwxr-xr-x | js/document/document-html.js | 34 | ||||
-rwxr-xr-x | js/document/models/html.js | 5 | ||||
-rwxr-xr-x | js/document/views/base.js | 2 | ||||
-rwxr-xr-x | js/document/views/design.js | 44 |
6 files changed, 53 insertions, 32 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 f92a425c..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 | // |
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 | 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 | // |
15 | exports.HtmlDocument = Montage.create(Component, { | 15 | exports.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._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 10112565..a93faa9e 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 75eb3695..826b4058 100755 --- a/js/document/views/design.js +++ b/js/document/views/design.js | |||
@@ -67,8 +67,34 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
67 | propertiesPanel: { | 67 | propertiesPanel: { |
68 | value: null | 68 | value: null |
69 | }, | 69 | }, |
70 | |||
70 | //////////////////////////////////////////////////////////////////// | 71 | //////////////////////////////////////////////////////////////////// |
71 | // | 72 | // |
73 | _liveNodeList: { | ||
74 | value: null | ||
75 | }, | ||
76 | |||
77 | getLiveNodeList: { | ||
78 | value: function(useFilter) { | ||
79 | if(useFilter) { | ||
80 | var filteredNodes = [], | ||
81 | childNodes = Array.prototype.slice.call(this._liveNodeList, 0); | ||
82 | |||
83 | childNodes.forEach(function(item) { | ||
84 | if( (item.nodeType === 1) && (item.nodeName !== "STYLE") && (item.nodeName !== "SCRIPT")) { | ||
85 | filteredNodes.push(item); | ||
86 | } | ||
87 | }); | ||
88 | return filteredNodes; | ||
89 | } else { | ||
90 | return Array.prototype.slice.call(this._liveNodeList, 0); | ||
91 | } | ||
92 | } | ||
93 | }, | ||
94 | //////////////////////////////////////////////////////////////////// | ||
95 | // | ||
96 | |||
97 | // | ||
72 | initialize: { | 98 | initialize: { |
73 | value: function (parent) { | 99 | value: function (parent) { |
74 | //Creating iFrame for view | 100 | //Creating iFrame for view |
@@ -87,7 +113,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
87 | render: { | 113 | render: { |
88 | value: function (callback, template) { | 114 | value: function (callback, template) { |
89 | //TODO: Remove, this is a temp patch for webRequest API gate | 115 | //TODO: Remove, this is a temp patch for webRequest API gate |
90 | this.application.ninja.documentController._hackRootFlag = false; | 116 | this.application.ninja.documentController.redirectRequests = false; |
91 | //Storing callback for dispatch ready | 117 | //Storing callback for dispatch ready |
92 | this._callback = callback; | 118 | this._callback = callback; |
93 | this._template = template; | 119 | this._template = template; |
@@ -105,7 +131,8 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
105 | // | 131 | // |
106 | onTemplateLoad: { | 132 | onTemplateLoad: { |
107 | value: function (e) { | 133 | value: function (e) { |
108 | this.application.ninja.documentController._hackRootFlag = true; | 134 | //console.log(this.iframe.contentWindow); |
135 | this.application.ninja.documentController.redirectRequests = true; | ||
109 | //TODO: Add support to constructing URL with a base HREF | 136 | //TODO: Add support to constructing URL with a base HREF |
110 | var basetag = this.content.document.getElementsByTagName('base'); | 137 | var basetag = this.content.document.getElementsByTagName('base'); |
111 | //Removing event | 138 | //Removing event |
@@ -189,9 +216,6 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
189 | this._bodyFragment = null; | 216 | this._bodyFragment = null; |
190 | //Calling standard method to finish opening document | 217 | //Calling standard method to finish opening document |
191 | this.bodyContentLoaded(null); | 218 | this.bodyContentLoaded(null); |
192 | //TODO: Move this to be set via the controller | ||
193 | this.application.ninja.stage.documentOffsetLeft = parseInt((this.document.body.scrollWidth - this._template.size.width)/2); | ||
194 | this.application.ninja.stage.documentOffsetTop = parseInt((this.document.body.scrollHeight - this._template.size.height)/2); | ||
195 | } | 219 | } |
196 | }, | 220 | }, |
197 | //////////////////////////////////////////////////////////////////// | 221 | //////////////////////////////////////////////////////////////////// |
@@ -256,6 +280,16 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
256 | } else { | 280 | } else { |
257 | //Else there is not data to parse | 281 | //Else there is not data to parse |
258 | } | 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"); | ||
259 | //Makign callback if specified | 293 | //Makign callback if specified |
260 | if (this._callback) this._callback(); | 294 | if (this._callback) this._callback(); |
261 | } | 295 | } |