ab_admin 0.8.3 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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: Отмена