comable-backend 0.6.0

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.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +97 -0
  4. data/app/assets/javascripts/comable/admin/application.coffee +76 -0
  5. data/app/assets/javascripts/comable/admin/categories.coffee +59 -0
  6. data/app/assets/javascripts/comable/admin/dashboard.coffee +32 -0
  7. data/app/assets/javascripts/comable/admin/dispatcher.coffee +21 -0
  8. data/app/assets/javascripts/comable/admin/orders.coffee +44 -0
  9. data/app/assets/javascripts/comable/admin/pages.coffee +69 -0
  10. data/app/assets/javascripts/comable/admin/products.coffee +21 -0
  11. data/app/assets/javascripts/comable/admin/search.coffee +35 -0
  12. data/app/assets/javascripts/comable/admin/themes.coffee +64 -0
  13. data/app/assets/stylesheets/comable/admin/_common.scss +153 -0
  14. data/app/assets/stylesheets/comable/admin/_dashboard.scss +81 -0
  15. data/app/assets/stylesheets/comable/admin/_errors.scss +18 -0
  16. data/app/assets/stylesheets/comable/admin/_flow.scss +149 -0
  17. data/app/assets/stylesheets/comable/admin/_mixins.scss +16 -0
  18. data/app/assets/stylesheets/comable/admin/_orders.scss +54 -0
  19. data/app/assets/stylesheets/comable/admin/_overrides.scss +4 -0
  20. data/app/assets/stylesheets/comable/admin/_pages.scss +30 -0
  21. data/app/assets/stylesheets/comable/admin/_products.scss +18 -0
  22. data/app/assets/stylesheets/comable/admin/_themes.scss +71 -0
  23. data/app/assets/stylesheets/comable/admin/_user_sessions.scss +57 -0
  24. data/app/assets/stylesheets/comable/admin/_variables.scss +38 -0
  25. data/app/assets/stylesheets/comable/admin/application.scss +26 -0
  26. data/app/assets/stylesheets/comable/admin/overrides/awesome_admin_layout.scss +25 -0
  27. data/app/assets/stylesheets/comable/admin/overrides/bootstrap.scss +81 -0
  28. data/app/assets/stylesheets/comable/admin/overrides/jstree.scss +71 -0
  29. data/app/assets/stylesheets/comable/admin/overrides/tagit.scss +22 -0
  30. data/app/controllers/comable/admin/application_controller.rb +58 -0
  31. data/app/controllers/comable/admin/categories_controller.rb +17 -0
  32. data/app/controllers/comable/admin/dashboard_controller.rb +19 -0
  33. data/app/controllers/comable/admin/orders_controller.rb +102 -0
  34. data/app/controllers/comable/admin/pages_controller.rb +72 -0
  35. data/app/controllers/comable/admin/payment_methods_controller.rb +59 -0
  36. data/app/controllers/comable/admin/products_controller.rb +82 -0
  37. data/app/controllers/comable/admin/shipment_methods_controller.rb +57 -0
  38. data/app/controllers/comable/admin/stocks_controller.rb +81 -0
  39. data/app/controllers/comable/admin/store_controller.rb +42 -0
  40. data/app/controllers/comable/admin/themes_controller.rb +101 -0
  41. data/app/controllers/comable/admin/trackers_controller.rb +58 -0
  42. data/app/controllers/comable/admin/user_sessions_controller.rb +8 -0
  43. data/app/controllers/comable/admin/users_controller.rb +47 -0
  44. data/app/helpers/comable/admin/application_helper.rb +53 -0
  45. data/app/helpers/comable/admin/orders_helper.rb +30 -0
  46. data/app/helpers/comable/admin/pages_helper.rb +6 -0
  47. data/app/helpers/comable/admin/products_helper.rb +6 -0
  48. data/app/helpers/comable/admin/shipment_methods_helper.rb +6 -0
  49. data/app/helpers/comable/admin/stores_helper.rb +6 -0
  50. data/app/helpers/comable/admin/themes_helper.rb +69 -0
  51. data/app/views/comable/admin/categories/index.slim +40 -0
  52. data/app/views/comable/admin/dashboard/_widget.slim +13 -0
  53. data/app/views/comable/admin/dashboard/show.slim +43 -0
  54. data/app/views/comable/admin/orders/_google_map.slim +39 -0
  55. data/app/views/comable/admin/orders/_payment_state.slim +40 -0
  56. data/app/views/comable/admin/orders/_shipment_state.slim +44 -0
  57. data/app/views/comable/admin/orders/edit.slim +170 -0
  58. data/app/views/comable/admin/orders/index.slim +95 -0
  59. data/app/views/comable/admin/orders/show.slim +177 -0
  60. data/app/views/comable/admin/pages/_form.slim +69 -0
  61. data/app/views/comable/admin/pages/edit.slim +31 -0
  62. data/app/views/comable/admin/pages/index.slim +55 -0
  63. data/app/views/comable/admin/pages/new.slim +16 -0
  64. data/app/views/comable/admin/payment_methods/_form.slim +35 -0
  65. data/app/views/comable/admin/payment_methods/edit.slim +27 -0
  66. data/app/views/comable/admin/payment_methods/index.slim +40 -0
  67. data/app/views/comable/admin/payment_methods/new.slim +16 -0
  68. data/app/views/comable/admin/products/_form.slim +137 -0
  69. data/app/views/comable/admin/products/edit.slim +41 -0
  70. data/app/views/comable/admin/products/index.slim +95 -0
  71. data/app/views/comable/admin/products/new.slim +16 -0
  72. data/app/views/comable/admin/shared/_advanced_search.slim +7 -0
  73. data/app/views/comable/admin/shared/_condition_fields.slim +15 -0
  74. data/app/views/comable/admin/shared/_footer.slim +8 -0
  75. data/app/views/comable/admin/shared/_grouping_fields.slim +8 -0
  76. data/app/views/comable/admin/shared/_image_fields.slim +15 -0
  77. data/app/views/comable/admin/shared/_notifier.slim +5 -0
  78. data/app/views/comable/admin/shared/_value_fields.slim +1 -0
  79. data/app/views/comable/admin/shared/export.xlsx.axlsx +17 -0
  80. data/app/views/comable/admin/shipment_methods/_form.slim +29 -0
  81. data/app/views/comable/admin/shipment_methods/edit.slim +27 -0
  82. data/app/views/comable/admin/shipment_methods/index.slim +37 -0
  83. data/app/views/comable/admin/shipment_methods/new.slim +16 -0
  84. data/app/views/comable/admin/stocks/_form.slim +34 -0
  85. data/app/views/comable/admin/stocks/edit.slim +37 -0
  86. data/app/views/comable/admin/stocks/index.slim +81 -0
  87. data/app/views/comable/admin/stocks/new.slim +18 -0
  88. data/app/views/comable/admin/store/_form.slim +32 -0
  89. data/app/views/comable/admin/store/edit.slim +12 -0
  90. data/app/views/comable/admin/themes/_editor.slim +8 -0
  91. data/app/views/comable/admin/themes/_form.slim +31 -0
  92. data/app/views/comable/admin/themes/edit.slim +35 -0
  93. data/app/views/comable/admin/themes/index.slim +37 -0
  94. data/app/views/comable/admin/themes/new.slim +16 -0
  95. data/app/views/comable/admin/themes/show_file.slim +93 -0
  96. data/app/views/comable/admin/trackers/_form.slim +109 -0
  97. data/app/views/comable/admin/trackers/edit.slim +27 -0
  98. data/app/views/comable/admin/trackers/index.slim +37 -0
  99. data/app/views/comable/admin/trackers/new.slim +16 -0
  100. data/app/views/comable/admin/user_sessions/new.slim +25 -0
  101. data/app/views/comable/admin/users/edit.slim +79 -0
  102. data/app/views/comable/admin/users/index.slim +71 -0
  103. data/app/views/comable/admin/users/show.slim +88 -0
  104. data/app/views/kaminari/comable_backend/_first_page.html.slim +2 -0
  105. data/app/views/kaminari/comable_backend/_gap.html.slim +2 -0
  106. data/app/views/kaminari/comable_backend/_last_page.html.slim +2 -0
  107. data/app/views/kaminari/comable_backend/_next_page.html.slim +2 -0
  108. data/app/views/kaminari/comable_backend/_page.html.slim +3 -0
  109. data/app/views/kaminari/comable_backend/_paginator.html.slim +15 -0
  110. data/app/views/kaminari/comable_backend/_prev_page.html.slim +2 -0
  111. data/app/views/layouts/comable/admin/application.slim +36 -0
  112. data/config/initializers/awesome_admin_layout.rb +110 -0
  113. data/config/routes.rb +63 -0
  114. data/lib/comable/backend.rb +1 -0
  115. data/lib/comable/backend/engine.rb +67 -0
  116. data/lib/tasks/comable_backend_tasks.rake +4 -0
  117. metadata +514 -0
@@ -0,0 +1,35 @@
1
+ = error_messages_for @payment_method
2
+
3
+ = form_for [comable, :admin, @payment_method] do |f|
4
+ .hidden
5
+ = f.submit
6
+
7
+ fieldset
8
+ .col-md-3
9
+ legend
10
+ = Comable.t('admin.general')
11
+
12
+ .col-md-9
13
+ .form-group
14
+ = f.label :name
15
+ = f.text_field :name
16
+
17
+ .form-group
18
+ = f.label :payment_provider
19
+ .row
20
+ .col-sm-6
21
+ = f.select :payment_provider_type, Comable::PaymentProvider.all.map { |provider_class| [provider_class.display_name, provider_class.name] }
22
+ .col-sm-6
23
+ = f.select :payment_provider_kind, Comable::PaymentProvider::General.kind.map.with_index { |(_, value), index| [value, index] }
24
+
25
+ .form-group
26
+ = f.label :fee
27
+ = f.text_field :fee
28
+
29
+ .form-group
30
+ = f.label :enable_price
31
+ .row
32
+ .col-sm-6
33
+ = f.text_field :enable_price_from
34
+ .col-sm-6
35
+ = f.text_field :enable_price_to
@@ -0,0 +1,27 @@
1
+ .comable-page
2
+ .comable-main-fixed-top
3
+ .comable-page-heading
4
+ ul.pull-right.list-inline
5
+ li
6
+ = link_to_save
7
+
8
+ h1.page-header
9
+ ol.breadcrumb
10
+ li>
11
+ = link_to Comable.t('admin.nav.payment_method'), comable.admin_payment_methods_path
12
+ li.active
13
+ = @payment_method.name
14
+
15
+ .comable-page-body
16
+ = render 'form'
17
+ hr
18
+ .panel.panel-danger
19
+ .panel-heading type="button" data-toggle="collapse" data-target="#comable-danger"
20
+ strong
21
+ span.fa.fa-angle-down>
22
+ = Comable.t('admin.actions.destroy')
23
+ #comable-danger.collapse
24
+ .panel-body
25
+ p
26
+ = Comable.t('admin.confirmation_to_remove_product')
27
+ = link_to Comable.t('admin.actions.destroy'), comable.admin_payment_method_path(@payment_method), method: :delete, class: 'btn btn-danger'
@@ -0,0 +1,40 @@
1
+ .comable-page
2
+ .comable-page-heading
3
+ ul.pull-right.list-inline
4
+ li
5
+ = link_to Comable.t('admin.actions.new'), comable.new_admin_payment_method_path, class: 'btn btn-default'
6
+
7
+ h1.page-header
8
+ = Comable.t('admin.nav.payment_method')
9
+ small<
10
+ | #{@payment_methods.total_count} #{Comable.t('admin.results')}
11
+
12
+ .comable-page-body
13
+ - if @payment_methods.empty?
14
+ = Comable.t('admin.not_found')
15
+ - else
16
+ table.table.table-striped
17
+ thead
18
+ th
19
+ = @payment_methods.klass.human_attribute_name(:name)
20
+ th
21
+ = @payment_methods.klass.human_attribute_name(:payment_provider)
22
+ th
23
+ = @payment_methods.klass.human_attribute_name(:enable_price)
24
+ tbody
25
+ - @payment_methods.each do |payment_method|
26
+ tr
27
+ td
28
+ = link_to payment_method.name, comable.admin_payment_method_path(payment_method)
29
+ /- unless payment_method.activated_flag
30
+ / span.fa.fa-eye-slash.text-muted<
31
+ td
32
+ = payment_method.payment_provider.display_name
33
+ td
34
+ - if payment_method.enable_price_from || payment_method.enable_price_to
35
+ span = number_to_currency payment_method.enable_price_from
36
+ span>< ~
37
+ span = number_to_currency payment_method.enable_price_to
38
+
39
+ .text-center
40
+ = paginate @payment_methods, theme: :comable_backend
@@ -0,0 +1,16 @@
1
+ .comable-page
2
+ .comable-main-fixed-top
3
+ .comable-page-heading
4
+ ul.pull-right.list-inline
5
+ li
6
+ = link_to_save
7
+
8
+ h1.page-header
9
+ ol.breadcrumb
10
+ li>
11
+ = link_to Comable.t('admin.nav.payment_method'), comable.admin_payment_methods_path
12
+ li.active
13
+ = Comable.t('admin.actions.new')
14
+
15
+ .comable-page-body
16
+ = render 'form'
@@ -0,0 +1,137 @@
1
+ = error_messages_for @product
2
+
3
+ - url = comable.admin_products_path if @product.new_record?
4
+ - url ||= comable.admin_product_path(@product)
5
+
6
+ = form_for @product, url: url, html: { multipart: true } do |f|
7
+ .hidden
8
+ = f.submit
9
+
10
+ fieldset
11
+ .col-md-3
12
+ legend
13
+ = Comable.t('admin.general')
14
+ .help-block
15
+
16
+ .col-md-9
17
+ .form-group
18
+ = f.label :code
19
+ = f.text_field :code
20
+
21
+ .form-group
22
+ = f.label :name
23
+ = f.text_field :name
24
+
25
+ .form-group
26
+ = f.label :caption
27
+ = f.text_field :caption
28
+
29
+ .form-group
30
+ = f.label :price
31
+ = f.text_field :price
32
+
33
+ / TODO: Refactoring
34
+ javascript:
35
+ comable_tagit_available_tags = #{raw Comable::Category.all.map(&:path).map { |path| path.map(&:name).join(' > ') }.sort.to_json};
36
+
37
+ .form-group
38
+ = f.label :categories
39
+ ul#comable-tagit
40
+ - @product.categories.each do |category|
41
+ li
42
+ = category.path.map(&:name).join(' > ')
43
+
44
+ hr
45
+
46
+ fieldset
47
+ .col-md-3
48
+ legend
49
+ = Comable.t('admin.stocks')
50
+ .help-block
51
+ - if @product.sku? || (@product.persisted? && @product.stocks.empty?)
52
+ = Comable.t('admin.link_to_add_new_stock')
53
+ = link_to Comable.t('admin.actions.new'), comable.new_admin_product_stock_path(@product)
54
+
55
+ .col-md-9
56
+ - if @product.stocks.any?
57
+ table.table.table-striped
58
+ thead
59
+ th
60
+ = @product.stocks.human_attribute_name(:code)
61
+ th
62
+ = @product.stocks.human_attribute_name(:quantity)
63
+ - if @product.sku?
64
+ - if @product.sku_h?
65
+ th
66
+ = @product.sku_h_item_name
67
+ - if @product.sku_v?
68
+ th
69
+ = @product.sku_v_item_name
70
+ th
71
+ = Comable.t('admin.operation')
72
+ tbody
73
+ - @product.stocks.each do |stock|
74
+ tr
75
+ td
76
+ = stock.code
77
+ td
78
+ strong class="#{(stock.quantity <= 0) ? 'text-danger' : (stock.quantity <= 10) ? 'text-warning' : 'text-success'}"
79
+ = number_with_delimiter stock.quantity
80
+ - if @product.sku?
81
+ - if @product.sku_h?
82
+ td
83
+ = stock.sku_h_choice_name
84
+ - if @product.sku_v?
85
+ td
86
+ = stock.sku_v_choice_name
87
+ td
88
+ = link_to comable.admin_stock_path(stock), class: 'btn btn-default'
89
+ i.fa.fa-edit>
90
+ = Comable.t('admin.actions.edit')
91
+
92
+ .form-group
93
+ = f.label :sku_h_item_name
94
+ = f.text_field :sku_h_item_name
95
+ .help-block
96
+ = Comable.t('admin.please_fill_when_using_sku')
97
+
98
+ .form-group
99
+ = f.label :sku_v_item_name
100
+ = f.text_field :sku_v_item_name
101
+
102
+ hr
103
+
104
+ fieldset
105
+ .col-md-3
106
+ legend
107
+ = Comable.t('admin.images')
108
+ .help-block
109
+
110
+ .col-md-9
111
+ - images = @product.images
112
+ - main_image = images.first || @product.images.build
113
+ - sub_images = images - [main_image]
114
+
115
+ .row
116
+ .col-md-6
117
+ = f.fields_for :images, main_image do |ff|
118
+ label
119
+ = Comable.t('admin.main_image')
120
+ p
121
+ = ff.file_field :file
122
+ - if ff.object.url
123
+ .thumbnail
124
+ = image_tag ff.object.url
125
+ - if ff.object.persisted?
126
+ label.remove
127
+ span> = ff.check_box :_destroy
128
+ span> = Comable.t('admin.actions.destroy')
129
+
130
+ .col-md-6
131
+ .row
132
+ - sub_images.each.with_index(1) do |image, index|
133
+ = f.fields_for :images, image do |ff|
134
+ = render 'comable/admin/shared/image_fields', ff: ff, index: index
135
+
136
+ .col-md-6
137
+ = link_to_add_fields Comable.t('admin.add_sub_image'), f, :images
@@ -0,0 +1,41 @@
1
+ .comable-page
2
+ .comable-main-fixed-top
3
+ .comable-page-heading
4
+ ul.pull-right.list-inline
5
+ li.dropdown
6
+ = link_to '#', class: 'btn btn-default', 'data-toggle' => 'dropdown' do
7
+ i.fa.fa-bars
8
+ ul.dropdown-menu.dropdown-menu-right
9
+ li
10
+ = link_to comable.product_path(@product) do
11
+ span.fa.fa-external-link>
12
+ = Comable.t('admin.check_this_product_in_frontend')
13
+ - if @product.sku? || @product.stocks.empty?
14
+ li.divider
15
+ li.dropdown-header
16
+ = Comable.t('admin.nav.stock')
17
+ li
18
+ = link_to Comable.t('admin.actions.new'), comable.new_admin_product_stock_path(@product)
19
+ li
20
+ = link_to_save
21
+
22
+ h1.page-header
23
+ ol.breadcrumb
24
+ li>
25
+ = link_to Comable.t('admin.nav.product'), comable.admin_products_path
26
+ li.active
27
+ = @product.name
28
+
29
+ .comable-page-body
30
+ = render 'form'
31
+ hr
32
+ .panel.panel-danger
33
+ .panel-heading type="button" data-toggle="collapse" data-target="#comable-danger"
34
+ strong
35
+ span.fa.fa-angle-down>
36
+ = Comable.t('admin.actions.destroy')
37
+ #comable-danger.collapse
38
+ .panel-body
39
+ p
40
+ = Comable.t('admin.confirmation_to_remove_product')
41
+ = link_to Comable.t('admin.actions.destroy'), comable.admin_product_path(@product), method: :delete, class: 'btn btn-danger'
@@ -0,0 +1,95 @@
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 @products, '<', class: 'btn btn-default' do
7
+ .btn.btn-default disabled="disabled"
8
+ | <
9
+ = link_to_next_page @products, '>', class: 'btn btn-default' do
10
+ .btn.btn-default disabled="disabled"
11
+ | >
12
+ li
13
+ = link_to comable.root_path do
14
+ = link_to Comable.t('admin.actions.new'), comable.new_admin_product_path, class: 'btn btn-default'
15
+ li.dropdown
16
+ = link_to '#', class: 'btn btn-default', 'data-toggle' => 'dropdown' do
17
+ = Comable.t('admin.more')
18
+ i.fa.fa-angle-down<
19
+ ul.dropdown-menu.dropdown-menu-right
20
+ li
21
+ = link_to Comable.t('admin.export_to_csv'), comable.export_admin_products_path(format: :csv, q: params[:q])
22
+ li
23
+ = link_to Comable.t('admin.export_to_excel'), comable.export_admin_products_path(format: :xlsx, q: params[:q])
24
+ li.divider
25
+ li
26
+ a.btn-file
27
+ span>
28
+ = Comable.t('admin.import')
29
+ = form_tag comable.import_admin_products_path, multipart: true do
30
+ = file_field_tag :file
31
+
32
+ h1.page-header
33
+ = Comable.t('admin.nav.product')
34
+ small<
35
+ | #{@products.total_count} #{Comable.t('admin.results')}
36
+
37
+ .comable-page-body
38
+ .comable-search
39
+ = search_form_for @q, url: comable.admin_products_path do |f|
40
+ .input-group
41
+ span.input-group-btn
42
+ button.btn.btn-default.dropdown-toggle type="button" data-toggle="dropdown"
43
+ i.fa.fa-search
44
+ span.caret<
45
+ ul.dropdown-menu role="menu"
46
+ li
47
+ = link_to Comable.t('admin.advanced_search'), 'javascript:void(0)', 'data-toggle' => 'collapse', 'data-target' => '#comable-advanced-search'
48
+ li
49
+ = link_to Comable.t('admin.clear_search_conditions'), comable.admin_products_path
50
+ = f.text_field :code_or_name_cont_any_splitted, class: 'form-control'
51
+ span.input-group-btn
52
+ = f.submit Comable.t('admin.search'), class: 'btn btn-default'
53
+
54
+ = render 'comable/admin/shared/advanced_search', f: f
55
+
56
+ section
57
+ - if @products.empty?
58
+ = Comable.t('admin.not_found')
59
+ - else
60
+ table.table.table-striped
61
+ thead
62
+ th
63
+ th
64
+ = sort_link [:comable, @q], :code
65
+ th
66
+ = sort_link [:comable, @q], :name
67
+ th
68
+ = sort_link [:comable, @q], :price
69
+ th
70
+ = Comable.t('admin.stocks')
71
+ tbody
72
+ - @products.each do |product|
73
+ - quantity = product.stocks.to_a.sum(&:quantity)
74
+ tr
75
+ td.comable-image
76
+ = link_to comable.admin_product_path(product), class: 'thumbnail' do
77
+ = image_tag product.image_url, width: '100%'
78
+ td
79
+ = link_to product.code, comable.admin_product_path(product)
80
+ td
81
+ = product.name
82
+ td
83
+ = number_to_currency product.price
84
+ td
85
+ ul.list-unstyled
86
+ - product.stocks.each do |stock|
87
+ li
88
+ strong class="#{(quantity <= 0) ? 'text-danger' : (quantity <= 10) ? 'text-warning' : 'text-success'}"
89
+ = number_with_delimiter stock.quantity
90
+ - if stock.sku?
91
+ span<
92
+ | (#{stock.sku_name})
93
+
94
+ .text-center
95
+ = paginate @products, theme: :comable_backend
@@ -0,0 +1,16 @@
1
+ .comable-page
2
+ .comable-main-fixed-top
3
+ .comable-page-heading
4
+ ul.pull-right.list-inline
5
+ li
6
+ = link_to_save
7
+
8
+ h1.page-header
9
+ ol.breadcrumb
10
+ li>
11
+ = link_to Comable.t('admin.nav.product'), comable.admin_products_path
12
+ li.active
13
+ = Comable.t('admin.actions.new')
14
+
15
+ .comable-page-body
16
+ = render 'form'
@@ -0,0 +1,7 @@
1
+ fieldset
2
+ .collapse#comable-advanced-search class="#{'in' if enable_advanced_search? }"
3
+ .well
4
+ = f.grouping_fields do |g|
5
+ = render 'comable/admin/shared/grouping_fields', f: g
6
+ - unless enable_advanced_search?
7
+ = build_fields f, :grouping
@@ -0,0 +1,15 @@
1
+ = content_tag :fieldset, { class: 'fields condition', 'data-object-name' => f.object_name } do
2
+ .row
3
+ .col-sm-2
4
+ = f.attribute_fields do |a|
5
+ - klass = f.object.context.object
6
+ - options = {}
7
+ - options = klass.ransack_options[:attribute_select] if klass.respond_to? :ransack_options
8
+ = content_tag(:span, a.attribute_select(options), { class: 'fields', 'data-object-name' => a.object_name }, false)
9
+ .col-sm-2
10
+ = f.predicate_select only: %i(gteq lteq eq_any_splitted cont_any_splitted), compounds: false
11
+ .col-sm-7
12
+ = f.value_fields do |v|
13
+ = render 'comable/admin/shared/value_fields', f: v
14
+ .col-sm-1.text-center
15
+ = button_to_remove_fields Comable.t('admin.remove_search_condition'), class: 'comable-remove-button'
@@ -0,0 +1,8 @@
1
+ footer
2
+ ul.list-inline
3
+ li
4
+ | #{Comable.app_name} v#{Comable.version}
5
+ li
6
+ = link_to 'GitHub', Comable.homepage
7
+ li
8
+ = link_to 'License', Comable.license