diff options
Diffstat (limited to 'js/document/views/design.js')
-rwxr-xr-x | js/document/views/design.js | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/js/document/views/design.js b/js/document/views/design.js index c7313708..f7fbf3c5 100755 --- a/js/document/views/design.js +++ b/js/document/views/design.js | |||
@@ -63,11 +63,6 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
63 | set: function(value) {this._document = value;} | 63 | set: function(value) {this._document = value;} |
64 | }, | 64 | }, |
65 | //////////////////////////////////////////////////////////////////// | 65 | //////////////////////////////////////////////////////////////////// |
66 | // | ||
67 | propertiesPanel: { | ||
68 | value: null | ||
69 | }, | ||
70 | //////////////////////////////////////////////////////////////////// | ||
71 | // | 66 | // |
72 | _liveNodeList: { | 67 | _liveNodeList: { |
73 | value: null | 68 | value: null |
@@ -129,7 +124,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
129 | // | 124 | // |
130 | onTemplateLoad: { | 125 | onTemplateLoad: { |
131 | value: function (e) { | 126 | value: function (e) { |
132 | //console.log(this.iframe.contentWindow); | 127 | //TODO: Remove, this is a temp patch for webRequest API gate |
133 | this.application.ninja.documentController.redirectRequests = true; | 128 | this.application.ninja.documentController.redirectRequests = true; |
134 | //TODO: Add support to constructing URL with a base HREF | 129 | //TODO: Add support to constructing URL with a base HREF |
135 | var basetag = this.content.document.getElementsByTagName('base'); | 130 | var basetag = this.content.document.getElementsByTagName('base'); |
@@ -159,7 +154,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
159 | this._observer.body = new WebKitMutationObserver(this.insertBannerContent.bind(this)); | 154 | this._observer.body = new WebKitMutationObserver(this.insertBannerContent.bind(this)); |
160 | this._observer.body.observe(this._bodyFragment, {childList: true}); | 155 | this._observer.body.observe(this._bodyFragment, {childList: true}); |
161 | //Inserting <body> HTML and parsing URLs via mediator method | 156 | //Inserting <body> HTML and parsing URLs via mediator method |
162 | this._bodyFragment.innerHTML = '<ninjaloadinghack></ninjaloadinghack>'+(this.content.body.replace(/\b(href|src)\s*=\s*"([^"]*)"/g, this.application.ninja.ioMediator.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator))).replace(/url\(([^"]*)(.+?)\1\)/g, this.application.ninja.ioMediator.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator)); | 157 | this._bodyFragment.innerHTML = '<ninjaloadinghack></ninjaloadinghack>'+(this.content.body.replace(/\b(href|src)\s*=\s*"([^"]*)"/g, this.application.ninja.ioMediator.tmplt.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator.tmplt))).replace(/url\(([^"]*)(.+?)\1\)/g, this.application.ninja.ioMediator.tmplt.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator.tmplt)); |
163 | } | 158 | } |
164 | } else { | 159 | } else { |
165 | //Creating temp code fragement to load head | 160 | //Creating temp code fragement to load head |
@@ -168,12 +163,12 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
168 | this._observer.head = new WebKitMutationObserver(this.insertHeadContent.bind(this)); | 163 | this._observer.head = new WebKitMutationObserver(this.insertHeadContent.bind(this)); |
169 | this._observer.head.observe(this._headFragment, {childList: true}); | 164 | this._observer.head.observe(this._headFragment, {childList: true}); |
170 | //Inserting <head> HTML and parsing URLs via mediator method | 165 | //Inserting <head> HTML and parsing URLs via mediator method |
171 | this._headFragment.innerHTML = (this.content.head.replace(/\b(href|src)\s*=\s*"([^"]*)"/g, this.application.ninja.ioMediator.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator))).replace(/url\(([^"]*)(.+?)\1\)/g, this.application.ninja.ioMediator.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator)); | 166 | this._headFragment.innerHTML = (this.content.head.replace(/\b(href|src)\s*=\s*"([^"]*)"/g, this.application.ninja.ioMediator.tmplt.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator.tmplt))).replace(/url\(([^"]*)(.+?)\1\)/g, this.application.ninja.ioMediator.tmplt.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator.tmplt)); |
172 | //Adding event listener to know when the body is ready and make callback (using HTML5 new DOM Mutation Events) | 167 | //Adding event listener to know when the body is ready and make callback (using HTML5 new DOM Mutation Events) |
173 | this._observer.body = new WebKitMutationObserver(this.bodyContentLoaded.bind(this)); | 168 | this._observer.body = new WebKitMutationObserver(this.bodyContentLoaded.bind(this)); |
174 | this._observer.body.observe(this.document.body, {childList: true}); | 169 | this._observer.body.observe(this.document.body, {childList: true}); |
175 | //Inserting <body> HTML and parsing URLs via mediator method | 170 | //Inserting <body> HTML and parsing URLs via mediator method |
176 | this.document.body.innerHTML += '<ninjaloadinghack></ninjaloadinghack>'+(this.content.body.replace(/\b(href|src)\s*=\s*"([^"]*)"/g, this.application.ninja.ioMediator.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator))).replace(/url\(([^"]*)(.+?)\1\)/g, this.application.ninja.ioMediator.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator)); | 171 | this.document.body.innerHTML += '<ninjaloadinghack></ninjaloadinghack>'+(this.content.body.replace(/\b(href|src)\s*=\s*"([^"]*)"/g, this.application.ninja.ioMediator.tmplt.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator.tmplt))).replace(/url\(([^"]*)(.+?)\1\)/g, this.application.ninja.ioMediator.tmplt.getNinjaPropUrlRedirect.bind(this.application.ninja.ioMediator.tmplt)); |
177 | //Copying attributes to maintain same properties as the <body> | 172 | //Copying attributes to maintain same properties as the <body> |
178 | for (var n in this.content.document.body.attributes) { | 173 | for (var n in this.content.document.body.attributes) { |
179 | if (this.content.document.body.attributes[n].value) { | 174 | if (this.content.document.body.attributes[n].value) { |
@@ -245,7 +240,7 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
245 | this.document.body.removeChild(this.document.getElementsByTagName('ninjaloadinghack')[0]); | 240 | this.document.body.removeChild(this.document.getElementsByTagName('ninjaloadinghack')[0]); |
246 | //Getting style and link tags in document | 241 | //Getting style and link tags in document |
247 | var stags = this.document.getElementsByTagName('style'), | 242 | var stags = this.document.getElementsByTagName('style'), |
248 | ltags = this.document.getElementsByTagName('link'), i, | 243 | ltags = this.document.getElementsByTagName('link'), i, orgNodes, |
249 | scripttags = this.document.getElementsByTagName('script'); | 244 | scripttags = this.document.getElementsByTagName('script'); |
250 | //Temporarily checking for disabled special case (we must enabled for Ninja to access styles) | 245 | //Temporarily checking for disabled special case (we must enabled for Ninja to access styles) |
251 | this.ninjaDisableAttribute(stags); | 246 | this.ninjaDisableAttribute(stags); |
@@ -286,6 +281,12 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
286 | } | 281 | } |
287 | //Storing node list for reference (might need to store in the model) | 282 | //Storing node list for reference (might need to store in the model) |
288 | this._liveNodeList = this.model.documentRoot.getElementsByTagName('*'); | 283 | this._liveNodeList = this.model.documentRoot.getElementsByTagName('*'); |
284 | //Getting list of original nodes | ||
285 | orgNodes = this.document.getElementsByTagName('*'); | ||
286 | //TODO: Figure out if this is ideal for identifying nodes created by Ninja | ||
287 | for (var n in orgNodes) { | ||
288 | if (orgNodes[n].getAttribute) orgNodes[n].setAttribute('data-ninja-node', 'true'); | ||
289 | } | ||
289 | //Initiliazing document model | 290 | //Initiliazing document model |
290 | document.application.njUtils.makeElementModel(this.model.documentRoot, "Body", "body"); | 291 | document.application.njUtils.makeElementModel(this.model.documentRoot, "Body", "body"); |
291 | //Makign callback if specified | 292 | //Makign callback if specified |
@@ -399,7 +400,13 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
399 | //Initializing template with user's seriliazation | 400 | //Initializing template with user's seriliazation |
400 | var template = this.iframe.contentWindow.mjsTemplate.create(); | 401 | var template = this.iframe.contentWindow.mjsTemplate.create(); |
401 | template.initWithDocument(this.iframe.contentWindow.document); | 402 | template.initWithDocument(this.iframe.contentWindow.document); |
402 | template.instantiateWithOwnerAndDocument(null, this.iframe.contentWindow.document, function (e){/*Nothing just a required extra parameter*/}); | 403 | template.instantiateWithOwnerAndDocument(null, this.iframe.contentWindow.document, function (){ |
404 | //TODO: Verify this is properly done, seems like a hack | ||
405 | for (var c in template._deserializer._objects) { | ||
406 | //Forcing draw on components | ||
407 | template._deserializer._objects[c].needsDraw = true; | ||
408 | } | ||
409 | }); | ||
403 | }.bind(this), false); | 410 | }.bind(this), false); |
404 | } | 411 | } |
405 | }, | 412 | }, |