From ae082cda48a45744d1b7da1aa8c4456fd5a8cca5 Mon Sep 17 00:00:00 2001 From: albert Date: Sun, 17 Feb 2013 23:39:43 -0500 Subject: [PATCH] improvements to pool add --- app/assets/javascripts/pools.js | 2 +- app/controllers/pool_elements_controller.rb | 10 ++++------ app/models/pool.rb | 5 +++++ app/views/pool_elements/_new.html.erb | 19 ++++++++++++++++--- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/pools.js b/app/assets/javascripts/pools.js index 6fbde52ce..125bf3d44 100644 --- a/app/assets/javascripts/pools.js +++ b/app/assets/javascripts/pools.js @@ -23,7 +23,7 @@ } ); }, - minLength: 4, + minLength: 2, }); $("#pool").click(function(e) { diff --git a/app/controllers/pool_elements_controller.rb b/app/controllers/pool_elements_controller.rb index f13eb161c..f8742e0e7 100644 --- a/app/controllers/pool_elements_controller.rb +++ b/app/controllers/pool_elements_controller.rb @@ -5,14 +5,12 @@ class PoolElementsController < ApplicationController def create @pool = Pool.find_by_name(params[:pool_name]) || Pool.find_by_id(params[:pool_id]) - if @pool.nil? - - return + if @pool.present? + @post = Post.find(params[:post_id]) + @pool.add!(@post) + append_pool_to_session(@pool) end - @post = Post.find(params[:post_id]) - @pool.add!(@post) - append_pool_to_session(@pool) respond_with(@pool, :location => post_path(@post)) end diff --git a/app/models/pool.rb b/app/models/pool.rb index 36ac34544..dc007cd04 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -25,6 +25,7 @@ class Pool < ActiveRecord::Base return q if params.blank? if params[:name_matches].present? + params[:name_matches] += "*" unless params[:name_matches] =~ /\*/ q = q.where("name like ? escape E'\\\\'", params[:name_matches].to_escaped_for_sql_like) end @@ -64,6 +65,10 @@ class Pool < ActiveRecord::Base select_value_sql("SELECT name FROM pools WHERE id = ?", id) end + def self.options + select_all_sql("SELECT id, name FROM pools WHERE is_active = true AND is_deleted = false ORDER BY name LIMIT 100").map {|x| [x["name"], x["id"]]} + end + def self.create_anonymous Pool.new do |pool| pool.name = "TEMP:#{Time.now.to_f}.#{rand(1_000_000)}" diff --git a/app/views/pool_elements/_new.html.erb b/app/views/pool_elements/_new.html.erb index 0a3b5c92f..92ec6eba2 100644 --- a/app/views/pool_elements/_new.html.erb +++ b/app/views/pool_elements/_new.html.erb @@ -1,9 +1,22 @@
- <%= form_tag(pool_element_path) do %> + <%= form_tag(pool_element_path, :class => "simple_form") do %> <%= hidden_field_tag "post_id", @post.id %> - <%= text_field_tag "pool_name", "", :size => 20 %> - <%= submit_tag "Select" %> + +
+ + <%= select_tag "pool_id", options_for_select([["", ""]] + Pool.options) %> +
+ +
+ + <%= text_field_tag "pool_name", "", :size => 20 %> + Type the first two characters of a pool name +
+ +
+ <%= submit_tag "Select" %> +
<% end %> <% if recent_updated_pools.any? %>