ab_admin 0.8.3 → 0.9.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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +11 -5
  4. data/app/assets/javascripts/ab_admin/components/admin_assets.js.coffee +0 -25
  5. data/app/assets/javascripts/ab_admin/components/google_translate.js.coffee +3 -5
  6. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +5 -1
  7. data/app/assets/javascripts/ab_admin/core/columns_hider.js.coffee +24 -23
  8. data/app/assets/javascripts/ab_admin/core/init.js.coffee +6 -2
  9. data/app/assets/javascripts/ab_admin/core/search_form.js.coffee +1 -7
  10. data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +2 -6
  11. data/app/assets/javascripts/ab_admin/core/utils.js.coffee +8 -2
  12. data/app/assets/javascripts/ab_admin/main.js +2 -2
  13. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.scss +35 -10
  14. data/app/assets/stylesheets/ab_admin/components/_base.scss +21 -1
  15. data/app/assets/stylesheets/ab_admin/components/_form.scss +13 -17
  16. data/app/assets/stylesheets/ab_admin/components/_grid_view.scss +2 -2
  17. data/app/assets/stylesheets/ab_admin/components/_locale_tabs.scss +11 -23
  18. data/app/assets/stylesheets/ab_admin/components/_navigation.scss +0 -9
  19. data/app/assets/stylesheets/ab_admin/components/_table_view.scss +10 -2
  20. data/app/assets/stylesheets/ab_admin/components/_tooltip.scss +80 -0
  21. data/app/assets/stylesheets/ab_admin/components/_tree_view.scss +1 -1
  22. data/app/assets/stylesheets/ab_admin/devise.scss +2 -2
  23. data/app/assets/stylesheets/ab_admin/fileupload.scss +2 -9
  24. data/app/assets/stylesheets/ab_admin/main.scss +0 -1
  25. data/app/controllers/admin/base_controller.rb +67 -63
  26. data/app/controllers/admin/dashboards_controller.rb +2 -2
  27. data/app/controllers/admin/locators_controller.rb +8 -6
  28. data/app/controllers/admin/manager_controller.rb +2 -2
  29. data/app/controllers/admin/static_pages_controller.rb +0 -4
  30. data/app/controllers/admin/structures_controller.rb +2 -2
  31. data/app/views/admin/assets/batch_edit.html.slim +1 -1
  32. data/app/views/admin/base/_search_layout.html.slim +6 -5
  33. data/app/views/admin/base/create.js.erb +5 -2
  34. data/app/views/admin/base/index.html.slim +4 -4
  35. data/app/views/admin/base/update.js.erb +5 -0
  36. data/app/views/admin/fileupload/_asset_templates.html.slim +1 -2
  37. data/app/views/admin/fileupload/_image.html.slim +1 -2
  38. data/app/views/admin/locators/edit.html.slim +7 -6
  39. data/app/views/admin/manager/_map.html.slim +4 -0
  40. data/app/views/admin/manager/_table.html.slim +1 -1
  41. data/app/views/admin/shared/_content_actions.html.slim +19 -21
  42. data/app/views/admin/shared/_flash.html.slim +5 -4
  43. data/app/views/admin/shared/_locale_tabs.html.slim +2 -2
  44. data/app/views/admin/shared/_main_menu.html.slim +1 -1
  45. data/app/views/admin/structures/_form.html.slim +1 -1
  46. data/app/views/admin/users/_form.html.slim +1 -1
  47. data/app/views/admin/users/_search_form.html.slim +1 -1
  48. data/app/views/layouts/admin/_footer.html.slim +0 -1
  49. data/app/views/layouts/admin/_navigation.html.slim +1 -1
  50. data/app/views/layouts/admin/application.html.slim +2 -2
  51. data/config/locales/de.yml +1 -2
  52. data/config/locales/en.yml +1 -2
  53. data/config/locales/ru.yml +0 -1
  54. data/config/locales/uk.yml +0 -1
  55. data/lib/ab_admin.rb +34 -33
  56. data/lib/ab_admin/abstract_resource.rb +1 -1
  57. data/lib/ab_admin/carrierwave/base_uploader.rb +1 -2
  58. data/lib/ab_admin/concerns/admin_addition.rb +0 -30
  59. data/lib/ab_admin/concerns/translations_macro.rb +97 -0
  60. data/lib/ab_admin/concerns/utilities.rb +1 -1
  61. data/lib/ab_admin/config/base.rb +7 -0
  62. data/lib/ab_admin/controllers/callbacks.rb +3 -26
  63. data/lib/ab_admin/core_ext/array.rb +4 -48
  64. data/lib/ab_admin/core_ext/hash.rb +2 -31
  65. data/lib/ab_admin/core_ext/other.rb +0 -6
  66. data/lib/ab_admin/core_ext/string.rb +0 -80
  67. data/lib/ab_admin/engine.rb +1 -0
  68. data/lib/ab_admin/hooks/will_paginate_id_prefetch.rb +8 -6
  69. data/lib/ab_admin/hooks/will_paginate_no_uri.rb +1 -1
  70. data/lib/ab_admin/i18n_tools/google_translate.rb +3 -1
  71. data/lib/ab_admin/i18n_tools/model_translator.rb +1 -1
  72. data/lib/ab_admin/models/header.rb +2 -2
  73. data/lib/ab_admin/models/locator.rb +28 -2
  74. data/lib/ab_admin/models/user.rb +12 -48
  75. data/lib/ab_admin/utils/csv_document.rb +5 -3
  76. data/lib/ab_admin/utils/eval_helpers.rb +6 -3
  77. data/lib/ab_admin/utils/xls_document.rb +18 -16
  78. data/lib/ab_admin/version.rb +1 -1
  79. data/lib/ab_admin/views/admin_helpers.rb +10 -12
  80. data/lib/ab_admin/views/admin_navigation_helpers.rb +7 -8
  81. data/lib/ab_admin/views/form_builder.rb +7 -5
  82. data/lib/ab_admin/views/helpers.rb +0 -9
  83. data/lib/ab_admin/views/inputs/ckeditor_input.rb +4 -4
  84. data/lib/ab_admin/views/manager_helpers.rb +8 -5
  85. data/lib/ab_admin/views/search_form_builder.rb +2 -2
  86. data/lib/ab_admin/views/will_paginate_bootstrap_renderer.rb +60 -0
  87. data/lib/generators/ab_admin/glob/glob_generator.rb +4 -5
  88. data/lib/generators/ab_admin/glob/templates/migration.erb +10 -7
  89. data/lib/generators/ab_admin/install/templates/config/ab_admin.rb.erb +1 -1
  90. data/lib/generators/ab_admin/install/templates/models/user.rb +0 -11
  91. data/lib/generators/ab_admin/install/templates/spec/spec_helper.rb +0 -1
  92. data/lib/generators/ab_admin/install/templates/spec/support/database_cleaner.rb +8 -11
  93. data/lib/generators/ab_admin/model/model_generator.rb +3 -4
  94. data/lib/generators/ab_admin/model/templates/resource.erb +5 -2
  95. data/lib/generators/ab_admin/resource/templates/controller.erb +2 -2
  96. metadata +37 -79
  97. data/app/assets/images/admin/Jcrop.gif +0 -0
  98. data/app/assets/images/admin/flags/de.png +0 -0
  99. data/app/assets/images/admin/flags/en.png +0 -0
  100. data/app/assets/images/admin/flags/es.png +0 -0
  101. data/app/assets/images/admin/flags/fr.png +0 -0
  102. data/app/assets/images/admin/flags/it.png +0 -0
  103. data/app/assets/images/admin/flags/ja.png +0 -0
  104. data/app/assets/images/admin/flags/pl.png +0 -0
  105. data/app/assets/images/admin/flags/ru.png +0 -0
  106. data/app/assets/images/admin/flags/uk.png +0 -0
  107. data/app/assets/javascripts/ab_admin/components/croppable_image.js.coffee +0 -33
  108. data/app/assets/stylesheets/ab_admin/components/_columns_hider.scss +0 -5
  109. data/app/assets/stylesheets/ab_admin/components/_perms.scss +0 -39
  110. data/app/views/admin/shared/_columns_hider.html.slim +0 -9
  111. data/lib/ab_admin/hooks/globalize_locale_suffix_accessors.rb +0 -25
  112. data/lib/ab_admin/hooks/globalize_valid_locale.rb +0 -9
  113. data/lib/generators/ab_admin/ckeditor_assets/ckeditor_assets_generator.rb +0 -19
  114. data/lib/generators/template.rb +0 -96
@@ -13,7 +13,7 @@ class Admin::DashboardsController < Admin::BaseController
13
13
  []
14
14
  end
15
15
 
16
- def settings
17
- {}
16
+ def custom_settings
17
+ {search: false}
18
18
  end
19
19
  end
@@ -12,8 +12,14 @@ class ::Admin::LocatorsController < ::Admin::BaseController
12
12
 
13
13
  def import
14
14
  if params[:csv_file].present?
15
- Locator.import_csv(params[:csv_file].read, locales: params[:locales])
16
- flash[:notice] = 'File imported'
15
+ csv = params[:csv_file].read.force_encoding('UTF-8')
16
+ errors = Locator.csv_errors(csv)
17
+ if errors.present?
18
+ flash[:error] = errors.join('<br/>').html_safe.first(500)
19
+ else
20
+ Locator.import_csv(csv, locales: params[:locales])
21
+ flash[:notice] = 'File imported'
22
+ end
17
23
  else
18
24
  flash[:error] = 'Missing or invalid csv file'
19
25
  end
@@ -59,10 +65,6 @@ class ::Admin::LocatorsController < ::Admin::BaseController
59
65
  []
60
66
  end
61
67
 
62
- def settings
63
- {}
64
- end
65
-
66
68
  def action_items
67
69
  []
68
70
  end
@@ -95,8 +95,8 @@ class ::Admin::ManagerController < ::Admin::BaseController
95
95
  manager.batch_action_list
96
96
  end
97
97
 
98
- def settings
99
- super.merge(manager.custom_settings || {})
98
+ def custom_settings
99
+ manager.custom_settings || {}
100
100
  end
101
101
 
102
102
  def export_options
@@ -7,10 +7,6 @@ class Admin::StaticPagesController < Admin::BaseController
7
7
 
8
8
  private
9
9
 
10
- def settings
11
- {}
12
- end
13
-
14
10
  def permitted_params
15
11
  params[:static_page].try!(:permit!)
16
12
  end
@@ -17,8 +17,8 @@ class Admin::StructuresController < Admin::BaseController
17
17
  @tree_node_renderer ||= lambda { |r| link_to r.admin_title, edit_structure_record_path(r), class: 'tree-item_link' }
18
18
  end
19
19
 
20
- def settings
21
- {index_view: 'tree', default_order: 'lft'}
20
+ def custom_settings
21
+ {index_views: [:tree], default_order: 'lft'}
22
22
  end
23
23
 
24
24
  def permitted_params
@@ -1,5 +1,5 @@
1
1
  = admin_form_for Asset.new, url: batch_update_admin_assets_path, remote: true, html: {class: 'fileupload-edit-form'} do |f|
2
- - first_locale = Globalize.available_locales.first
2
+ - first_locale = AbAdmin.translated_locales.first
3
3
  - f.locale_tabs do |l|
4
4
  - @assets.each do |asset|
5
5
  .row-fluid
@@ -1,10 +1,11 @@
1
1
  #toggle_sidebar_off.btn.btn-large = icon('chevron-left')
2
2
  #toggle_sidebar_on.btn.btn-large = icon('chevron-right')
3
- = search_admin_form_for @search, url: collection_path(scope_params) do |f|
3
+ = search_admin_form_for ransack_collection, url: collection_path(collection_params) do |f|
4
4
  - if settings.dig(:search_form, :submit_on_top)
5
- = f.submit t('admin.search.submit'), class: 'btn btn-success btn-small search-submit-wide'
5
+ div
6
+ = f.submit t('admin.search.submit'), class: 'btn btn-success search-submit'
7
+ button.js-search-cancel.btn.search-cancel= icon('remove')
6
8
  = render 'search_form', f: f
7
- br
8
9
  div
9
- = f.submit t('admin.search.submit'), class: 'btn btn-success btn-large'
10
- = f.submit t('admin.search.cancel'), class: 'btn', id: 'search_cancel'
10
+ = f.submit t('admin.search.submit'), class: 'btn btn-success search-submit'
11
+ button.js-search-cancel.btn.search-cancel= icon('remove')
@@ -1,13 +1,16 @@
1
+ <% if params[:flash] %>
2
+ flash("<%= t("flash.admin.actions.#{action_name}.notice", resource_name: resource_class.model_name.human(count: 1)) %>")
3
+ <% end %>
4
+
1
5
  <% unless params[:modal] %>
2
6
  <%
3
7
  form_wrap_id = dom_id(resource_class.new, 'list_edit')
4
8
  html = render('table', collection: [resource]).match(/<tbody>(.*)<\/tbody>/m)[1].html_safe
5
9
  %>
6
10
  $('#<%= form_wrap_id %>').remove();
7
- $('#list tbody').prepend('<%= j html %>');
11
+ $('#list tbody:first').prepend('<%= j html %>');
8
12
  $(document).trigger('admin:list_init');
9
13
  $('#<%= dom_id(resource, 'list') %>').addClass('success').scrollToEl();
10
14
  <% end %>
11
15
 
12
-
13
16
  window.ab_admin_last_created = <%= raw resource.for_input_token.to_json %>;
@@ -2,14 +2,14 @@
2
2
  input name='batch_action' id='batch_action' type='hidden'
3
3
  = render 'admin/shared/content_actions'
4
4
 
5
- #content= render current_index_view
6
- - unless settings[:skip_pagination]
5
+ #content= render settings[:current_index_view].to_s
6
+ - if settings[:pagination]
7
7
  .pagination-wrap.pull-left
8
- = will_paginate collection, renderer: BootstrapPagination::Rails
8
+ = will_paginate collection, renderer: AbAdmin::Views::WillPaginateBootstrapRenderer
9
9
  .pagination_info= pagination_info collection
10
10
  .btn-toolbar.pull-right.pjax_links
11
11
  .btn-group
12
- - per_page_variants.each do |c|
12
+ - settings[:per_page_variants].each do |c|
13
13
  a.btn.per_page data-val=c href=url_for(params_for_links.merge(per_page: c)) class=('active' if c == collection.per_page) = c
14
14
 
15
15
  - if pjax? && flash.present?
@@ -1,3 +1,8 @@
1
+ <% if params[:flash] %>
2
+ flash("<%= t("flash.admin.actions.#{action_name}.notice", resource_name: resource_class.model_name.human(count: 1)) %>")
3
+ <% end %>
4
+
5
+
1
6
  <% unless params[:modal] %>
2
7
  <%
3
8
  form_wrap_id = dom_id(resource, 'list_edit')
@@ -3,9 +3,8 @@ script#image_template type='text/x-handlebars-template'
3
3
  = link_to icon('remove', true), '/admin/assets/{{id}}', remote: true, method: :delete, title: t('admin.delete'), class: 'destroy_asset', \
4
4
  data: {confirm: t('admin.delete_confirmation')}
5
5
  .main_image title=t('admin.fileupload.main_image') = icon('home', true)
6
- .crop_image title=t('admin.fileupload.crop') = icon('resize-full', true)
7
6
  .rotate_image title=t('admin.fileupload.rotate') = icon('repeat', true)
8
- a.fileupload-file.fancybox href='{{url}}' rel='fancybox'
7
+ a.fileupload-file href='{{url}}' target='_blank' data-fancybox=1
9
8
  img src='{{thumb_url}}' title='{{name}}' alt="{{alt}}"
10
9
 
11
10
 
@@ -2,8 +2,7 @@
2
2
  = link_to icon('remove', true), admin_asset_path(image), remote: true, method: :delete, title: t('admin.delete'), class: 'destroy_asset', \
3
3
  data: {confirm: t('admin.delete_confirmation')}
4
4
  .main_image title=t('admin.fileupload.main_image') = icon('home', true)
5
- .crop_image title=t('admin.fileupload.crop') = icon('resize-full', true)
6
5
  .rotate_image title=t('admin.fileupload.rotate') = icon('repeat', true)
7
- a.fileupload-file.fancybox href=image.url rel='fancybox'
6
+ a.fileupload-file href=image.url target='_blank' data-fancybox=1
8
7
  - I18n.with_locale(image.assetable.try(:locale)) do
9
8
  img src=image.thumb_url title=image.name alt=image.alt
@@ -12,13 +12,14 @@
12
12
 
13
13
  button#translate_incomplete.btn.btn-danger.pull-left type="button" = t 'admin.locators.translate_incomplete'
14
14
 
15
+ - master_locale = params[:master_locale].try!(:to_sym) || I18n.default_locale
15
16
  - locale_file = Locator.prepare_data(@file)
16
17
  table.table.table-bordered.table-striped
17
18
  thead
18
19
  tr
19
- th = t 'admin.locators.key'
20
- th = locale_file.locale
21
- th = I18n.default_locale
20
+ th= t 'admin.locators.key'
21
+ th= locale_file.locale
22
+ th= master_locale
22
23
  tr
23
24
  - [:key_contains, :edit_locale_contains, :main_locale_contains].each do |param|
24
25
  th
@@ -26,7 +27,7 @@ table.table.table-bordered.table-striped
26
27
  = form_tag(admin_locators_path, method: :put) do
27
28
  tbody#locale_data
28
29
  = hidden_field_tag 'edit_locale_name', locale_file.locale
29
- = hidden_field_tag 'main_locale_name', I18n.default_locale
30
+ = hidden_field_tag 'main_locale_name', master_locale
30
31
  = hidden_field_tag 'filename', locale_file.filename
31
32
 
32
33
  - locale_file.flat_data.each do |keys, value|
@@ -34,8 +35,8 @@ table.table.table-bordered.table-striped
34
35
  td.locale_keys
35
36
  div== keys.join(' > ')
36
37
  .btn.btn-mini.btn-inverse.auto_translate.pull-right google translate
37
- td = text_area_tag 'locale_hash' + keys.map{|k| "[#{k}]" }.join, value
38
- td = text_area_tag 'fake', t(keys.join('.'), locale: I18n.default_locale), disabled: true
38
+ td= text_area_tag 'locale_hash' + keys.map{|k| "[#{k}]" }.join, value
39
+ td= text_area_tag 'fake', t(keys.join('.'), locale: master_locale), disabled: true
39
40
  tbody
40
41
  tr
41
42
  td colspan=3 = submit_tag t('admin.form.save'), class: 'btn btn-primary'
@@ -0,0 +1,4 @@
1
+ - if tmpl = admin_partial_name(map_builder)
2
+ = render partial: tmpl, locals: local_assigns
3
+ - else
4
+ h2 Generic map template is not implemented yet. It can be here `admin/#{resource_collection_name}/_map.html.slim`
@@ -26,7 +26,7 @@
26
26
  - table_builder.fields.each do |field|
27
27
  td class=(field.options[:cell_class] if field.options[:cell_class])
28
28
  - field_content = table_item_field(item, field)
29
- - if field.options[:copy_button]
29
+ - if field_content.present? && field.options[:copy_button]
30
30
  - field_id = dom_id(item, field.name)
31
31
  span> id=field_id = field_content
32
32
  .btn.btn-mini> class='js-copy' data-clipboard-target="##{field_id}" = icon('share')
@@ -1,63 +1,61 @@
1
1
  .content_actions.clearfix
2
- - if settings[:batch] && current_index_view =~ /table/
2
+ - if settings[:batch] && settings[:current_index_view] == :table
3
3
  .btn-group
4
4
  a.btn.dropdown-toggle data-toggle="dropdown" href="#"
5
5
  = t 'admin.batch_actions.title'
6
6
  span.caret
7
7
  ul.dropdown-menu
8
- - batch_action_list.each do |batch_action|
9
- li
10
- a.batch_action_link(
11
- href='#'
12
- data-form=batch_action.form
13
- data-action=batch_action.name
14
- data-confirm=batch_action.confirm
15
- )
16
- = batch_action.title
17
- - unless button_scopes.blank?
8
+ - batch_action_list.each do |ba|
9
+ li: a.batch_action_link href='#' data-form=ba.form data-action=ba.name data-confirm=ba.confirm = ba.title
10
+ - if settings[:button_scopes] && button_scopes.present?
18
11
  .btn-group
19
12
  - button_scopes.each do |name, opts|
20
13
  - next if opts[:if] && !call_method_or_proc_on(controller, opts[:if])
21
14
  - param_name = opts[:as] || name
22
15
  - active = params[param_name]
23
- a.btn href=url_for(param_name => (active ? nil : 1)) class=('active' if active)
24
- = opts[:title] || t("admin.scopes.#{name}", default: name.to_s.titleize)
16
+ - url = url_for(param_name => (active ? nil : 1), index_view: params[:index_view])
17
+ a.btn href=url title=opts[:title] class=[opts[:class], ('active' if active), ('tool tool-bottom' if opts[:title])]
18
+ = opts[:label] || opts[:title] || t("admin.scopes.#{name}", default: name.to_s.titleize)
25
19
  - if opts[:badge]
26
20
  - scope = opts[:block] ? opts[:block].call(controller, resource_class) : resource_class.send(name)
27
21
  - scope_count = scope.send(*[opts[:badge][:value_type] || :count, opts[:badge][:column]].compact)
28
22
  - unless scope_count.zero?
29
23
  span.badge< class=("badge-#{opts[:badge].try(:[], :type) || 'important'}") = scope_count
30
24
 
31
- a.btn.pull-left#columns_hider_show href="#columns_hider" data-toggle='modal' = t 'admin.columns_hider.button'
25
+ - if settings[:current_index_view] == :table
26
+ .btn-group#columns_hider_wrap
27
+ a.btn.dropdown-toggle data-toggle="dropdown" href="#"
28
+ = t 'admin.columns_hider.button'
29
+ span.caret
30
+ .dropdown-menu
32
31
 
33
32
  .btn-group#view_layout
34
33
  .btn data-css='main_wide' = icon('align-left')
35
34
  .btn data-css='main_reverse' = icon('align-right')
36
35
 
37
- - if normalized_index_views.length > 1
36
+ - if settings[:index_views].length > 1
38
37
  .btn-group#index_views
39
- - normalized_index_views.each do |index_view|
38
+ - settings[:index_views].each do |index_view|
40
39
  = index_view_link(index_view)
41
40
 
42
41
  - if can?(:export, resource_class) && !settings[:skip_export]
43
42
  .btn-group.downloads
44
43
  = icon('download-alt')
45
- /- %w(csv xls json).each do |format|
46
44
  - %w(csv xlsx).each do |format|
47
45
  - next if format == 'xlsx' && !Mime[:xlsx]
48
46
  = link_to format, params_for_links.merge(per_page: 10_000, format: format), id: "export_#{format}"
49
47
 
50
- - if @search && settings[:sort_buttons]
48
+ - if ransack_collection && settings[:sort_buttons]
51
49
  .btn-group
52
50
  - settings[:sort_buttons].each do |opts|
53
51
  = list_sort_link(opts[:title], column: opts[:column], html_options: {class: 'btn'})
54
52
 
55
- - if @search_collection && settings[:aggregations]
53
+ - if collection_action? && settings[:aggregations]
56
54
  .aggregations
57
55
  - settings[:aggregations].each do |ag|
58
56
  .label> class=(ag[:css] || 'label-success')
59
57
  => ag[:label] || "#{ag[:column].to_s.humanize}:"
60
58
  - if !ag[:type] || ag[:type] == :sum
61
- = @search_collection.distinct(false).sum(ag[:column]).try!(:round, 2)
59
+ = search_collection.distinct(false).sum(ag[:column]).try!(:round, 2)
62
60
  - elsif ag[:type] == :average
63
- = @search_collection.average(ag[:column]).try!(:round, 2)
61
+ = search_collection.average(ag[:column]).try!(:round, 2)
@@ -1,4 +1,5 @@
1
- - flash.each do |type, message|
2
- .alert class="alert-#{type}"
3
- a.close(data-dismiss='alert') ×
4
- == message
1
+ #flash
2
+ - flash.each do |type, message|
3
+ .alert class="alert-#{type}"
4
+ a.close(data-dismiss='alert') ×
5
+ == message
@@ -3,8 +3,8 @@
3
3
  - active_locale = params[:edit_locale].present? ? params[:edit_locale].to_sym : locales.first
4
4
  - locales.each_with_index do |l, i|
5
5
  li class=('active' if l == active_locale)
6
- a data-toggle="tab" href="##{l}" class="ico_#{l}" title=l
7
- img src=image_path("admin/flags/#{l}.png")
6
+ a data-toggle="tab" href="##{l}" class="ico_#{l}" title=l = locale_flag(l)
7
+ = tab_nav.call(l) if tab_nav
8
8
  .tab-content
9
9
  - locales.each_with_index do |l, i|
10
10
  .tab-pane id=l class="tab_#{l} #{'active' if l == active_locale}" = locale_html[l]
@@ -6,7 +6,7 @@ nav.navbar-inner
6
6
  span.icon-bar
7
7
  a.brand href=(AbAdmin.root_path || root_path) target='_blank' = admin_site_name
8
8
  .nav-collapse.collapse
9
- = AdminMenu.render(self)
9
+ = (current_user.admin_menu_builder || AdminMenu).render(self)
10
10
 
11
11
  .btn-group.pull-right
12
12
  a.btn.dropdown-toggle data-toggle="dropdown" href="#"
@@ -3,7 +3,7 @@
3
3
  = f.input :title, locale: l
4
4
  = f.input :redirect_url, locale: l, as: :string
5
5
 
6
- - Structure.simple_slug_columns.each do |column|
6
+ - Structure.simple_slug_adapter.column_names.each do |column|
7
7
  = f.input column
8
8
  - if @structure.moveable?
9
9
  = f.input :parent, as: :tree_select
@@ -15,7 +15,7 @@
15
15
  = f.input :gender, collection: GenderType.all, include_blank: false, as: :radio_buttons, item_wrapper_class: 'inline'
16
16
 
17
17
  = f.input :time_zone, fancy: true, priority: %w(Moscow Kyiv).map{|t| ActiveSupport::TimeZone[t] }
18
- = f.input :locale, collection: Globalize.available_locales
18
+ = f.input :locale, collection: AbAdmin.translated_locales
19
19
  = f.input :bg_color, as: :color
20
20
 
21
21
  = f.input :password, input_html: {autocomplete: 'off'}
@@ -10,7 +10,7 @@
10
10
  = f.input :user_role_id, collection: UserRoleType.all
11
11
 
12
12
  = f.input :gender, collection: GenderType.all
13
- = f.input :locale, collection: Globalize.available_locales
13
+ = f.input :locale, collection: AbAdmin.translated_locales
14
14
 
15
15
  = f.input :updated_at
16
16
  = f.input :created_at
@@ -6,7 +6,6 @@
6
6
  .muted.footer-notes= AbAdmin.footer_notes
7
7
 
8
8
  = render 'admin/fileupload/asset_templates'
9
- = render 'admin/shared/columns_hider'
10
9
 
11
10
  - unless admin?
12
11
  css:
@@ -1,6 +1,6 @@
1
1
  header.navbar.navbar-inverse
2
2
  = render 'admin/shared/main_menu'
3
- ul.breadcrumb
3
+ ul.breadcrumb.clearfix
4
4
  li.resource_actions= render 'admin/shared/action_items'
5
5
  = render 'admin/shared/breadcrumbs'
6
6
 
@@ -16,13 +16,13 @@ html id="controller_#{controller_name}"
16
16
  = render 'layouts/admin/navigation'
17
17
  #main role="main"
18
18
  .container-fluid
19
- = render('admin/shared/flash', flash: flash) if flash
20
19
  #container.row-fluid
21
20
  .wrap_content
22
21
  .clearfix data-pjax-container=true class=admin_layout_css = yield
23
22
  - if collection_action? && settings[:search]
24
- .sidebar.well= render 'search_layout'
23
+ .sidebar.well.well-tiny= render 'search_layout'
25
24
  = yield :sidebar
25
+ = render('admin/shared/flash', flash: flash) if flash
26
26
  #modal_form.modal.hide
27
27
  #loading.label.label-warning= t 'admin.loading'
28
28
  #push
@@ -89,7 +89,7 @@ de:
89
89
  choose: Select %{attr}
90
90
  close: Close
91
91
  columns_hider:
92
- button: Adjust the table
92
+ button: Columns
93
93
  title: Setting the display of columns
94
94
  comments:
95
95
  add: Comment
@@ -105,7 +105,6 @@ de:
105
105
  drop_here: Drag and drop files here
106
106
  main_image: Set Main
107
107
  max_size: Max size
108
- crop: Crop
109
108
  rotate: Rotate
110
109
  form:
111
110
  cancel: Cancel
@@ -89,7 +89,7 @@ en:
89
89
  choose: Select %{attr}
90
90
  close: Close
91
91
  columns_hider:
92
- button: Adjust the table
92
+ button: Columns
93
93
  title: Setting the display of columns
94
94
  comments:
95
95
  add: Comment
@@ -105,7 +105,6 @@ en:
105
105
  drop_here: Drag and drop files here
106
106
  main_image: Set Main
107
107
  max_size: Max size
108
- crop: Crop
109
108
  rotate: Rotate
110
109
  form:
111
110
  cancel: Cancel
@@ -105,7 +105,6 @@ ru:
105
105
  drop_here: или бросьте файл(ы) сюда
106
106
  main_image: Сделать главным
107
107
  max_size: Макс разм.
108
- crop: Обрезать
109
108
  rotate: Повернуть
110
109
  form:
111
110
  cancel: Отмена