aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorValerio Virgillito2012-06-28 22:28:53 -0700
committerValerio Virgillito2012-06-28 22:28:53 -0700
commit35af74aa558a642af8bcdbd8c18098b94771537d (patch)
tree985f68393d4910e6cff02123a37436c4e0bd332c /js
parent59eb1a72aa8871fb9e4cad1fcbcdf8b6bbc5d872 (diff)
parent4bfc0b9221734c75f305dbeefe8e49a9d73b766b (diff)
downloadninja-35af74aa558a642af8bcdbd8c18098b94771537d.tar.gz
Merge branch 'refs/heads/Document' into video-fix
Diffstat (limited to 'js')
-rwxr-xr-xjs/controllers/elements/video-controller.js13
-rwxr-xr-xjs/document/mediators/template.js10
-rwxr-xr-xjs/document/views/design.js25
3 files changed, 35 insertions, 13 deletions
diff --git a/js/controllers/elements/video-controller.js b/js/controllers/elements/video-controller.js
index c36752f5..44ba5aa1 100755
--- a/js/controllers/elements/video-controller.js
+++ b/js/controllers/elements/video-controller.js
@@ -28,6 +28,19 @@ exports.VideoController = Montage.create(ElementController, {
28 value: function(el, p, value) { 28 value: function(el, p, value) {
29 switch(p) { 29 switch(p) {
30 case "src": 30 case "src":
31
32 //TODO: Move this to the location where the element is created
33 el.addEventListener('canplay', function(e) {
34 //TODO: Figure out why the video must be seeked to the end before pausing
35 var time = Math.ceil(this.duration);
36 //Trying to display the last frame (doing minus 2 seconds if long video)
37 if (time > 2) this.currentTime = time - 2;
38 else if (time > 1) this.currentTime = time - 1;
39 else this.currentTime = time || 0;
40 //Pauing video
41 this.pause();
42 }, false);
43
31 el.setAttribute(p, value); 44 el.setAttribute(p, value);
32 break; 45 break;
33 case "poster": 46 case "poster":
diff --git a/js/document/mediators/template.js b/js/document/mediators/template.js
index f43b1a2c..015a50ff 100755
--- a/js/document/mediators/template.js
+++ b/js/document/mediators/template.js
@@ -220,14 +220,6 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
220 linktags = template.file.content.document.getElementsByTagName('link'), 220 linktags = template.file.content.document.getElementsByTagName('link'),
221 njtemplatetags = template.file.content.document.querySelectorAll('[data-ninja-template]'); 221 njtemplatetags = template.file.content.document.querySelectorAll('[data-ninja-template]');
222 222
223 //////////////////////////////////////////////////
224 //TODO: Remove, temp hack, this is to be fixed by Montage
225 var basetags = template.file.content.document.getElementsByTagName('base');
226 for (var g in basetags) {
227 if (basetags[g].getAttribute && basetags[g].href && basetags[g].href.indexOf('chrome-extension://') !== -1) toremovetags.push(basetags[g]);
228 }
229 //////////////////////////////////////////////////
230
231 //Adding to tags to be removed form template 223 //Adding to tags to be removed form template
232 for (var f in njtemplatetags) { 224 for (var f in njtemplatetags) {
233 if (njtemplatetags[f].getAttribute) toremovetags.push(njtemplatetags[f]); 225 if (njtemplatetags[f].getAttribute) toremovetags.push(njtemplatetags[f]);
@@ -284,8 +276,6 @@ exports.TemplateDocumentMediator = Montage.create(Component, {
284 276
285 277
286 278
287
288
289 //TODO: Make proper CSS method 279 //TODO: Make proper CSS method
290 280
291 281
diff --git a/js/document/views/design.js b/js/document/views/design.js
index 6a60e1f9..fea607ef 100755
--- a/js/document/views/design.js
+++ b/js/document/views/design.js
@@ -285,7 +285,8 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
285 userStyles, 285 userStyles,
286 stags = this.document.getElementsByTagName('style'), 286 stags = this.document.getElementsByTagName('style'),
287 ltags = this.document.getElementsByTagName('link'), i, orgNodes, 287 ltags = this.document.getElementsByTagName('link'), i, orgNodes,
288 scripttags = this.document.getElementsByTagName('script'); 288 scripttags = this.document.getElementsByTagName('script'),
289 videotags = this.document.getElementsByTagName('video');
289 //Temporarily checking for disabled special case (we must enabled for Ninja to access styles) 290 //Temporarily checking for disabled special case (we must enabled for Ninja to access styles)
290 this.ninjaDisableAttribute(stags); 291 this.ninjaDisableAttribute(stags);
291 this.ninjaDisableAttribute(ltags); 292 this.ninjaDisableAttribute(ltags);
@@ -308,10 +309,28 @@ exports.DesignDocumentView = Montage.create(BaseDocumentView, {
308 } 309 }
309 } 310 }
310 } 311 }
311 312 //Checking for video tags
313 if (videotags.length > 0) {
314 //Looping through all video tags
315 for (i = 0; i < videotags.length; i++) {
316 //Stopping all videos from playing
317 if (videotags[i].getAttribute && videotags[i].getAttribute('autoplay') !== null) {
318 //Stopping the video on open
319 videotags[i].addEventListener('canplay', function(e) {
320 //TODO: Figure out why the video must be seeked to the end before pausing
321 var time = Math.ceil(this.duration);
322 //Trying to display the last frame (doing minus 2 seconds if long video)
323 if (time > 2) this.currentTime = time - 2;
324 else if (time > 1) this.currentTime = time - 1;
325 else this.currentTime = time || 0;
326 //Pauing video
327 this.pause();
328 }, false);
329 }
330 }
331 }
312 // Assign the modelGenerator reference from the template to our own modelGenerator 332 // Assign the modelGenerator reference from the template to our own modelGenerator
313 this.document.modelGenerator = ElementModel.modelGenerator; 333 this.document.modelGenerator = ElementModel.modelGenerator;
314
315 //Checking for script tags then parsing check for montage and webgl 334 //Checking for script tags then parsing check for montage and webgl
316 if (scripttags.length > 0) { 335 if (scripttags.length > 0) {
317 //Checking and initializing webGL 336 //Checking and initializing webGL