diff options
Diffstat (limited to 'js/controllers')
-rwxr-xr-x | js/controllers/document-controller.js | 74 | ||||
-rwxr-xr-x | js/controllers/elements/element-controller.js | 16 | ||||
-rwxr-xr-x | js/controllers/elements/shapes-controller.js | 20 | ||||
-rwxr-xr-x | js/controllers/elements/stage-controller.js | 2 |
4 files changed, 87 insertions, 25 deletions
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index 0d9b37ed..1cb66d3f 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -10,8 +10,10 @@ var Montage = require("montage/core/core").Montage, | |||
10 | Component = require("montage/ui/component").Component, | 10 | Component = require("montage/ui/component").Component, |
11 | Uuid = require("montage/core/uuid").Uuid, | 11 | Uuid = require("montage/core/uuid").Uuid, |
12 | HTMLDocument = require("js/document/html-document").HTMLDocument, | 12 | HTMLDocument = require("js/document/html-document").HTMLDocument, |
13 | TextDocument = require("js/document/text-document").TextDocument, | 13 | TextDocument = require("js/document/text-document").TextDocument; |
14 | DocumentController; | 14 | |
15 | // New Document Objects | ||
16 | var Document = require("js/document/document-html").HtmlDocument; | ||
15 | //////////////////////////////////////////////////////////////////////// | 17 | //////////////////////////////////////////////////////////////////////// |
16 | // | 18 | // |
17 | var DocumentController = exports.DocumentController = Montage.create(Component, { | 19 | var DocumentController = exports.DocumentController = Montage.create(Component, { |
@@ -19,6 +21,10 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
19 | value: false | 21 | value: false |
20 | }, | 22 | }, |
21 | 23 | ||
24 | webTemplate: { | ||
25 | value: false | ||
26 | }, | ||
27 | |||
22 | _documents: { | 28 | _documents: { |
23 | value: [] | 29 | value: [] |
24 | }, | 30 | }, |
@@ -65,6 +71,10 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
65 | this.eventManager.addEventListener("styleSheetDirty", this, false); | 71 | this.eventManager.addEventListener("styleSheetDirty", this, false); |
66 | 72 | ||
67 | this.eventManager.addEventListener("addComponentFirstDraw", this, false); | 73 | this.eventManager.addEventListener("addComponentFirstDraw", this, false); |
74 | |||
75 | // Temporary add listeners for the new stage templates | ||
76 | this.eventManager.addEventListener("executeWebpageOpen", this, false); | ||
77 | this.eventManager.addEventListener("executeNewWebpage", this, false); | ||
68 | } | 78 | } |
69 | }, | 79 | }, |
70 | 80 | ||
@@ -130,6 +140,20 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
130 | } | 140 | } |
131 | }, | 141 | }, |
132 | 142 | ||
143 | handleExecuteWebpageOpen: { | ||
144 | value: function(event) { | ||
145 | this.webTemplate = true; | ||
146 | this.handleExecuteFileOpen(event); | ||
147 | } | ||
148 | }, | ||
149 | |||
150 | handleExecuteNewWebpage: { | ||
151 | value: function(event) { | ||
152 | this.webTemplate = true; | ||
153 | this.handleExecuteNewFile(event); | ||
154 | } | ||
155 | }, | ||
156 | |||
133 | handleExecuteNewFile: { | 157 | handleExecuteNewFile: { |
134 | value: function(event) { | 158 | value: function(event) { |
135 | var newFileSettings = event._event.settings || {}; | 159 | var newFileSettings = event._event.settings || {}; |
@@ -235,7 +259,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
235 | this.creatingNewFile = true;//flag for timeline to identify new file flow | 259 | this.creatingNewFile = true;//flag for timeline to identify new file flow |
236 | 260 | ||
237 | this.application.ninja.ioMediator.fileOpen(response.uri, this.openFileCallback.bind(this)); | 261 | this.application.ninja.ioMediator.fileOpen(response.uri, this.openFileCallback.bind(this)); |
238 | }else if(!!response && !response.success){ | 262 | } else if(!!response && !response.success){ |
239 | //Todo: restrict directory path to the sandbox, in the dialog itself | 263 | //Todo: restrict directory path to the sandbox, in the dialog itself |
240 | alert("Unable to create file.\n [Error: Forbidden directory]"); | 264 | alert("Unable to create file.\n [Error: Forbidden directory]"); |
241 | } | 265 | } |
@@ -268,7 +292,12 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
268 | this.isNewFilePath = false;//reset path identifier flag | 292 | this.isNewFilePath = false;//reset path identifier flag |
269 | 293 | ||
270 | //Sending full response object | 294 | //Sending full response object |
271 | this.openDocument(response); | 295 | // TODO: Unify those 2 methods. Using if/else for the new template |
296 | if(this.webTemplate) { | ||
297 | this.openWebDocument(response); | ||
298 | } else { | ||
299 | this.openDocument(response); | ||
300 | } | ||
272 | } else if (!!response && (response.status === 404)){ | 301 | } else if (!!response && (response.status === 404)){ |
273 | alert("Unable to open file.\n [Error: File does not exist]"); | 302 | alert("Unable to open file.\n [Error: File does not exist]"); |
274 | } else if (!!response && (response.status === 500)){ | 303 | } else if (!!response && (response.status === 500)){ |
@@ -311,7 +340,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
311 | this.documentHackReference = doc; | 340 | this.documentHackReference = doc; |
312 | // | 341 | // |
313 | switch (doc.extension) { | 342 | switch (doc.extension) { |
314 | case 'html': case 'html': | 343 | case 'html': |
315 | //Open in designer view | 344 | //Open in designer view |
316 | Montage.create(HTMLDocument).initialize(doc, Uuid.generate(), this._createIframeElement(), this._onOpenDocument.bind(this)); | 345 | Montage.create(HTMLDocument).initialize(doc, Uuid.generate(), this._createIframeElement(), this._onOpenDocument.bind(this)); |
317 | break; | 346 | break; |
@@ -327,6 +356,30 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
327 | } | 356 | } |
328 | } | 357 | } |
329 | }, | 358 | }, |
359 | openWebDocument: { | ||
360 | value: function(doc) { | ||
361 | // TODO: HACKS to remove | ||
362 | this.documentHackReference = doc; | ||
363 | document.getElementById("iframeContainer").style.overflow = "hidden"; | ||
364 | // | ||
365 | switch (doc.extension) { | ||
366 | case 'html': | ||
367 | //Open in designer view | ||
368 | this._hackRootFlag = false; | ||
369 | Montage.create(Document).init(doc, this, this._onOpenDocument); | ||
370 | break; | ||
371 | default: | ||
372 | //Open in code view | ||
373 | var code = Montage.create(TextDocument, {"source": {value: doc.content}}), docuuid = Uuid.generate(), textArea; | ||
374 | textArea = this.application.ninja.stage.stageView.createTextAreaElement(docuuid); | ||
375 | code.initialize(doc, docuuid, textArea, textArea.parentNode); | ||
376 | //code.init(doc.name, doc.uri, doc.extension, null, docuuid); | ||
377 | code.textArea.value = doc.content; | ||
378 | this.application.ninja.stage.stageView.createTextView(code); | ||
379 | break; | ||
380 | } | ||
381 | } | ||
382 | }, | ||
330 | //////////////////////////////////////////////////////////////////// | 383 | //////////////////////////////////////////////////////////////////// |
331 | 384 | ||
332 | openProjectWithURI: { | 385 | openProjectWithURI: { |
@@ -428,12 +481,15 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
428 | 481 | ||
429 | this.activeDocument = doc; | 482 | this.activeDocument = doc; |
430 | 483 | ||
431 | this._showCurrentDocument(); | 484 | if(!this.webTemplate) { |
485 | this._showCurrentDocument(); | ||
486 | } | ||
487 | |||
488 | this.webTemplate = false; | ||
432 | 489 | ||
433 | NJevent("onOpenDocument", doc); | 490 | NJevent("onOpenDocument", doc); |
434 | // appDelegateModule.MyAppDelegate.onSetActiveDocument(); | ||
435 | 491 | ||
436 | this.application.ninja.stage.stageView.showCodeViewBar(false); | 492 | this.application.ninja.stage.stageView.showCodeViewBar(false); |
437 | this.application.ninja.stage.stageView.restoreAllPanels(); | 493 | this.application.ninja.stage.stageView.restoreAllPanels(); |
438 | } | 494 | } |
439 | }, | 495 | }, |
@@ -528,7 +584,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
528 | this.application.ninja.stage.stageView.showRulers(); | 584 | this.application.ninja.stage.stageView.showRulers(); |
529 | }else{ | 585 | }else{ |
530 | //hide the iframe when switching to code view | 586 | //hide the iframe when switching to code view |
531 | document.getElementById("iframeContainer").style.display="none"; | 587 | document.getElementById("iframeContainer").style.display = "none"; |
532 | } | 588 | } |
533 | } | 589 | } |
534 | } | 590 | } |
diff --git a/js/controllers/elements/element-controller.js b/js/controllers/elements/element-controller.js index 35a543ac..452d09f1 100755 --- a/js/controllers/elements/element-controller.js +++ b/js/controllers/elements/element-controller.js | |||
@@ -152,16 +152,24 @@ exports.ElementController = Montage.create(Component, { | |||
152 | this.setProperty(el, "border-image", color.color.css); | 152 | this.setProperty(el, "border-image", color.color.css); |
153 | this.setProperty(el, "border-color", "none"); | 153 | this.setProperty(el, "border-color", "none"); |
154 | if(color.borderInfo) { | 154 | if(color.borderInfo) { |
155 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits); | 155 | if(color.borderInfo.borderWidth) { |
156 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | 156 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits); |
157 | } | ||
158 | if(color.borderInfo.borderStyle) { | ||
159 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | ||
160 | } | ||
157 | } | 161 | } |
158 | break; | 162 | break; |
159 | default: | 163 | default: |
160 | this.setProperty(el, "border-image", "none"); | 164 | this.setProperty(el, "border-image", "none"); |
161 | this.setProperty(el, "border-color", color.color.css); | 165 | this.setProperty(el, "border-color", color.color.css); |
162 | if(color.borderInfo) { | 166 | if(color.borderInfo) { |
163 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits); | 167 | if(color.borderInfo.borderWidth) { |
164 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | 168 | this.setProperty(el, "border-width", color.borderInfo.borderWidth + color.borderInfo.borderUnits); |
169 | } | ||
170 | if(color.borderInfo.borderStyle) { | ||
171 | this.setProperty(el, "border-style", color.borderInfo.borderStyle); | ||
172 | } | ||
165 | } | 173 | } |
166 | } | 174 | } |
167 | } | 175 | } |
diff --git a/js/controllers/elements/shapes-controller.js b/js/controllers/elements/shapes-controller.js index e9dde5fc..8d7b74f0 100755 --- a/js/controllers/elements/shapes-controller.js +++ b/js/controllers/elements/shapes-controller.js | |||
@@ -20,8 +20,10 @@ exports.ShapesController = Montage.create(CanvasController, { | |||
20 | color; | 20 | color; |
21 | switch(p) { | 21 | switch(p) { |
22 | case "strokeSize": |