add tags autocomplete

This commit is contained in:
Aleksei Kvitinskii 2011-11-05 14:57:40 +02:00
parent 6323cdda68
commit 1e5aa0efff
6 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,15 @@
class TagsController < ApplicationController
def index
end
def autocomplete
tags = Project.tag_counts.limit 8
tags = tags.where('name like ?', "%#{params[:term]}%") unless params[:term].blank?
tags = tags.map {|t| t.name}
respond_to do |format|
format.json { render json: tags}
end
end
end

View file

@ -57,9 +57,19 @@
$(function(){
var tag_field = $('#tag_field').tagify();
tag_field.tagify('inputField').autocomplete({
source: '/tags/autocomplete.json',
position: { of: tag_field.tagify('containerDiv') },
close: function(event, ui) { tag_field.tagify('add'); },
});
$('form').submit( function() {
var tag_field = $('#tag_field')
tag_field.val( tag_field.tagify('serialize') );
return true;
});
})

View file

@ -0,0 +1,2 @@
%h1 Tags#autocomplete
%p Find me in app/views/tags/autocomplete.html.haml

View file

@ -0,0 +1,2 @@
%h1 Tags#index
%p Find me in app/views/tags/index.html.haml

View file

@ -1,4 +1,7 @@
Gitlab::Application.routes.draw do
get "tags/index"
get "tags/autocomplete"
namespace :admin do
resources :users
resources :projects

View file

@ -0,0 +1,31 @@
require 'spec_helper'
describe "Tags" do
before { login_as :user }
# describe "GET 'tags/index'" do
# it "should be successful" do
# get 'tags/index'
# response.should be_success
# end
# end
describe "GET '/tags/autocomplete'" do
before do
@project = Factory :project
@project.add_access(@user, :read)
@project.tag_list = 'demo1'
@project.save
visit '/tags/autocomplete.json'
end
it "should contains tags" do
page.should have_content('demo1')
end
end
end