spree_froomerce_fconnect 0.70.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. data/.gitignore +11 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +20 -0
  4. data/Gemfile.lock +222 -0
  5. data/LICENSE +26 -0
  6. data/README.md +76 -0
  7. data/Rakefile +31 -0
  8. data/Versionfile +2 -0
  9. data/app/assets/images/loading.gif +0 -0
  10. data/app/assets/javascripts/admin/froomerces.js +2 -0
  11. data/app/assets/javascripts/admin/spree_froomerce_fconnect.js +1 -0
  12. data/app/assets/javascripts/froomerce_products.js +2 -0
  13. data/app/assets/javascripts/store/spree_froomerce_fconnect.js +1 -0
  14. data/app/assets/stylesheets/admin/froomerces.css +4 -0
  15. data/app/assets/stylesheets/admin/spree_froomerce_fconnect.css +3 -0
  16. data/app/assets/stylesheets/application.css +107 -0
  17. data/app/assets/stylesheets/froomerce_products.css +4 -0
  18. data/app/assets/stylesheets/store/spree_froomerce_fconnect.css +3 -0
  19. data/app/controllers/admin/froomerces_controller.rb +200 -0
  20. data/app/controllers/froomerce_products_controller.rb +79 -0
  21. data/app/helpers/admin/froomerces_helper.rb +2 -0
  22. data/app/helpers/froomerce_products_helper.rb +2 -0
  23. data/app/models/froomerce_config.rb +8 -0
  24. data/app/models/froomerce_product_status.rb +11 -0
  25. data/app/models/froomerce_user.rb +3 -0
  26. data/app/models/product_decorator.rb +4 -0
  27. data/app/models/taxon_decorator.rb +20 -0
  28. data/app/overrides/froomerce_tab.rb +5 -0
  29. data/app/views/admin/froomerces/export_facebook.html.erb +122 -0
  30. data/app/views/admin/froomerces/export_facebook_widgets.html.erb +108 -0
  31. data/app/views/admin/froomerces/export_shop.html.erb +56 -0
  32. data/app/views/admin/froomerces/index.html.erb +39 -0
  33. data/app/views/admin/shared/_froomerce_sub_menu.html.erb +8 -0
  34. data/app/views/froomerce_products/call_backs.html.erb +25 -0
  35. data/app/views/froomerce_products/feed_url.xml.builder +86 -0
  36. data/app/views/froomerce_products/index.xml.builder +83 -0
  37. data/config/locales/en.yml +72 -0
  38. data/config/routes.rb +29 -0
  39. data/db/migrate/20120111085252_create_froomerce_users.rb +11 -0
  40. data/db/migrate/20120113072837_create_froomerce_configs.rb +12 -0
  41. data/db/migrate/20120203125952_create_froomerce_product_statuses.rb +10 -0
  42. data/lib/api_calls.rb +37 -0
  43. data/lib/call_backs.rb +141 -0
  44. data/lib/generators/spree_froomerce_fconnect/install/install_generator.rb +20 -0
  45. data/lib/spree_froomerce_fconnect/engine.rb +25 -0
  46. data/lib/spree_froomerce_fconnect.rb +2 -0
  47. data/script/rails +7 -0
  48. data/spec/controllers/admin/froomerces_controller_spec.rb +5 -0
  49. data/spec/controllers/froomerce_products_controller_spec.rb +5 -0
  50. data/spec/helpers/admin/froomerces_helper_spec.rb +15 -0
  51. data/spec/helpers/froomerce_products_helper_spec.rb +15 -0
  52. data/spec/models/froomerce_config_spec.rb +5 -0
  53. data/spec/models/froomerce_product_status_spec.rb +5 -0
  54. data/spec/models/froomerce_user_spec.rb +5 -0
  55. data/spec/spec_helper.rb +31 -0
  56. data/spree_froomerce_fconnect.gemspec +20 -0
  57. metadata +113 -0
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ .idea
6
+ .project
7
+ tmp
8
+ nbproject
9
+ *.swp
10
+ spec/dummy
11
+ .loadpath
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/Gemfile ADDED
@@ -0,0 +1,20 @@
1
+ source 'http://rubygems.org'
2
+
3
+ group :test do
4
+ gem 'rspec-rails', '= 2.6.1'
5
+ end
6
+
7
+ group :cucumber do
8
+ gem 'cucumber-rails', '1.0.0'
9
+ gem 'database_cleaner', '= 0.6.7'
10
+ gem 'nokogiri'
11
+ gem 'capybara', '1.0.1'
12
+ end
13
+
14
+ if RUBY_VERSION < "1.9"
15
+ gem "ruby-debug"
16
+ else
17
+ gem "ruby-debug19"
18
+ end
19
+
20
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,222 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ spree_froomerce_fconnect (0.70.1)
5
+ spree_core (>= 0.70.1)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ actionmailer (3.1.3)
11
+ actionpack (= 3.1.3)
12
+ mail (~> 2.3.0)
13
+ actionpack (3.1.3)
14
+ activemodel (= 3.1.3)
15
+ activesupport (= 3.1.3)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ i18n (~> 0.6)
19
+ rack (~> 1.3.5)
20
+ rack-cache (~> 1.1)
21
+ rack-mount (~> 0.8.2)
22
+ rack-test (~> 0.6.1)
23
+ sprockets (~> 2.0.3)
24
+ activemerchant (1.17.0)
25
+ activesupport (>= 2.3.11)
26
+ braintree (>= 2.0.0)
27
+ builder (>= 2.0.0)
28
+ json (>= 1.5.1)
29
+ activemodel (3.1.3)
30
+ activesupport (= 3.1.3)
31
+ builder (~> 3.0.0)
32
+ i18n (~> 0.6)
33
+ activerecord (3.1.3)
34
+ activemodel (= 3.1.3)
35
+ activesupport (= 3.1.3)
36
+ arel (~> 2.2.1)
37
+ tzinfo (~> 0.3.29)
38
+ activeresource (3.1.3)
39
+ activemodel (= 3.1.3)
40
+ activesupport (= 3.1.3)
41
+ activesupport (3.1.3)
42
+ multi_json (~> 1.0)
43
+ acts_as_list (0.1.4)
44
+ archive-tar-minitar (0.5.2)
45
+ arel (2.2.1)
46
+ braintree (2.13.2)
47
+ builder (>= 2.0.0)
48
+ builder (3.0.0)
49
+ capybara (1.0.1)
50
+ mime-types (>= 1.16)
51
+ nokogiri (>= 1.3.3)
52
+ rack (>= 1.0.0)
53
+ rack-test (>= 0.5.4)
54
+ selenium-webdriver (~> 2.0)
55
+ xpath (~> 0.1.4)
56
+ childprocess (0.2.8)
57
+ ffi (~> 1.0.6)
58
+ cocaine (0.2.1)
59
+ columnize (0.3.6)
60
+ cucumber (1.0.6)
61
+ builder (>= 2.1.2)
62
+ diff-lcs (>= 1.1.2)
63
+ gherkin (~> 2.4.18)
64
+ json (>= 1.4.6)
65
+ term-ansicolor (>= 1.0.6)
66
+ cucumber-rails (1.0.0)
67
+ capybara (>= 1.0.0)
68
+ cucumber (~> 1.0.0)
69
+ nokogiri (>= 1.4.4)
70
+ rack-test (>= 0.5.7)
71
+ database_cleaner (0.6.7)
72
+ deface (0.7.2)
73
+ nokogiri (~> 1.5.0)
74
+ rails (>= 3.0.9)
75
+ diff-lcs (1.1.3)
76
+ erubis (2.7.0)
77
+ faker (1.0.0)
78
+ i18n (~> 0.4)
79
+ ffi (1.0.11)
80
+ gherkin (2.4.21)
81
+ json (>= 1.4.6)
82
+ highline (1.6.2)
83
+ hike (1.2.1)
84
+ i18n (0.6.0)
85
+ jquery-rails (1.0.19)
86
+ railties (~> 3.0)
87
+ thor (~> 0.14)
88
+ json (1.6.4)
89
+ kaminari (0.13.0)
90
+ actionpack (>= 3.0.0)
91
+ activesupport (>= 3.0.0)
92
+ railties (>= 3.0.0)
93
+ linecache19 (0.5.12)
94
+ ruby_core_source (>= 0.1.4)
95
+ mail (2.3.0)
96
+ i18n (>= 0.4.0)
97
+ mime-types (~> 1.16)
98
+ treetop (~> 1.4.8)
99
+ meta_search (1.1.1)
100
+ actionpack (~> 3.1.0)
101
+ activerecord (~> 3.1.0)
102
+ activesupport (~> 3.1.0)
103
+ polyamorous (~> 0.5.0)
104
+ mime-types (1.17.2)
105
+ multi_json (1.0.4)
106
+ nested_set (1.6.8)
107
+ activerecord (>= 3.0.0)
108
+ railties (>= 3.0.0)
109
+ nokogiri (1.5.0)
110
+ paperclip (2.4.1)
111
+ activerecord (>= 2.3.0)
112
+ activesupport (>= 2.3.2)
113
+ cocaine (>= 0.0.2)
114
+ mime-types
115
+ polyamorous (0.5.0)
116
+ activerecord (~> 3.0)
117
+ polyglot (0.3.3)
118
+ rack (1.3.6)
119
+ rack-cache (1.1)
120
+ rack (>= 0.4)
121
+ rack-mount (0.8.3)
122
+ rack (>= 1.0.0)
123
+ rack-ssl (1.3.2)
124
+ rack
125
+ rack-test (0.6.1)
126
+ rack (>= 1.0)
127
+ rails (3.1.3)
128
+ actionmailer (= 3.1.3)
129
+ actionpack (= 3.1.3)
130
+ activerecord (= 3.1.3)
131
+ activeresource (= 3.1.3)
132
+ activesupport (= 3.1.3)
133
+ bundler (~> 1.0)
134
+ railties (= 3.1.3)
135
+ railties (3.1.3)
136
+ actionpack (= 3.1.3)
137
+ activesupport (= 3.1.3)
138
+ rack-ssl (~> 1.3.2)
139
+ rake (>= 0.8.7)
140
+ rdoc (~> 3.4)
141
+ thor (~> 0.14.6)
142
+ rake (0.9.2.2)
143
+ rd_find_by_param (0.1.1)
144
+ activerecord (~> 3.0)
145
+ activesupport (~> 3.0)
146
+ rd_resource_controller (1.0.1)
147
+ rdoc (3.12)
148
+ json (~> 1.4)
149
+ rspec (2.6.0)
150
+ rspec-core (~> 2.6.0)
151
+ rspec-expectations (~> 2.6.0)
152
+ rspec-mocks (~> 2.6.0)
153
+ rspec-core (2.6.4)
154
+ rspec-expectations (2.6.0)
155
+ diff-lcs (~> 1.1.2)
156
+ rspec-mocks (2.6.0)
157
+ rspec-rails (2.6.1)
158
+ actionpack (~> 3.0)
159
+ activesupport (~> 3.0)
160
+ railties (~> 3.0)
161
+ rspec (~> 2.6.0)
162
+ ruby-debug-base19 (0.11.25)
163
+ columnize (>= 0.3.1)
164
+ linecache19 (>= 0.5.11)
165
+ ruby_core_source (>= 0.1.4)
166
+ ruby-debug19 (0.11.6)
167
+ columnize (>= 0.3.1)
168
+ linecache19 (>= 0.5.11)
169
+ ruby-debug-base19 (>= 0.11.19)
170
+ ruby_core_source (0.1.5)
171
+ archive-tar-minitar (>= 0.5.2)
172
+ rubyzip (0.9.5)
173
+ selenium-webdriver (2.16.0)
174
+ childprocess (>= 0.2.5)
175
+ ffi (~> 1.0.9)
176
+ multi_json (~> 1.0.4)
177
+ rubyzip
178
+ spree_core (0.70.3)
179
+ activemerchant (= 1.17.0)
180
+ acts_as_list (= 0.1.4)
181
+ deface (>= 0.7.0)
182
+ faker (= 1.0.0)
183
+ highline (= 1.6.2)
184
+ jquery-rails (>= 1.0.14)
185
+ kaminari (>= 0.12.4)
186
+ meta_search (= 1.1.1)
187
+ nested_set (= 1.6.8)
188
+ paperclip (= 2.4.1)
189
+ rails (>= 3.1.1, <= 3.1.3)
190
+ rd_find_by_param (= 0.1.1)
191
+ rd_resource_controller
192
+ state_machine (= 1.0.1)
193
+ stringex (= 1.0.3)
194
+ sprockets (2.0.3)
195
+ hike (~> 1.2)
196
+ rack (~> 1.0)
197
+ tilt (~> 1.1, != 1.3.0)
198
+ sqlite3 (1.3.5)
199
+ state_machine (1.0.1)
200
+ stringex (1.0.3)
201
+ term-ansicolor (1.0.7)
202
+ thor (0.14.6)
203
+ tilt (1.3.3)
204
+ treetop (1.4.10)
205
+ polyglot
206
+ polyglot (>= 0.3.1)
207
+ tzinfo (0.3.31)
208
+ xpath (0.1.4)
209
+ nokogiri (~> 1.3)
210
+
211
+ PLATFORMS
212
+ ruby
213
+
214
+ DEPENDENCIES
215
+ capybara (= 1.0.1)
216
+ cucumber-rails (= 1.0.0)
217
+ database_cleaner (= 0.6.7)
218
+ nokogiri
219
+ rspec-rails (= 2.6.1)
220
+ ruby-debug19
221
+ spree_froomerce_fconnect!
222
+ sqlite3
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2012 Ali Naqi
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,76 @@
1
+ # F.Connect - Online store and widgets on Facebook
2
+
3
+ F.Connect integrates your existing store with Facebook in a few steps.
4
+ It not only lets you create complete Facebook store but also give you
5
+ ability to post your products to your Fan Page wall. This allows you
6
+ to reach your customers on Facebook directly from the wall. You can also
7
+ run social campaigns to promote your products and engage customers.
8
+ All of this can be done without writing a single line of code!
9
+
10
+ This extensions requires you to create an account on [Froomerce F.Connect](http://froomerce.com/merchant/merchantplatform/fconnect)
11
+
12
+
13
+ ## Your Benefits
14
+
15
+ ### Easy porting of store to Facebook
16
+
17
+ You just need to install the extension and export the store to your Page.
18
+ `Note:` This extension only support single store architecture.
19
+
20
+ ### Social sharing widgets
21
+
22
+ Your users can share and like products from your Fan Page.
23
+
24
+ ### Selling or redirecting to main store
25
+
26
+ Depending on what you require, you can let users add all products to their
27
+ Facebook cart or you can redirect users to go to the main site.
28
+
29
+ ### Product widgets
30
+
31
+ You can create product widgets and post them directly on the wall.This will
32
+ enable you to reach out to your Fans directly on their walls! When they like or
33
+ share the widgets, their friends will also get exposure to your products.
34
+
35
+ ### Custom verbs support
36
+
37
+ You can choose to have new custom verbs apart from “like”. For example, you can
38
+ configure the store to have “Want” and “Need” buttons.
39
+
40
+ ### Detailed Statistics
41
+
42
+ You get detailed statistics on not only the products but also demographics from
43
+ Facebook Page e.g., how many males and females came on your page, what were their
44
+ age groups etc. You receive weekly statistics emails.
45
+
46
+ ### Custom campaigns
47
+
48
+ You can choose to have your own Welcome page. You can also choose to allow only
49
+ users how like your page to view your store.
50
+
51
+ ### Customizations
52
+
53
+ You can have your own design for the stores and the product widgets.
54
+
55
+ ### Support
56
+
57
+ You get free email support for all packages. With Professional Pro packages
58
+ you also get direct phone support.
59
+
60
+ ## Requirements
61
+
62
+ `spree_froomerce_fconnect` requires `Spree 0.70.x`.
63
+ And it is not compatible with `Rails 2.x`
64
+
65
+ # Installation
66
+
67
+ spree_froomerce_fconnect is distributed as a gem, which is how it should be used in your application.
68
+ Follwoing steps are to be performed consecutively for this extension to work properly:
69
+
70
+ * Add following line to the Gemfile: `gem "spree_froomerce_fconnect"`
71
+ * Then run bundler to install the gem
72
+ * Run `rails g spree_froomerce_fconnect:install` to add and run required migrations.
73
+
74
+ And you are ready to go!
75
+
76
+ Copyright (c) 2012 Ali Naqi, released under the New BSD License
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/packagetask'
4
+ require 'rubygems/package_task'
5
+ require 'rspec/core/rake_task'
6
+ require 'cucumber/rake/task'
7
+ require 'spree_core/testing_support/common_rake'
8
+
9
+ RSpec::Core::RakeTask.new
10
+ Cucumber::Rake::Task.new
11
+
12
+ task :default => [:spec, :cucumber ]
13
+
14
+ spec = eval(File.read('spree_froomerce_fconnect.gemspec'))
15
+
16
+ Gem::PackageTask.new(spec) do |p|
17
+ p.gem_spec = spec
18
+ end
19
+
20
+ desc "Release to gemcutter"
21
+ task :release => :package do
22
+ require 'rake/gemcutter'
23
+ Rake::Gemcutter::Tasks.new(spec).define
24
+ Rake::Task['gem:push'].invoke
25
+ end
26
+
27
+ desc "Generates a dummy app for testing"
28
+ task :test_app do
29
+ ENV['LIB_NAME'] = 'spree_froomerce_fconnect'
30
+ Rake::Task['common:test_app'].invoke
31
+ end
data/Versionfile ADDED
@@ -0,0 +1,2 @@
1
+ "0.70.1" => { :branch => "0-70-stable" }
2
+
Binary file
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1 @@
1
+ //= require admin/spree_core
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1 @@
1
+ //= require store/spree_core
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require store/spree_core
3
+ */
@@ -0,0 +1,107 @@
1
+ /*
2
+ *= require store/spree_core
3
+ */
4
+
5
+ body {
6
+ font-family:Arial, Helvetica, sans-serif;
7
+ font-size:12px;
8
+ color:#4e4e4e;
9
+ }
10
+ * {
11
+ margin:0px;
12
+ padding:0px;
13
+ }
14
+ .clr {
15
+ clear:both;
16
+ }
17
+ ul, li {
18
+ list-style:none;
19
+ }
20
+ #layout {
21
+ width:990px;
22
+ margin:auto;
23
+ }
24
+ #header {
25
+ height:25px;
26
+ padding:15px 10px 5px 20px;
27
+ border-bottom:3px solid #dfdfdf;
28
+ position:relative;
29
+ margin-bottom:18px;
30
+ }
31
+ #header h1{
32
+ font-size:16px;
33
+ font-weight:bold;
34
+ color:#eb5e00;
35
+ position:absolute;
36
+ width:775px;
37
+ }
38
+ #header .btnArea {
39
+ position:absolute;
40
+ right:0;
41
+ }
42
+ #header .btnArea input {
43
+ float:left;
44
+ background:url(admin/submit-btn.gif) no-repeat left top;
45
+ width:113px;
46
+ border:none;
47
+ font-family:inherit;
48
+ font-size:12px;
49
+ color:#fff;
50
+ padding:1px 5px 3px 20px;
51
+ text-align:center;
52
+ cursor:pointer;
53
+ }
54
+ #header .btnArea input[type="reset"]{
55
+ float:left;
56
+ background:url(admin/reset-btn.gif) no-repeat left top;
57
+ width:55px;
58
+ padding:1px 0px 3px;
59
+ margin-right:10px;
60
+ }
61
+ #hd-bar {
62
+ background:#6f8992;
63
+ height:16px;
64
+ color:#fff;
65
+ padding:3px 10px 3px 20px;
66
+ }
67
+ #hd-bar h2 {
68
+ font-size:14px;
69
+ font-weight:bold;
70
+ line-height:16px;
71
+ float:left;
72
+ color:#FFFFFF;
73
+ width:700px;
74
+ }
75
+ #hd-bar .link {
76
+ float:right;
77
+ }
78
+ #hd-bar .link a {
79
+ color:#fff;
80
+ }
81
+ #hd-bar .link a:hover {
82
+ text-decoration:none;
83
+ }
84
+ #contactBox {
85
+ border:1px solid #d6d6d6;
86
+ background:#fafafa;
87
+ padding:20px;
88
+ }
89
+ #contactBox ul li {
90
+ float:left;
91
+ margin-bottom:10px;
92
+ width:900px;
93
+ }
94
+ #contactBox ul li label {
95
+ float:left;
96
+ width:300px;
97
+ margin-right:10px;
98
+ margin-top:3px;
99
+ }
100
+ #contactBox ul li input {
101
+ font-family:inherit;
102
+ font-size:inherit;
103
+ float:left;
104
+ width:280px;
105
+ padding:3px;
106
+ border:#c8c8c8 1px solid;
107
+ }
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require store/spree_core
3
+ */