cloudrider 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/README.md +11 -1
- data/cloudrider.gemspec +0 -3
- data/generica/app/assets/javascripts/adapters/admin/taxon.js.em +2 -0
- data/generica/app/assets/javascripts/components/hero-splash.js.em +1 -15
- data/generica/app/assets/javascripts/components/products-showcase.js.em +6 -0
- data/generica/app/assets/javascripts/components/select-locale.js.em +2 -2
- data/generica/app/assets/javascripts/components/tr-span.js.em +1 -0
- data/generica/app/assets/javascripts/components/tree/taxon-li.js.em +27 -2
- data/generica/app/assets/javascripts/components/tree/taxon-wrapper.js.em +5 -18
- data/generica/app/assets/javascripts/config/i18n-translations.js.ls +6 -2
- data/generica/app/assets/javascripts/config/router.js.ls +4 -1
- data/generica/app/assets/javascripts/controllers/admin/messages/index_controller.js.em +10 -0
- data/generica/app/assets/javascripts/controllers/admin/product/edit_controller.js.em +10 -1
- data/generica/app/assets/javascripts/controllers/admin/products/new_controller.js.em +6 -0
- data/generica/app/assets/javascripts/controllers/admin/taxon/edit_controller.js.em +17 -0
- data/generica/app/assets/javascripts/controllers/admin/taxons/new_controller.js.em +25 -0
- data/generica/app/assets/javascripts/controllers/messages/new_controller.js.em +16 -0
- data/generica/app/assets/javascripts/controllers/products/index_controller.js.em +5 -8
- data/generica/app/assets/javascripts/helpers/hash_ex.js.ls +6 -0
- data/generica/app/assets/javascripts/helpers/string_ex.js.ls +1 -1
- data/generica/app/assets/javascripts/models/admin/product.js.em +2 -0
- data/generica/app/assets/javascripts/models/admin/taxon.js.em +4 -1
- data/generica/app/assets/javascripts/models/message.js.em +7 -0
- data/generica/app/assets/javascripts/models/product.js.em +7 -2
- data/generica/app/assets/javascripts/models/taxon.js.em +3 -5
- data/generica/app/assets/javascripts/routes/admin/messages/index_route.js.em +1 -0
- data/generica/app/assets/javascripts/routes/admin/taxon_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/admin/taxons/index_route.js.em +1 -1
- data/generica/app/assets/javascripts/routes/admin/taxons/new_route.js.em +2 -0
- data/generica/app/assets/javascripts/routes/index_route.js.em +3 -2
- data/generica/app/assets/javascripts/routes/products/index_route.js.em +1 -1
- data/generica/app/assets/javascripts/templates/admin.emblem +17 -5
- data/generica/app/assets/javascripts/templates/admin/messages/index.emblem +19 -0
- data/generica/app/assets/javascripts/templates/admin/messages/slice.emblem +12 -0
- data/generica/app/assets/javascripts/templates/admin/product/edit.emblem +23 -6
- data/generica/app/assets/javascripts/templates/admin/products/new.emblem +17 -0
- data/generica/app/assets/javascripts/templates/admin/products/slice.emblem +6 -1
- data/generica/app/assets/javascripts/templates/admin/taxon/edit.emblem +36 -0
- data/generica/app/assets/javascripts/templates/admin/taxons/index.emblem +1 -1
- data/generica/app/assets/javascripts/templates/admin/taxons/new.emblem +40 -0
- data/generica/app/assets/javascripts/templates/admin/translations/index.emblem +1 -1
- data/generica/app/assets/javascripts/templates/components/product-display.emblem +4 -0
- data/generica/app/assets/javascripts/templates/components/product-listing.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/search-and-filter.emblem +1 -1
- data/generica/app/assets/javascripts/templates/components/site-nav/_top-nav.emblem +1 -1
- data/generica/app/assets/javascripts/templates/components/table-booths.emblem +3 -65
- data/generica/app/assets/javascripts/templates/components/tree-taxon-li.emblem +11 -3
- data/generica/app/assets/javascripts/templates/components/tree-taxon-ul.emblem +6 -7
- data/generica/app/assets/javascripts/templates/components/tree-taxon-wrapper.emblem +2 -2
- data/generica/app/assets/javascripts/templates/employees/index.emblem +32 -0
- data/generica/app/assets/javascripts/templates/index.emblem +2 -1
- data/generica/app/assets/javascripts/templates/messages/new.emblem +43 -0
- data/generica/app/assets/javascripts/templates/products/product/show.emblem +8 -0
- data/generica/app/assets/javascripts/transforms/form_data_transformer.js.ls +4 -0
- data/generica/app/assets/stylesheets/apiv1/_admin.css.scss +1 -0
- data/generica/app/assets/stylesheets/apiv1/admin/messages/_index.css.scss +34 -0
- data/generica/app/assets/stylesheets/apiv1/components/_product-display.css.scss +24 -0
- data/generica/app/assets/stylesheets/apiv1/components/_product-listing.css.scss +27 -2
- data/generica/app/assets/stylesheets/apiv1/components/_table-booths.css.scss +10 -0
- data/generica/app/assets/stylesheets/apiv1/components/_tree-taxon-wrapper.css.scss +37 -22
- data/generica/app/assets/stylesheets/apiv1/products/product/_show.css.scss +24 -0
- data/generica/app/assets/stylesheets/apiv1/shared/_constants.css.scss +2 -2
- data/generica/app/controllers/admin/taxons/create_controller.rb +26 -0
- data/generica/app/controllers/apiv1/i18n_translations/index_controller.rb +9 -5
- data/generica/app/controllers/apiv1/messages/create_controller.rb +17 -0
- data/generica/app/controllers/apiv1/messages/index_controller.rb +18 -0
- data/generica/app/controllers/apiv1/products/index_controller.rb +1 -1
- data/generica/app/controllers/apiv1/taxons/destroy_controller.rb +9 -0
- data/generica/app/controllers/apiv1/taxons/index_controller.rb +1 -0
- data/generica/app/controllers/apiv1/taxons/update_controller.rb +28 -0
- data/generica/app/controllers/apiv1/translations/create_controller.rb +5 -4
- data/generica/app/controllers/apiv1/translations/update_controller.rb +2 -2
- data/generica/app/models/admin/product_modifier.rb +16 -3
- data/generica/app/models/admin/taxon_factory.rb +23 -0
- data/generica/app/models/admin/taxon_relationships_factory.rb +32 -0
- data/generica/app/models/apiv1/employee.rb +1 -2
- data/generica/app/models/apiv1/message.rb +24 -0
- data/generica/app/models/apiv1/messages_machine.rb +31 -0
- data/generica/app/models/apiv1/product.rb +33 -13
- data/generica/app/models/apiv1/products_machine.rb +9 -1
- data/generica/app/models/apiv1/taxon.rb +8 -2
- data/generica/app/models/apiv1/translation.rb +73 -14
- data/generica/app/models/i18n/backend/active_record.rb +49 -0
- data/generica/app/varissets/javascripts/templates/components/introductory-lobby.emblem.erb +15 -1
- data/generica/app/varissets/javascripts/templates/components/table-booths.emblem.erb +39 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_introductory-lobby.css.scss.erb +15 -1
- data/generica/app/varissets/stylesheets/apiv1/components/_table-booths.css.scss.erb +71 -0
- data/generica/config/initializers/i18n_backend.rb +7 -0
- data/generica/config/routes.rb +5 -2
- data/generica/db/migrate/20141010215459_create_apiv1_translations.rb +3 -1
- data/generica/db/migrate/20141105231548_add_showcase_priority_to_apiv1_products.rb +5 -0
- data/generica/db/migrate/20141107174821_create_apiv1_messages.rb +12 -0
- data/generica/db/schema.rb +11 -16
- data/generica/lib/tasks/production.rake +2 -1
- data/generica/spec/controllers/admin/taxons/create_controller_spec.rb +44 -0
- data/generica/spec/controllers/apiv1/messages/index_controller_spec.rb +5 -0
- data/generica/spec/controllers/apiv1/taxons/index_controller_spec.rb +59 -0
- data/generica/spec/controllers/apiv1/taxons/update_controller_spec.rb +54 -0
- data/generica/spec/controllers/apiv1/translations/create_controller_spec.rb +50 -0
- data/generica/spec/controllers/apiv1/translations/update_controller_spec.rb +54 -0
- data/generica/spec/factories/apiv1/product_factory.rb +12 -11
- data/generica/spec/models/admin/product_modifier_spec.rb +32 -0
- data/generica/spec/models/admin/taxon_relationships_factory_spec.rb +49 -0
- data/generica/spec/models/apiv1/message_spec.rb +16 -0
- data/generica/spec/models/apiv1/product_spec.rb +13 -12
- data/generica/spec/models/apiv1/translation_spec.rb +41 -0
- data/generica/spec/models/i18n/backend/active_record_spec.rb +27 -0
- data/lib/cloudrider/apiv1/base.rb +4 -4
- data/lib/cloudrider/apiv1/introductory_lobby_component.rb +1 -0
- data/lib/cloudrider/apiv1/introductory_lobby_sass.rb +9 -0
- data/lib/cloudrider/apiv1/table_booths_component.rb +6 -0
- data/lib/cloudrider/master_context.rb +105 -0
- data/lib/cloudrider/version.rb +1 -1
- metadata +43 -31
- data/generica/app/assets/javascripts/components/products-showcase.js.ls +0 -5
- data/generica/config/locales/ar.yml +0 -78
- data/generica/config/locales/ca.yml +0 -78
- data/generica/config/locales/cs.yml +0 -78
- data/generica/config/locales/da.yml +0 -78
- data/generica/config/locales/de.yml +0 -78
- data/generica/config/locales/el.yml +0 -78
- data/generica/config/locales/en.yml +0 -78
- data/generica/config/locales/es.yml +0 -78
- data/generica/config/locales/fi.yml +0 -78
- data/generica/config/locales/fr.yml +0 -78
- data/generica/config/locales/hu.yml +0 -78
- data/generica/config/locales/id.yml +0 -78
- data/generica/config/locales/is.yml +0 -78
- data/generica/config/locales/it.yml +0 -78
- data/generica/config/locales/ja.yml +0 -78
- data/generica/config/locales/ko.yml +0 -78
- data/generica/config/locales/ms.yml +0 -78
- data/generica/config/locales/nl.yml +0 -78
- data/generica/config/locales/no.yml +0 -78
- data/generica/config/locales/pl.yml +0 -78
- data/generica/config/locales/pt.yml +0 -78
- data/generica/config/locales/ru.yml +0 -78
- data/generica/config/locales/sv.yml +0 -78
- data/generica/config/locales/th.yml +0 -78
- data/generica/config/locales/tr.yml +0 -78
- data/generica/config/locales/zh-CN.yml +0 -78
- data/generica/config/locales/zh-TW.yml +0 -78
- data/lib/cloudrider/file_orders_maker.rb +0 -24
@@ -2,22 +2,49 @@
|
|
2
2
|
#
|
3
3
|
# Table name: apiv1_translations
|
4
4
|
#
|
5
|
-
# id
|
6
|
-
# locale
|
7
|
-
# key
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
5
|
+
# id :integer not null, primary key
|
6
|
+
# locale :string(255) not null
|
7
|
+
# key :string(255) not null
|
8
|
+
# value :text
|
9
|
+
# interpolations :text
|
10
|
+
# is_proc :boolean default(FALSE)
|
11
|
+
# created_at :datetime
|
12
|
+
# updated_at :datetime
|
11
13
|
#
|
12
14
|
|
13
15
|
class Apiv1::Translation < ActiveRecord::Base
|
16
|
+
TRUTHY_CHAR = "\001".freeze
|
17
|
+
FALSY_CHAR = "\002".freeze
|
18
|
+
serialize :value
|
19
|
+
serialize :interpolations, Array
|
20
|
+
|
14
21
|
Languages = YAML.load(File.read Rails.root.join "config", "desired_languages.yml")["languages"]
|
15
22
|
KnownLocales = Languages.keys
|
16
23
|
include ::Elasticsearch::Model
|
17
24
|
include ::Elasticsearch::Model::Callbacks
|
18
25
|
class << self
|
19
26
|
def known_languages
|
20
|
-
select(:locale).uniq.map(&:locale)
|
27
|
+
select(:locale).uniq.map(&:locale).map(&:to_sym)
|
28
|
+
end
|
29
|
+
def locale(locale)
|
30
|
+
where(:locale => locale.to_s)
|
31
|
+
end
|
32
|
+
|
33
|
+
def lookup(keys, *separator)
|
34
|
+
column_name = connection.quote_column_name('key')
|
35
|
+
keys = Array(keys).map! { |key| key.to_s }
|
36
|
+
|
37
|
+
if separator.present?
|
38
|
+
warn "[DEPRECATION] Giving a separator to lookup is deprecated. " <<
|
39
|
+
"You can change the internal separator by overwriting FLATTEN_SEPARATOR."
|
40
|
+
end
|
41
|
+
|
42
|
+
namespace = "#{keys.last}#{I18n::Backend::Flatten::FLATTEN_SEPARATOR}%"
|
43
|
+
where("#{column_name} IN (?) OR #{column_name} LIKE ?", keys, namespace)
|
44
|
+
end
|
45
|
+
|
46
|
+
def available_locales
|
47
|
+
known_languages
|
21
48
|
end
|
22
49
|
end
|
23
50
|
scope :order_alphabetically,
|
@@ -29,18 +56,19 @@ class Apiv1::Translation < ActiveRecord::Base
|
|
29
56
|
scope :by_key,
|
30
57
|
-> (k) { where key: k }
|
31
58
|
|
32
|
-
after_create :_add_to_i18n_backend
|
33
|
-
|
34
59
|
validates :locale,
|
35
60
|
:key,
|
36
|
-
:
|
61
|
+
:value,
|
37
62
|
presence: true
|
38
63
|
|
39
64
|
validates :locale,
|
40
65
|
inclusion: { in: KnownLocales }
|
41
66
|
|
42
67
|
def to_ember_hash
|
43
|
-
{ id: id, locale: locale, key: key, translated_text: translated_text }
|
68
|
+
{ id: id, locale: locale, key: key, translated_text: translated_text, value: value }
|
69
|
+
end
|
70
|
+
def tl_hash
|
71
|
+
{ key => translated_text }
|
44
72
|
end
|
45
73
|
|
46
74
|
def as_indexed_json(options={})
|
@@ -50,8 +78,39 @@ class Apiv1::Translation < ActiveRecord::Base
|
|
50
78
|
translated_text: translated_text
|
51
79
|
}
|
52
80
|
end
|
53
|
-
|
54
|
-
def
|
55
|
-
|
81
|
+
|
82
|
+
def interpolates?(key)
|
83
|
+
self.interpolations.include?(key) if self.interpolations
|
84
|
+
end
|
85
|
+
|
86
|
+
def translated_text
|
87
|
+
read_attribute :value
|
88
|
+
end
|
89
|
+
|
90
|
+
def translated_text=(value)
|
91
|
+
write_attribute(:value, value)
|
92
|
+
end
|
93
|
+
|
94
|
+
def value
|
95
|
+
v = read_attribute(:value)
|
96
|
+
if is_proc
|
97
|
+
Kernel.eval(v)
|
98
|
+
elsif v == FALSY_CHAR
|
99
|
+
false
|
100
|
+
elsif v == TRUTHY_CHAR
|
101
|
+
true
|
102
|
+
else
|
103
|
+
v
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def value=(v)
|
108
|
+
va = v
|
109
|
+
if v === false
|
110
|
+
va = FALSY_CHAR
|
111
|
+
elsif v === true
|
112
|
+
va = TRUTHY_CHAR
|
113
|
+
end
|
114
|
+
write_attribute(:value, va)
|
56
115
|
end
|
57
116
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class I18n::Backend::ActiveRecord
|
2
|
+
include Singleton
|
3
|
+
include I18n::Backend::Base
|
4
|
+
include I18n::Backend::Flatten
|
5
|
+
include I18n::Backend::Memoize
|
6
|
+
include I18n::Backend::Cache
|
7
|
+
def available_locales
|
8
|
+
begin
|
9
|
+
::Apiv1::Translation.available_locales
|
10
|
+
rescue ::ActiveRecord::StatementInvalid
|
11
|
+
[]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def store_translations(locale, data, options = {})
|
16
|
+
escape = options.fetch(:escape, true)
|
17
|
+
flatten_translations(locale, data, escape, false).each do |key, value|
|
18
|
+
::Apiv1::Translation.locale(locale).lookup(expand_keys(key)).delete_all
|
19
|
+
::Apiv1::Translation.create(:locale => locale.to_s, :key => key.to_s, :value => value)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def lookup(locale, key, scope = [], options = {})
|
26
|
+
key = normalize_flat_keys(locale, key, scope, options[:separator])
|
27
|
+
result = ::Apiv1::Translation.locale(locale).lookup(key)
|
28
|
+
|
29
|
+
if result.empty?
|
30
|
+
nil
|
31
|
+
elsif result.first.key == key
|
32
|
+
result.first.value
|
33
|
+
else
|
34
|
+
chop_range = (key.size + I18n::Backend::Flatten::FLATTEN_SEPARATOR.size)..-1
|
35
|
+
result = result.inject({}) do |hash, r|
|
36
|
+
hash[r.key.slice(chop_range)] = r.value
|
37
|
+
hash
|
38
|
+
end
|
39
|
+
result.deep_symbolize_keys
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# For a key :'foo.bar.baz' return ['foo', 'foo.bar', 'foo.bar.baz']
|
44
|
+
def expand_keys(key)
|
45
|
+
key.to_s.split(I18n::Backend::Flatten::FLATTEN_SEPARATOR).inject([]) do |keys, key|
|
46
|
+
keys << [keys.last, key].compact.join(I18n::Backend::Flatten::FLATTEN_SEPARATOR)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -6,7 +6,21 @@
|
|
6
6
|
tr-span en="about us"
|
7
7
|
p.about-abstract
|
8
8
|
<% about_us_sentences.each do |sentence| %>
|
9
|
-
span.sentence
|
9
|
+
span.sentence.spacebar
|
10
10
|
tr-span en=<%= sentence.inspect %>
|
11
11
|
<% end %>
|
12
|
+
<% when :half_half %>
|
13
|
+
.horizontal-cell
|
14
|
+
.row
|
15
|
+
.small-12.medium-6.medium-offset-5.columns.text-right
|
16
|
+
h1.title.capitalize
|
17
|
+
tr-span en="about us"
|
18
|
+
h3.company-bs
|
19
|
+
tr-span en=<%= about_us_sentences.first.inspect %>
|
20
|
+
p.summaries
|
21
|
+
<% about_us_sentences.tail.each do |sentence| %>
|
22
|
+
span.spacebar
|
23
|
+
tr-span en=<%= sentence.inspect %>
|
24
|
+
<% end %>
|
25
|
+
.horizontal-cell.fishing-background
|
12
26
|
<% end %>
|
@@ -68,4 +68,43 @@
|
|
68
68
|
button class="button expand"
|
69
69
|
span.capitalize
|
70
70
|
tr-span en="submit"
|
71
|
+
<% :just_cards %>
|
72
|
+
.business-cards
|
73
|
+
.row
|
74
|
+
each employee in employees
|
75
|
+
.small-6.medium-4.large-4.columns
|
76
|
+
a.vertical-card href=employee.emailTo
|
77
|
+
.media
|
78
|
+
.mug-shot
|
79
|
+
img.th.mugshot src=employee.mugUrl
|
80
|
+
.title
|
81
|
+
.name= employee.personName
|
82
|
+
.job= employee.employeeTitle
|
83
|
+
.info
|
84
|
+
.thing
|
85
|
+
span.bold.capitalize.colon
|
86
|
+
tr-span en="email"
|
87
|
+
span.prespace= employee.email
|
88
|
+
.thing
|
89
|
+
span.bold.capitalize.colon
|
90
|
+
tr-span en="phone"
|
91
|
+
span.prespace= employee.phoneNumber
|
92
|
+
else
|
93
|
+
.small-6.medium-4.large-4.columns.end
|
94
|
+
.vertical-card
|
95
|
+
.mug-shot
|
96
|
+
i.fa.fa-cog.fa-spin.fa-3x
|
97
|
+
.name
|
98
|
+
tr-span en="loading employees"
|
99
|
+
.job
|
100
|
+
tr-span en="or perhaps you don't have employees yet"
|
101
|
+
|
102
|
+
.row
|
103
|
+
.small-12.columns
|
104
|
+
h3.call-us
|
105
|
+
tr-span en=<%= contact_us_call_to_action.inspect %>
|
106
|
+
span.spacebar
|
107
|
+
a.email-us href="mailto:<%= main_contact_email %>"
|
108
|
+
tr-span en="send us an email"
|
109
|
+
span.prespace <%= main_contact_email %>
|
71
110
|
<% end %>
|
@@ -21,6 +21,20 @@
|
|
21
21
|
padding: 15px;
|
22
22
|
color: <%= abstract_text_color %>;
|
23
23
|
}
|
24
|
-
<% when :
|
24
|
+
<% when :half_half %>
|
25
|
+
@include display-flex;
|
26
|
+
@include justify-content(space-between);
|
27
|
+
.horizontal-cell {
|
28
|
+
padding-top: 5rem;
|
29
|
+
padding-bottom: 5rem;
|
30
|
+
width: 50%;
|
31
|
+
}
|
32
|
+
.fishing-background {
|
33
|
+
background: {
|
34
|
+
image: <%= background_image_url %>;
|
35
|
+
size: <%= background_image_size %>;
|
36
|
+
position: <%= background_image_position %>;
|
37
|
+
}
|
38
|
+
}
|
25
39
|
<% end %>
|
26
40
|
}
|
@@ -24,5 +24,76 @@
|
|
24
24
|
.text-left {
|
25
25
|
padding-top: 15px;
|
26
26
|
}
|
27
|
+
<% when :just_cards %>
|
28
|
+
background: {
|
29
|
+
color: #777;
|
30
|
+
}
|
31
|
+
.business-cards {
|
32
|
+
padding-top: 4rem;
|
33
|
+
padding-bottom: 4rem;
|
34
|
+
}
|
35
|
+
.name {
|
36
|
+
font-size: 1.3rem;
|
37
|
+
color: #eee;
|
38
|
+
padding-bottom: 10px;
|
39
|
+
font-weight: bold;
|
40
|
+
text-transform: capitalize;
|
41
|
+
}
|
42
|
+
.job {
|
43
|
+
font-style: italic;
|
44
|
+
color: #eee;
|
45
|
+
text-transform: capitalize;
|
46
|
+
}
|
47
|
+
.info {
|
48
|
+
color: #eee;
|
49
|
+
}
|
50
|
+
.thing {
|
51
|
+
padding-bottom: 5px;
|
52
|
+
}
|
53
|
+
.title {
|
54
|
+
padding-left: 15px;
|
55
|
+
}
|
56
|
+
.mugshot {
|
57
|
+
width: 50px;
|
58
|
+
}
|
59
|
+
.vertical-card {
|
60
|
+
padding: 2rem;
|
61
|
+
background-color: #555;
|
62
|
+
&:hover {
|
63
|
+
background-color: darken(#008cba, 20%);
|
64
|
+
}
|
65
|
+
border: 1px solid #444;
|
66
|
+
color: #eee;
|
67
|
+
height: 200px;
|
68
|
+
@include display-flex;
|
69
|
+
@include flex-direction(column);
|
70
|
+
@include justify-content(space-between);
|
71
|
+
@include transition-property(background-color);
|
72
|
+
@include transition-duration(300ms);
|
73
|
+
@include transition-timing-function(ease-out);
|
74
|
+
}
|
75
|
+
.media {
|
76
|
+
@include display-flex;
|
77
|
+
@include flex-direction(row);
|
78
|
+
@include justify-content(flex-start);
|
79
|
+
}
|
80
|
+
.call-us {
|
81
|
+
margin-top: 3rem;
|
82
|
+
color: #eee;
|
83
|
+
text-align: center;
|
84
|
+
}
|
85
|
+
.email-us {
|
86
|
+
@include transition-property(color);
|
87
|
+
@include transition-duration(300ms);
|
88
|
+
@include transition-timing-function(ease-out);
|
89
|
+
color: #eee;
|
90
|
+
text-decoration: underline;
|
91
|
+
&:hover {
|
92
|
+
color: ligthen(#008cba, 10%);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
.spacebar {
|
96
|
+
margin-left: 15px;
|
97
|
+
}
|
27
98
|
<% end %>
|
28
99
|
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
I18n::Backend::Simple.send(:include, I18n::Backend::Memoize)
|
2
|
+
I18n::Backend::Simple.send(:include, I18n::Backend::Pluralization)
|
3
|
+
I18n::Backend::ActiveRecord.send :include, I18n::Backend::Flatten
|
4
|
+
I18n::Backend::ActiveRecord.send :include, I18n::Backend::Memoize
|
5
|
+
I18n::Backend::ActiveRecord.send :include, I18n::Backend::Cache
|
6
|
+
I18n.cache_store = ActiveSupport::Cache.lookup_store(:memory_store)
|
7
|
+
I18n.backend = I18n::Backend::Chain.new(I18n.backend, I18n::Backend::ActiveRecord.instance)
|
data/generica/config/routes.rb
CHANGED
@@ -11,6 +11,8 @@ Rails.application.routes.draw do
|
|
11
11
|
resources :pictures, only: [:destroy], controller: 'pictures/destroy'
|
12
12
|
resources :taxons, only: [:index], controller: 'taxons/index'
|
13
13
|
resources :taxons, only: [:show], controller: 'taxons/show'
|
14
|
+
resources :taxons, only: [:destroy], controller: 'taxons/destroy'
|
15
|
+
resources :taxons, only: [:update], controller: 'taxons/update'
|
14
16
|
resources :employees, only: [:show], controller: 'employees/show'
|
15
17
|
resources :employees, only: [:index], controller: 'employees/index'
|
16
18
|
resources :translations, only: [:show], controller: 'translations/show'
|
@@ -18,6 +20,8 @@ Rails.application.routes.draw do
|
|
18
20
|
resources :translations, only: [:create], controller: 'translations/create'
|
19
21
|
resources :translations, only: [:update], controller: 'translations/update'
|
20
22
|
resources :i18n_translations, only: [:index], controller: 'i18n_translations/index'
|
23
|
+
resources :messages, only: [:create], controller: 'messages/create'
|
24
|
+
resources :messages, only: [:index], controller: 'messages/index'
|
21
25
|
end
|
22
26
|
|
23
27
|
namespace :admin do
|
@@ -26,9 +30,8 @@ Rails.application.routes.draw do
|
|
26
30
|
|
27
31
|
resources :admin_employees, only: [:create], controller: 'employees/create'
|
28
32
|
|
29
|
-
resources :
|
33
|
+
resources :admin_taxons, only: [:create], controller: 'taxons/create'
|
30
34
|
resources :taxons, only: [:update], controller: 'taxons/update'
|
31
|
-
resources :taxons, only: [:destroy], controller: 'taxons/destroy'
|
32
35
|
|
33
36
|
resources :admin_sessions, only: [:create], controller: 'sessions/create'
|
34
37
|
end
|
@@ -3,7 +3,9 @@ class CreateApiv1Translations < ActiveRecord::Migration
|
|
3
3
|
create_table :apiv1_translations do |t|
|
4
4
|
t.string :locale, null: false
|
5
5
|
t.string :key, null: false
|
6
|
-
t.
|
6
|
+
t.text :value
|
7
|
+
t.text :interpolations
|
8
|
+
t.boolean :is_proc, default: false
|
7
9
|
t.timestamps
|
8
10
|
end
|
9
11
|
add_index :apiv1_translations, [:key, :locale], unique: true
|
data/generica/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20141107174821) do
|
15
15
|
|
16
16
|
create_table "admin_users", force: true do |t|
|
17
17
|
t.string "email", null: false
|
@@ -44,7 +44,6 @@ ActiveRecord::Schema.define(version: 20141021003734) do
|
|
44
44
|
t.string "employee_title"
|
45
45
|
t.string "email"
|
46
46
|
t.string "phone_number"
|
47
|
-
t.integer "picture_id"
|
48
47
|
t.datetime "created_at"
|
49
48
|
t.datetime "updated_at"
|
50
49
|
end
|
@@ -60,22 +59,15 @@ ActiveRecord::Schema.define(version: 20141021003734) do
|
|
60
59
|
add_index "apiv1_listings_taxons", ["listing_id", "listing_type"], name: "index_apiv1_listings_taxons_on_listing_id_and_listing_type", using: :btree
|
61
60
|
add_index "apiv1_listings_taxons", ["taxon_id"], name: "index_apiv1_listings_taxons_on_taxon_id", using: :btree
|
62
61
|
|
63
|
-
create_table "
|
64
|
-
t.
|
65
|
-
t.string "
|
66
|
-
t.
|
67
|
-
t.string "price_unit"
|
68
|
-
t.string "incoterm"
|
69
|
-
t.string "location_name"
|
70
|
-
t.string "buyer_company"
|
71
|
-
t.string "buyer_email"
|
62
|
+
create_table "apiv1_messages", force: true do |t|
|
63
|
+
t.string "from_company"
|
64
|
+
t.string "sender_email"
|
65
|
+
t.string "subject_text"
|
72
66
|
t.text "message"
|
73
67
|
t.datetime "created_at"
|
74
68
|
t.datetime "updated_at"
|
75
69
|
end
|
76
70
|
|
77
|
-
add_index "apiv1_offers", ["listing_id", "listing_type"], name: "index_apiv1_offers_on_listing_id_and_listing_type", using: :btree
|
78
|
-
|
79
71
|
create_table "apiv1_pictures", force: true do |t|
|
80
72
|
t.integer "depictable_id"
|
81
73
|
t.string "depictable_type"
|
@@ -100,6 +92,7 @@ ActiveRecord::Schema.define(version: 20141021003734) do
|
|
100
92
|
t.text "others"
|
101
93
|
t.datetime "created_at"
|
102
94
|
t.datetime "updated_at"
|
95
|
+
t.integer "showcase_order"
|
103
96
|
end
|
104
97
|
|
105
98
|
add_index "apiv1_products", ["permalink"], name: "index_apiv1_products_on_permalink", using: :btree
|
@@ -120,9 +113,11 @@ ActiveRecord::Schema.define(version: 20141021003734) do
|
|
120
113
|
add_index "apiv1_taxons", ["permalink", "root_genus"], name: "index_apiv1_taxons_on_permalink_and_root_genus", unique: true, using: :btree
|
121
114
|
|
122
115
|
create_table "apiv1_translations", force: true do |t|
|
123
|
-
t.string "locale",
|
124
|
-
t.string "key",
|
125
|
-
t.
|
116
|
+
t.string "locale", null: false
|
117
|
+
t.string "key", null: false
|
118
|
+
t.text "value"
|
119
|
+
t.text "interpolations"
|
120
|
+
t.boolean "is_proc", default: false
|
126
121
|
t.datetime "created_at"
|
127
122
|
t.datetime "updated_at"
|
128
123
|
end
|