cloudrider 0.3.0 → 0.3.20
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 +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,13 @@
|
|
|
1
|
+
class Apiv1::Products::OfferMessageFactory < Users::Products::OfferFactory
|
|
2
|
+
def initialize(params)
|
|
3
|
+
@params = params
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
private
|
|
7
|
+
def _offer_params
|
|
8
|
+
_base_offer_params.merge product: _product
|
|
9
|
+
end
|
|
10
|
+
def _base_offer_params
|
|
11
|
+
@params.permit :from_company, :sender_email, :phone_number, :company_address, :price_terms, :notes
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -24,6 +24,8 @@ class Apiv1::ProductsMachine
|
|
|
24
24
|
lambda do |product|
|
|
25
25
|
if _query.present?
|
|
26
26
|
_cached_elasticsearch_product_query product
|
|
27
|
+
elsif _user.present?
|
|
28
|
+
_user.products
|
|
27
29
|
else
|
|
28
30
|
product
|
|
29
31
|
end
|
|
@@ -46,7 +48,7 @@ class Apiv1::ProductsMachine
|
|
|
46
48
|
def _process_taxons
|
|
47
49
|
lambda do |product|
|
|
48
50
|
if _taxon_ids.present?
|
|
49
|
-
|
|
51
|
+
product.intersection_of_taxon_ids(_taxon_ids)
|
|
50
52
|
else
|
|
51
53
|
product
|
|
52
54
|
end
|
|
@@ -55,11 +57,15 @@ class Apiv1::ProductsMachine
|
|
|
55
57
|
def _unify_type
|
|
56
58
|
-> (t) { t.respond_to?(:records) ? t.records.load : t }
|
|
57
59
|
end
|
|
60
|
+
def _user
|
|
61
|
+
Admin::User.find_by_id params[:user_id]
|
|
62
|
+
end
|
|
58
63
|
def _query
|
|
59
64
|
params[:query]
|
|
60
65
|
end
|
|
61
66
|
def _taxon_ids
|
|
62
|
-
params[:taxons]
|
|
67
|
+
return params[:taxons].flatten if params[:taxons].respond_to? :flatten
|
|
68
|
+
params[:taxons].to_s.split(/\s*,\s*/)
|
|
63
69
|
end
|
|
64
70
|
def _page
|
|
65
71
|
params[:page] || 0
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class Apiv1::Users::ProductFactory < Admin::ProductFactory
|
|
2
|
+
|
|
3
|
+
attr_accessor :user
|
|
4
|
+
def initialize(user, input_params)
|
|
5
|
+
@user = user
|
|
6
|
+
super input_params
|
|
7
|
+
end
|
|
8
|
+
def save!
|
|
9
|
+
_product.save!
|
|
10
|
+
_product_relationship.save!
|
|
11
|
+
end
|
|
12
|
+
private
|
|
13
|
+
def _product
|
|
14
|
+
@product ||= Apiv1::Product.new _product_params
|
|
15
|
+
end
|
|
16
|
+
def _product_relationship
|
|
17
|
+
@relationship ||= Apiv1::Users::ProductRelationship.new product: _product, user: user
|
|
18
|
+
end
|
|
19
|
+
def _product_params
|
|
20
|
+
@params
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# == Schema Information
|
|
2
|
+
#
|
|
3
|
+
# Table name: apiv1_users_product_relationships
|
|
4
|
+
#
|
|
5
|
+
# id :integer not null, primary key
|
|
6
|
+
# user_id :integer
|
|
7
|
+
# product_id :integer
|
|
8
|
+
# created_at :datetime
|
|
9
|
+
# updated_at :datetime
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
class Apiv1::Users::ProductRelationship < ActiveRecord::Base
|
|
13
|
+
self.table_name = 'apiv1_users_product_relationships'
|
|
14
|
+
belongs_to :user,
|
|
15
|
+
class_name: 'Admin::User'
|
|
16
|
+
|
|
17
|
+
belongs_to :product,
|
|
18
|
+
class_name: 'Apiv1::Product'
|
|
19
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
class Users::Products::OfferFactory
|
|
2
|
+
delegate :save!,
|
|
3
|
+
to: :_offer
|
|
4
|
+
def initialize(user, params)
|
|
5
|
+
@user, @params = user, params
|
|
6
|
+
end
|
|
7
|
+
def satisfy_specifications?
|
|
8
|
+
_offer.valid?
|
|
9
|
+
end
|
|
10
|
+
def offer_hash
|
|
11
|
+
{ offer: _offer.to_ember_hash }
|
|
12
|
+
end
|
|
13
|
+
def error_hash
|
|
14
|
+
_offer.errors.to_h
|
|
15
|
+
end
|
|
16
|
+
def offer
|
|
17
|
+
_offer
|
|
18
|
+
end
|
|
19
|
+
private
|
|
20
|
+
def _offer
|
|
21
|
+
@offer ||= Apiv1::OfferMessage.new _offer_params
|
|
22
|
+
end
|
|
23
|
+
def _offer_params
|
|
24
|
+
_base_offer_params.merge(_user_params).merge product: _product
|
|
25
|
+
end
|
|
26
|
+
def _user_params
|
|
27
|
+
{
|
|
28
|
+
from_company: @user.company_name,
|
|
29
|
+
sender_email: @user.email,
|
|
30
|
+
phone_number: @user.phone_number,
|
|
31
|
+
company_address: @user.address
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
def _product
|
|
35
|
+
@product ||= Apiv1::Product.find @params[:product_id]
|
|
36
|
+
end
|
|
37
|
+
def _base_offer_params
|
|
38
|
+
@params.permit(:price_terms, :notes)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -3,7 +3,7 @@ preload-billboard
|
|
|
3
3
|
<% case nav_style %>
|
|
4
4
|
<% when :top, :material %>
|
|
5
5
|
#canvas-menu-top
|
|
6
|
-
site-nav
|
|
6
|
+
site-nav action="displayModal"
|
|
7
7
|
#page-wrapper
|
|
8
8
|
.site-content
|
|
9
9
|
.not-site-footer
|
|
@@ -11,7 +11,7 @@ preload-billboard
|
|
|
11
11
|
site-footer action="displayModal"
|
|
12
12
|
<% when :left %>
|
|
13
13
|
#canvas-menu-left
|
|
14
|
-
site-nav
|
|
14
|
+
site-nav action="displayModal"
|
|
15
15
|
#page-wrapper
|
|
16
16
|
.small-time-header.hide-for-large-up.pointer click=toggleCanvasShift
|
|
17
17
|
i.fa.fa-bars.fa-3x
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
h3 offers-overview
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<% case snf_style %>
|
|
2
|
+
<% when "top2x" %>
|
|
3
|
+
.row
|
|
4
|
+
.small-12.columns.taxons
|
|
5
|
+
tree-taxon-wrapper activeTaxons=activeTaxons taxons=taxons
|
|
6
|
+
|
|
7
|
+
.small-12.columns.query
|
|
8
|
+
.row.collapse
|
|
9
|
+
.small-10.columns
|
|
10
|
+
Ember.TextField value=searchQuery class="full-width" name="search"
|
|
11
|
+
.small-2.columns
|
|
12
|
+
button.button.postfix click="search"
|
|
13
|
+
i.fa.fa-search
|
|
14
|
+
|
|
15
|
+
.row
|
|
16
|
+
.small-12.columns
|
|
17
|
+
== yield
|
|
18
|
+
|
|
19
|
+
<% when "lefttop" %>
|
|
20
|
+
.row
|
|
21
|
+
.small-12.medium-4.large-3.column.taxons
|
|
22
|
+
tree-taxon-wrapper activeTaxons=activeTaxons taxons=taxons
|
|
23
|
+
.small-12.medium-8.large-9.column.query
|
|
24
|
+
.row.collapse
|
|
25
|
+
.small-10.columns
|
|
26
|
+
Ember.TextField value=searchQuery class="full-width" name="search"
|
|
27
|
+
.small-2.columns
|
|
28
|
+
button.button.postfix click="search"
|
|
29
|
+
i.fa.fa-search
|
|
30
|
+
.row
|
|
31
|
+
.small-12.columns
|
|
32
|
+
== yield
|
|
33
|
+
<% end %>
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
<% case nav_style %>
|
|
2
|
+
<% when :craigslist %>
|
|
3
|
+
.row
|
|
4
|
+
.small-12.columns
|
|
5
|
+
.space-between
|
|
6
|
+
link-to "index" class="button-like"
|
|
7
|
+
span <%= my_company_name %>
|
|
8
|
+
a.pointer.button-like click="displayModal 'login'"
|
|
9
|
+
tr-span en="my account"
|
|
2
10
|
<% when :left %>
|
|
3
11
|
.nav-button
|
|
4
12
|
link-to "index" (query-params anchor="") class="side-nav"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<% case field_style %>
|
|
2
|
+
<% when :lastfm %>
|
|
3
|
+
each tag in tags
|
|
4
|
+
.taggable-field-tag
|
|
5
|
+
.centered-fully
|
|
6
|
+
span.colon= tag.taxonName
|
|
7
|
+
span= tag.id
|
|
8
|
+
Ember.TextField class="taggable-textfield" value=text
|
|
9
|
+
<% when :exhentai %>
|
|
10
|
+
Ember.TextField class="taggable-textfield" value=text
|
|
11
|
+
<% end %>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.row.apiv1-login-modal
|
|
2
|
+
.action-cancel.pointer click="closeModal"
|
|
3
|
+
i.fa.fa-times
|
|
4
|
+
form-for errors=failureReason submit="formSubmitted"
|
|
5
|
+
.small-12.columns
|
|
6
|
+
fieldset
|
|
7
|
+
legend
|
|
8
|
+
tr-span en="user login"
|
|
9
|
+
<% if registerable? %>
|
|
10
|
+
h3.alt-actions
|
|
11
|
+
a.pointer click="displayModal 'register'"
|
|
12
|
+
span.capitalize.spacebar
|
|
13
|
+
tr-span en="no account?"
|
|
14
|
+
span.capitalize
|
|
15
|
+
tr-span en="register here"
|
|
16
|
+
<% end %>
|
|
17
|
+
.input-section attr-name="email"
|
|
18
|
+
label.form-label
|
|
19
|
+
tr-span en="email"
|
|
20
|
+
Ember.TextField name="email" value=session.email
|
|
21
|
+
.input-section attr-name="password"
|
|
22
|
+
label.form-label
|
|
23
|
+
tr-span en="password"
|
|
24
|
+
Ember.TextField name="password" value=session.password type="password"
|
|
25
|
+
|
|
26
|
+
.small-6.columns
|
|
27
|
+
.input-section
|
|
28
|
+
promise-button model=session class="button expand"
|
|
29
|
+
i.fa.fa-check
|
|
30
|
+
tr-span en="submit"
|
|
31
|
+
|
|
32
|
+
.small-6.columns
|
|
33
|
+
.input-section
|
|
34
|
+
button.button.expand.alert click="closeModal"
|
|
35
|
+
i.fa.fa-times
|
|
36
|
+
tr-span en="cancel"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<% case theme %>
|
|
2
|
+
<% when :craigslist %>
|
|
3
|
+
search-and-filter taxons=taxons action="search"
|
|
4
|
+
fancy-paginator page=page per=per metadatum=metadatum
|
|
5
|
+
|
|
6
|
+
products-catalog products=products
|
|
7
|
+
|
|
8
|
+
fancy-paginator page=page per=per metadatum=metadatum
|
|
9
|
+
<% else %>
|
|
10
|
+
search-and-filter taxons=taxons action="search"
|
|
11
|
+
|
|
12
|
+
fancy-paginator page=page per=per metadatum=metadatum
|
|
13
|
+
|
|
14
|
+
products-catalog products=products
|
|
15
|
+
|
|
16
|
+
fancy-paginator page=page per=per metadatum=metadatum
|
|
17
|
+
<% end %>
|
data/generica/app/varissets/javascripts/templates/products/product/offers/_anonymous-form.emblem.erb
ADDED
|
@@ -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"
|
data/generica/app/varissets/javascripts/templates/products/product/offers/_offer-form.emblem.erb
ADDED
|
@@ -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"
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
.products-product-show
|
|
2
|
+
.row
|
|
3
|
+
.small-12.columns.goback
|
|
4
|
+
link-to "products.index"
|
|
5
|
+
.prespace
|
|
6
|
+
tr-span en="back to index"
|
|
7
|
+
.row
|
|
8
|
+
.small-12.columns
|
|
9
|
+
h2.material-title
|
|
10
|
+
tr-span en=product.material
|
|
11
|
+
if product.sku
|
|
12
|
+
span.predash= product.sku
|
|
13
|
+
|
|
14
|
+
.row
|
|
15
|
+
.small-12.medium-4.large-3.columns
|
|
16
|
+
a href=mainPic.picUrl target="blank"
|
|
17
|
+
img.main-image.th src=mainPic.picUrl
|
|
18
|
+
.small-12.medium-8.large-9.columns
|
|
19
|
+
.row
|
|
20
|
+
.small-12.columns
|
|
21
|
+
dl.product-specs
|
|
22
|
+
if product.amount
|
|
23
|
+
dt.upcase
|
|
24
|
+
tr-span en="quantity"
|
|
25
|
+
dd
|
|
26
|
+
span.spacebar= product.amount
|
|
27
|
+
if product.price
|
|
28
|
+
dt.upcase
|
|
29
|
+
tr-span en="price"
|
|
30
|
+
dd
|
|
31
|
+
span= product.price
|
|
32
|
+
if product.place
|
|
33
|
+
dt.upcase
|
|
34
|
+
tr-span en="origin"
|
|
35
|
+
dd
|
|
36
|
+
span= product.place
|
|
37
|
+
if product.quality
|
|
38
|
+
dt.upcase
|
|
39
|
+
tr-span en="quality"
|
|
40
|
+
dd
|
|
41
|
+
span= product.quality
|
|
42
|
+
if product.others
|
|
43
|
+
dt.upcase
|
|
44
|
+
tr-span en="description"
|
|
45
|
+
dd
|
|
46
|
+
tr-span en=product.others
|
|
47
|
+
|
|
48
|
+
if product.taxons
|
|
49
|
+
.row
|
|
50
|
+
.small-12.columns
|
|
51
|
+
h4.tags.capitalize
|
|
52
|
+
tr-span en="category tags"
|
|
53
|
+
.taxon-tags
|
|
54
|
+
each taxon in product.taxons
|
|
55
|
+
span.tag= taxon.taxonName
|
|
56
|
+
.row
|
|
57
|
+
.small-12.columns
|
|
58
|
+
ul.pics.small-block-grid-3.medium-block-grid-6.large-block-grid-9
|
|
59
|
+
each picture in product.pictures
|
|
60
|
+
li.pointer click="selectMainPic picture"
|
|
61
|
+
img.other-image.th src=picture.thumbUrl
|
|
62
|
+
|
|
63
|
+
if product.attachments
|
|
64
|
+
.row
|
|
65
|
+
.small-12.columns.files
|
|
66
|
+
h4.capitalize.bold
|
|
67
|
+
tr-span en="related files"
|
|
68
|
+
each attachment in product.attachments
|
|
69
|
+
a href=attachment.fileUrl
|
|
70
|
+
span.spacebar= attachment.fileName
|
|
71
|
+
<% if online_offerable? %>
|
|
72
|
+
.row
|
|
73
|
+
.small-12.columns
|
|
74
|
+
h4.section-title
|
|
75
|
+
tr-span en="offers"
|
|
76
|
+
ul.offers.small-block-grid-2.medium-block-4.large-block-grid-6
|
|
77
|
+
each offer in product.offers
|
|
78
|
+
li
|
|
79
|
+
.offer
|
|
80
|
+
.price= offer.priceTerms
|
|
81
|
+
.created-at= offer.createdAt
|
|
82
|
+
.row
|
|
83
|
+
.small-6.columns
|
|
84
|
+
link-to "products.product.offers.new" product.id class="action"
|
|
85
|
+
tr-span en="Make public offer"
|
|
86
|
+
.small-6.columns
|
|
87
|
+
.action
|
|
88
|
+
tr-span en="Directly contact seller to make a private offer"
|
|
89
|
+
.contact-info
|
|
90
|
+
.company
|
|
91
|
+
span.bold.colon
|
|
92
|
+
tr-span en="seller"
|
|
93
|
+
span= product.user.companyName
|
|
94
|
+
.email
|
|
95
|
+
span.bold.colon
|
|
96
|
+
tr-span en="email"
|
|
97
|
+
span= product.user.email
|
|
98
|
+
.phone
|
|
99
|
+
span.bold.colon
|
|
100
|
+
tr-span en="phone"
|
|
101
|
+
span= product.user.phoneNumber
|
|
102
|
+
|
|
103
|
+
.row
|
|
104
|
+
.small-12.columns
|
|
105
|
+
offers-summary offers=product.offers
|
|
106
|
+
<% end %>
|
|
107
|
+
|
|
108
|
+
|