ab_admin 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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