cloudrider 0.3.0 → 0.3.20
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 +1 -0
- data/generica/.gitignore +18 -0
- data/generica/Gemfile +8 -1
- data/generica/Gemfile.lock +3 -0
- data/generica/app/assets/javascripts/apiv1.js.ls +6 -1
- data/generica/app/assets/javascripts/components/offers-summary.js.em +2 -0
- data/generica/app/assets/javascripts/components/picture-chunk.js.em +17 -0
- data/generica/app/assets/javascripts/components/pictures-group.js.em +21 -0
- data/generica/app/assets/javascripts/components/search-and-filter.js.em +4 -0
- data/generica/app/assets/javascripts/components/site-nav.js.em +5 -1
- data/generica/app/assets/javascripts/components/taggable-field.js.em +28 -0
- data/generica/app/assets/javascripts/components/tree/taxon-li.js.em +6 -2
- data/generica/app/assets/javascripts/controllers/index_controller.js.em +19 -2
- data/generica/app/assets/javascripts/controllers/modals/login_controller.js.em +23 -9
- data/generica/app/assets/javascripts/controllers/modals/register_controller.js.em +24 -0
- data/generica/app/assets/javascripts/controllers/products/index_controller.js.em +23 -13
- data/generica/app/assets/javascripts/controllers/products/product/offers/new_controller.js.em +17 -0
- data/generica/app/assets/javascripts/controllers/users/offers/index_controller.js.em +10 -0
- data/generica/app/assets/javascripts/controllers/users/product/edit_controller.js.em +31 -0
- data/generica/app/assets/javascripts/controllers/users/products/index_controller.js.em +8 -0
- data/generica/app/assets/javascripts/controllers/users/products/new_controller.js.em +22 -0
- data/generica/app/assets/javascripts/controllers/users/products/slice_controller.js.em +4 -0
- data/generica/app/assets/javascripts/helpers/filte_previewer.js.ls +21 -0
- data/generica/app/assets/javascripts/helpers/listing_picture.js.em +17 -0
- data/generica/app/assets/javascripts/models/offer.js.em +9 -8
- data/generica/app/assets/javascripts/models/user.js.em +12 -0
- data/generica/app/assets/javascripts/models/users/product.js.em +12 -0
- data/generica/app/assets/javascripts/routes/application_route.js.em +10 -2
- data/generica/app/assets/javascripts/routes/products/index_route.js.em +23 -2
- data/generica/app/assets/javascripts/routes/products/product/offers/new_route.js.em +18 -0
- data/generica/app/assets/javascripts/routes/users/offers/index_route.js.em +1 -0
- data/generica/app/assets/javascripts/routes/users/product_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/users/products/index_route.js.em +3 -0
- data/generica/app/assets/javascripts/routes/users/products/new_route.js.em +3 -0
- data/generica/app/assets/javascripts/templates/admin/product/edit.emblem +2 -0
- data/generica/app/assets/javascripts/templates/admin/products/_form-core.emblem +44 -0
- data/generica/app/assets/javascripts/templates/admin/products/new.emblem +4 -42
- data/generica/app/assets/javascripts/templates/components/offers-summary.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/picture-chunk.emblem +9 -0
- data/generica/app/assets/javascripts/templates/components/pictures-group.emblem +6 -0
- data/generica/app/assets/javascripts/templates/components/search-and-filter.emblem +5 -1
- data/generica/app/assets/javascripts/templates/components/taggable-field.emblem +1 -0
- data/generica/app/assets/javascripts/templates/modals/register.emblem +57 -0
- data/generica/app/assets/javascripts/templates/products/product/offers/_anonymous-form.emblem +11 -0
- data/generica/app/assets/javascripts/templates/products/product/offers/_offer-form.emblem +55 -0
- data/generica/app/assets/javascripts/templates/products/product/offers/new.emblem +37 -0
- data/generica/app/assets/javascripts/templates/products/product/show.emblem +26 -1
- data/generica/app/assets/javascripts/templates/users.emblem +24 -0
- data/generica/app/assets/javascripts/templates/users/index.emblem +3 -0
- data/generica/app/assets/javascripts/templates/users/offers/index.emblem +25 -0
- data/generica/app/assets/javascripts/templates/users/offers/slice.emblem +31 -0
- data/generica/app/assets/javascripts/templates/users/product/edit.emblem +82 -0
- data/generica/app/assets/javascripts/templates/users/products/index.emblem +22 -0
- data/generica/app/assets/javascripts/templates/users/products/new.emblem +28 -0
- data/generica/app/assets/javascripts/templates/users/products/slice.emblem +27 -0
- data/generica/app/assets/stylesheets/apiv1/_application.css.scss +4 -0
- data/generica/app/assets/stylesheets/apiv1/components/_offers-summary.css.scss +20 -0
- data/generica/app/assets/stylesheets/apiv1/components/_pictures-group.css.scss +32 -0
- data/generica/app/assets/stylesheets/apiv1/components/_taggable-field.css.scss +32 -0
- data/generica/app/assets/stylesheets/apiv1/products/product/offers/_new.css.scss +8 -0
- data/generica/app/controllers/admin/base_controller.rb +1 -1
- data/generica/app/controllers/admin/sessions/destroy_controller.rb +16 -0
- data/generica/app/controllers/apiv1/offers/create_controller.rb +30 -0
- data/generica/app/controllers/apiv1/offers/index_controller.rb +22 -0
- data/generica/app/controllers/apiv1/offers/show_controller.rb +12 -0
- data/generica/app/controllers/apiv1/products/destroy_controller.rb +6 -0
- data/generica/app/controllers/apiv1/products/index_controller.rb +8 -2
- data/generica/app/controllers/apiv1/products/show_controller.rb +7 -3
- data/generica/app/controllers/apiv1/taxons/index_controller.rb +5 -1
- data/generica/app/controllers/apiv1/users/create_controller.rb +17 -0
- data/generica/app/controllers/apiv1/users/show_controller.rb +12 -0
- data/generica/app/controllers/apiv1/users_controller.rb +9 -0
- data/generica/app/controllers/application_controller.rb +3 -0
- data/generica/app/controllers/users/offers/create_controller.rb +26 -0
- data/generica/app/controllers/users/products/create_controller.rb +26 -0
- data/generica/app/controllers/users/products/update_controller.rb +35 -0
- data/generica/app/mailers/apiv1/aggregate_mailer.rb +13 -0
- data/generica/app/mailers/apiv1/aggregate_mailer/summary_context.rb +121 -0
- data/generica/app/mailers/apiv1/notifications_mailer.rb +19 -0
- data/generica/app/mailers/apiv1/notifications_mailer/new_offer_context.rb +53 -0
- data/generica/app/models/admin/user.rb +43 -2
- data/generica/app/models/apiv1/attachment.rb +2 -0
- data/generica/app/models/apiv1/email_object.rb +35 -0
- data/generica/app/models/apiv1/email_request.rb +107 -0
- data/generica/app/models/apiv1/offer_message.rb +53 -0
- data/generica/app/models/apiv1/offer_postboy.rb +33 -0
- data/generica/app/models/apiv1/picture.rb +2 -0
- data/generica/app/models/apiv1/product.rb +28 -6
- data/generica/app/models/apiv1/products/offer_message_factory.rb +13 -0
- data/generica/app/models/apiv1/products_machine.rb +8 -2
- data/generica/app/models/apiv1/taxon.rb +1 -1
- data/generica/app/models/apiv1/users/product_factory.rb +22 -0
- data/generica/app/models/apiv1/users/product_relationship.rb +19 -0
- data/generica/app/models/users/products/offer_factory.rb +40 -0
- data/generica/app/varissets/javascripts/templates/application.emblem.erb +2 -2
- data/generica/app/varissets/javascripts/templates/components/offers-overview.emblem.erb +1 -0
- data/generica/app/varissets/javascripts/templates/components/search-and-filter.emblem.erb +33 -0
- data/generica/app/varissets/javascripts/templates/components/site-nav.emblem.erb +8 -0
- data/generica/app/varissets/javascripts/templates/components/taggable-field.emblem.erb +11 -0
- data/generica/app/varissets/javascripts/templates/modals/login.emblem.erb +36 -0
- data/generica/app/varissets/javascripts/templates/products.emblem.erb +4 -0
- data/generica/app/varissets/javascripts/templates/products/index.emblem.erb +17 -0
- data/generica/app/varissets/javascripts/templates/products/product/offers/_anonymous-form.emblem.erb +11 -0
- data/generica/app/varissets/javascripts/templates/products/product/offers/_offer-form.emblem.erb +55 -0
- data/generica/app/varissets/javascripts/templates/products/product/offers/new.emblem.erb +37 -0
- data/generica/app/varissets/javascripts/templates/products/product/show.emblem.erb +108 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_offers-overview.css.scss.erb +3 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_offers_overview.css.scss.erb +3 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_search-and-filter.css.scss.erb +15 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_site-footer.css.scss.erb +23 -0
- data/generica/app/varissets/stylesheets/apiv1/components/_taggable-field.css.scss.erb +32 -0
- data/generica/app/views/apiv1/home/index.html.haml +3 -1
- data/generica/app/views/apiv1/layouts/application.html.haml +37 -2
- data/generica/config/{database.yml.erb → database.yml.str} +3 -3
- data/generica/config/email.yml +11 -0
- data/generica/config/email_slave.god +9 -0
- data/generica/config/initializers/premailer.rb +1 -0
- data/generica/config/initializers/squash.rb.erb +3 -0
- data/generica/config/nginx.conf.erb +4 -4
- data/generica/config/routes.rb +14 -0
- data/generica/db/migrate/20141114213427_add_user_rank_to_admin_users.rb +9 -0
- data/generica/db/migrate/20141114225019_create_apiv1_users_products.rb +9 -0
- data/generica/db/migrate/20141116053522_create_apiv1_offer_messages.rb +16 -0
- data/generica/db/migrate/20141116235011_add_deleted_at_to_apiv1_products.rb +5 -0
- data/generica/db/migrate/20141116235209_add_deleted_at_to_apiv1_offer_messages.rb +5 -0
- data/generica/db/migrate/20141116235651_add_deleted_at_to_apiv1_pictures.rb +5 -0
- data/generica/db/migrate/20141116235808_add_deleted_at_to_apiv1_attachments.rb +5 -0
- data/generica/db/migrate/20141127230304_create_apiv1_email_requests.rb +16 -0
- data/generica/db/migrate/20141127230455_create_apiv1_email_objects.rb +11 -0
- data/generica/lib/generica/assets_unretardifier.rb +32 -0
- data/generica/lib/generica/email_slave.rb +92 -0
- data/generica/lib/tasks/email_slave.rake +11 -0
- data/generica/lib/tasks/production.rake +1 -1
- data/generica/public/tests/bermese.jpg +0 -0
- data/generica/public/tests/chow.jpg +0 -0
- data/generica/public/tests/malamute.jpg +0 -0
- data/generica/public/tests/malamute2.JPG +0 -0
- data/generica/spec/controllers/apiv1/users/create_controller_spec.rb +17 -0
- data/generica/spec/controllers/users/products/create_controller_spec.rb +31 -0
- data/generica/spec/mailers/apiv1/aggregate_mailer_spec.rb +29 -0
- data/generica/spec/models/apiv1/email_request_spec.rb +4 -0
- data/generica/spec/models/apiv1/offer_postboy_spec.rb +22 -0
- data/generica/spec/models/apiv1/product_spec.rb +1 -0
- data/generica/spec/models/apiv1/products/offer_message_factory_spec.rb +37 -0
- data/generica/spec/models/apiv1/products_machine_spec.rb +77 -0
- data/generica/spec/models/apiv1/users/product_factory_spec.rb +47 -0
- data/generica/spec/models/users/products/offer_factory_spec.rb +38 -0
- data/generica/test/mailers/.keep +0 -0
- data/generica/test/mailers/previews/apiv1/aggregate_preview.rb +6 -0
- data/generica/test/mailers/previews/apiv1/notifications_preview.rb +5 -0
- data/lib/cloudrider.rb +1 -1
- data/lib/cloudrider/apiv1/base.rb +2 -2
- data/lib/cloudrider/apiv1/login_modal_emblem.rb +25 -0
- data/lib/cloudrider/apiv1/offers_anonymous_form_partial_emblem.rb +12 -0
- data/lib/cloudrider/apiv1/offers_new_emblem.rb +15 -0
- data/lib/cloudrider/apiv1/offers_overview_component.rb +8 -0
- data/lib/cloudrider/apiv1/offers_overview_sass.rb +8 -0
- data/lib/cloudrider/apiv1/product_show_emblem.rb +31 -0
- data/lib/cloudrider/apiv1/products_emblem.rb +11 -0
- data/lib/cloudrider/apiv1/products_index_emblem.rb +14 -0
- data/lib/cloudrider/apiv1/search_and_filter_component.rb +11 -0
- data/lib/cloudrider/apiv1/search_and_filter_sass.rb +11 -0
- data/lib/cloudrider/apiv1/site_footer_component.rb +7 -7
- data/lib/cloudrider/apiv1/site_footer_sass.rb +9 -0
- data/lib/cloudrider/application_commander.rb +46 -34
- data/lib/cloudrider/backend_commander.rb +15 -9
- data/lib/cloudrider/protofile.rb +18 -2
- data/lib/cloudrider/protosite.example.json +26 -0
- data/lib/cloudrider/protosite.rb +66 -0
- data/lib/cloudrider/serverside/base.rb +2 -2
- data/lib/cloudrider/serverside/database_yaml.rb +9 -4
- data/lib/cloudrider/serverside/nginx_conf.rb +7 -2
- data/lib/cloudrider/serverside/squash_ruby.rb +14 -0
- data/lib/cloudrider/serverside/unicorn_conf_ruby.rb +2 -1
- data/lib/cloudrider/version.rb +1 -1
- data/lib/cloudrider/web_firm.rb +16 -0
- data/lib/cloudrider/web_firm/component_architect.rb +23 -0
- data/lib/cloudrider/web_firm/page_designer.rb +13 -0
- data/lib/cloudrider/web_firm/project_lead.rb +30 -0
- data/lib/cloudrider/web_firm/scumbag_engineer.rb +40 -0
- data/lib/cloudrider/web_firm/support_intern.rb +113 -0
- data/lib/generators/cloudrider/server/server_generator.rb +4 -8
- data/lib/generators/cloudrider/website/website_generator.rb +25 -0
- data/spec/cloudrider/protosite_spec.rb +63 -0
- data/vanilla/.bowerrc +4 -0
- data/vanilla/.editorconfig +33 -0
- data/vanilla/.ember-cli +9 -0
- data/vanilla/.gitignore +17 -0
- data/vanilla/.jshintrc +32 -0
- data/vanilla/.travis.yml +16 -0
- data/vanilla/Brocfile.js +20 -0
- data/vanilla/README.md +51 -0
- data/vanilla/app/app.js +16 -0
- data/vanilla/app/components/.gitkeep +0 -0
- data/vanilla/app/controllers/.gitkeep +0 -0
- data/vanilla/app/controllers/admin.coffee +5 -0
- data/vanilla/app/helpers/.gitkeep +0 -0
- data/vanilla/app/index.html +21 -0
- data/vanilla/app/models/.gitkeep +0 -0
- data/vanilla/app/router.js +11 -0
- data/vanilla/app/routes/.gitkeep +0 -0
- data/vanilla/app/styles/.gitkeep +0 -0
- data/vanilla/app/styles/app.css +3 -0
- data/vanilla/app/templates/.gitkeep +0 -0
- data/vanilla/app/templates/application.hbs +3 -0
- data/vanilla/app/templates/components/.gitkeep +0 -0
- data/vanilla/app/views/.gitkeep +0 -0
- data/vanilla/bower.json +17 -0
- data/vanilla/config/environment.js +47 -0
- data/vanilla/package.json +39 -0
- data/vanilla/public/.gitkeep +0 -0
- data/vanilla/public/crossdomain.xml +15 -0
- data/vanilla/public/robots.txt +3 -0
- data/vanilla/testem.json +11 -0
- data/vanilla/tests/.jshintrc +74 -0
- data/vanilla/tests/helpers/resolver.js +11 -0
- data/vanilla/tests/helpers/start-app.js +25 -0
- data/vanilla/tests/index.html +45 -0
- data/vanilla/tests/test-helper.js +12 -0
- data/vanilla/tests/unit/.gitkeep +0 -0
- data/vanilla/tests/unit/controllers/admin-test.coffee +12 -0
- data/vanilla/vendor/.gitkeep +0 -0
- metadata +189 -5
- data/generica/app/views/layouts/application.html.erb +0 -14
- data/lib/cloudrider/master_context.rb +0 -105
@@ -0,0 +1,11 @@
|
|
1
|
+
.somesort-of-request
|
2
|
+
button.button.secondary.capitalize click="displayModal 'login'"
|
3
|
+
tr-span en="login if you have an account"
|
4
|
+
.somesort-of-request
|
5
|
+
button.button.secondary.capitalize click="displayModal 'register'"
|
6
|
+
tr-span en="or register an account"
|
7
|
+
.somesort-of-request
|
8
|
+
button.button.secondary.capitalize click="toggleOfferForm"
|
9
|
+
tr-span en="or make anonymous offer"
|
10
|
+
.the-form class=showOfferForm::hidden
|
11
|
+
== partial "products/product/offers/offer-form"
|
@@ -0,0 +1,55 @@
|
|
1
|
+
form-for errors=failureReason submit="formSubmitted"
|
2
|
+
legend.form-legend
|
3
|
+
tr-span en="new offer"
|
4
|
+
.input-section attr-name="fromCompany"
|
5
|
+
label.form-label
|
6
|
+
span.capitalize.white
|
7
|
+
span.asterisk
|
8
|
+
tr-span en="your company name"
|
9
|
+
Ember.TextField value=model.fromCompany type="text" placeholder="Acme Purchase Co."
|
10
|
+
|
11
|
+
.input-section attr-name="contactPerson"
|
12
|
+
label.form-label
|
13
|
+
span.capitalize.white
|
14
|
+
tr-span en="your name"
|
15
|
+
Ember.TextField value=model.contactPerson type="text" placeholder="Jack Smith"
|
16
|
+
|
17
|
+
.input-section attr-name="senderEmail"
|
18
|
+
label.form-label
|
19
|
+
span.capitalize.white
|
20
|
+
span.asterisk
|
21
|
+
tr-span en="your company email"
|
22
|
+
Ember.TextField value=model.senderEmail type="email" placeholder="ex. jsmith@gmail.com"
|
23
|
+
|
24
|
+
.input-section attr-name="phoneNumber"
|
25
|
+
label.form-label
|
26
|
+
span.capitalize.white
|
27
|
+
tr-span en="your call back number"
|
28
|
+
Ember.TextField value=model.phoneNumber type="text" placeholder="(555) 123 - 1234"
|
29
|
+
|
30
|
+
.input-section attr-name="companyAddress"
|
31
|
+
label.form-label
|
32
|
+
span.capitalize.white
|
33
|
+
tr-span en="where is your company?"
|
34
|
+
span.parantheses
|
35
|
+
tr-span en="so the seller has an idea who he is dealing with"
|
36
|
+
Ember.TextField value=model.companyAddress type="text" placeholder="1234 Main Street, Los Angeles, California"
|
37
|
+
|
38
|
+
.input-section attr-name="priceTerms"
|
39
|
+
label.form-label
|
40
|
+
span.capitalize.white
|
41
|
+
span.asterisk
|
42
|
+
tr-span en="offer price terms"
|
43
|
+
Ember.TextField value=model.priceTerms type="text" placeholder="$0.12/lb FAS Los Angeles"
|
44
|
+
|
45
|
+
.input-section attr-name="message"
|
46
|
+
label.form-label
|
47
|
+
span.capitalize.white
|
48
|
+
tr-span en="anything else?"
|
49
|
+
Ember.TextArea value=model.message
|
50
|
+
|
51
|
+
.button-forms
|
52
|
+
promise-button model=model class="button"
|
53
|
+
span.capitalize
|
54
|
+
i.fa.fa-check
|
55
|
+
tr-span en="submit"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
.products-product-offers-new
|
2
|
+
if alreadySubmitted
|
3
|
+
.row
|
4
|
+
.small-12.columns
|
5
|
+
h2.thank-you-card.text-center
|
6
|
+
tr-span en="your message has been submitted"
|
7
|
+
h2.go-back.text-center
|
8
|
+
link-to "products.product.show" model.product.id
|
9
|
+
tr-span en="go back"
|
10
|
+
|
11
|
+
else
|
12
|
+
.row
|
13
|
+
.small-12.columns
|
14
|
+
h3.go-back.capitalize
|
15
|
+
link-to "products.product.show" model.product.id
|
16
|
+
i.fa.fa-chevron-circle-left
|
17
|
+
tr-span en="back to listing"
|
18
|
+
.row
|
19
|
+
.small-12.medium-10.large-8.columns.end
|
20
|
+
products-showcase id="products" products=productPlural
|
21
|
+
.row
|
22
|
+
.small-12.medium-10.large-4.large-push-8.columns
|
23
|
+
.offers-summary
|
24
|
+
h4.section-title
|
25
|
+
tr-span en="existing offers"
|
26
|
+
ul.offers.small-block-grid-1.medium-block-1.large-block-grid-1
|
27
|
+
each offer in model.product.offers
|
28
|
+
li
|
29
|
+
.offer
|
30
|
+
.price= offer.priceTerms
|
31
|
+
.created-at= offer.createdAt
|
32
|
+
|
33
|
+
.small-12.medium-10.large-8.large-pull-4.columns.end
|
34
|
+
if userLoggedIn
|
35
|
+
== partial "products/product/offers/offer-form"
|
36
|
+
else
|
37
|
+
== partial "products/product/offers/anonymous-form"
|
@@ -68,4 +68,29 @@
|
|
68
68
|
tr-span en="related files"
|
69
69
|
each attachment in product.attachments
|
70
70
|
a href=attachment.fileUrl
|
71
|
-
span.spacebar= attachment.fileName
|
71
|
+
span.spacebar= attachment.fileName
|
72
|
+
|
73
|
+
.row
|
74
|
+
.small-6.columns
|
75
|
+
link-to "products.product.offers.new" product.id class="action"
|
76
|
+
tr-span en="Make public offer"
|
77
|
+
.small-6.columns
|
78
|
+
.action
|
79
|
+
tr-span en="Directly contact seller to make a private offer"
|
80
|
+
.contact-info
|
81
|
+
.company
|
82
|
+
span.bold.colon
|
83
|
+
tr-span en="seller"
|
84
|
+
span= product.user.companyName
|
85
|
+
.email
|
86
|
+
span.bold.colon
|
87
|
+
tr-span en="email"
|
88
|
+
span= product.user.email
|
89
|
+
.phone
|
90
|
+
span.bold.colon
|
91
|
+
tr-span en="phone"
|
92
|
+
span= product.user.phoneNumber
|
93
|
+
|
94
|
+
.row
|
95
|
+
.small-12.columns
|
96
|
+
offers-summary offers=product.offers
|
@@ -0,0 +1,24 @@
|
|
1
|
+
section#user
|
2
|
+
.row
|
3
|
+
.small-12.columns
|
4
|
+
h1.capitalize
|
5
|
+
link-to "users"
|
6
|
+
tr-span en="user panel"
|
7
|
+
|
8
|
+
.row.admin-nav-tabs
|
9
|
+
.small-4.medium-4.large-2.columns
|
10
|
+
link-to "users.products.index" class="admin-nav-tab"
|
11
|
+
span.capitalize
|
12
|
+
tr-span en="my listings"
|
13
|
+
.small-4.medium-4.large-2.columns
|
14
|
+
link-to "users.products.new" class="admin-nav-tab"
|
15
|
+
span.capitalize
|
16
|
+
tr-span en="new listing"
|
17
|
+
.small-4.medium-4.large-2.columns.end
|
18
|
+
link-to "users.offers.index" class="admin-nav-tab"
|
19
|
+
span.capitalize
|
20
|
+
tr-span en="my offers"
|
21
|
+
|
22
|
+
.row
|
23
|
+
.small-12.columns
|
24
|
+
== outlet
|
@@ -0,0 +1,25 @@
|
|
1
|
+
.row.admin-messages-index
|
2
|
+
.small-12.columns
|
3
|
+
if offers.isPending
|
4
|
+
.admin-message-slice
|
5
|
+
i.fa.fa-cog.fa-spin
|
6
|
+
span.prespace
|
7
|
+
tr-span en="now loading"
|
8
|
+
else
|
9
|
+
each offer in offers
|
10
|
+
== render "users/offers/slice" offer
|
11
|
+
else
|
12
|
+
.admin-message-slice
|
13
|
+
i.fa.fa-times
|
14
|
+
span.prespace
|
15
|
+
tr-span en="no one has made you an offer"
|
16
|
+
|
17
|
+
.row
|
18
|
+
.small-4.medium-3.large-2.columns
|
19
|
+
span.bold.colon
|
20
|
+
tr-span en="offers"
|
21
|
+
span.prespace= offers.length
|
22
|
+
|
23
|
+
.row
|
24
|
+
.small-12.columns
|
25
|
+
fancy-paginator per=per page=page metadatum=metadatum
|
@@ -0,0 +1,31 @@
|
|
1
|
+
.admin-message-slice
|
2
|
+
.actions
|
3
|
+
.view
|
4
|
+
i.fa.fa-user
|
5
|
+
span.prespace= model.fromCompany
|
6
|
+
span.predash= model.senderEmail
|
7
|
+
.date
|
8
|
+
span.time-created= model.createdAt
|
9
|
+
|
10
|
+
.summary
|
11
|
+
.media-subject
|
12
|
+
span.bold= model.priceTerms
|
13
|
+
span.spacebar.prespace -
|
14
|
+
link-to "products.product.show" model.product.id
|
15
|
+
span= model.product.material
|
16
|
+
|
17
|
+
.media-text= model.message
|
18
|
+
.media-extras
|
19
|
+
dl
|
20
|
+
if model.phoneNumber
|
21
|
+
dt
|
22
|
+
tr-span en="phone number"
|
23
|
+
dd= model.phoneNumber
|
24
|
+
if model.contactPerson
|
25
|
+
dt
|
26
|
+
tr-span en="contact person"
|
27
|
+
dd= model.contactPerson
|
28
|
+
if model.companyAddress
|
29
|
+
dt
|
30
|
+
tr-span en="company location"
|
31
|
+
dd= model.companyAddress
|
@@ -0,0 +1,82 @@
|
|
1
|
+
.row
|
2
|
+
.small-6.medium-4.large-2.columns.end
|
3
|
+
link-to "users.products.index" class="button expand secondary"
|
4
|
+
i.fa.fa-chevron-left
|
5
|
+
span.capitalize.bold
|
6
|
+
tr-span en="back"
|
7
|
+
|
8
|
+
.row.admin-products-new
|
9
|
+
form-for errors=failureReason submit="formSubmitted"
|
10
|
+
.small-12.columns
|
11
|
+
fieldset
|
12
|
+
legend.capitalize.bold
|
13
|
+
tr-span en="edit listing core"
|
14
|
+
.input-section attr-name="material"
|
15
|
+
label.form-label
|
16
|
+
span.asterisk
|
17
|
+
tr-span en="listing name"
|
18
|
+
Ember.TextField name="material" value=usersProduct.material placeholder="hot dog"
|
19
|
+
.input-section attr-name="sku"
|
20
|
+
label.form-label
|
21
|
+
tr-span en="external reference number"
|
22
|
+
Ember.TextField name="sku" value=usersProduct.sku placeholder="XYZ-00123"
|
23
|
+
.input-section attr-name="price"
|
24
|
+
label.form-label
|
25
|
+
tr-span en="how much to sell for?"
|
26
|
+
Ember.TextField name="price" value=usersProduct.price placeholder="0.33 USD / pound FAS Long Beach Port"
|
27
|
+
.input-section attr-name="amount"
|
28
|
+
label.form-label
|
29
|
+
tr-span en="how much of it do you have?"
|
30
|
+
Ember.TextField name="amount" value=usersProduct.amount placeholder="200 tons every week"
|
31
|
+
.input-section attr-name="quality"
|
32
|
+
label.form-label
|
33
|
+
tr-span en="what sort of goods are these?"
|
34
|
+
Ember.TextField name="quality" value=usersProduct.quality placeholder="A grade, baled"
|
35
|
+
.input-section attr-name="place"
|
36
|
+
label.form-label
|
37
|
+
tr-span en="where is this?"
|
38
|
+
Ember.TextField name="place" value=usersProduct.place placeholder="Los Angeles"
|
39
|
+
.input-section attr-name="others"
|
40
|
+
label.form-label
|
41
|
+
tr-span en="anything else?"
|
42
|
+
Ember.TextArea name="others" value=usersProduct.others
|
43
|
+
|
44
|
+
.small-12.columns
|
45
|
+
fieldset
|
46
|
+
legend.capitalize.bold
|
47
|
+
tr-span en="existing pictures"
|
48
|
+
block-grid-pictures pictures=model.pictures
|
49
|
+
|
50
|
+
.small-12.columns
|
51
|
+
fieldset
|
52
|
+
legend.capitalize.bold
|
53
|
+
tr-span en="upload more pictures"
|
54
|
+
.input-section attr-name="pictures"
|
55
|
+
label.form-label
|
56
|
+
span.asterisk
|
57
|
+
tr-span en="your listing needs at least 1 picture"
|
58
|
+
span.parantheses
|
59
|
+
tr-span en="the first picture will be displayed in the showcase"
|
60
|
+
files-field name="pictures" files=usersProduct.pictures class="form-control upload-control"
|
61
|
+
.attached-pictures
|
62
|
+
pictures-group pictures=usersProduct.pictures
|
63
|
+
|
64
|
+
.small-12.columns
|
65
|
+
fieldset
|
66
|
+
legend.capitalize.bold
|
67
|
+
tr-span en="categorize"
|
68
|
+
.input-section attr-name="taxons"
|
69
|
+
label.form-label
|
70
|
+
tr-span en="select appropriate category tags for this product"
|
71
|
+
tree-taxon-wrapper taxons=rootTaxons activeTaxons=activeTaxons
|
72
|
+
|
73
|
+
.small-12.columns
|
74
|
+
fieldset
|
75
|
+
legend.capitalize.bold
|
76
|
+
tr-span en="actions"
|
77
|
+
.actions.row
|
78
|
+
.small-6.columns.end
|
79
|
+
promise-button model=usersProduct class="button expand"
|
80
|
+
i.fa.fa-check
|
81
|
+
span.capitalize.bold
|
82
|
+
tr-span en="save"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.row
|
2
|
+
.small-12.medium-4.large-4.columns
|
3
|
+
link-to "users.products.new" class="button expand success"
|
4
|
+
span.spacebar
|
5
|
+
i.fa.fa-plus
|
6
|
+
tr-span en="new listing"
|
7
|
+
|
8
|
+
.row
|
9
|
+
.small-12.columns
|
10
|
+
each listing in products
|
11
|
+
== render "users/products/slice" listing
|
12
|
+
else
|
13
|
+
.admin-product-slice
|
14
|
+
i.fa.fa-cog.fa-spin
|
15
|
+
span.prespace
|
16
|
+
tr-span en="now loading"
|
17
|
+
|
18
|
+
.row
|
19
|
+
.small-4.medium-3.large-2.columns
|
20
|
+
span.bold.colon
|
21
|
+
tr-span en="products"
|
22
|
+
span.prespace= products.length
|
@@ -0,0 +1,28 @@
|
|
1
|
+
.row
|
2
|
+
.small-6.medium-4.large-2.columns.end
|
3
|
+
link-to "users.products.index" class="button expand secondary"
|
4
|
+
i.fa.fa-chevron-left
|
5
|
+
span.capitalize.bold
|
6
|
+
tr-span en="back"
|
7
|
+
.row.admin-products-new
|
8
|
+
.small-12.columns
|
9
|
+
form-for errors=failureReason submit="formSubmitted"
|
10
|
+
fieldset
|
11
|
+
legend.capitalize.bold
|
12
|
+
tr-span en="new listing"
|
13
|
+
|
14
|
+
== partial "admin/products/form-core"
|
15
|
+
|
16
|
+
.input-section attr-name="taxons"
|
17
|
+
label.form-label
|
18
|
+
tr-span en="select appropriate category tags for this product"
|
19
|
+
tree-taxon-wrapper taxons=rootTaxons activeTaxons=activeTaxons
|
20
|
+
|
21
|
+
.actions.row
|
22
|
+
.small-6.columns.end
|
23
|
+
promise-button model=model class="button expand"
|
24
|
+
i.fa.fa-check
|
25
|
+
span.capitalize.bold
|
26
|
+
tr-span en="submit"
|
27
|
+
|
28
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
.admin-product-slice
|
2
|
+
.actions
|
3
|
+
.view
|
4
|
+
link-to "users.product.edit" model.id
|
5
|
+
i.fa.fa-eye
|
6
|
+
span.prespace= model.material
|
7
|
+
if model.hasShowOrder
|
8
|
+
span #
|
9
|
+
span= model.showcaseOrder
|
10
|
+
.edit
|
11
|
+
link-to "users.product.edit" model.id
|
12
|
+
i.fa.fa-edit
|
13
|
+
span.prespace
|
14
|
+
tr-span en="edit"
|
15
|
+
.delete
|
16
|
+
.pointer click="requestDelete"
|
17
|
+
i.fa.fa-times
|
18
|
+
span.prespace
|
19
|
+
tr-span en="delete"
|
20
|
+
|
21
|
+
link-to "users.product.edit" model.id class="summary"
|
22
|
+
.media-object
|
23
|
+
img.product-image.th src=model.pictures.firstObject.picUrl
|
24
|
+
|
25
|
+
.media-text
|
26
|
+
.summary-text= model.roughSummary
|
27
|
+
.created-date= model.createdAt
|
@@ -18,8 +18,12 @@
|
|
18
18
|
@import 'apiv1/components/block-grid-pictures';
|
19
19
|
@import 'apiv1/components/fancy-paginator';
|
20
20
|
@import 'apiv1/components/preload-billboard';
|
21
|
+
@import 'apiv1/components/taggable-field';
|
22
|
+
@import 'apiv1/components/pictures-group';
|
23
|
+
@import 'apiv1/components/offers-summary';
|
21
24
|
@import "apiv1/modals/login";
|
22
25
|
@import 'apiv1/products/product/show';
|
26
|
+
@import 'apiv1/products/product/offers/new';
|
23
27
|
|
24
28
|
body {
|
25
29
|
background: {
|
@@ -0,0 +1,20 @@
|
|
1
|
+
.offers-summary {
|
2
|
+
.section-title {
|
3
|
+
text-transform: capitalize;
|
4
|
+
font-size: 1.2rem;
|
5
|
+
padding-bottom: 1rem;
|
6
|
+
padding-top: 1rem;
|
7
|
+
}
|
8
|
+
.offer {
|
9
|
+
background: #ddd;
|
10
|
+
padding-left: 0.5rem;
|
11
|
+
padding-right: 0.5rem;
|
12
|
+
}
|
13
|
+
.price {
|
14
|
+
font-size: 0.9rem;
|
15
|
+
}
|
16
|
+
.created-at {
|
17
|
+
font-size: 0.6rem;
|
18
|
+
color: #888;
|
19
|
+
}
|
20
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
.pictures-group {
|
2
|
+
.thumbnail {
|
3
|
+
margin-bottom: 1rem;
|
4
|
+
background: #fff;
|
5
|
+
}
|
6
|
+
.picture-chunk {
|
7
|
+
@include display-flex;
|
8
|
+
@include flex-direction(row);
|
9
|
+
@include justify-content(space-between);
|
10
|
+
}
|
11
|
+
.dialogue,
|
12
|
+
.avatar,
|
13
|
+
.cancel-button {
|
14
|
+
padding: 1rem 1rem;
|
15
|
+
}
|
16
|
+
.dialogue,
|
17
|
+
.cancel-button {
|
18
|
+
@include display-flex;
|
19
|
+
@include flex-direction(column);
|
20
|
+
@include justify-content(center);
|
21
|
+
}
|
22
|
+
.cancel-button {
|
23
|
+
color: darken(red, 15%);
|
24
|
+
}
|
25
|
+
.avatar {
|
26
|
+
text-align: center;
|
27
|
+
}
|
28
|
+
img.img-thumbnail {
|
29
|
+
height: 55px;
|
30
|
+
max-width: 55px;
|
31
|
+
}
|
32
|
+
}
|