diff options
-rwxr-xr-x | js/components/ui/color-chip.reel/color-chip.js | 13 | ||||
-rwxr-xr-x | js/controllers/document-controller.js | 17 | ||||
-rwxr-xr-x | js/controllers/elements/body-controller.js | 2 | ||||
-rwxr-xr-x | js/document/document-html.js | 11 | ||||
-rwxr-xr-x | js/document/models/base.js | 18 | ||||
-rwxr-xr-x | js/document/models/html.js | 17 | ||||
-rwxr-xr-x | js/document/views/design.js | 34 | ||||
-rwxr-xr-x | js/helper-classes/3D/view-utils.js | 9 | ||||
-rw-r--r-- | js/mediators/io-mediator.js | 79 | ||||
-rwxr-xr-x | js/ninja.reel/ninja.js | 2 | ||||
-rwxr-xr-x | js/panels/properties.reel/properties.js | 25 | ||||
-rwxr-xr-x | js/stage/stage.reel/stage.js | 69 |
12 files changed, 164 insertions, 132 deletions
diff --git a/js/components/ui/color-chip.reel/color-chip.js b/js/components/ui/color-chip.reel/color-chip.js index 4e64b2e8..630dcd4b 100755 --- a/js/components/ui/color-chip.reel/color-chip.js +++ b/js/components/ui/color-chip.reel/color-chip.js | |||
@@ -33,6 +33,11 @@ var ColorChip = exports.ColorChip = Montage.create(Component, { | |||
33 | value: {r:0, g:0, b:0, a:1, css:'rgb(0,0,0)', mode:'rgb'} | 33 | value: {r:0, g:0, b:0, a:1, css:'rgb(0,0,0)', mode:'rgb'} |
34 | }, | 34 | }, |
35 | 35 | ||
36 | chipBtn: { | ||
37 | serializable: true, | ||
38 | value: null | ||
39 | }, | ||
40 | |||
36 | changeDelegate: { | 41 | changeDelegate: { |
37 | value: function(event) { | 42 | value: function(event) { |
38 | this.color = event._event.color; | 43 | this.color = event._event.color; |
@@ -60,7 +65,7 @@ var ColorChip = exports.ColorChip = Montage.create(Component, { | |||
60 | this.icon.style.display = "none"; | 65 | this.icon.style.display = "none"; |
61 | } | 66 | } |
62 | 67 | ||
63 | this.chipBtn.props = {side: 'right', align: 'top', wheel: true, palette: true, gradient: true, image: true, offset: this.offset}; | 68 | this.chipBtn.props = {side: 'right', align: 'top', wheel: true, palette: true, gradient: true, image: true, nocolor: true, offset: this.offset}; |
64 | this.application.ninja.colorController.addButton(this.mode, this.chipBtn); | 69 | this.application.ninja.colorController.addButton(this.mode, this.chipBtn); |
65 | 70 | ||
66 | } | 71 | } |
@@ -80,9 +85,13 @@ var ColorChip = exports.ColorChip = Montage.create(Component, { | |||
80 | b = colorObj.value.b; | 85 | b = colorObj.value.b; |
81 | a = colorObj.value.a; | 86 | a = colorObj.value.a; |
82 | css = colorObj.css; | 87 | css = colorObj.css; |
88 | this.chipBtn.color(mode, {wasSetByCode: true, type: 'change', color: {r: r, g: g, b: b}, css: css}); | ||
89 | } else { | ||
90 | mode = "nocolor"; | ||
91 | this.chipBtn.color(mode, null); | ||
92 | |||
83 | } | 93 | } |
84 | 94 | ||
85 | this.chipBtn.color(mode, {wasSetByCode: true, type: 'change', color: {r: r, g: g, b: b}, css: css}); | ||
86 | this.chipBtn.addEventListener("change", this, false); | 95 | this.chipBtn.addEventListener("change", this, false); |
87 | } | 96 | } |
88 | } | 97 | } |
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index f1523d87..f6b850b2 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -145,18 +145,19 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
145 | value: function(event) { | 145 | value: function(event) { |
146 | // | 146 | // |
147 | if((typeof this.activeDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){ | 147 | if((typeof this.activeDocument !== "undefined") && this.application.ninja.coreIoApi.cloudAvailable()){ |
148 | // | 148 | //Currently we don't need a callback handler |
149 | this.activeDocument.model.save(this.testCallback.bind(this)); //this.fileSaveResult.bind(this) | 149 | //this.activeDocument.model.save(this.saveExecuted.bind(this)); |
150 | this.activeDocument.model.save(); | ||
150 | } else { | 151 | } else { |
151 | //Error: | 152 | //Error: cloud not available and/or no active document |
152 | } | 153 | } |
153 | } | 154 | } |
154 | }, | 155 | }, |
155 | testCallback: { | 156 | //////////////////////////////////////////////////////////////////// |
157 | // | ||
158 | saveExecuted: { | ||
156 | value: function (value) { | 159 | value: function (value) { |
157 | console.log(value); | 160 | //File saved, any callbacks or events should go here |
158 | //TODO: Move this to the model.save() | ||
159 | this.activeDocument.model.needsSave = false; | ||
160 | } | 161 | } |
161 | }, | 162 | }, |
162 | //////////////////////////////////////////////////////////////////// | 163 | //////////////////////////////////////////////////////////////////// |
@@ -489,6 +490,8 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
489 | if(currentDocument) { | 490 | if(currentDocument) { |
490 | currentDocument.serializeDocument(); | 491 | currentDocument.serializeDocument(); |
491 | 492 | ||
493 | this.application.ninja.selectionController._selectionContainer = null; | ||
494 | currentDocument.model.views.design.propertiesPanel.clear(); | ||
492 | currentDocument.model.views.design.hide(); | 495 | currentDocument.model.views.design.hide(); |
493 | } | 496 | } |
494 | 497 | ||
diff --git a/js/controllers/elements/body-controller.js b/js/controllers/elements/body-controller.js index 5c23dcf7..7a3a66f5 100755 --- a/js/controllers/elements/body-controller.js +++ b/js/controllers/elements/body-controller.js | |||
@@ -30,7 +30,7 @@ exports.BodyController = Montage.create(ElementController, { | |||
30 | value: function(el, p) { | 30 | value: function(el, p) { |
31 | switch(p) { | 31 | switch(p) { |
32 | case "background" : | 32 | case "background" : |
33 | return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el, "background-color", true, true)); | 33 | return this.application.ninja.colorController.getColorObjFromCss(this.application.ninja.stylesController.getElementStyle(el, "background-color", false, true)); |
34 | case "border": | 34 | case "border": |
35 | return 0; | 35 | return 0; |
36 | case "height": | 36 | case "height": |
diff --git a/js/document/document-html.js b/js/document/document-html.js index 0037c94d..983da966 100755 --- a/js/document/document-html.js +++ b/js/document/document-html.js | |||
@@ -139,7 +139,11 @@ exports.HtmlDocument = Montage.create(Component, { | |||
139 | //this.gridVerticalSpacing = this.application.ninja.stage.drawUtils.gridVerticalSpacing; | 139 | //this.gridVerticalSpacing = this.application.ninja.stage.drawUtils.gridVerticalSpacing; |
140 | 140 | ||
141 | // Serialize the current scroll position | 141 | // Serialize the current scroll position |
142 | // TODO: Implement | 142 | this.model.scrollLeft = this.application.ninja.stage._scrollLeft; |
143 | this.model.scrollTop = this.application.ninja.stage._scrollTop; | ||
144 | this.model.userContentLeft = this.application.ninja.stage._userContentLeft; | ||
145 | this.model.userContentTop = this.application.ninja.stage._userContentTop; | ||
146 | |||
143 | 147 | ||
144 | // Serialize the selection | 148 | // Serialize the selection |
145 | this.model.selection = this.application.ninja.selectedElements.slice(0); | 149 | this.model.selection = this.application.ninja.selectedElements.slice(0); |
@@ -163,7 +167,10 @@ exports.HtmlDocument = Montage.create(Component, { | |||
163 | //this.application.ninja.stage.drawUtils.gridVerticalSpacing = this.gridVerticalSpacing; | 167 | //this.application.ninja.stage.drawUtils.gridVerticalSpacing = this.gridVerticalSpacing; |
164 | 168 | ||
165 | // Deserialize the current scroll position | 169 | // Deserialize the current scroll position |
166 | // TODO: Implement | 170 | this.application.ninja.stage._scrollLeft = this.model.scrollLeft; |
171 | this.application.ninja.stage._scrollTop = this.model.scrollTop; | ||
172 | this.application.ninja.stage._userContentLeft = this.model.userContentLeft; | ||
173 | this.application.ninja.stage._userContentTop = this.model.userContentTop; | ||
167 | 174 | ||
168 | this.application.ninja.selectedElements = this.model.selection.slice(0); | 175 | this.application.ninja.selectedElements = this.model.selection.slice(0); |
169 | 176 | ||
diff --git a/js/document/models/base.js b/js/document/models/base.js index df341b2f..c99e36c7 100755 --- a/js/document/models/base.js +++ b/js/document/models/base.js | |||
@@ -151,7 +151,7 @@ exports.BaseDocumentModel = Montage.create(Component, { | |||
151 | head: this.views.design.iframe.contentWindow.document.head, | 151 | head: this.views.design.iframe.contentWindow.document.head, |
152 | body: this.views.design.iframe.contentWindow.document.body, | 152 | body: this.views.design.iframe.contentWindow.document.body, |
153 | mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator | 153 | mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator |
154 | }, callback.bind(this)); | 154 | }, this.handleSaved.bind({callback: callback, model: this})); |
155 | } else { | 155 | } else { |
156 | //TODO: Add logic to save code view data | 156 | //TODO: Add logic to save code view data |
157 | } | 157 | } |
@@ -180,7 +180,7 @@ exports.BaseDocumentModel = Montage.create(Component, { | |||
180 | head: this.views.design.iframe.contentWindow.document.head, | 180 | head: this.views.design.iframe.contentWindow.document.head, |
181 | body: this.views.design.iframe.contentWindow.document.body, | 181 | body: this.views.design.iframe.contentWindow.document.body, |
182 | mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator | 182 | mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator |
183 | }, callback.bind(this)); | 183 | }, this.handleSaved.bind({callback: callback, model: this})); |
184 | } else { | 184 | } else { |
185 | //TODO: Add logic to save code view data | 185 | //TODO: Add logic to save code view data |
186 | } | 186 | } |
@@ -190,7 +190,7 @@ exports.BaseDocumentModel = Montage.create(Component, { | |||
190 | //////////////////////////////////////////////////////////////////// | 190 | //////////////////////////////////////////////////////////////////// |
191 | // | 191 | // |
192 | saveAs: { | 192 | saveAs: { |
193 | value: function () { | 193 | value: function (callback) { |
194 | // | 194 | // |
195 | if (this.needsSave) { | 195 | if (this.needsSave) { |
196 | //Save current file on memory | 196 | //Save current file on memory |
@@ -201,6 +201,18 @@ exports.BaseDocumentModel = Montage.create(Component, { | |||
201 | }, | 201 | }, |
202 | //////////////////////////////////////////////////////////////////// | 202 | //////////////////////////////////////////////////////////////////// |
203 | // | 203 | // |
204 | handleSaved: { | ||
205 | value: function (result) { | ||
206 | // | ||
207 | if (result.status === 204) { | ||
208 | this.model.needsSave = false; | ||
209 | } | ||
210 | // | ||
211 | if (this.callback) this.callback(result); | ||
212 | } | ||
213 | }, | ||
214 | //////////////////////////////////////////////////////////////////// | ||
215 | // | ||
204 | close: { | 216 | close: { |
205 | value: function (view, callback) { | 217 | value: function (view, callback) { |
206 | //Outcome of close (pending on save logic) | 218 | //Outcome of close (pending on save logic) |
diff --git a/js/document/models/html.js b/js/document/models/html.js index 67457863..a97b4b5a 100755 --- a/js/document/models/html.js +++ b/js/document/models/html.js | |||
@@ -28,6 +28,23 @@ exports.HtmlDocumentModel = Montage.create(BaseDocumentModel, { | |||
28 | value: false | 28 | value: false |
29 | }, | 29 | }, |
30 | //////////////////////////////////////////////////////////////////// | 30 | //////////////////////////////////////////////////////////////////// |
31 | // | ||
32 | scrollLeft: { | ||
33 | value: null | ||
34 | }, | ||
35 | |||
36 | scrollTop: { | ||