diff options
Diffstat (limited to 'js/controllers/document-controller.js')
-rwxr-xr-x | js/controllers/document-controller.js | 225 |
1 files changed, 72 insertions, 153 deletions
diff --git a/js/controllers/document-controller.js b/js/controllers/document-controller.js index 1e894f02..cf46e73e 100755 --- a/js/controllers/document-controller.js +++ b/js/controllers/document-controller.js | |||
@@ -21,10 +21,6 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
21 | value: false | 21 | value: false |
22 | }, | 22 | }, |
23 | 23 | ||
24 | webTemplate: { | ||
25 | value: false | ||
26 | }, | ||
27 | |||
28 | _documents: { | 24 | _documents: { |
29 | value: [] | 25 | value: [] |
30 | }, | 26 | }, |
@@ -75,10 +71,6 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
75 | this.eventManager.addEventListener("executeFileCloseAll", this, false); | 71 | this.eventManager.addEventListener("executeFileCloseAll", this, false); |
76 | 72 | ||
77 | this.eventManager.addEventListener("styleSheetDirty", this, false); | 73 | this.eventManager.addEventListener("styleSheetDirty", this, false); |
78 | |||
79 | // Temporary add listeners for the new stage templates | ||
80 | this.eventManager.addEventListener("executeWebpageOpen", this, false); | ||
81 | this.eventManager.addEventListener("executeNewWebpage", this, false); | ||
82 | } | 74 | } |
83 | }, | 75 | }, |
84 | 76 | ||
@@ -138,20 +130,6 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
138 | } | 130 | } |
139 | }, | 131 | }, |
140 | 132 | ||
141 | handleExecuteWebpageOpen: { | ||
142 | value: function(event) { | ||
143 | this.webTemplate = true; | ||
144 | this.handleExecuteFileOpen(event); | ||
145 | } | ||
146 | }, | ||
147 | |||
148 | handleExecuteNewWebpage: { | ||
149 | value: function(event) { | ||
150 | this.webTemplate = true; | ||
151 | this.handleExecuteNewFile(event); | ||
152 | } | ||
153 | }, | ||
154 | |||
155 | handleExecuteNewFile: { | 133 | handleExecuteNewFile: { |
156 | value: function(event) { | 134 | value: function(event) { |
157 | var newFileSettings = event._event.settings || {}; | 135 | var newFileSettings = event._event.settings || {}; |
@@ -177,6 +155,8 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
177 | testCallback: { | 155 | testCallback: { |
178 | value: function (value) { | 156 | value: function (value) { |
179 | console.log(value); | 157 | console.log(value); |
158 | //TODO: Move this to the model.save() | ||
159 | this.activeDocument.model.needsSave = false; | ||
180 | } | 160 | } |
181 | }, | 161 | }, |
182 | //////////////////////////////////////////////////////////////////// | 162 | //////////////////////////////////////////////////////////////////// |
@@ -302,12 +282,8 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
302 | this.isNewFilePath = false;//reset path identifier flag | 282 | this.isNewFilePath = false;//reset path identifier flag |
303 | 283 | ||
304 | //Sending full response object | 284 | //Sending full response object |
305 | // TODO: Unify those 2 methods. Using if/else for the new template | 285 | this.openDocument(response); |
306 | if(this.webTemplate) { | 286 | |
307 | this.openWebDocument(response); | ||
308 | } else { | ||
309 | this.openDocument(response); | ||
310 | } | ||
311 | } else if (!!response && (response.status === 404)){ | 287 | } else if (!!response && (response.status === 404)){ |
312 | alert("Unable to open file.\n [Error: File does not exist]"); | 288 | alert("Unable to open file.\n [Error: File does not exist]"); |
313 | } else if (!!response && (response.status === 500)){ | 289 | } else if (!!response && (response.status === 500)){ |
@@ -343,30 +319,7 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
343 | }, | 319 | }, |
344 | 320 | ||
345 | //////////////////////////////////////////////////////////////////// | 321 | //////////////////////////////////////////////////////////////////// |
346 | openDocument: { | 322 | openDocument: { |
347 | value: function(doc) { | ||
348 | |||
349 | // | ||
350 | this.documentHackReference = doc; | ||
351 | // | ||
352 | switch (doc.extension) { | ||
353 | case 'html': | ||
354 | //Open in designer view | ||
355 | Montage.create(HTMLDocument).initialize(doc, Uuid.generate(), this._createIframeElement(), this._onOpenDocument.bind(this)); | ||
356 | break; | ||
357 | default: | ||
358 | //Open in code view | ||
359 | var code = Montage.create(TextDocument, {"source": {value: doc.content}}), docuuid = Uuid.generate(), textArea; | ||
360 | textArea = this.application.ninja.stage.stageView.createTextAreaElement(docuuid); | ||
361 | code.initialize(doc, docuuid, textArea, textArea.parentNode); | ||
362 | //code.init(doc.name, doc.uri, doc.extension, null, docuuid); | ||
363 | code.textArea.value = doc.content; | ||
364 | this.application.ninja.stage.stageView.createTextView(code); | ||
365 | break; | ||
366 | } | ||
367 | } | ||
368 | }, | ||
369 | openWebDocument: { | ||
370 | value: function(doc) { | 323 | value: function(doc) { |
371 | var template, dimensions; | 324 | var template, dimensions; |
372 | if (doc.content.body.indexOf('Ninja-Banner Dimensions@@@') !== -1) { | 325 | if (doc.content.body.indexOf('Ninja-Banner Dimensions@@@') !== -1) { |
@@ -482,14 +435,14 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
482 | } | 435 | } |
483 | this.application.ninja.stage.stageView.switchDocument(this._documents[nextDocumentIndex]); | 436 | this.application.ninja.stage.stageView.switchDocument(this._documents[nextDocumentIndex]); |
484 | if(typeof doc.stopVideos !== "undefined"){doc.stopVideos();} | 437 | if(typeof doc.stopVideos !== "undefined"){doc.stopVideos();} |
485 | this._removeDocumentView(doc.container); | 438 | doc.container.parentNode.removeChild(doc.container); |
486 | }else if(this._documents.length === 0){ | 439 | }else if(this._documents.length === 0){ |
487 | // See above | 440 | // See above |
488 | }else{//closing inactive document tab - just clear DOM | 441 | }else{//closing inactive document tab - just clear DOM |
489 | if(typeof doc.pauseAndStopVideos !== "undefined"){ | 442 | if(typeof doc.pauseAndStopVideos !== "undefined"){ |
490 | doc.pauseAndStopVideos(); | 443 | doc.pauseAndStopVideos(); |
491 | } | 444 | } |
492 | this._removeDocumentView(doc.container); | 445 | doc.container.parentNode.removeChild(doc.container); |
493 | } | 446 | } |
494 | 447 | ||
495 | NJevent("closeDocument", doc.uri); | 448 | NJevent("closeDocument", doc.uri); |
@@ -498,41 +451,79 @@ var DocumentController = exports.DocumentController = Montage.create(Component, | |||
498 | } | 451 | } |
499 | }, | 452 | }, |
500 | 453 | ||
501 | // Document has been loaded into the Iframe. Dispatch the event. | 454 | // Open document callback |
502 | // Event Detail: Contains the current ActiveDocument | ||
503 | _onOpenDocument: { | 455 | _onOpenDocument: { |
504 | value: function(doc){ | 456 | value: function(doc){ |
505 | this.application.ninja.currentDocument = doc; | ||
506 | this._hideCurrentDocument(); | ||
507 | this.application.ninja.stage.stageView.hideOtherDocuments(doc.uuid); | ||
508 | 457 | ||
509 | this.application.ninja.stage.hideCanvas(false); | 458 | if(this.activeDocument) { |
459 | // There is a document currently opened | ||
510 | 460 | ||
511 | this.activeDocument = doc; | ||
512 | 461 | ||
513 | if(!this.webTemplate) { | 462 | |
514 | this._showCurrentDocument(); | 463 | //this.application.ninja.stage.stageView.showCodeViewBar(false); |
464 | //this.application.ninja.stage.stageView.restoreAllPanels(); | ||
465 | |||
466 | // | ||
467 | /* | ||
468 | if(this.activeDocument.currentView === "design"){ | ||
469 | this.activeDocument.saveAppState(); | ||
470 | this.activeDocument.container.parentNode.style["display"] = "none"; | ||
471 | this.application.ninja.stage.hideCanvas(true); | ||
472 | this.application.ninja.stage.stageView.hideRulers(); | ||
473 | } | ||
474 | |||
475 | this.activeDocument.container.style["display"] = "none"; | ||
476 | */ | ||
477 | |||
478 | /* | ||
479 | this.activeDocument.container.style["display"] = "block"; | ||
480 | if(this.activeDocument.currentView === "design"){ | ||
481 | this.activeDocument.container.parentNode.style["display"] = "block"; | ||
482 | this.activeDocument.restoreAppState(); | ||
483 | }else{ | ||
484 | //hide the iframe when switching to code view | ||
485 | document.getElementById("iframeContainer").style.display = "none"; | ||
486 | } | ||
487 | |||
488 | */ | ||
489 | // hide current document | ||
515 | } else { | 490 | } else { |
516 | this.application.ninja.stage.stageView.showRulers(); | 491 | // There is no document opened |
517 | } | 492 | |
493 | // Set the active document | ||
494 | this.activeDocument = doc; | ||
518 | 495 | ||
519 | this.webTemplate = false; | 496 | // Show the canvas |
497 | this.application.ninja.stage.hideCanvas(false); | ||
520 | 498 | ||
521 | this._initializeBodyStyles(); | 499 | // Show the rulers |
522 | NJevent("onOpenDocument", doc); | 500 | // TODO: Move this indo design view |
501 | this.application.ninja.stage.stageView.showRulers(); | ||
523 | 502 | ||
524 | this.application.ninja.stage.stageView.showCodeViewBar(false); | 503 | // Initialize the documentRoot styles |
525 | this.application.ninja.stage.stageView.restoreAllPanels(); | 504 | this.initializeRootStyles(doc.documentRoot); |
505 | // Flag to stop stylesheet dirty event | ||
506 | this._hackInitialStyles = false; | ||
526 | 507 | ||
527 | // Flag to stop stylesheet dirty event | 508 | NJevent("onOpenDocument", doc); |
528 | this._hackInitialStyles = false; | 509 | } |
529 | } | 510 | } |
530 | }, | 511 | }, |
531 |