Commit 4252db4963c60b91db3443a6bd5956b20a7ff514

Authored by Daniela Feitosa
1 parent 87d91ff8

Search articles from portal on env link list block

Also fixed visualization on firefox (the trash icon was in the second
line)

(ActionItem2582)
app/controllers/box_organizer_controller.rb
... ... @@ -83,9 +83,13 @@ class BoxOrganizerController < ApplicationController
83 83 def search_autocomplete
84 84 if request.xhr? and params[:query]
85 85 search = params[:query]
86   - articles = @profile.articles.find(:all, :conditions=>"name ILIKE '%#{search}%' or path ILIKE '%#{search}%'", :limit=>20)
87   - path_list = articles.map { |content| "/{profile}/"+content.path }
88   -
  86 + path_list = if boxes_holder.is_a?(Environment) && boxes_holder.enabled?('use_portal_community') && boxes_holder.portal_community
  87 + boxes_holder.portal_community.articles.find(:all, :conditions=>"name ILIKE '%#{search}%' or path ILIKE '%#{search}%'", :limit=>20).map { |content| "/{portal}/"+content.path }
  88 + elsif boxes_holder.is_a?(Profile)
  89 + boxes_holder.articles.find(:all, :conditions=>"name ILIKE '%#{search}%' or path ILIKE '%#{search}%'", :limit=>20).map { |content| "/{profile}/"+content.path }
  90 + else
  91 + []
  92 + end
89 93 render :json => path_list.to_json
90 94 else
91 95 redirect_to "/"
... ...
public/stylesheets/application.css
... ... @@ -1890,7 +1890,7 @@ a.button.disabled, input.disabled {
1890 1890 margin-bottom: 5px;
1891 1891 padding: 10px 1px 10px 10px;
1892 1892 cursor: pointer;
1893   - width: 90%;
  1893 + width: 97%;
1894 1894 }
1895 1895 .link-list-row:hover {
1896 1896 background: #ddd url(/images/drag-and-drop.png) no-repeat;
... ...
test/functional/environment_design_controller_test.rb
... ... @@ -379,4 +379,38 @@ class EnvironmentDesignControllerTest < ActionController::TestCase
379 379 end
380 380 end
381 381  
  382 + should 'return a list of paths from portal related to the words used in the query search' do
  383 + env = Environment.default
  384 + login_as(create_admin_user(env))
  385 + community = fast_create(Community, :environment_id => env)
  386 + env.portal_community = community
  387 + env.enable('use_portal_community')
  388 + env.save
  389 + @controller.stubs(:boxes_holder).returns(env)
  390 + article1 = fast_create(Article, :profile_id => community.id, :name => "Some thing")
  391 + article2 = fast_create(Article, :profile_id => community.id, :name => "Some article")
  392 + article3 = fast_create(Article, :profile_id => community.id, :name => "Not an article")
  393 +
  394 + xhr :get, :search_autocomplete, :query => 'Some'
  395 +
  396 + json_response = ActiveSupport::JSON.decode(@response.body)
  397 +
  398 + assert_response :success
  399 + assert_equal json_response.include?("/{portal}/"+article1.path), true
  400 + assert_equal json_response.include?("/{portal}/"+article2.path), true
  401 + assert_equal json_response.include?("/{portal}/"+article3.path), false
  402 + end
  403 +
  404 + should 'return empty if portal not configured' do
  405 + env = Environment.default
  406 + login_as(create_admin_user(env))
  407 +
  408 + xhr :get, :search_autocomplete, :query => 'Some'
  409 +
  410 + json_response = ActiveSupport::JSON.decode(@response.body)
  411 +
  412 + assert_response :success
  413 + assert_equal json_response, []
  414 + end
  415 +
382 416 end
... ...