Commit 7928b30e866f423c6f99532c3616adef5b387e0d
1 parent
4e87412c
Exists in
master
and in
29 other branches
ActionItem527: less space for sellers search box
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2251 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
7 changed files
with
108 additions
and
26 deletions
Show diff stats
app/helpers/forms_helper.rb
@@ -53,18 +53,46 @@ module FormsHelper | @@ -53,18 +53,46 @@ module FormsHelper | ||
53 | javascript_tag('new Autocompleter.Local(%s, %s, %s)' % [ id.to_json, "autocomplete-for-#{id}".to_json, choices.to_json ] ) | 53 | javascript_tag('new Autocompleter.Local(%s, %s, %s)' % [ id.to_json, "autocomplete-for-#{id}".to_json, choices.to_json ] ) |
54 | end | 54 | end |
55 | 55 | ||
56 | - def select_city | 56 | + def select_city( simple=false ) |
57 | states = State.find(:all, :order => 'name') | 57 | states = State.find(:all, :order => 'name') |
58 | - states = [State.new(:name => '---')] + states | ||
59 | - cities = [City.new(:name => '---')] | ||
60 | - | 58 | + |
61 | state_id = 'state-' + FormsHelper.next_id_number | 59 | state_id = 'state-' + FormsHelper.next_id_number |
62 | city_id = 'city-' + FormsHelper.next_id_number | 60 | city_id = 'city-' + FormsHelper.next_id_number |
63 | 61 | ||
64 | - content_tag('div', labelled_select(_('State:'), 'state', :id, :name, nil, states, :id => state_id), :class => 'select_state_for_origin' ) + | ||
65 | - content_tag('div', labelled_select(_('City:'), 'city', :id, :name, nil, cities, :id => city_id), :class => 'select_city_for_origin' ) + | ||
66 | - | ||
67 | - observe_field(state_id, :update => city_id, :function => "new Ajax.Updater(#{city_id.inspect}, #{url_for(:controller => 'search', :action => 'cities').inspect}, {asynchronous:true, evalScripts:true, parameters:'state_id=' + value}); $(#{city_id.inspect}).innerHTML = '<option>#{_('Loading...')}</option>'", :with => 'state_id') | 62 | + if simple |
63 | + states = [State.new(:name => _('Select the State'))] + states | ||
64 | + cities = [City.new(:name => _('Select the City'))] | ||
65 | + | ||
66 | + html_state = | ||
67 | + content_tag( 'div', | ||
68 | + select_tag( 'state', | ||
69 | + options_from_collection_for_select( states, :id, :name, nil), | ||
70 | + :id => state_id ), | ||
71 | + :class => 'select_state_for_origin' ) | ||
72 | + html_city = | ||
73 | + content_tag( 'div', | ||
74 | + select_tag( 'city', | ||
75 | + options_from_collection_for_select( cities, :id, :name, nil), | ||
76 | + :id => city_id ), | ||
77 | + :class => 'select_city_for_origin' ) | ||
78 | + html_state['<option'] = '<option class="first-option"' | ||
79 | + html_city['<option'] = '<option class="first-option"' | ||
80 | + html = html_state + html_city | ||
81 | + else | ||
82 | + states = [State.new(:name => '---')] + states | ||
83 | + cities = [City.new(:name => '---')] | ||
84 | + | ||
85 | + html = | ||
86 | + content_tag( 'div', | ||
87 | + labelled_select( _('State:'), 'state', :id, :name, nil, states, :id => state_id ), | ||
88 | + :class => 'select_state_for_origin' ) + | ||
89 | + content_tag( 'div', | ||
90 | + labelled_select( _('City:'), 'city', :id, :name, nil, cities, :id => city_id ), | ||
91 | + :class => 'select_city_for_origin' ) | ||
92 | + end | ||
93 | + | ||
94 | + html + | ||
95 | + observe_field( state_id, :update => city_id, :function => "new Ajax.Updater(#{city_id.inspect}, #{url_for(:controller => 'search', :action => 'cities').inspect}, {asynchronous:true, evalScripts:true, parameters:'state_id=' + value}); $(#{city_id.inspect}).innerHTML = '<option>#{_('Loading...')}</option>'", :with => 'state_id') | ||
68 | end | 96 | end |
69 | 97 | ||
70 | protected | 98 | protected |
app/views/search/_product_categories_menu.rhtml
@@ -90,13 +90,22 @@ function prodCatMenuOut( li ) { | @@ -90,13 +90,22 @@ function prodCatMenuOut( li ) { | ||
90 | } | 90 | } |
91 | } | 91 | } |
92 | 92 | ||
93 | -$$("#product-categories-menu ul div").each( function(subMenu){ | ||
94 | - var li = subMenu.parentNode; | ||
95 | - subMenu.li = li; | ||
96 | - li.subMenu = subMenu; | ||
97 | - li.subMenu.style.display = "none"; | ||
98 | - li.closed = true; | ||
99 | -}) | 93 | +if ( document.all ) { |
94 | + | ||
95 | + function prodCatMenuOver( li ) { li.className = "cat-parent sub-opened" } | ||
96 | + function prodCatMenuOut( li ) { li.className = "cat-parent sub-closed" } | ||
97 | + | ||
98 | +} else { | ||
99 | + | ||
100 | + $$("#product-categories-menu ul div").each( function(subMenu){ | ||
101 | + var li = subMenu.parentNode; | ||
102 | + subMenu.li = li; | ||
103 | + li.subMenu = subMenu; | ||
104 | + li.subMenu.style.display = "none"; | ||
105 | + li.closed = true; | ||
106 | + }) | ||
107 | + | ||
108 | +} | ||
100 | 109 | ||
101 | </script> | 110 | </script> |
102 | 111 |
app/views/search/_sellers_form.rhtml
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | </div> | 10 | </div> |
11 | 11 | ||
12 | <div class="formfield search-from-opt"> | 12 | <div class="formfield search-from-opt"> |
13 | - <%= select_city %> | 13 | + <%= select_city(true) %> |
14 | </div> | 14 | </div> |
15 | 15 | ||
16 | <div class="formfield search-distance-opt"> | 16 | <div class="formfield search-distance-opt"> |
app/views/search/cities.rhtml
@@ -3,5 +3,5 @@ | @@ -3,5 +3,5 @@ | ||
3 | <option value=<%= city.id.to_s.inspect %>><%= city.name %></option> | 3 | <option value=<%= city.id.to_s.inspect %>><%= city.name %></option> |
4 | <% end %> | 4 | <% end %> |
5 | <% else %> | 5 | <% else %> |
6 | - <option value=''>---</option> | 6 | + <option value=''><%= _('No City') %></option> |
7 | <% end%> | 7 | <% end%> |
db/schema.rb
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | # | 9 | # |
10 | # It's strongly recommended to check this file into your version control system. | 10 | # It's strongly recommended to check this file into your version control system. |
11 | 11 | ||
12 | -ActiveRecord::Schema.define(:version => 43) do | 12 | +ActiveRecord::Schema.define(:version => 46) do |
13 | 13 | ||
14 | create_table "article_versions", :force => true do |t| | 14 | create_table "article_versions", :force => true do |t| |
15 | t.integer "article_id" | 15 | t.integer "article_id" |
@@ -82,12 +82,16 @@ ActiveRecord::Schema.define(:version => 43) do | @@ -82,12 +82,16 @@ ActiveRecord::Schema.define(:version => 43) do | ||
82 | t.integer "position" | 82 | t.integer "position" |
83 | end | 83 | end |
84 | 84 | ||
85 | + add_index "blocks", ["box_id"], :name => "index_blocks_on_box_id" | ||
86 | + | ||
85 | create_table "boxes", :force => true do |t| | 87 | create_table "boxes", :force => true do |t| |
86 | t.string "owner_type" | 88 | t.string "owner_type" |
87 | t.integer "owner_id" | 89 | t.integer "owner_id" |
88 | t.integer "position" | 90 | t.integer "position" |
89 | end | 91 | end |
90 | 92 | ||
93 | + add_index "boxes", ["owner_type", "owner_id"], :name => "index_boxes_on_owner_type_and_owner_id" | ||
94 | + | ||
91 | create_table "categories", :force => true do |t| | 95 | create_table "categories", :force => true do |t| |
92 | t.string "name" | 96 | t.string "name" |
93 | t.string "slug" | 97 | t.string "slug" |
@@ -165,6 +169,17 @@ ActiveRecord::Schema.define(:version => 43) do | @@ -165,6 +169,17 @@ ActiveRecord::Schema.define(:version => 43) do | ||
165 | t.integer "height" | 169 | t.integer "height" |
166 | end | 170 | end |
167 | 171 | ||
172 | + create_table "product_categorizations", :force => true do |t| | ||
173 | + t.integer "category_id" | ||
174 | + t.integer "product_id" | ||
175 | + t.boolean "virtual", :default => false | ||
176 | + t.datetime "created_at" | ||
177 | + t.datetime "updated_at" | ||
178 | + end | ||
179 | + | ||
180 | + add_index "product_categorizations", ["category_id"], :name => "index_product_categorizations_on_category_id" | ||
181 | + add_index "product_categorizations", ["product_id"], :name => "index_product_categorizations_on_product_id" | ||
182 | + | ||
168 | create_table "products", :force => true do |t| | 183 | create_table "products", :force => true do |t| |
169 | t.integer "enterprise_id" | 184 | t.integer "enterprise_id" |
170 | t.integer "product_category_id" | 185 | t.integer "product_category_id" |
@@ -178,6 +193,8 @@ ActiveRecord::Schema.define(:version => 43) do | @@ -178,6 +193,8 @@ ActiveRecord::Schema.define(:version => 43) do | ||
178 | t.float "lng" | 193 | t.float "lng" |
179 | end | 194 | end |
180 | 195 | ||
196 | + add_index "products", ["enterprise_id"], :name => "index_products_on_enterprise_id" | ||
197 | + | ||
181 | create_table "profiles", :force => true do |t| | 198 | create_table "profiles", :force => true do |t| |
182 | t.string "name" | 199 | t.string "name" |
183 | t.string "type" | 200 | t.string "type" |
@@ -197,6 +214,8 @@ ActiveRecord::Schema.define(:version => 43) do | @@ -197,6 +214,8 @@ ActiveRecord::Schema.define(:version => 43) do | ||
197 | t.boolean "enabled", :default => true | 214 | t.boolean "enabled", :default => true |
198 | end | 215 | end |
199 | 216 | ||
217 | + add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id" | ||
218 | + | ||
200 | create_table "region_validators", :id => false, :force => true do |t| | 219 | create_table "region_validators", :id => false, :force => true do |t| |
201 | t.integer "region_id" | 220 | t.integer "region_id" |
202 | t.integer "organization_id" | 221 | t.integer "organization_id" |
public/stylesheets/blocks/sellers-search-block.css
@@ -18,7 +18,7 @@ | @@ -18,7 +18,7 @@ | ||
18 | } | 18 | } |
19 | 19 | ||
20 | .sellers-search-block .search-in-opt { | 20 | .sellers-search-block .search-in-opt { |
21 | - padding-left: 40px; | 21 | + padding-left: 5px; |
22 | } | 22 | } |
23 | 23 | ||
24 | .sellers-search-block .search-in-opt dir { | 24 | .sellers-search-block .search-in-opt dir { |
@@ -26,21 +26,38 @@ | @@ -26,21 +26,38 @@ | ||
26 | padding-left: 20px; | 26 | padding-left: 20px; |
27 | } | 27 | } |
28 | 28 | ||
29 | -.sellers-search-block .formfield { | ||
30 | - text-align: right; | ||
31 | - padding: 0px 10px 5px 0px; | ||
32 | - font-size: 11px; | ||
33 | -} | ||
34 | - | ||
35 | .sellers-search-block .formfield input { | 29 | .sellers-search-block .formfield input { |
36 | width: 120px; | 30 | width: 120px; |
37 | } | 31 | } |
38 | 32 | ||
33 | +.sellers-search-block .search-from-opt { | ||
34 | + padding: 0px 10px 5px 10px; | ||
35 | +} | ||
36 | + | ||
39 | .sellers-search-block select { | 37 | .sellers-search-block select { |
40 | - width: 160px; | ||
41 | font-size: 11px; | 38 | font-size: 11px; |
42 | } | 39 | } |
43 | 40 | ||
41 | +.sellers-search-block .search-from-opt select { | ||
42 | + width: 100%; | ||
43 | +} | ||
44 | + | ||
45 | +.sellers-search-block .search-from-opt select, | ||
46 | +.sellers-search-block .search-from-opt option.first-option { | ||
47 | + font-weight: bold; | ||
48 | + text-align: center; | ||
49 | +} | ||
50 | +.sellers-search-block .search-from-opt option { | ||
51 | + font-weight: normal; | ||
52 | + text-align: left; | ||
53 | +} | ||
54 | + | ||
55 | +.sellers-search-block .search-distance-opt { | ||
56 | + text-align: right; | ||
57 | + font-size: 11px; | ||
58 | + padding: 0px 10px 5px 0px; | ||
59 | +} | ||
60 | + | ||
44 | .sellers-search-block .button-bar { | 61 | .sellers-search-block .button-bar { |
45 | text-align: right; | 62 | text-align: right; |
46 | padding: 0px 10px 0px 0px; | 63 | padding: 0px 10px 0px 0px; |
public/stylesheets/controller_search.css
@@ -56,6 +56,9 @@ | @@ -56,6 +56,9 @@ | ||
56 | #product-categories-menu a { | 56 | #product-categories-menu a { |
57 | display: block; | 57 | display: block; |
58 | } | 58 | } |
59 | +.msie6 #product-categories-menu a { | ||
60 | + display: inline; | ||
61 | +} | ||
59 | 62 | ||
60 | #product-categories-menu div { | 63 | #product-categories-menu div { |
61 | position: relative; | 64 | position: relative; |
@@ -67,6 +70,10 @@ | @@ -67,6 +70,10 @@ | ||
67 | padding: 0px; | 70 | padding: 0px; |
68 | } | 71 | } |
69 | 72 | ||
73 | +#product-categories-menu small { | ||
74 | + font-size: 75%; | ||
75 | +} | ||
76 | + | ||
70 | #product-categories-menu .cat-parent { | 77 | #product-categories-menu .cat-parent { |
71 | position: relative; | 78 | position: relative; |
72 | font-weight: bold; | 79 | font-weight: bold; |
@@ -82,6 +89,8 @@ | @@ -82,6 +89,8 @@ | ||
82 | 89 | ||
83 | #product-categories-menu .cat-parent ul { | 90 | #product-categories-menu .cat-parent ul { |
84 | padding-bottom: 5px; | 91 | padding-bottom: 5px; |
92 | + font-weight: normal; | ||
93 | + font-size: 12px; | ||
85 | } | 94 | } |
86 | 95 | ||
87 | #product-categories-menu .cat-parent li, | 96 | #product-categories-menu .cat-parent li, |