spree_core 1.0.0.rc3 → 1.0.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/images/admin/payment_banner.png +0 -0
- data/app/assets/javascripts/admin/admin.js.erb +16 -5
- data/app/assets/javascripts/admin/spree_core.js +0 -1
- data/app/assets/javascripts/store/spree_core.js +0 -1
- data/app/assets/stylesheets/admin/admin.css.erb +57 -3
- data/app/assets/stylesheets/store/screen.css.scss +72 -29
- data/app/assets/stylesheets/store/spree_core.css +5 -4
- data/app/controllers/spree/admin/tax_categories_controller.rb +13 -0
- data/app/controllers/spree/admin/users_controller.rb +16 -0
- data/app/controllers/spree/products_controller.rb +1 -1
- data/app/helpers/spree/admin/navigation_helper.rb +3 -1
- data/app/models/spree/payment_method.rb +2 -0
- data/app/models/spree/preferences/preferable.rb +32 -1
- data/app/models/spree/preferences/preferable_class_methods.rb +21 -4
- data/app/models/spree/product.rb +4 -3
- data/app/models/spree/tax_category.rb +7 -1
- data/app/models/spree/tax_rate.rb +4 -1
- data/app/models/spree/user.rb +2 -0
- data/app/views/spree/admin/banners/_gateway.html.erb +14 -0
- data/app/views/spree/admin/images/index.html.erb +4 -4
- data/app/views/spree/admin/option_types/index.html.erb +2 -2
- data/app/views/spree/admin/payment_methods/index.html.erb +2 -0
- data/app/views/spree/admin/variants/index.html.erb +2 -2
- data/app/views/spree/orders/_line_item.html.erb +4 -4
- data/app/views/spree/shared/_order_details.html.erb +8 -9
- data/config/locales/en.yml +4 -0
- data/config/routes.rb +6 -3
- data/db/migrate/20120203153759_add_deleted_at_to_tax_category.rb +5 -0
- data/lib/spree/core/middleware/seo_assist.rb +1 -1
- data/lib/spree/core/user_banners.rb +25 -0
- data/lib/spree/core/version.rb +1 -1
- data/vendor/assets/images/jquery.formalize/button.png +0 -0
- data/vendor/assets/images/jquery.formalize/select_arrow.gif +0 -0
- data/vendor/assets/stylesheets/html5reset.css +177 -0
- data/vendor/assets/stylesheets/{jquery.formalize.css → jquery.formalize.css.erb} +3 -3
- data/{app/assets/stylesheets/store/base.css → vendor/assets/stylesheets/skeleton.css} +14 -159
- metadata +37 -31
- data/app/assets/javascripts/store/helpers.js.erb +0 -2
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<%= render :partial => 'spree/admin/shared/product_tabs', :locals => {:current => 'Images'} %>
|
4
4
|
|
5
|
-
<table class="index sortable" data-hook="images_table">
|
5
|
+
<table class="index sortable" data-hook="images_table" data-sortable-link="<%= update_positions_admin_product_images_url(@product) %>">
|
6
6
|
<tr data-hook="images_header">
|
7
7
|
<th><%= t(:thumbnail) %></th>
|
8
8
|
<% if @product.has_variants? %>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
</tr>
|
14
14
|
|
15
15
|
<% @product.images.each do |image| %>
|
16
|
-
<tr id="<%=
|
16
|
+
<tr id="spree_image_<%= image.id %>" data-hook="images_row">
|
17
17
|
<td>
|
18
18
|
<span class="handle"></span>
|
19
19
|
<%= link_to image_tag(image.attachment.url(:mini)), image.attachment.url(:product) %>
|
@@ -32,7 +32,7 @@
|
|
32
32
|
|
33
33
|
<% @product.variants.each do |variant| %>
|
34
34
|
<% variant.images.each do |image| %>
|
35
|
-
<tr id="<%=
|
35
|
+
<tr id="spree_image_<%= image.id %>" data-hook="images_row">
|
36
36
|
<td><span class="handle"></span><%= link_to image_tag(image.attachment.url(:mini)), image.attachment.url(:product) %></td>
|
37
37
|
<% if @product.has_variants? %>
|
38
38
|
<td><%= variant.options_text %></td>
|
@@ -52,4 +52,4 @@
|
|
52
52
|
<br />
|
53
53
|
<p data-hook="links">
|
54
54
|
<%= link_to icon('add') + ' ' + t(:new_image), new_admin_product_image_url(@product), :id => 'new_image_link' %>
|
55
|
-
</p>
|
55
|
+
</p>
|
@@ -13,14 +13,14 @@
|
|
13
13
|
|
14
14
|
<div id="new_option_type"></div>
|
15
15
|
|
16
|
-
<table class="index sortable" id="listing_option_types" data-hook>
|
16
|
+
<table class="index sortable" id="listing_option_types" data-hook data-sortable-link="<%= update_positions_admin_option_types_url %>">
|
17
17
|
<tr data-hook="option_header">
|
18
18
|
<th><%= t(:name) %></th>
|
19
19
|
<th><%= t(:presentation) %></th>
|
20
20
|
<th></th>
|
21
21
|
</tr>
|
22
22
|
<% @option_types.each do |option_type| %>
|
23
|
-
<tr class="spree_option_type" id="<%=
|
23
|
+
<tr class="spree_option_type" id="spree_option_type_<%= option_type.id %>" data-hook="option_row">
|
24
24
|
<td><span class="handle"></span> <%= option_type.name %></td>
|
25
25
|
<td class="presentation"><%= option_type.presentation %></td>
|
26
26
|
<td class="actions">
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<%= render :partial => 'spree/admin/shared/product_tabs', :locals => {:current => 'Variants'} %>
|
4
4
|
|
5
|
-
<table class="index sortable">
|
5
|
+
<table class="index sortable" data-sortable-link="<%= update_positions_admin_product_variants_path(@product) %>">
|
6
6
|
<tr data-hook="variants_header">
|
7
7
|
<th><%= t(:options) %></th>
|
8
8
|
<th><%= t(:price) %></th>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<% @variants.each do |variant| %>
|
17
17
|
<!-- you can skip variant with no options: that's just the default variant that all products have -->
|
18
18
|
<% next if variant.option_values.empty? %>
|
19
|
-
<tr id="<%=
|
19
|
+
<tr id="spree_variant_<%= variant.id %>" <%= 'style="color:red;"' if variant.deleted? %> data-hook="variants_row">
|
20
20
|
<td><span class="handle"></span> <%= variant.options_text %></td>
|
21
21
|
<td><%= variant.price %></td>
|
22
22
|
<td><%= variant.sku %></td>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<tr class="<%= cycle('', 'alt') %>">
|
2
2
|
<td data-hook="cart_item_image">
|
3
3
|
<% if variant.images.length == 0 %>
|
4
|
-
<%= small_image(variant.product) %>
|
4
|
+
<%= link_to small_image(variant.product), variant.product %>
|
5
5
|
<% else %>
|
6
|
-
<%= image_tag
|
6
|
+
<%= link_to image_tag(variant.images.first.attachment.url(:small)), variant.product %>
|
7
7
|
<% end %>
|
8
8
|
</td>
|
9
9
|
<td data-hook="cart_item_description">
|
@@ -17,13 +17,13 @@
|
|
17
17
|
<%= truncate(variant.product.description, :length => 100, :omission => "...") %>
|
18
18
|
</td>
|
19
19
|
<td data-hook="cart_item_price">
|
20
|
-
<%= number_to_currency line_item.
|
20
|
+
<%= number_to_currency line_item.price %>
|
21
21
|
</td>
|
22
22
|
<td data-hook="cart_item_quantity">
|
23
23
|
<%= item_form.number_field :quantity, :min => 0, :class => "line_item_quantity", :size => 5 %>
|
24
24
|
</td>
|
25
25
|
<td data-hook="cart_item_total">
|
26
|
-
<%= number_to_currency(line_item.
|
26
|
+
<%= number_to_currency(line_item.price * line_item.quantity) unless line_item.quantity.nil? %>
|
27
27
|
</td>
|
28
28
|
<td data-hook="cart_item_delete">
|
29
29
|
<%= link_to image_tag('icons/delete.png'), '#', :class => 'delete', :id => "delete_#{dom_id(line_item)}" %>
|
@@ -46,8 +46,7 @@
|
|
46
46
|
|
47
47
|
<thead id="line-items" data-hook>
|
48
48
|
<tr data-hook="order_details_line_items_headers">
|
49
|
-
<th
|
50
|
-
<th><%= t(:item_description) %></th>
|
49
|
+
<th colspan="2"><%= t(:item) %></th>
|
51
50
|
<th class="price"><%= t(:price) %></th>
|
52
51
|
<th class="qty"><%= t(:qty) %></th>
|
53
52
|
<th class="total"><span><%= t(:total) %></span></th>
|
@@ -59,19 +58,19 @@
|
|
59
58
|
<tr data-hook="order_details_line_item_row">
|
60
59
|
<td data-hook="order_item_image" width="20%">
|
61
60
|
<% if item.variant.images.length == 0 %>
|
62
|
-
<%= small_image(item.variant.product) %>
|
61
|
+
<%= link_to small_image(item.variant.product), item.variant.product %>
|
63
62
|
<% else %>
|
64
|
-
<%= image_tag
|
63
|
+
<%= link_to image_tag(item.variant.images.first.attachment.url(:small)), item.variant.product %>
|
65
64
|
<% end %>
|
66
65
|
</td>
|
67
|
-
<td
|
68
|
-
<
|
66
|
+
<td data-hook="order_item_description">
|
67
|
+
<h4><%= item.variant.product.name %></h4>
|
69
68
|
<%= truncate(item.variant.product.description, :length => 100, :omission => "...") %>
|
70
69
|
<%= "(" + variant_options(item.variant) + ")" unless item.variant .option_values.empty? %>
|
71
70
|
</td>
|
72
|
-
<td class="price"><span><%= number_to_currency item.price %></span></td>
|
73
|
-
<td
|
74
|
-
<td class="total"><span><%= number_to_currency (item.price * item.quantity) %></span></td>
|
71
|
+
<td data-hook="order_item_price" class="price"><span><%= number_to_currency item.price %></span></td>
|
72
|
+
<td data-hook="order_item_qty"><%= item.quantity %></td>
|
73
|
+
<td data-hook="order_item_total" class="total"><span><%= number_to_currency (item.price * item.quantity) %></span></td>
|
75
74
|
</tr>
|
76
75
|
<% end %>
|
77
76
|
</tbody>
|
data/config/locales/en.yml
CHANGED
@@ -358,6 +358,7 @@ en:
|
|
358
358
|
didnt_receive_unlock_instructions: "Didn't receive unlock instructions?"
|
359
359
|
discount_amount: "Discount Amount"
|
360
360
|
display: Display
|
361
|
+
dismiss_banner: "No. Thanks! I'm not interested, do not display this message again"
|
361
362
|
edit: Edit
|
362
363
|
editing_billing_integration: Editing Billing Integration
|
363
364
|
editing_category: "Editing Category"
|
@@ -399,6 +400,7 @@ en:
|
|
399
400
|
errors_prohibited_this_record_from_being_saved:
|
400
401
|
one: "1 error prohibited this record from being saved"
|
401
402
|
other: "%{count} errors prohibited this record from being saved"
|
403
|
+
error_user_destroy_with_orders: "Users with completed orders may not be deleted"
|
402
404
|
event: Event
|
403
405
|
events:
|
404
406
|
spree:
|
@@ -645,6 +647,8 @@ en:
|
|
645
647
|
payment_methods: Payment Methods
|
646
648
|
payment_methods_setting_description: Configure methods customers can use to pay.
|
647
649
|
payment_processing_failed: "Payment could not be processed, please check the details you entered"
|
650
|
+
payment_processor_choose_banner_text: "If you need help choosing a payment processor, please visit"
|
651
|
+
payment_processor_choose_link: "our payments page"
|
648
652
|
payment_state: Payment State
|
649
653
|
payment_states:
|
650
654
|
balance_due: balance due
|
data/config/routes.rb
CHANGED
@@ -54,12 +54,14 @@ Spree::Core::Engine.routes.draw do
|
|
54
54
|
# map.resources :taxons
|
55
55
|
#
|
56
56
|
|
57
|
-
|
58
|
-
|
59
57
|
namespace :admin do
|
60
58
|
resources :adjustments
|
61
59
|
resources :zones
|
62
|
-
resources :users
|
60
|
+
resources :users do
|
61
|
+
member do
|
62
|
+
post :dismiss_banner
|
63
|
+
end
|
64
|
+
end
|
63
65
|
resources :countries do
|
64
66
|
resources :states
|
65
67
|
end
|
@@ -104,6 +106,7 @@ Spree::Core::Engine.routes.draw do
|
|
104
106
|
end
|
105
107
|
end
|
106
108
|
end
|
109
|
+
|
107
110
|
resources :option_types do
|
108
111
|
collection do
|
109
112
|
post :update_positions
|
@@ -17,7 +17,7 @@ module Spree
|
|
17
17
|
if !taxon_id.blank? && !taxon_id.is_a?(Hash) && taxon = Taxon.find(taxon_id)
|
18
18
|
params.delete('taxon')
|
19
19
|
|
20
|
-
return build_response(params, "#{request.script_name}
|
20
|
+
return build_response(params, "#{request.script_name}t/#{taxon.permalink}" )
|
21
21
|
elsif env["PATH_INFO"] =~ /^\/(t|products)(\/\S+)?\/$/
|
22
22
|
#ensures no trailing / for taxon and product urls
|
23
23
|
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Utility methods for dealing with user banners and saving
|
2
|
+
# an array of dismissed banners per user
|
3
|
+
# use symbols as banner id
|
4
|
+
module Spree
|
5
|
+
module Core
|
6
|
+
module UserBanners
|
7
|
+
def self.included(base)
|
8
|
+
base.preference :dismissed_banners, :text, :default => ''
|
9
|
+
end
|
10
|
+
|
11
|
+
def dismissed_banner_ids
|
12
|
+
dismissed = self.preferred_dismissed_banners
|
13
|
+
dismissed.split(',').map(&:to_sym)
|
14
|
+
end
|
15
|
+
|
16
|
+
def dismiss_banner(banner_id)
|
17
|
+
self.preferred_dismissed_banners = dismissed_banner_ids.push(banner_id.to_sym).uniq.join(',')
|
18
|
+
end
|
19
|
+
|
20
|
+
def dismissed_banner?(banner_id)
|
21
|
+
dismissed_banner_ids.include? banner_id.to_sym
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/spree/core/version.rb
CHANGED
Binary file
|
Binary file
|
@@ -0,0 +1,177 @@
|
|
1
|
+
/*
|
2
|
+
HTML5 Reset :: style.css
|
3
|
+
----------------------------------------------------------
|
4
|
+
We have learned much from/been inspired by/taken code where offered from:
|
5
|
+
|
6
|
+
Eric Meyer :: http://ericmeyer.com
|
7
|
+
HTML5 Doctor :: http://html5doctor.com
|
8
|
+
and the HTML5 Boilerplate :: http://html5boilerplate.com
|
9
|
+
|
10
|
+
-------------------------------------------------------------------------------*/
|
11
|
+
|
12
|
+
/* Let's default this puppy out
|
13
|
+
-------------------------------------------------------------------------------*/
|
14
|
+
|
15
|
+
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
|
16
|
+
margin: 0;
|
17
|
+
padding: 0;
|
18
|
+
border: 0;
|
19
|
+
outline: 0;
|
20
|
+
font-size: 100%;
|
21
|
+
vertical-align: baseline;
|
22
|
+
background: transparent;
|
23
|
+
}
|
24
|
+
|
25
|
+
article, aside, figure, footer, header, hgroup, nav, section {display: block;}
|
26
|
+
|
27
|
+
/* Responsive images and other embedded objects
|
28
|
+
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
|
29
|
+
If this default setting for images is causing issues, you might want to replace it with a .responsive class instead. */
|
30
|
+
img,
|
31
|
+
object,
|
32
|
+
embed {max-width: 100%;}
|
33
|
+
|
34
|
+
/* force a vertical scrollbar to prevent a jumpy page */
|
35
|
+
html {overflow-y: scroll;}
|
36
|
+
|
37
|
+
/* we use a lot of ULs that aren't bulleted.
|
38
|
+
don't forget to restore the bullets within content. */
|
39
|
+
ul {list-style: none;}
|
40
|
+
|
41
|
+
blockquote, q {quotes: none;}
|
42
|
+
|
43
|
+
blockquote:before,
|
44
|
+
blockquote:after,
|
45
|
+
q:before,
|
46
|
+
q:after {content: ''; content: none;}
|
47
|
+
|
48
|
+
a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}
|
49
|
+
|
50
|
+
del {text-decoration: line-through;}
|
51
|
+
|
52
|
+
abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}
|
53
|
+
|
54
|
+
/* tables still need cellspacing="0" in the markup */
|
55
|
+
table {border-collapse: collapse; border-spacing: 0;}
|
56
|
+
th {font-weight: bold; vertical-align: bottom;}
|
57
|
+
td {font-weight: normal; vertical-align: top;}
|
58
|
+
|
59
|
+
hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}
|
60
|
+
|
61
|
+
input, select {vertical-align: middle;}
|
62
|
+
|
63
|
+
pre {
|
64
|
+
white-space: pre; /* CSS2 */
|
65
|
+
white-space: pre-wrap; /* CSS 2.1 */
|
66
|
+
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
|
67
|
+
word-wrap: break-word; /* IE */
|
68
|
+
}
|
69
|
+
|
70
|
+
input[type="radio"] {vertical-align: text-bottom;}
|
71
|
+
input[type="checkbox"] {vertical-align: bottom; *vertical-align: baseline;}
|
72
|
+
.ie6 input {vertical-align: text-bottom;}
|
73
|
+
|
74
|
+
select, input, textarea {font: 99% sans-serif;}
|
75
|
+
|
76
|
+
table {font-size: inherit; font: 100%;}
|
77
|
+
|
78
|
+
/* Accessible focus treatment
|
79
|
+
people.opera.com/patrickl/experiments/keyboard/test */
|
80
|
+
a:hover, a:active {outline: none;}
|
81
|
+
|
82
|
+
small {font-size: 85%;}
|
83
|
+
|
84
|
+
strong, th {font-weight: bold;}
|
85
|
+
|
86
|
+
td, td img {vertical-align: top;}
|
87
|
+
|
88
|
+
/* Make sure sup and sub don't screw with your line-heights
|
89
|
+
gist.github.com/413930 */
|
90
|
+
sub, sup {font-size: 75%; line-height: 0; position: relative;}
|
91
|
+
sup {top: -0.5em;}
|
92
|
+
sub {bottom: -0.25em;}
|
93
|
+
|
94
|
+
/* standardize any monospaced elements */
|
95
|
+
pre, code, kbd, samp {font-family: monospace, sans-serif;}
|
96
|
+
|
97
|
+
/* hand cursor on clickable elements */
|
98
|
+
.clickable,
|
99
|
+
label,
|
100
|
+
input[type=button],
|
101
|
+
input[type=submit],
|
102
|
+
button {cursor: pointer;}
|
103
|
+
|
104
|
+
/* Webkit browsers add a 2px margin outside the chrome of form elements */
|
105
|
+
button, input, select, textarea {margin: 0;}
|
106
|
+
|
107
|
+
/* make buttons play nice in IE */
|
108
|
+
button {width: auto; overflow: visible;}
|
109
|
+
|
110
|
+
/* scale images in IE7 more attractively */
|
111
|
+
.ie7 img {-ms-interpolation-mode: bicubic;}
|
112
|
+
|
113
|
+
/* prevent BG image flicker upon hover */
|
114
|
+
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
|
115
|
+
|
116
|
+
/* let's clear some floats */
|
117
|
+
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
|
118
|
+
.clearfix:after { clear: both; }
|
119
|
+
.clearfix { zoom: 1; }
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
/* Ok, this is where the fun starts.
|
124
|
+
-------------------------------------------------------------------------------*/
|
125
|
+
|
126
|
+
/* new Linux- and Windows-friendly sans-serif font stack: http://mky.be/fontstack */
|
127
|
+
body {font: 13px Helmet, Freesans, sans-serif;}
|
128
|
+
|
129
|
+
/* using local fonts? make sure to read up on Paul Irish's
|
130
|
+
Bulletproof @font-face syntax: http://mky.be/font-face/bulletproof/ */
|
131
|
+
|
132
|
+
/* we like off-black for text */
|
133
|
+
body, select, input, textarea {color: #333;}
|
134
|
+
|
135
|
+
a {color: #03f;}
|
136
|
+
a:hover {color: #69f;}
|
137
|
+
|
138
|
+
/* Custom text-selection colors (remove any text shadows: twitter.com/miketaylr/status/12228805301) */
|
139
|
+
::-moz-selection{background: #fcd700; color: #fff; text-shadow: none;}
|
140
|
+
::selection {background: #fcd700; color: #fff; text-shadow: none;}
|
141
|
+
|
142
|
+
/* j.mp/webkit-tap-highlight-color */
|
143
|
+
a:link {-webkit-tap-highlight-color: #fcd700;}
|
144
|
+
|
145
|
+
ins {background-color: #fcd700; color: #000; text-decoration: none;}
|
146
|
+
mark {background-color: #fcd700; color: #000; font-style: italic; font-weight: bold;}
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
/* Print styles!
|
153
|
+
-------------------------------------------------------------------------------*/
|
154
|
+
@media print {
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
}
|
159
|
+
|
160
|
+
|
161
|
+
/* Media queries!
|
162
|
+
-------------------------------------------------------------------------------*/
|
163
|
+
|
164
|
+
/* Consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
|
165
|
+
@media screen and (max-device-width: 480px) {
|
166
|
+
|
167
|
+
|
168
|
+
}
|
169
|
+
|
170
|
+
@media all and (orientation: portrait) {
|
171
|
+
|
172
|
+
}
|
173
|
+
|
174
|
+
@media all and (orientation: landscape) {
|
175
|
+
|
176
|
+
}
|
177
|
+
|
@@ -72,7 +72,7 @@ a.button {
|
|
72
72
|
-ms-background-clip: padding-box;
|
73
73
|
-o-background-clip: padding-box;
|
74
74
|
background-clip: padding-box;
|
75
|
-
background: #dddddd url(
|
75
|
+
background: #dddddd url(<%= asset_path("jquery.formalize/button.png") %>) repeat-x;
|
76
76
|
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
|
77
77
|
background-image: -webkit-linear-gradient(#ffffff, #dddddd);
|
78
78
|
background-image: -moz-linear-gradient(#ffffff, #dddddd);
|
@@ -257,7 +257,7 @@ select[size="1"] {
|
|
257
257
|
select,
|
258
258
|
select[size="0"],
|
259
259
|
select[size="1"] {
|
260
|
-
background-image: url(
|
260
|
+
background-image: url(<%= asset_path("jquery.formalize/select_arrow.gif") %>);
|
261
261
|
background-repeat: no-repeat;
|
262
262
|
background-position: right center;
|
263
263
|
padding-right: 20px;
|
@@ -320,7 +320,7 @@ textarea::-moz-focus-inner {
|
|
320
320
|
|
321
321
|
.ie6_button,
|
322
322
|
* html button {
|
323
|
-
background: #dddddd url(
|
323
|
+
background: #dddddd url(<%= asset_path("jquery.formalize/button.png") %>) repeat-x;
|
324
324
|
border: 1px solid;
|
325
325
|
border-color: #dddddd #bbbbbb #999999;
|
326
326
|
cursor: pointer;
|
@@ -1,156 +1,3 @@
|
|
1
|
-
/* Fonts from Google */
|
2
|
-
@import url(http://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic|&subset=latin,cyrillic,greek,greek-ext,latin-ext,cyrillic-ext);
|
3
|
-
|
4
|
-
/*
|
5
|
-
HTML5 Reset :: style.css
|
6
|
-
----------------------------------------------------------
|
7
|
-
We have learned much from/been inspired by/taken code where offered from:
|
8
|
-
|
9
|
-
Eric Meyer :: http://ericmeyer.com
|
10
|
-
HTML5 Doctor :: http://html5doctor.com
|
11
|
-
and the HTML5 Boilerplate :: http://html5boilerplate.com
|
12
|
-
|
13
|
-
-------------------------------------------------------------------------------*/
|
14
|
-
|
15
|
-
/* Let's default this puppy out
|
16
|
-
-------------------------------------------------------------------------------*/
|
17
|
-
|
18
|
-
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
|
19
|
-
margin: 0;
|
20
|
-
padding: 0;
|
21
|
-
border: 0;
|
22
|
-
outline: 0;
|
23
|
-
font-size: 100%;
|
24
|
-
vertical-align: baseline;
|
25
|
-
background: transparent;
|
26
|
-
}
|
27
|
-
|
28
|
-
article, aside, figure, footer, header, hgroup, nav, section {display: block;}
|
29
|
-
|
30
|
-
/* Responsive images and other embedded objects
|
31
|
-
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
|
32
|
-
If this default setting for images is causing issues, you might want to replace it with a .responsive class instead. */
|
33
|
-
img,
|
34
|
-
object,
|
35
|
-
embed {max-width: 100%;}
|
36
|
-
|
37
|
-
/* force a vertical scrollbar to prevent a jumpy page */
|
38
|
-
html {overflow-y: scroll;}
|
39
|
-
|
40
|
-
/* we use a lot of ULs that aren't bulleted.
|
41
|
-
don't forget to restore the bullets within content. */
|
42
|
-
ul {list-style: none;}
|
43
|
-
|
44
|
-
blockquote, q {quotes: none;}
|
45
|
-
|
46
|
-
blockquote:before,
|
47
|
-
blockquote:after,
|
48
|
-
q:before,
|
49
|
-
q:after {content: ''; content: none;}
|
50
|
-
|
51
|
-
a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}
|
52
|
-
|
53
|
-
del {text-decoration: line-through;}
|
54
|
-
|
55
|
-
abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}
|
56
|
-
|
57
|
-
/* tables still need cellspacing="0" in the markup */
|
58
|
-
table {border-collapse: collapse; border-spacing: 0;}
|
59
|
-
th {font-weight: bold; vertical-align: bottom;}
|
60
|
-
td {font-weight: normal; vertical-align: top;}
|
61
|
-
|
62
|
-
hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}
|
63
|
-
|
64
|
-
input, select {vertical-align: middle;}
|
65
|
-
|
66
|
-
pre {
|
67
|
-
white-space: pre; /* CSS2 */
|
68
|
-
white-space: pre-wrap; /* CSS 2.1 */
|
69
|
-
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
|
70
|
-
word-wrap: break-word; /* IE */
|
71
|
-
}
|
72
|
-
|
73
|
-
input[type="radio"] {vertical-align: text-bottom;}
|
74
|
-
input[type="checkbox"] {vertical-align: bottom; *vertical-align: baseline;}
|
75
|
-
.ie6 input {vertical-align: text-bottom;}
|
76
|
-
|
77
|
-
select, input, textarea {font: 99% sans-serif;}
|
78
|
-
|
79
|
-
table {font-size: inherit; font: 100%;}
|
80
|
-
|
81
|
-
/* Accessible focus treatment
|
82
|
-
people.opera.com/patrickl/experiments/keyboard/test */
|
83
|
-
a:hover, a:active {outline: none;}
|
84
|
-
|
85
|
-
small {font-size: 85%;}
|
86
|
-
|
87
|
-
strong, th {font-weight: bold;}
|
88
|
-
|
89
|
-
td, td img {vertical-align: top;}
|
90
|
-
|
91
|
-
/* Make sure sup and sub don't screw with your line-heights
|
92
|
-
gist.github.com/413930 */
|
93
|
-
sub, sup {font-size: 75%; line-height: 0; position: relative;}
|
94
|
-
sup {top: -0.5em;}
|
95
|
-
sub {bottom: -0.25em;}
|
96
|
-
|
97
|
-
/* standardize any monospaced elements */
|
98
|
-
pre, code, kbd, samp {font-family: monospace, sans-serif;}
|
99
|
-
|
100
|
-
/* hand cursor on clickable elements */
|
101
|
-
.clickable,
|
102
|
-
label,
|
103
|
-
input[type=button],
|
104
|
-
input[type=submit],
|
105
|
-
button {cursor: pointer;}
|
106
|
-
|
107
|
-
/* Webkit browsers add a 2px margin outside the chrome of form elements */
|
108
|
-
button, input, select, textarea {margin: 0;}
|
109
|
-
|
110
|
-
/* make buttons play nice in IE */
|
111
|
-
button {width: auto; overflow: visible;}
|
112
|
-
|
113
|
-
/* scale images in IE7 more attractively */
|
114
|
-
.ie7 img {-ms-interpolation-mode: bicubic;}
|
115
|
-
|
116
|
-
/* prevent BG image flicker upon hover */
|
117
|
-
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
|
118
|
-
|
119
|
-
/* let's clear some floats */
|
120
|
-
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
|
121
|
-
.clearfix:after { clear: both; }
|
122
|
-
.clearfix { zoom: 1; }
|
123
|
-
|
124
|
-
/* reset webkit searchfield */
|
125
|
-
input[type=search]::-webkit-search-decoration,
|
126
|
-
input[type=search]::-webkit-search-cancel-button,
|
127
|
-
input[type=search]::-webkit-search-results-button,
|
128
|
-
input[type=search]::-webkit-search-results-decoration {
|
129
|
-
display: none;
|
130
|
-
}
|
131
|
-
|
132
|
-
input[type=search] {
|
133
|
-
/* the webkit overrides need to stay at the top */
|
134
|
-
-webkit-appearance: textfield;
|
135
|
-
-webkit-box-sizing: content-box;
|
136
|
-
/* your styles here */
|
137
|
-
}
|
138
|
-
|
139
|
-
/* Ok, this is where the fun starts.
|
140
|
-
-------------------------------------------------------------------------------*/
|
141
|
-
|
142
|
-
/* new Linux- and Windows-friendly sans-serif font stack: http://mky.be/fontstack */
|
143
|
-
body {font: 13px Helmet, Freesans, sans-serif;}
|
144
|
-
|
145
|
-
/* using local fonts? make sure to read up on Paul Irish's
|
146
|
-
Bulletproof @font-face syntax: http://mky.be/font-face/bulletproof/ */
|
147
|
-
|
148
|
-
/* we like off-black for text */
|
149
|
-
body, select, input, textarea {color: #333;}
|
150
|
-
|
151
|
-
a {color: #03f;}
|
152
|
-
a:hover {color: #69f;}
|
153
|
-
|
154
1
|
/*
|
155
2
|
* Skeleton V1.1
|
156
3
|
* Copyright 2011, Dave Gamache
|
@@ -175,7 +22,8 @@ a:hover {color: #69f;}
|
|
175
22
|
================================================== */
|
176
23
|
|
177
24
|
.container { position: relative; width: 960px; margin: 0 auto; padding: 0; }
|
178
|
-
.column,
|
25
|
+
.container .column,
|
26
|
+
.container .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; }
|
179
27
|
.row { margin-bottom: 20px; }
|
180
28
|
|
181
29
|
/* Nested Column Classes */
|
@@ -183,7 +31,8 @@ a:hover {color: #69f;}
|
|
183
31
|
.column.omega, .columns.omega { margin-right: 0; }
|
184
32
|
|
185
33
|
/* Base Grid */
|
186
|
-
.container .one.column
|
34
|
+
.container .one.column,
|
35
|
+
.container .one.columns { width: 40px; }
|
187
36
|
.container .two.columns { width: 100px; }
|
188
37
|
.container .three.columns { width: 160px; }
|
189
38
|
.container .four.columns { width: 220px; }
|
@@ -233,8 +82,10 @@ a:hover {color: #69f;}
|
|
233
82
|
.container .columns { margin-left: 10px; margin-right: 10px; }
|
234
83
|
.column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; }
|
235
84
|
.column.omega, .columns.omega { margin-right: 0; margin-left: 10px; }
|
85
|
+
.alpha.omega { margin-left: 0; margin-right: 0; }
|
236
86
|
|
237
|
-
.container .one.column
|
87
|
+
.container .one.column,
|
88
|
+
.container .one.columns { width: 28px; }
|
238
89
|
.container .two.columns { width: 76px; }
|
239
90
|
.container .three.columns { width: 124px; }
|
240
91
|
.container .four.columns { width: 172px; }
|
@@ -280,9 +131,11 @@ a:hover {color: #69f;}
|
|
280
131
|
|
281
132
|
@media only screen and (max-width: 767px) {
|
282
133
|
.container { width: 300px; }
|
283
|
-
.columns,
|
134
|
+
.container .columns,
|
135
|
+
.container .column { margin: 0; }
|
284
136
|
|
285
137
|
.container .one.column,
|
138
|
+
.container .one.columns,
|
286
139
|
.container .two.columns,
|
287
140
|
.container .three.columns,
|
288
141
|
.container .four.columns,
|
@@ -328,9 +181,11 @@ a:hover {color: #69f;}
|
|
328
181
|
|
329
182
|
@media only screen and (min-width: 480px) and (max-width: 767px) {
|
330
183
|
.container { width: 420px; }
|
331
|
-
.columns,
|
184
|
+
.container .columns,
|
185
|
+
.container .column { margin: 0; }
|
332
186
|
|
333
187
|
.container .one.column,
|
188
|
+
.container .one.columns,
|
334
189
|
.container .two.columns,
|
335
190
|
.container .three.columns,
|
336
191
|
.container .four.columns,
|
@@ -384,4 +239,4 @@ a:hover {color: #69f;}
|
|
384
239
|
visibility: hidden;
|
385
240
|
width: 0;
|
386
241
|
height: 0;
|
387
|
-
}
|
242
|
+
}
|