shopapp 0.2.58 → 0.2.59
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.
- checksums.yaml +4 -4
- data/README.md +23 -7
- data/app/assets/images/flags/ad.png +0 -0
- data/app/assets/images/flags/ae.png +0 -0
- data/app/assets/images/flags/am.png +0 -0
- data/app/assets/images/flags/ar.png +0 -0
- data/app/assets/images/flags/at.png +0 -0
- data/app/assets/images/flags/au.png +0 -0
- data/app/assets/images/flags/ax.png +0 -0
- data/app/assets/images/flags/az.png +0 -0
- data/app/assets/images/flags/ba.png +0 -0
- data/app/assets/images/flags/bb.png +0 -0
- data/app/assets/images/flags/be.png +0 -0
- data/app/assets/images/flags/bg.png +0 -0
- data/app/assets/images/flags/bt.png +0 -0
- data/app/assets/images/flags/ca.png +0 -0
- data/app/assets/images/flags/ch.png +0 -0
- data/app/assets/images/flags/cl.png +0 -0
- data/app/assets/images/flags/cn.png +0 -0
- data/app/assets/images/flags/cr.png +0 -0
- data/app/assets/images/flags/cu.png +0 -0
- data/app/assets/images/flags/cz.png +0 -0
- data/app/assets/images/flags/de.png +0 -0
- data/app/assets/images/flags/dk.png +0 -0
- data/app/assets/images/flags/en.png +0 -0
- data/app/assets/images/flags/es.png +0 -0
- data/app/assets/images/flags/fi.png +0 -0
- data/app/assets/images/flags/fr.png +0 -0
- data/app/assets/images/flags/ge.png +0 -0
- data/app/assets/images/flags/gn.png +0 -0
- data/app/assets/images/flags/gr.png +0 -0
- data/app/assets/images/flags/gw.png +0 -0
- data/app/assets/images/flags/it.png +0 -0
- data/app/assets/images/flags/jm.png +0 -0
- data/app/assets/images/flags/jp.png +0 -0
- data/app/assets/images/flags/ne.png +0 -0
- data/app/assets/images/flags/ng.png +0 -0
- data/app/assets/images/flags/pr.png +0 -0
- data/app/assets/images/flags/sc.png +0 -0
- data/app/assets/images/flags/sd.png +0 -0
- data/app/assets/images/flags/se.png +0 -0
- data/app/assets/images/flags/sl.png +0 -0
- data/app/assets/images/flags/sr.png +0 -0
- data/app/assets/images/flags/td.png +0 -0
- data/app/assets/images/flags/tg.png +0 -0
- data/app/assets/images/flags/th.png +0 -0
- data/app/assets/images/flags/tj.png +0 -0
- data/app/assets/images/flags/tr.png +0 -0
- data/app/assets/images/flags/ua.png +0 -0
- data/app/assets/images/flags/uk.png +0 -0
- data/app/assets/images/flags/us.png +0 -0
- data/app/assets/images/flags/ve.png +0 -0
- data/app/assets/images/flags/vn.png +0 -0
- data/app/controllers/auth_controller.rb +9 -0
- data/app/controllers/concerns/shoplift_client.rb +23 -5
- data/app/controllers/user_authenticated_controller.rb +1 -1
- data/app/controllers/user_authenticated_or_api_controller.rb +1 -1
- data/app/views/shopapp/_shopapp3.html.haml +7 -0
- data/config/initializers/active_settings.rb +1 -1
- data/lib/shopapp/routes.rb +1 -0
- data/shopapp.gemspec +1 -1
- metadata +52 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c3f32a8bb9da2ba3bde17d6a54bec3472a41427d9d39747d02ec23bd694eb1e8
|
|
4
|
+
data.tar.gz: f9f4637f3dbdb80dc9e711316361a81572f58d5f82229648ee6bdd92cf77f2db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05c578664bb08a36689302c52ae037d3d7e9c6fb709a9ec5166fc14814d19370aa4decd0bd78dcf5f6322ca5fd0c0c1e608ae56e2e5de70fa1eff49210abb6b7
|
|
7
|
+
data.tar.gz: f28cc6a9fcb1190681a8f5111e2ae4aeb2db8bff62988c14b80d0b8454c74d00c69f576b7f775df1ae44e90bb94b84202cbb16b447699936a40508370b2c0068
|
data/README.md
CHANGED
|
@@ -4,15 +4,16 @@ Shopapp gem - gem for Shoplift clients.
|
|
|
4
4
|
|
|
5
5
|
# Shoplift apps: ShopApps
|
|
6
6
|
|
|
7
|
-
ShopApps
|
|
8
|
-
be made with Shopapp gem. It provides
|
|
9
|
-
that force authentication with Authlift,
|
|
7
|
+
ShopApps (or shopapps when refering to a set of them) are Shoplift applications,
|
|
8
|
+
and if they are written in Rails, they can be made with Shopapp gem. It provides
|
|
9
|
+
quick start, UI template and controllers that force authentication with Authlift,
|
|
10
|
+
Shoplift OAuth provider.
|
|
10
11
|
|
|
11
12
|
# Development Setup
|
|
12
13
|
|
|
13
14
|
* You must have account with Shoplift with membership for "zwr" company,
|
|
14
15
|
which is used for all app development.
|
|
15
|
-
* ShopApp will work on any \*nix, but is designed on and for OSX
|
|
16
|
+
* ShopApp will work on any \*nix, but is designed on and for development on OSX
|
|
16
17
|
* Postgres (latest), typically via Brew
|
|
17
18
|
* You will need Ruby 2.5.1, and typically via RVM, and few gems:
|
|
18
19
|
|
|
@@ -62,19 +63,34 @@ Following creates default remote (zwr/demolift), but does not push:
|
|
|
62
63
|
|
|
63
64
|
skip_github_push=1 shopitapp demolift
|
|
64
65
|
|
|
66
|
+
# Developing shopapps
|
|
67
|
+
|
|
65
68
|
### Favicon
|
|
66
69
|
|
|
67
70
|
Make a 610x610 PNG, for Z-ware colors use 7800a1 -> 7086d6. Then drag that icon
|
|
68
71
|
to https://faviconit.com and copy all returned files except the instructions to
|
|
69
72
|
/public/favicon/ folder.
|
|
70
73
|
|
|
71
|
-
Add the following line to the
|
|
72
|
-
else regarding favicons:
|
|
74
|
+
Add the following line to the head of your layouts and make sure it does not
|
|
75
|
+
contain anything else regarding favicons:
|
|
73
76
|
|
|
74
77
|
= shopapp3_favicon
|
|
75
78
|
|
|
79
|
+
### Localized shopapps
|
|
80
|
+
|
|
81
|
+
Shopapp gem and authlift provide all you need for localization. If you want your
|
|
82
|
+
shopapp to support i18n, add two methods to your ApplicationController:
|
|
83
|
+
|
|
84
|
+
* Create method supported_locales which should return an array of language codes, for
|
|
85
|
+
example ['fi', 'en', 'sv'].
|
|
86
|
+
* Override method set_locale, most likely like this:
|
|
87
|
+
|
|
88
|
+
def set_locale
|
|
89
|
+
I18n.locale = current_user['language'].to_sym || I18n.default_locale
|
|
90
|
+
end
|
|
91
|
+
|
|
76
92
|
# Developing this gem
|
|
77
93
|
|
|
78
94
|
To build new version of this gem, change the version in shopapp.gemspec and run:
|
|
79
95
|
|
|
80
|
-
git push; gem build shopapp.gemspec ; gem push shopapp-0.2.
|
|
96
|
+
git push; gem build shopapp.gemspec ; gem push shopapp-0.2.59.gem; gem install shopapp
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -35,4 +35,13 @@ class AuthController < ActionController::Base
|
|
|
35
35
|
signouttoken = session_cookie
|
|
36
36
|
redirect_to "#{Rails.configuration.settings['authlift_url']}users/change_companyx/#{new_company_code}?change_company_token=#{signouttoken}"
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
def change_language
|
|
40
|
+
authenticate_user!
|
|
41
|
+
return if current_user.blank?
|
|
42
|
+
new_language_code = params.except(:_method, :authenticity_token).permit(:new_language_code)[:new_language_code]
|
|
43
|
+
|
|
44
|
+
signouttoken = session_cookie
|
|
45
|
+
redirect_to "#{Rails.configuration.settings['authlift_url']}users/change_languagex/#{new_language_code}?change_language_token=#{signouttoken}&return_to=#{request.base_url}"
|
|
46
|
+
end
|
|
38
47
|
end
|
|
@@ -14,6 +14,7 @@ module ShopliftClient
|
|
|
14
14
|
attr_reader :search_path
|
|
15
15
|
attr_accessor :search_placeholder
|
|
16
16
|
helper_method :company_logo_path_defined
|
|
17
|
+
helper_method :supported_locales_defined
|
|
17
18
|
helper_method :home_link_path
|
|
18
19
|
end
|
|
19
20
|
|
|
@@ -125,16 +126,24 @@ module ShopliftClient
|
|
|
125
126
|
@current_company ||= Company.find_or_create_by! code: code do |new_company|
|
|
126
127
|
fail if parameters.empty?
|
|
127
128
|
new_company.name = parameters[:name]
|
|
128
|
-
|
|
129
|
+
# following is an ugly yet backwards conpatible and safe way to store
|
|
130
|
+
# the company info if and in the best way possible, until all the apps
|
|
131
|
+
# are updated to have json there.
|
|
132
|
+
case new_company.column_for_attribute('info').type
|
|
133
|
+
when :json
|
|
134
|
+
new_company.info = parameters
|
|
135
|
+
when :string
|
|
136
|
+
new_company.info = parameters.to_json
|
|
137
|
+
end
|
|
129
138
|
end
|
|
130
139
|
rescue ActiveRecord::StatementInvalid
|
|
131
140
|
if $!.cause.is_a? PG::UndefinedTable
|
|
132
141
|
fail <<-ERROR.strip_heredoc
|
|
133
142
|
You have not defined a company, and that is compulsory even if
|
|
134
|
-
you are not planning to add any additional fields. You do not
|
|
135
|
-
seed it, so following is enough forever:
|
|
143
|
+
you are not planning to add any additional fields. You do not
|
|
144
|
+
need to seed it, so following is enough forever:
|
|
136
145
|
|
|
137
|
-
rails g model company code:string; rake db:migrate
|
|
146
|
+
rails g model company code:string name:string info:json; rake db:migrate
|
|
138
147
|
ERROR
|
|
139
148
|
end
|
|
140
149
|
end
|
|
@@ -146,6 +155,7 @@ module ShopliftClient
|
|
|
146
155
|
begin
|
|
147
156
|
x = srv.get '/api/users/profile'
|
|
148
157
|
@current_user_json_hash = @current_user = JSON.parse x.response.body
|
|
158
|
+
|
|
149
159
|
unless @current_user['scopes'].is_a? String
|
|
150
160
|
user_scopes = @current_user['scopes']
|
|
151
161
|
else
|
|
@@ -279,13 +289,21 @@ module ShopliftClient
|
|
|
279
289
|
end
|
|
280
290
|
|
|
281
291
|
def company_logo_path_defined
|
|
282
|
-
if
|
|
292
|
+
if defined? self.company_logo_path
|
|
283
293
|
company_logo_path
|
|
284
294
|
else
|
|
285
295
|
"https://media.shoplift.fi/company_logos/#{@current_user_json_hash['company']['logo_code']}_company_logo_24.png"
|
|
286
296
|
end
|
|
287
297
|
end
|
|
288
298
|
|
|
299
|
+
def supported_locales_defined
|
|
300
|
+
if defined? self.supported_locales
|
|
301
|
+
supported_locales
|
|
302
|
+
else
|
|
303
|
+
[]
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
|
|
289
307
|
def home_link_path
|
|
290
308
|
root_path
|
|
291
309
|
end
|
|
@@ -23,6 +23,13 @@
|
|
|
23
23
|
.dropdown-header
|
|
24
24
|
%strong Company:
|
|
25
25
|
=@current_user_json_hash['company']['name']
|
|
26
|
+
- if supported_locales_defined.present?
|
|
27
|
+
.dropdown-divider
|
|
28
|
+
.dropdown-header Change language
|
|
29
|
+
%span.px-3.py-2(display="block" clear="none" style="width: 32px; margin-right: 6px;")
|
|
30
|
+
- supported_locales_defined.each do |loc|
|
|
31
|
+
= link_to change_language_path(loc), method: :post, class: 'mr-2' do
|
|
32
|
+
= image_tag "flags/#{loc}.png", style: "height: 24; width: 36px;"
|
|
26
33
|
- if (@current_user_json_hash['memberships'] || []).reject { |c| @current_user_json_hash['company']['code'] == c['code'] }.present?
|
|
27
34
|
.dropdown-divider
|
|
28
35
|
.dropdown-header Change company
|
|
@@ -36,4 +36,4 @@ GravatarImageTag.configure do |config|
|
|
|
36
36
|
config.secure = true # Set this to true if you require secure images on your pages.
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
Rails.application.config.assets.precompile += %w( shopapp3/*.svg )
|
|
39
|
+
Rails.application.config.assets.precompile += %w( shopapp3/*.svg flags/*.png )
|
data/lib/shopapp/routes.rb
CHANGED
|
@@ -2,6 +2,7 @@ class ActionDispatch::Routing::Mapper
|
|
|
2
2
|
def shoplift_single_sign_on
|
|
3
3
|
get 'auth', to: 'auth#auth'
|
|
4
4
|
post 'auth/change_company/:new_company_code', to: 'auth#change_company', as: 'change_company'
|
|
5
|
+
post 'auth/change_language/:new_language_code', to: 'auth#change_language', as: 'change_language'
|
|
5
6
|
delete 'auth', to: 'auth#destroy', as: 'logout'
|
|
6
7
|
end
|
|
7
8
|
end
|
data/shopapp.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'shopapp'
|
|
3
|
-
s.version = '0.2.
|
|
3
|
+
s.version = '0.2.59'
|
|
4
4
|
s.date = '2019-05-24'
|
|
5
5
|
s.summary = 'Do a shoplift.'
|
|
6
6
|
s.description = 'Ha! Art thou Bedlam? Dost thou thirst base Trojan, to have me fold up Parca\'s fatal web? Hence!\
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shopapp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.59
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Zeljko
|
|
@@ -334,6 +334,57 @@ files:
|
|
|
334
334
|
- app/assets/images/blue_icon.svg
|
|
335
335
|
- app/assets/images/dot.svg
|
|
336
336
|
- app/assets/images/empty.svg
|
|
337
|
+
- app/assets/images/flags/ad.png
|
|
338
|
+
- app/assets/images/flags/ae.png
|
|
339
|
+
- app/assets/images/flags/am.png
|
|
340
|
+
- app/assets/images/flags/ar.png
|
|
341
|
+
- app/assets/images/flags/at.png
|
|
342
|
+
- app/assets/images/flags/au.png
|
|
343
|
+
- app/assets/images/flags/ax.png
|
|
344
|
+
- app/assets/images/flags/az.png
|
|
345
|
+
- app/assets/images/flags/ba.png
|
|
346
|
+
- app/assets/images/flags/bb.png
|
|
347
|
+
- app/assets/images/flags/be.png
|
|
348
|
+
- app/assets/images/flags/bg.png
|
|
349
|
+
- app/assets/images/flags/bt.png
|
|
350
|
+
- app/assets/images/flags/ca.png
|
|
351
|
+
- app/assets/images/flags/ch.png
|
|
352
|
+
- app/assets/images/flags/cl.png
|
|
353
|
+
- app/assets/images/flags/cn.png
|
|
354
|
+
- app/assets/images/flags/cr.png
|
|
355
|
+
- app/assets/images/flags/cu.png
|
|
356
|
+
- app/assets/images/flags/cz.png
|
|
357
|
+
- app/assets/images/flags/de.png
|
|
358
|
+
- app/assets/images/flags/dk.png
|
|
359
|
+
- app/assets/images/flags/en.png
|
|
360
|
+
- app/assets/images/flags/es.png
|
|
361
|
+
- app/assets/images/flags/fi.png
|
|
362
|
+
- app/assets/images/flags/fr.png
|
|
363
|
+
- app/assets/images/flags/ge.png
|
|
364
|
+
- app/assets/images/flags/gn.png
|
|
365
|
+
- app/assets/images/flags/gr.png
|
|
366
|
+
- app/assets/images/flags/gw.png
|
|
367
|
+
- app/assets/images/flags/it.png
|
|
368
|
+
- app/assets/images/flags/jm.png
|
|
369
|
+
- app/assets/images/flags/jp.png
|
|
370
|
+
- app/assets/images/flags/ne.png
|
|
371
|
+
- app/assets/images/flags/ng.png
|
|
372
|
+
- app/assets/images/flags/pr.png
|
|
373
|
+
- app/assets/images/flags/sc.png
|
|
374
|
+
- app/assets/images/flags/sd.png
|
|
375
|
+
- app/assets/images/flags/se.png
|
|
376
|
+
- app/assets/images/flags/sl.png
|
|
377
|
+
- app/assets/images/flags/sr.png
|
|
378
|
+
- app/assets/images/flags/td.png
|
|
379
|
+
- app/assets/images/flags/tg.png
|
|
380
|
+
- app/assets/images/flags/th.png
|
|
381
|
+
- app/assets/images/flags/tj.png
|
|
382
|
+
- app/assets/images/flags/tr.png
|
|
383
|
+
- app/assets/images/flags/ua.png
|
|
384
|
+
- app/assets/images/flags/uk.png
|
|
385
|
+
- app/assets/images/flags/us.png
|
|
386
|
+
- app/assets/images/flags/ve.png
|
|
387
|
+
- app/assets/images/flags/vn.png
|
|
337
388
|
- app/assets/images/lamppu.jpg
|
|
338
389
|
- app/assets/images/logo.png
|
|
339
390
|
- app/assets/images/purple_icon.svg
|