Commit 283ad2e69d875384adfd2a22fb2ab6b849f74f19
Committed by
Antonio Terceiro
1 parent
81029a02
Exists in
master
and in
28 other branches
ActionItem785: allowing videos from dailymotion and youtube
* Adding tags object and embed to allowed_tags for sanitize * Fixing lightbox. It was appearing behind videos
Showing
2 changed files
with
23 additions
and
6 deletions
Show diff stats
config/environment.rb
| @@ -66,8 +66,11 @@ Rails::Initializer.run do |config| | @@ -66,8 +66,11 @@ Rails::Initializer.run do |config| | ||
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | # Adds custom attributes to the Set of allowed html attributes for the #sanitize helper | 68 | # Adds custom attributes to the Set of allowed html attributes for the #sanitize helper |
| 69 | - config.action_view.sanitized_allowed_attributes = 'align', 'border', 'alt', 'vspace', 'hspace', 'width', 'heigth', 'align' | 69 | + config.action_view.sanitized_allowed_attributes = 'align', 'border', 'alt', 'vspace', 'hspace', 'width', 'heigth', 'value', 'type', 'data', 'style' |
| 70 | 70 | ||
| 71 | + # Adds custom tags to the Set of allowed html tags for the #sanitize helper | ||
| 72 | + config.action_view.sanitized_allowed_tags = 'object', 'embed', 'param' | ||
| 73 | + | ||
| 71 | # See Rails::Configuration for more options | 74 | # See Rails::Configuration for more options |
| 72 | 75 | ||
| 73 | extra_controller_dirs.each do |item| | 76 | extra_controller_dirs.each do |item| |
public/javascripts/lightbox.js
| @@ -76,6 +76,7 @@ lightbox.prototype = { | @@ -76,6 +76,7 @@ lightbox.prototype = { | ||
| 76 | this.setScroll(0,0); | 76 | this.setScroll(0,0); |
| 77 | this.hideSelects('hidden'); | 77 | this.hideSelects('hidden'); |
| 78 | } | 78 | } |
| 79 | + this.hideObjectsAndEmbeds('hidden'); | ||
| 79 | this.displayLightbox("block"); | 80 | this.displayLightbox("block"); |
| 80 | }, | 81 | }, |
| 81 | 82 | ||
| @@ -84,7 +85,7 @@ lightbox.prototype = { | @@ -84,7 +85,7 @@ lightbox.prototype = { | ||
| 84 | bod = document.getElementsByTagName('body')[0]; | 85 | bod = document.getElementsByTagName('body')[0]; |
| 85 | bod.style.height = height; | 86 | bod.style.height = height; |
| 86 | bod.style.overflow = overflow; | 87 | bod.style.overflow = overflow; |
| 87 | - | 88 | + |
| 88 | htm = document.getElementsByTagName('html')[0]; | 89 | htm = document.getElementsByTagName('html')[0]; |
| 89 | htm.style.height = height; | 90 | htm.style.height = height; |
| 90 | htm.style.overflow = overflow; | 91 | htm.style.overflow = overflow; |
| @@ -97,7 +98,20 @@ lightbox.prototype = { | @@ -97,7 +98,20 @@ lightbox.prototype = { | ||
| 97 | selects[i].style.visibility = visibility; | 98 | selects[i].style.visibility = visibility; |
| 98 | } | 99 | } |
| 99 | }, | 100 | }, |
| 100 | - | 101 | + |
| 102 | + // In FF, objects and embeds elements hover on top of the lightbox | ||
| 103 | + hideObjectsAndEmbeds: function(visibility){ | ||
| 104 | + var f = function(collection) { | ||
| 105 | + for(i = 0; i < collection.length; i++) { | ||
| 106 | + if (collection[i].style) { | ||
| 107 | + collection[i].style.visibility = visibility; | ||
| 108 | + } | ||
| 109 | + } | ||
| 110 | + }; | ||
| 111 | + f(document.getElementsByTagName('object')); | ||
| 112 | + f(document.getElementsByTagName('embed')); | ||
| 113 | + }, | ||
| 114 | + | ||
| 101 | // Taken from lightbox implementation found at http://www.huddletogether.com/projects/lightbox/ | 115 | // Taken from lightbox implementation found at http://www.huddletogether.com/projects/lightbox/ |
| 102 | getScroll: function(){ | 116 | getScroll: function(){ |
| 103 | if (self.pageYOffset) { | 117 | if (self.pageYOffset) { |
| @@ -122,8 +136,8 @@ lightbox.prototype = { | @@ -122,8 +136,8 @@ lightbox.prototype = { | ||
| 122 | // Begin Ajax request based off of the href of the clicked linked | 136 | // Begin Ajax request based off of the href of the clicked linked |
| 123 | loadInfo: function() { | 137 | loadInfo: function() { |
| 124 | var myAjax = new Ajax.Request( | 138 | var myAjax = new Ajax.Request( |
| 125 | - this.content, | ||
| 126 | - {method: 'post', parameters: "", onComplete: this.processInfo.bindAsEventListener(this)} | 139 | + this.content, |
| 140 | + {method: 'post', parameters: "", onComplete: this.processInfo.bindAsEventListener(this)} | ||
| 127 | ); | 141 | ); |
| 128 | 142 | ||
| 129 | }, | 143 | }, |
| @@ -168,7 +182,7 @@ lightbox.prototype = { | @@ -168,7 +182,7 @@ lightbox.prototype = { | ||
| 168 | this.prepareIE("auto", "auto"); | 182 | this.prepareIE("auto", "auto"); |
| 169 | this.hideSelects("visible"); | 183 | this.hideSelects("visible"); |
| 170 | } | 184 | } |
| 171 | - | 185 | + this.hideObjectsAndEmbeds("visible"); |
| 172 | this.displayLightbox("none"); | 186 | this.displayLightbox("none"); |
| 173 | } | 187 | } |
| 174 | } | 188 | } |