diff options
author | Valerio Virgillito | 2012-06-28 22:28:53 -0700 |
---|---|---|
committer | Valerio Virgillito | 2012-06-28 22:28:53 -0700 |
commit | 35af74aa558a642af8bcdbd8c18098b94771537d (patch) | |
tree | 985f68393d4910e6cff02123a37436c4e0bd332c /js | |
parent | 59eb1a72aa8871fb9e4cad1fcbcdf8b6bbc5d872 (diff) | |
parent | 4bfc0b9221734c75f305dbeefe8e49a9d73b766b (diff) | |
download | ninja-35af74aa558a642af8bcdbd8c18098b94771537d.tar.gz |
Merge branch 'refs/heads/Document' into video-fix
Diffstat (limited to 'js')
-rwxr-xr-x | js/controllers/elements/video-controller.js | 13 | ||||
-rwxr-xr-x | js/document/mediators/template.js | 10 | ||||
-rwxr-xr-x | js/document/views/design.js | 25 |
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 |