comable_backend 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/Rakefile +16 -4
- data/app/assets/javascripts/comable/admin/application.coffee +88 -0
- data/app/assets/stylesheets/comable/admin/application.scss +590 -0
- data/app/controllers/comable/admin/application_controller.rb +28 -0
- data/app/controllers/comable/admin/categories_controller.rb +14 -0
- data/app/controllers/comable/admin/customers_controller.rb +36 -0
- data/app/controllers/comable/admin/dashboard_controller.rb +20 -0
- data/app/controllers/comable/admin/orders_controller.rb +14 -0
- data/app/controllers/comable/admin/payment_methods_controller.rb +52 -0
- data/app/controllers/comable/admin/products_controller.rb +50 -1
- data/app/controllers/comable/admin/shipment_methods_controller.rb +11 -27
- data/app/controllers/comable/admin/stocks_controller.rb +69 -0
- data/app/controllers/comable/admin/store_controller.rb +12 -29
- data/app/views/comable/admin/categories/index.slim +94 -0
- data/app/views/comable/admin/customers/edit.slim +94 -0
- data/app/views/comable/admin/customers/index.slim +68 -0
- data/app/views/comable/admin/customers/show.slim +93 -0
- data/app/views/comable/admin/dashboard/_widget.slim +13 -0
- data/app/views/comable/admin/dashboard/show.slim +63 -0
- data/app/views/comable/admin/orders/index.slim +79 -0
- data/app/views/comable/admin/orders/show.slim +116 -0
- data/app/views/comable/admin/payment_methods/_form.slim +46 -0
- data/app/views/comable/admin/payment_methods/edit.slim +28 -0
- data/app/views/comable/admin/payment_methods/index.slim +53 -0
- data/app/views/comable/admin/payment_methods/new.slim +17 -0
- data/app/views/comable/admin/products/_form.slim +130 -0
- data/app/views/comable/admin/products/edit.slim +40 -0
- data/app/views/comable/admin/products/index.slim +75 -5
- data/app/views/comable/admin/products/new.slim +17 -0
- data/app/views/comable/admin/shipment_methods/_form.slim +35 -19
- data/app/views/comable/admin/shipment_methods/edit.slim +26 -5
- data/app/views/comable/admin/shipment_methods/index.slim +46 -13
- data/app/views/comable/admin/shipment_methods/new.slim +15 -3
- data/app/views/comable/admin/stocks/_form.slim +40 -0
- data/app/views/comable/admin/stocks/edit.slim +46 -0
- data/app/views/comable/admin/stocks/index.slim +81 -0
- data/app/views/comable/admin/stocks/new.slim +17 -0
- data/app/views/comable/admin/store/_form.slim +43 -31
- data/app/views/comable/admin/store/edit.slim +11 -3
- data/app/views/kaminari/comable_backend/_first_page.html.slim +2 -0
- data/app/views/kaminari/comable_backend/_gap.html.slim +2 -0
- data/app/views/kaminari/comable_backend/_last_page.html.slim +2 -0
- data/app/views/kaminari/comable_backend/_next_page.html.slim +2 -0
- data/app/views/kaminari/comable_backend/_page.html.slim +3 -0
- data/app/views/kaminari/comable_backend/_paginator.html.slim +15 -0
- data/app/views/kaminari/comable_backend/_prev_page.html.slim +2 -0
- data/app/views/layouts/comable/admin/application.slim +103 -2
- data/config/routes.rb +14 -2
- data/lib/comable/backend/engine.rb +22 -0
- metadata +240 -9
- data/app/assets/javascripts/comable/admin/application.js +0 -13
- data/app/assets/stylesheets/comable/admin/application.css +0 -15
- data/app/views/comable/admin/shipment_methods/show.slim +0 -22
- data/app/views/comable/admin/store/new.slim +0 -3
- data/app/views/comable/admin/store/show.slim +0 -24
@@ -1,7 +1,28 @@
|
|
1
|
-
|
1
|
+
#comable-shipment-method
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li
|
6
|
+
= link_to Comable.t('admin.nav.shipment_method'), comable.admin_shipment_methods_path
|
7
|
+
li.active
|
8
|
+
= @shipment_method.name
|
2
9
|
|
3
|
-
|
10
|
+
h1.page-header
|
11
|
+
= @shipment_method.name
|
4
12
|
|
5
|
-
|
6
|
-
|
7
|
-
=
|
13
|
+
.row
|
14
|
+
section.col-sm-8
|
15
|
+
= render 'form'
|
16
|
+
hr
|
17
|
+
.panel.panel-danger
|
18
|
+
.panel-heading type="button" data-toggle="collapse" data-target="#comable-danger" aria-expanded="false" aria-controls="comable-danger"
|
19
|
+
strong
|
20
|
+
span.fa.fa-angle-down>
|
21
|
+
= Comable.t('admin.actions.destroy')
|
22
|
+
#comable-danger.collapse
|
23
|
+
.panel-body
|
24
|
+
p
|
25
|
+
= Comable.t('admin.confirmation_to_remove_product')
|
26
|
+
= link_to Comable.t('admin.actions.destroy'), comable.admin_shipment_method_path(@shipment_method), method: :delete, class: 'btn btn-danger'
|
27
|
+
|
28
|
+
nav.col-sm-4
|
@@ -1,17 +1,50 @@
|
|
1
|
-
|
1
|
+
#comable-shipment-method
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li.active
|
6
|
+
= Comable.t('admin.nav.shipment_method')
|
2
7
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
8
|
+
h1.page-header
|
9
|
+
= Comable.t('admin.nav.shipment_method')
|
10
|
+
small<
|
11
|
+
= @shipment_methods.total_count
|
12
|
+
= Comable.t('admin.results')
|
7
13
|
|
8
|
-
|
9
|
-
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
+
.row
|
15
|
+
section.col-sm-8
|
16
|
+
- if @shipment_methods.empty?
|
17
|
+
= Comable.t('admin.not_found')
|
18
|
+
- else
|
19
|
+
.panel.panel-inverse
|
20
|
+
.panel-heading
|
21
|
+
.panel-title
|
22
|
+
= Comable.t('admin.index')
|
23
|
+
table.table.table-striped
|
24
|
+
thead
|
25
|
+
th
|
26
|
+
= @shipment_methods.klass.human_attribute_name(:name)
|
27
|
+
th
|
28
|
+
= @shipment_methods.klass.human_attribute_name(:fee)
|
29
|
+
th
|
30
|
+
= @shipment_methods.klass.human_attribute_name(:traking_url)
|
31
|
+
tbody
|
32
|
+
- @shipment_methods.each do |shipment_method|
|
33
|
+
tr
|
34
|
+
td
|
35
|
+
= link_to shipment_method.name, comable.admin_shipment_method_path(shipment_method)
|
36
|
+
- unless shipment_method.activate_flag
|
37
|
+
span.fa.fa-eye-slash.text-muted<
|
38
|
+
td
|
39
|
+
= number_to_currency shipment_method.fee
|
40
|
+
td
|
41
|
+
= truncate shipment_method.traking_url
|
14
42
|
|
15
|
-
|
43
|
+
.text-center
|
44
|
+
= paginate @shipment_methods, theme: :comable_backend
|
16
45
|
|
17
|
-
|
46
|
+
nav.col-sm-4
|
47
|
+
#comable-affix
|
48
|
+
.panel
|
49
|
+
.list-group
|
50
|
+
= link_to Comable.t('admin.actions.new'), comable.new_admin_shipment_method_path, class: 'list-group-item'
|
@@ -1,5 +1,17 @@
|
|
1
|
-
|
1
|
+
#comable-shipment-method
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li
|
6
|
+
= link_to Comable.t('admin.nav.shipment_method'), comable.admin_shipment_methods_path
|
7
|
+
li.active
|
8
|
+
= Comable.t('admin.actions.new')
|
2
9
|
|
3
|
-
|
10
|
+
h1.page-header
|
11
|
+
= Comable.t('admin.actions.new')
|
4
12
|
|
5
|
-
|
13
|
+
.row
|
14
|
+
section.col-sm-8
|
15
|
+
= render 'form'
|
16
|
+
|
17
|
+
nav.col-sm-4
|
@@ -0,0 +1,40 @@
|
|
1
|
+
- url = comable.admin_product_stocks_path(@product) if @stock.new_record?
|
2
|
+
- url ||= comable.admin_product_stock_path(@product, @stock)
|
3
|
+
= form_for @stock, url: url do |f|
|
4
|
+
.panel.panel-inverse
|
5
|
+
.panel-heading
|
6
|
+
.panel-title
|
7
|
+
= Comable.t('admin.general')
|
8
|
+
.panel-body
|
9
|
+
.form-horizontal
|
10
|
+
.form-group
|
11
|
+
.col-sm-3.control-label
|
12
|
+
= f.label :code
|
13
|
+
.col-sm-6
|
14
|
+
= f.text_field :code
|
15
|
+
|
16
|
+
.form-group
|
17
|
+
.col-sm-3.control-label
|
18
|
+
= f.label :quantity
|
19
|
+
.col-sm-6
|
20
|
+
= f.text_field :quantity
|
21
|
+
|
22
|
+
- if @product.sku?
|
23
|
+
- if @product.sku_h?
|
24
|
+
.form-group
|
25
|
+
.col-sm-3.control-label
|
26
|
+
= f.label :sku_h_choice_name, @product.sku_h_item_name
|
27
|
+
.col-sm-6
|
28
|
+
= f.text_field :sku_h_choice_name
|
29
|
+
|
30
|
+
- if @product.sku_v?
|
31
|
+
.form-group
|
32
|
+
.col-sm-3.control-label
|
33
|
+
= f.label :sku_v_choice_name, @product.sku_v_item_name
|
34
|
+
.col-sm-6
|
35
|
+
= f.text_field :sku_v_choice_name
|
36
|
+
|
37
|
+
.panel-footer
|
38
|
+
= link_to Comable.t('admin.actions.cancel'), comable.admin_product_stocks_path(@product), class: 'btn btn-default'
|
39
|
+
.pull-right
|
40
|
+
= f.submit
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#comable-product
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li
|
6
|
+
= link_to Comable.t('admin.nav.product'), comable.admin_products_path
|
7
|
+
li
|
8
|
+
= link_to @product.name, comable.admin_product_path(@product)
|
9
|
+
li
|
10
|
+
= link_to Comable.t('admin.nav.products.stock'), comable.admin_product_stocks_path(@product)
|
11
|
+
li.active
|
12
|
+
= @stock.name_with_sku
|
13
|
+
|
14
|
+
h1.page-header
|
15
|
+
= @stock.name_with_sku
|
16
|
+
small< = @stock.code
|
17
|
+
|
18
|
+
.row
|
19
|
+
section.col-sm-8
|
20
|
+
= render 'form'
|
21
|
+
hr
|
22
|
+
.panel.panel-danger
|
23
|
+
.panel-heading type="button" data-toggle="collapse" data-target="#comable-danger" aria-expanded="false" aria-controls="comable-danger"
|
24
|
+
strong
|
25
|
+
span.fa.fa-angle-down>
|
26
|
+
= Comable.t('admin.actions.destroy')
|
27
|
+
#comable-danger.collapse
|
28
|
+
.panel-body
|
29
|
+
p
|
30
|
+
= Comable.t('admin.confirmation_to_remove_stock')
|
31
|
+
= link_to Comable.t('admin.actions.destroy'), comable.admin_product_stock_path(@product, @stock), method: :delete, class: 'btn btn-danger'
|
32
|
+
|
33
|
+
nav.col-sm-4
|
34
|
+
#comable-affix data-spy="affix"
|
35
|
+
.panel
|
36
|
+
.list-group
|
37
|
+
= link_to Comable.t('admin.nav.products.detail'), comable.admin_product_path(@product), class: 'list-group-item'
|
38
|
+
= link_to Comable.t('admin.nav.products.stock'), comable.admin_product_stocks_path(@product), class: 'list-group-item disabled'
|
39
|
+
|
40
|
+
.panel
|
41
|
+
.list-group
|
42
|
+
- if @product.sku?
|
43
|
+
= link_to Comable.t('admin.actions.new'), comable.new_admin_product_stock_path, class: 'list-group-item'
|
44
|
+
= link_to comable.product_path(@product), class: 'list-group-item' do
|
45
|
+
span.fa.fa-external-link>
|
46
|
+
= Comable.t('admin.check_this_product_in_frontend')
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#comable-stock
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li
|
6
|
+
= link_to Comable.t('admin.nav.product'), comable.admin_products_path
|
7
|
+
li
|
8
|
+
= link_to @product.name, comable.admin_product_path(@product)
|
9
|
+
li.active
|
10
|
+
= Comable.t('admin.nav.products.stock')
|
11
|
+
|
12
|
+
h1.page-header
|
13
|
+
= Comable.t('admin.nav.products.stock')
|
14
|
+
small<
|
15
|
+
= @stocks.total_count
|
16
|
+
= Comable.t('admin.results')
|
17
|
+
|
18
|
+
.row
|
19
|
+
section.col-sm-8
|
20
|
+
.panel.panel-inverse
|
21
|
+
.panel-heading
|
22
|
+
.panel-title
|
23
|
+
= Comable.t('admin.index')
|
24
|
+
- if @stocks.empty?
|
25
|
+
.panel-body
|
26
|
+
= Comable.t('admin.not_found')
|
27
|
+
- else
|
28
|
+
table.table.table-striped
|
29
|
+
thead
|
30
|
+
th
|
31
|
+
= sort_link [:comable, @q], :code, product_id: @product.id
|
32
|
+
th
|
33
|
+
= sort_link [:comable, @q], :quantity, product_id: @product.id
|
34
|
+
- if @product.sku?
|
35
|
+
- if @product.sku_h?
|
36
|
+
th
|
37
|
+
= sort_link [:comable, @q], :sku_h_choice_name, @product.sku_h_item_name, product_id: @product.id
|
38
|
+
- if @product.sku_v?
|
39
|
+
th
|
40
|
+
= sort_link [:comable, @q], :sku_v_choice_name, @product.sku_v_item_name, product_id: @product.id
|
41
|
+
tbody
|
42
|
+
- @stocks.each do |stock|
|
43
|
+
tr
|
44
|
+
td
|
45
|
+
= link_to stock.code, comable.admin_product_stock_path(@product, stock)
|
46
|
+
td
|
47
|
+
strong class="#{(stock.quantity <= 0) ? 'text-danger' : (stock.quantity <= 10) ? 'text-warning' : 'text-success'}"
|
48
|
+
= number_with_delimiter stock.quantity
|
49
|
+
- if @product.sku?
|
50
|
+
- if @product.sku_h?
|
51
|
+
td
|
52
|
+
= stock.sku_h_choice_name
|
53
|
+
- if @product.sku_v?
|
54
|
+
td
|
55
|
+
= stock.sku_v_choice_name
|
56
|
+
|
57
|
+
.text-center
|
58
|
+
= paginate @stocks, theme: :comable_backend
|
59
|
+
|
60
|
+
nav.col-sm-4
|
61
|
+
#comable-affix
|
62
|
+
.panel
|
63
|
+
.list-group
|
64
|
+
= link_to Comable.t('admin.nav.products.detail'), comable.admin_product_path(@product), class: 'list-group-item'
|
65
|
+
= link_to Comable.t('admin.nav.products.stock'), comable.admin_product_stocks_path(@product), class: 'list-group-item disabled'
|
66
|
+
|
67
|
+
.panel
|
68
|
+
.list-group
|
69
|
+
= link_to Comable.t('admin.actions.new'), comable.new_admin_product_stock_path(@product), class: 'list-group-item'
|
70
|
+
|
71
|
+
.panel
|
72
|
+
.panel-body
|
73
|
+
= search_form_for @q, url: comable.new_admin_product_stock_path(@product) do |f|
|
74
|
+
.form-horizontal
|
75
|
+
.form-group
|
76
|
+
.col-sm-3.control-label
|
77
|
+
= f.label :code
|
78
|
+
.col-sm-9
|
79
|
+
= f.text_field :code_cont
|
80
|
+
.text-right
|
81
|
+
= f.submit Comable.t('admin.search'), class: 'btn btn-default'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#comable-product
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li.active
|
6
|
+
= link_to Comable.t('admin.nav.product'), comable.admin_products_path
|
7
|
+
li.active
|
8
|
+
= Comable.t('admin.actions.new')
|
9
|
+
|
10
|
+
h1.page-header
|
11
|
+
= Comable.t('admin.actions.new')
|
12
|
+
|
13
|
+
.row
|
14
|
+
section.col-sm-8
|
15
|
+
= render 'form'
|
16
|
+
|
17
|
+
nav.col-sm-4
|
@@ -1,38 +1,50 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
- if @store.errors.any?
|
2
|
+
#error_explanation
|
3
|
+
h2
|
4
|
+
= pluralize(@store.errors.count, "error")
|
5
|
+
| prohibited this store from being saved:
|
6
|
+
ul
|
7
|
+
- @store.errors.full_messages.each do |message|
|
8
|
+
li = message
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
10
|
+
= form_for @store, url: comable.admin_store_path, method: :patch do |f|
|
11
|
+
.panel.panel-inverse
|
12
|
+
.panel-heading
|
13
|
+
.panel-title
|
14
|
+
= Comable.t('admin.nav.stores.edit')
|
11
15
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
.panel-body
|
17
|
+
.form-horizontal
|
18
|
+
.form-group
|
19
|
+
.col-sm-3.control-label
|
20
|
+
= f.label :name
|
21
|
+
.col-sm-6
|
22
|
+
= f.text_field :name, placeholder: f.object.class.default_name
|
16
23
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
24
|
+
.form-group
|
25
|
+
.col-sm-3.control-label
|
26
|
+
= f.label :meta_keywords
|
27
|
+
.col-sm-6
|
28
|
+
= f.text_field :meta_keywords
|
21
29
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
30
|
+
.form-group
|
31
|
+
.col-sm-3.control-label
|
32
|
+
= f.label :meta_description
|
33
|
+
.col-sm-6
|
34
|
+
= f.text_field :meta_description
|
26
35
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
36
|
+
.form-group
|
37
|
+
.col-sm-3.control-label
|
38
|
+
= f.label :email_sender
|
39
|
+
.col-sm-6
|
40
|
+
= f.email_field :email_sender
|
31
41
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
42
|
+
.form-group
|
43
|
+
.col-sm-offset-3.col-sm-6
|
44
|
+
.checkbox
|
45
|
+
= f.label :email_activate_flag do
|
46
|
+
= f.check_box :email_activate_flag
|
47
|
+
= f.object.class.human_attribute_name(:email_activate_flag)
|
36
48
|
|
37
|
-
|
38
|
-
|
49
|
+
.panel-footer.text-right
|
50
|
+
= f.submit Comable.t('admin.actions.update')
|
@@ -1,5 +1,13 @@
|
|
1
|
-
|
1
|
+
#comable-store
|
2
|
+
ol.breadcrumb
|
3
|
+
li
|
4
|
+
= link_to Comable.t('admin.nav.dashboard'), comable.admin_root_path
|
5
|
+
li.active
|
6
|
+
= Comable.t('admin.nav.store')
|
2
7
|
|
3
|
-
|
8
|
+
h1.page-header
|
9
|
+
= Comable.t('admin.nav.store')
|
4
10
|
|
5
|
-
|
11
|
+
.row
|
12
|
+
section.col-sm-8
|
13
|
+
= render 'form'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
= paginator.render do
|
2
|
+
ul.pagination
|
3
|
+
- unless current_page.first?
|
4
|
+
== first_page_tag
|
5
|
+
== prev_page_tag
|
6
|
+
|
7
|
+
- each_page do |page|
|
8
|
+
- if page.left_outer? || page.right_outer? || page.inside_window?
|
9
|
+
== page_tag page
|
10
|
+
- elsif !page.was_truncated?
|
11
|
+
== gap_tag
|
12
|
+
|
13
|
+
- unless current_page.last?
|
14
|
+
== next_page_tag
|
15
|
+
== last_page_tag
|