Commit 7928b30e866f423c6f99532c3616adef5b387e0d
1 parent
4e87412c
Exists in
staging
and in
42 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, |