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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ab_admin/components/admin_assets.js.coffee +6 -2
  3. data/app/assets/javascripts/ab_admin/components/base_assets.js.coffee +9 -0
  4. data/app/assets/javascripts/ab_admin/components/gmaps.js.coffee +1 -1
  5. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +6 -0
  6. data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +2 -2
  7. data/app/assets/javascripts/ab_admin/core/batch_actions.js.coffee +52 -12
  8. data/app/assets/javascripts/ab_admin/core/init.js.coffee +2 -0
  9. data/app/assets/javascripts/ab_admin/core/pjax.js.coffee +3 -2
  10. data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +3 -4
  11. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +4 -0
  12. data/app/assets/stylesheets/ab_admin/components/_colored_tabs.scss +4 -0
  13. data/app/assets/stylesheets/ab_admin/components/_form.scss +36 -3
  14. data/app/controllers/admin/admin_comments_controller.rb +4 -0
  15. data/app/controllers/admin/assets_controller.rb +5 -2
  16. data/app/controllers/admin/base_controller.rb +50 -41
  17. data/app/controllers/admin/locators_controller.rb +1 -1
  18. data/app/controllers/admin/manager_controller.rb +32 -3
  19. data/app/controllers/admin/settings_controller.rb +2 -3
  20. data/app/controllers/admin/static_pages_controller.rb +5 -0
  21. data/app/controllers/admin/structures_controller.rb +10 -4
  22. data/app/controllers/admin/users_controller.rb +9 -2
  23. data/app/views/admin/base/_search_layout.html.slim +0 -1
  24. data/app/views/admin/base/index.html.slim +1 -2
  25. data/app/views/admin/fileupload/_container.html.slim +17 -10
  26. data/app/views/admin/shared/_content_actions.html.slim +18 -6
  27. data/app/views/admin/shared/_locale_tabs.html.slim +3 -3
  28. data/app/views/admin/structures/_form.html.slim +2 -1
  29. data/app/views/layouts/admin/_footer.html.slim +5 -4
  30. data/app/views/layouts/admin/application.html.slim +2 -0
  31. data/config/locales/ru.yml +1 -0
  32. data/config/routes.rb +17 -22
  33. data/lib/ab_admin.rb +11 -1
  34. data/lib/ab_admin/abstract_resource.rb +11 -2
  35. data/lib/ab_admin/carrierwave/base_uploader.rb +45 -25
  36. data/lib/ab_admin/carrierwave/file_size_validator.rb +0 -1
  37. data/lib/ab_admin/carrierwave/glue.rb +2 -4
  38. data/lib/ab_admin/concerns/admin_addition.rb +12 -4
  39. data/lib/ab_admin/concerns/deep_cloneable.rb +0 -1
  40. data/lib/ab_admin/concerns/fileuploads.rb +0 -1
  41. data/lib/ab_admin/concerns/headerable.rb +0 -4
  42. data/lib/ab_admin/concerns/nested_set.rb +2 -3
  43. data/lib/ab_admin/concerns/reloadable.rb +0 -2
  44. data/lib/ab_admin/concerns/silencer.rb +0 -3
  45. data/lib/ab_admin/concerns/utilities.rb +2 -4
  46. data/lib/ab_admin/concerns/validations.rb +1 -1
  47. data/lib/ab_admin/config/base.rb +26 -6
  48. data/lib/ab_admin/controllers/callbacks.rb +6 -6
  49. data/lib/ab_admin/controllers/head_options.rb +0 -1
  50. data/lib/ab_admin/controllers/tree.rb +0 -2
  51. data/lib/ab_admin/core_ext.rb +1 -1
  52. data/lib/ab_admin/core_ext/array.rb +0 -1
  53. data/lib/ab_admin/core_ext/hash.rb +11 -0
  54. data/lib/ab_admin/core_ext/string.rb +0 -1
  55. data/lib/ab_admin/devise.rb +1 -1
  56. data/lib/ab_admin/engine.rb +2 -1
  57. data/lib/ab_admin/hooks/globalize_locale_suffix_accessors.rb +17 -31
  58. data/lib/ab_admin/hooks/will_paginate_no_uri.rb +1 -1
  59. data/lib/ab_admin/i18n_tools/google_translate.rb +0 -1
  60. data/lib/ab_admin/i18n_tools/translate_app.rb +0 -1
  61. data/lib/ab_admin/menu/builder.rb +3 -2
  62. data/lib/ab_admin/menu/group.rb +3 -1
  63. data/lib/ab_admin/models/asset.rb +9 -6
  64. data/lib/ab_admin/models/header.rb +2 -3
  65. data/lib/ab_admin/models/locator.rb +1 -1
  66. data/lib/ab_admin/models/settings.rb +6 -6
  67. data/lib/ab_admin/models/structure.rb +0 -6
  68. data/lib/ab_admin/models/track.rb +12 -3
  69. data/lib/ab_admin/models/type_model.rb +0 -1
  70. data/lib/ab_admin/models/user.rb +0 -1
  71. data/lib/ab_admin/models/validations/all.rb +4 -0
  72. data/lib/ab_admin/models/validations/domain_name_validator.rb +9 -0
  73. data/lib/ab_admin/models/validations/email_validator.rb +9 -0
  74. data/lib/ab_admin/utils.rb +12 -4
  75. data/lib/ab_admin/utils/eval_helpers.rb +1 -1
  76. data/lib/ab_admin/utils/logger.rb +0 -2
  77. data/lib/ab_admin/utils/xls_document.rb +25 -6
  78. data/lib/ab_admin/version.rb +1 -1
  79. data/lib/ab_admin/views/admin_helpers.rb +5 -4
  80. data/lib/ab_admin/views/admin_navigation_helpers.rb +16 -5
  81. data/lib/ab_admin/views/form_builder.rb +41 -10
  82. data/lib/ab_admin/views/helpers.rb +0 -2
  83. data/lib/ab_admin/views/inputs/uploader_input.rb +1 -0
  84. data/lib/ab_admin/views/search_form_builder.rb +33 -7
  85. data/lib/generators/ab_admin/ckeditor_assets/ckeditor_assets_generator.rb +0 -1
  86. data/lib/generators/ab_admin/glob/glob_generator.rb +2 -2
  87. data/lib/generators/ab_admin/glob/templates/migration.erb +1 -1
  88. data/lib/generators/ab_admin/install/install_generator.rb +0 -1
  89. data/lib/generators/ab_admin/install/templates/config/seeds.rb +0 -2
  90. data/lib/generators/ab_admin/install/templates/helpers/admin/structures_helper.rb +1 -4
  91. data/lib/generators/ab_admin/install/templates/models/admin_comment.rb +1 -3
  92. data/lib/generators/ab_admin/install/templates/models/asset.rb +3 -5
  93. data/lib/generators/ab_admin/install/templates/models/header.rb +1 -5
  94. data/lib/generators/ab_admin/install/templates/models/static_page.rb +1 -4
  95. data/lib/generators/ab_admin/install/templates/models/structure.rb +1 -5
  96. data/lib/generators/ab_admin/install/templates/models/track.rb +1 -2
  97. data/lib/generators/ab_admin/install/templates/models/user.rb +1 -9
  98. data/lib/generators/ab_admin/install/templates/uploaders/attachment_file_uploader.rb +1 -1
  99. data/lib/generators/ab_admin/install/templates/uploaders/avatar_uploader.rb +1 -1
  100. data/lib/generators/ab_admin/install/templates/uploaders/picture_uploader.rb +1 -1
  101. data/lib/generators/ab_admin/model/templates/resource.erb +1 -0
  102. data/lib/generators/template.rb +39 -59
  103. metadata +38 -36
  104. 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.html_safe
39
- return template.input_set(title) { data_fields + geo_input(prefix, options[:js_options]) }
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
- loc_html = {}
73
- Globalize.available_locales.each do |l|
74
- loc_html[l] = template.capture { block.call(l) }
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', loc_html: loc_html
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">
@@ -1,4 +1,3 @@
1
- # -*- encoding : utf-8 -*-
2
1
  module AbAdmin
3
2
  module Views
4
3
  module Helpers
@@ -80,7 +79,6 @@ module AbAdmin
80
79
 
81
80
  output_buffer
82
81
  end
83
-
84
82
  end
85
83
  end
86
84
  end
@@ -80,6 +80,7 @@ module AbAdmin
80
80
  sortable: @options[:sortable],
81
81
  edit_meta: @options[:edit_meta],
82
82
  crop: @options[:crop],
83
+ disabled: @options[:disabled],
83
84
  fileupload: {
84
85
  url: AbAdmin.fileupload_url,
85
86
  maxNumberOfFiles: @options[:max_files],
@@ -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
- content_tag :div, class: "clearfix #{field_type} #{options[:wrapper_class]}" do
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
- label(attr, options[:label]) + content_tag(:div, class: 'controls') do
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
- html_options = options[:input_html].merge(include_blank: true, id: "q_#{attr}")
35
- select_tag("q[#{param}]", options_for_select(collection, params[:q][param]), html_options)
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.val(:q, options[:param]) ? klass.where(id: params[:q][options[:param]]).map(&:for_input_token) : []
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
- label(attr, options[:label]) + content_tag(:div, class: 'controls') do
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_/
@@ -1,4 +1,3 @@
1
- # -*- encoding : utf-8 -*-
2
1
  module AbAdmin
3
2
  module Generators
4
3
  class CkeditorAssetsGenerator < Rails::Generators::Base
@@ -28,7 +28,7 @@ module AbAdmin
28
28
 
29
29
  def models
30
30
  @models ||= begin
31
- all_translated.reject { |m| conn.table_exists? m.translations_table_name }
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.table_exists? }
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] %>
@@ -1,4 +1,3 @@
1
- # -*- encoding : utf-8 -*-
2
1
  module AbAdmin
3
2
  module Generators
4
3
  class InstallGenerator < Rails::Generators::Base
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  def insert_user
4
2
  User.truncate!
5
3
  password = Rails.env.production? ? Devise.friendly_token : (1..8).to_a.join
@@ -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,5 +1,3 @@
1
- class AdminComment < ActiveRecord::Base
1
+ class AdminComment < ApplicationRecord
2
2
  include AbAdmin::Models::AdminComment
3
-
4
- attr_accessible :body, :resource_id, :resource_type
5
3
  end
@@ -1,12 +1,10 @@
1
- class Asset < ActiveRecord::Base
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
- default_scope -> { order("#{quoted_table_name}.sort_order") }
7
+
8
+ default_scope -> { order("#{quoted_table_name}.sort_order") }
11
9
 
12
10
  end
@@ -1,9 +1,5 @@
1
- class Header < ActiveRecord::Base
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 < ActiveRecord::Base
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 < ActiveRecord::Base
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,5 +1,4 @@
1
- class Track < ActiveRecord::Base
1
+ class Track < ApplicationRecord
2
2
  include AbAdmin::Models::Track
3
3
 
4
- attr_accessible :key, :name, :user, :owner, :trackable, :trackable_changes, :parameters
5
4
  end
@@ -1,15 +1,8 @@
1
- class User < ActiveRecord::Base
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
@@ -1,5 +1,5 @@
1
1
  class AttachmentFileUploader < AbAdmin::CarrierWave::BaseUploader
2
- def extension_white_list
2
+ def extension_whitelist
3
3
  %w(pdf doc docx xls xlsx ppt pptx jpg jpeg gif png zip rar csv)
4
4
  end
5
5
  end
@@ -6,7 +6,7 @@ class AvatarUploader < AbAdmin::CarrierWave::BaseUploader
6
6
  process resize_to_fill: [80, 80, 'North']
7
7
  end
8
8
 
9
- def extension_white_list
9
+ def extension_whitelist
10
10
  %w(jpg jpeg gif png)
11
11
  end
12
12
 
@@ -7,7 +7,7 @@ class PictureUploader < AbAdmin::CarrierWave::BaseUploader
7
7
  process resize_to_fill: [80, 80]
8
8
  end
9
9
 
10
- def extension_white_list
10
+ def extension_whitelist
11
11
  %w(jpg jpeg gif png)
12
12
  end
13
13
  end
@@ -1,4 +1,5 @@
1
1
  class AbAdmin<%= model.name %> < AbAdmin::AbstractResource
2
+ permitted_params :all
2
3
 
3
4
  <% if model.respond_to?(:acts_as_nested_set_options) -%>
4
5
  settings index_view: 'tree'
@@ -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', '~> 5.0.0'
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
- gem 'ab_admin', github: 'leschenko/ab_admin', branch: 'master'
41
+ install_ckeditor = yes?('Install ckeditor?')
42
+ gem 'ckeditor' if install_ckeditor
38
43
 
39
- ckeditor = yes?('Install ckeditor?')
44
+ gem 'ab_admin', github: 'leschenko/ab_admin', branch: 'rails-5'
40
45
 
41
- if ckeditor
42
- gem 'ckeditor'
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
- gem_adds = yes?('Add additional gems (mostly dev and testing tools)?')
46
-
47
- if gem_adds
48
- # non dependency gems
49
- gem 'dalli'
50
- gem 'exception_notification'
51
- gem 'redis-actionpack'
52
-
53
- gem_group :development, :test do
54
- gem 'quiet_assets'
55
- gem 'rspec-rails'
56
- gem 'factory_girl_rails'
57
- gem 'forgery'
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 ckeditor
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 ckeditor
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?')