ab_admin 0.7.0 → 0.8.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 (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