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
@@ -1,9 +1,8 @@
|
|
1
|
-
if
|
1
|
+
if rootTaxon.children.isPending
|
2
2
|
.tree-taxon-li
|
3
|
-
|
4
|
-
.
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
each taxon in taxons
|
3
|
+
.view
|
4
|
+
span.spacebar
|
5
|
+
i.fa.fa-spin.fa-cog
|
6
|
+
tr-span en="loading"
|
7
|
+
each taxon in rootTaxon.children
|
9
8
|
tree-taxon-li taxon=taxon activeTaxons=activeTaxons adminMode=adminMode
|
@@ -1,3 +1,3 @@
|
|
1
1
|
h2.wrapper-title
|
2
|
-
tr-span en="
|
3
|
-
tree-taxon-ul
|
2
|
+
tr-span en="categories"
|
3
|
+
tree-taxon-ul rootTaxon=rootTaxon activeTaxons=activeTaxons adminMode=adminMode
|
@@ -0,0 +1,32 @@
|
|
1
|
+
.row
|
2
|
+
.small-12.columns
|
3
|
+
h2.capitalize.align-right
|
4
|
+
tr-span en="our team"
|
5
|
+
.row
|
6
|
+
each contact in model
|
7
|
+
.small-12.medium-6.columns
|
8
|
+
.business-card.panel.radius
|
9
|
+
.text-right
|
10
|
+
.name.capitalize= contact.personName
|
11
|
+
.job= contact.employeeTitle
|
12
|
+
|
13
|
+
.text-left
|
14
|
+
.info
|
15
|
+
span.bold.capitalize.colon
|
16
|
+
tr-span en="email"
|
17
|
+
span.prespace= contact.email
|
18
|
+
.info
|
19
|
+
span.bold.capitalize.colon
|
20
|
+
tr-span en="phone"
|
21
|
+
span.prespace= contact.phoneNumber
|
22
|
+
|
23
|
+
else
|
24
|
+
.small-12.medium-6.columns
|
25
|
+
.business-card.panel.radius
|
26
|
+
.text-right
|
27
|
+
.name
|
28
|
+
i.fa.fa-cog.fa-spin
|
29
|
+
span.capitalize.prespace
|
30
|
+
tr-span en="loading employees"
|
31
|
+
.job
|
32
|
+
tr-span en="or perhaps no employees have been listed"
|
@@ -0,0 +1,43 @@
|
|
1
|
+
.row
|
2
|
+
.small-12.columns
|
3
|
+
h2.capitalize.white.align-left
|
4
|
+
tr-span en="contact us"
|
5
|
+
if alreadySubmitted
|
6
|
+
.thank-you-card
|
7
|
+
tr-span en="your message has been submitted"
|
8
|
+
|
9
|
+
else
|
10
|
+
form-for errors=failureReason submit="formSubmitted"
|
11
|
+
.input-section attr-name="fromCompany"
|
12
|
+
label.form-label
|
13
|
+
span.capitalize.white
|
14
|
+
span.asterisk
|
15
|
+
tr-span en="your company"
|
16
|
+
Ember.TextField value=model.fromCompany type="text" placeholder="ex. Jack Smith"
|
17
|
+
|
18
|
+
.input-section attr-name="senderEmail"
|
19
|
+
label.form-label
|
20
|
+
span.capitalize.white
|
21
|
+
span.asterisk
|
22
|
+
tr-span en="company email"
|
23
|
+
Ember.TextField value=model.senderEmail type="email" placeholder="ex. jsmith@gmail.com"
|
24
|
+
|
25
|
+
.input-section attr-name="subjectText"
|
26
|
+
label.form-label
|
27
|
+
span.capitalize.white
|
28
|
+
span.asterisk
|
29
|
+
tr-span en="subject"
|
30
|
+
Ember.TextField value=model.subjectText type="text"
|
31
|
+
|
32
|
+
.input-section attr-name="message"
|
33
|
+
label.form-label
|
34
|
+
span.capitalize.white
|
35
|
+
span.asterisk
|
36
|
+
tr-span en="message"
|
37
|
+
Ember.TextArea value=model.message
|
38
|
+
|
39
|
+
.button-forms
|
40
|
+
promise-button model=model class="button expand"
|
41
|
+
span.capitalize
|
42
|
+
i.fa.fa-check
|
43
|
+
tr-span en="submit"
|
@@ -40,6 +40,14 @@
|
|
40
40
|
tr-span en="quality"
|
41
41
|
dd
|
42
42
|
span= product.quality
|
43
|
+
if product.taxons
|
44
|
+
.row
|
45
|
+
.small-12.columns
|
46
|
+
h4.tags.capitalize
|
47
|
+
tr-span en="category tags"
|
48
|
+
.taxon-tags
|
49
|
+
each taxon in product.taxons
|
50
|
+
span.tag= taxon.taxonName
|
43
51
|
if product.others
|
44
52
|
.row
|
45
53
|
.small-12.columns
|
@@ -1,4 +1,7 @@
|
|
1
1
|
class Apiv1.FormDataTransformer
|
2
|
+
_is-integer = (number) ->
|
3
|
+
_.isFinite(parseInt number) and (parseFloat(number) % 1 is 0)
|
4
|
+
|
2
5
|
_is-form-data-primitive = (data) ->
|
3
6
|
(data instanceof File) or (typeof data is "string") or (typeof data is "number")
|
4
7
|
|
@@ -6,6 +9,7 @@ class Apiv1.FormDataTransformer
|
|
6
9
|
return key if Ember.is-blank pre
|
7
10
|
pre + "[#{key}]"
|
8
11
|
|
12
|
+
|
9
13
|
@shallowify = (hash, pre="") ->
|
10
14
|
return {} unless hash
|
11
15
|
output = {}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
.admin-messages-index {
|
2
|
+
.actions {
|
3
|
+
@include display-flex;
|
4
|
+
@include justify-content(space-between);
|
5
|
+
@include flex-direction(row);
|
6
|
+
a {
|
7
|
+
display: block;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
.summary {
|
11
|
+
@include display-flex;
|
12
|
+
@include justify-content(flex-start);
|
13
|
+
@include flex-direction(column);
|
14
|
+
padding: 0px 15px 15px 15px;
|
15
|
+
}
|
16
|
+
.view,
|
17
|
+
.date {
|
18
|
+
padding: 15px;
|
19
|
+
font-size: 1.25rem;
|
20
|
+
}
|
21
|
+
.media-text {
|
22
|
+
padding-left: 15px;
|
23
|
+
}
|
24
|
+
.admin-message-slice {
|
25
|
+
@include transition-property(background-color);
|
26
|
+
@include transition-duration(300ms);
|
27
|
+
@include transition-timing-function(ease-out);
|
28
|
+
border-bottom: 1px solid #444;
|
29
|
+
background-color: #ddd;
|
30
|
+
&:hover {
|
31
|
+
background-color: lighten(#ddd, 10%);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
@@ -24,4 +24,28 @@
|
|
24
24
|
font-size: 2rem;
|
25
25
|
text-transform: capitalize;
|
26
26
|
}
|
27
|
+
.taxon-tags {
|
28
|
+
padding-bottom: 15px;
|
29
|
+
}
|
30
|
+
.tag {
|
31
|
+
@include transition-property(background-color);
|
32
|
+
@include transition-duration(300ms);
|
33
|
+
@include transition-timing-function(ease-out);
|
34
|
+
background: {
|
35
|
+
color: darken(red, 25%);
|
36
|
+
}
|
37
|
+
&:hover {
|
38
|
+
background-color: darken(red, 15%);
|
39
|
+
}
|
40
|
+
&:before {
|
41
|
+
content: "+";
|
42
|
+
}
|
43
|
+
font-size: 1.15rem;
|
44
|
+
color: #ddd;
|
45
|
+
padding-left: 5px;
|
46
|
+
padding-right: 10px;
|
47
|
+
padding-top: 5px;
|
48
|
+
padding-bottom: 5px;
|
49
|
+
margin-right: 10px;
|
50
|
+
}
|
27
51
|
}
|
@@ -11,8 +11,8 @@
|
|
11
11
|
}
|
12
12
|
}
|
13
13
|
.product-image {
|
14
|
-
width:
|
15
|
-
max-height:
|
14
|
+
width: 100px;
|
15
|
+
max-height: 200px;
|
16
16
|
}
|
17
17
|
.media-texts {
|
18
18
|
font-size: 1.45rem;
|
@@ -31,4 +31,29 @@
|
|
31
31
|
@include align-items(center);
|
32
32
|
border-bottom: 1px solid #bbb;
|
33
33
|
}
|
34
|
+
.taxon-tags {
|
35
|
+
margin-top: 5px;
|
36
|
+
margin-bottom: 5px;
|
37
|
+
}
|
38
|
+
.tag {
|
39
|
+
@include transition-property(background-color);
|
40
|
+
@include transition-duration(300ms);
|
41
|
+
@include transition-timing-function(ease-out);
|
42
|
+
background: {
|
43
|
+
color: #777;
|
44
|
+
}
|
45
|
+
&:hover {
|
46
|
+
background-color: #999;
|
47
|
+
}
|
48
|
+
&:before {
|
49
|
+
content: "+";
|
50
|
+
}
|
51
|
+
font-size: 1.15rem;
|
52
|
+
color: #ddd;
|
53
|
+
padding-left: 5px;
|
54
|
+
padding-right: 10px;
|
55
|
+
padding-top: 5px;
|
56
|
+
padding-bottom: 5px;
|
57
|
+
margin-right: 10px;
|
58
|
+
}
|
34
59
|
}
|
@@ -3,12 +3,10 @@
|
|
3
3
|
margin-left: 0px;
|
4
4
|
}
|
5
5
|
.expanded > .taxon-interactor {
|
6
|
-
|
7
|
-
color: lighten(#ddd, 10%);
|
6
|
+
color: darken(#43ac6a, 10%)
|
8
7
|
}
|
9
8
|
.selected > .taxon-interactor {
|
10
|
-
|
11
|
-
color: lighten(#ddd, 10%);
|
9
|
+
color: darken(#43ac6a, 10%);
|
12
10
|
}
|
13
11
|
.taxon-interactor {
|
14
12
|
@include transition-property(background-color);
|
@@ -16,27 +14,30 @@
|
|
16
14
|
@include transition-timing-function(ease-out);
|
17
15
|
background-color: #ddd;
|
18
16
|
&.admin-mode {
|
19
|
-
|
20
|
-
color: #ddd;
|
21
|
-
}
|
22
|
-
@media #{$small-only} {
|
23
|
-
padding-left: 5px;
|
24
|
-
}
|
25
|
-
@media #{$medium-only} {
|
26
|
-
padding-left: 10px;
|
27
|
-
}
|
28
|
-
@media #{$large-up} {
|
29
|
-
padding-left: 15px;
|
17
|
+
color: #333;
|
30
18
|
}
|
19
|
+
|
31
20
|
&:hover {
|
32
21
|
&:not(.admin-mode) {
|
33
|
-
background-color: #
|
22
|
+
background-color: #e1e1e1;
|
34
23
|
}
|
35
24
|
&.admin-mode {
|
36
|
-
background-color:
|
25
|
+
background-color: darken(#43ac6a, 10%);
|
26
|
+
color: #eee;
|
37
27
|
}
|
38
28
|
}
|
39
29
|
}
|
30
|
+
.new-child-taxon {
|
31
|
+
@media #{$small-only} {
|
32
|
+
margin-left: 5px;
|
33
|
+
}
|
34
|
+
@media #{$medium-only} {
|
35
|
+
margin-left: 10px;
|
36
|
+
}
|
37
|
+
@media #{$large-up} {
|
38
|
+
margin-left: 15px;
|
39
|
+
}
|
40
|
+
}
|
40
41
|
.tree-taxon-ul {
|
41
42
|
list-style: none;
|
42
43
|
}
|
@@ -56,8 +57,7 @@
|
|
56
57
|
@include flex-direction(row);
|
57
58
|
@include justify-content(space-between);
|
58
59
|
font-size: 1.25rem;
|
59
|
-
|
60
|
-
padding-bottom: 10px;
|
60
|
+
|
61
61
|
}
|
62
62
|
.taxon-name {
|
63
63
|
padding-left: 10px;
|
@@ -70,7 +70,7 @@
|
|
70
70
|
color: #ddd;
|
71
71
|
background-color: darken(red, 10%);
|
72
72
|
}
|
73
|
-
color: darken(red, 10%);
|
73
|
+
color: darken(red, 10%);padding-right: 15px;
|
74
74
|
}
|
75
75
|
.edit {
|
76
76
|
@include transition-property(background-color);
|
@@ -86,7 +86,22 @@
|
|
86
86
|
color: darken(green, 5%);
|
87
87
|
}
|
88
88
|
}
|
89
|
-
.view
|
90
|
-
|
89
|
+
.view,
|
90
|
+
.edit,
|
91
|
+
.delete {
|
92
|
+
@media #{$small-only} {
|
93
|
+
padding-left: 5px;
|
94
|
+
padding-right: 5px;
|
95
|
+
}
|
96
|
+
@media #{$medium-only} {
|
97
|
+
padding-left: 10px;
|
98
|
+
padding-right: 10px;
|
99
|
+
}
|
100
|
+
@media #{$large-up} {
|
101
|
+
padding-left: 15px;
|
102
|
+
padding-right: 15px;
|
103
|
+
}
|
104
|
+
padding-top: 10px;
|
105
|
+
padding-bottom: 10px;
|
91
106
|
}
|
92
107
|
}
|
@@ -15,4 +15,28 @@
|
|
15
15
|
margin-bottom: 15px;
|
16
16
|
font-size: 1.45rem;
|
17
17
|
}
|
18
|
+
.taxon-tags {
|
19
|
+
padding-bottom: 15px;
|
20
|
+
}
|
21
|
+
.tag {
|
22
|
+
@include transition-property(background-color);
|
23
|
+
@include transition-duration(300ms);
|
24
|
+
@include transition-timing-function(ease-out);
|
25
|
+
background: {
|
26
|
+
color: darken(red, 25%);
|
27
|
+
}
|
28
|
+
&:hover {
|
29
|
+
background-color: darken(red, 15%);
|
30
|
+
}
|
31
|
+
&:before {
|
32
|
+
content: "+";
|
33
|
+
}
|
34
|
+
font-size: 1.15rem;
|
35
|
+
color: #ddd;
|
36
|
+
padding-left: 5px;
|
37
|
+
padding-right: 10px;
|
38
|
+
padding-top: 5px;
|
39
|
+
padding-bottom: 5px;
|
40
|
+
margin-right: 10px;
|
41
|
+
}
|
18
42
|
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Admin::Taxons::CreateController < Admin::BaseController
|
2
|
+
def create
|
3
|
+
if _taxon_creation_success?
|
4
|
+
_taxon_factory.save!
|
5
|
+
render json: _taxon_hash
|
6
|
+
else
|
7
|
+
render json: _error_hash, status: :expectation_failed
|
8
|
+
end
|
9
|
+
end
|
10
|
+
private
|
11
|
+
def _taxon_creation_success?
|
12
|
+
_taxon_factory.satisfy_specifications?
|
13
|
+
end
|
14
|
+
def _taxon_hash
|
15
|
+
_taxon_factory.taxon_hash
|
16
|
+
end
|
17
|
+
def _error_hash
|
18
|
+
_taxon_factory.error_hash
|
19
|
+
end
|
20
|
+
def _taxon_factory
|
21
|
+
@taxon_factory ||= Admin::TaxonFactory.new _taxon_params
|
22
|
+
end
|
23
|
+
def _taxon_params
|
24
|
+
params.require(:admin_taxon)
|
25
|
+
end
|
26
|
+
end
|