diff options
Diffstat (limited to 'js/document/views/design.js')
-rwxr-xr-x | js/document/views/design.js | 682 |
1 files changed, 352 insertions, 330 deletions
diff --git a/js/document/views/design.js b/js/document/views/design.js index 44ed2c65..548e45e9 100755 --- a/js/document/views/design.js +++ b/js/document/views/design.js | |||
@@ -1,24 +1,25 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | Copyright (c) 2012, Motorola Mobility, Inc | 2 | Copyright (c) 2012, Motorola Mobility LLC. |
3 | All Rights Reserved. | 3 | All Rights Reserved. |
4 | BSD License. | ||
5 | 4 | ||
6 | Redistribution and use in source and binary forms, with or without | 5 | Redistribution and use in source and binary forms, with or without |
7 | modification, are permitted provided that the following conditions are met: | 6 | modification, are permitted provided that the following conditions are met: |
8 | 7 | ||
9 | - Redistributions of source code must retain the above copyright notice, | 8 | * Redistributions of source code must retain the above copyright notice, |
10 | this list of conditions and the following disclaimer. | 9 | this list of conditions and the following disclaimer. |
11 | - Redistributions in binary form must reproduce the above copyright | 10 | |
12 | notice, this list of conditions and the following disclaimer in the | 11 | * Redistributions in binary form must reproduce the above copyright notice, |
13 | documentation and/or other materials provided with the distribution. | 12 | this list of conditions and the following disclaimer in the documentation |
14 | - Neither the name of Motorola Mobility nor the names of its contributors | 13 | and/or other materials provided with the distribution. |
15 | may be used to endorse or promote products derived from this software | 14 | |
16 | without specific prior written permission. | 15 | * Neither the name of Motorola Mobility LLC nor the names of its |
16 | contributors may be used to endorse or promote products derived from this | ||
17 | software without specific prior written permission. | ||
17 | 18 | ||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 22 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
@@ -30,50 +31,50 @@ POSSIBILITY OF SUCH DAMAGE. | |||
30 | 31 | ||
31 | //////////////////////////////////////////////////////////////////////// | 32 | //////////////////////////////////////////////////////////////////////// |
32 | // | 33 | // |
33 | var Montage = require("montage/core/core").Montage, | 34 | var Montage = require("montage/core/core").Montage, |
34 | BaseDocumentView = require("js/document/views/base").BaseDocumentView, | 35 | BaseDocumentView = require("js/document/views/base").BaseDocumentView, |
35 | ElementModel = require("js/models/element-model"); | 36 | ElementModel = require("js/models/element-model"); |
36 | //////////////////////////////////////////////////////////////////////// | 37 | //////////////////////////////////////////////////////////////////////// |
37 | // | 38 | // |
38 | exports.DesignDocumentView = Montage.create(BaseDocumentView, { | 39 | exports.DesignDocumentView = Montage.create(BaseDocumentView, { |
39 | //////////////////////////////////////////////////////////////////// | 40 | //////////////////////////////////////////////////////////////////// |
40 | // | 41 | // |
41 | hasTemplate: { | 42 | hasTemplate: { |
42 | value: false | 43 | value: false |
43 | }, | 44 | }, |
44 | //////////////////////////////////////////////////////////////////// | 45 | //////////////////////////////////////////////////////////////////// |
45 | // | 46 | // |
46 | _callback: { | 47 | _callback: { |
47 | value: null | 48 | value: null |
48 | }, | 49 | }, |
49 | //////////////////////////////////////////////////////////////////// | 50 | //////////////////////////////////////////////////////////////////// |
50 | // | 51 | // |
51 | _viewCallback: { | 52 | _viewCallback: { |
52 | value: null | 53 | value: null |
53 | }, | 54 | }, |
54 | //////////////////////////////////////////////////////////////////// | 55 | //////////////////////////////////////////////////////////////////// |
55 | // | 56 | // |
56 | _template: { | 57 | _template: { |
57 | value: null | 58 | value: null |
58 | }, | 59 | }, |
59 | //////////////////////////////////////////////////////////////////// | 60 | //////////////////////////////////////////////////////////////////// |
60 | // | 61 | // |
61 | _bodyFragment: { | 62 | _bodyFragment: { |
62 | value: null | 63 | value: null |
63 | }, | 64 | }, |
64 | //////////////////////////////////////////////////////////////////// | 65 | //////////////////////////////////////////////////////////////////// |
65 | // | 66 | // |
66 | _headFragment: { | 67 | _headFragment: { |
67 | value: null | 68 | value: null |
68 | }, | 69 | }, |
69 | //////////////////////////////////////////////////////////////////// | 70 | //////////////////////////////////////////////////////////////////// |
70 | // | 71 | // |
71 | _observer: { | 72 | _observer: { |
72 | value: {head: null, body: null} | 73 | value: {head: null, body: null} |
73 | }, | 74 | }, |
74 | //////////////////////////////////////////////////////////////////// | 75 | //////////////////////////////////////////////////////////////////// |
75 | // | 76 | // |
76 | content: { | 77 | content: { |
77 | value: null | 78 | value: null |
78 | }, | 79 | }, |
79 | //////////////////////////////////////////////////////////////////// | 80 | //////////////////////////////////////////////////////////////////// |
@@ -92,29 +93,29 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
92 | value: null | 93 | value: null |
93 | }, | 94 | }, |
94 | //////////////////////////////////////////////////////////////////// | 95 | //////////////////////////////////////////////////////////////////// |
95 | // | 96 | // |
96 | baseHref: { | 97 | baseHref: { |
97 | get: function() {return this._baseHref;}, | 98 | get: function() {return this._baseHref;}, |
98 | set: function(value) {this._baseHref = value;} | 99 | set: function(value) {this._baseHref = value;} |
99 | }, | 100 | }, |
100 | //////////////////////////////////////////////////////////////////// | 101 | //////////////////////////////////////////////////////////////////// |
101 | // | 102 | // |
102 | _document: { | 103 | _document: { |
103 | value: null | 104 | value: null |
104 | }, | 105 | }, |
105 | //////////////////////////////////////////////////////////////////// | 106 | //////////////////////////////////////////////////////////////////// |
106 | // | 107 | // |
107 | document: { | 108 | document: { |
108 | get: function() {return this._document;}, | 109 | get: function() {return this._document;}, |
109 | set: function(value) {this._document = value;} | 110 | set: function(value) {this._document = value;} |
110 | }, | 111 | }, |
111 | //////////////////////////////////////////////////////////////////// | 112 | //////////////////////////////////////////////////////////////////// |
112 | // | 113 | // |
113 | _documentRoot: { | 114 | _documentRoot: { |
114 | value: null | 115 | value: null |
115 | }, | 116 | }, |
116 | //////////////////////////////////////////////////////////////////// | 117 | //////////////////////////////////////////////////////////////////// |
117 | // | 118 | // |
118 | documentRoot: { | 119 | documentRoot: { |
119 | get: function() {return this._documentRoot;}, | 120 | get: function() {return this._documentRoot;}, |
120 | set: function(value) {this._documentRoot = value;} | 121 | set: function(value) {this._documentRoot = value;} |
@@ -140,12 +141,12 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
140 | }, | 141 | }, |
141 | //////////////////////////////////////////////////////////////////// | 142 | //////////////////////////////////////////////////////////////////// |
142 | // | 143 | // |
143 | initialize: { | 144 | initialize: { |
144 | value: function (parent) { | 145 | value: function (parent) { |
145 | //Creating iFrame for view | 146 | //Creating iFrame for view |
146 | this.iframe = document.createElement("iframe"); | 147 | this.iframe = document.createElement("iframe"); |
147 | //Setting default styles | 148 | //Setting default styles |
148 | this.iframe.style.border = "none"; | 149 | this.iframe.style.border = "none"; |
149 | this.iframe.style.background = "#FFF"; | 150 | this.iframe.style.background = "#FFF"; |
150 | this.iframe.style.height = "100%"; | 151 | this.iframe.style.height = "100%"; |
151 | this.iframe.style.width = "100%"; | 152 | this.iframe.style.width = "100%"; |
@@ -154,190 +155,190 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, { | |||
154 | } | 155 | } |
155 | }, | 156 | }, |
156 | //////////////////////////////////////////////////////////////////// | 157 | //////////////////////////////////////////////////////////////////// |
157 | // | 158 | // |
158 | render: { | 159 | render: { |
159 | value: function (callback, template, viewCallback) { | 160 | value: function (callback, template, viewCallback) { |
160 | //TODO: Remove, this is a temp patch for webRequest API gate | 161 | //TODO: Remove, this is a temp patch for webRequest API gate |
161 | this.application.ninja.documentController.redirectRequests = false; | 162 | this.application.ninja.documentController.redirectRequests = false; |
162 | //Storing callback for dispatch ready | 163 | //Storing callback for dispatch ready |
163 | this._callback = callback; | 164 | this._callback = callback; |
164 | this._template = template; | 165 | this._template = template; |
165 | this._viewCallback = viewCallback; | 166 | this._viewCallback = viewCallback; |
166 | //Adding listener to know when template is loaded to then load user content | 167 | //Adding listener to know when template is loaded to then load user content |
167 | this.iframe.addEventListener("load", this.onTemplateLoad.bind(this), false); | 168 | this.iframe.addEventListener("load", this.onTemplateLoad.bind(this), false); |
168 | //TODO: Add source parameter and root (optional) | 169 | //TODO: Add source parameter and root (optional) |
169 | if (template && template.type === 'banner' && template.size) { | 170 | if (template && template.type === 'banner' && template.size) { |
170 | this.iframe.src = "js/document/templates/banner/index.html"; | 171 | this.iframe.src = "js/document/templates/banner/index.html"; |
171 | } else { | 172 | } else { |
172 | this.iframe.src = "js/document/templates/html/index.html"; | 173 | this.iframe.src = "js/document/templates/html/index.html"; |
173 | } | 174 | } |
174 | } | 175 | } |
175 | }, | 176 | }, |
176 | //////////////////////////////////////////////////////////////////// | 177 | //////////////////////////////////////////////////////////////////// |
177 | // | 178 | // |
178 | onTemplateLoad: { | 179 | onTemplateLoad: { |
179 | value: function (e) { | 180 | value: function (e) { |
180 | //TODO: Remove, this is a temp patch for webRequest API gate | 181 | //TODO: Remove, this is a temp patch for webRequest API gate |
181 | this.application.ninja.documentController.redirectRequests = true; | 182 | this.application.ninja.documentController.redirectRequests = true; |
182 | //TODO: Add support to constructing URL with a base HREF | 183 | //TODO: Add support to constructing URL with a base HREF |
183 | var basetag = this.content.document.getElementsByTagName('base'); | 184 | var basetag = this.content.document.getElementsByTagName('base'); |
184 | //Removing event | 185 | //Removing event |
185 | this.iframe.removeEventListener("load", this.onTemplateLoad.bind(this), false); | 186 | this.iframe.removeEventListener("load", this.onTemplateLoad.bind(this), false); |