Commit 6755d9908f95c12fcce422ffcbfc10bda9473104
Exists in
master
and in
4 other branches
Merge pull request #3196 from Undev/feature/broken-projects-search-23049
Broken projects search on dashboard
Showing
6 changed files
with
34 additions
and
5 deletions
Show diff stats
app/controllers/dashboard_controller.rb
| @@ -34,6 +34,7 @@ class DashboardController < ApplicationController | @@ -34,6 +34,7 @@ class DashboardController < ApplicationController | ||
| 34 | @projects | 34 | @projects |
| 35 | end | 35 | end |
| 36 | 36 | ||
| 37 | + @projects = @projects.search(params[:search]) if params[:search].present? | ||
| 37 | @projects = @projects.page(params[:page]).per(30) | 38 | @projects = @projects.page(params[:page]).per(30) |
| 38 | end | 39 | end |
| 39 | 40 |
app/views/dashboard/_filter.html.haml
| 1 | = form_tag dashboard_filter_path(entity), method: 'get' do | 1 | = form_tag dashboard_filter_path(entity), method: 'get' do |
| 2 | %fieldset.dashboard-search-filter | 2 | %fieldset.dashboard-search-filter |
| 3 | - = search_field_tag "search", params[:search], { placeholder: 'Search', class: 'search-text-input' } | 3 | + = search_field_tag "search", params[:search], { id: 'filter_search', placeholder: 'Search', class: 'search-text-input' } |
| 4 | = button_tag type: 'submit', class: 'btn' do | 4 | = button_tag type: 'submit', class: 'btn' do |
| 5 | %i.icon-search | 5 | %i.icon-search |
| 6 | 6 |
app/views/dashboard/projects.html.haml
| @@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
| 24 | = form_tag projects_dashboard_path, method: 'get' do | 24 | = form_tag projects_dashboard_path, method: 'get' do |
| 25 | %fieldset.dashboard-search-filter | 25 | %fieldset.dashboard-search-filter |
| 26 | = hidden_field_tag "scope", params[:scope] | 26 | = hidden_field_tag "scope", params[:scope] |
| 27 | - = search_field_tag "search", params[:search], { placeholder: 'Search', class: 'left input-xxlarge' } | 27 | + = search_field_tag "search", params[:search], { id: 'dashboard_projects_search', placeholder: 'Search', class: 'left input-xxlarge'} |
| 28 | = button_tag type: 'submit', class: 'btn' do | 28 | = button_tag type: 'submit', class: 'btn' do |
| 29 | %i.icon-search | 29 | %i.icon-search |
| 30 | 30 |
features/dashboard/projects.feature
| 1 | -Feature: Dashboard | 1 | +Feature: Dashboard projects |
| 2 | Background: | 2 | Background: |
| 3 | Given I sign in as a user | 3 | Given I sign in as a user |
| 4 | And I own project "Shop" | 4 | And I own project "Shop" |
| 5 | And I visit dashboard projects page | 5 | And I visit dashboard projects page |
| 6 | 6 | ||
| 7 | - Scenario: I should see issues list | 7 | + Scenario: I should see projects list |
| 8 | Then I should see projects list | 8 | Then I should see projects list |
| 9 | + | ||
| 10 | + Scenario: I should see project I am looking for | ||
| 11 | + Given I search for "Sho" | ||
| 12 | + Then I should see "Shop" project link |
| @@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||
| 1 | +class Dashboard < Spinach::FeatureSteps | ||
| 2 | + include SharedAuthentication | ||
| 3 | + include SharedPaths | ||
| 4 | + include SharedProject | ||
| 5 | + | ||
| 6 | + Then 'I should see projects list' do | ||
| 7 | + @user.authorized_projects.all.each do |project| | ||
| 8 | + page.should have_link project.name_with_namespace | ||
| 9 | + end | ||
| 10 | + end | ||
| 11 | + | ||
| 12 | + Given 'I search for "Sho"' do | ||
| 13 | + fill_in "dashboard_projects_search", with: "Sho" | ||
| 14 | + | ||
| 15 | + within ".dashboard-search-filter" do | ||
| 16 | + find('button').click | ||
| 17 | + end | ||
| 18 | + end | ||
| 19 | + | ||
| 20 | + Then 'I should see "Shop" project link' do | ||
| 21 | + page.should have_link "Shop" | ||
| 22 | + end | ||
| 23 | +end |
features/steps/shared/project.rb
| @@ -9,7 +9,8 @@ module SharedProject | @@ -9,7 +9,8 @@ module SharedProject | ||
| 9 | 9 | ||
| 10 | # Create a specific project called "Shop" | 10 | # Create a specific project called "Shop" |
| 11 | And 'I own project "Shop"' do | 11 | And 'I own project "Shop"' do |
| 12 | - @project = create(:project, name: "Shop") | 12 | + @project = Project.find_by_name "Shop" |
| 13 | + @project ||= create(:project, name: "Shop") | ||
| 13 | @project.team << [@user, :master] | 14 | @project.team << [@user, :master] |
| 14 | end | 15 | end |
| 15 | 16 |