From 4fea681a7eefc56b7656d7d6649f12cb5255b551 Mon Sep 17 00:00:00 2001
From: Mateus Rambo Strey <mars11@inf.ufpr.br>
Date: Thu, 8 Oct 2015 15:33:07 -0300
Subject: [PATCH] fix accessibility bug

---
 .../javascripts/application/accessibility.js  | 103 ++++--------------
 app/views/search/index.html.erb               |  14 +--
 2 files changed, 30 insertions(+), 87 deletions(-)

diff --git a/app/assets/javascripts/application/accessibility.js b/app/assets/javascripts/application/accessibility.js
index a5a8557a7..514cb7f7e 100644
--- a/app/assets/javascripts/application/accessibility.js
+++ b/app/assets/javascripts/application/accessibility.js
@@ -68,92 +68,35 @@ var contrast = function() {
       $('.search-bar').css('border-top','none');
       $('#menu-bar').removeClass('menu-bar-contrast');
 
-      var $select = $('select.select-tag-container').select2();
-      $select.data('select2').$container.removeClass("selec");
-      $select.data('select2').$dropdown.removeClass("words");
-      $select.data('select2').$results.removeClass("fundo");
-
-      var $select1 = $('.select-tag-container1').select2();
-      $select1.data('select2').$container.removeClass("selec");
-      $select1.data('select2').$dropdown.removeClass("words");
-      $select1.data('select2').$results.removeClass("fundo");
-
-      var $select2 = $('.select-tag-container2').select2();
-      $select2.data('select2').$container.removeClass("selec");
-      $select2.data('select2').$dropdown.removeClass("words");
-      $select2.data('select2').$results.removeClass("fundo");
-
-      var $select3 = $('.select-tag-container3').select2();
-      $select3.data('select2').$container.removeClass("selec");
-      $select3.data('select2').$dropdown.removeClass("words");
-      $select3.data('select2').$results.removeClass("fundo");
-
-      var $select4 = $('.select-tag-container4').select2();
-      $select4.data('select2').$container.removeClass("selec");
-      $select4.data('select2').$dropdown.removeClass("words");
-      $select4.data('select2').$results.removeClass("fundo");
-
-      var $select5 = $('.select-tag-container5').select2();
-      $select5.data('select2').$container.removeClass("selec");
-      $select5.data('select2').$dropdown.removeClass("words");
-      $select5.data('select2').$results.removeClass("fundo");
-
-      var $select6 = $('.select-tag-container6').select2();
-      $select6.data('select2').$container.removeClass("selec");
-      $select6.data('select2').$dropdown.removeClass("words");
-      $select6.data('select2').$results.removeClass("fundo");
-
-      var $select7 = $('.select-tag-container7').select2();
-      $select7.data('select2').$container.removeClass("selec");
-      $select7.data('select2').$dropdown.removeClass("words");
-      $select7.data('select2').$results.removeClass("fundo");
-
+      var select = $('.select-tag-container').select2()
+      .on("select2:open", function() {
+          // TODO: find a way to only apply contrast first time only
+        if (select.length > 0) {
+          $select.each(function () {
+            $(this).data('select2').$container.removeClass("selec");
+            $(this).data('select2').$dropdown.removeClass("words");
+            $(this).data('select2').$results.removeClass("fundo");
+          });
+        }
+      });
     }
     else {
       $(contrast_elements).addClass('contraste');
       $('.search-bar').css('border-top','2px solid white');
       $('#menu-bar').addClass('menu-bar-contrast');
 
-      //contraste select2(menu esquerda)
-      var $select = $('.select-tag-container').select2();
-      $select.data('select2').$container.addClass("selec");
-      $select.data('select2').$dropdown.addClass("words");
-      $select.data('select2').$results.addClass("fundo");
-
-      var $select1 = $('.select-tag-container1').select2();
-      $select1.data('select2').$container.addClass("selec");
-      $select1.data('select2').$dropdown.addClass("words");
-      $select1.data('select2').$results.addClass("fundo");
-
-      var $select2 = $('.select-tag-container2').select2();
-      $select2.data('select2').$container.addClass("selec");
-      $select2.data('select2').$dropdown.addClass("words");
-      $select2.data('select2').$results.addClass("fundo");
-
-      var $select3 = $('.select-tag-container3').select2();
-      $select3.data('select2').$container.addClass("selec");
-      $select3.data('select2').$dropdown.addClass("words");
-      $select3.data('select2').$results.addClass("fundo");
-
-      var $select4 = $('.select-tag-container4').select2();
-      $select4.data('select2').$container.addClass("selec");
-      $select4.data('select2').$dropdown.addClass("words");
-      $select4.data('select2').$results.addClass("fundo");
-
-      var $select5 = $('.select-tag-container5').select2();
-      $select5.data('select2').$container.addClass("selec");
-      $select5.data('select2').$dropdown.addClass("words");
-      $select5.data('select2').$results.addClass("fundo");
-
-      var $select6 = $('.select-tag-container6').select2();
-      $select6.data('select2').$container.addClass("selec");
-      $select6.data('select2').$dropdown.addClass("words");
-      $select6.data('select2').$results.addClass("fundo");
-
-      var $select7 = $('.select-tag-container7').select2();
-      $select7.data('select2').$container.addClass("selec");
-      $select7.data('select2').$dropdown.addClass("words");
-      $select7.data('select2').$results.addClass("fundo");
+        //contraste select2(menu esquerda)
+      var select = $('.select-tag-container').select2()
+      .on("select2:open", function() {
+        // TODO: find a way to only apply contrast first time only
+        if (select.length > 0) {
+          select.each(function () {
+            $(this).data('select2').$container.addClass("selec");
+            $(this).data('select2').$dropdown.addClass("words");
+            $(this).data('select2').$results.addClass("fundo");
+          });
+        }
+      });
     }
   }
 
diff --git a/app/views/search/index.html.erb b/app/views/search/index.html.erb
index a145ad19a..d598ab108 100644
--- a/app/views/search/index.html.erb
+++ b/app/views/search/index.html.erb
@@ -33,7 +33,7 @@
         <h4 class="dropdown">Biologia<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container1" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">Plantas</option>
@@ -47,7 +47,7 @@
         <h4 class="dropdown">História<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container2" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">História do Brasil</option>
@@ -61,7 +61,7 @@
         <h4 class="dropdown">Língua Portuguesa<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container3" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">...</option>
@@ -75,7 +75,7 @@
         <h4 class="dropdown">Geografia<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container4" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">...</option>
@@ -89,7 +89,7 @@
         <h4 class="dropdown">Ciências<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container5" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">...</option>
@@ -103,7 +103,7 @@
         <h4 class="dropdown">Educação Física<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container6" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">...</option>
@@ -117,7 +117,7 @@
         <h4 class="dropdown">Inglês<span class="caret caret-align-right"/></h4>
 
         <div>
-          <select class="select-tag-container7" multiple="multiple">
+          <select class="select-tag-container" multiple="multiple">
             <option value="">Todos</option>
             <optgroup label="Básico">
               <option value="">...</option>
-- 
GitLab