aboutsummaryrefslogtreecommitdiff
path: root/js/document
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-06-07 11:24:29 -0700
committerJose Antonio Marquez2012-06-07 11:24:29 -0700
commit0efbbf8287517b755be1774f6aa49947bed50a0d (patch)
tree48bd340949ac558bb552b47092447d3a7b977b52 /js/document
parent47e0e1f047e83b71c3f86812a45d33904201cc7a (diff)
downloadninja-0efbbf8287517b755be1774f6aa49947bed50a0d.tar.gz
Adding unique ID to canvas data folders
Also set up for tracking ID created, will be adding support for parsing files without saving later, but flag is now present.
Diffstat (limited to 'js/document')
-rwxr-xr-xjs/document/mediators/template.js49
-rwxr-xr-xjs/document/models/base.js33
2 files changed, 59 insertions, 23 deletions
diff --git a/js/document/mediators/template.js b/js/document/mediators/template.js
index 068a1f48..c9d46f79 100755
--- a/js/document/mediators/template.js
+++ b/js/document/mediators/template.js
@@ -8,7 +8,8 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot
8// 8//
9var Montage = require("montage/core/core").Montage, 9var Montage = require("montage/core/core").Montage,
10 Component = require("montage/ui/component").Component, 10 Component = require("montage/ui/component").Component,
11 TemplateCreator = require("node_modules/tools/template/template-creator").TemplateCreator; 11 TemplateCreator = require("node_modules/tools/template/template-creator").TemplateCreator,
12 ClassUuid = require("js/components/core/class-uuid").ClassUuid;
12//////////////////////////////////////////////////////////////////////// 13////////////////////////////////////////////////////////////////////////
13// 14//
14exports.TemplateDocumentMediator = Montage.create(Component, { 15exports.TemplateDocumentMediator = Montage.create(Component, {
@@ -93,7 +94,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
93 //////////////////////////////////////////////////////////////////// 94 ////////////////////////////////////////////////////////////////////
94 //TODO: Expand to allow more templates, clean up variables 95 //TODO: Expand to allow more templates, clean up variables
95 parseNinjaTemplateToHtml: { 96 parseNinjaTemplateToHtml: {
96 value: function (template, ninjaWrapper, libCopyCallback) { 97 value: function (saveExternalData, template, ninjaWrapper, libCopyCallback) {
97 //TODO: Improve reference for rootUrl 98 //TODO: Improve reference for rootUrl
98 var regexRootUrl, 99 var regexRootUrl,
99 rootUrl = this.application.ninja.coreIoApi.rootUrl + escape((this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1])), 100 rootUrl = this.application.ninja.coreIoApi.rootUrl + escape((this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1])),
@@ -328,7 +329,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
328 329
329 330
330 331
331 //TODO: Make proper webGL/Canvas method 332
332 333
333 // 334 //
334 var webgltag, webgllibtag, webglrdgetag, mjstag, mjslibtag, matchingtags = [], 335 var webgltag, webgllibtag, webglrdgetag, mjstag, mjslibtag, matchingtags = [],
@@ -357,19 +358,33 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
357 } 358 }
358 } 359 }
359 } 360 }
361
362
363
364
365 //TODO: Make proper webGL/Canvas method
366
367
360 //Checking for webGL elements in document 368 //Checking for webGL elements in document
361 if (template.webgl && template.webgl.length > 1) {//TODO: Should be length 0, hack for a temp fix 369 if (template.webgl && template.webgl.length > 1) {//TODO: Should be length 0, hack for a temp fix
362 var rdgeDirName, rdgeVersion, cvsDataDir = this.getCanvasDirectory(template.file.root), fileCvsDir, fileCvsDirAppend, cvsDirCounter = 1, fileOrgDataSrc; 370 var rdgeDirName, rdgeVersion, cvsDataDir = this.getCanvasDirectory(template.file.root), fileCvsDir, fileCvsDirAppend, cvsDirCounter = 1, fileOrgDataSrc;
363 // 371 //
364 if (cvsDataDir && !matchingtags.length && !webgllibtag) { 372 if (cvsDataDir && !matchingtags.length && !webgllibtag) {
365 fileCvsDir = cvsDataDir+template.file.name.split('.'+template.file.extension)[0]; 373
374 if (template.libs.canvasId) {
375 libsobserver.canvasId = template.libs.canvasId;
376 } else {
377 libsobserver.canvasId = ClassUuid.generate();
378 }
379
380 //Creating data directory, will include materials at a later time
381 fileCvsDir = cvsDataDir+template.file.name.split('.'+template.file.extension)[0]+'_'+libsobserver.canvasId;
382
366 if (!this._getUserDirectory(fileCvsDir)) { 383 if (!this._getUserDirectory(fileCvsDir)) {
367 fileCvsDirAppend = fileCvsDir+cvsDirCounter; 384 //TODO: create proper logic not to overwrite files
368 while (!this._getUserDirectory(fileCvsDirAppend)) { 385 console.log('error');
369 fileCvsDirAppend = fileCvsDir+(cvsDirCounter++);
370 }
371 } 386 }
372 //TODO: Allow user overwrite 387
373 fileCvsDir += '/'; 388 fileCvsDir += '/';
374 } else if (webgllibtag && webgllibtag.getAttribute && webgllibtag.getAttribute('data-ninja-canvas-json') !== null) { 389 } else if (webgllibtag && webgllibtag.getAttribute && webgllibtag.getAttribute('data-ninja-canvas-json') !== null) {
375 fileOrgDataSrc = template.file.root+webgllibtag.getAttribute('data-ninja-canvas-json'); 390 fileOrgDataSrc = template.file.root+webgllibtag.getAttribute('data-ninja-canvas-json');
@@ -437,17 +452,9 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
437 //Looping through data to create escaped array 452 //Looping through data to create escaped array
438 for (var j = 0; template.webgl[j]; j++) { 453 for (var j = 0; template.webgl[j]; j++) {
439 if (j === 0) { 454 if (j === 0) {
440 //if (fileCvsDir) { 455 json += '\n\t\t\t"' + escape(template.webgl[j]) + '"';
441 // json += '\n\t\t\t"' + template.webgl[j] + '"';
442 //} else {
443 json += '\n\t\t\t"' + escape(template.webgl[j]) + '"';
444 //}
445 } else { 456 } else {
446 //if (fileCvsDir) { 457 json += ',\n\t\t\t"' + escape(template.webgl[j]) + '"';
447 // json += ',\n\t\t\t"' + template.webgl[j] + '"';
448 //} else {
449 json += ',\n\t\t\t"' + escape(template.webgl[j]) + '"';
450 //}
451 } 458 }
452 } 459 }
453 //Closing array (make-shift JSON string to validate data in <script> tag) 460 //Closing array (make-shift JSON string to validate data in <script> tag)
@@ -590,9 +597,9 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
590 } 597 }
591 // 598 //
592 if (libsobserver.montage || libsobserver.canvas) { 599 if (libsobserver.montage || libsobserver.canvas) {
593 return {content: this.getPrettyHtml(cleanHTML.replace(this.getAppTemplatesUrlRegEx(), '')), libs: true}; 600 return {content: this.getPrettyHtml(cleanHTML.replace(this.getAppTemplatesUrlRegEx(), '')), libs: true, montageId: libsobserver.montageId, canvasId: libsobserver.canvasId};
594 } else { 601 } else {
595 return {content: this.getPrettyHtml(cleanHTML.replace(this.getAppTemplatesUrlRegEx(), '')), libs: false}; 602 return {content: this.getPrettyHtml(cleanHTML.replace(this.getAppTemplatesUrlRegEx(), '')), libs: false, montageId: libsobserver.montageId, canvasId: libsobserver.canvasId};
596 } 603 }
597 } 604 }
598 }, 605 },
diff --git a/js/document/models/base.js b/js/document/models/base.js
index a3644815..c69c54a9 100755
--- a/js/document/models/base.js
+++ b/js/document/models/base.js
@@ -92,6 +92,11 @@ exports.BaseDocumentModel = Montage.create(Component, {
92 }, 92 },
93 //////////////////////////////////////////////////////////////////// 93 ////////////////////////////////////////////////////////////////////
94 // 94 //
95 libs: {
96 value: {montage: false, canvas: false, montageId: null, canvasId: null}
97 },
98 ////////////////////////////////////////////////////////////////////
99 //
95 switchViewTo: { 100 switchViewTo: {
96 value: function (view) { 101 value: function (view) {
97 // 102 //
@@ -167,8 +172,9 @@ exports.BaseDocumentModel = Montage.create(Component, {
167 // 172 //
168 if (this.currentView === this.views.design) { 173 if (this.currentView === this.views.design) {
169 // 174 //
170 this.application.ninja.ioMediator.fileSave({ 175 var save = this.application.ninja.ioMediator.fileSave({
171 mode: 'html', 176 mode: 'html',
177 libs: this.libs,
172 file: this.file, 178 file: this.file,
173 webgl: this.webGlHelper.glData, 179 webgl: this.webGlHelper.glData,
174 styles: this.getStyleSheets(), 180 styles: this.getStyleSheets(),
@@ -178,6 +184,17 @@ exports.BaseDocumentModel = Montage.create(Component, {
178 body: this.views.design.iframe.contentWindow.document.body, 184 body: this.views.design.iframe.contentWindow.document.body,
179 mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator 185 mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator
180 }, this.handleSaved.bind({callback: callback, model: this}), libCopyCallback); 186 }, this.handleSaved.bind({callback: callback, model: this}), libCopyCallback);
187 //TODO: Improve detection during save routine
188 if (save) {
189 if (save.montageId) {
190 this.libs.montageId = save.montageId;
191 this.libs.montage = true;
192 }
193 if (save.canvasId) {
194 this.libs.canvasId = save.canvasId;
195 this.libs.canvas = true;
196 }
197 }
181 } else { 198 } else {
182 //TODO: Add logic to save code view data 199 //TODO: Add logic to save code view data
183 } 200 }
@@ -196,8 +213,9 @@ exports.BaseDocumentModel = Montage.create(Component, {
196 // 213 //
197 if (this.currentView === this.views.design) { 214 if (this.currentView === this.views.design) {
198 // 215 //
199 this.application.ninja.ioMediator.fileSave({ 216 var save = this.application.ninja.ioMediator.fileSave({
200 mode: 'html', 217 mode: 'html',
218 libs: this.libs,
201 file: this.file, 219 file: this.file,
202 webgl: this.webGlHelper.glData, 220 webgl: this.webGlHelper.glData,
203 css: this.getStyleSheets(), 221 css: this.getStyleSheets(),
@@ -207,6 +225,17 @@ exports.BaseDocumentModel = Montage.create(Component, {
207 body: this.views.design.iframe.contentWindow.document.body, 225 body: this.views.design.iframe.contentWindow.document.body,
208 mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator 226 mjsTemplateCreator: this.views.design.iframe.contentWindow.mjsTemplateCreator
209 }, this.handleSaved.bind({callback: callback, model: this}), libCopyCallback); 227 }, this.handleSaved.bind({callback: callback, model: this}), libCopyCallback);
228 //TODO: Improve detection during save routine
229 if (save) {
230 if (save.montageId) {
231 this.libs.montageId = save.montageId;
232 this.libs.montage = true;
233 }
234 if (save.canvasId) {
235 this.libs.canvasId = save.canvasId;
236 this.libs.canvas = true;
237 }
238 }
210 } else { 239 } else {
211 //TODO: Add logic to save code view data 240 //TODO: Add logic to save code view data
212 } 241 }