ab_admin 0.6.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/ab_admin/components/admin_assets.js.coffee +6 -2
- data/app/assets/javascripts/ab_admin/components/base_assets.js.coffee +9 -0
- data/app/assets/javascripts/ab_admin/components/gmaps.js.coffee +1 -1
- data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +6 -0
- data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +2 -2
- data/app/assets/javascripts/ab_admin/core/batch_actions.js.coffee +52 -12
- data/app/assets/javascripts/ab_admin/core/init.js.coffee +2 -0
- data/app/assets/javascripts/ab_admin/core/pjax.js.coffee +3 -2
- data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +3 -4
- data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +4 -0
- data/app/assets/stylesheets/ab_admin/components/_colored_tabs.scss +4 -0
- data/app/assets/stylesheets/ab_admin/components/_form.scss +36 -3
- data/app/controllers/admin/admin_comments_controller.rb +4 -0
- data/app/controllers/admin/assets_controller.rb +5 -2
- data/app/controllers/admin/base_controller.rb +50 -41
- data/app/controllers/admin/locators_controller.rb +1 -1
- data/app/controllers/admin/manager_controller.rb +32 -3
- data/app/controllers/admin/settings_controller.rb +2 -3
- data/app/controllers/admin/static_pages_controller.rb +5 -0
- data/app/controllers/admin/structures_controller.rb +10 -4
- data/app/controllers/admin/users_controller.rb +9 -2
- data/app/views/admin/base/_search_layout.html.slim +0 -1
- data/app/views/admin/base/index.html.slim +1 -2
- data/app/views/admin/fileupload/_container.html.slim +17 -10
- data/app/views/admin/shared/_content_actions.html.slim +18 -6
- data/app/views/admin/shared/_locale_tabs.html.slim +3 -3
- data/app/views/admin/structures/_form.html.slim +2 -1
- data/app/views/layouts/admin/_footer.html.slim +5 -4
- data/app/views/layouts/admin/application.html.slim +2 -0
- data/config/locales/ru.yml +1 -0
- data/config/routes.rb +17 -22
- data/lib/ab_admin.rb +11 -1
- data/lib/ab_admin/abstract_resource.rb +11 -2
- data/lib/ab_admin/carrierwave/base_uploader.rb +45 -25
- data/lib/ab_admin/carrierwave/file_size_validator.rb +0 -1
- data/lib/ab_admin/carrierwave/glue.rb +2 -4
- data/lib/ab_admin/concerns/admin_addition.rb +12 -4
- data/lib/ab_admin/concerns/deep_cloneable.rb +0 -1
- data/lib/ab_admin/concerns/fileuploads.rb +0 -1
- data/lib/ab_admin/concerns/headerable.rb +0 -4
- data/lib/ab_admin/concerns/nested_set.rb +2 -3
- data/lib/ab_admin/concerns/reloadable.rb +0 -2
- data/lib/ab_admin/concerns/silencer.rb +0 -3
- data/lib/ab_admin/concerns/utilities.rb +2 -4
- data/lib/ab_admin/concerns/validations.rb +1 -1
- data/lib/ab_admin/config/base.rb +26 -6
- data/lib/ab_admin/controllers/callbacks.rb +6 -6
- data/lib/ab_admin/controllers/head_options.rb +0 -1
- data/lib/ab_admin/controllers/tree.rb +0 -2
- data/lib/ab_admin/core_ext.rb +1 -1
- data/lib/ab_admin/core_ext/array.rb +0 -1
- data/lib/ab_admin/core_ext/hash.rb +11 -0
- data/lib/ab_admin/core_ext/string.rb +0 -1
- data/lib/ab_admin/devise.rb +1 -1
- data/lib/ab_admin/engine.rb +2 -1
- data/lib/ab_admin/hooks/globalize_locale_suffix_accessors.rb +17 -31
- data/lib/ab_admin/hooks/will_paginate_no_uri.rb +1 -1
- data/lib/ab_admin/i18n_tools/google_translate.rb +0 -1
- data/lib/ab_admin/i18n_tools/translate_app.rb +0 -1
- data/lib/ab_admin/menu/builder.rb +3 -2
- data/lib/ab_admin/menu/group.rb +3 -1
- data/lib/ab_admin/models/asset.rb +9 -6
- data/lib/ab_admin/models/header.rb +2 -3
- data/lib/ab_admin/models/locator.rb +1 -1
- data/lib/ab_admin/models/settings.rb +6 -6
- data/lib/ab_admin/models/structure.rb +0 -6
- data/lib/ab_admin/models/track.rb +12 -3
- data/lib/ab_admin/models/type_model.rb +0 -1
- data/lib/ab_admin/models/user.rb +0 -1
- data/lib/ab_admin/models/validations/all.rb +4 -0
- data/lib/ab_admin/models/validations/domain_name_validator.rb +9 -0
- data/lib/ab_admin/models/validations/email_validator.rb +9 -0
- data/lib/ab_admin/utils.rb +12 -4
- data/lib/ab_admin/utils/eval_helpers.rb +1 -1
- data/lib/ab_admin/utils/logger.rb +0 -2
- data/lib/ab_admin/utils/xls_document.rb +25 -6
- data/lib/ab_admin/version.rb +1 -1
- data/lib/ab_admin/views/admin_helpers.rb +5 -4
- data/lib/ab_admin/views/admin_navigation_helpers.rb +16 -5
- data/lib/ab_admin/views/form_builder.rb +41 -10
- data/lib/ab_admin/views/helpers.rb +0 -2
- data/lib/ab_admin/views/inputs/uploader_input.rb +1 -0
- data/lib/ab_admin/views/search_form_builder.rb +33 -7
- data/lib/generators/ab_admin/ckeditor_assets/ckeditor_assets_generator.rb +0 -1
- data/lib/generators/ab_admin/glob/glob_generator.rb +2 -2
- data/lib/generators/ab_admin/glob/templates/migration.erb +1 -1
- data/lib/generators/ab_admin/install/install_generator.rb +0 -1
- data/lib/generators/ab_admin/install/templates/config/seeds.rb +0 -2
- data/lib/generators/ab_admin/install/templates/helpers/admin/structures_helper.rb +1 -4
- data/lib/generators/ab_admin/install/templates/models/admin_comment.rb +1 -3
- data/lib/generators/ab_admin/install/templates/models/asset.rb +3 -5
- data/lib/generators/ab_admin/install/templates/models/header.rb +1 -5
- data/lib/generators/ab_admin/install/templates/models/static_page.rb +1 -4
- data/lib/generators/ab_admin/install/templates/models/structure.rb +1 -5
- data/lib/generators/ab_admin/install/templates/models/track.rb +1 -2
- data/lib/generators/ab_admin/install/templates/models/user.rb +1 -9
- data/lib/generators/ab_admin/install/templates/uploaders/attachment_file_uploader.rb +1 -1
- data/lib/generators/ab_admin/install/templates/uploaders/avatar_uploader.rb +1 -1
- data/lib/generators/ab_admin/install/templates/uploaders/picture_uploader.rb +1 -1
- data/lib/generators/ab_admin/model/templates/resource.erb +1 -0
- data/lib/generators/template.rb +39 -59
- metadata +38 -36
- data/lib/ab_admin/hooks/active_model_attr_accessible_few_roles.rb +0 -50
@@ -31,12 +31,18 @@ module AbAdmin
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
attribute_name = "#{attribute_name}_#{options[:locale]}" if options[:locale]
|
35
|
+
|
36
|
+
options[:disabled] = disabled_attribute?(attribute_name) unless options.has_key?(:disabled)
|
37
|
+
|
34
38
|
case options[:as]
|
35
39
|
when :map
|
36
40
|
title = options[:title] || I18n.t("admin.#{attribute_name}", default: object.class.han(attribute_name))
|
37
41
|
prefix = options[:prefix] || object.class.model_name.singular
|
38
|
-
data_fields = [:lat, :lon, :zoom].map { |attr| hidden_field(attr) }.join
|
39
|
-
|
42
|
+
data_fields = [:lat, :lon, :zoom].map { |attr| hidden_field(attr) }.join unless options[:disabled]
|
43
|
+
options[:js_options] ||= {}
|
44
|
+
options[:js_options][:disabled] = options[:disabled]
|
45
|
+
return template.input_set(title) { data_fields.to_s.html_safe + geo_input(prefix, options[:js_options]) }
|
40
46
|
when :token
|
41
47
|
options[:label] = object.class.han(attribute_name.to_s.sub(/^token_|_id$/, '')) unless options.key?(:label)
|
42
48
|
when :association, :tree_select
|
@@ -49,31 +55,56 @@ module AbAdmin
|
|
49
55
|
return template.render 'admin/shared/inputs/checkbox_tree', attribute_name: attribute_name, reflection: reflection, f: self
|
50
56
|
end
|
51
57
|
|
52
|
-
attribute_name = "#{attribute_name}_#{options[:locale]}" if options[:locale]
|
53
|
-
|
54
58
|
super(attribute_name, options, &block)
|
55
59
|
end
|
56
60
|
|
61
|
+
def input_field(attribute_name, options = {})
|
62
|
+
options[:disabled] = disabled_attribute?(attribute_name) unless options.has_key?(:disabled)
|
63
|
+
super(attribute_name, options)
|
64
|
+
end
|
65
|
+
|
66
|
+
def disable_all
|
67
|
+
@disable_all = true
|
68
|
+
@defaults ||= {}
|
69
|
+
@defaults[:disabled] = true
|
70
|
+
end
|
71
|
+
|
72
|
+
def disable_not_accessible_for(roles)
|
73
|
+
ActiveSupport::Deprecation.warn('#disable_not_accessible_for is deprecated without replacement')
|
74
|
+
@disable_not_accessible_for = roles
|
75
|
+
end
|
76
|
+
|
77
|
+
def disabled_attribute?(attribute_name)
|
78
|
+
@disable_all
|
79
|
+
# return true if @disable_all
|
80
|
+
# return unless @disable_not_accessible_for
|
81
|
+
# @accessible_attributes ||= object.class.attr_accessible.values_at(*@disable_not_accessible_for).map(&:to_a).flatten
|
82
|
+
# !@accessible_attributes.include?(attribute_name.to_s)
|
83
|
+
end
|
84
|
+
|
57
85
|
def render_dsl_node(node, options={})
|
58
86
|
input node.name, node.options.merge(options), &node.block
|
59
87
|
end
|
60
88
|
|
61
89
|
def link_to_add_assoc(assoc, options={})
|
90
|
+
return if @disable_all
|
62
91
|
model = @object.class.reflect_on_association(assoc).klass
|
63
92
|
title = [@template.icon('plus', true), I18n.t('admin.add'), options[:title] || model.model_name.human].join(' ').html_safe
|
64
93
|
link_to_add title, assoc, class: "btn btn-primary #{options[:class]}"
|
65
94
|
end
|
66
95
|
|
67
96
|
def link_to_remove_assoc
|
97
|
+
return if @disable_all
|
68
98
|
link_to_remove @template.icon('trash', true) + I18n.t('admin.delete'), class: 'btn btn-danger btn-mini pull-right'
|
69
99
|
end
|
70
100
|
|
71
|
-
def locale_tabs(&block)
|
72
|
-
|
73
|
-
Globalize.available_locales
|
74
|
-
|
101
|
+
def locale_tabs(options={}, &block)
|
102
|
+
locale_html = {}
|
103
|
+
options[:locales] ||= Globalize.available_locales
|
104
|
+
options[:locales].each do |l|
|
105
|
+
locale_html[l] = template.capture { block.call(l) }
|
75
106
|
end
|
76
|
-
template.render 'admin/shared/locale_tabs',
|
107
|
+
template.render 'admin/shared/locale_tabs', locale_html: locale_html, locales: options[:locales]
|
77
108
|
end
|
78
109
|
|
79
110
|
def save_buttons
|
@@ -86,7 +117,7 @@ module AbAdmin
|
|
86
117
|
<<-HTML.html_safe
|
87
118
|
<script src="//maps.googleapis.com/maps/api/js?sensor=false&libraries=places&language=#{I18n.locale}" type="text/javascript"></script>
|
88
119
|
<div class="geo_input" id="#{prefix}_geo_input">
|
89
|
-
<div class="control-group">
|
120
|
+
<div class="control-group #{'hidden' if js_options[:disabled]}">
|
90
121
|
<label class="control-label" for="#{input_name}">#{I18n.t('admin.geo_autocomplete')}</label>
|
91
122
|
<div class="controls">
|
92
123
|
<input type="text" name="#{input_name}" id="#{input_name}" class="geo_ac string">
|
@@ -5,15 +5,19 @@ module AbAdmin
|
|
5
5
|
:text_field_tag, :check_box_tag, :radio_button_tag, :label_tag, :select_tag,
|
6
6
|
:options_for_select, :options_from_collection_for_select, :hidden_field_tag, to: :@template
|
7
7
|
|
8
|
+
alias_method :builder_options, :options
|
9
|
+
|
8
10
|
def input(attr, options={})
|
9
11
|
field_type = field_type(attr, options)
|
10
|
-
|
12
|
+
options[:wrapper_html] ||= {}
|
13
|
+
options[:wrapper_html][:class] = "clearfix #{field_type} #{options[:wrapper_html][:class]}"
|
14
|
+
content_tag :div, options[:wrapper_html] do
|
11
15
|
public_send("#{field_type}_field", attr, options)
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
15
19
|
def select_field(attr, options={})
|
16
|
-
|
20
|
+
conditional_wrapper attr, options do
|
17
21
|
param = options[:param] || "#{options[:value_attr] || attr}_eq"
|
18
22
|
|
19
23
|
if options[:collection].is_a?(Proc)
|
@@ -27,19 +31,26 @@ module AbAdmin
|
|
27
31
|
end
|
28
32
|
|
29
33
|
options[:input_html] ||= {}
|
34
|
+
options[:input_html][:id] = "q_#{attr}"
|
35
|
+
|
30
36
|
if options[:fancy] || collection.length > 30
|
31
37
|
options[:input_html][:class] = [options[:input_html][:class], 'fancy_select'].join(' ')
|
32
38
|
end
|
33
39
|
|
34
|
-
|
35
|
-
|
40
|
+
if options[:input_html][:placeholder]
|
41
|
+
options[:input_html][:include_blank] = false
|
42
|
+
options[:input_html][:prompt] ||= options[:input_html][:placeholder]
|
43
|
+
else
|
44
|
+
options[:input_html][:include_blank] = true
|
45
|
+
end
|
46
|
+
select_tag("q[#{param}]", options_for_select(collection, params[:q][param]), options[:input_html])
|
36
47
|
end
|
37
48
|
end
|
38
49
|
|
39
50
|
def ac_select_field(attr, options={})
|
40
51
|
klass = options[:klass]
|
41
52
|
options[:param] ||= "#{options[:value_attr] || attr}_eq"
|
42
|
-
pre_select = params.
|
53
|
+
pre_select = params[:q].try!(:[], options[:param]) ? klass.where(id: params[:q][options[:param]]).map(&:for_input_token) : []
|
43
54
|
options[:input_html] ||= {}
|
44
55
|
options[:input_html].deep_merge! class: 'fancy_select', data: {class: klass.name, pre: pre_select.to_json}
|
45
56
|
string_field attr, options
|
@@ -53,8 +64,19 @@ module AbAdmin
|
|
53
64
|
end
|
54
65
|
end
|
55
66
|
|
67
|
+
def conditional_wrapper(attr, options, &block)
|
68
|
+
if builder_options[:compact_labels]
|
69
|
+
options[:input_html] ||= {}
|
70
|
+
options[:input_html][:placeholder] ||= extract_label(attr, options)
|
71
|
+
wrapper_html = {'class' => 'controls js-tooltip', 'data-placement' => 'left', 'title' => options[:input_html][:placeholder]}
|
72
|
+
content_tag(:div, wrapper_html, &block)
|
73
|
+
else
|
74
|
+
label(attr, options[:label]) + content_tag(:div, class: 'controls', &block)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
56
78
|
def string_field(attr, options={})
|
57
|
-
|
79
|
+
conditional_wrapper attr, options do
|
58
80
|
param = options[:param] || "#{options[:value_attr] || attr}_cont"
|
59
81
|
options[:input_html] ||= {}
|
60
82
|
options[:input_html][:id] = "q_#{attr}"
|
@@ -88,6 +110,7 @@ module AbAdmin
|
|
88
110
|
end + label(attr, options[:label], class: 'right-label')
|
89
111
|
end
|
90
112
|
|
113
|
+
# Rails 4.2: Should be used only for string columns because of https://github.com/activerecord-hackery/ransack/issues/617
|
91
114
|
def presence_field(attr, options={})
|
92
115
|
yes_no_field(attr, options.merge(predicates: {yes: %w(present 1), no: %w(present 0)}))
|
93
116
|
end
|
@@ -96,7 +119,6 @@ module AbAdmin
|
|
96
119
|
yes_no_field(attr, options.merge(predicates: {yes: %w(null 0), no: %w(null 1)}))
|
97
120
|
end
|
98
121
|
|
99
|
-
|
100
122
|
def hidden_field(attr, options={})
|
101
123
|
hidden_field_tag("q[#{attr}_eq]", options[:value], options)
|
102
124
|
end
|
@@ -106,6 +128,10 @@ module AbAdmin
|
|
106
128
|
super(attr, text, options)
|
107
129
|
end
|
108
130
|
|
131
|
+
def extract_label(attr, options)
|
132
|
+
options[:label].presence || @object.klass.han(attr)
|
133
|
+
end
|
134
|
+
|
109
135
|
def field_type(attr, options={})
|
110
136
|
return options[:as].to_sym if options[:as]
|
111
137
|
return :string if attr =~ /^translations_/
|
@@ -28,7 +28,7 @@ module AbAdmin
|
|
28
28
|
|
29
29
|
def models
|
30
30
|
@models ||= begin
|
31
|
-
all_translated.reject { |m| conn.
|
31
|
+
all_translated.reject { |m| conn.data_source_exists? m.translations_table_name }
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -41,7 +41,7 @@ module AbAdmin
|
|
41
41
|
next if file =~ /(?:concerns|shared)\//
|
42
42
|
require file
|
43
43
|
end
|
44
|
-
ActiveRecord::Base.subclasses.find_all { |model| model.
|
44
|
+
ActiveRecord::Base.subclasses.find_all { |model| model.connection.data_source_exists?(model.table_name) }
|
45
45
|
end
|
46
46
|
|
47
47
|
def conn
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class <%= migration_class_name %> < ActiveRecord::Migration
|
1
|
+
class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
|
2
2
|
def up
|
3
3
|
<%- models.each do |m| -%>
|
4
4
|
<%= m.name %>.create_translation_table! <%= model_attrs[m.name] %>
|
@@ -2,7 +2,7 @@ module Admin::StructuresHelper
|
|
2
2
|
|
3
3
|
def edit_structure_record_path(structure)
|
4
4
|
case structure.structure_type
|
5
|
-
when StructureType.static_page
|
5
|
+
when StructureType.static_page, StructureType.main
|
6
6
|
if structure.static_page
|
7
7
|
edit_admin_structure_static_page_path(structure_id: structure.id)
|
8
8
|
else
|
@@ -10,8 +10,6 @@ module Admin::StructuresHelper
|
|
10
10
|
end
|
11
11
|
when StructureType.posts
|
12
12
|
'#'
|
13
|
-
when StructureType.main
|
14
|
-
'#'
|
15
13
|
when StructureType.redirect
|
16
14
|
edit_admin_structure_path(structure)
|
17
15
|
when StructureType.group
|
@@ -20,5 +18,4 @@ module Admin::StructuresHelper
|
|
20
18
|
'#'
|
21
19
|
end
|
22
20
|
end
|
23
|
-
|
24
21
|
end
|
@@ -1,12 +1,10 @@
|
|
1
|
-
class Asset <
|
1
|
+
class Asset < ApplicationRecord
|
2
2
|
include AbAdmin::Models::Asset
|
3
3
|
|
4
|
-
attr_accessible :data, :is_main, :original_name, :base_filename
|
5
4
|
translates :name, :alt
|
6
|
-
attr_accessible *all_translated_attribute_names
|
7
5
|
|
8
6
|
validates_presence_of :data
|
9
|
-
|
10
|
-
|
7
|
+
|
8
|
+
default_scope -> { order("#{quoted_table_name}.sort_order") }
|
11
9
|
|
12
10
|
end
|
@@ -1,9 +1,5 @@
|
|
1
|
-
class Header <
|
2
|
-
|
3
|
-
attr_accessible :title, :keywords, :description, :h1, :seo_block
|
4
|
-
|
1
|
+
class Header < ApplicationRecord
|
5
2
|
translates :title, :keywords, :description, :h1, :seo_block, fallbacks_for_empty_translations: false
|
6
|
-
attr_accessible *all_translated_attribute_names
|
7
3
|
|
8
4
|
include AbAdmin::Models::Header
|
9
5
|
|
@@ -1,6 +1,4 @@
|
|
1
|
-
class StaticPage <
|
2
|
-
attr_accessible :structure_id, :title, :content, :kind, :is_visible
|
3
|
-
|
1
|
+
class StaticPage < ApplicationRecord
|
4
2
|
belongs_to :structure
|
5
3
|
|
6
4
|
has_many :pictures, as: :assetable, dependent: :destroy
|
@@ -12,6 +10,5 @@ class StaticPage < ActiveRecord::Base
|
|
12
10
|
|
13
11
|
fileuploads :pictures, :attachment_files
|
14
12
|
translates :title, :content
|
15
|
-
attr_accessible *all_translated_attribute_names
|
16
13
|
|
17
14
|
end
|
@@ -1,15 +1,11 @@
|
|
1
|
-
class Structure <
|
1
|
+
class Structure < ApplicationRecord
|
2
2
|
include AbAdmin::Models::Structure
|
3
3
|
|
4
|
-
attr_accessible :structure_type_id, :position_type_id, :parent_id, :title, :redirect_url, :is_visible,
|
5
|
-
:structure_type, :position_type, :slug, :parent
|
6
|
-
|
7
4
|
has_one :picture, -> { where(is_main: true) }, as: :assetable, dependent: :destroy
|
8
5
|
has_many :pictures, -> { where(is_main: false) }, as: :assetable, dependent: :destroy
|
9
6
|
|
10
7
|
fileuploads :picture
|
11
8
|
translates :title, :redirect_url
|
12
|
-
attr_accessible *all_translated_attribute_names
|
13
9
|
|
14
10
|
include AbAdmin::Concerns::AdminAddition
|
15
11
|
simple_slug :title
|
@@ -1,15 +1,8 @@
|
|
1
|
-
class User <
|
1
|
+
class User < ApplicationRecord
|
2
2
|
devise :database_authenticatable, :confirmable, :lockable,
|
3
3
|
:recoverable, :rememberable, :trackable, :validatable, :registerable,
|
4
4
|
:encryptable, encryptor: :sha512
|
5
5
|
|
6
|
-
attr_accessible :password, :password_confirmation, :email, :remember_me,
|
7
|
-
:login, :first_name, :last_name, :patronymic, :phone, :skype, :web_site, :address, :birthday,
|
8
|
-
:time_zone, :locale, :bg_color, :gender
|
9
|
-
|
10
|
-
|
11
|
-
attr_accessible :user_role_id, as: :admin
|
12
|
-
|
13
6
|
include AbAdmin::Concerns::AdminAddition
|
14
7
|
include AbAdmin::Models::User
|
15
8
|
|
@@ -26,5 +19,4 @@ class User < ActiveRecord::Base
|
|
26
19
|
return false if persisted? && password.blank?
|
27
20
|
super
|
28
21
|
end
|
29
|
-
|
30
22
|
end
|
data/lib/generators/template.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
+
gem 'jquery-rails'
|
1
2
|
gem 'rails-i18n'
|
2
3
|
gem 'slim'
|
3
4
|
|
4
|
-
gem 'inherited_resources'
|
5
|
+
gem 'inherited_resources', github: 'activeadmin/inherited_resources'
|
5
6
|
gem 'has_scope'
|
6
7
|
gem 'rack-pjax'
|
7
8
|
|
@@ -9,67 +10,60 @@ gem 'devise'
|
|
9
10
|
gem 'devise-encryptable'
|
10
11
|
gem 'cancancan'
|
11
12
|
|
12
|
-
gem 'protected_attributes'
|
13
|
+
gem 'protected_attributes', github: 'leschenko/protected_attributes'
|
13
14
|
gem 'galetahub-enum_field', require: 'enum_field'
|
14
15
|
gem 'ransack'
|
15
16
|
gem 'simple_slug'
|
16
17
|
gem 'awesome_nested_set'
|
17
|
-
gem 'globalize',
|
18
|
+
gem 'globalize', github: 'globalize/globalize'
|
18
19
|
|
19
20
|
gem 'carrierwave'
|
20
21
|
gem 'mini_magick'
|
22
|
+
# 3.0 is broken - creates new `configatron` instance in every namespace
|
21
23
|
gem 'configatron', '~> 2.13'
|
22
24
|
gem 'simple_form'
|
25
|
+
gem 'coffee-rails'
|
26
|
+
gem 'sass-rails'
|
27
|
+
gem 'uglifier'
|
23
28
|
gem 'will_paginate'
|
24
29
|
gem 'will_paginate-bootstrap'
|
25
30
|
gem 'bootstrap-sass'
|
26
|
-
gem 'bootstrap-wysihtml5-rails'
|
27
|
-
gem 'select2-rails'
|
31
|
+
gem 'bootstrap-wysihtml5-rails', '~> 0.3.1.24'
|
32
|
+
gem 'select2-rails', '~> 3.5.9.3'
|
28
33
|
gem 'jquery-fileupload-rails'
|
29
34
|
gem 'fancybox2-rails'
|
30
35
|
gem 'i18n-js'
|
31
36
|
|
32
37
|
gem 'ruby-progressbar'
|
33
|
-
gem 'ruby2xlsx'
|
34
38
|
gem 'rest-client'
|
35
39
|
gem 'nested_form', '~> 0.2.2'
|
36
40
|
|
37
|
-
|
41
|
+
install_ckeditor = yes?('Install ckeditor?')
|
42
|
+
gem 'ckeditor' if install_ckeditor
|
38
43
|
|
39
|
-
|
44
|
+
gem 'ab_admin', github: 'leschenko/ab_admin', branch: 'rails-5'
|
40
45
|
|
41
|
-
|
42
|
-
gem '
|
46
|
+
gem_group :development, :test do
|
47
|
+
gem 'rspec-rails'
|
48
|
+
gem 'factory_girl_rails'
|
49
|
+
gem 'launchy'
|
50
|
+
gem 'forgery'
|
51
|
+
gem 'byebug'
|
43
52
|
end
|
44
53
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
gem '
|
50
|
-
gem '
|
51
|
-
gem '
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
gem_group :development do
|
61
|
-
gem 'slim-rails'
|
62
|
-
gem 'annotate'
|
63
|
-
gem 'letter_opener'
|
64
|
-
gem 'better_errors'
|
65
|
-
gem 'binding_of_caller'
|
66
|
-
end
|
67
|
-
|
68
|
-
gem_group :test do
|
69
|
-
gem 'database_cleaner'
|
70
|
-
gem 'fuubar'
|
71
|
-
gem 'guard-rspec'
|
72
|
-
end
|
54
|
+
gem_group :test do
|
55
|
+
gem 'capybara'
|
56
|
+
gem 'database_cleaner'
|
57
|
+
gem 'connection_pool'
|
58
|
+
gem 'fuubar'
|
59
|
+
gem 'guard-rspec'
|
60
|
+
gem 'rb-fsevent', require: false
|
61
|
+
gem 'growl', require: false
|
62
|
+
end
|
63
|
+
|
64
|
+
gem_group :development do
|
65
|
+
gem 'better_errors'
|
66
|
+
gem 'binding_of_caller'
|
73
67
|
end
|
74
68
|
|
75
69
|
# run bundle install
|
@@ -77,14 +71,10 @@ run('bundle install')
|
|
77
71
|
#run('bundle install --path=vendor/bundle --binstubs')
|
78
72
|
|
79
73
|
# create database
|
80
|
-
if yes?('Create database?')
|
81
|
-
rake('db:create')
|
82
|
-
end
|
74
|
+
rake('db:create') if yes?('Create database?')
|
83
75
|
|
84
76
|
# run default generators
|
85
|
-
if
|
86
|
-
generate('ckeditor:install', '--orm=active_record', '--backend=carrierwave')
|
87
|
-
end
|
77
|
+
generate('ckeditor:install', '--orm=active_record', '--backend=carrierwave') if install_ckeditor
|
88
78
|
generate('devise:install')
|
89
79
|
generate('simple_form:install', '--bootstrap')
|
90
80
|
generate('ab_admin:install')
|
@@ -93,26 +83,16 @@ generate('ab_admin:install')
|
|
93
83
|
rake('ab_admin:install:migrations')
|
94
84
|
|
95
85
|
# init git
|
96
|
-
if yes?('Init empty git?')
|
97
|
-
git(:init)
|
98
|
-
end
|
86
|
+
git(:init) if yes?('Init empty git?')
|
99
87
|
|
100
88
|
# create && migrate database
|
101
|
-
if yes?('Run db:migrate?')
|
102
|
-
rake('db:migrate')
|
103
|
-
end
|
89
|
+
rake('db:migrate') if yes?('Run db:migrate?')
|
104
90
|
|
105
91
|
# run db seed
|
106
|
-
if yes?('Run db:seed?')
|
107
|
-
rake('db:seed')
|
108
|
-
end
|
92
|
+
rake('db:seed') if yes?('Run db:seed?')
|
109
93
|
|
110
94
|
# copy ckeditor assets to public/javascripts
|
111
|
-
if
|
112
|
-
generate('ab_admin:ckeditor_assets')
|
113
|
-
end
|
95
|
+
generate('ab_admin:ckeditor_assets') if install_ckeditor
|
114
96
|
|
115
97
|
# run db seed
|
116
|
-
if yes?('Export i18n js locales?')
|
117
|
-
rake('i18n:js:export')
|
118
|
-
end
|
98
|
+
rake('i18n:js:export') if yes?('Export i18n js locales?')
|