poodle-rb 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/poodle/application.js +1 -2
- data/app/assets/javascripts/poodle/cropper.js +1525 -0
- data/app/assets/javascripts/poodle/utilities.js +23 -7
- data/app/assets/stylesheets/poodle/poodle-theme.css +18 -1
- data/app/controllers/poodle/admin_controller.rb +0 -26
- data/app/controllers/poodle/images_controller.rb +65 -0
- data/app/helpers/poodle/image_helper.rb +171 -31
- data/app/helpers/poodle/render_helper.rb +31 -0
- data/{spec/dummy/app → app}/uploaders/image_uploader.rb +19 -22
- data/app/views/layouts/poodle/application/_footer.html.erb +1 -1
- data/app/views/layouts/poodle/application.html.erb +7 -3
- data/app/views/layouts/poodle/image_upload.html.erb +16 -0
- data/app/views/layouts/poodle/public/_footer.html.erb +2 -4
- data/app/views/layouts/poodle/public/_header.html.erb +1 -3
- data/app/views/layouts/poodle/public/public.html.erb +51 -0
- data/app/views/layouts/poodle/public.html.erb +8 -5
- data/lib/poodle/action_view/theme_helper.rb +0 -76
- data/lib/poodle/engine.rb +2 -0
- data/lib/poodle/version.rb +1 -1
- data/spec/dummy/app/controllers/profile_pictures_controller.rb +2 -0
- data/spec/dummy/app/models/image/base.rb +30 -0
- data/spec/dummy/app/models/image/profile_picture.rb +2 -0
- data/spec/dummy/app/models/user.rb +1 -1
- data/spec/dummy/app/views/profile_pictures/_crop_form.html.erb +44 -0
- data/spec/dummy/app/views/profile_pictures/_form.html.erb +41 -0
- data/spec/dummy/app/views/profile_pictures/_new.html.erb +9 -0
- data/spec/dummy/app/views/profile_pictures/_photos.html.erb +16 -0
- data/spec/dummy/app/views/profile_pictures/create.html.erb +10 -0
- data/spec/dummy/app/views/profile_pictures/crop.html.erb +5 -0
- data/spec/dummy/app/views/profile_pictures/edit.js.erb +7 -0
- data/spec/dummy/app/views/profile_pictures/new.js.erb +7 -0
- data/spec/dummy/app/views/profile_pictures/update.html.erb +10 -0
- data/spec/dummy/app/views/profile_pictures/update.js.erb +2 -0
- data/spec/dummy/config/initializers/carrier_wave.rb +2 -0
- data/spec/dummy/config/routes.rb +15 -1
- data/spec/dummy/db/migrate/20131108102728_create_images.rb +12 -0
- data/spec/dummy/db/schema.rb +5 -2
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/{app/assets/javascripts/poodle/common.js → spec/dummy/log/development.log} +0 -0
- data/spec/dummy/log/test.log +11173 -0
- data/spec/dummy/spec/controllers/profile_pictures_controller_spec.rb +50 -0
- data/spec/dummy/spec/helpers/image_helper_spec.rb +129 -0
- data/spec/dummy/spec/helpers/theme_helper_spec.rb +14 -43
- data/spec/dummy/spec/support/factories/profile_pictures.rb +2 -2
- data/spec/dummy/spec/support/factories/users.rb +1 -1
- data/spec/dummy/{public/uploads/profile_picture/image → uploads/image/profile_picture}/1/large_test.jpg +0 -0
- data/spec/dummy/uploads/image/profile_picture/1/medium_test.jpg +0 -0
- data/spec/dummy/{public/uploads/profile_picture/image → uploads/image/profile_picture}/1/test.jpg +0 -0
- data/spec/dummy/{public/uploads/profile_picture/image → uploads/image/profile_picture}/1/thumb_test.jpg +0 -0
- data/spec/dummy/uploads/image/profile_picture/2/large_test.jpg +0 -0
- data/spec/dummy/uploads/image/profile_picture/2/medium_test.jpg +0 -0
- data/spec/dummy/uploads/image/profile_picture/2/test.jpg +0 -0
- data/spec/dummy/uploads/image/profile_picture/2/thumb_test.jpg +0 -0
- metadata +60 -18
- data/app/assets/javascripts/poodle/photo_upload.js +0 -104
- data/spec/dummy/app/models/profile_picture.rb +0 -8
- data/spec/dummy/db/migrate/20131108102728_create_profile_pictures.rb +0 -9
- data/spec/dummy/public/uploads/profile_picture/image/1/medium_test.jpg +0 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ProfilePicturesController, :type => :controller do
|
4
|
+
|
5
|
+
let(:user) {FactoryGirl.create(:user)}
|
6
|
+
let(:user_with_image) {FactoryGirl.create(:user_with_image)}
|
7
|
+
|
8
|
+
context "new" do
|
9
|
+
it "should display the form" do
|
10
|
+
xhr :get, :new, {image_type: "Image::ProfilePicture", imageable_type: "User", imageable_id: user.id}, {}
|
11
|
+
expect(assigns(:image)).to be_a Image::ProfilePicture
|
12
|
+
expect(assigns(:resource)).to eq(user)
|
13
|
+
expect(response.code).to eq("200")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "create" do
|
18
|
+
it "positive case" do
|
19
|
+
image = Rack::Test::UploadedFile.new(Rails.root + 'spec/support/factories/test.jpg', 'image/jpg')
|
20
|
+
valid_params = {image: image, image_type: "Image::ProfilePicture", imageable_type: "User", imageable_id: user.id}
|
21
|
+
post :create, valid_params, {}
|
22
|
+
expect(assigns(:image)).to be_a Image::ProfilePicture
|
23
|
+
expect(assigns(:resource)).to eq(user)
|
24
|
+
expect(Image::ProfilePicture.count).to eq 1
|
25
|
+
expect(response.status).to eq(200)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "edit" do
|
30
|
+
it "should display the form" do
|
31
|
+
xhr :get, :edit, {id: user_with_image.profile_picture.id, image_type: "Image::ProfilePicture", imageable_type: "User", imageable_id: user_with_image.id}, {}
|
32
|
+
expect(assigns(:image)).to be_a Image::ProfilePicture
|
33
|
+
expect(assigns(:resource)).to eq(user_with_image)
|
34
|
+
expect(response.code).to eq("200")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context "update" do
|
39
|
+
it "positive case" do
|
40
|
+
image = Rack::Test::UploadedFile.new(Rails.root + 'spec/support/factories/test.jpg', 'image/jpg')
|
41
|
+
valid_params = {id: user_with_image.profile_picture.id, image: image, image_type: "Image::ProfilePicture", imageable_type: "User", imageable_id: user_with_image.id}
|
42
|
+
put :update, valid_params, {}
|
43
|
+
expect(assigns(:image)).to be_a Image::ProfilePicture
|
44
|
+
expect(assigns(:resource)).to eq(user_with_image)
|
45
|
+
expect(Image::ProfilePicture.count).to eq 1
|
46
|
+
expect(response.status).to eq(200)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Poodle
|
4
|
+
module ActionView
|
5
|
+
describe ImageHelper, type: :helper do
|
6
|
+
|
7
|
+
let(:user) { FactoryGirl.create(:user) }
|
8
|
+
let(:user_with_image) { FactoryGirl.create(:user_with_image, name: "Some Name") }
|
9
|
+
|
10
|
+
describe '#placeholdit' do
|
11
|
+
it "should return placeholdit url" do
|
12
|
+
expect(helper.placeholdit()).to eq("http://placehold.it/60x60&text=<No Image>")
|
13
|
+
expect(helper.placeholdit(width: 60, height: 40, text: "Not Found")).to eq("http://placehold.it/60x40&text=Not Found")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#image_url' do
|
18
|
+
it "should return placeholder url for user without profile picture" do
|
19
|
+
expect(helper.image_url(user, "profile_picture.image.large.url")).to eq("http://placehold.it/60x60&text=<No Image>")
|
20
|
+
expect(helper.image_url(user, "profile_picture.image.thumb.url", width: 40, height: 10)).to eq("http://placehold.it/40x10&text=<No Image>")
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return careerwave url for user with profile picture" do
|
24
|
+
expect(helper.image_url(user_with_image, "profile_picture.image.large.url")).to eq("/spec/dummy/uploads/image/profile_picture/1/large_test.jpg")
|
25
|
+
expect(helper.image_url(user_with_image, "profile_picture.image.thumb.url")).to eq("/spec/dummy/uploads/image/profile_picture/1/thumb_test.jpg")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#display_image' do
|
30
|
+
it "should return image tag with placeholder url for user without profile picture" do
|
31
|
+
exptected_result = image_tag(placeholdit(), class: "#{user.id}-poodle-thumb-image", width: "100%", height: "auto")
|
32
|
+
expect(helper.display_image(user, 'profile_picture.image.large.url')).to eq(exptected_result)
|
33
|
+
|
34
|
+
exptected_result = image_tag(placeholdit(width: 40, height: 50, text: "Hello World"), class: "#{user.id}-poodle-thumb-image", width: "100%", height: "auto")
|
35
|
+
expect(helper.display_image(user, 'profile_picture.image.large.url', place_holder: {width: 40, height: 50, text: "Hello World"})).to eq(exptected_result)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should return image tag with careerwave url for user with profile picture" do
|
39
|
+
exptected_result = image_tag(user_with_image.profile_picture.image.thumb.url, class: "#{user_with_image.id}-poodle-thumb-image", width: "100%", height: "auto")
|
40
|
+
expect(helper.display_image(user_with_image, 'profile_picture.image.thumb.url')).to eq(exptected_result)
|
41
|
+
|
42
|
+
exptected_result = image_tag(user_with_image.profile_picture.image.thumb.url, class: "#{user_with_image.id}-poodle-thumb-image", width: "30px", height: "50px")
|
43
|
+
expect(helper.display_image(user_with_image, 'profile_picture.image.thumb.url', width: "30px", height: "50px")).to eq(exptected_result)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#display_user_image' do
|
48
|
+
it "should display placeholder image for user without image" do
|
49
|
+
exptected_result = content_tag(:div) do
|
50
|
+
content_tag(:div, class: "rounded", style: "width:60px;height:auto") do
|
51
|
+
image_tag(placeholdit(), {style: "width:100%;height:auto;cursor:default;", class: "#{user.id}-poodle-thumb-image"})
|
52
|
+
end
|
53
|
+
end
|
54
|
+
expect(helper.display_user_image(user, "profile_picture.image.thumb.url")).to eq(exptected_result)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should display placeholder image with custom width, height and text for user without image" do
|
58
|
+
exptected_result = content_tag(:div) do
|
59
|
+
content_tag(:div, class: "rounded", style: "width:60px;height:auto") do
|
60
|
+
image_tag(placeholdit(width: 100, height: 80, text: "Hello World"), {style: "width:100%;height:auto;cursor:default;", class: "#{user.id}-poodle-thumb-image"})
|
61
|
+
end
|
62
|
+
end
|
63
|
+
expect(helper.display_user_image(user, "profile_picture.image.thumb.url", place_holder: {width: 100, height: 80, text: "Hello World"})).to eq(exptected_result)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should display the profile picture for user with image" do
|
67
|
+
exptected_result = content_tag(:div) do
|
68
|
+
content_tag(:div, class: "rounded", style: "width:120px;height:auto") do
|
69
|
+
image_tag(user_with_image.profile_picture.image.thumb.url, {style: "width:100%;height:auto;cursor:default;", class: "#{user_with_image.id}-poodle-thumb-image"})
|
70
|
+
end
|
71
|
+
end
|
72
|
+
expect(helper.display_user_image(user_with_image, "profile_picture.image.thumb.url", width: "120px")).to eq(exptected_result)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should display the profile picture with popover" do
|
76
|
+
exptected_result = content_tag(:div) do
|
77
|
+
content_tag(:div, class: "rounded", style: "width:120px;height:auto") do
|
78
|
+
image_tag(user_with_image.profile_picture.image.thumb.url, {style: "width:100%;height:auto;cursor:pointer;", class: "#{user_with_image.id}-poodle-thumb-image", "data-toggle" => "popover", "data-placement" => "bottom", title: user_with_image.name, "data-content" => ""})
|
79
|
+
end
|
80
|
+
end
|
81
|
+
expect(helper.display_user_image(user_with_image, "profile_picture.image.thumb.url", width: "120px", popover: true)).to eq(exptected_result)
|
82
|
+
|
83
|
+
exptected_result = content_tag(:div) do
|
84
|
+
content_tag(:div, class: "rounded", style: "width:120px;height:auto") do
|
85
|
+
image_tag(user_with_image.profile_picture.image.thumb.url, {style: "width:100%;height:auto;cursor:pointer;", class: "#{user_with_image.id}-poodle-thumb-image", "data-toggle" => "popover", "data-placement" => "bottom", title: user_with_image.name, "data-content" => "Senior Engineer"})
|
86
|
+
end
|
87
|
+
end
|
88
|
+
expect(helper.display_user_image(user_with_image, "profile_picture.image.thumb.url", width: "120px", popover: "Senior Engineer")).to eq(exptected_result)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe '#edit_image' do
|
93
|
+
it "should return an image with edit link" do
|
94
|
+
img_tag = helper.display_image(user, "profile_picture.image.thumb.url")
|
95
|
+
btn_display = raw(helper.theme_fa_icon('photo') + helper.theme_button_text("Change Image"))
|
96
|
+
edit_url = "www.qwinixtech.com"
|
97
|
+
exptected_result = link_to(img_tag, edit_url, :remote => true) + link_to(btn_display, edit_url, :class=>"btn btn-default btn-xs mt-10", :remote=>true)
|
98
|
+
expect(helper.edit_image(user, "profile_picture.image.thumb.url", edit_url)).to eq(exptected_result)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe '#edit_user_image' do
|
103
|
+
it "should return an image with edit link" do
|
104
|
+
img_tag = helper.display_user_image(user, "profile_picture.image.thumb.url")
|
105
|
+
btn_display = raw(helper.theme_fa_icon('photo') + helper.theme_button_text("Change Image"))
|
106
|
+
edit_url = "www.qwinixtech.com"
|
107
|
+
exptected_result = link_to(img_tag, edit_url, :remote => true) + link_to(btn_display, edit_url, :class=>"btn btn-default btn-xs mt-10", :remote=>true)
|
108
|
+
expect(helper.edit_user_image(user, "profile_picture.image.thumb.url", edit_url)).to eq(exptected_result)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe '#upload_image_link' do
|
113
|
+
it "should return new image path for user with no profile picture" do
|
114
|
+
expect(helper.upload_image_link(user, :profile_picture, nil)).to eq("/images/new?image_type=Image%3A%3AProfilePicture&imageable_id=#{user.id}&imageable_type=User")
|
115
|
+
end
|
116
|
+
|
117
|
+
it "should return edit image path for user with profile picture" do
|
118
|
+
expect(helper.upload_image_link(user_with_image, :profile_picture, nil)).to eq("/images/1/edit?image_type=Image%3A%3AProfilePicture&imageable_id=#{user_with_image.id}&imageable_type=User")
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should return edit image path for user with profile picture for custom scope" do
|
122
|
+
expect(helper.upload_image_link(user, :profile_picture, :custom)).to eq("/custom/images/new?image_type=Image%3A%3AProfilePicture&imageable_id=#{user.id}&imageable_type=User")
|
123
|
+
expect(helper.upload_image_link(user_with_image, :profile_picture, :custom)).to eq("/custom/images/1/edit?image_type=Image%3A%3AProfilePicture&imageable_id=#{user_with_image.id}&imageable_type=User")
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -4,6 +4,9 @@ module Poodle
|
|
4
4
|
module ActionView
|
5
5
|
describe ThemeHelper, type: :helper do
|
6
6
|
|
7
|
+
let(:user) { FactoryGirl.create(:user) }
|
8
|
+
let(:user_with_image) { FactoryGirl.create(:user_with_image, name: "Some Name") }
|
9
|
+
|
7
10
|
describe '#theme_fa_icon' do
|
8
11
|
it "theme_fa_icon" do
|
9
12
|
expect(helper.theme_fa_icon("some-class")).to eq("<i class='fa fa-some-class'></i>")
|
@@ -48,7 +51,7 @@ module Poodle
|
|
48
51
|
|
49
52
|
describe '#theme_heading' do
|
50
53
|
it "theme_heading" do
|
51
|
-
expect(helper.theme_heading("Heading Text")).to eq("<div class=\"row mb-10\"><div class=\"fs-22 col-sm-12\"><i class='fa fa-
|
54
|
+
expect(helper.theme_heading("Heading Text")).to eq("<div class=\"row mb-10\"><div class=\"fs-22 col-sm-12\"><i class='fa fa- fa-lg'></i> Heading Text</div></div>")
|
52
55
|
expect(helper.theme_heading("Heading Text2", icon='icon-abcd')).to eq("<div class=\"row mb-10\"><div class=\"fs-22 col-sm-12\"><i class='fa fa-icon-abcd fa-lg'></i> Heading Text2</div></div>")
|
53
56
|
end
|
54
57
|
end
|
@@ -73,16 +76,6 @@ module Poodle
|
|
73
76
|
end
|
74
77
|
end
|
75
78
|
|
76
|
-
describe '#theme_panel_message' do
|
77
|
-
it "theme_panel_message" do
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
describe '#theme_panel_title' do
|
82
|
-
it "theme_panel_title" do
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
79
|
describe '#theme_item_title' do
|
87
80
|
it "theme_item_title" do
|
88
81
|
end
|
@@ -108,50 +101,28 @@ module Poodle
|
|
108
101
|
end
|
109
102
|
end
|
110
103
|
|
111
|
-
describe '#
|
112
|
-
it "
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe '#theme_panel_sub_heading' do
|
117
|
-
it "theme_panel_sub_heading" do
|
104
|
+
describe '#theme_panel_message' do
|
105
|
+
it "theme_panel_message" do
|
118
106
|
end
|
119
107
|
end
|
120
108
|
|
121
|
-
describe '#
|
122
|
-
it "
|
109
|
+
describe '#theme_panel_title' do
|
110
|
+
it "theme_panel_title" do
|
123
111
|
end
|
124
112
|
end
|
125
113
|
|
126
|
-
describe '#
|
127
|
-
it "
|
114
|
+
describe '#theme_panel_heading' do
|
115
|
+
it "theme_panel_heading" do
|
128
116
|
end
|
129
117
|
end
|
130
118
|
|
131
|
-
describe '#
|
132
|
-
it "
|
133
|
-
expect(helper.palceholdit()).to eq("http://placehold.it/60x60&text=<No Image>")
|
134
|
-
expect(helper.palceholdit(width: 60, height: 40, text: "Not Found")).to eq("http://placehold.it/60x40&text=Not Found")
|
119
|
+
describe '#theme_panel_sub_heading' do
|
120
|
+
it "theme_panel_sub_heading" do
|
135
121
|
end
|
136
122
|
end
|
137
123
|
|
138
|
-
describe '#
|
139
|
-
|
140
|
-
let(:user_with_image) { FactoryGirl.create(:user_with_image, name: "Some Name") }
|
141
|
-
it "should display placeholder image for user without image" do
|
142
|
-
expect(helper.theme_user_image(user, "profile_picture.image_url(:thumb)")).to eq("<div><div class=\"rounded\" style=\"width:60px;height:60px;\"><img class=\"\" style=\"width:100%;height:auto;cursor:pointer;\" src=\"http://placehold.it/60x60&text=<No Image>\" alt=\"60x60&text=<no image>\" /></div></div>")
|
143
|
-
end
|
144
|
-
|
145
|
-
it "should display the profile picture user with image" do
|
146
|
-
# data-toggle=\"popover\" data-placement=\"bottom\" title=\"Some Name\" data-content=\"true\"
|
147
|
-
expect(helper.theme_user_image(user_with_image, "profile_picture.image_url(:thumb)")).to eq("<div><div class=\"rounded\" style=\"width:60px;height:60px;\"><img class=\"\" style=\"width:100%;height:auto;cursor:pointer;\" src=\"http://localhost:9001/uploads/profile_picture/image/1/thumb_test.jpg\" alt=\"Thumb test\" /></div></div>")
|
148
|
-
end
|
149
|
-
|
150
|
-
it "should display the profile picture with popover" do
|
151
|
-
expect(helper.theme_user_image(user_with_image, "profile_picture.image_url(:thumb)", popover: true)).to eq("<div><div class=\"rounded\" style=\"width:60px;height:60px;\"><img class=\"\" style=\"width:100%;height:auto;cursor:pointer;\" data-toggle=\"popover\" data-placement=\"bottom\" title=\"Some Name\" data-content=\"\" src=\"http://localhost:9001/uploads/profile_picture/image/1/thumb_test.jpg\" alt=\"Thumb test\" /></div></div>")
|
152
|
-
|
153
|
-
expect(helper.theme_user_image(user_with_image, "profile_picture.image_url(:thumb)", popover:
|
154
|
-
"Hello")).to eq("<div><div class=\"rounded\" style=\"width:60px;height:60px;\"><img class=\"\" style=\"width:100%;height:auto;cursor:pointer;\" data-toggle=\"popover\" data-placement=\"bottom\" title=\"Some Name\" data-content=\"Hello\" src=\"http://localhost:9001/uploads/profile_picture/image/1/thumb_test.jpg\" alt=\"Thumb test\" /></div></div>")
|
124
|
+
describe '#theme_panel_description' do
|
125
|
+
it "theme_panel_description" do
|
155
126
|
end
|
156
127
|
end
|
157
128
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
FactoryGirl.define do
|
2
|
-
factory :profile_picture do
|
2
|
+
factory :profile_picture, :class => Image::ProfilePicture do
|
3
3
|
image { Rack::Test::UploadedFile.new(Rails.root + 'spec/support/factories/test.jpg', 'image/jpg') }
|
4
|
-
user
|
4
|
+
association :imageable, :factory => :user
|
5
5
|
end
|
6
6
|
end
|
File without changes
|
Binary file
|
data/spec/dummy/{public/uploads/profile_picture/image → uploads/image/profile_picture}/1/test.jpg
RENAMED
File without changes
|
File without changes
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: poodle-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krishnaprasad Varma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kaminari
|
@@ -309,8 +309,7 @@ files:
|
|
309
309
|
- app/assets/fonts/fontawesome-webfont.woff
|
310
310
|
- app/assets/javascripts/poodle/application.js
|
311
311
|
- app/assets/javascripts/poodle/bootstrap.js
|
312
|
-
- app/assets/javascripts/poodle/
|
313
|
-
- app/assets/javascripts/poodle/photo_upload.js
|
312
|
+
- app/assets/javascripts/poodle/cropper.js
|
314
313
|
- app/assets/javascripts/poodle/utilities.js
|
315
314
|
- app/assets/javascripts/poodle/validations/sample.js
|
316
315
|
- app/assets/stylesheets/poodle/application.css
|
@@ -319,6 +318,7 @@ files:
|
|
319
318
|
- app/assets/stylesheets/poodle/font-awesome.css
|
320
319
|
- app/assets/stylesheets/poodle/poodle-theme.css
|
321
320
|
- app/controllers/poodle/admin_controller.rb
|
321
|
+
- app/controllers/poodle/images_controller.rb
|
322
322
|
- app/helpers/poodle/application_helper.rb
|
323
323
|
- app/helpers/poodle/display_helper.rb
|
324
324
|
- app/helpers/poodle/flash_helper.rb
|
@@ -326,8 +326,10 @@ files:
|
|
326
326
|
- app/helpers/poodle/meta_tags_helper.rb
|
327
327
|
- app/helpers/poodle/navigation_helper.rb
|
328
328
|
- app/helpers/poodle/params_parser_helper.rb
|
329
|
+
- app/helpers/poodle/render_helper.rb
|
329
330
|
- app/helpers/poodle/title_helper.rb
|
330
331
|
- app/helpers/poodle/url_helper.rb
|
332
|
+
- app/uploaders/image_uploader.rb
|
331
333
|
- app/views/kaminari/_first_page.html.erb
|
332
334
|
- app/views/kaminari/_gap.html.erb
|
333
335
|
- app/views/kaminari/_last_page.html.erb
|
@@ -340,9 +342,11 @@ files:
|
|
340
342
|
- app/views/layouts/poodle/application/_header.html.erb
|
341
343
|
- app/views/layouts/poodle/application/_sidebar.html.erb
|
342
344
|
- app/views/layouts/poodle/common/_overlays.html.erb
|
345
|
+
- app/views/layouts/poodle/image_upload.html.erb
|
343
346
|
- app/views/layouts/poodle/public.html.erb
|
344
347
|
- app/views/layouts/poodle/public/_footer.html.erb
|
345
348
|
- app/views/layouts/poodle/public/_header.html.erb
|
349
|
+
- app/views/layouts/poodle/public/public.html.erb
|
346
350
|
- app/views/widgets/_more_details.html.erb
|
347
351
|
- app/views/widgets/_more_details_table.html.erb
|
348
352
|
- config/initializers/poodle_validators.rb
|
@@ -363,11 +367,22 @@ files:
|
|
363
367
|
- spec/dummy/app/assets/javascripts/application.js
|
364
368
|
- spec/dummy/app/assets/stylesheets/application.css
|
365
369
|
- spec/dummy/app/controllers/application_controller.rb
|
370
|
+
- spec/dummy/app/controllers/profile_pictures_controller.rb
|
366
371
|
- spec/dummy/app/helpers/application_helper.rb
|
367
|
-
- spec/dummy/app/models/
|
372
|
+
- spec/dummy/app/models/image/base.rb
|
373
|
+
- spec/dummy/app/models/image/profile_picture.rb
|
368
374
|
- spec/dummy/app/models/user.rb
|
369
|
-
- spec/dummy/app/uploaders/image_uploader.rb
|
370
375
|
- spec/dummy/app/views/layouts/application.html.erb
|
376
|
+
- spec/dummy/app/views/profile_pictures/_crop_form.html.erb
|
377
|
+
- spec/dummy/app/views/profile_pictures/_form.html.erb
|
378
|
+
- spec/dummy/app/views/profile_pictures/_new.html.erb
|
379
|
+
- spec/dummy/app/views/profile_pictures/_photos.html.erb
|
380
|
+
- spec/dummy/app/views/profile_pictures/create.html.erb
|
381
|
+
- spec/dummy/app/views/profile_pictures/crop.html.erb
|
382
|
+
- spec/dummy/app/views/profile_pictures/edit.js.erb
|
383
|
+
- spec/dummy/app/views/profile_pictures/new.js.erb
|
384
|
+
- spec/dummy/app/views/profile_pictures/update.html.erb
|
385
|
+
- spec/dummy/app/views/profile_pictures/update.js.erb
|
371
386
|
- spec/dummy/bin/bundle
|
372
387
|
- spec/dummy/bin/rails
|
373
388
|
- spec/dummy/bin/rake
|
@@ -381,6 +396,7 @@ files:
|
|
381
396
|
- spec/dummy/config/environments/test.rb
|
382
397
|
- spec/dummy/config/initializers/assets.rb
|
383
398
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
399
|
+
- spec/dummy/config/initializers/carrier_wave.rb
|
384
400
|
- spec/dummy/config/initializers/cookies_serializer.rb
|
385
401
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
386
402
|
- spec/dummy/config/initializers/inflections.rb
|
@@ -389,23 +405,30 @@ files:
|
|
389
405
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
390
406
|
- spec/dummy/config/routes.rb
|
391
407
|
- spec/dummy/config/secrets.yml
|
392
|
-
- spec/dummy/db/migrate/
|
408
|
+
- spec/dummy/db/migrate/20131108102728_create_images.rb
|
393
409
|
- spec/dummy/db/migrate/20140402113213_create_users.rb
|
394
410
|
- spec/dummy/db/schema.rb
|
395
411
|
- spec/dummy/db/test.sqlite3
|
412
|
+
- spec/dummy/log/development.log
|
396
413
|
- spec/dummy/log/test.log
|
397
414
|
- spec/dummy/public/404.html
|
398
415
|
- spec/dummy/public/422.html
|
399
416
|
- spec/dummy/public/500.html
|
400
417
|
- spec/dummy/public/favicon.ico
|
401
|
-
- spec/dummy/
|
402
|
-
- spec/dummy/
|
403
|
-
- spec/dummy/public/uploads/profile_picture/image/1/test.jpg
|
404
|
-
- spec/dummy/public/uploads/profile_picture/image/1/thumb_test.jpg
|
418
|
+
- spec/dummy/spec/controllers/profile_pictures_controller_spec.rb
|
419
|
+
- spec/dummy/spec/helpers/image_helper_spec.rb
|
405
420
|
- spec/dummy/spec/helpers/theme_helper_spec.rb
|
406
421
|
- spec/dummy/spec/support/factories/profile_pictures.rb
|
407
422
|
- spec/dummy/spec/support/factories/test.jpg
|
408
423
|
- spec/dummy/spec/support/factories/users.rb
|
424
|
+
- spec/dummy/uploads/image/profile_picture/1/large_test.jpg
|
425
|
+
- spec/dummy/uploads/image/profile_picture/1/medium_test.jpg
|
426
|
+
- spec/dummy/uploads/image/profile_picture/1/test.jpg
|
427
|
+
- spec/dummy/uploads/image/profile_picture/1/thumb_test.jpg
|
428
|
+
- spec/dummy/uploads/image/profile_picture/2/large_test.jpg
|
429
|
+
- spec/dummy/uploads/image/profile_picture/2/medium_test.jpg
|
430
|
+
- spec/dummy/uploads/image/profile_picture/2/test.jpg
|
431
|
+
- spec/dummy/uploads/image/profile_picture/2/thumb_test.jpg
|
409
432
|
- spec/spec_helper.rb
|
410
433
|
homepage: http://kpvarma.com
|
411
434
|
licenses:
|
@@ -435,11 +458,22 @@ test_files:
|
|
435
458
|
- spec/dummy/app/assets/javascripts/application.js
|
436
459
|
- spec/dummy/app/assets/stylesheets/application.css
|
437
460
|
- spec/dummy/app/controllers/application_controller.rb
|
461
|
+
- spec/dummy/app/controllers/profile_pictures_controller.rb
|
438
462
|
- spec/dummy/app/helpers/application_helper.rb
|
439
|
-
- spec/dummy/app/models/
|
463
|
+
- spec/dummy/app/models/image/base.rb
|
464
|
+
- spec/dummy/app/models/image/profile_picture.rb
|
440
465
|
- spec/dummy/app/models/user.rb
|
441
|
-
- spec/dummy/app/uploaders/image_uploader.rb
|
442
466
|
- spec/dummy/app/views/layouts/application.html.erb
|
467
|
+
- spec/dummy/app/views/profile_pictures/_crop_form.html.erb
|
468
|
+
- spec/dummy/app/views/profile_pictures/_form.html.erb
|
469
|
+
- spec/dummy/app/views/profile_pictures/_new.html.erb
|
470
|
+
- spec/dummy/app/views/profile_pictures/_photos.html.erb
|
471
|
+
- spec/dummy/app/views/profile_pictures/create.html.erb
|
472
|
+
- spec/dummy/app/views/profile_pictures/crop.html.erb
|
473
|
+
- spec/dummy/app/views/profile_pictures/edit.js.erb
|
474
|
+
- spec/dummy/app/views/profile_pictures/new.js.erb
|
475
|
+
- spec/dummy/app/views/profile_pictures/update.html.erb
|
476
|
+
- spec/dummy/app/views/profile_pictures/update.js.erb
|
443
477
|
- spec/dummy/bin/bundle
|
444
478
|
- spec/dummy/bin/rails
|
445
479
|
- spec/dummy/bin/rake
|
@@ -452,6 +486,7 @@ test_files:
|
|
452
486
|
- spec/dummy/config/environments/test.rb
|
453
487
|
- spec/dummy/config/initializers/assets.rb
|
454
488
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
489
|
+
- spec/dummy/config/initializers/carrier_wave.rb
|
455
490
|
- spec/dummy/config/initializers/cookies_serializer.rb
|
456
491
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
457
492
|
- spec/dummy/config/initializers/inflections.rb
|
@@ -461,24 +496,31 @@ test_files:
|
|
461
496
|
- spec/dummy/config/routes.rb
|
462
497
|
- spec/dummy/config/secrets.yml
|
463
498
|
- spec/dummy/config.ru
|
464
|
-
- spec/dummy/db/migrate/
|
499
|
+
- spec/dummy/db/migrate/20131108102728_create_images.rb
|
465
500
|
- spec/dummy/db/migrate/20140402113213_create_users.rb
|
466
501
|
- spec/dummy/db/schema.rb
|
467
502
|
- spec/dummy/db/test.sqlite3
|
503
|
+
- spec/dummy/log/development.log
|
468
504
|
- spec/dummy/log/test.log
|
469
505
|
- spec/dummy/public/404.html
|
470
506
|
- spec/dummy/public/422.html
|
471
507
|
- spec/dummy/public/500.html
|
472
508
|
- spec/dummy/public/favicon.ico
|
473
|
-
- spec/dummy/public/uploads/profile_picture/image/1/large_test.jpg
|
474
|
-
- spec/dummy/public/uploads/profile_picture/image/1/medium_test.jpg
|
475
|
-
- spec/dummy/public/uploads/profile_picture/image/1/test.jpg
|
476
|
-
- spec/dummy/public/uploads/profile_picture/image/1/thumb_test.jpg
|
477
509
|
- spec/dummy/Rakefile
|
478
510
|
- spec/dummy/README.rdoc
|
511
|
+
- spec/dummy/spec/controllers/profile_pictures_controller_spec.rb
|
512
|
+
- spec/dummy/spec/helpers/image_helper_spec.rb
|
479
513
|
- spec/dummy/spec/helpers/theme_helper_spec.rb
|
480
514
|
- spec/dummy/spec/support/factories/profile_pictures.rb
|
481
515
|
- spec/dummy/spec/support/factories/test.jpg
|
482
516
|
- spec/dummy/spec/support/factories/users.rb
|
517
|
+
- spec/dummy/uploads/image/profile_picture/1/large_test.jpg
|
518
|
+
- spec/dummy/uploads/image/profile_picture/1/medium_test.jpg
|
519
|
+
- spec/dummy/uploads/image/profile_picture/1/test.jpg
|
520
|
+
- spec/dummy/uploads/image/profile_picture/1/thumb_test.jpg
|
521
|
+
- spec/dummy/uploads/image/profile_picture/2/large_test.jpg
|
522
|
+
- spec/dummy/uploads/image/profile_picture/2/medium_test.jpg
|
523
|
+
- spec/dummy/uploads/image/profile_picture/2/test.jpg
|
524
|
+
- spec/dummy/uploads/image/profile_picture/2/thumb_test.jpg
|
483
525
|
- spec/spec_helper.rb
|
484
526
|
has_rdoc:
|
@@ -1,104 +0,0 @@
|
|
1
|
-
var status;
|
2
|
-
var maxPhotoUploadFileSize = 5000000;
|
3
|
-
|
4
|
-
// Used to clone photo uploader
|
5
|
-
function add_fields(link, association, content) {
|
6
|
-
var new_id = new Date().getTime();
|
7
|
-
var regexp = new RegExp("new_" + association, "g")
|
8
|
-
$(link).parent().before(content.replace(regexp, new_id));
|
9
|
-
var upload_label = $('label.upload_image');
|
10
|
-
if($(upload_label).length > 0) {
|
11
|
-
$(upload_label).text('browse');
|
12
|
-
}
|
13
|
-
}
|
14
|
-
|
15
|
-
// Remove a photo uploader
|
16
|
-
function remove_fields(link) {
|
17
|
-
$(link).prev("input[type=hidden]").val("1");
|
18
|
-
$(link).closest("div.add-photos-path").hide();
|
19
|
-
}
|
20
|
-
|
21
|
-
// Remove Option filed
|
22
|
-
function remove_option_field(link) {
|
23
|
-
$(link).prev("input[type=hidden]").val("1");
|
24
|
-
$(link).closest("div.div-new-field").hide();
|
25
|
-
}
|
26
|
-
|
27
|
-
/* Validate image file extension. The Supported formats are
|
28
|
-
.jpg, .jpeg, .ico, .png, .gif
|
29
|
-
*/
|
30
|
-
function validate_file_extn(filename) {
|
31
|
-
var image_extns = new Array(/^jpg$/i, /^png$/i, /^jpeg$/i, /^ico$/i, /^gif$/i)
|
32
|
-
var extn = filename.split('.');
|
33
|
-
for(var i = 0; i < image_extns.length; i++) {
|
34
|
-
if(extn[1].match(image_extns[i])) {
|
35
|
-
status = "true"
|
36
|
-
break;
|
37
|
-
}
|
38
|
-
else {
|
39
|
-
status = "false";
|
40
|
-
}
|
41
|
-
}
|
42
|
-
return status;
|
43
|
-
}
|
44
|
-
|
45
|
-
// Client side image preview before uploading to server
|
46
|
-
|
47
|
-
function preview_image(input, element_id, width) {
|
48
|
-
|
49
|
-
if(width == undefined){
|
50
|
-
width = 90;
|
51
|
-
}
|
52
|
-
|
53
|
-
var filename = $(input).val().split('\\').pop();
|
54
|
-
var status = validate_file_extn(filename);
|
55
|
-
var reader = '';
|
56
|
-
|
57
|
-
if(status == "false") {
|
58
|
-
$(input).val('');
|
59
|
-
alert("File type is not supported");
|
60
|
-
}
|
61
|
-
else {
|
62
|
-
|
63
|
-
if(navigator.userAgent.match(/msie/i) && !navigator.userAgent.match(/msie 10/i)) {
|
64
|
-
if($('.div-sg-photo-preview').length > 0) {
|
65
|
-
$('.div-sg-photo-preview').css('border', '1px solid lightgray').html(filename);
|
66
|
-
}
|
67
|
-
else {
|
68
|
-
$(input).parents('.add-photos-path').find('.jquery-sg-image-container').
|
69
|
-
css('border-top', '1px solid gray').html(filename);
|
70
|
-
}
|
71
|
-
}
|
72
|
-
else if(navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/msie 10/i)) {
|
73
|
-
reader = new FileReader();
|
74
|
-
reader.onload = function (e) {
|
75
|
-
$('#'+element_id)
|
76
|
-
.attr('src', e.target.result)
|
77
|
-
.width(width);
|
78
|
-
};
|
79
|
-
|
80
|
-
reader.readAsDataURL(input.files[0]);
|
81
|
-
}
|
82
|
-
|
83
|
-
else {
|
84
|
-
|
85
|
-
if (input.files && input.files[0]) {
|
86
|
-
if(input.files[0].size < maxPhotoUploadFileSize) {
|
87
|
-
reader = new FileReader();
|
88
|
-
reader.onload = function (e) {
|
89
|
-
$('#'+element_id)
|
90
|
-
.attr('src', e.target.result)
|
91
|
-
.width(width);
|
92
|
-
};
|
93
|
-
|
94
|
-
reader.readAsDataURL(input.files[0]);
|
95
|
-
}
|
96
|
-
else {
|
97
|
-
alert("Maximum Size is " + maxPhotoUploadFileSize + " KB");
|
98
|
-
}
|
99
|
-
|
100
|
-
}
|
101
|
-
}
|
102
|
-
}
|
103
|
-
|
104
|
-
}
|
Binary file
|