diff options
author | Jose Antonio Marquez Russo | 2012-07-23 23:05:06 -0700 |
---|---|---|
committer | Jose Antonio Marquez Russo | 2012-07-23 23:05:06 -0700 |
commit | 2952c2465b9a66076344087f899c5c836ad15ad6 (patch) | |
tree | 34274616fd6e0964c9102dde2dd32f20d0cd0089 | |
parent | 5946ec8651547f846520add097850470a09df635 (diff) | |
download | ninja-2952c2465b9a66076344087f899c5c836ad15ad6.tar.gz |
New: Adding method to display document in code view
Added method to parse in memory document in code view. This allows users to view current in memory document in code view while not saving the document or external files. Still need to handle naming of paths for files that require saving but are not saved (webGL and Montage libraries). Also, need to implement method to switch back from code view to design view, but will need Timeline fixes.
-rwxr-xr-x | js/components/layout/document-bar.reel/document-bar.js | 13 | ||||
-rwxr-xr-x | js/document/document-html.js | 18 | ||||
-rwxr-xr-x | js/document/mediators/template.js | 12 |
3 files changed, 26 insertions, 17 deletions
diff --git a/js/components/layout/document-bar.reel/document-bar.js b/js/components/layout/document-bar.reel/document-bar.js index f5e61a18..77f05bc1 100755 --- a/js/components/layout/document-bar.reel/document-bar.js +++ b/js/components/layout/document-bar.reel/document-bar.js | |||
@@ -238,7 +238,18 @@ exports.DocumentBar = Montage.create(Component, { | |||
238 | iBtn.setAttribute('class', 'inactive'); | 238 | iBtn.setAttribute('class', 'inactive'); |
239 | aBtn.removeAttribute('class'); | 239 | aBtn.removeAttribute('class'); |
240 | //TODO: Add document parsing to reload view | 240 | //TODO: Add document parsing to reload view |
241 | this._currentDocument.reloadView(view, this.fileTemplate); | 241 | this._currentDocument.reloadView(view, this.fileTemplate, { |
242 | mode: 'html', | ||
243 | libs: this._currentDocument.model.libs, | ||
244 | file: this._currentDocument.model.file, | ||
245 | webgl: this._currentDocument.model.webGlHelper.glData, | ||
246 | styles: this._currentDocument.model.getStyleSheets(), | ||
247 | template: this._currentDocument.fileTemplate, | ||
248 | document: this._currentDocument.model.views.design.iframe.contentWindow.document, | ||
249 | head: this._currentDocument.model.views.design.iframe.contentWindow.document.head, | ||
250 | body: this._currentDocument.model.views.design.iframe.contentWindow.document.body, | ||
251 | mjsTemplateCreator: this._currentDocument.model.views.design.iframe.contentWindow.mjsTemplateCreator | ||
252 | }); | ||
242 | } | 253 | } |
243 | } | 254 | } |
244 | }, | 255 | }, |
diff --git a/js/document/document-html.js b/js/document/document-html.js index 569b6d8b..81a8912b 100755 --- a/js/document/document-html.js +++ b/js/document/document-html.js | |||
@@ -135,8 +135,7 @@ exports.HtmlDocument = Montage.create(Component, { | |||
135 | //////////////////////////////////////////////////////////////////// | 135 | //////////////////////////////////////////////////////////////////// |
136 | //TODO: Make into one method to use here and one init | 136 | //TODO: Make into one method to use here and one init |
137 | reloadView: { | 137 | reloadView: { |
138 | value: function (view, template) { | 138 | value: function (view, template, doc) { |
139 | var content; | ||
140 | // | 139 | // |
141 | this.model.parentContainer.removeChild(this.model.views.design.iframe); | 140 | this.model.parentContainer.removeChild(this.model.views.design.iframe); |
142 | //Initiliazing views and hiding | 141 | //Initiliazing views and hiding |
@@ -167,14 +166,13 @@ exports.HtmlDocument = Montage.create(Component, { | |||
167 | this._observer.observe(this.model.views.design.document.head, {childList: true}); | 166 | this._observer.observe(this.model.views.design.document.head, {childList: true}); |
168 | }.bind(this), template, {viewCallback: this.handleViewReady, context: this}); | 167 | }.bind(this), template, {viewCallback: this.handleViewReady, context: this}); |
169 | } else if(view === 'code'){ | 168 | } else if(view === 'code'){ |
170 | 169 | //TODO: Add logic to handle external changed files | |
171 | 170 | //Checking for template type and not saving external data | |
172 | //TODO: Parse in memory document through template to get current document | 171 | if (doc.template && (doc.template.type === 'banner' || doc.template.type === 'animation')) { |
173 | content = '<html><head>'+this.model.file.content.head+'</head><body>'+this.model.file.content.body+'</body></html>';//dummy | 172 | this.model.views.code.load(this.application.ninja.ioMediator.tmplt.parseNinjaTemplateToHtml(false, doc, true, null).content); |
174 | 173 | } else { | |
175 | 174 | this.model.views.code.load(this.application.ninja.ioMediator.tmplt.parseNinjaTemplateToHtml(false, doc, false, null).content); | |
176 | // | 175 | } |
177 | this.model.views.code.load(content); | ||
178 | //Setting current view object to code | 176 | //Setting current view object to code |
179 | this.currentView = 'code'; | 177 | this.currentView = 'code'; |
180 | this.model.currentView = this.model.views.code; | 178 | this.model.currentView = this.model.views.code; |
diff --git a/js/document/mediators/template.js b/js/document/mediators/template.js index 4065f471..c68cfe72 100755 --- a/js/document/mediators/template.js +++ b/js/document/mediators/template.js | |||
@@ -47,7 +47,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, { | |||
47 | // | 47 | // |
48 | getAppTemplatesUrlRegEx: { | 48 | getAppTemplatesUrlRegEx: { |
49 | value: function () { | 49 | value: function () { |
50 | var regex = new RegExp(chrome.extension.getURL(this.application.ninja.currentDocument.model.views.design.iframe.src.split(chrome.extension.getURL('/'))[1]).replace(/\//gi, '\\\/'), 'gi'); | 50 | var regex = new RegExp(chrome.extension.getURL(this.application.ninja.currentDocument.model.views.design.document.baseURI.split(chrome.extension.getURL('/'))[1]).replace(/\//gi, '\\\/'), 'gi'); |
51 | return regex; | 51 | return regex; |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -326,7 +326,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, { | |||
326 | } | 326 | } |
327 | } | 327 | } |
328 | } | 328 | } |
329 | } else if (template.css) { | 329 | } else if (template.css && saveExternalData) { |
330 | //Getting all style and link tags | 330 | //Getting all style and link tags |
331 | var styleCounter = 0, | 331 | var styleCounter = 0, |
332 | docStyles = template.file.content.document.getElementsByTagName('style'), | 332 | docStyles = template.file.content.document.getElementsByTagName('style'), |
@@ -480,7 +480,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, { | |||
480 | //Copy webGL library if needed | 480 | //Copy webGL library if needed |
481 | for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { | 481 | for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { |
482 | //Checking for RDGE library to be available | 482 | //Checking for RDGE library to be available |
483 | if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'RDGE') { | 483 | if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'RDGE' && saveExternalData) { |
484 | rdgeDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name + this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase(); | 484 | rdgeDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name + this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase(); |
485 | rdgeVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version; | 485 | rdgeVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version; |
486 | this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.file.root, rdgeDirName, function(result) {libsobserver.canvasCopied = result; this.libCopied(libsobserver);}.bind(this)); | 486 | this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.file.root, rdgeDirName, function(result) {libsobserver.canvasCopied = result; this.libCopied(libsobserver);}.bind(this)); |
@@ -564,7 +564,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, { | |||
564 | webgllibtag.setAttribute('data-ninja-canvas-json', this.application.ninja.coreIoApi.rootUrl+'/'+cvsDataFileUrl); | 564 | webgllibtag.setAttribute('data-ninja-canvas-json', this.application.ninja.coreIoApi.rootUrl+'/'+cvsDataFileUrl); |
565 | webgllibtag.setAttribute('data-ninja-canvas-libpath', rdgeDirName); | 565 | webgllibtag.setAttribute('data-ninja-canvas-libpath', rdgeDirName); |
566 | // | 566 | // |
567 | if (cvsDataFileCheck.status === 404 || cvsDataFileCheck.status === 204) { | 567 | if (saveExternalData && (cvsDataFileCheck.status === 404 || cvsDataFileCheck.status === 204)) { |
568 | //Saving file | 568 | //Saving file |
569 | cvsDataFileOperation = this.application.ninja.ioMediator.fio.saveFile({uri: cvsDataFilePath, contents: json}); | 569 | cvsDataFileOperation = this.application.ninja.ioMediator.fio.saveFile({uri: cvsDataFilePath, contents: json}); |
570 | } else { | 570 | } else { |
@@ -592,13 +592,13 @@ exports.TemplateDocumentMediator = Montage.create(Component, { | |||
592 | 592 | ||
593 | 593 | ||
594 | //TODO: Make proper Montage method | 594 | //TODO: Make proper Montage method |
595 | 595 | var mjsDirName, mjsVersion; | |
596 | //Checking for Montage | 596 | //Checking for Montage |
597 | if (mJsSerialization) { | 597 | if (mJsSerialization) { |
598 | //Copy Montage library if needed | 598 | //Copy Montage library if needed |
599 | for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { | 599 | for (var i in this.application.ninja.coreIoApi.ninjaLibrary.libs) { |
600 | //Checking for Montage library to be available | 600 | //Checking for Montage library to be available |
601 | if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'Montage') { | 601 | if (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name === 'Montage' && saveExternalData) { |
602 | mjsDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name + this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase(); | 602 | mjsDirName = (this.application.ninja.coreIoApi.ninjaLibrary.libs[i].name + this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version).toLowerCase(); |
603 | mjsVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version; | 603 | mjsVersion = this.application.ninja.coreIoApi.ninjaLibrary.libs[i].version; |
604 | this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.file.root, mjsDirName, function(result) {libsobserver.montageCopied = result; this.libCopied(libsobserver);}.bind(this)); | 604 | this.application.ninja.coreIoApi.ninjaLibrary.copyLibToCloud(template.file.root, mjsDirName, function(result) {libsobserver.montageCopied = result; this.libCopied(libsobserver);}.bind(this)); |