diff --git a/app/assets/javascripts/application/complaints.coffee b/app/assets/javascripts/application/complaints.coffee
deleted file mode 100644
index 149f06dc8666751b27ff649bb82eac0f24f352e1..0000000000000000000000000000000000000000
--- a/app/assets/javascripts/application/complaints.coffee
+++ /dev/null
@@ -1,10 +0,0 @@
-$ ->
-  $('.add_to_complaint').popover
-    html: true
-    placement: "left"
-    title: ->
-      $('#complaints_list_popover_title').html()
-    content: ->
-      $('#complaints_list_popover').html()
-
-  return
diff --git a/app/assets/javascripts/management.js b/app/assets/javascripts/management.js
index 02ead06a5e6ae6d91d4cd72f113066c3e97e53e0..b5d1122ff9312caa3b29caa3b9a69ecec112b996 100644
--- a/app/assets/javascripts/management.js
+++ b/app/assets/javascripts/management.js
@@ -14,7 +14,6 @@
 //= require jquery_ujs
 //= require turbolinks
 //= require jquery.turbolinks
-//= require bootstrap-sprockets
 // www.chartjs.org/docs/
 //= require Chart
 //= require locastyle
@@ -22,40 +21,41 @@
 
 var visualised,non_visualised;
 $(document).ready(function(){
-
-visualised = document.getElementById("lobject").value;
-non_visualised = document.getElementById("lobject_non").value;
-
-var data_learning_objects = dataLearningObjects(visualised,non_visualised);
-
-var charts = ["colections","users","learning_objects","accesses"];
-
-for(i=0;i<charts.length;i++) {
-  if ( document.getElementById(charts[i]) ) {
-      var ctx = document.getElementById(charts[i]).getContext("2d");
-     switch ( charts[i] ){
-       case "colections":
-         new Chart(ctx).Pie(data_colections,pie_options);
-         var colections_chart = new Chart(ctx).Pie(data_colections);
-         break;
-       case "users":
-         new Chart(ctx).Bar(data_users,bar_options);
-         var users_chart = new Chart(ctx).Bar(data_users);
-         break;
-       case "learning_objects":
-         new Chart(ctx).Pie(data_learning_objects,pie_options);
-         var learning_objects_chart = new Chart(ctx).Pie(data_learnin_objects);
-         break;
-       case "accesses":
-         new Chart(ctx).Line(data_accesses,line_options);
-         var accesses_chart = new Chart(ctx).Line(data_accesses);
-         break;
-
-       default:  null;
-         break;
-     }
+  if (document.getElementById("lobject") !== null) {
+    visualised = document.getElementById("lobject").value;
+    non_visualised = document.getElementById("lobject_non").value;
+
+    var data_learning_objects = dataLearningObjects(visualised,non_visualised);
+
+    var charts = ["colections","users","learning_objects","accesses"];
+
+    for(i=0;i<charts.length;i++) {
+      if ( document.getElementById(charts[i]) ) {
+          var ctx = document.getElementById(charts[i]).getContext("2d");
+         switch ( charts[i] ){
+           case "colections":
+             new Chart(ctx).Pie(data_colections,pie_options);
+             var colections_chart = new Chart(ctx).Pie(data_colections);
+             break;
+           case "users":
+             new Chart(ctx).Bar(data_users,bar_options);
+             var users_chart = new Chart(ctx).Bar(data_users);
+             break;
+           case "learning_objects":
+             new Chart(ctx).Pie(data_learning_objects,pie_options);
+             var learning_objects_chart = new Chart(ctx).Pie(data_learnin_objects);
+             break;
+           case "accesses":
+             new Chart(ctx).Line(data_accesses,line_options);
+             var accesses_chart = new Chart(ctx).Line(data_accesses);
+             break;
+
+           default:  null;
+             break;
+         }
+      }
+    }
   }
-}
 });
 
 Chart.defaults.global = {
diff --git a/app/assets/javascripts/management/institutions.coffee b/app/assets/javascripts/management/institutions.coffee
index 24edb353d62c2955277978889d478edf15b0666b..7b0ee8df2002e65a218378ebfb9cfe5420accf13 100644
--- a/app/assets/javascripts/management/institutions.coffee
+++ b/app/assets/javascripts/management/institutions.coffee
@@ -1,39 +1,38 @@
 $ ->
-  $(document).on 'click', '*[data-institution]', ->
-    e = $(this)
-    e.popover({content: "Carregando..."}).popover('show')
+  $(document).on 'popover:opened', (e) ->
     all = undefined
     objects = undefined
-    institution_id = $(this).data('institution')
-    url = '/institutions/' + institution_id + '/users.json'
-    $.get '/users/list.json', (d) ->
-      all = d
-      $.get url, (d) ->
-        object = d
+    institution_id = $('[class=institution]',e.target).data('institution')
+    if institution_id?
+      url = '/institutions/' + institution_id + '/users.json'
+      $.get '/users/list.json', (d) ->
+        all = d
+        $.get url, (d) ->
+          object = d
 
-        # generate a lookup table for object's collections id
-        lookup = {}
-        i = 0
-        len = object.length
-        while i < len
-          lookup[object[i].id] = object[i]
-          i++
+          # generate a lookup table for object's collections id
+          lookup = {}
+          i = 0
+          len = object.length
+          while i < len
+            lookup[object[i].id] = object[i]
+            i++
 
-        # mark checked objects
-        i = 0
-        len = all.length
-        html = ''
-        while i < len
-          name = 'user_' + all[i].rid.split(':').slice(-1)[0]
-          html += '<input type="checkbox" class="institutional-user-element" data-uid="' + all[i].id + '" data-institution-id="' + institution_id + '" id="' + name + '"'
-          if lookup[all[i].id] != undefined
-            html += " checked"
-          html += '>'
-          html += '<label for="' + name + '">' + all[i].name + '</label><br/>'
-          ++i
+          # mark checked objects
+          i = 0
+          len = all.length
+          html = ''
+          while i < len
+            name = 'user_' + all[i].rid.split(':').slice(-1)[0]
+            html += '<input type="checkbox" class="institutional-user-element" data-uid="' + all[i].id + '" data-institution-id="' + institution_id + '" id="' + name + '"'
+            if lookup[all[i].id] != undefined
+              html += " checked"
+            html += '>'
+            html += '<label for="' + name + '">' + all[i].name + '</label><br/>'
+            ++i
 
-        $('.popover-content').html(html)
-      return
+          $('.ls-popover-content').html(html)
+        return
     return
   return
 
diff --git a/app/assets/stylesheets/management.scss b/app/assets/stylesheets/management.scss
index 1375cc6a9534629bdfd81e5be9fbdb083db99ab7..280f4bb3720693b96278863b5483e7161ac5d46d 100644
--- a/app/assets/stylesheets/management.scss
+++ b/app/assets/stylesheets/management.scss
@@ -14,6 +14,3 @@
  *= require locastyle
  *= require_self
  */
-
-@import "bootstrap-sprockets";
-@import "bootstrap";
diff --git a/app/controllers/complaints_controller.rb b/app/controllers/complaints_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..54c2daf26282fc5f14dbc602ff9143346b9db54a
--- /dev/null
+++ b/app/controllers/complaints_controller.rb
@@ -0,0 +1,24 @@
+class ComplaintsController < ApplicationController
+  include RepositoriesProxy
+
+  def create
+    @complaint = Complaint.new(complaint_params)
+    @complaint.user = current_user
+    @complaint.object = params[:complaint][:object_rid]
+
+    respond_to do |format|
+      if complaint_repository.report @complaint
+          format.html { redirect_to :back, notice: 'Denúncia realizada com sucesso.' }
+      else
+        format.html { redirect_to :back, alert: 'Objeto já foi denunciado por você.' }
+      end
+    end
+  end
+
+  private
+  
+    # Never trust parameters from the scary internet, only allow the white list through.
+    def complaint_params
+      params.require(:complaint).permit(:object, :message, :description)
+    end
+end
diff --git a/app/controllers/management/complaints_controller.rb b/app/controllers/management/complaints_controller.rb
index 75175bd0b4d1f1943135f3a224fc6348c46d37c4..6db8a8aeb8376868b6061f58ccb67e814f5b93f0 100644
--- a/app/controllers/management/complaints_controller.rb
+++ b/app/controllers/management/complaints_controller.rb
@@ -13,37 +13,13 @@ class Management::ComplaintsController < ManagementController
     end
   end
 
-  def create
-    @complaint = Complaint.new(complaint_params)
-    @complaint.user = current_user
-    @complaint.object = params[:complaint][:object_rid]
-
-    respond_to do |format|
-      if complaint_repository.report @complaint
-          format.html { redirect_to :back, notice: 'Denúncia realizada com sucesso.' }
-      else
-        format.html { redirect_to :back, alert: 'Objeto já foi denunciado por você.' }
-      end
-    end
-  end
-
   def destroy
-
     object_rid = params["object_rid"]
     user_rid = params["user_rid"]
     complaint_repository.destroy(user_rid, object_rid)
 
     respond_to do |format|
-      format.html { redirect_to :back, notice: 'Complaint was successfully destroyed.' }
+      format.html { redirect_to :back, notice: 'Denúncia excluída com sucesso.' }
     end
-
   end
-
-  private
-
-  # Never trust parameters from the scary internet, only allow the white list through.
-  def complaint_params
-    params.require(:complaint).permit(:object, :message, :description)
-  end
-
 end
diff --git a/app/views/complaints/_complaints_button.html.erb b/app/views/complaints/_complaints_button.html.erb
index a9708241b5322149106f65ec0b3c0f4a7fb09fc5..914ac3f7b89960cc0b0e3608ff78ac4a83538f27 100644
--- a/app/views/complaints/_complaints_button.html.erb
+++ b/app/views/complaints/_complaints_button.html.erb
@@ -1,7 +1,5 @@
-<button type="button" class="btn btn-default btn-xs add_to_complaint "  data-toggle="button" data-trigger="click"  aria-pressed="false" autocomplete="off" title="Denunciar Objeto" border-style: "none" >
- <%= image_tag "icons/report-circle.png", alt: "Denunciar objeto" %>
-</button>
-
-<div id="complaints_list_popover"  class="popover">
-  <%= render 'complaints/form' %>
-</div>
+<a type="button" class="add_to_complaint" data-toggle="modal" data-target="#complaints_list_modal" title="Denunciar Objeto">
+  <%= image_tag "icons/report-circle.png", alt: "Denunciar objeto" %>
+  <h6 style="color: #F05A28">denunciar objeto</h6>
+</a>
+<%= render 'complaints/form' %>
diff --git a/app/views/complaints/_form.html.erb b/app/views/complaints/_form.html.erb
index 4030609525fc3ca93bf09efd98221270436fe360..fd89e3e83c024f372647a24f51b9e1ccfcd31f3d 100644
--- a/app/views/complaints/_form.html.erb
+++ b/app/views/complaints/_form.html.erb
@@ -1,33 +1,31 @@
-
-<%= form_for [:management, @complaint] do |f| %>
-  <fieldset>
-
-  <div class="ls-label " >
-
-
-    <%= f.collection_radio_buttons :message, @messages, :message, :message do |m| %>
-    <div class="radio" >
-      <%= f.radio_button :message, m.text  %>
-      <%= f.label :message, m.text %>
-    </div>
-    <% end %>
-
-      <br><br>
-      <div align="center">
-        <%= f.text_area :description, placeholder: "mais informações", rows: "10", cols: "30"  %>
+<div class="modal fade" id="complaints_list_modal" tabindex="-1" role="dialog" aria-labelledby="complaints_list_modal_label">
+  <div class="modal-dialog" role="document">
+    <div class="modal-content">
+      <div class="modal-header">
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+        <h4 class="modal-title" id="myModalLabel">Denunciar objeto</h4>
       </div>
-
-  </div>
-
-  <%= f.hidden_field :object_rid, value: @learning_object.id %>
-  </fieldset>
-
-
-
-  <div align="center" >
-    <%= f.submit "Salvar", class:"submit_button" %>
-    <%#= link_to "Fechar",{}, class:"close_button" %>
-    <!--<button id="btn-fechar" class="btn btn-danger" data-dismiss="clickover">Fechar</button>-->
-
+      <%= form_for @complaint do |f| %>
+        <div class="modal-body" style="text-align:justify">
+          <fieldset>
+            <div class="ls-label">
+              <%= f.collection_radio_buttons :message, @messages, :message, :message do |m| %>
+                <div class="radio">
+                  <%= f.radio_button :message, m.text  %>
+                  <%= f.label :message, m.text %>
+                </div>
+              <% end %>
+              <br>
+              <%= f.text_area :description, placeholder: "mais informações", rows: "10", style: "width:100%"  %>
+            </div>
+          <%= f.hidden_field :object_rid, value: @learning_object.id %>
+          </fieldset>
+        </div>
+        <div class="modal-footer">
+          <button type="button" class="btn btn-default" data-dismiss="modal">Fechar</button>
+          <%= f.submit "Denunciar", class:"btn btn-danger submit_button" %>
+        </div>
+      <% end %>
+    </div>
   </div>
-  <%end%>
+</div>
diff --git a/app/views/learning_objects/show.html.erb b/app/views/learning_objects/show.html.erb
index 3ad6e153d7163f9ad61a7f51f855a7e0eab474f8..97b0d5d40b559d7e32755d0d3051fb8071db723b 100644
--- a/app/views/learning_objects/show.html.erb
+++ b/app/views/learning_objects/show.html.erb
@@ -60,13 +60,7 @@
           </a>
           </div>
           <div class="col-md-3 action">
-            <a type="button" class="add_to_complaint" data-toggle="popover" title="Denunciar Objeto">
-             <%= image_tag "icons/report-circle.png", alt: "Denunciar objeto" %>
-             <h6 style="color: #F05A28">denunciar objeto</h6>
-            </a>
-            <div id="complaints_list_popover"  class="popover">
-              <%= render 'complaints/form' %>
-            </div>
+            <%= render 'complaints/complaints_button' %>
           </div>
         <% else %>
           <br/>
diff --git a/app/views/management/institutions/index.html.erb b/app/views/management/institutions/index.html.erb
index d7e667fa6d655beed2489b5764729a3bf04d8891..5fb2120a2b775dab3172887b6c3bf29969d3f289 100644
--- a/app/views/management/institutions/index.html.erb
+++ b/app/views/management/institutions/index.html.erb
@@ -25,7 +25,7 @@
         <td><%= institution.address %></td>
         <td><%= institution.description %></td>
         <!-- <td class="ls-txt-right ls-regroup"><%= link_to 'Editar', edit_management_institution_path(institution.id) %></td> -->
-        <td><%= link_to 'Usuários', 'javascript:void(0);', 'data-institution':ERB::Util.url_encode(institution.id) %></td>
+        <td><%= link_to 'Usuários', 'javascript:void(0);', class: 'ls-btn-primary', 'data-institution': ERB::Util.url_encode(institution.id), 'data-ls-module': 'popover', 'data-content': '<span class="institution" data-institution="'+institution.id+'"></span>Carregando...', 'data-placement': 'bottom' %></td>
         <td><%= link_to 'Excluir', management_institution_path(institution.id), method: :delete, data: { confirm: 'Você tem certeza?' } %></td>
       </tr>
     <% end %>
diff --git a/config/routes.rb b/config/routes.rb
index b91e3f669aab63f2f11034053a4699eef1cfb37d..8f9fe1a315fa633296b4838fe14e298e0326eb59 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -9,7 +9,7 @@ Rails.application.routes.draw do
 
   namespace :management do
     root 'welcome#index'
-    resource :complaints
+    resource :complaints, except: ['create']
     resources :institutions do
       member do
         post '/user/:user_id', as: :add_user, action: :add_user
@@ -46,7 +46,11 @@ Rails.application.routes.draw do
   end
 
   root 'welcome#index'
+
   resources :subjects, only: [:index, :show]
+
+  resource :complaints, only: ['create']
+
   resources :institutions do
     member do
       get :users