ab_admin 0.4.0 → 0.5.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +27 -12
  3. data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +39 -20
  4. data/app/assets/javascripts/ab_admin/core/columns_hider.js.coffee +4 -5
  5. data/app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee +3 -3
  6. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.css.scss +5 -1
  7. data/app/assets/stylesheets/ab_admin/components/_columns_hider.css.scss +1 -1
  8. data/app/assets/stylesheets/ab_admin/components/_form.css.scss +1 -1
  9. data/app/controllers/admin/assets_controller.rb +4 -1
  10. data/app/controllers/admin/base_controller.rb +28 -10
  11. data/app/controllers/admin/locators_controller.rb +1 -1
  12. data/app/controllers/admin/manager_controller.rb +7 -2
  13. data/app/controllers/admin/static_pages_controller.rb +4 -5
  14. data/app/controllers/admin/structures_controller.rb +1 -1
  15. data/app/views/admin/base/create.js.erb +1 -1
  16. data/app/views/admin/base/edit.js.erb +16 -10
  17. data/app/views/admin/base/index.html.slim +2 -2
  18. data/app/views/admin/base/show.js.erb +2 -2
  19. data/app/views/admin/base/update.js.erb +12 -8
  20. data/app/views/admin/manager/_form.html.slim +4 -1
  21. data/app/views/admin/manager/_table.html.slim +2 -2
  22. data/app/views/admin/shared/_flash.html.slim +1 -1
  23. data/app/views/admin/structures/_form.html.slim +1 -1
  24. data/app/views/admin/users/_table.html.slim +1 -1
  25. data/config/locales/de.yml +18 -36
  26. data/config/locales/en.yml +20 -36
  27. data/config/locales/it.yml +12 -30
  28. data/config/locales/ru.yml +4 -17
  29. data/config/locales/uk.yml +301 -0
  30. data/lib/ab_admin.rb +1 -2
  31. data/lib/ab_admin/concerns/admin_addition.rb +1 -1
  32. data/lib/ab_admin/concerns/asset_human_names.rb +9 -1
  33. data/lib/ab_admin/concerns/utilities.rb +2 -6
  34. data/lib/ab_admin/controllers/tree.rb +2 -2
  35. data/lib/ab_admin/core_ext/array.rb +6 -5
  36. data/lib/ab_admin/hooks.rb +7 -32
  37. data/lib/ab_admin/hooks/{active_model_hooks.rb → active_model_attr_accessible_few_roles.rb} +12 -4
  38. data/lib/ab_admin/hooks/{globalize_hooks.rb → globalize_locale_suffix_accessors.rb} +1 -9
  39. data/lib/ab_admin/hooks/globalize_valid_locale.rb +9 -0
  40. data/lib/ab_admin/hooks/{paginate_hooks.rb → will_paginate_id_prefetch.rb} +7 -22
  41. data/lib/ab_admin/hooks/will_paginate_no_uri.rb +19 -0
  42. data/lib/ab_admin/i18n_tools/model_translator.rb +3 -2
  43. data/lib/ab_admin/menu/base_group.rb +3 -3
  44. data/lib/ab_admin/menu/item.rb +15 -4
  45. data/lib/ab_admin/models/asset.rb +6 -0
  46. data/lib/ab_admin/models/settings.rb +6 -6
  47. data/lib/ab_admin/models/user.rb +4 -0
  48. data/lib/ab_admin/utils.rb +16 -7
  49. data/lib/ab_admin/utils/xls_document.rb +9 -1
  50. data/lib/ab_admin/version.rb +1 -1
  51. data/lib/ab_admin/views/admin_helpers.rb +15 -11
  52. data/lib/ab_admin/views/admin_navigation_helpers.rb +11 -6
  53. data/lib/ab_admin/views/form_builder.rb +5 -1
  54. data/lib/ab_admin/views/search_form_builder.rb +1 -1
  55. data/lib/generators/ab_admin/glob/glob_generator.rb +6 -3
  56. data/lib/generators/ab_admin/install/install_generator.rb +1 -1
  57. data/lib/generators/ab_admin/install/templates/config/{unicorn_config.rb → unicorn/production.rb} +6 -9
  58. data/lib/generators/ab_admin/install/templates/script/unicorn.sh +7 -6
  59. data/lib/generators/template.rb +0 -1
  60. data/lib/tasks/assets.rake +7 -1
  61. metadata +34 -61
  62. data/app/assets/stylesheets/ab_admin/components/_text_styles.css.scss +0 -47
  63. data/lib/ab_admin/views/inputs/capture_block_input.rb +0 -16
@@ -111,7 +111,7 @@ ru:
111
111
  cancel: Отмена
112
112
  save: Сохранить
113
113
  save_and_add_another: Сохранить & новый
114
- save_and_edit: Применить
114
+ save_and_edit: Сохранить & редактировать
115
115
  save_and_edit_next: Сохранить и след.
116
116
  save_and_edit_prev: Сохранить и пред.
117
117
  details: Подробнее
@@ -128,7 +128,6 @@ ru:
128
128
  default: По умолчанию
129
129
  private: Приватная
130
130
  public: Публичная
131
- keywords: Ключевые слова
132
131
  langs:
133
132
  en: En
134
133
  it: It
@@ -214,7 +213,6 @@ ru:
214
213
  cancel: Отмена
215
214
  clear: Сброс
216
215
  confirm: Подтвердить
217
- create_product: Создать новый товар
218
216
  day: Воскресенье,Понедельник,Вторник,Среда,Четверг,Пятница,Суббота
219
217
  day_short: Вс,Пн,Вт,Ср,Чт,Пт,Сб
220
218
  delete_nested_elements: Невозможно удалить
@@ -234,21 +232,11 @@ ru:
234
232
  emptyResult: Пустой результат загрузки файла
235
233
  attributes:
236
234
  map: Местоположение
237
- address: Адрес
238
- country: Страна
239
- country_id: Страна
240
235
  created_at: Дата создания
241
236
  description: Описание
242
- footmarks_count: Лайков
243
237
  is_visible: Отображать
244
238
  name: Название
245
- parent: Родительский элемент
246
- parent_id: Родительский элемент
247
239
  position: Позиция
248
- region: Регион
249
- region_id: Регион
250
- reviews_count: Просмотров
251
- synonyms: Синонимы
252
240
  title: Название
253
241
  updated_at: Дата изменения
254
242
  user: Пользователь
@@ -257,7 +245,6 @@ ru:
257
245
  updater_id: Обновил
258
246
  remember_me: Запомнить
259
247
  password: Пароль
260
- slug: Алиас
261
248
  attrs:
262
249
  en: анг.
263
250
  it: итал.
@@ -265,6 +252,7 @@ ru:
265
252
  uk: укр.
266
253
  de: нем.
267
254
  fr: фран.
255
+ es: исп.
268
256
  flash:
269
257
  admin:
270
258
  actions:
@@ -277,9 +265,6 @@ ru:
277
265
  update:
278
266
  error: '%{resource_name} - при сохранении возникли ошибки: %{errors}'
279
267
  notice: '%{resource_name} - запись была успешно изменена.'
280
- controller_name:
281
- update:
282
- success: products
283
268
  locators:
284
269
  prepared: Переводы успешно подготовлены
285
270
  restart: Переводы успешно перезагружены
@@ -313,3 +298,5 @@ ru:
313
298
  size_too_big: слишком большой размер (должно быть не более %{file_size})
314
299
  carrierwave_processing_error: Невозможно переконвертировать
315
300
  carrierwave_integrity_error: Не является рисунком
301
+ unauthorized:
302
+ default: "Нет прав для просмотра"
@@ -0,0 +1,301 @@
1
+ uk:
2
+ _no: "Ні"
3
+ _yes: "Так"
4
+ activerecord:
5
+ models:
6
+ locator: "Переклади"
7
+ settings: "Настройки"
8
+ track:
9
+ few: "История"
10
+ many: "История"
11
+ one: "История"
12
+ other: "История"
13
+ zero: "История"
14
+ attributes:
15
+ user:
16
+ password_confirmation: "Пароль еще раз"
17
+ admin:
18
+ actions:
19
+ activate:
20
+ link: "Активировать"
21
+ batch_destroy:
22
+ confirmation: "Вы уверены что хотите удалить выбранные записи?"
23
+ link: "Удалить выбранные"
24
+ title: "Мульти-удаление"
25
+ batch_publish:
26
+ link: "Опубликовать выбранные"
27
+ title: "Мульти-публикация"
28
+ batch_un_publish:
29
+ link: "Снять с публикации выбранные"
30
+ title: "Мульти-скрытие"
31
+ create:
32
+ link: "Создать"
33
+ title: "Создание"
34
+ destroy:
35
+ link: "Удалить"
36
+ title: "Удаление"
37
+ edit:
38
+ link: "Редактировать"
39
+ title: "Редактирование"
40
+ history:
41
+ link: "История"
42
+ title: "История"
43
+ index:
44
+ link: "Список"
45
+ title: "Список"
46
+ new:
47
+ link: "Создать"
48
+ title: "Создание"
49
+ perms:
50
+ link: "Права"
51
+ title: "Редактирование прав доступа"
52
+ preview:
53
+ link: "Предпросмотр"
54
+ show:
55
+ link: "Просмотр"
56
+ title: "Детали"
57
+ suspend:
58
+ link: "Бан"
59
+ update:
60
+ link: "Редактировать"
61
+ title: "Редактирование"
62
+ add: "Добавить"
63
+ auth:
64
+ profile: "Профиль"
65
+ sign_out: "Выход"
66
+ sessions:
67
+ title: "Вход"
68
+ button: "Войти"
69
+ passwords:
70
+ new:
71
+ title: "Забыли пароль?"
72
+ button: "Выслать инструкции"
73
+ edit:
74
+ title: "Изменение пароля"
75
+ button: "Изменить пароль"
76
+ password: "Новый пароль"
77
+ password_confirmation: "Новый пароль еще раз"
78
+ avatar: "Аватар"
79
+ batch_actions:
80
+ title: "Действия"
81
+ status:
82
+ zero: "%{action} - 0 записей"
83
+ one: "%{action} - %{count} запись"
84
+ few: "%{action} - %{count} записи"
85
+ many: "%{action} - %{count} записей"
86
+ other: "%{action} - %{count} записей"
87
+ cache_clear: "Очистить кэш"
88
+ cant_be_deleted: "Удаление невозможно"
89
+ choose: "Выберите %{attr}"
90
+ close: "Закрыть"
91
+ columns_hider:
92
+ button: "Столбцы"
93
+ title: "Настройка отображения колонок"
94
+ comments:
95
+ add: "Комментировать"
96
+ title_content: "Комментариев (%{count})"
97
+ delete: "Удалить"
98
+ delete_confirmation: "Вы уверены, что хотите удалить это?"
99
+ empty: "Пусто"
100
+ exit: "Выход"
101
+ fileupload:
102
+ button: "Выберите файл"
103
+ buttons: "Выберите файлы"
104
+ delete: "Удалить файл"
105
+ drop_here: "или бросьте файл(ы) сюда"
106
+ main_image: "Сделать главным"
107
+ max_size: "Макс разм."
108
+ crop: "Обрезать"
109
+ rotate: "Повернуть"
110
+ form:
111
+ cancel: "Отмена"
112
+ save: "Сохранить"
113
+ save_and_add_another: "Сохранить & новый"
114
+ save_and_edit: "Применить"
115
+ save_and_edit_next: "Сохранить и след."
116
+ save_and_edit_prev: "Сохранить и пред."
117
+ details: "Подробнее"
118
+ base: "Основное"
119
+ keywords: "Мета теги"
120
+ gender:
121
+ female: "Женский"
122
+ male: "Мужской"
123
+ undefined: "Неизвестно"
124
+ geo_autocomplete: "Введите адрес"
125
+ group:
126
+ kind:
127
+ admin: "Административная"
128
+ default: "По умолчанию"
129
+ private: "Приватная"
130
+ public: "Публичная"
131
+ keywords: "Ключевые слова"
132
+ langs:
133
+ en: En
134
+ it: It
135
+ ru: Ru
136
+ uk: Uk
137
+ index_view:
138
+ table: "Отображение таблицей"
139
+ tree: "Отображение деревом с сортировкой"
140
+ grid: "Отображение плиткой"
141
+ loading: "Загрузка..."
142
+ locators:
143
+ edit_file: "Редактировать файл"
144
+ edit_files: "Редактировать файлы"
145
+ file: "Файл"
146
+ locale: "Локаль"
147
+ prepare: "Подготовить файлы локализации"
148
+ restart: "Обновить локализацию"
149
+ title: "Редактирование локализации"
150
+ update_file: "Обновить файл"
151
+ all_terms: "Все"
152
+ incomplete: "Пустые"
153
+ complete: "Готовые"
154
+ key: "Ключ"
155
+ filter: "введите текст для фильтрации"
156
+ translate_incomplete: "Перевести все пустые (google)"
157
+ navigation:
158
+ system: "Система"
159
+ users: "Пользователи"
160
+ dashboard: Dashboard
161
+ no_results_text: "Ничего не найдено"
162
+ photo: "Главное изображение"
163
+ pictures: "Изображения"
164
+ preview: "Предпросмотр"
165
+ role:
166
+ kind:
167
+ admin: admin
168
+ default: default
169
+ group: group
170
+ user: user
171
+ save: "Сохранить"
172
+ scopes:
173
+ un_visible: "Скрытые"
174
+ visible: "Опубликованные"
175
+ search:
176
+ cancel: "Очистить"
177
+ submit: "Уточнить"
178
+ title: "Поиск"
179
+ set_main: "Сделать главным изображением"
180
+ show:
181
+ attr: "Атрибут"
182
+ value: "Значение"
183
+ table:
184
+ actions: "Действия"
185
+ user:
186
+ role:
187
+ admin: "Админ"
188
+ default: "Клиент"
189
+ guest: "Гость"
190
+ moderator: "Модератор"
191
+ redactor: "Редактор"
192
+ state:
193
+ active: "Активен"
194
+ deleted: "Удален"
195
+ pending: "Неактивирован"
196
+ suspended: "Заморожен"
197
+ structure:
198
+ kind:
199
+ group: "Группа страницек"
200
+ main: "Главная"
201
+ posts: "Журнал"
202
+ redirect: "Перенаправление"
203
+ static_page: "Текстовая страница"
204
+ position:
205
+ bottom: "Снизу"
206
+ default: "По умолчанию"
207
+ menu: "Меню"
208
+ js:
209
+ empty: "Пусто"
210
+ add_link: "Создать?"
211
+ add: "Добавить"
212
+ remove: "Удалить"
213
+ save: "Сохнанить"
214
+ cancel: "Отмена"
215
+ clear: "Сброс"
216
+ confirm: "Подтвердить"
217
+ day: "Воскресенье,Понедельник,Вторник,Среда,Четверг,Пятница,Суббота"
218
+ day_short: "Вс,Пн,Вт,Ср,Чт,Пт,Сб"
219
+ delete_nested_elements: "Невозможно удалить"
220
+ edit: "Редактировать"
221
+ month: "Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь"
222
+ name: "Название"
223
+ no_results: "Ничего не найдено"
224
+ search: "Идет поиск..."
225
+ value: "Значение"
226
+ fileupload:
227
+ errors:
228
+ maxFileSize: "Файл слишком велик"
229
+ minFileSize: "Файл слишком мал"
230
+ acceptFileTypes: "Тип файла не допускается"
231
+ maxNumberOfFiles: "Превышено максимальное количество файлов"
232
+ uploadedBytes: "Превышен максимальный размер файла"
233
+ emptyResult: "Пустой результат загрузки файла"
234
+ attributes:
235
+ map: "Местоположение"
236
+ created_at: "Дата создания"
237
+ description: "Описание"
238
+ is_visible: "Отображать"
239
+ name: "Название"
240
+ position: "Позиция"
241
+ title: "Название"
242
+ updated_at: "Дата изменения"
243
+ user: "Пользователь"
244
+ user_id: "Пользователь"
245
+ updater: "Обновил"
246
+ updater_id: "Обновил"
247
+ remember_me: "Запомнить"
248
+ password: "Пароль"
249
+ attrs:
250
+ en: "анг."
251
+ it: "итал."
252
+ ru: "рус."
253
+ uk: "укр."
254
+ de: "нем."
255
+ fr: "фран."
256
+ es: "исп."
257
+ flash:
258
+ admin:
259
+ actions:
260
+ create:
261
+ error: "%{resource_name} - при сохранении возникли ошибки: %{errors}"
262
+ notice: "%{resource_name} - запись успешно создана."
263
+ destroy:
264
+ error: "%{resource_name} - запись не может быть удалена"
265
+ notice: "%{resource_name} - запись была успешно удалена."
266
+ update:
267
+ error: "%{resource_name} - при сохранении возникли ошибки: %{errors}"
268
+ notice: "%{resource_name} - запись была успешно изменена."
269
+ locators:
270
+ prepared: "Переводы успешно подготовлены"
271
+ restart: "Переводы успешно перезагружены"
272
+ update_error: "Возникли ошибки при обновлении данных"
273
+ updated: "Перевод успешно обновлен"
274
+ permissions:
275
+ failure: "Ошибка обновления"
276
+ success: "Права успешно обновлены"
277
+ simple_form:
278
+ buttons:
279
+ cancel: "Отмена"
280
+ creating: "Создание..."
281
+ error_notification:
282
+ default_message: "При сохранении возникли ошибки"
283
+ 'no': "Нет"
284
+ required:
285
+ mark: "*"
286
+ text: "обязательное"
287
+ updating: "Обновление..."
288
+ 'yes': "Да"
289
+ will_paginate:
290
+ page_gap: "…"
291
+ pagination_info: "<b>%{from}&nbsp;-&nbsp;%{to}</b> из <b>%{count}</b>"
292
+ pagination_info_empty: 0 всего
293
+ next_label: "→"
294
+ previous_label: "←"
295
+ errors:
296
+ messages:
297
+ wrong_size: "неправильный размер (должно быть %{file_size})"
298
+ size_too_small: "слишком маленький размер (должно быть не менее %{file_size})"
299
+ size_too_big: "слишком большой размер (должно быть не более %{file_size})"
300
+ carrierwave_processing_error: "Невозможно переконвертировать"
301
+ carrierwave_integrity_error: "Не является рисунком"
data/lib/ab_admin.rb CHANGED
@@ -104,7 +104,6 @@ module AbAdmin
104
104
  autoload :EditorInput, 'ab_admin/views/inputs/editor_input'
105
105
  autoload :DateTimePickerInput, 'ab_admin/views/inputs/date_time_picker_input'
106
106
  autoload :TokenInput, 'ab_admin/views/inputs/token_input'
107
- autoload :CaptureBlockInput, 'ab_admin/views/inputs/capture_block_input'
108
107
  autoload :UploaderInput, 'ab_admin/views/inputs/uploader_input'
109
108
  end
110
109
  end
@@ -146,7 +145,7 @@ module AbAdmin
146
145
  @@translate_models = %w(User Asset Structure StaticPage Header AdminComment)
147
146
 
148
147
  mattr_accessor :assets
149
- @@assets = %w(ab_admin/devise.css bootstrap.js)
148
+ @@assets = %w(ab_admin/devise.css bootstrap.js ab_admin/loading.gif ab_admin/clear.png)
150
149
 
151
150
  mattr_accessor :test_settings
152
151
  @@test_settings = {}
@@ -30,7 +30,7 @@ module AbAdmin
30
30
  def new_changes
31
31
  exclude_attrs = respond_to?(:translated_attribute_names) ? translated_attribute_names.dup : []
32
32
  exclude_attrs << :updated_at
33
- changes.except(*exclude_attrs).map { |k, v| [k, v.last] }.to_hash
33
+ changes.except(*exclude_attrs).map { |k, v| [k, v.last] }.to_h
34
34
  end
35
35
 
36
36
  def admin_comments_count_non_zero
@@ -14,7 +14,15 @@ module AbAdmin
14
14
  def make_asset_human_names
15
15
  asset_human_names_list.each do |assoc|
16
16
  Array(send(assoc)).each do |asset|
17
- asset.store_model_filename(self)
17
+ begin
18
+ asset.store_model_filename(self)
19
+ rescue Errno::ENOENT => e
20
+ if Rails.env.production? && (defined? ExceptionNotifier)
21
+ ExceptionNotifier.notify_exception(e, data: {email: asset.attributes})
22
+ else
23
+ raise e
24
+ end
25
+ end
18
26
  end
19
27
  end
20
28
  end
@@ -104,12 +104,8 @@ module AbAdmin
104
104
  end
105
105
  end
106
106
 
107
- def friendly_find(id_param)
108
- if respond_to?(:friendly)
109
- friendly.find(id_param)
110
- else
111
- find(id_param)
112
- end
107
+ def friendly_find(*args)
108
+ find(*args)
113
109
  end
114
110
  end
115
111
 
@@ -7,7 +7,7 @@ module AbAdmin
7
7
  prev_id = params[:prev_id].to_i
8
8
  next_id = params[:next_id].to_i
9
9
 
10
- render text: 'Do nothing' and return if parent_id.zero? && prev_id.zero? && next_id.zero?
10
+ head(:bad_request) and return if parent_id.zero? && prev_id.zero? && next_id.zero?
11
11
 
12
12
  if prev_id.zero? && next_id.zero?
13
13
  resource.move_to_child_of resource_class.find(parent_id)
@@ -17,7 +17,7 @@ module AbAdmin
17
17
  resource.move_to_left_of resource_class.find(next_id)
18
18
  end
19
19
 
20
- render(nothing: true)
20
+ head :ok
21
21
  end
22
22
 
23
23
  end