aboutsummaryrefslogtreecommitdiff
path: root/js/document/mediators/template.js
diff options
context:
space:
mode:
authorKris Kowal2012-07-09 16:38:08 -0700
committerKris Kowal2012-07-09 16:38:08 -0700
commit7bee50379c1df86bb571e0e8d6c08e24d25231f5 (patch)
tree5b11abd0414e0a3ab50ec6276b6334fbd168db7e /js/document/mediators/template.js
parent26d4b5ce30e6e0ea6e0fde870853c1e2a673a7b4 (diff)
downloadninja-7bee50379c1df86bb571e0e8d6c08e24d25231f5.tar.gz
BSD License
Diffstat (limited to 'js/document/mediators/template.js')
-rwxr-xr-xjs/document/mediators/template.js203
1 files changed, 102 insertions, 101 deletions
diff --git a/js/document/mediators/template.js b/js/document/mediators/template.js
index 982b410f..6bd03802 100755
--- a/js/document/mediators/template.js
+++ b/js/document/mediators/template.js
@@ -1,24 +1,25 @@
1/* <copyright> 1/* <copyright>
2Copyright (c) 2012, Motorola Mobility, Inc 2Copyright (c) 2012, Motorola Mobility LLC.
3All Rights Reserved. 3All Rights Reserved.
4BSD License.
5 4
6Redistribution and use in source and binary forms, with or without 5Redistribution and use in source and binary forms, with or without
7modification, are permitted provided that the following conditions are met: 6modification, are permitted provided that the following conditions are met:
8 7
9 - Redistributions of source code must retain the above copyright notice, 8* Redistributions of source code must retain the above copyright notice,
10 this list of conditions and the following disclaimer. 9 this list of conditions and the following disclaimer.
11 - Redistributions in binary form must reproduce the above copyright 10
12 notice, this list of conditions and the following disclaimer in the 11* Redistributions in binary form must reproduce the above copyright notice,
13 documentation and/or other materials provided with the distribution. 12 this list of conditions and the following disclaimer in the documentation
14 - Neither the name of Motorola Mobility nor the names of its contributors 13 and/or other materials provided with the distribution.
15 may be used to endorse or promote products derived from this software 14
16 without specific prior written permission. 15* Neither the name of Motorola Mobility LLC nor the names of its
16 contributors may be used to endorse or promote products derived from this
17 software without specific prior written permission.
17 18
18THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 22ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@@ -35,7 +36,7 @@ var Montage = require("montage/core/core").Montage,
35 TemplateCreator = require("node_modules/tools/template/template-creator").TemplateCreator, 36 TemplateCreator = require("node_modules/tools/template/template-creator").TemplateCreator,
36 ClassUuid = require("js/components/core/class-uuid").ClassUuid; 37 ClassUuid = require("js/components/core/class-uuid").ClassUuid;
37//////////////////////////////////////////////////////////////////////// 38////////////////////////////////////////////////////////////////////////
38// 39//
39exports.TemplateDocumentMediator = Montage.create(Component, { 40exports.TemplateDocumentMediator = Montage.create(Component, {
40 //////////////////////////////////////////////////////////////////// 41 ////////////////////////////////////////////////////////////////////
41 // 42 //
@@ -167,7 +168,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
167 for (var n in template.body.attributes) { 168 for (var n in template.body.attributes) {
168 if (template.body.attributes[n].value) { 169 if (template.body.attributes[n].value) {
169 template.file.content.document.body.setAttribute(template.body.attributes[n].name, template.body.attributes[n].value); 170 template.file.content.document.body.setAttribute(template.body.attributes[n].name, template.body.attributes[n].value);
170 } 171 }
171 } 172 }
172 // 173 //
173 if(template.template) { 174 if(template.template) {
@@ -233,7 +234,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
233 for (var n in presentNodes) { 234 for (var n in presentNodes) {
234 // 235 //
235 if (presentNodes[n].getAttribute && presentNodes[n].getAttribute('data-ninja-node') === null) { 236 if (presentNodes[n].getAttribute && presentNodes[n].getAttribute('data-ninja-node') === null) {
236 toremovetags.push(presentNodes[n]); 237 toremovetags.push(presentNodes[n]);
237 } else if (presentNodes[n].getAttribute && presentNodes[n].getAttribute('data-ninja-node') !== null) { 238 } else if (presentNodes[n].getAttribute && presentNodes[n].getAttribute('data-ninja-node') !== null) {
238 //Removing attribute 239 //Removing attribute
239 presentNodes[n].removeAttribute('data-ninja-node'); 240 presentNodes[n].removeAttribute('data-ninja-node');
@@ -243,7 +244,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
243 var styletags = template.file.content.document.getElementsByTagName('style'), 244 var styletags = template.file.content.document.getElementsByTagName('style'),
244 linktags = template.file.content.document.getElementsByTagName('link'), 245 linktags = template.file.content.document.getElementsByTagName('link'),
245 njtemplatetags = template.file.content.document.querySelectorAll('[data-ninja-template]'); 246 njtemplatetags = template.file.content.document.querySelectorAll('[data-ninja-template]');
246 247
247 //Adding to tags to be removed form template 248 //Adding to tags to be removed form template
248 for (var f in njtemplatetags) { 249 for (var f in njtemplatetags) {
249 if (njtemplatetags[f].getAttribute) toremovetags.push(njtemplatetags[f]); 250 if (njtemplatetags[f].getAttribute) toremovetags.push(njtemplatetags[f]);
@@ -266,7 +267,7 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
266 //Checking head first 267 //Checking head first
267 template.file.content.document.head.removeChild(toremovetags[h]); 268 template.file.content.document.head.removeChild(toremovetags[h]);
268 } catch (e) { 269 } catch (e) {
269 270
270 } 271 }
271 try { 272 try {
272 //Checking body if not in head 273 //Checking body if not in head
@@ -287,23 +288,23 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
287 } 288 }
288 } 289 }
289 } 290 }
290 291
291 292
292 293
293 294
294 295
295 296
296 297
297 298
298 299
299 300
300 301
301 302
302 303
303 //TODO: Make proper CSS method 304 //TODO: Make proper CSS method
304 305
305 306
306 307
307 //Checking for type of save: styles = <style> only | css = <style> and <link> (all CSS) 308 //Checking for type of save: styles = <style> only | css = <style> and <link> (all CSS)
308 if (template.styles) { 309 if (template.styles) {
309 //Getting all style tags 310 //Getting all style tags
@@ -400,24 +401,24 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
400 } 401 }
401 } 402 }
402 } 403 }
403 404
404 405
405 406
406 407
407 408
408 409
409 410
410 411
411 412
412 413
413 414
414 415
415 416
416 417
417 418
418 419
419 420
420 421
421 // 422 //
422 var webgltag, webgllibtag, webglrdgetag, mjstag, mjslibtag, matchingtags = [], 423 var webgltag, webgllibtag, webglrdgetag, mjstag, mjslibtag, matchingtags = [],
423 scripts = template.file.content.document.getElementsByTagName('script'), 424 scripts = template.file.content.document.getElementsByTagName('script'),
@@ -445,33 +446,33 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
445 } 446 }
446 } 447 }
447 } 448 }
448 449
449 450
450 451
451 452
452 //TODO: Make proper webGL/Canvas method 453 //TODO: Make proper webGL/Canvas method
453 454
454 455
455 //Checking for webGL elements in document 456 //Checking for webGL elements in document
456 if (template.webgl && template.webgl.length > 1) {//TODO: Should be length 0, hack for a temp fix 457 if (template.webgl && template.webgl.length > 1) {//TODO: Should be length 0, hack for a temp fix
457 var rdgeDirName, rdgeVersion, cvsDataDir = this.getCanvasDirectory(template.file.root), fileCvsDir, fileCvsDirAppend, cvsDirCounter = 1, fileOrgDataSrc; 458 var rdgeDirName, rdgeVersion, cvsDataDir = this.getCanvasDirectory(template.file.root), fileCvsDir, fileCvsDirAppend, cvsDirCounter = 1, fileOrgDataSrc;
458 // 459 //
459 if (cvsDataDir && !matchingtags.length && !webgllibtag) { 460 if (cvsDataDir && !matchingtags.length && !webgllibtag) {
460 461
461 if (template.libs.canvasId) { 462 if (template.libs.canvasId) {
462 libsobserver.canvasId = template.libs.canvasId; 463 libsobserver.canvasId = template.libs.canvasId;
463 } else { 464 } else {
464 libsobserver.canvasId = ClassUuid.generate(); 465 libsobserver.canvasId = ClassUuid.generate();
465 } 466 }
466 467
467 //Creating data directory, will include materials at a later time 468 //Creating data directory, will include materials at a later time
468 fileCvsDir = cvsDataDir+template.file.name.split('.'+template.file.extension)[0]+'_'+libsobserver.canvasId; 469 fileCvsDir = cvsDataDir+template.file.name.split('.'+template.file.extension)[0]+'_'+libsobserver.canvasId;
469 470
470 if (!this._getUserDirectory(fileCvsDir)) { 471 if (!this._getUserDirectory(fileCvsDir)) {
471 //TODO: create proper logic not to overwrite files 472 //TODO: create proper logic not to overwrite files
472 console.log('error'); 473 console.log('error');
473 } 474 }