Skip to content

Commit 9e877b6

Browse files
sveredyukivanyshak
andauthored
Shop Item implementation (#960)
Co-authored-by: Vasia Ivanyshak <[email protected]>
1 parent 911cd8e commit 9e877b6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+839
-58
lines changed

Gemfile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ ruby File.open('.ruby-version').readline.chomp
66
#=== CORE =====================================================================
77
gem 'acts-as-taggable-on', git: 'https://github.com/Fodoj/acts-as-taggable-on', ref: 'rails-5.2'
88
gem 'carrierwave', '~> 1.2'
9+
gem "mini_magick"
10+
gem 'rmagick'
911
gem 'devise', '~> 4.7.1'
1012
gem 'friendly_id', '~> 5.1'
1113
gem 'kaminari'
@@ -39,8 +41,8 @@ gem 'autoprefixer-rails', '~> 7.1.6'
3941
gem 'coffee-rails', '~> 4.2.1'
4042
gem 'jquery-rails', '~> 4.2.2'
4143
gem 'premailer-rails' # email inline styling
42-
gem 'rails-assets-semantic-ui-calendar', source: 'https://rails-assets.org'
43-
gem 'rails-assets-svgxuse', source: 'https://rails-assets.org'
44+
gem 'rails-assets-semantic-ui-calendar', source: 'http://insecure.rails-assets.org'
45+
gem 'rails-assets-svgxuse', source: 'http://insecure.rails-assets.org'
4446
gem 'sass-rails', '~> 5.0'
4547
gem 'semantic-ui-sass', '~> 2.2'
4648
gem 'slim-rails'

Gemfile.lock

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,24 @@ PATH
1212
courses (0.1.0)
1313
friendly_id
1414
kaminari
15-
rails
15+
rails (~> 5.2.2, >= 5.2.2.1)
1616
simple_form
1717
slim-rails
1818

1919
PATH
2020
remote: components/shop
2121
specs:
2222
shop (0.1.0)
23+
carrierwave (~> 1.2)
24+
friendly_id
25+
kaminari
2326
rails (~> 5.2.2, >= 5.2.2.1)
27+
simple_form
28+
slim-rails
2429

2530
GEM
2631
remote: https://rubygems.org/
27-
remote: https://rails-assets.org/
32+
remote: http://insecure.rails-assets.org/
2833
specs:
2934
Ascii85 (1.0.3)
3035
actioncable (5.2.5)
@@ -308,6 +313,7 @@ GEM
308313
mime-types (3.3.1)
309314
mime-types-data (~> 3.2015)
310315
mime-types-data (3.2019.1009)
316+
mini_magick (4.11.0)
311317
mini_mime (1.1.0)
312318
mini_portile2 (2.5.1)
313319
minitest (5.14.4)
@@ -455,6 +461,7 @@ GEM
455461
mime-types (>= 1.16, < 4.0)
456462
netrc (~> 0.8)
457463
rexml (3.2.4)
464+
rmagick (4.2.2)
458465
rollbar (2.19.4)
459466
multi_json
460467
rqrcode (1.1.2)
@@ -657,6 +664,7 @@ DEPENDENCIES
657664
letter_opener
658665
listen
659666
meta_request
667+
mini_magick
660668
newrelic_rpm (~> 5.4)
661669
oj (~> 3.7.11)
662670
omniauth-facebook (~> 5.0)
@@ -679,6 +687,7 @@ DEPENDENCIES
679687
recaptcha
680688
redcarpet (~> 3.4.0)
681689
redis (~> 3.2)
690+
rmagick
682691
rollbar (~> 2.19.3)
683692
rspec
684693
rspec-activemodel-mocks

app/assets/stylesheets/app/application.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
@import "pages/courses/form";
5555
@import "pages/courses/seasons";
5656

57+
@import "pages/shop/items";
58+
5759
@import "pages/donate/form";
5860

5961
@import "pages/agenda/agenda";
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
.main{
2+
max-width: 1200px;
3+
margin: 0 auto;
4+
}
5+
6+
h1 {
7+
font-size: 24px;
8+
font-weight: 400;
9+
text-align: center;
10+
}
11+
12+
img {
13+
height: auto;
14+
max-width: 100%;
15+
vertical-align: middle;
16+
}
17+
18+
.btn {
19+
color: #ffffff;
20+
padding: 0.8rem;
21+
font-size: 14px;
22+
text-transform: uppercase;
23+
border-radius: 4px;
24+
font-weight: 400;
25+
display: block;
26+
width: 100%;
27+
cursor: pointer;
28+
border: 1px solid rgba(255, 255, 255, 0.2);
29+
background: transparent;
30+
}
31+
32+
.btn:hover {
33+
background-color: rgba(255, 255, 255, 0.12);
34+
}
35+
36+
.cards {
37+
display: flex;
38+
flex-wrap: wrap;
39+
list-style: none;
40+
margin: 0;
41+
}
42+
43+
.cards_item {
44+
display: flex;
45+
padding: 1rem;
46+
}
47+
48+
@media (min-width: 40rem) {
49+
.cards_item {
50+
width: 50%;
51+
}
52+
}
53+
54+
@media (min-width: 56rem) {
55+
.cards_item {
56+
width: 33.3333%;
57+
}
58+
}
59+
60+
.card {
61+
background-color: white;
62+
border-radius: 0.25rem;
63+
box-shadow: 0 20px 40px -14px rgba(0, 0, 0, 0.25);
64+
display: flex;
65+
flex-direction: column;
66+
overflow: hidden;
67+
}
68+
69+
.card_content {
70+
padding: 1rem;
71+
background: linear-gradient(to bottom left, #ce5739 40%, #FFC39E 100%);
72+
}
73+
74+
.card_title {
75+
color: #ffffff;
76+
font-size: 1.1rem;
77+
font-weight: 700;
78+
letter-spacing: 1px;
79+
text-transform: capitalize;
80+
margin: 0px;
81+
}
82+
83+
.card_text {
84+
color: #ffffff;
85+
font-size: 0.875rem;
86+
line-height: 1.5;
87+
margin-bottom: 1.25rem;
88+
font-weight: 400;
89+
}

app/uploaders/default_image_uploader.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,19 @@
33
class DefaultImageUploader < CarrierWave::Uploader::Base
44
# Include RMagick or MiniMagick support:
55
# include CarrierWave::RMagick
6-
# include CarrierWave::MiniMagick
6+
include CarrierWave::MiniMagick
7+
8+
version :small do
9+
process resize_to_fill: [60, 60]
10+
end
11+
12+
version :middle do
13+
process resize_to_fill: [295, 295]
14+
end
15+
16+
version :large do
17+
process resize_to_fill: [1200, 1200]
18+
end
719

820
# Choose what kind of storage to use for this uploader:
921
storage :file
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# frozen_string_literal: true
2+
3+
class ItemImageUploader < DefaultImageUploader
4+
end

components/courses/Gemfile.lock

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ PATH
44
courses (0.1.0)
55
friendly_id
66
kaminari
7-
rails
7+
rails (~> 5.2.2, >= 5.2.2.1)
88
simple_form
99
slim-rails
1010

@@ -79,7 +79,7 @@ GEM
7979
i18n (>= 0.7)
8080
ffi (1.10.0)
8181
formatador (0.2.5)
82-
friendly_id (5.2.5)
82+
friendly_id (5.4.2)
8383
activerecord (>= 4.0.0)
8484
globalid (0.4.2)
8585
activesupport (>= 4.2.0)
@@ -100,18 +100,18 @@ GEM
100100
i18n (1.6.0)
101101
concurrent-ruby (~> 1.0)
102102
json (2.2.0)
103-
kaminari (1.1.1)
103+
kaminari (1.2.1)
104104
activesupport (>= 4.1.0)
105-
kaminari-actionview (= 1.1.1)
106-
kaminari-activerecord (= 1.1.1)
107-
kaminari-core (= 1.1.1)
108-
kaminari-actionview (1.1.1)
105+
kaminari-actionview (= 1.2.1)
106+
kaminari-activerecord (= 1.2.1)
107+
kaminari-core (= 1.2.1)
108+
kaminari-actionview (1.2.1)
109109
actionview
110-
kaminari-core (= 1.1.1)
111-
kaminari-activerecord (1.1.1)
110+
kaminari-core (= 1.2.1)
111+
kaminari-activerecord (1.2.1)
112112
activerecord
113-
kaminari-core (= 1.1.1)
114-
kaminari-core (1.1.1)
113+
kaminari-core (= 1.2.1)
114+
kaminari-core (1.2.1)
115115
launchy (2.4.3)
116116
addressable (~> 2.3)
117117
listen (3.1.5)
@@ -127,12 +127,14 @@ GEM
127127
marcel (0.3.3)
128128
mimemagic (~> 0.3.2)
129129
method_source (0.9.2)
130-
mimemagic (0.3.3)
130+
mimemagic (0.3.10)
131+
nokogiri (~> 1)
132+
rake
131133
mini_mime (1.0.1)
132134
mini_portile2 (2.4.0)
133135
minitest (5.11.3)
134136
nenv (0.3.0)
135-
nio4r (2.3.1)
137+
nio4r (2.5.7)
136138
nokogiri (1.10.1)
137139
mini_portile2 (~> 2.4.0)
138140
notiffany (0.1.1)
@@ -199,38 +201,38 @@ GEM
199201
rspec-support (3.8.0)
200202
ruby_dep (1.5.0)
201203
shellany (0.0.1)
202-
simple_form (4.1.0)
203-
actionpack (>= 5.0)
204-
activemodel (>= 5.0)
204+
simple_form (5.1.0)
205+
actionpack (>= 5.2)
206+
activemodel (>= 5.2)
205207
simplecov (0.16.1)
206208
docile (~> 1.1)
207209
json (>= 1.8, < 3)
208210
simplecov-html (~> 0.10.0)
209211
simplecov-html (0.10.2)
210-
slim (4.0.1)
212+
slim (4.1.0)
211213
temple (>= 0.7.6, < 0.9)
212214
tilt (>= 2.0.6, < 2.1)
213215
slim-rails (3.2.0)
214216
actionpack (>= 3.1)
215217
railties (>= 3.1)
216218
slim (>= 3.0, < 5.0)
217-
sprockets (3.7.2)
219+
sprockets (4.0.2)
218220
concurrent-ruby (~> 1.0)
219221
rack (> 1, < 3)
220-
sprockets-rails (3.2.1)
222+
sprockets-rails (3.2.2)
221223
actionpack (>= 4.0)
222224
activesupport (>= 4.0)
223225
sprockets (>= 3.0.0)
224226
sqlite3 (1.3.13)
225-
temple (0.8.1)
227+
temple (0.8.2)
226228
thor (0.20.3)
227229
thread_safe (0.3.6)
228-
tilt (2.0.9)
230+
tilt (2.0.10)
229231
tzinfo (1.2.5)
230232
thread_safe (~> 0.1)
231-
websocket-driver (0.7.0)
233+
websocket-driver (0.7.3)
232234
websocket-extensions (>= 0.1.0)
233-
websocket-extensions (0.1.3)
235+
websocket-extensions (0.1.5)
234236
xpath (3.2.0)
235237
nokogiri (~> 1.8)
236238

@@ -250,4 +252,4 @@ DEPENDENCIES
250252
sqlite3 (~> 1.3.6)
251253

252254
BUNDLED WITH
253-
1.16.1
255+
1.17.2

components/courses/courses.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
1919

2020
s.add_dependency 'friendly_id'
2121
s.add_dependency 'kaminari'
22-
s.add_dependency 'rails'
22+
s.add_dependency 'rails', '~> 5.2.2', '>= 5.2.2.1'
2323
s.add_dependency 'simple_form'
2424
s.add_dependency 'slim-rails'
2525

components/shop/Gemfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,3 @@ gemspec
1515

1616
# To use a debugger
1717
# gem 'byebug', group: [:development, :test]
18-
gem 'pry'

0 commit comments

Comments
 (0)