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,9 +83,13 @@ class BoxOrganizerController < ApplicationController
83 def search_autocomplete 83 def search_autocomplete
84 if request.xhr? and params[:query] 84 if request.xhr? and params[:query]
85 search = params[:query] 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 render :json => path_list.to_json 93 render :json => path_list.to_json
90 else 94 else
91 redirect_to "/" 95 redirect_to "/"
public/stylesheets/application.css
@@ -1890,7 +1890,7 @@ a.button.disabled, input.disabled { @@ -1890,7 +1890,7 @@ a.button.disabled, input.disabled {
1890 margin-bottom: 5px; 1890 margin-bottom: 5px;
1891 padding: 10px 1px 10px 10px; 1891 padding: 10px 1px 10px 10px;
1892 cursor: pointer; 1892 cursor: pointer;
1893 - width: 90%; 1893 + width: 97%;
1894 } 1894 }
1895 .link-list-row:hover { 1895 .link-list-row:hover {
1896 background: #ddd url(/images/drag-and-drop.png) no-repeat; 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,4 +379,38 @@ class EnvironmentDesignControllerTest < ActionController::TestCase
379 end 379 end
380 end 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 end 416 end