ab_admin 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/admin/flags/de.png +0 -0
  3. data/app/assets/images/admin/flags/en.png +0 -0
  4. data/app/assets/images/admin/flags/es.png +0 -0
  5. data/app/assets/images/admin/flags/fr.png +0 -0
  6. data/app/assets/images/admin/flags/it.png +0 -0
  7. data/app/assets/images/admin/flags/ja.png +0 -0
  8. data/app/assets/images/admin/flags/pl.png +0 -0
  9. data/app/assets/images/admin/flags/ru.png +0 -0
  10. data/app/assets/images/admin/flags/{b_de.png → toremove/b_de.png} +0 -0
  11. data/app/assets/images/admin/flags/{b_en.png → toremove/b_en.png} +0 -0
  12. data/app/assets/images/admin/flags/{b_es.png → toremove/b_es.png} +0 -0
  13. data/app/assets/images/admin/flags/{b_fr.png → toremove/b_fr.png} +0 -0
  14. data/app/assets/images/admin/flags/{b_it.png → toremove/b_it.png} +0 -0
  15. data/app/assets/images/admin/flags/{b_ru.png → toremove/b_ru.png} +0 -0
  16. data/app/assets/images/admin/flags/{b_uk.png → toremove/b_uk.png} +0 -0
  17. data/app/assets/images/admin/flags/{flag_de.gif → toremove/flag_de.gif} +0 -0
  18. data/app/assets/images/admin/flags/{flag_de_nonact.gif → toremove/flag_de_nonact.gif} +0 -0
  19. data/app/assets/images/admin/flags/{flag_en.gif → toremove/flag_en.gif} +0 -0
  20. data/app/assets/images/admin/flags/{flag_en_nonact.gif → toremove/flag_en_nonact.gif} +0 -0
  21. data/app/assets/images/admin/flags/{flag_es.gif → toremove/flag_es.gif} +0 -0
  22. data/app/assets/images/admin/flags/{flag_es_nonact.gif → toremove/flag_es_nonact.gif} +0 -0
  23. data/app/assets/images/admin/flags/{flag_fr.gif → toremove/flag_fr.gif} +0 -0
  24. data/app/assets/images/admin/flags/{flag_fr_nonact.gif → toremove/flag_fr_nonact.gif} +0 -0
  25. data/app/assets/images/admin/flags/{flag_it.gif → toremove/flag_it.gif} +0 -0
  26. data/app/assets/images/admin/flags/{flag_it_nonact.gif → toremove/flag_it_nonact.gif} +0 -0
  27. data/app/assets/images/admin/flags/{flag_ru.gif → toremove/flag_ru.gif} +0 -0
  28. data/app/assets/images/admin/flags/{flag_ru_nonact.gif → toremove/flag_ru_nonact.gif} +0 -0
  29. data/app/assets/images/admin/flags/{flag_uk.gif → toremove/flag_uk.gif} +0 -0
  30. data/app/assets/images/admin/flags/{flag_uk_nonact.gif → toremove/flag_uk_nonact.gif} +0 -0
  31. data/app/assets/images/admin/flags/uk.png +0 -0
  32. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +9 -1
  33. data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +1 -2
  34. data/app/assets/javascripts/ab_admin/core/init.js.coffee +5 -3
  35. data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +17 -0
  36. data/app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee +8 -3
  37. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +37 -8
  38. data/app/assets/stylesheets/ab_admin/components/_form.scss +31 -2
  39. data/app/assets/stylesheets/ab_admin/components/_locale_tabs.scss +13 -48
  40. data/app/assets/stylesheets/ab_admin/components/_navigation.scss +5 -0
  41. data/app/assets/stylesheets/ab_admin/main.scss +1 -1
  42. data/app/controllers/admin/base_controller.rb +14 -15
  43. data/app/controllers/admin/locators_controller.rb +18 -0
  44. data/app/controllers/admin/manager_controller.rb +6 -8
  45. data/app/controllers/admin/settings_controller.rb +1 -1
  46. data/app/controllers/admin/static_pages_controller.rb +1 -3
  47. data/app/controllers/admin/structures_controller.rb +2 -7
  48. data/app/controllers/admin/users_controller.rb +1 -1
  49. data/app/views/ab_admin/devise/sessions/new.html.slim +3 -3
  50. data/app/views/admin/base/_search_layout.html.slim +3 -1
  51. data/app/views/admin/base/_table.html.slim +1 -1
  52. data/app/views/admin/base/update.js.erb +3 -1
  53. data/app/views/admin/locators/show.html.slim +22 -1
  54. data/app/views/admin/manager/_chart.html.slim +4 -0
  55. data/app/views/admin/manager/_table.html.slim +16 -13
  56. data/app/views/admin/shared/_action_items.html.slim +12 -0
  57. data/app/views/admin/shared/_content_actions.html.slim +15 -3
  58. data/app/views/admin/shared/_locale_tabs.html.slim +5 -3
  59. data/app/views/admin/shared/_main_menu.html.slim +20 -0
  60. data/app/views/admin/shared/_save_buttons.html.slim +2 -1
  61. data/app/views/admin/users/_table.html.slim +6 -0
  62. data/app/views/layouts/admin/_navigation.html.slim +2 -24
  63. data/config/locales/de.yml +0 -8
  64. data/config/locales/en.yml +3 -11
  65. data/config/locales/it.yml +9 -17
  66. data/config/locales/ru.yml +0 -8
  67. data/config/locales/uk.yml +0 -8
  68. data/config/routes.rb +2 -1
  69. data/lib/ab_admin.rb +6 -1
  70. data/lib/ab_admin/abstract_resource.rb +1 -1
  71. data/lib/ab_admin/carrierwave/base_uploader.rb +1 -1
  72. data/lib/ab_admin/concerns/utilities.rb +2 -2
  73. data/lib/ab_admin/config/base.rb +7 -5
  74. data/lib/ab_admin/core_ext/hash.rb +19 -1
  75. data/lib/ab_admin/core_ext/other.rb +0 -48
  76. data/lib/ab_admin/hooks/will_paginate_id_prefetch.rb +1 -1
  77. data/lib/ab_admin/i18n_tools/model_translator.rb +4 -4
  78. data/lib/ab_admin/models/asset.rb +0 -4
  79. data/lib/ab_admin/models/locator.rb +37 -4
  80. data/lib/ab_admin/models/user.rb +2 -2
  81. data/lib/ab_admin/utils.rb +1 -1
  82. data/lib/ab_admin/utils/eval_helpers.rb +1 -5
  83. data/lib/ab_admin/utils/logger.rb +11 -2
  84. data/lib/ab_admin/utils/mysql.rb +2 -2
  85. data/lib/ab_admin/version.rb +1 -1
  86. data/lib/ab_admin/views/admin_helpers.rb +38 -21
  87. data/lib/ab_admin/views/admin_navigation_helpers.rb +6 -6
  88. data/lib/ab_admin/views/form_builder.rb +4 -1
  89. data/lib/ab_admin/views/helpers.rb +13 -34
  90. data/lib/ab_admin/views/inputs/date_time_picker_input.rb +5 -4
  91. data/lib/ab_admin/views/manager_helpers.rb +21 -3
  92. data/lib/generators/ab_admin/glob/glob_generator.rb +3 -6
  93. data/lib/generators/ab_admin/install/templates/models/asset.rb +1 -1
  94. data/lib/generators/ab_admin/install/templates/models/structure_type.rb +4 -0
  95. data/lib/generators/ab_admin/install/templates/spec/factories/sequences.rb +2 -2
  96. data/lib/generators/ab_admin/install/templates/spec/factories/structure_factory.rb +1 -1
  97. data/lib/generators/ab_admin/install/templates/spec/factories/user_factory.rb +1 -1
  98. data/lib/generators/ab_admin/install/templates/spec/spec_helper.rb +1 -1
  99. data/lib/generators/ab_admin/install/templates/spec/support/controller_macros.rb +4 -4
  100. data/lib/generators/template.rb +2 -2
  101. metadata +51 -39
@@ -49,7 +49,7 @@ module AbAdmin
49
49
  html_options = options.delete(:html_options) || {}
50
50
  html_options[:class] = ['sort_link', current_dir, html_options[:class]].compact.join(' ')
51
51
 
52
- options.merge!(q: search_params.merge(s: "#{attr_name} #{new_dir}"))
52
+ options.merge!(q: search_params.merge(s: "#{attr_name} #{new_dir}"), **scope_params)
53
53
  link_to [name, order_indicator_for(current_dir)].join(' ').html_safe, url_for(options), html_options
54
54
  end
55
55
 
@@ -63,6 +63,10 @@ module AbAdmin
63
63
  end
64
64
  end
65
65
 
66
+ def scope_params
67
+ params.slice(*button_scopes.map(&:first)).permit!.to_h.symbolize_keys
68
+ end
69
+
66
70
  def short_action_link(action, item)
67
71
  case action
68
72
  when :edit
@@ -211,12 +215,8 @@ module AbAdmin
211
215
  end
212
216
 
213
217
  def id_link(item, options={})
214
- if options.is_a?(TrueClass) || options.is_a?(FalseClass)
215
- ActiveSupport::Deprecation.warn("use `id_link(item, edit: false)` instead of`id_link(item, false)`")
216
- options = {edit: edit}
217
- end
218
218
  options.reverse_merge!(edit: true, title: item.id)
219
- link_html = {remote: settings[:list_edit], class: 'resource_id_link'}
219
+ link_html = (options[:link_html] || {}).reverse_merge!(remote: settings[:list_edit], class: 'resource_id_link')
220
220
  if options[:edit] && can?(:edit, item)
221
221
  link_to options[:title], edit_resource_path(item), link_html
222
222
  elsif can?(:read, item)
@@ -31,7 +31,10 @@ module AbAdmin
31
31
  end
32
32
  end
33
33
 
34
- attribute_name = "#{attribute_name}_#{options[:locale]}" if options[:locale]
34
+ if options[:locale]
35
+ options[:label] ||= object.class.han(attribute_name, locale: options[:locale])
36
+ attribute_name = "#{attribute_name}_#{options[:locale]}"
37
+ end
35
38
 
36
39
  options[:disabled] = disabled_attribute?(attribute_name) unless options.has_key?(:disabled)
37
40
 
@@ -39,46 +39,25 @@ module AbAdmin
39
39
  link_to skype, "skype:#{skype.strip}?chat", options
40
40
  end
41
41
 
42
- def init_js(js)
43
- %Q[<script type='text/javascript'>$(function(){#{js}})</script>].html_safe
42
+ def init_js(js, delayed: false)
43
+ if delayed
44
+ @delayed_js ||= []
45
+ @delayed_js << js
46
+ nil
47
+ else
48
+ %Q[<script type='text/javascript'>$(function(){#{js}})</script>].html_safe
49
+ end
50
+ end
51
+
52
+ def render_delayed_js
53
+ return if @delayed_js.blank?
54
+ %Q[<script type='text/javascript'>$(function(){#{@delayed_js.join(';')}})</script>].html_safe
44
55
  end
45
56
 
46
57
  def image_tag_if(image, options={})
47
58
  return unless image
48
59
  image_tag image, options
49
60
  end
50
-
51
- def swf_object(swf, id, width, height, flash_version, options = {})
52
- options.symbolize_keys!
53
-
54
- params = options.delete(:params) || {}
55
- attributes = options.delete(:attributes) || {}
56
- flashvars = options.delete(:flashvars) || {}
57
-
58
- attributes[:classid] ||= 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
59
- attributes[:id] ||= id
60
- attributes[:name] ||= id
61
-
62
- output_buffer = ActiveSupport::SafeBuffer.new
63
-
64
- if options[:create_div]
65
- output_buffer << content_tag(:div,
66
- "This website requires <a href='http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&promoid=BIOW' target='_blank'>Flash player</a> #{flash_version} or higher.",
67
- id: id)
68
- end
69
-
70
- js = []
71
-
72
- js << "var params = {#{params.to_a.map { |item| "#{item[0]}:'#{item[1]}'" }.join(',')}};"
73
- js << "var attributes = {#{attributes.to_a.map { |item| "#{item[0]}:'#{item[1]}'" }.join(',')}};"
74
- js << "var flashvars = {#{flashvars.to_a.map { |item| "#{item[0]}:'#{item[1]}'" }.join(',')}};"
75
-
76
- js << "swfobject.embedSWF('#{swf}', '#{id}', '#{width}', '#{height}', '#{flash_version}', '/swf/expressInstall.swf', flashvars, params, attributes);"
77
-
78
- output_buffer << javascript_tag(js.join)
79
-
80
- output_buffer
81
- end
82
61
  end
83
62
  end
84
63
  end
@@ -3,23 +3,24 @@ module AbAdmin
3
3
  module Inputs
4
4
  class DateTimePickerInput < ::SimpleForm::Inputs::Base
5
5
  def input(wrapper_options=nil)
6
- input_html_options[:value] ||= formated_value
6
+ input_html_options[:value] ||= formatted_value
7
+ input_html_options[:autocomplete] ||= 'off'
7
8
  input_html_classes << input_type
8
9
  @builder.text_field(attribute_name, input_html_options)
9
10
  end
10
11
 
11
12
  private
12
13
 
13
- def formated_value
14
+ def formatted_value
14
15
  object.send(attribute_name).try(:strftime, value_format)
15
16
  end
16
17
 
17
18
  def value_format
18
19
  case input_type
19
20
  when :date_picker
20
- '%d.%m.%Y'
21
+ '%Y-%m-%d'
21
22
  when :datetime_picker
22
- '%d.%m.%Y %H:%M'
23
+ '%Y-%m-%d %H:%M'
23
24
  when :time_picker
24
25
  '%H:%M'
25
26
  end
@@ -2,7 +2,7 @@ module AbAdmin
2
2
  module Views
3
3
  module ManagerHelpers
4
4
 
5
- INDEX_VIEW_ICONS = {table: 'list', tree: 'move', grid: 'th'}
5
+ INDEX_VIEW_ICONS = {table: 'list', tree: 'move', grid: 'th', chart: 'signal'}
6
6
 
7
7
  def table_builder
8
8
  manager.table ||= ::AbAdmin::Config::Table.default_for_model(resource_class)
@@ -16,6 +16,10 @@ module AbAdmin
16
16
  manager.form ||= ::AbAdmin::Config::Form.default_for_model(resource_class, skip: [:id, :created_at, :updated_at, :lft, :rgt, :depth])
17
17
  end
18
18
 
19
+ def chart_builder
20
+ manager.chart ||= ::AbAdmin::Config::Chart.default_for_model(resource_class)
21
+ end
22
+
19
23
  def modal_form_builder
20
24
  manager.modal_form ||= ::AbAdmin::Config::ModalForm.default_for_model(resource_class, skip: [:id, :created_at, :updated_at, :lft, :rgt, :depth])
21
25
  end
@@ -24,6 +28,20 @@ module AbAdmin
24
28
  manager.show ||= ::AbAdmin::Config::Show.default_for_model(resource_class)
25
29
  end
26
30
 
31
+ def table_item_field(item, field)
32
+ if field.options[:editable] && field.data.is_a?(Symbol)
33
+ if field.data.to_s.start_with?('is_')
34
+ editable_bool(item, field.data)
35
+ else
36
+ admin_editable item, field.data, field.options[:editable]
37
+ end
38
+ elsif field.options[:image]
39
+ item_image_link(item, assoc: field.name)
40
+ else
41
+ admin_pretty_data call_method_or_proc_on(item, field.data)
42
+ end
43
+ end
44
+
27
45
  def action_item_admin_path(name, record=nil)
28
46
  custom_action = manager.custom_action_for(name, self)
29
47
  if custom_action.collection?
@@ -35,8 +53,8 @@ module AbAdmin
35
53
  end
36
54
 
37
55
  def index_view_link(index_view)
38
- options = {class: "btn #{('active' if current_index_view == index_view)}", title: t("admin.index_view.#{index_view}")}
39
- url = url_for(index_view: index_view)
56
+ options = {class: "btn #{('active' if current_index_view == index_view)}", title: t("admin.index_view.#{index_view}", default: index_view.to_s)}
57
+ url = url_for({index_view: index_view, q: params[:q]}.reject_blank)
40
58
  link_to icon(INDEX_VIEW_ICONS[index_view.to_sym]), url, options
41
59
  end
42
60
  end
@@ -6,7 +6,7 @@ module AbAdmin
6
6
 
7
7
  source_root File.expand_path('../templates', __FILE__)
8
8
 
9
- argument :name, type: :string, default: 'fake'
9
+ argument :name, type: :string, default: ''
10
10
 
11
11
  def create_glob_migration
12
12
  migration_template 'migration.erb', "db/migrate/#{migration_name}.rb"
@@ -37,11 +37,8 @@ module AbAdmin
37
37
  end
38
38
 
39
39
  def all_models
40
- Dir.glob(Rails.root.to_s + '/app/models/**/*.rb').each do |file|
41
- next if file =~ /(?:concerns|shared)\//
42
- require file
43
- end
44
- ActiveRecord::Base.subclasses.find_all { |model| model.connection.data_source_exists?(model.table_name) }
40
+ Dir.glob(Rails.root.to_s + '/app/models/**/*.rb').reject { |path| path =~ /concerns|shared/ }.each { |file| require file }
41
+ [ActiveRecord::Base, ApplicationRecord].flat_map{|sc| sc.subclasses.find_all { |model| model.connection.table_exists?(model.table_name) } }
45
42
  end
46
43
 
47
44
  def conn
@@ -5,6 +5,6 @@ class Asset < ApplicationRecord
5
5
 
6
6
  validates_presence_of :data
7
7
 
8
- default_scope -> { order("#{quoted_table_name}.sort_order") }
8
+ default_scope -> { order(:sort_order) }
9
9
 
10
10
  end
@@ -3,4 +3,8 @@ class StructureType < AbAdmin::Models::TypeModel
3
3
  self.i18n_scope = [:admin, :structure, :kind]
4
4
 
5
5
  define_enum_by_codes
6
+
7
+ def has_static_page?
8
+ static_page? || main?
9
+ end
6
10
  end
@@ -1,7 +1,7 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  sequence(:email) { |n| Forgery::Email.address }
3
3
 
4
4
  sequence(:time) { |n| Time.now - n.hours }
5
5
 
6
6
  sequence(:date) { |n| Date.today - n.days }
7
- end
7
+ end
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :structure do
3
3
  title 'Structure'
4
4
  is_visible true
@@ -1,4 +1,4 @@
1
- FactoryGirl.define do
1
+ FactoryBot.define do
2
2
  factory :user do
3
3
  email { generate(:email) }
4
4
  password '123456'
@@ -11,7 +11,7 @@ RSpec.configure do |config|
11
11
  config.mock_with :rspec
12
12
 
13
13
  config.extend ControllerMacros, type: :controller
14
- config.include FactoryGirl::Syntax::Methods
14
+ config.include FactoryBot::Syntax::Methods
15
15
  config.include Devise::TestHelpers, type: :controller
16
16
  config.include MailerMacros
17
17
  config.before(:each) { reset_email }
@@ -1,7 +1,7 @@
1
1
  module ControllerMacros
2
2
  def login_admin
3
3
  before(:all) do
4
- @admin = FactoryGirl.create(:admin_user)
4
+ @admin = FactoryBot.create(:admin_user)
5
5
  end
6
6
 
7
7
  before(:each) do
@@ -12,7 +12,7 @@ module ControllerMacros
12
12
 
13
13
  def login_default
14
14
  before(:all) do
15
- @user = FactoryGirl.create(:default_user)
15
+ @user = FactoryBot.create(:default_user)
16
16
  end
17
17
 
18
18
  before(:each) do
@@ -23,7 +23,7 @@ module ControllerMacros
23
23
 
24
24
  def login_redactor
25
25
  before(:all) do
26
- @user = FactoryGirl.create(:redactor_user)
26
+ @user = FactoryBot.create(:redactor_user)
27
27
  end
28
28
 
29
29
  before(:each) do
@@ -34,7 +34,7 @@ module ControllerMacros
34
34
 
35
35
  def login_moderator
36
36
  before(:all) do
37
- @user = FactoryGirl.create(:moderator_user)
37
+ @user = FactoryBot.create(:moderator_user)
38
38
  end
39
39
 
40
40
  before(:each) do
@@ -45,7 +45,7 @@ gem 'ab_admin', github: 'leschenko/ab_admin', branch: 'rails-5'
45
45
 
46
46
  gem_group :development, :test do
47
47
  gem 'rspec-rails'
48
- gem 'factory_girl_rails'
48
+ gem 'factory_bot_rails'
49
49
  gem 'launchy'
50
50
  gem 'forgery'
51
51
  gem 'byebug'
@@ -95,4 +95,4 @@ rake('db:seed') if yes?('Run db:seed?')
95
95
  generate('ab_admin:ckeditor_assets') if install_ckeditor
96
96
 
97
97
  # run db seed
98
- rake('i18n:js:export') if yes?('Export i18n js locales?')
98
+ rake('i18n:js:export') if yes?('Export i18n js locales?')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ab_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Leschenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-28 00:00:00.000000000 Z
11
+ date: 2019-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.1.1
19
+ version: 5.2.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.1.1
26
+ version: 5.2.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jquery-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '5.0'
47
+ version: '5.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.0'
54
+ version: '5.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: slim
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.8'
103
+ version: '2.1'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.8'
110
+ version: '2.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: has_scope
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.3.2
131
+ version: 0.3.5
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.3.2
138
+ version: 0.3.5
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: devise
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 4.3.0
145
+ version: '4.3'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 4.3.0
152
+ version: '4.3'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: cancancan
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 3.1.1
187
+ version: 3.1.4
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 3.1.1
194
+ version: 3.1.4
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: carrierwave
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -324,14 +324,14 @@ dependencies:
324
324
  requirements:
325
325
  - - "~>"
326
326
  - !ruby/object:Gem::Version
327
- version: 3.5.0
327
+ version: 4.1.0
328
328
  type: :runtime
329
329
  prerelease: false
330
330
  version_requirements: !ruby/object:Gem::Requirement
331
331
  requirements:
332
332
  - - "~>"
333
333
  - !ruby/object:Gem::Version
334
- version: 3.5.0
334
+ version: 4.1.0
335
335
  - !ruby/object:Gem::Dependency
336
336
  name: i18n-js
337
337
  requirement: !ruby/object:Gem::Requirement
@@ -366,14 +366,14 @@ dependencies:
366
366
  requirements:
367
367
  - - "~>"
368
368
  - !ruby/object:Gem::Version
369
- version: 0.4.4
369
+ version: 0.4.10
370
370
  type: :development
371
371
  prerelease: false
372
372
  version_requirements: !ruby/object:Gem::Requirement
373
373
  requirements:
374
374
  - - "~>"
375
375
  - !ruby/object:Gem::Version
376
- version: 0.4.4
376
+ version: 0.4.10
377
377
  description: Simple and real-life tested Rails::Engine admin interface
378
378
  email:
379
379
  - leschenko.al@gmail.com
@@ -386,27 +386,36 @@ files:
386
386
  - Rakefile
387
387
  - app/assets/images/admin/Jcrop.gif
388
388
  - app/assets/images/admin/empty.gif
389
- - app/assets/images/admin/flags/b_de.png
390
- - app/assets/images/admin/flags/b_en.png
391
- - app/assets/images/admin/flags/b_es.png
392
- - app/assets/images/admin/flags/b_fr.png
393
- - app/assets/images/admin/flags/b_it.png
394
- - app/assets/images/admin/flags/b_ru.png
395
- - app/assets/images/admin/flags/b_uk.png
396
- - app/assets/images/admin/flags/flag_de.gif
397
- - app/assets/images/admin/flags/flag_de_nonact.gif
398
- - app/assets/images/admin/flags/flag_en.gif
399
- - app/assets/images/admin/flags/flag_en_nonact.gif
400
- - app/assets/images/admin/flags/flag_es.gif
401
- - app/assets/images/admin/flags/flag_es_nonact.gif
402
- - app/assets/images/admin/flags/flag_fr.gif
403
- - app/assets/images/admin/flags/flag_fr_nonact.gif
404
- - app/assets/images/admin/flags/flag_it.gif
405
- - app/assets/images/admin/flags/flag_it_nonact.gif
406
- - app/assets/images/admin/flags/flag_ru.gif
407
- - app/assets/images/admin/flags/flag_ru_nonact.gif
408
- - app/assets/images/admin/flags/flag_uk.gif
409
- - app/assets/images/admin/flags/flag_uk_nonact.gif
389
+ - app/assets/images/admin/flags/de.png
390
+ - app/assets/images/admin/flags/en.png
391
+ - app/assets/images/admin/flags/es.png
392
+ - app/assets/images/admin/flags/fr.png
393
+ - app/assets/images/admin/flags/it.png
394
+ - app/assets/images/admin/flags/ja.png
395
+ - app/assets/images/admin/flags/pl.png
396
+ - app/assets/images/admin/flags/ru.png
397
+ - app/assets/images/admin/flags/toremove/b_de.png
398
+ - app/assets/images/admin/flags/toremove/b_en.png
399
+ - app/assets/images/admin/flags/toremove/b_es.png
400
+ - app/assets/images/admin/flags/toremove/b_fr.png
401
+ - app/assets/images/admin/flags/toremove/b_it.png
402
+ - app/assets/images/admin/flags/toremove/b_ru.png
403
+ - app/assets/images/admin/flags/toremove/b_uk.png
404
+ - app/assets/images/admin/flags/toremove/flag_de.gif
405
+ - app/assets/images/admin/flags/toremove/flag_de_nonact.gif
406
+ - app/assets/images/admin/flags/toremove/flag_en.gif
407
+ - app/assets/images/admin/flags/toremove/flag_en_nonact.gif
408
+ - app/assets/images/admin/flags/toremove/flag_es.gif
409
+ - app/assets/images/admin/flags/toremove/flag_es_nonact.gif
410
+ - app/assets/images/admin/flags/toremove/flag_fr.gif
411
+ - app/assets/images/admin/flags/toremove/flag_fr_nonact.gif
412
+ - app/assets/images/admin/flags/toremove/flag_it.gif
413
+ - app/assets/images/admin/flags/toremove/flag_it_nonact.gif
414
+ - app/assets/images/admin/flags/toremove/flag_ru.gif
415
+ - app/assets/images/admin/flags/toremove/flag_ru_nonact.gif
416
+ - app/assets/images/admin/flags/toremove/flag_uk.gif
417
+ - app/assets/images/admin/flags/toremove/flag_uk_nonact.gif
418
+ - app/assets/images/admin/flags/uk.png
410
419
  - app/assets/images/admin/main_image.png
411
420
  - app/assets/images/admin/preloader.gif
412
421
  - app/assets/images/admin/transp_cross.png
@@ -504,6 +513,7 @@ files:
504
513
  - app/views/admin/headers/_form.html.slim
505
514
  - app/views/admin/locators/edit.html.slim
506
515
  - app/views/admin/locators/show.html.slim
516
+ - app/views/admin/manager/_chart.html.slim
507
517
  - app/views/admin/manager/_form.html.slim
508
518
  - app/views/admin/manager/_modal_form.html.slim
509
519
  - app/views/admin/manager/_search_form.html.slim
@@ -511,12 +521,14 @@ files:
511
521
  - app/views/admin/manager/_table.html.slim
512
522
  - app/views/admin/manager/show.html.slim
513
523
  - app/views/admin/settings/_form.html.slim
524
+ - app/views/admin/shared/_action_items.html.slim
514
525
  - app/views/admin/shared/_breadcrumbs.html.slim
515
526
  - app/views/admin/shared/_columns_hider.html.slim
516
527
  - app/views/admin/shared/_content_actions.html.slim
517
528
  - app/views/admin/shared/_flash.html.slim
518
529
  - app/views/admin/shared/_flash.js.erb
519
530
  - app/views/admin/shared/_locale_tabs.html.slim
531
+ - app/views/admin/shared/_main_menu.html.slim
520
532
  - app/views/admin/shared/_save_buttons.html.slim
521
533
  - app/views/admin/shared/inputs/_checkbox_tree.html.slim
522
534
  - app/views/admin/static_pages/_form.html.slim