Commit 283ad2e69d875384adfd2a22fb2ab6b849f74f19

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 81029a02

ActionItem785: allowing videos from dailymotion and youtube

  * Adding tags object and embed to allowed_tags for sanitize
  * Fixing lightbox. It was appearing behind videos
config/environment.rb
... ... @@ -66,8 +66,11 @@ Rails::Initializer.run do |config|
66 66 }
67 67  
68 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 74 # See Rails::Configuration for more options
72 75  
73 76 extra_controller_dirs.each do |item|
... ...
public/javascripts/lightbox.js
... ... @@ -76,6 +76,7 @@ lightbox.prototype = {
76 76 this.setScroll(0,0);
77 77 this.hideSelects('hidden');
78 78 }
  79 + this.hideObjectsAndEmbeds('hidden');
79 80 this.displayLightbox("block");
80 81 },
81 82  
... ... @@ -84,7 +85,7 @@ lightbox.prototype = {
84 85 bod = document.getElementsByTagName('body')[0];
85 86 bod.style.height = height;
86 87 bod.style.overflow = overflow;
87   -
  88 +
88 89 htm = document.getElementsByTagName('html')[0];
89 90 htm.style.height = height;
90 91 htm.style.overflow = overflow;
... ... @@ -97,7 +98,20 @@ lightbox.prototype = {
97 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 115 // Taken from lightbox implementation found at http://www.huddletogether.com/projects/lightbox/
102 116 getScroll: function(){
103 117 if (self.pageYOffset) {
... ... @@ -122,8 +136,8 @@ lightbox.prototype = {
122 136 // Begin Ajax request based off of the href of the clicked linked
123 137 loadInfo: function() {
124 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 182 this.prepareIE("auto", "auto");
169 183 this.hideSelects("visible");
170 184 }
171   -
  185 + this.hideObjectsAndEmbeds("visible");
172 186 this.displayLightbox("none");
173 187 }
174 188 }
... ...