comable-backend 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +97 -0
- data/app/assets/javascripts/comable/admin/application.coffee +76 -0
- data/app/assets/javascripts/comable/admin/categories.coffee +59 -0
- data/app/assets/javascripts/comable/admin/dashboard.coffee +32 -0
- data/app/assets/javascripts/comable/admin/dispatcher.coffee +21 -0
- data/app/assets/javascripts/comable/admin/orders.coffee +44 -0
- data/app/assets/javascripts/comable/admin/pages.coffee +69 -0
- data/app/assets/javascripts/comable/admin/products.coffee +21 -0
- data/app/assets/javascripts/comable/admin/search.coffee +35 -0
- data/app/assets/javascripts/comable/admin/themes.coffee +64 -0
- data/app/assets/stylesheets/comable/admin/_common.scss +153 -0
- data/app/assets/stylesheets/comable/admin/_dashboard.scss +81 -0
- data/app/assets/stylesheets/comable/admin/_errors.scss +18 -0
- data/app/assets/stylesheets/comable/admin/_flow.scss +149 -0
- data/app/assets/stylesheets/comable/admin/_mixins.scss +16 -0
- data/app/assets/stylesheets/comable/admin/_orders.scss +54 -0
- data/app/assets/stylesheets/comable/admin/_overrides.scss +4 -0
- data/app/assets/stylesheets/comable/admin/_pages.scss +30 -0
- data/app/assets/stylesheets/comable/admin/_products.scss +18 -0
- data/app/assets/stylesheets/comable/admin/_themes.scss +71 -0
- data/app/assets/stylesheets/comable/admin/_user_sessions.scss +57 -0
- data/app/assets/stylesheets/comable/admin/_variables.scss +38 -0
- data/app/assets/stylesheets/comable/admin/application.scss +26 -0
- data/app/assets/stylesheets/comable/admin/overrides/awesome_admin_layout.scss +25 -0
- data/app/assets/stylesheets/comable/admin/overrides/bootstrap.scss +81 -0
- data/app/assets/stylesheets/comable/admin/overrides/jstree.scss +71 -0
- data/app/assets/stylesheets/comable/admin/overrides/tagit.scss +22 -0
- data/app/controllers/comable/admin/application_controller.rb +58 -0
- data/app/controllers/comable/admin/categories_controller.rb +17 -0
- data/app/controllers/comable/admin/dashboard_controller.rb +19 -0
- data/app/controllers/comable/admin/orders_controller.rb +102 -0
- data/app/controllers/comable/admin/pages_controller.rb +72 -0
- data/app/controllers/comable/admin/payment_methods_controller.rb +59 -0
- data/app/controllers/comable/admin/products_controller.rb +82 -0
- data/app/controllers/comable/admin/shipment_methods_controller.rb +57 -0
- data/app/controllers/comable/admin/stocks_controller.rb +81 -0
- data/app/controllers/comable/admin/store_controller.rb +42 -0
- data/app/controllers/comable/admin/themes_controller.rb +101 -0
- data/app/controllers/comable/admin/trackers_controller.rb +58 -0
- data/app/controllers/comable/admin/user_sessions_controller.rb +8 -0
- data/app/controllers/comable/admin/users_controller.rb +47 -0
- data/app/helpers/comable/admin/application_helper.rb +53 -0
- data/app/helpers/comable/admin/orders_helper.rb +30 -0
- data/app/helpers/comable/admin/pages_helper.rb +6 -0
- data/app/helpers/comable/admin/products_helper.rb +6 -0
- data/app/helpers/comable/admin/shipment_methods_helper.rb +6 -0
- data/app/helpers/comable/admin/stores_helper.rb +6 -0
- data/app/helpers/comable/admin/themes_helper.rb +69 -0
- data/app/views/comable/admin/categories/index.slim +40 -0
- data/app/views/comable/admin/dashboard/_widget.slim +13 -0
- data/app/views/comable/admin/dashboard/show.slim +43 -0
- data/app/views/comable/admin/orders/_google_map.slim +39 -0
- data/app/views/comable/admin/orders/_payment_state.slim +40 -0
- data/app/views/comable/admin/orders/_shipment_state.slim +44 -0
- data/app/views/comable/admin/orders/edit.slim +170 -0
- data/app/views/comable/admin/orders/index.slim +95 -0
- data/app/views/comable/admin/orders/show.slim +177 -0
- data/app/views/comable/admin/pages/_form.slim +69 -0
- data/app/views/comable/admin/pages/edit.slim +31 -0
- data/app/views/comable/admin/pages/index.slim +55 -0
- data/app/views/comable/admin/pages/new.slim +16 -0
- data/app/views/comable/admin/payment_methods/_form.slim +35 -0
- data/app/views/comable/admin/payment_methods/edit.slim +27 -0
- data/app/views/comable/admin/payment_methods/index.slim +40 -0
- data/app/views/comable/admin/payment_methods/new.slim +16 -0
- data/app/views/comable/admin/products/_form.slim +137 -0
- data/app/views/comable/admin/products/edit.slim +41 -0
- data/app/views/comable/admin/products/index.slim +95 -0
- data/app/views/comable/admin/products/new.slim +16 -0
- data/app/views/comable/admin/shared/_advanced_search.slim +7 -0
- data/app/views/comable/admin/shared/_condition_fields.slim +15 -0
- data/app/views/comable/admin/shared/_footer.slim +8 -0
- data/app/views/comable/admin/shared/_grouping_fields.slim +8 -0
- data/app/views/comable/admin/shared/_image_fields.slim +15 -0
- data/app/views/comable/admin/shared/_notifier.slim +5 -0
- data/app/views/comable/admin/shared/_value_fields.slim +1 -0
- data/app/views/comable/admin/shared/export.xlsx.axlsx +17 -0
- data/app/views/comable/admin/shipment_methods/_form.slim +29 -0
- data/app/views/comable/admin/shipment_methods/edit.slim +27 -0
- data/app/views/comable/admin/shipment_methods/index.slim +37 -0
- data/app/views/comable/admin/shipment_methods/new.slim +16 -0
- data/app/views/comable/admin/stocks/_form.slim +34 -0
- data/app/views/comable/admin/stocks/edit.slim +37 -0
- data/app/views/comable/admin/stocks/index.slim +81 -0
- data/app/views/comable/admin/stocks/new.slim +18 -0
- data/app/views/comable/admin/store/_form.slim +32 -0
- data/app/views/comable/admin/store/edit.slim +12 -0
- data/app/views/comable/admin/themes/_editor.slim +8 -0
- data/app/views/comable/admin/themes/_form.slim +31 -0
- data/app/views/comable/admin/themes/edit.slim +35 -0
- data/app/views/comable/admin/themes/index.slim +37 -0
- data/app/views/comable/admin/themes/new.slim +16 -0
- data/app/views/comable/admin/themes/show_file.slim +93 -0
- data/app/views/comable/admin/trackers/_form.slim +109 -0
- data/app/views/comable/admin/trackers/edit.slim +27 -0
- data/app/views/comable/admin/trackers/index.slim +37 -0
- data/app/views/comable/admin/trackers/new.slim +16 -0
- data/app/views/comable/admin/user_sessions/new.slim +25 -0
- data/app/views/comable/admin/users/edit.slim +79 -0
- data/app/views/comable/admin/users/index.slim +71 -0
- data/app/views/comable/admin/users/show.slim +88 -0
- 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 +36 -0
- data/config/initializers/awesome_admin_layout.rb +110 -0
- data/config/routes.rb +63 -0
- data/lib/comable/backend.rb +1 -0
- data/lib/comable/backend/engine.rb +67 -0
- data/lib/tasks/comable_backend_tasks.rake +4 -0
- metadata +514 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
.comable-page
|
2
|
+
.comable-page-heading
|
3
|
+
ul.pull-right.list-inline
|
4
|
+
li
|
5
|
+
.btn-group role="group"
|
6
|
+
= link_to_previous_page @users, '<', class: 'btn btn-default' do
|
7
|
+
.btn.btn-default disabled="disabled"
|
8
|
+
| <
|
9
|
+
= link_to_next_page @users, '>', class: 'btn btn-default' do
|
10
|
+
.btn.btn-default disabled="disabled"
|
11
|
+
| >
|
12
|
+
|
13
|
+
h1.page-header
|
14
|
+
= Comable.t('admin.nav.user')
|
15
|
+
small<
|
16
|
+
| #{@users.total_count} #{Comable.t('admin.results')}
|
17
|
+
|
18
|
+
.comable-page-body
|
19
|
+
.comable-search
|
20
|
+
= search_form_for @q, url: comable.admin_users_path do |f|
|
21
|
+
.input-group
|
22
|
+
span.input-group-btn
|
23
|
+
button.btn.btn-default.dropdown-toggle type="button" data-toggle="dropdown"
|
24
|
+
i.fa.fa-search
|
25
|
+
span.caret<
|
26
|
+
ul.dropdown-menu role="menu"
|
27
|
+
li
|
28
|
+
= link_to Comable.t('admin.advanced_search'), 'javascript:void(0)', 'data-toggle' => 'collapse', 'data-target' => '#comable-advanced-search'
|
29
|
+
li
|
30
|
+
= link_to Comable.t('admin.clear_search_conditions'), comable.admin_users_path
|
31
|
+
= f.text_field :email_cont, class: 'form-control'
|
32
|
+
span.input-group-btn
|
33
|
+
= f.submit Comable.t('admin.search'), class: 'btn btn-default'
|
34
|
+
|
35
|
+
= render 'comable/admin/shared/advanced_search', f: f
|
36
|
+
|
37
|
+
section
|
38
|
+
- if @users.empty?
|
39
|
+
= Comable.t('admin.not_found')
|
40
|
+
- else
|
41
|
+
table.table.table-striped
|
42
|
+
thead
|
43
|
+
th
|
44
|
+
= sort_link [:comable, @q], :id
|
45
|
+
th
|
46
|
+
= sort_link [:comable, @q], :email
|
47
|
+
th
|
48
|
+
= @users.klass.human_attribute_name(:bill_full_name)
|
49
|
+
th
|
50
|
+
= @users.klass.human_attribute_name(:bill_address)
|
51
|
+
th
|
52
|
+
= @users.klass.human_attribute_name(:orders)
|
53
|
+
tbody
|
54
|
+
- @users.each do |user|
|
55
|
+
tr
|
56
|
+
td
|
57
|
+
= link_to user.human_id, comable.admin_user_path(user)
|
58
|
+
td
|
59
|
+
= user.email
|
60
|
+
td
|
61
|
+
= user.bill_full_name
|
62
|
+
td
|
63
|
+
- if user.bill_address
|
64
|
+
span> = user.bill_address.state_name
|
65
|
+
span> = user.bill_address.city
|
66
|
+
span> = user.bill_address.detail
|
67
|
+
td
|
68
|
+
| #{user.orders.count} #{Comable.t('admin.times')}
|
69
|
+
|
70
|
+
.text-center
|
71
|
+
= paginate @users, theme: :comable_backend
|
@@ -0,0 +1,88 @@
|
|
1
|
+
.comable-page
|
2
|
+
.comable-page-heading
|
3
|
+
ul.pull-right.list-inline
|
4
|
+
li.btn-group
|
5
|
+
= link_to comable.edit_admin_user_path(@user), class: 'btn btn-default' do
|
6
|
+
span.fa.fa-edit>
|
7
|
+
= Comable.t('admin.actions.edit')
|
8
|
+
= link_to Comable.t('admin.nav.order'), comable.admin_orders_path(q: { user_id_eq: @user.id }), class: 'btn btn-default'
|
9
|
+
li
|
10
|
+
/ TODO: Comment out after implemented.
|
11
|
+
/ = link_to Comable.t('admin.nav.orders.cart'), '#', class: 'btn btn-default'
|
12
|
+
|
13
|
+
h1.page-header
|
14
|
+
ol.breadcrumb
|
15
|
+
li>
|
16
|
+
= link_to Comable.t('admin.nav.user'), comable.admin_users_path
|
17
|
+
li.active
|
18
|
+
= @user.human_id
|
19
|
+
- if @user.bill_full_name
|
20
|
+
small<
|
21
|
+
= Comable.t('honorific', name: @user.bill_full_name)
|
22
|
+
|
23
|
+
.comable-page-body
|
24
|
+
section
|
25
|
+
dl.dl-horizontal
|
26
|
+
dt
|
27
|
+
= @user.class.human_attribute_name(:role)
|
28
|
+
dd
|
29
|
+
= @user.role.text
|
30
|
+
dt
|
31
|
+
= @user.class.human_attribute_name(:email)
|
32
|
+
dd
|
33
|
+
= @user.email
|
34
|
+
- if @user.bill_address
|
35
|
+
dt
|
36
|
+
= @user.class.human_attribute_name(:bill_address)
|
37
|
+
dd
|
38
|
+
ul.list-unstyled
|
39
|
+
li = @user.bill_address.zip_code
|
40
|
+
li = @user.bill_address.full_name
|
41
|
+
li = @user.bill_address.state_name
|
42
|
+
li = @user.bill_address.city
|
43
|
+
li = @user.bill_address.detail
|
44
|
+
li = "#{@user.bill_address.class.human_attribute_name(:phone_number)}: #{@user.bill_address.phone_number}"
|
45
|
+
|
46
|
+
- if @user.orders.any?
|
47
|
+
section
|
48
|
+
.panel.panel-default
|
49
|
+
.panel-heading
|
50
|
+
.panel-title
|
51
|
+
= Comable.t('admin.nav.users.new_orders', count: 5)
|
52
|
+
|
53
|
+
table.table
|
54
|
+
thead
|
55
|
+
tr
|
56
|
+
th
|
57
|
+
= @user.orders.klass.human_attribute_name(:code)
|
58
|
+
th
|
59
|
+
= @user.orders.klass.human_attribute_name(:state)
|
60
|
+
th
|
61
|
+
= @user.orders.klass.human_attribute_name(:bill_full_name)
|
62
|
+
th
|
63
|
+
= @user.orders.klass.human_attribute_name(:order_items)
|
64
|
+
th
|
65
|
+
= @user.orders.klass.human_attribute_name(:total_price)
|
66
|
+
th
|
67
|
+
= @user.orders.klass.human_attribute_name(:completed_at)
|
68
|
+
tbody
|
69
|
+
- @user.orders.limit(5).each do |order|
|
70
|
+
tr
|
71
|
+
td
|
72
|
+
= link_to order.code, comable.admin_order_path(order)
|
73
|
+
td
|
74
|
+
= order.human_state_name
|
75
|
+
td
|
76
|
+
= order.bill_full_name
|
77
|
+
td
|
78
|
+
ul.list-unstyled
|
79
|
+
- order.order_items.each do |order_item|
|
80
|
+
li
|
81
|
+
| #{order_item.name_with_sku} x #{order_item.quantity}
|
82
|
+
td
|
83
|
+
= number_to_currency order.total_price
|
84
|
+
td
|
85
|
+
= l order.completed_at
|
86
|
+
|
87
|
+
.panel-footer.text-right
|
88
|
+
= link_to Comable.t('admin.more'), comable.admin_orders_path(search_user_id: @user.id), class: 'btn btn-default'
|
@@ -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
|
@@ -0,0 +1,36 @@
|
|
1
|
+
doctype html
|
2
|
+
html
|
3
|
+
head
|
4
|
+
meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"
|
5
|
+
title
|
6
|
+
= Comable.app_name
|
7
|
+
= stylesheet_link_tag 'comable/admin/application', media: 'all', 'data-turbolinks-track' => true
|
8
|
+
= javascript_include_tag 'comable/admin/application', 'data-turbolinks-track' => true
|
9
|
+
|
10
|
+
= yield :head
|
11
|
+
|
12
|
+
/ TODO: Use downloaded files
|
13
|
+
= stylesheet_link_tag 'http://rawgit.com/vakata/jstree/3.0.9/dist/themes/default/style.min.css', media: 'all', 'data-turbolinks-track' => true
|
14
|
+
= javascript_include_tag 'http://rawgit.com/vakata/jstree/3.0.9/dist/jstree.min.js', 'data-turbolinks-track' => true
|
15
|
+
|
16
|
+
/ TODO: Use downloaded files
|
17
|
+
= stylesheet_link_tag 'http://rawgithub.com/aehlke/tag-it/master/css/jquery.tagit.css', media: 'all', 'data-turbolinks-track' => true
|
18
|
+
= stylesheet_link_tag 'http://rawgithub.com/aehlke/tag-it/master/css/tagit.ui-zendesk.css', media: 'all', 'data-turbolinks-track' => true
|
19
|
+
= javascript_include_tag 'http://rawgithub.com/aehlke/tag-it/master/js/tag-it.min.js', 'data-turbolinks-track' => true
|
20
|
+
|
21
|
+
= csrf_meta_tags
|
22
|
+
|
23
|
+
body id="#{"comable-#{controller_name.singularize}"}" data-page="#{page_name}"
|
24
|
+
= render 'comable/admin/shared/notifier'
|
25
|
+
|
26
|
+
- if current_comable_user.signed_in?
|
27
|
+
== render_admin_layout do
|
28
|
+
#wrapper
|
29
|
+
main.container-fluid
|
30
|
+
= yield
|
31
|
+
|
32
|
+
= render 'comable/admin/shared/footer'
|
33
|
+
- else
|
34
|
+
main
|
35
|
+
= yield
|
36
|
+
= render 'comable/admin/shared/footer'
|
@@ -0,0 +1,110 @@
|
|
1
|
+
AwesomeAdminLayout.setup(only: Comable::Admin::ApplicationController) do |controller|
|
2
|
+
comable = controller.comable
|
3
|
+
current_comable_user = controller.current_comable_user
|
4
|
+
|
5
|
+
navigation do
|
6
|
+
brand Comable.app_name do
|
7
|
+
external_link comable.root_path
|
8
|
+
end
|
9
|
+
|
10
|
+
item Comable.t('admin.nav.dashboard') do
|
11
|
+
link comable.admin_root_path
|
12
|
+
icon 'dashboard'
|
13
|
+
end
|
14
|
+
|
15
|
+
item Comable.t('admin.nav.order') do
|
16
|
+
link comable.admin_orders_path
|
17
|
+
icon 'shopping-cart'
|
18
|
+
end
|
19
|
+
|
20
|
+
item Comable.t('admin.nav.product') do
|
21
|
+
nest :products
|
22
|
+
icon 'cube'
|
23
|
+
end
|
24
|
+
|
25
|
+
item Comable.t('admin.nav.user') do
|
26
|
+
link comable.admin_users_path
|
27
|
+
icon 'user'
|
28
|
+
active controller.controller_name == 'users' && controller.action_name != 'profile'
|
29
|
+
end
|
30
|
+
|
31
|
+
divider
|
32
|
+
|
33
|
+
item Comable.t('admin.nav.store') do
|
34
|
+
nest :store
|
35
|
+
icon 'home'
|
36
|
+
end
|
37
|
+
|
38
|
+
flex_divider
|
39
|
+
|
40
|
+
item current_comable_user.email do
|
41
|
+
nest :profile
|
42
|
+
icon 'gift'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
navigation :products do
|
47
|
+
brand Comable.t('admin.nav.product')
|
48
|
+
|
49
|
+
item Comable.t('admin.nav.products.list') do
|
50
|
+
link comable.admin_products_path(hoge: 112)
|
51
|
+
end
|
52
|
+
|
53
|
+
item Comable.t('admin.nav.stock') do
|
54
|
+
link comable.admin_stocks_path
|
55
|
+
end
|
56
|
+
|
57
|
+
item Comable.t('admin.nav.category') do
|
58
|
+
link comable.admin_categories_path
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
navigation :store do
|
63
|
+
brand Comable.t('admin.nav.store') do
|
64
|
+
external_link comable.root_path
|
65
|
+
end
|
66
|
+
|
67
|
+
item Comable.t('admin.nav.theme') do
|
68
|
+
link comable.admin_themes_path
|
69
|
+
end
|
70
|
+
|
71
|
+
item Comable.t('admin.nav.page') do
|
72
|
+
link comable.admin_pages_path
|
73
|
+
end
|
74
|
+
|
75
|
+
divider
|
76
|
+
|
77
|
+
item Comable.t('admin.nav.shipment_method') do
|
78
|
+
link comable.admin_shipment_methods_path
|
79
|
+
end
|
80
|
+
|
81
|
+
item Comable.t('admin.nav.payment_method') do
|
82
|
+
link comable.admin_payment_methods_path
|
83
|
+
end
|
84
|
+
|
85
|
+
item Comable.t('admin.nav.tracker') do
|
86
|
+
link comable.admin_trackers_path
|
87
|
+
end
|
88
|
+
|
89
|
+
divider
|
90
|
+
|
91
|
+
item Comable.t('admin.nav.store') do
|
92
|
+
link comable.admin_store_path
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
navigation :profile do
|
97
|
+
brand current_comable_user.email
|
98
|
+
|
99
|
+
item Comable.t('admin.edit_profile') do
|
100
|
+
link comable.admin_profile_path
|
101
|
+
active controller.controller_name == 'users' && controller.action_name == 'profile'
|
102
|
+
end
|
103
|
+
|
104
|
+
divider
|
105
|
+
|
106
|
+
item Comable.t('admin.sign_out') do
|
107
|
+
link comable.destroy_user_session_path, method: :delete
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
Comable::Core::Engine.routes.draw do
|
2
|
+
namespace :admin do
|
3
|
+
root to: 'dashboard#show'
|
4
|
+
|
5
|
+
resource :dashboard, only: :show
|
6
|
+
|
7
|
+
resources :products do
|
8
|
+
resources :stocks
|
9
|
+
|
10
|
+
collection do
|
11
|
+
get :export
|
12
|
+
post :import
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
resources :stocks do
|
17
|
+
collection do
|
18
|
+
get :export
|
19
|
+
post :import
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
resources :orders do
|
24
|
+
collection do
|
25
|
+
get :export
|
26
|
+
end
|
27
|
+
|
28
|
+
member do
|
29
|
+
post :cancel
|
30
|
+
post :resume
|
31
|
+
post :cancel_payment
|
32
|
+
post :resume_payment
|
33
|
+
post :ship
|
34
|
+
post :cancel_shipment
|
35
|
+
post :resume_shipment
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
resources :categories
|
40
|
+
resources :pages
|
41
|
+
resources :users
|
42
|
+
resources :shipment_methods
|
43
|
+
resources :payment_methods
|
44
|
+
resources :trackers
|
45
|
+
|
46
|
+
resources :themes do
|
47
|
+
member do
|
48
|
+
get 'tree', action: :tree, as: :tree
|
49
|
+
get 'file/*path', action: :show_file, constraints: { path: /.+/, format: false }, as: :file
|
50
|
+
put 'file/*path', action: :update_file, constraints: { path: /.+/, format: false }
|
51
|
+
put :use
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
resource :store, controller: :store, only: [:show, :edit, :update]
|
56
|
+
|
57
|
+
devise_for :user, path: :user, class_name: Comable::User.name, module: :devise, controllers: {
|
58
|
+
sessions: 'comable/admin/user_sessions'
|
59
|
+
}
|
60
|
+
|
61
|
+
get :profile, controller: :users
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'comable/backend/engine'
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'comable/core'
|
2
|
+
|
3
|
+
require 'slim'
|
4
|
+
require 'sass-rails'
|
5
|
+
require 'coffee-rails'
|
6
|
+
require 'compass-rails'
|
7
|
+
require 'bootstrap-sass'
|
8
|
+
require 'font-awesome-rails'
|
9
|
+
require 'kaminari'
|
10
|
+
require 'dynamic_form'
|
11
|
+
require 'ransack'
|
12
|
+
|
13
|
+
require 'jquery-rails'
|
14
|
+
require 'jquery-ui-rails'
|
15
|
+
require 'raphael-rails'
|
16
|
+
require 'morrisjs-rails'
|
17
|
+
require 'nprogress-rails'
|
18
|
+
require 'gritter'
|
19
|
+
require 'turbolinks'
|
20
|
+
require 'jquery-turbolinks'
|
21
|
+
require 'awesome_admin_layout'
|
22
|
+
require 'ace-rails-ap'
|
23
|
+
|
24
|
+
require 'bootstrap3-datetimepicker-rails'
|
25
|
+
require 'momentjs-rails'
|
26
|
+
|
27
|
+
module Comable
|
28
|
+
module Backend
|
29
|
+
class Engine < ::Rails::Engine
|
30
|
+
# XXX: a code below to delegate comable:install:migrations to comable-core
|
31
|
+
config.paths['db/migrate'] = []
|
32
|
+
|
33
|
+
config.generators do |g|
|
34
|
+
g.template_engine :slim
|
35
|
+
g.stylesheet_engine :sass
|
36
|
+
g.javascript_engine :coffee
|
37
|
+
g.test_framework :rspec, fixture: true
|
38
|
+
g.fixture_replacement :factory_girl, dir: 'spec/factories'
|
39
|
+
end
|
40
|
+
|
41
|
+
initializer 'comable.ransack.configure' do
|
42
|
+
Ransack.configure do |config|
|
43
|
+
config.add_predicate(
|
44
|
+
'eq_any_splitted',
|
45
|
+
arel_predicate: 'eq_any',
|
46
|
+
formatter: proc { |v| v.split(' ') },
|
47
|
+
validator: proc { |v| v.present? },
|
48
|
+
compounds: false,
|
49
|
+
type: :string
|
50
|
+
)
|
51
|
+
|
52
|
+
config.add_predicate(
|
53
|
+
'cont_any_splitted',
|
54
|
+
arel_predicate: 'matches_any',
|
55
|
+
formatter: proc { |v| v.split(' ').map { |s| "%#{s}%" } },
|
56
|
+
validator: proc { |v| v.present? },
|
57
|
+
compounds: false,
|
58
|
+
type: :string
|
59
|
+
)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Add support Rails 4.1.x, 4.2.x for gritter
|
64
|
+
config.assets.precompile += %w( error.png gritter-close.png gritter.png ie-spacer.gif notice.png progress.gif success.png warning.png ) if Rails::VERSION::MAJOR == 4
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|