aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xjs/components/layout/document-bar.reel/document-bar.js63
-rwxr-xr-xjs/document/document-html.js27
2 files changed, 41 insertions, 49 deletions
diff --git a/js/components/layout/document-bar.reel/document-bar.js b/js/components/layout/document-bar.reel/document-bar.js
index 803d2c3a..f5e61a18 100755
--- a/js/components/layout/document-bar.reel/document-bar.js
+++ b/js/components/layout/document-bar.reel/document-bar.js
@@ -73,12 +73,12 @@ exports.DocumentBar = Montage.create(Component, {
73 _codeEditorWrapper:{ 73 _codeEditorWrapper:{
74 value: null 74 value: null
75 }, 75 },
76 76 ////////////////////////////////////////////////////////////////////
77 //
77 codeEditorWrapper:{ 78 codeEditorWrapper:{
78 get : function() { 79 get: function() {return this._codeEditorWrapper;},
79 return this._codeEditorWrapper; 80 set: function(value) {
80 }, 81 //
81 set : function(value) {
82 if(this._codeEditorWrapper !== value){ 82 if(this._codeEditorWrapper !== value){
83 this._codeEditorWrapper = value; 83 this._codeEditorWrapper = value;
84 } 84 }
@@ -89,9 +89,13 @@ exports.DocumentBar = Montage.create(Component, {
89 btnCode: { 89 btnCode: {
90 value: null 90 value: null
91 }, 91 },
92 ////////////////////////////////////////////////////////////////////
93 //
92 btnDesign: { 94 btnDesign: {
93 value: null 95 value: null
94 }, 96 },
97 ////////////////////////////////////////////////////////////////////
98 //
95 btnPreview: { 99 btnPreview: {
96 value: null 100 value: null
97 }, 101 },
@@ -209,52 +213,37 @@ exports.DocumentBar = Montage.create(Component, {
209 }, 213 },
210 //////////////////////////////////////////////////////////////////// 214 ////////////////////////////////////////////////////////////////////
211 // 215 //
212 renderDesignView: { 216 showViewDesign: {
213 value: function () { 217 value: function () {
214 //Reloading in design view (with updates from other view) 218 //
215 this.reloadView('design', this.fileTemplate); 219 this.showView('design', this.renderDesignView, this.btnDesign, this.btnCode);
216 } 220 }
217 }, 221 },
218 //////////////////////////////////////////////////////////////////// 222 ////////////////////////////////////////////////////////////////////
219 // 223 //
220 renderCodeView: { 224 showViewCode: {
221 value: function () { 225 value: function () {
222 //Reloading in code view (with updates from other view) 226 //
223 this.reloadView('code', this.fileTemplate); 227 this.showView('code', this.renderCodeView, this.btnCode, this.btnDesign);
224 } 228 }
225 }, 229 },
226 //////////////////////////////////////////////////////////////////// 230 ////////////////////////////////////////////////////////////////////
227 // 231 //
228 showViewDesign: { 232 showView: {
229 value: function () { 233 value: function (view, render, aBtn, iBtn) {
230 // 234 //TODO: Remove reference to string view
231 if (this._currentDocument.model.currentView !== 'design') { 235 if (this._currentDocument.model.currentView !== view) {
232 // 236 //
233 this._currentDocument.model.switchViewTo('design'); 237 this._currentDocument.model.switchViewTo(view);
234 this.btnCode.setAttribute('class', 'inactive'); 238 iBtn.setAttribute('class', 'inactive');
235 this.btnDesign.removeAttribute('class'); 239 aBtn.removeAttribute('class');
236 //this._currentDocument.model.file.content.body = '<div class="test">hello</div><div class="test">hello</div>'; 240 //TODO: Add document parsing to reload view
237 var render = this.renderDesignView.bind(this._currentDocument); 241 this._currentDocument.reloadView(view, this.fileTemplate);
238 render();
239 } 242 }
240 } 243 }
241 }, 244 },
242 //////////////////////////////////////////////////////////////////// 245 ////////////////////////////////////////////////////////////////////
243 //TODO: Implement code with that updates the file template through the ninja document parser 246 //
244 showViewCode: {
245 value: function () {
246 //
247 if (this._currentDocument.model.currentView !== 'code') {
248 //
249 this._currentDocument.model.switchViewTo('code');
250 this.btnDesign.setAttribute('class', 'inactive');
251 this.btnCode.removeAttribute('class');
252 var render = this.renderCodeView.bind(this._currentDocument);
253 render();
254 }
255 }
256 },
257
258 handleClick: { 247 handleClick: {
259 value: function(evt) { 248 value: function(evt) {
260 NJevent("executePreview"); 249 NJevent("executePreview");
diff --git a/js/document/document-html.js b/js/document/document-html.js
index 76157a07..569b6d8b 100755
--- a/js/document/document-html.js
+++ b/js/document/document-html.js
@@ -35,7 +35,7 @@ var Montage = require("montage/core/core").Montage,
35 Component = require("montage/ui/component").Component, 35 Component = require("montage/ui/component").Component,
36 HtmlDocumentModel = require("js/document/models/html").HtmlDocumentModel, 36 HtmlDocumentModel = require("js/document/models/html").HtmlDocumentModel,
37 DesignDocumentView = require("js/document/views/design").DesignDocumentView, 37 DesignDocumentView = require("js/document/views/design").DesignDocumentView,
38 DesignCodeView = require("js/document/views/design-code").DesignCodeView; 38 CodeDocumentView = require("js/document/views/design-code").DesignCodeView;
39//////////////////////////////////////////////////////////////////////// 39////////////////////////////////////////////////////////////////////////
40// 40//
41exports.HtmlDocument = Montage.create(Component, { 41exports.HtmlDocument = Montage.create(Component, {
@@ -78,7 +78,6 @@ exports.HtmlDocument = Montage.create(Component, {
78 // 78 //
79 init: { 79 init: {
80 value: function(file, context, callback, view, template) { 80 value: function(file, context, callback, view, template) {
81 var designCodeView = DesignCodeView.create();
82 //Storing callback data for loaded dispatch 81 //Storing callback data for loaded dispatch
83 this.loaded.callback = callback; 82 this.loaded.callback = callback;
84 this.loaded.context = context; 83 this.loaded.context = context;
@@ -87,7 +86,7 @@ exports.HtmlDocument = Montage.create(Component, {
87 file: {value: file}, 86 file: {value: file},
88 fileTemplate: {value: template}, 87 fileTemplate: {value: template},
89 parentContainer: {value: document.getElementById("iframeContainer")}, //Saving reference to parent container of all views (should be changed to buckets approach 88 parentContainer: {value: document.getElementById("iframeContainer")}, //Saving reference to parent container of all views (should be changed to buckets approach
90 views: {value: {'design': DesignDocumentView.create(), 'code': designCodeView}} //TODO: Add code view logic 89 views: {value: {'design': DesignDocumentView.create(), 'code': CodeDocumentView.create()}} //TODO: Add code view logic
91 }); 90 });
92 //Calling the any init routines in the model 91 //Calling the any init routines in the model
93 this.model.init(); 92 this.model.init();
@@ -101,10 +100,10 @@ exports.HtmlDocument = Montage.create(Component, {
101 //ERROR: Design View not initialized 100 //ERROR: Design View not initialized
102 } 101 }
103 102
104 103
104 //TODO: Make sure you have a boolean to indicate if view was initilize and handle errors (just like design view above)
105 //initialize the code view for the html document and hide it since design is the default view 105 //initialize the code view for the html document and hide it since design is the default view
106 this.model.views.code.initialize(this.model.parentContainer); 106 this.model.views.code.initialize(this.model.parentContainer);
107
108 this.model.views.code.hide(); 107 this.model.views.code.hide();
109 108
110 109
@@ -126,8 +125,10 @@ exports.HtmlDocument = Montage.create(Component, {
126 this._observer = new WebKitMutationObserver(this.handleTemplateReady.bind(this)); 125 this._observer = new WebKitMutationObserver(this.handleTemplateReady.bind(this));
127 this._observer.observe(this.model.views.design.document.head, {childList: true}); 126 this._observer.observe(this.model.views.design.document.head, {childList: true});
128 }.bind(this), template, {viewCallback: this.handleViewReady, context: this}); 127 }.bind(this), template, {viewCallback: this.handleViewReady, context: this});
128 } else if (view === 'code'){
129 //TODO: Add logic to open document in code view since it's now available
129 } else { 130 } else {
130 //TODO: Identify default view (probably code) 131 //TODO: Add error handling
131 } 132 }
132 } 133 }
133 }, 134 },
@@ -166,17 +167,19 @@ exports.HtmlDocument = Montage.create(Component, {
166 this._observer.observe(this.model.views.design.document.head, {childList: true}); 167 this._observer.observe(this.model.views.design.document.head, {childList: true});
167 }.bind(this), template, {viewCallback: this.handleViewReady, context: this}); 168 }.bind(this), template, {viewCallback: this.handleViewReady, context: this});
168 } else if(view === 'code'){ 169 } else if(view === 'code'){
169 //TODO: Identify default view (probably code) 170
170 171
171 //TODO:get the html content from the document 172 //TODO: Parse in memory document through template to get current document
172 content = '<html><head>'+this.model.file.content.head+'</head><body>'+this.model.file.content.body+'</body></html>';//dummy 173 content = '<html><head>'+this.model.file.content.head+'</head><body>'+this.model.file.content.body+'</body></html>';//dummy
173 174
175
176 //
174 this.model.views.code.load(content); 177 this.model.views.code.load(content);
175
176 //Setting current view object to code 178 //Setting current view object to code
177 this.currentView = 'code'; 179 this.currentView = 'code';
178 this.model.currentView = this.model.views.code; 180 this.model.currentView = this.model.views.code;
179 181 } else {
182 //TODO: Identify default view (probably code) - Error handling
180 } 183 }
181 } 184 }
182 }, 185 },