ab_admin 0.3.6 → 0.4.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 (419) hide show
  1. checksums.yaml +7 -0
  2. data/{LICENSE.txt → MIT-LICENSE} +2 -4
  3. data/README.md +3 -3
  4. data/Rakefile +21 -3
  5. data/app/assets/images/admin/flags/b_de.png +0 -0
  6. data/app/assets/images/admin/flags/b_es.png +0 -0
  7. data/app/assets/images/admin/flags/b_fr.png +0 -0
  8. data/app/assets/images/admin/flags/flag_de.gif +0 -0
  9. data/app/assets/images/admin/flags/flag_de_nonact.gif +0 -0
  10. data/app/assets/images/admin/flags/flag_es.gif +0 -0
  11. data/app/assets/images/admin/flags/flag_es_nonact.gif +0 -0
  12. data/app/assets/images/admin/flags/flag_fr.gif +0 -0
  13. data/app/assets/images/admin/flags/flag_fr_nonact.gif +0 -0
  14. data/app/assets/javascripts/ab_admin/components/admin_assets.js.coffee +50 -60
  15. data/app/assets/javascripts/ab_admin/components/base_assets.js.coffee +86 -0
  16. data/app/assets/javascripts/ab_admin/components/croppable_image.js.coffee +4 -4
  17. data/app/assets/javascripts/ab_admin/components/gmaps.js.coffee +5 -0
  18. data/app/assets/javascripts/ab_admin/components/google_translate.js.coffee +0 -1
  19. data/app/assets/javascripts/ab_admin/components/in_place_edit.js.coffee +7 -3
  20. data/app/assets/javascripts/ab_admin/components/locator.js.coffee +1 -1
  21. data/app/assets/javascripts/ab_admin/components/select2_bridge.js.coffee +152 -0
  22. data/app/assets/javascripts/ab_admin/components/sortable_tree.js.coffee +1 -1
  23. data/app/assets/javascripts/ab_admin/core/batch_actions.js.coffee +5 -4
  24. data/app/assets/javascripts/ab_admin/core/columns_hider.js.coffee +4 -11
  25. data/app/assets/javascripts/ab_admin/core/confirmation.js.coffee +4 -43
  26. data/app/assets/javascripts/ab_admin/core/deprecated_utils.js.coffee +44 -0
  27. data/app/assets/javascripts/ab_admin/core/init.js.coffee +8 -25
  28. data/app/assets/javascripts/ab_admin/core/pjax.js.coffee +18 -4
  29. data/app/assets/javascripts/ab_admin/core/search_form.js.coffee +5 -5
  30. data/app/assets/javascripts/ab_admin/core/ui_utils.js.coffee +15 -86
  31. data/app/assets/javascripts/ab_admin/core/utils.js.coffee +38 -51
  32. data/app/assets/javascripts/ab_admin/core/view_layout.js.coffee +1 -1
  33. data/app/assets/javascripts/ab_admin/inputs/datetime_input.js.coffee +16 -18
  34. data/app/assets/javascripts/ab_admin/main.js +7 -7
  35. data/app/assets/stylesheets/ab_admin/bootstrap_and_overrides.css.scss +21 -8
  36. data/app/assets/stylesheets/ab_admin/components/_admin_comments.css.scss +17 -5
  37. data/app/assets/stylesheets/ab_admin/components/_base.css.scss +4 -0
  38. data/app/assets/stylesheets/ab_admin/components/_colored_tabs.css.scss +1 -4
  39. data/app/assets/stylesheets/ab_admin/components/_columns_hider.css.scss +5 -0
  40. data/app/assets/stylesheets/ab_admin/components/_form.css.scss +45 -16
  41. data/app/assets/stylesheets/ab_admin/components/_grid_view.css.scss +11 -0
  42. data/app/assets/stylesheets/ab_admin/components/_locale_tabs.css.scss +1 -1
  43. data/app/assets/stylesheets/ab_admin/components/_navigation.css.scss +11 -9
  44. data/app/assets/stylesheets/ab_admin/components/_table_view.css.scss +1 -1
  45. data/app/assets/stylesheets/ab_admin/components/_translations.css.scss +1 -0
  46. data/app/assets/stylesheets/ab_admin/components/{_sortable_tree.css.scss → _tree_view.css.scss} +8 -3
  47. data/app/assets/stylesheets/ab_admin/fileupload.css.scss +51 -43
  48. data/app/assets/stylesheets/ab_admin/main.css.scss +1 -3
  49. data/app/controllers/admin/admin_comments_controller.rb +14 -4
  50. data/app/controllers/admin/assets_controller.rb +44 -35
  51. data/app/controllers/admin/base_controller.rb +93 -38
  52. data/app/controllers/admin/locators_controller.rb +3 -2
  53. data/app/controllers/admin/manager_controller.rb +20 -9
  54. data/app/controllers/admin/structures_controller.rb +9 -1
  55. data/app/controllers/admin/users_controller.rb +1 -2
  56. data/app/views/ab_admin/devise/sessions/new.html.slim +1 -1
  57. data/app/views/admin/admin_comments/_comment.html.slim +21 -7
  58. data/app/views/admin/admin_comments/_comments.html.slim +1 -1
  59. data/app/views/admin/admin_comments/_form.html.slim +8 -3
  60. data/app/views/admin/admin_comments/_list_block.html.slim +7 -0
  61. data/app/views/admin/admin_comments/create.js.erb +3 -2
  62. data/app/views/admin/admin_comments/destroy.js.erb +1 -1
  63. data/app/views/admin/admin_comments/index.js.erb +14 -0
  64. data/app/views/admin/assets/batch_edit.html.slim +14 -0
  65. data/app/views/admin/base/_modal_form_layout.html.slim +12 -0
  66. data/app/views/admin/base/_search_layout.html.slim +4 -3
  67. data/app/views/admin/base/_table.html.slim +2 -2
  68. data/app/views/admin/base/create.js.erb +13 -8
  69. data/app/views/admin/base/history.html.slim +18 -0
  70. data/app/views/admin/base/index.html.slim +3 -3
  71. data/app/views/admin/base/new.js.erb +14 -8
  72. data/app/views/admin/base/show.html.slim +1 -2
  73. data/app/views/admin/base/show.js.erb +7 -0
  74. data/app/views/admin/fileupload/_asset_templates.html.slim +29 -0
  75. data/app/views/admin/fileupload/_container.html.slim +13 -12
  76. data/app/views/admin/fileupload/_file.html.slim +2 -2
  77. data/app/views/admin/fileupload/_image.html.slim +8 -0
  78. data/app/views/admin/fileupload/_video.html.slim +2 -2
  79. data/app/views/admin/headers/_form.html.slim +2 -0
  80. data/app/views/admin/locators/edit.html.slim +1 -1
  81. data/app/views/admin/locators/show.html.slim +1 -2
  82. data/app/views/admin/manager/_form.html.slim +17 -3
  83. data/app/views/admin/manager/_modal_form.html.slim +19 -0
  84. data/app/views/admin/manager/_table.html.slim +3 -3
  85. data/app/views/admin/manager/show.html.slim +1 -0
  86. data/app/views/admin/shared/_content_actions.html.slim +39 -0
  87. data/app/views/admin/shared/_locale_tabs.html.slim +3 -3
  88. data/app/views/admin/shared/inputs/_checkbox_tree.html.slim +9 -3
  89. data/app/views/admin/structures/_form.html.slim +4 -7
  90. data/app/views/admin/users/_form.html.slim +2 -4
  91. data/app/views/admin/users/_search_form.html.slim +0 -1
  92. data/app/views/admin/users/_table.html.slim +8 -10
  93. data/app/views/layouts/admin/_footer.html.slim +3 -4
  94. data/app/views/layouts/admin/_navigation.html.slim +2 -2
  95. data/app/views/layouts/admin/application.html.slim +7 -9
  96. data/app/views/layouts/admin/devise.html.slim +3 -4
  97. data/config/locales/de.yml +319 -0
  98. data/config/locales/en.devise.yml +44 -31
  99. data/config/locales/en.yml +166 -143
  100. data/config/locales/it.devise.yml +54 -41
  101. data/config/locales/it.yml +178 -163
  102. data/config/locales/ru.devise.yml +70 -56
  103. data/config/locales/ru.yml +280 -264
  104. data/config/routes.rb +6 -3
  105. data/db/migrate/20130101000001_create_users.rb +7 -11
  106. data/db/migrate/20130101000003_create_assets.rb +5 -5
  107. data/db/migrate/20130101000004_create_headers.rb +2 -6
  108. data/db/migrate/20130101000005_create_static_pages.rb +1 -5
  109. data/db/migrate/20130101000006_create_structures.rb +5 -9
  110. data/db/migrate/20130101000007_base_translations.rb +3 -1
  111. data/db/migrate/20130101000008_create_admin_comments.rb +5 -5
  112. data/db/migrate/20130101000009_create_tracks.rb +20 -0
  113. data/lib/ab_admin.rb +36 -4
  114. data/lib/ab_admin/abstract_resource.rb +28 -7
  115. data/lib/ab_admin/carrierwave/base_uploader.rb +85 -5
  116. data/lib/ab_admin/carrierwave/glue.rb +6 -1
  117. data/lib/ab_admin/concerns/admin_addition.rb +26 -9
  118. data/lib/ab_admin/concerns/asset_human_names.rb +23 -0
  119. data/lib/ab_admin/concerns/fileuploads.rb +102 -0
  120. data/lib/ab_admin/concerns/has_tracking.rb +32 -0
  121. data/lib/ab_admin/concerns/nested_set.rb +9 -9
  122. data/lib/ab_admin/concerns/silencer.rb +5 -5
  123. data/lib/ab_admin/concerns/utilities.rb +28 -16
  124. data/lib/ab_admin/concerns/validations.rb +1 -1
  125. data/lib/ab_admin/config/base.rb +10 -2
  126. data/lib/ab_admin/controllers/callbacks.rb +2 -2
  127. data/lib/ab_admin/controllers/can_can_manager_resource.rb +3 -2
  128. data/lib/ab_admin/controllers/fv.rb +16 -0
  129. data/lib/ab_admin/controllers/head_options.rb +6 -4
  130. data/lib/ab_admin/core_ext/hash.rb +25 -70
  131. data/lib/ab_admin/core_ext/string.rb +17 -4
  132. data/lib/ab_admin/engine.rb +2 -8
  133. data/lib/ab_admin/hooks.rb +8 -3
  134. data/lib/ab_admin/hooks/active_model_hooks.rb +1 -1
  135. data/lib/ab_admin/hooks/globalize_hooks.rb +35 -0
  136. data/lib/ab_admin/hooks/paginate_hooks.rb +3 -1
  137. data/lib/ab_admin/i18n_tools/model_translator.rb +1 -1
  138. data/lib/ab_admin/menu/abstract_builder.rb +14 -0
  139. data/lib/ab_admin/menu/base_group.rb +26 -0
  140. data/lib/ab_admin/menu/builder.rb +16 -0
  141. data/lib/ab_admin/menu/group.rb +24 -0
  142. data/lib/ab_admin/menu/item.rb +23 -0
  143. data/lib/ab_admin/models/admin_comment.rb +68 -0
  144. data/lib/ab_admin/models/asset.rb +30 -19
  145. data/lib/ab_admin/models/attachment_file.rb +2 -1
  146. data/lib/ab_admin/models/header.rb +15 -0
  147. data/lib/ab_admin/models/locator.rb +1 -3
  148. data/lib/ab_admin/models/settings.rb +10 -10
  149. data/lib/ab_admin/models/structure.rb +20 -9
  150. data/lib/ab_admin/models/track.rb +61 -0
  151. data/lib/ab_admin/models/type_model.rb +30 -17
  152. data/lib/ab_admin/models/user.rb +18 -49
  153. data/lib/ab_admin/utils.rb +16 -7
  154. data/lib/ab_admin/utils/logger.rb +11 -7
  155. data/lib/ab_admin/utils/mysql.rb +10 -0
  156. data/lib/ab_admin/version.rb +1 -1
  157. data/lib/ab_admin/views/admin_helpers.rb +20 -9
  158. data/lib/ab_admin/views/admin_navigation_helpers.rb +44 -21
  159. data/lib/ab_admin/views/content_only_wrapper.rb +14 -0
  160. data/lib/ab_admin/views/form_builder.rb +27 -89
  161. data/lib/ab_admin/views/helpers.rb +1 -28
  162. data/lib/ab_admin/views/inputs/capture_block_input.rb +16 -0
  163. data/lib/ab_admin/views/inputs/date_time_picker_input.rb +45 -0
  164. data/lib/ab_admin/views/inputs/token_input.rb +2 -1
  165. data/lib/ab_admin/views/inputs/uploader_input.rb +101 -0
  166. data/lib/ab_admin/views/manager_helpers.rb +12 -0
  167. data/lib/ab_admin/views/search_form_builder.rb +36 -13
  168. data/lib/generators/ab_admin/ckeditor_assets/ckeditor_assets_generator.rb +1 -1
  169. data/lib/generators/ab_admin/install/install_generator.rb +3 -2
  170. data/lib/generators/ab_admin/install/templates/config/ab_admin.rb.erb +1 -1
  171. data/lib/generators/ab_admin/install/templates/config/admin_menu.rb +1 -1
  172. data/lib/generators/ab_admin/install/templates/config/i18n-js.yml +1 -1
  173. data/lib/generators/ab_admin/install/templates/config/nginx.conf +22 -9
  174. data/lib/generators/ab_admin/install/templates/config/robots.txt +7 -0
  175. data/lib/generators/ab_admin/install/templates/config/seeds.rb +2 -1
  176. data/lib/generators/ab_admin/install/templates/models/ability.rb +2 -7
  177. data/lib/generators/ab_admin/install/templates/models/admin_comment.rb +3 -28
  178. data/lib/generators/ab_admin/install/templates/models/asset.rb +4 -2
  179. data/lib/generators/ab_admin/install/templates/models/attachment_file.rb +1 -1
  180. data/lib/generators/ab_admin/install/templates/models/avatar.rb +2 -2
  181. data/lib/generators/ab_admin/install/templates/models/gender_type.rb +1 -1
  182. data/lib/generators/ab_admin/install/templates/models/header.rb +2 -2
  183. data/lib/generators/ab_admin/install/templates/models/locator.rb +0 -1
  184. data/lib/generators/ab_admin/install/templates/models/picture.rb +1 -1
  185. data/lib/generators/ab_admin/install/templates/models/settings.rb +1 -1
  186. data/lib/generators/ab_admin/install/templates/models/structure.rb +6 -8
  187. data/lib/generators/ab_admin/install/templates/models/track.rb +5 -0
  188. data/lib/generators/ab_admin/install/templates/models/user.rb +2 -3
  189. data/lib/generators/ab_admin/install/templates/script/unicorn.sh +0 -2
  190. data/lib/generators/ab_admin/install/templates/spec/factories/user_factory.rb +1 -2
  191. data/lib/generators/ab_admin/install/templates/uploaders/attachment_file_uploader.rb +1 -1
  192. data/lib/generators/ab_admin/install/templates/uploaders/avatar_uploader.rb +1 -1
  193. data/lib/generators/ab_admin/install/templates/uploaders/picture_uploader.rb +1 -1
  194. data/lib/generators/ab_admin/model/templates/resource.erb +1 -1
  195. data/lib/generators/ab_admin/resource/templates/_form.slim.erb +49 -45
  196. data/lib/generators/ab_admin/resource/templates/_table.slim.erb +1 -1
  197. data/lib/generators/template.rb +32 -56
  198. data/lib/tasks/assets.rake +1 -0
  199. metadata +197 -698
  200. data/.gitignore +0 -41
  201. data/Gemfile +0 -77
  202. data/Guardfile +0 -35
  203. data/TODO +0 -4
  204. data/ab_admin.gemspec +0 -59
  205. data/app/views/admin/fileupload/_asset.html.slim +0 -8
  206. data/app/views/admin/fileupload/_ftmpl.html.slim +0 -6
  207. data/app/views/admin/fileupload/_tmpl.html.slim +0 -9
  208. data/app/views/admin/fileupload/_vtmpl.html.slim +0 -10
  209. data/app/views/admin/shared/_batch_actions.html.slim +0 -27
  210. data/cucumber.yml +0 -10
  211. data/features/dsl/action_items.feature +0 -79
  212. data/features/dsl/admin_comments.feature +0 -30
  213. data/features/dsl/batch_actions.feature +0 -69
  214. data/features/dsl/config.feature +0 -44
  215. data/features/dsl/custom_actions.feature +0 -62
  216. data/features/dsl/export.feature +0 -42
  217. data/features/dsl/form.feature +0 -77
  218. data/features/dsl/in_place_edit.feature +0 -26
  219. data/features/dsl/list_edit.feature +0 -46
  220. data/features/dsl/parent_resource.feature +0 -18
  221. data/features/dsl/resource_action_items.feature +0 -40
  222. data/features/dsl/search.feature +0 -41
  223. data/features/dsl/show.feature +0 -37
  224. data/features/dsl/table.feature +0 -71
  225. data/features/dsl/tree.feature +0 -37
  226. data/features/index_views/table.feature +0 -20
  227. data/features/locators.feature +0 -40
  228. data/features/menu.feature +0 -35
  229. data/features/settings.feature +0 -36
  230. data/features/step_definitions/configuration_steps.rb +0 -94
  231. data/features/step_definitions/dsl/action_items_steps.rb +0 -13
  232. data/features/step_definitions/dsl/admin_comments_steps.rb +0 -12
  233. data/features/step_definitions/dsl/batch_actions_steps.rb +0 -27
  234. data/features/step_definitions/dsl/in_place_edit_steps.rb +0 -7
  235. data/features/step_definitions/dsl/parent_resource_steps.rb +0 -8
  236. data/features/step_definitions/dsl/resource_action_items_steps.rb +0 -14
  237. data/features/step_definitions/dsl/show_steps.rb +0 -8
  238. data/features/step_definitions/dsl/table_steps.rb +0 -38
  239. data/features/step_definitions/dsl/tree_steps.rb +0 -28
  240. data/features/step_definitions/menu_steps.rb +0 -20
  241. data/features/step_definitions/settings_steps.rb +0 -7
  242. data/features/step_definitions/structure_steps.rb +0 -7
  243. data/features/step_definitions/table_steps.rb +0 -23
  244. data/features/step_definitions/user_steps.rb +0 -72
  245. data/features/step_definitions/web_steps/browsing_steps.rb +0 -108
  246. data/features/step_definitions/web_steps/debug_steps.rb +0 -6
  247. data/features/step_definitions/web_steps/form_steps.rb +0 -190
  248. data/features/step_definitions/web_steps/i18n_steps.rb +0 -8
  249. data/features/step_definitions/web_steps/step_scoper.rb +0 -9
  250. data/features/step_definitions/web_steps/transforms_steps.rb +0 -3
  251. data/features/structure/tree.feature +0 -21
  252. data/features/support/capybara_helpers.rb +0 -15
  253. data/features/support/carrierwave.rb +0 -21
  254. data/features/support/env.rb +0 -40
  255. data/features/support/paths.rb +0 -55
  256. data/features/support/selector_helpers.rb +0 -9
  257. data/features/support/selectors.rb +0 -43
  258. data/features/support/tolerance_for_selenium_sync_issues.rb +0 -27
  259. data/features/user/sign_in.feature +0 -27
  260. data/features/user/sign_out.feature +0 -11
  261. data/features/user/user_edit.feature +0 -19
  262. data/features/user/user_show.feature +0 -9
  263. data/lib/ab_admin/hooks/quiet_scope_page.rb +0 -16
  264. data/lib/ab_admin/hooks/simple_form_hooks.rb +0 -31
  265. data/lib/ab_admin/menu_builder.rb +0 -89
  266. data/lib/ab_admin/views/inputs/date_time_input.rb +0 -65
  267. data/lib/generators/ab_admin/install/templates/models/user_state.rb +0 -6
  268. data/lib/generators/ab_admin/resource/templates/_form.haml.erb +0 -71
  269. data/lib/generators/ab_admin/resource/templates/_search_form.haml.erb +0 -35
  270. data/lib/generators/ab_admin/resource/templates/_table.haml.erb +0 -33
  271. data/spec/ab_admin_spec.rb +0 -23
  272. data/spec/dummy/Rakefile +0 -7
  273. data/spec/dummy/app/assets/images/rails.png +0 -0
  274. data/spec/dummy/app/assets/javascripts/application.js +0 -15
  275. data/spec/dummy/app/assets/stylesheets/application.css +0 -13
  276. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  277. data/spec/dummy/app/controllers/products_controller.rb +0 -5
  278. data/spec/dummy/app/controllers/welcome_controller.rb +0 -5
  279. data/spec/dummy/app/mailers/.gitkeep +0 -0
  280. data/spec/dummy/app/models/ab_admin/ab_admin_catalogue.rb +0 -5
  281. data/spec/dummy/app/models/ab_admin/ab_admin_collection.rb +0 -35
  282. data/spec/dummy/app/models/ab_admin/ab_admin_product.rb +0 -74
  283. data/spec/dummy/app/models/admin_menu.rb +0 -18
  284. data/spec/dummy/app/models/catalogue.rb +0 -10
  285. data/spec/dummy/app/models/ckeditor/asset.rb +0 -7
  286. data/spec/dummy/app/models/ckeditor/attachment_file.rb +0 -7
  287. data/spec/dummy/app/models/ckeditor/picture.rb +0 -7
  288. data/spec/dummy/app/models/collection.rb +0 -20
  289. data/spec/dummy/app/models/product.rb +0 -32
  290. data/spec/dummy/app/uploaders/ckeditor_attachment_file_uploader.rb +0 -42
  291. data/spec/dummy/app/uploaders/ckeditor_picture_uploader.rb +0 -53
  292. data/spec/dummy/app/views/admin/collections/_form.html.slim +0 -24
  293. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  294. data/spec/dummy/app/views/products/show.html.erb +0 -2
  295. data/spec/dummy/app/views/welcome/index.html.erb +0 -2
  296. data/spec/dummy/config.ru +0 -4
  297. data/spec/dummy/config/application.rb +0 -82
  298. data/spec/dummy/config/boot.rb +0 -10
  299. data/spec/dummy/config/database.yml +0 -26
  300. data/spec/dummy/config/environment.rb +0 -5
  301. data/spec/dummy/config/environments/development.rb +0 -37
  302. data/spec/dummy/config/environments/production.rb +0 -67
  303. data/spec/dummy/config/environments/test.rb +0 -37
  304. data/spec/dummy/config/i18n-js.yml +0 -21
  305. data/spec/dummy/config/initializers/ab_admin.rb +0 -15
  306. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  307. data/spec/dummy/config/initializers/ckeditor.rb +0 -18
  308. data/spec/dummy/config/initializers/devise.rb +0 -232
  309. data/spec/dummy/config/initializers/inflections.rb +0 -15
  310. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  311. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  312. data/spec/dummy/config/initializers/session_store.rb +0 -8
  313. data/spec/dummy/config/initializers/simple_form.rb +0 -142
  314. data/spec/dummy/config/initializers/simple_form_bootstrap.rb +0 -45
  315. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  316. data/spec/dummy/config/locales/devise.en.yml +0 -60
  317. data/spec/dummy/config/locales/en.yml +0 -5
  318. data/spec/dummy/config/locales/simple_form.en.yml +0 -26
  319. data/spec/dummy/config/routes.rb +0 -14
  320. data/spec/dummy/config/settings/development.local.yml +0 -9
  321. data/spec/dummy/config/settings/development.yml +0 -7
  322. data/spec/dummy/db/migrate/20130129151853_create_ckeditor_assets.rb +0 -26
  323. data/spec/dummy/db/migrate/20130130161853_create_collections.rb +0 -10
  324. data/spec/dummy/db/migrate/20130130162046_create_products.rb +0 -13
  325. data/spec/dummy/db/migrate/20130130175446_create_globalize_collection_product.rb +0 -11
  326. data/spec/dummy/db/migrate/20130207224516_create_catalogues.rb +0 -16
  327. data/spec/dummy/db/migrate/20130209223506_add_lat_lon_zoom_to_products.rb +0 -7
  328. data/spec/dummy/db/seeds.rb +0 -46
  329. data/spec/dummy/lib/assets/.gitkeep +0 -0
  330. data/spec/dummy/lib/capybara_irb.rb +0 -42
  331. data/spec/dummy/lib/tasks/.gitkeep +0 -0
  332. data/spec/dummy/lib/tasks/cucumber.rake +0 -65
  333. data/spec/dummy/lib/templates/slim/scaffold/_form.html.slim +0 -10
  334. data/spec/dummy/log/.gitkeep +0 -0
  335. data/spec/dummy/public/404.html +0 -26
  336. data/spec/dummy/public/422.html +0 -26
  337. data/spec/dummy/public/500.html +0 -25
  338. data/spec/dummy/public/favicon.ico +0 -0
  339. data/spec/dummy/script/cucumber +0 -10
  340. data/spec/dummy/script/rails +0 -6
  341. data/spec/factories/assets.rb +0 -52
  342. data/spec/factories/catalogues.rb +0 -7
  343. data/spec/factories/collections.rb +0 -8
  344. data/spec/factories/files/rails.png +0 -0
  345. data/spec/factories/products.rb +0 -17
  346. data/spec/factories/sequences.rb +0 -7
  347. data/spec/factories/structures.rb +0 -17
  348. data/spec/factories/users.rb +0 -30
  349. data/spec/generators/ckeditor_assets_generator_spec.rb +0 -19
  350. data/spec/generators/install_generator_spec.rb +0 -48
  351. data/spec/generators/model_generator_spec.rb +0 -31
  352. data/spec/generators/resource_generator_spec.rb +0 -36
  353. data/spec/models/ab_admin/abstract_resource_spec.rb +0 -5
  354. data/spec/models/avatar_spec.rb +0 -162
  355. data/spec/models/picture_uploader_spec.rb +0 -49
  356. data/spec/models/structure_spec.rb +0 -69
  357. data/spec/models/user_spec.rb +0 -159
  358. data/spec/shared_behaviors/concerns.rb +0 -20
  359. data/spec/spec_helper.rb +0 -96
  360. data/spec/support/controller_macros.rb +0 -52
  361. data/spec/support/custom_capybara_matchers.rb +0 -58
  362. data/spec/support/mailer_macros.rb +0 -17
  363. data/spec/support/shared_connection.rb +0 -11
  364. data/vendor/assets/images/ab_admin/clear.png +0 -0
  365. data/vendor/assets/images/ab_admin/loading.gif +0 -0
  366. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/core.js +0 -899
  367. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/index.js +0 -2
  368. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.bg.js +0 -14
  369. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.br.js +0 -13
  370. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.cs.js +0 -14
  371. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.da.js +0 -14
  372. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.de.js +0 -14
  373. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.es.js +0 -14
  374. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.fi.js +0 -14
  375. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.fr.js +0 -14
  376. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.id.js +0 -13
  377. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.is.js +0 -14
  378. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.it.js +0 -14
  379. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.ja.js +0 -13
  380. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.kr.js +0 -13
  381. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.lt.js +0 -15
  382. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.lv.js +0 -16
  383. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.ms.js +0 -14
  384. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.nb.js +0 -14
  385. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.nl.js +0 -14
  386. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.pl.js +0 -14
  387. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.js +0 -14
  388. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.pt.js +0 -14
  389. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.ro.js +0 -15
  390. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.ru.js +0 -14
  391. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.sk.js +0 -14
  392. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.sl.js +0 -14
  393. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.sv.js +0 -14
  394. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.th.js +0 -14
  395. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.tr.js +0 -15
  396. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.js +0 -14
  397. data/vendor/assets/javascripts/ab_admin/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.js +0 -13
  398. data/vendor/assets/javascripts/ab_admin/bootstrap-editable-inline.js +0 -2895
  399. data/vendor/assets/javascripts/ab_admin/bootstrap-editable.js +0 -4523
  400. data/vendor/assets/javascripts/ab_admin/bootstrap-tab-multi.js +0 -135
  401. data/vendor/assets/javascripts/ab_admin/bootstrap-timepicker.js +0 -377
  402. data/vendor/assets/javascripts/ab_admin/fileupload/admin-fileuploader.js.coffee +0 -111
  403. data/vendor/assets/javascripts/ab_admin/fileupload/fileuploader.js +0 -1301
  404. data/vendor/assets/javascripts/ab_admin/jquery.Jcrop.js +0 -1083
  405. data/vendor/assets/javascripts/ab_admin/jquery_nested_form.js.coffee +0 -66
  406. data/vendor/assets/javascripts/bootstrap-wysihtml5/locales/ru.js +0 -48
  407. data/vendor/assets/javascripts/handlebars.min.js +0 -1
  408. data/vendor/assets/javascripts/jquery.cookie.js +0 -42
  409. data/vendor/assets/javascripts/jquery.hotkeys.js +0 -106
  410. data/vendor/assets/javascripts/jquery.pjax.js +0 -688
  411. data/vendor/assets/javascripts/jquery.tmpl.min.js +0 -10
  412. data/vendor/assets/javascripts/jquery.ui.nestedSortable.js +0 -356
  413. data/vendor/assets/javascripts/jquery/jquery-ui.min.js +0 -15
  414. data/vendor/assets/javascripts/jquery/jquery.min.js +0 -4
  415. data/vendor/assets/javascripts/underscore.min.js +0 -5
  416. data/vendor/assets/stylesheets/ab_admin/bootstrap-datepicker.css.scss +0 -274
  417. data/vendor/assets/stylesheets/ab_admin/bootstrap-editable.scss +0 -461
  418. data/vendor/assets/stylesheets/ab_admin/bootstrap-timepicker.css.scss +0 -88
  419. data/vendor/assets/stylesheets/ab_admin/jquery.Jcrop.min.css.scss +0 -28
@@ -1,38 +0,0 @@
1
- Given /^a product with sku "(.*?)"$/ do |sku|
2
- @product = FactoryGirl.create(:product, sku: sku)
3
- end
4
-
5
- Given /^products? exists with attributes:$/ do |products|
6
- products.hashes.each do |attrs|
7
- @product = FactoryGirl.create(:full_product, attrs)
8
- end
9
- end
10
-
11
- Then /^I should see list of products$/ do
12
- Product.all.each do |product|
13
- page.should have_content(product.sku)
14
- page.should have_content(product.name)
15
- end
16
- end
17
-
18
- Then /^I should see products ordered by "(.*?)"$/ do |order|
19
- method = order.to_s.split.first.to_sym
20
- have_ordered_list Product.order(order).map { |p| p.send(method) }
21
- end
22
-
23
- Then /^I should see pretty formatted products$/ do
24
- product = Product.first
25
-
26
- within '#list' do
27
- page.should have_content(product.sku)
28
- page.should have_content(product.price)
29
- page.should have_content(I18n.l(product.created_at, format: :long))
30
- page.should have_css('span.badge', text: '+')
31
- page.should have_link(product.collection.name)
32
- page.should have_css("img[src='#{product.picture.url(:thumb)}']")
33
- end
34
- end
35
-
36
- Then /^I should not see "(.*?)" link$/ do |link|
37
- page.should_not have_link(link)
38
- end
@@ -1,28 +0,0 @@
1
- Given /^catalogues tree exists:$/ do |table|
2
- @tree = table.hashes
3
- @tree.each do |attrs|
4
- parent = Catalogue.where(name: attrs['parent_name']).first
5
- FactoryGirl.create(:catalogue, name: attrs['title'], parent: parent)
6
- end
7
- end
8
-
9
- Then /^I should see \w+ tree$/ do
10
- within 'ol.sortable_tree' do
11
- @tree.each do |attrs|
12
- page.should have_link(attrs['title'])
13
- if attrs['parent_name'].present?
14
- find_link(attrs['title']).first(:xpath, './/../../../../div/a', text: attrs['parent_name']).should_not be_nil
15
- end
16
- end
17
- end
18
- end
19
-
20
-
21
-
22
-
23
- # buggy drug & drop in selenium
24
- When /^I drag "(.*?)" to "(.*?)"$/ do |node_name, parent_name|
25
- node = first(:xpath, "//a[contains(., '#{node_name}')]/../i")
26
- parent = first(:xpath, "//a[contains(., '#{parent_name}')]/../../ol")
27
- node.drag_to(parent)
28
- end
@@ -1,20 +0,0 @@
1
- Given /^a menu configuration of:$/ do |config|
2
- eval config
3
- end
4
-
5
- Then /^I should see menu item for "(.*?)" with path "(.*?)"$/ do |name, path|
6
- page.should have_css("header.navbar li a[href='#{path}']", text: name)
7
- end
8
-
9
- Then /^I should see group "(.*?)" with menu item for "(.*?)"$/ do |group, name|
10
- page.should have_css('header.navbar li.dropdown a', text: group)
11
- page.should have_css('header.navbar ul.dropdown-menu a', text: name)
12
- end
13
-
14
- Then /^menu item for "(.*?)" should be active$/ do |link|
15
- page.should have_css('header.navbar li.active a', text: link)
16
- end
17
-
18
- Then /^menu item for "(.*?)" should not be active$/ do |link|
19
- page.should_not have_css('header.navbar li.active a', text: link)
20
- end
@@ -1,7 +0,0 @@
1
- Then /^the "(.*?)" setting should be true$/ do |setting|
2
- configatron.to_hash.val(*setting.split('.').map(&:to_sym)).should be_true
3
- end
4
-
5
- Then /^the "(.*?)" setting should be equal "(.*?)"$/ do |setting, value|
6
- configatron.to_hash.val(*setting.split('.').map(&:to_sym)).should == YAML.load(value.to_s)
7
- end
@@ -1,7 +0,0 @@
1
- Given /^structures tree exists:$/ do |table|
2
- @tree = table.hashes
3
- @tree.each do |attrs|
4
- parent = Structure.joins(:translations).where("structure_translations.title='#{attrs['parent_name']}'").first
5
- FactoryGirl.create(:structure_page, title: attrs['title'], parent: parent)
6
- end
7
- end
@@ -1,23 +0,0 @@
1
- Given /^users exists with attributes:$/ do |users|
2
- users.hashes.each do |user|
3
- FactoryGirl.create(:user, user)
4
- end
5
- end
6
-
7
- Then /^I should see list of users$/ do
8
- User.all.each do |user|
9
- page.should have_content(user.email)
10
- end
11
- end
12
-
13
- Then /^I see search form with "(.*?)" filter$/ do |filter|
14
- within '#search_form' do
15
- page.should have_field(filter)
16
- end
17
- end
18
-
19
- Given /^I see search form with "(.*?)" filters$/ do |filters|
20
- filters.split(',').each do |filter|
21
- step %{I see search form with "#{filter}" filter}
22
- end
23
- end
@@ -1,72 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- ### UTILITY METHODS ###
3
- def valid_user
4
- @user ||= {email: 'test@example.com', password: '123456'}
5
- end
6
-
7
- def sign_in(user)
8
- visit new_user_session_path
9
- fill_in 'Email', with: user[:email]
10
- fill_in 'Password', with: user[:password]
11
- click_button 'Sign in'
12
- end
13
-
14
- ### GIVEN ###
15
- Given /^I am signed out$/ do
16
- visit '/users/sign_out'
17
- end
18
-
19
- Given /^I do not exist as a user$/ do
20
- User.where(email: valid_user[:email]).first.should be_nil
21
- end
22
-
23
- Given /^I exist as a user$/ do
24
- FactoryGirl.create(:admin_user, valid_user)
25
- end
26
-
27
- When /^I sign in with valid credentials$/ do
28
- sign_in valid_user
29
- end
30
-
31
- Then /^I see an invalid login message$/ do
32
- page.should have_content('Invalid email or password')
33
- end
34
-
35
- Then /^I should be signed out$/ do
36
- visit '/admin'
37
- current_path.should == '/users/sign_in'
38
- end
39
-
40
- When /^I sign in with a wrong password$/ do
41
- sign_in valid_user.merge(password: 'wrong')
42
- end
43
-
44
- Then /^I see a successful sign in message$/ do
45
- page.should have_content('Signed in successfully')
46
- end
47
-
48
- Then /^I should see my name$/ do
49
- page.should have_content(User.where(email: valid_user[:email]).first.try(:name))
50
- end
51
-
52
- Given /^I am logged in$/ do
53
- @me = FactoryGirl.create(:admin_user, valid_user)
54
- login_as @me
55
- end
56
-
57
- Given /^I am logged in as "(.*)"$/ do |email|
58
- @me = FactoryGirl.create(:admin_user, valid_user.merge(email: email))
59
- login_as @me
60
- end
61
-
62
- When /^I sign out$/ do
63
- visit '/users/sign_out'
64
- end
65
-
66
- Then /^I should see a signed out message$/ do
67
- page.should have_content('Signed out successfully')
68
- end
69
-
70
- When /^I return to the site$/ do
71
- current_path.should == '/'
72
- end
@@ -1,108 +0,0 @@
1
- ### GIVEN ###
2
- Given /^(?:|I )am on (.+)$/ do |page_name|
3
- visit path_to(page_name)
4
- end
5
-
6
- ### WHEN ###
7
- When /^(?:|I )go to (.+)$/ do |page_name|
8
- visit path_to(page_name)
9
- end
10
-
11
- When /^(?:|I )follow "([^"]*)"$/ do |link|
12
- click_link(link)
13
- end
14
-
15
- When /^(?:|I )click "([^"]*)"$/ do |link|
16
- click_link(link)
17
- end
18
-
19
- ### THEN ###
20
- Then /^I should be redirected to (.+)$/ do |page|
21
- patiently do
22
- current_path.should == path_to(page_name)
23
- end
24
- end
25
-
26
- Then /^(?:|I )should see "([^"]*)"$/ do |text|
27
- page.should have_content(text)
28
- end
29
-
30
- Then /^(?:|I )should not see "([^"]*)"$/ do |text|
31
- page.should have_no_content(text)
32
- end
33
-
34
- Then /^(?:|I )should see \/([^\/]*)\/([imxo])?$/ do |regexp,flags|
35
- regexp_opts = [regexp,flags].compact
36
- regexp = Regexp.new(*regexp_opts)
37
-
38
- page.should have_xpath('//*', text: regexp)
39
- end
40
-
41
- Then /^(?:|I )should not see \/([^\/]*)\/([imxo])?$/ do |regexp,flags|
42
- regexp_opts = [regexp,flags].compact
43
- regexp = Regexp.new(*regexp_opts)
44
-
45
- page.should have_no_xpath('//*', text: regexp)
46
- end
47
-
48
- Then /^(?:|I )should be on (.+)$/ do |page_name|
49
- current_path.should == path_to(page_name)
50
- end
51
-
52
- Then /^I should see (\d+) elements? kind of (.+)$/ do |count, locator|
53
- actual_count = all(selector_for(locator)).count
54
- count = count.to_i
55
-
56
- actual_count.should eq(count)
57
- end
58
-
59
- Then /^I should not see elements? kind of (.+)$/ do |locator|
60
- page.should_not have_css(selector_for(locator))
61
- end
62
-
63
- def have_ordered_list(lines)
64
- lines = lines.collect { |line| line.to_s.gsub(/\s+/, ' ') }.collect(&:strip).reject(&:blank?)
65
- pattern = lines.collect(&Regexp.method(:quote)).join('.*?')
66
- pattern = Regexp.compile(pattern)
67
- page.find('body').text.gsub(/\s+/, ' ').should =~ pattern
68
- end
69
-
70
- # Checks that these strings are rendered in the given order in a single line or in multiple lines
71
- #
72
- # Example:
73
- #
74
- # Then I should see in this order:
75
- # | Alpha Group |
76
- # | Augsburg |
77
- # | Berlin |
78
- # | Beta Group |
79
- #
80
- Then /^I should see in this order:?$/ do |text|
81
- if text.is_a?(String)
82
- lines = text.split(/\n/)
83
- else
84
- lines = text.raw.flatten
85
- end
86
- have_ordered_list(lines)
87
- end
88
-
89
- Then /^I should see an error$/ do
90
- (400 .. 599).should include(page.status_code)
91
- end
92
-
93
- Then /^I should not see an error$/ do
94
- (200..399).should include(page.status_code)
95
- end
96
-
97
- When /^I reload the page$/ do
98
- case Capybara::current_driver
99
- when :selenium
100
- visit page.driver.browser.current_url
101
- when :racktest
102
- visit [current_path, page.driver.last_request.env['QUERY_STRING']].reject(&:blank?).join('?')
103
- when :culerity
104
- page.driver.browser.refresh
105
- else
106
- raise 'unsupported driver, use rack::test or selenium/webdriver'
107
- end
108
- end
@@ -1,6 +0,0 @@
1
- Then /^show me the page$/ do
2
- save_and_open_page
3
- end
4
- Then /^pause$/ do
5
- pause
6
- end
@@ -1,190 +0,0 @@
1
- # Use this to fill in an entire form with data from a table. Example:
2
- #
3
- # When I fill in the following:
4
- # | Account Number | 5002 |
5
- # | Expiry date | 2009-11-01 |
6
- # | Note | Nice guy |
7
- # | Wants Email? | |
8
- # | Sex (select) | Male |
9
- # | Accept user agrement (checkbox) | check |
10
- # | Send me letters (checkbox) | uncheck |
11
- # | radio 1 (radio) | choose |
12
- # | Avatar (file) | avatar.png |
13
- #
14
- When /^(?:|I )fill in the following:$/ do |fields|
15
-
16
- select_tag = /^(.+\S+)\s*(?:\(select\))$/
17
- check_box_tag = /^(.+\S+)\s*(?:\(checkbox\))$/
18
- radio_button = /^(.+\S+)\s*(?:\(radio\))$/
19
- file_field = /^(.+\S+)\s*(?:\(file\))$/
20
-
21
- fields.rows_hash.each do |name, value|
22
- case name
23
- when select_tag
24
- step %(I select "#{value}" from "#{$1}")
25
- when check_box_tag
26
- case value
27
- when 'check'
28
- step %(I check "#{$1}")
29
- when 'uncheck'
30
- step %(I uncheck "#{$1}")
31
- else
32
- raise 'checkbox values: check|uncheck!'
33
- end
34
- when radio_button
35
- step %{I choose "#{$1}"}
36
- when file_field
37
- step %{I attach the file "#{value}" to "#{$1}"}
38
- else
39
- step %{I fill in "#{name}" with "#{value}"}
40
- end
41
- end
42
- end
43
-
44
- When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
45
- fill_in(field, with: value)
46
- end
47
-
48
- When /^(?:|I )fill in "([^"]*)" with:$/ do |field, value|
49
- fill_in(field, with: value)
50
- end
51
-
52
- When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
53
- select(value, from: field)
54
- end
55
-
56
- When /^(?:|I )check "([^"]*)"$/ do |field|
57
- check(field)
58
- end
59
-
60
- When /^(?:|I )uncheck "([^"]*)"$/ do |field|
61
- uncheck(field)
62
- end
63
-
64
- When /^(?:|I )choose "([^"]*)"$/ do |field|
65
- choose(field)
66
- end
67
-
68
- When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |file, field|
69
- path = File.expand_path(File.join(SUPPORT_DIR,"attachments/#{file}"))
70
- raise RuntimeError, "file '#{path}' does not exists" unless File.exists?(path)
71
-
72
- attach_file(field, path)
73
- end
74
-
75
- Then /^the "([^"]*)" field(?: within (.*))? should contain "([^"]*)"$/ do |field, parent, value|
76
- with_scope(parent) do
77
- field = find_field(field)
78
- field_value = field.value
79
-
80
- field_value.should =~ /#{value}/
81
- end
82
- end
83
-
84
- Then /^the "([^"]*)" field(?: within (.*))? should not contain "([^"]*)"$/ do |field, parent, value|
85
- with_scope(parent) do
86
- field = find_field(field)
87
- field_value = field.value
88
-
89
- field_value.should_not =~ /#{value}/
90
- end
91
- end
92
-
93
- Then /^the "([^"]*)" checkbox(?: within (.*))? should be checked$/ do |label, parent|
94
- with_scope(parent) do
95
- field_checked = find_field(label)['checked']
96
-
97
- field_checked.should be_true
98
- end
99
- end
100
-
101
- Then /^the "([^"]*)" checkbox(?: within (.*))? should not be checked$/ do |label, parent|
102
- with_scope(parent) do
103
- field_checked = find_field(label)['checked']
104
-
105
- field_checked.should be_false
106
- end
107
- end
108
-
109
- When /^(?:|I )press "([^"]*)"$/ do |button|
110
- click_button(button)
111
- end
112
-
113
- When /^(?:|I )submit form$/ do
114
- first('form button[type="submit"]').click
115
- end
116
-
117
- Then /^the select "([^"]*)" should have following options:$/ do |field, options|
118
- options = options.transpose.raw
119
- if options.size > 1
120
- raise 'table should have only one column in this step!'
121
- else
122
- options = options.first
123
- end
124
-
125
- actual_options = find_field(field).all('option').map { |option| option.text }
126
-
127
- options.should eq(actual_options)
128
- end
129
-
130
- When /^(?:I|i) select following values from "([^"]*)":$/ do |field, values|
131
- values = values.transpose.raw
132
- if values.size > 1
133
- raise 'table should have only one column in this step!'
134
- else
135
- values = values.first
136
- end
137
-
138
- values.each do |value|
139
- select(value, from: field)
140
- end
141
- end
142
-
143
- When /^(?:I|i) unselect following values from "([^"]*)":$/ do |field, values|
144
- values = values.transpose.raw
145
- if values.size > 1
146
- raise 'table should have only one column in this step!'
147
- else
148
- values = values.first
149
- end
150
-
151
- values.each do |value|
152
- unselect(value, from: field)
153
- end
154
- end
155
-
156
- Then /^the following values should be selected in "([^"]*)":$/ do |select_box, values|
157
- values = values.transpose.raw
158
- if values.size > 1
159
- raise 'table should have only one column in this step!'
160
- else
161
- values = values.first
162
- end
163
-
164
- select_box = find_field(select_box)
165
- unless select_box['multiple']
166
- raise 'this is not multiple select box!'
167
- else
168
- values.each do |value|
169
- select_box.value.should include(value)
170
- end
171
- end
172
- end
173
-
174
- Then /^the following values should not be selected in "([^"]*)":$/ do |select_box, values|
175
- values = values.transpose.raw
176
- if values.size > 1
177
- raise 'table should have only one column in this step!'
178
- else
179
- values = values.first
180
- end
181
-
182
- select_box = find_field(select_box)
183
- unless select_box['multiple']
184
- raise 'this is not multiple select box!'
185
- else
186
- values.each do |value|
187
- select_box.value.should_not include(value)
188
- end
189
- end
190
- end