diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a9bfca32ac80b1a1e89e4d07acb77337d1fbcffe..77de73f11720be54934bd6edd98a657f15fd6b1e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,23 @@ +services: + - postgres + +variables: + POSTGRES_DB: portalmec_test + DATABASE_URL: "postgresql://postgres:5432/portalmec_test" + +before_script: + - apt-get update -y + - apt-get install default-jre postgresql-client -y + - gem install bundler + - bundle install --jobs $(nproc) --path=/cache/bundler + - bundle exec rake db:create + test: + stage: test script: - - export $BUNDLE_PATH='~/' - - export BUNDLE_PATH='~/' - - bundle install - - bundle exec rake db:migrate RAILS_ENV=test - - bundle exec rake test \ No newline at end of file + - rake test + tags: + - ruby + - postgres + - elasticsearch + - redis \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 1dbf4e5c68edd12eb5a5319179007566d2e37f22..b62bcf9210790bae96ccc68e9b49277f74c4d477 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,7 +47,7 @@ GEM descendants_tracker (~> 0.0.4) ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) - bcrypt (3.1.10) + bcrypt (3.1.11) bcrypt-ruby (3.1.5) bcrypt (>= 3.1.3) best_in_place (3.1.0) @@ -202,7 +202,8 @@ GEM ffi (1.9.10) flamegraph (0.1.0) fast_stack - flay (2.6.1) + flay (2.7.0) + erubis (~> 2.7.0) ruby_parser (~> 3.0) sexp_processor (~> 4.0) flog (4.3.2) @@ -229,8 +230,8 @@ GEM jbuilder (2.4.1) activesupport (>= 3.0.0, < 5.1) multi_json (~> 1.2) - jquery-rails (4.1.0) - rails-dom-testing (~> 1.0) + jquery-rails (4.1.1) + rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-turbolinks (2.1.0) @@ -249,7 +250,7 @@ GEM addressable (~> 2.3) libarchive-static (1.0.5) libv8 (3.16.14.13) - locastyle (0.0.3) + locastyle (0.0.4) logger-colors (1.0.0) loofah (2.0.3) nokogiri (>= 1.5.9) @@ -282,8 +283,8 @@ GEM rack (>= 1.0, < 3) omniauth-facebook (3.0.0) omniauth-oauth2 (~> 1.2) - omniauth-google-oauth2 (0.3.1) - jwt (~> 1.0) + omniauth-google-oauth2 (0.4.0) + jwt (~> 1.5.0) multi_json (~> 1.3) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.3.1) @@ -298,7 +299,7 @@ GEM omniauth-oauth (~> 1.1) open4 (1.3.4) orm_adapter (0.5.0) - paperclip (4.3.5) + paperclip (4.3.6) activemodel (>= 3.2.0) activesupport (>= 3.2.0) cocaine (~> 0.5.5) @@ -308,17 +309,16 @@ GEM ast (~> 2.2) pg (0.18.4) phantomjs (2.1.1.0) - private_attr (1.1.0) ptools (1.3.3) - puma (3.0.2) + puma (3.1.0) pundit (1.1.0) activesupport (>= 3.0.0) quiet_assets (1.1.0) railties (>= 3.1, < 5.0) rack (1.6.4) rack-cors (0.4.0) - rack-mini-profiler (0.9.8) - rack (>= 1.1.3) + rack-mini-profiler (0.9.9.2) + rack (>= 1.2.0) rack-protection (1.5.3) rack rack-test (0.6.3) @@ -348,16 +348,15 @@ GEM rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) - rake (10.5.0) - rake-compiler (0.9.5) + rake (11.1.1) + rake-compiler (0.9.6) rake rdoc (4.2.2) json (~> 1.4) redis (3.2.2) - reek (3.10.1) + reek (3.11) codeclimate-engine-rb (~> 0.3.1) - parser (~> 2.3) - private_attr (~> 1.1) + parser (~> 2.3, >= 2.3.0.6) rainbow (~> 2.0) ref (2.0.0) resource_kit (0.1.4) @@ -372,13 +371,14 @@ GEM sexp_processor (~> 4.0) ruby_parser (3.8.1) sexp_processor (~> 4.1) - rubycritic (2.7.1) + rubycritic (2.8.0) colorize - flay (= 2.6.1) + flay (= 2.7.0) flog (= 4.3.2) launchy (= 2.4.3) parser (~> 2.3) - reek (= 3.10.1) + reek (= 3.11) + ruby_parser (~> 3.8) virtus (~> 1.0) safe_yaml (1.0.4) sass (3.4.21) @@ -397,7 +397,7 @@ GEM activemodel elasticsearch (>= 1) hashie - select2-rails (4.0.1) + select2-rails (4.0.1.1) thor (~> 0.14) sexp_processor (4.7.0) shoulda (3.5.0) @@ -406,7 +406,7 @@ GEM shoulda-context (1.2.1) shoulda-matchers (2.8.0) activesupport (>= 3.0.0) - sidekiq (4.1.0) + sidekiq (4.1.1) concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) redis (~> 3.2, >= 3.2.1) @@ -424,7 +424,7 @@ GEM sprockets (3.5.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.0.3) + sprockets-rails (3.0.4) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) diff --git a/app/assets/javascripts/application/collections.coffee b/app/assets/javascripts/application/collections.coffee index 3dc93bc7f8bc010afb059000f4ee3a9177b3d5a9..0289e4e56c771c88f98948a2259740103a4cf2af 100644 --- a/app/assets/javascripts/application/collections.coffee +++ b/app/assets/javascripts/application/collections.coffee @@ -91,20 +91,23 @@ $(document).on 'ready page:load', -> $(document).on 'add_collection_selector', (e) -> $('.learning-object-vertical').each (e) -> loid = $(this).data('loid') - $('.learning-object-thumbnail', this).append '<input class="collection-selector" type="checkbox" value="' + loid + '"></input>' + type = $(this).data('type') + $('.learning-object-thumbnail', this).append '<input class="collection-selector" type="checkbox" value="' + loid + '" data-type="' + type + '" ></input>' return # add/remove object to array when click checkbox $(document).on 'click', '.collection-selector', -> if this.checked if selected_objects.indexOf(this.value) < 0 - selected_objects.push this.value + selected_objects.push { "class" : $(this).attr('data-type'), "value" : this.value} $(document).trigger('check_selected_collection') return else - index = selected_objects.indexOf(this.value) - if !!(~index) - selected_objects.splice(index, 1) + i = 0 + while i < selected_objects.length + if (selected_objects[i].value == this.value) + selected_objects.splice(i, 1) + i++ $(document).trigger('check_selected_collection') return @@ -113,11 +116,16 @@ $(document).on 'mark_all_collections', -> selected_objects = [] $('.collection-selector').prop('checked', true) $('.collection-selector').each () -> - selected_objects.push this.value + selected_objects.push { "class" : $(this).attr('data-type'), "value" : this.value} + console.log(selected_objects) $(document).trigger('check_selected_collection') -$(document).on 'click', '.count-collections-objects', -> - $(document).trigger('mark_all_collections') +$(document).on 'change', '.count-collections-objects', -> + if ($(this).prop('checked')) + $(document).trigger('mark_all_collections') + else + $(document).trigger('clear_collections') + # clear selected objects $(document).on 'clear_collections', -> @@ -125,21 +133,33 @@ $(document).on 'clear_collections', -> $('.collection-selector').attr('checked', false) $(document).trigger('check_selected_collection') -$(document).on 'click', '.collection-show-select-nav .navbar-brand', -> - $(document).trigger('clear_collections') - # manipulation buttons $(document).on 'click', '.collection-button', -> collection = $('.collection-show-page').data('cid') index = permitted_types.indexOf($(this).data('action')) + urls = [] + learning_objects = [] if permitted_types[index] == 'remove' - url = '/collections/' + encodeURIComponent(collection) + '/learning_objects/' + encodeURIComponent(selected_objects.join()) + if ($('.collection-button').data('class') == 'collections') + i = 0 + while i < selected_objects.length + learning_objects.push selected_objects[i]["value"] + i++ + urls.push '/collections/' + encodeURIComponent(collection) + '/learning_objects/' + encodeURIComponent(learning_objects.join(',')) + else + i = 0 + while i < selected_objects.length + urls.push '/bookmarks/' + encodeURIComponent(selected_objects[i]["class"]) + '/' + encodeURIComponent(selected_objects[i]["value"]) + i++ if confirm('Você tem certeza?') - $.ajax { method: 'DELETE', url: url } - .done -> - $(document).trigger 'refresh_comments' - else - $(document).trigger('open_collections_modal', [collection: collection, type: permitted_types[index], learning_object: selected_objects ]) if !!(~index) + i = 0 + while i < urls.length + $.ajax { method: 'DELETE', url: urls[i] } + .done -> + $(document).trigger 'refresh_comments' + i++ + else + $(document).trigger('open_collections_modal', [collection: collection, type: permitted_types[index], learning_object: selected_objects ]) if !!(~index) # refresh comments via ajax $(document).on 'refresh_comments', (e) -> @@ -159,6 +179,7 @@ $(document).on 'refresh_comments', (e) -> $(document).on 'check_selected_collection', (e) -> length = selected_objects.length if length == 0 + $('.count-collections-objects').prop('checked',false) return $('.collection-show-select-nav').slideUp('slow') else if (length == 1) html = "1 objeto selecionado" diff --git a/app/controllers/bookmarks_controller.rb b/app/controllers/bookmarks_controller.rb index 487cbfd5baed5cfd16afd3755b2da4525d926e55..0dccaf5650ce3f19e62f7958053fe880caca1741 100644 --- a/app/controllers/bookmarks_controller.rb +++ b/app/controllers/bookmarks_controller.rb @@ -9,6 +9,7 @@ class BookmarksController < ApplicationController # GET /bookmarks/1 # GET /bookmarks/1.json def show + render partial: 'list' if params[:list] == 'true' end # POST /bookmarks/1/learning_object @@ -19,10 +20,14 @@ class BookmarksController < ApplicationController render json: { status: true } if request.xhr? end + def list + render layout: false + end + # DELETE /bookmarks/1/learning_object def remove_object authorize @object - Bookmark.destroy(user: @user, bookmarkable: @object) + Bookmark.destroy Bookmark.where(user: @user, bookmarkable: @object) render json: { status: true } if request.xhr? end diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb index 86489177db78044d1650583bea381767497346c6..d4aee9e51cf831e20da805bc0db77e8362173dd3 100644 --- a/app/controllers/collections_controller.rb +++ b/app/controllers/collections_controller.rb @@ -118,10 +118,11 @@ class CollectionsController < ApplicationController @new_collection = Collection.new @publishers = publishers_for current_user + @bookmark = (current_user.bookmarks.nil? || current_user.bookmarks.first.nil?) ? [] : [current_user.bookmarks.first] @groups = [ CollectionsGroup.new(title: 'Coleções Automáticas', - collections: [current_user.bookmarks.first]), + collections: @bookmark ), CollectionsGroup.new(title: 'Coleções Adicionadas', collections: current_user.collections.includes(:owner)) ] diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index e721429a17d2d91c07125608879877053217d595..cbc5a878c07baa6e6e5c1bb038c2a901a49d1839 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -13,8 +13,8 @@ class UsersController < ApplicationController if @user == current_user @publishers = @user.institutions - @bookmarks = @user.bookmarks.first - @groups.unshift(CollectionsGroup.new(title: 'Coleções Automáticas', collections: [@bookmarks])) + @bookmarks = (@user.bookmarks.nil? || @user.bookmarks.first.nil?) ? [] : [@user.bookmarks.first] + @groups.unshift(CollectionsGroup.new(title: 'Coleções Automáticas', collections: @bookmarks)) end end diff --git a/app/policies/collection_policy.rb b/app/policies/collection_policy.rb index e24b8c1ce29c0469397484ac0306466c1d841cac..c986524944e3f652bb26bfa706c7ddaf0218dcbd 100644 --- a/app/policies/collection_policy.rb +++ b/app/policies/collection_policy.rb @@ -23,7 +23,7 @@ class CollectionPolicy < ApplicationPolicy end def add_learning_object? - record if owns? + record if user_exists? end def remove_learning_object? diff --git a/app/views/bookmarks/_list.html.erb b/app/views/bookmarks/_list.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..622dcb1d1f55703db09a2a9e315e1f770c67e8cb --- /dev/null +++ b/app/views/bookmarks/_list.html.erb @@ -0,0 +1,3 @@ +<% @user.bookmark_learning_objects.each do |object| %> + <%= render object, orientation: 'vertical' %> +<% end %> diff --git a/app/views/bookmarks/show.html.erb b/app/views/bookmarks/show.html.erb index 764dc5519603bfb2874dcebef68a9db16a7093ab..db21f6fefae40a4476214574027cbdbf157b6a8b 100644 --- a/app/views/bookmarks/show.html.erb +++ b/app/views/bookmarks/show.html.erb @@ -6,10 +6,8 @@ <ul class="nav navbar-nav navbar-right collection-header" style="margin-left: 30px;"> <li><h2>Favoritos</h2></li> <li> - <a class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos"> - <%= image_tag image_path("icons/square.png"), class: "logo-image", size: "20x20" %> + <input type="checkbox" class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos"> <%= bookmark_length @user %> - </a> </li> </ul> </div> @@ -18,21 +16,21 @@ </nav> <nav class="navigation navbar-inverse collection-show-select-nav" style="display:none;"> <div class="container-fluid"> - <a class="navbar-brand" href="javascript:void(0);" data-toggle="tooltip" data-placement="bottom" title="Limpar seleção"></a> + <a class="navbar-brand" data-toggle="tooltip" data-placement="bottom" ></a> <ul class="nav navbar-nav navbar-right"> - <li class="set-align collection-button" data-action="download"> + <li class="set-align collection-button" data-action="download" data-class="bookmarks"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Download_01.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Salvar no <br>computador</span></a> </li> - <li class="set-align collection-button" data-action="copy"> + <li class="set-align collection-button" data-action="copy" data-class="bookmarks"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Copiar_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Copiar <br>para</span></a> </li> - <li class="set-align collection-button" data-action="move"> + <li class="set-align collection-button" data-action="move" data-class="bookmarks"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Mover_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Mover <br>para</span></a> </li> - <li class="set-align collection-button" data-action="remove"> + <li class="set-align collection-button" data-action="remove" data-class="bookmarks"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Remover_da_Coleção_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Remover da <br>coleção</span></a> </li> @@ -40,11 +38,9 @@ </div> </nav> -<div class= "row"> +<div class="row"> <div class="learning-object-columns"> <br/> - <% @user.bookmark_learning_objects.each do |object| %> - <%= render object, orientation: 'vertical' %> - <% end %> + <%= render partial: 'list' %> </div> </div> diff --git a/app/views/collections/show.html.erb b/app/views/collections/show.html.erb index dbcbb382e780785aac38462b6ab1b717cadf207e..3e6359ec6c75b3f5a19ffbaf4979325c0f9a7dfa 100644 --- a/app/views/collections/show.html.erb +++ b/app/views/collections/show.html.erb @@ -26,8 +26,7 @@ <ul class="nav navbar-nav navbar-right collection-header" style="margin-left: 30px;"> <li><h2><%= (@collection.class != Bookmark) ? @collection.name : "Favoritos" %></h2></li> <li> - <a class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos"> - <%= image_tag image_path("icons/square.png"), class: "logo-image", size: "20x20" %> + <input type="checkbox" class="count-collections-objects" data-toggle="tooltip" data-placement="bottom" title="Selecionar todos"> <%= collection_length @collection %> </a> </li> @@ -38,24 +37,24 @@ </nav> <nav class="navigation navbar-inverse collection-show-select-nav" style="display:none;"> <div class="container-fluid"> - <a class="navbar-brand" href="javascript:void(0);" data-toggle="tooltip" data-placement="bottom" title="Limpar seleção"></a> + <a class="navbar-brand" data-toggle="tooltip" data-placement="bottom" ></a> <ul class="nav navbar-nav navbar-right"> - <li class="set-align collection-button" data-action="download"> + <li class="set-align collection-button" data-action="download" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Download_01.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Salvar no <br>computador</span></a> </li> <% if user_signed_in? %> - <li class="set-align collection-button" data-action="copy"> + <li class="set-align collection-button" data-action="copy" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Copiar_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Copiar <br>para</span></a> </li> <% end %> <% if @own %> - <li class="set-align collection-button" data-action="move"> + <li class="set-align collection-button" data-action="move" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Mover_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Mover <br>para</span></a> </li> - <li class="set-align collection-button" data-action="remove"> + <li class="set-align collection-button" data-action="remove" data-class="collections"> <a href="javascript:void(0);"><span class="left-edge1"><%= image_tag image_path("icons/Remover_da_Coleção_Seleção.png"), class: "logo-image", size: "35x35" %></span><span style="color: white"> Remover da <br>coleção</span></a> </li> diff --git a/app/views/devise/registrations/new.html.erb b/app/views/devise/registrations/new.html.erb index 01d3d53a8683c88e9a71a230441933c4bca79f1f..5eca08657ad41165b2a2ceb551823ff224eba1b1 100644 --- a/app/views/devise/registrations/new.html.erb +++ b/app/views/devise/registrations/new.html.erb @@ -57,17 +57,17 @@ $('.Facebook-button').click(function(){ $('#social-modal-continue').empty(); $('#social-modal-continue').append('<button type="button" class="btn btn-danger" style="float:left;" data-dismiss="modal">Recusar</button>'); - $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:facebook), class: 'btn btn-primary' %>'); + $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:facebook), class: 'btn btn-success' %>'); }); $('.Google-button').click(function(){ $('#social-modal-continue').empty(); $('#social-modal-continue').append('<button type="button" class="btn btn-danger" style="float:left;" data-dismiss="modal">Recusar</button>'); - $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:google_oauth2), class: 'btn btn-primary' %>'); + $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:google_oauth2), class: 'btn btn-success' %>'); }); $('.Twitter-button').click(function(){ $('#social-modal-continue').empty(); $('#social-modal-continue').append('<button type="button" class="btn btn-danger" style="float:left;" data-dismiss="modal">Recusar</button>'); - $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:twitter), class: 'btn btn-primary' %>'); + $('#social-modal-continue').append('<%= button_to "Aceitar", user_omniauth_authorize_path(:twitter), class: 'btn btn-success' %>'); }); </script> diff --git a/app/views/learning_objects/_form.html.erb b/app/views/learning_objects/_form.html.erb index 0a9ed4b0d81072e96587730b8708202aa596aa7a..2561430cab7b0f677bc559aaefda06097c21c659 100644 --- a/app/views/learning_objects/_form.html.erb +++ b/app/views/learning_objects/_form.html.erb @@ -74,7 +74,7 @@ linkInput = $("#link-input"); radioButtons.change(function (e) { - if ("Website externo" == $(this).nextSibling) { + if ("Website externo" == ($("input:radio:checked")[0].nextSibling.textContent)) { linkInput.slideDown(); } else { linkInput.slideUp(); diff --git a/app/views/learning_objects/_learning_object_vertical.erb b/app/views/learning_objects/_learning_object_vertical.erb index 91f12fba15cb7f9f8bce04a6ea82eec8426d25b5..5319ca6735e835e96ae00b41db508fa07681cd81 100644 --- a/app/views/learning_objects/_learning_object_vertical.erb +++ b/app/views/learning_objects/_learning_object_vertical.erb @@ -1,4 +1,4 @@ -<div class="learning-object-vertical" data-loid="<%= learning_object.id %>"> +<div class="learning-object-vertical" data-loid="<%= learning_object.id %>" data-type="LearningObject" > <div class="panel"> <div class="learning-object-thumbnail"> <%= link_to learning_object_path(id: learning_object.id) do diff --git a/app/views/reviews/_review.html.erb b/app/views/reviews/_review.html.erb index 26be687014198af12376919b3c2b1046f6af1426..761733968ea78c21e499f006af787b6fc12aadbb 100644 --- a/app/views/reviews/_review.html.erb +++ b/app/views/reviews/_review.html.erb @@ -63,11 +63,23 @@ <% end %> </span> - <%= link_to rate_review_path(id: review.id, approves: true), class: ("btn btn-default btn-xs review-button review-button-approve " + (review.user_approves?(current_user) ? "approved" : "") ), method: :post, remote: true do %> + + <% approves = review.user_approves?(current_user) %> + <% button_approves_class = "btn btn-default btn-xs review-button review-button-approve " %> + <% button_desapproves_class = "btn btn-default btn-xs review-button review-button-desapprove " %> + <% if !approves.nil? %> + <% if approves%> + <%button_approves_class += "approved" %> + <%else%> + <%button_desapproves_class += "desapproved" %> + <%end%> + <%end%> + + <%= link_to rate_review_path(id: review.id, approves: true), class: button_approves_class, method: :post, remote: true do %> <i class="fa fa-thumbs-up fa-2x" aria-hidden="true"></i> <% end %> - <%= link_to rate_review_path(id: review.id, approves: false), class: ("btn btn-default btn-xs review-button review-button-desapprove " + (review.user_approves?(current_user) ? "": "desapproved")), method: :post, remote: true do %> + <%= link_to rate_review_path(id: review.id, approves: false), class: button_desapproves_class, method: :post, remote: true do %> <i class="fa fa-thumbs-down fa-2x" aria-hidden="true"></i> <% end %> diff --git a/app/views/shared/application/_search.erb b/app/views/shared/application/_search.erb index da844e70f8941b027f89828617add63475ed9553..e239aa2859cdbd26ddca883903044f91c9141e3a 100644 --- a/app/views/shared/application/_search.erb +++ b/app/views/shared/application/_search.erb @@ -1,7 +1,7 @@ <div class="search-input"> <form action="/search" method="get"> <div class="input-group" id="search"> - <input type="text" data-lo="<%=number_with_delimiter(LearningObject.count, delimiter: ".") %>" data-user="<%= number_with_delimiter(User.count, delimiter: ".") %>" data-collection="<%= number_with_delimiter(Collection.count, delimiter: ".") %>" placeholder="" class="form-control" name="query" id="main_search"> + <input type="text" data-lo="<%=number_with_delimiter(LearningObject.count, delimiter: ".") %>" data-user="<%= number_with_delimiter(User.count, delimiter: ".") %>" data-collection="<%= number_with_delimiter(Collection.where(privacy: 'public').count, delimiter: ".") %>" placeholder="" class="form-control" name="query" id="main_search"> <select name="search_class" id="search_class" class="form-control"> <option value="LearningObject" selected>Conteúdos Educacionais</option> <option value="Collection">Coleções</option> diff --git a/config/database.yml b/config/database.yml index 3b40ba589c8c0f29a9563677dafa1bfaa7db72e7..d224689f8e16ec2e9ad4f9d709b9ee59cc906fd9 100644 --- a/config/database.yml +++ b/config/database.yml @@ -10,10 +10,7 @@ development: &development password: test: - <<: *defaults - database: portalmec_test - username: - password: + url: <%= ENV['DATABASE_URL'] %> production: <<: *defaults diff --git a/config/database.yml.gitlab b/config/database.yml.gitlab new file mode 100644 index 0000000000000000000000000000000000000000..fb08e1e402d9f56a785d86d5c18cee25eb90c3cb --- /dev/null +++ b/config/database.yml.gitlab @@ -0,0 +1,24 @@ +default: &defaults + adapter: postgresql + encoding: unicode + pool: 5 + +development: &development + <<: *defaults + database: portalmec_dev + username: + password: + +test: + <<: *defaults + host: localhost + database: <%= ENV['POSTGRES_DB'] %> + username: <%= ENV['POSTGRES_USER'] %> + password: <%= ENV['POSTGRES_PASSWORD'] %> + +production: + <<: *defaults + host: <%= ENV['PORTALMEC_DB_HOST'] %> + database: <%= ENV['PORTALMEC_DB_NAME'] %> + username: <%= ENV['PORTALMEC_DB_USERNAME'] %> + password: <%= ENV['PORTALMEC_DB_PASSWORD'] %> diff --git a/config/routes.rb b/config/routes.rb index 47da59df4fc0cc5d82eb98d0e445f283c7980015..3a6aa06ca2fa0df06f61e6a951b020bbb5bc468f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -110,6 +110,7 @@ Rails.application.routes.draw do end get '/bookmarks' => 'bookmarks#show', as: 'bookmark' + get '/bookmarks/list' => 'bookmarks#list', as: 'list' post '/bookmarks/:type/:id' => 'bookmarks#add_object', as: :bookmark_add delete '/bookmarks/:type/:id' => 'bookmarks#remove_object', as: :bookmark_remove