refinerycms 0.9.5.13 → 0.9.5.14

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 (294) hide show
  1. data/Rakefile +6 -1
  2. data/app/controllers/admin/base_controller.rb +2 -2
  3. data/app/controllers/application.rb +1 -1
  4. data/app/controllers/application_controller.rb +2 -2
  5. data/app/helpers/application_helper.rb +2 -2
  6. data/config/environment.rb +6 -6
  7. data/config/environments/development.rb +1 -1
  8. data/config/initializers/inflections.rb +1 -1
  9. data/config/preinitializer.rb +3 -3
  10. data/config/routes.rb +5 -5
  11. data/db/migrate/20091109012126_add_missing_indexes.rb +4 -4
  12. data/db/schema.rb +1 -2
  13. data/db/seeds.rb +35 -35
  14. data/lib/refinery_initializer.rb +2 -2
  15. data/public/404.html +15 -15
  16. data/public/422.html +8 -8
  17. data/public/500.html +8 -8
  18. data/public/images/refinery/logo-large.png +0 -0
  19. data/public/images/refinery/logo-medium.png +0 -0
  20. data/public/images/refinery/logo-small-medium.png +0 -0
  21. data/public/images/refinery/logo-small.png +0 -0
  22. data/public/images/refinery/resolve_digital_footer_logo.png +0 -0
  23. data/public/javascripts/builder.js +97 -97
  24. data/public/javascripts/controls.js +655 -655
  25. data/public/javascripts/dragdrop.js +936 -936
  26. data/public/javascripts/effects.js +713 -713
  27. data/public/javascripts/jquery/GPL-LICENSE.txt +96 -96
  28. data/public/javascripts/jquery/jquery.js +168 -168
  29. data/public/javascripts/lightbox.js +397 -397
  30. data/public/javascripts/livepipe.js +146 -146
  31. data/public/javascripts/prototype.js +2996 -2996
  32. data/public/javascripts/refinery/admin.js +20 -20
  33. data/public/javascripts/refinery/boot_wym.js +110 -110
  34. data/public/javascripts/refinery/dialog.js +1 -1
  35. data/public/javascripts/refinery/parse_url.js +27 -27
  36. data/public/javascripts/refinery/prototype.enhancements.js +17 -17
  37. data/public/javascripts/refinery/tooltips.js +34 -34
  38. data/public/javascripts/scriptaculous.js +22 -22
  39. data/public/javascripts/slider.js +239 -239
  40. data/public/javascripts/tabs.js +130 -130
  41. data/public/javascripts/thickbox.js +23 -23
  42. data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +23 -23
  43. data/public/javascripts/wymeditor/lang/ca.js +42 -42
  44. data/public/javascripts/wymeditor/lang/cs.js +42 -42
  45. data/public/javascripts/wymeditor/lang/de.js +42 -42
  46. data/public/javascripts/wymeditor/lang/en.js +44 -44
  47. data/public/javascripts/wymeditor/lang/es.js +42 -42
  48. data/public/javascripts/wymeditor/lang/fa.js +42 -42
  49. data/public/javascripts/wymeditor/lang/fr.js +42 -42
  50. data/public/javascripts/wymeditor/lang/he.js +42 -42
  51. data/public/javascripts/wymeditor/lang/hu.js +42 -42
  52. data/public/javascripts/wymeditor/lang/it.js +42 -42
  53. data/public/javascripts/wymeditor/lang/nb.js +42 -42
  54. data/public/javascripts/wymeditor/lang/nl.js +42 -42
  55. data/public/javascripts/wymeditor/lang/nn.js +42 -42
  56. data/public/javascripts/wymeditor/lang/pl.js +42 -42
  57. data/public/javascripts/wymeditor/lang/pt-br.js +42 -42
  58. data/public/javascripts/wymeditor/lang/pt.js +42 -42
  59. data/public/javascripts/wymeditor/lang/ru.js +42 -42
  60. data/public/javascripts/wymeditor/lang/sv.js +42 -42
  61. data/public/javascripts/wymeditor/lang/tr.js +42 -42
  62. data/public/javascripts/wymeditor/lang/zh_cn.js +44 -44
  63. data/public/javascripts/wymeditor/skins/refinery/skin.js +31 -31
  64. data/public/stylesheets/application.css +3 -3
  65. data/public/stylesheets/formatting.css +3 -3
  66. data/public/stylesheets/home.css +2 -2
  67. data/public/stylesheets/lightbox.css +1 -1
  68. data/public/stylesheets/refinery/application.css +13 -13
  69. data/public/stylesheets/refinery/formatting.css +3 -3
  70. data/public/stylesheets/refinery/refinery.css +49 -44
  71. data/public/stylesheets/refinery/theme.css +1 -1
  72. data/public/stylesheets/refinery/thickbox.css +4 -4
  73. data/public/stylesheets/wymeditor/skins/refinery/skin.css +115 -115
  74. data/public/stylesheets/wymeditor/skins/refinery/wymiframe.css +66 -66
  75. data/public/wymeditor/GPL-license.txt +96 -96
  76. data/script/performance/benchmarker +3 -0
  77. data/vendor/plugins/acts_as_indexed/lib/acts_as_indexed.rb +12 -12
  78. data/vendor/plugins/acts_as_indexed/lib/search_atom.rb +7 -7
  79. data/vendor/plugins/acts_as_indexed/lib/search_index.rb +7 -7
  80. data/vendor/plugins/acts_as_indexed/lib/will_paginate_search.rb +1 -1
  81. data/vendor/plugins/acts_as_indexed/test/abstract_unit.rb +5 -5
  82. data/vendor/plugins/acts_as_indexed/test/acts_as_indexed_test.rb +2 -2
  83. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +140 -140
  84. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +18 -18
  85. data/vendor/plugins/attachment_fu/install.rb +1 -1
  86. data/vendor/plugins/attachment_fu/lib/geometry.rb +2 -2
  87. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/cloud_file_backend.rb +3 -3
  88. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +4 -4
  89. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +11 -11
  90. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +7 -7
  91. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +5 -5
  92. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +4 -4
  93. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +1 -1
  94. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +11 -11
  95. data/vendor/plugins/attachment_fu/test/backends/db_file_test.rb +2 -2
  96. data/vendor/plugins/attachment_fu/test/backends/file_system_test.rb +24 -24
  97. data/vendor/plugins/attachment_fu/test/backends/remote/cloudfiles_test.rb +14 -14
  98. data/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb +7 -7
  99. data/vendor/plugins/attachment_fu/test/base_attachment_tests.rb +10 -10
  100. data/vendor/plugins/attachment_fu/test/basic_test.rb +10 -10
  101. data/vendor/plugins/attachment_fu/test/extra_attachment_test.rb +9 -9
  102. data/vendor/plugins/attachment_fu/test/fixtures/attachment.rb +10 -10
  103. data/vendor/plugins/attachment_fu/test/geometry_test.rb +12 -12
  104. data/vendor/plugins/attachment_fu/test/processors/core_image_test.rb +6 -6
  105. data/vendor/plugins/attachment_fu/test/processors/gd2_test.rb +4 -4
  106. data/vendor/plugins/attachment_fu/test/processors/image_science_test.rb +4 -4
  107. data/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb +13 -13
  108. data/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb +33 -33
  109. data/vendor/plugins/attachment_fu/test/schema.rb +14 -14
  110. data/vendor/plugins/attachment_fu/test/test_helper.rb +11 -11
  111. data/vendor/plugins/attachment_fu/test/validation_test.rb +7 -7
  112. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/color.rb +7 -7
  113. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/effects.rb +7 -7
  114. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/perspective.rb +5 -5
  115. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/quality.rb +7 -7
  116. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/scale.rb +5 -5
  117. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/watermark.rb +6 -6
  118. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/processor.rb +16 -16
  119. data/vendor/plugins/authentication/app/controllers/admin/users_controller.rb +30 -30
  120. data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +4 -4
  121. data/vendor/plugins/authentication/app/controllers/users_controller.rb +7 -7
  122. data/vendor/plugins/authentication/app/helpers/sessions_helper.rb +1 -1
  123. data/vendor/plugins/authentication/app/helpers/users_helper.rb +1 -1
  124. data/vendor/plugins/authentication/app/models/user.rb +56 -56
  125. data/vendor/plugins/authentication/app/models/user_mailer.rb +6 -6
  126. data/vendor/plugins/authentication/app/models/user_observer.rb +2 -2
  127. data/vendor/plugins/authentication/app/models/user_plugin.rb +4 -4
  128. data/vendor/plugins/authentication/app/views/admin/users/_form.html.erb +36 -36
  129. data/vendor/plugins/authentication/app/views/admin/users/edit.html.erb +1 -1
  130. data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +1 -1
  131. data/vendor/plugins/authentication/app/views/admin/users/new.html.erb +1 -1
  132. data/vendor/plugins/authentication/app/views/sessions/new.html.erb +19 -19
  133. data/vendor/plugins/authentication/app/views/user_mailer/activation.html.erb +1 -1
  134. data/vendor/plugins/authentication/app/views/user_mailer/signup_notification.html.erb +1 -1
  135. data/vendor/plugins/authentication/app/views/users/new.html.erb +3 -3
  136. data/vendor/plugins/authentication/config/routes.rb +1 -1
  137. data/vendor/plugins/authentication/init.rb +5 -5
  138. data/vendor/plugins/authentication/lib/authenticated_system.rb +1 -1
  139. data/vendor/plugins/authentication/test/functional/sessions_controller_test.rb +2 -2
  140. data/vendor/plugins/authentication/test/functional/users_controller_test.rb +3 -3
  141. data/vendor/plugins/authentication/test/test_helper.rb +1 -1
  142. data/vendor/plugins/dashboard/app/controllers/admin/dashboard_controller.rb +1 -1
  143. data/vendor/plugins/dashboard/app/helpers/admin/dashboard_helper.rb +1 -1
  144. data/vendor/plugins/dashboard/app/views/admin/dashboard/_recent_activity.html.erb +10 -10
  145. data/vendor/plugins/dashboard/app/views/admin/dashboard/index.html.erb +30 -30
  146. data/vendor/plugins/dashboard/config/routes.rb +2 -2
  147. data/vendor/plugins/dashboard/init.rb +6 -6
  148. data/vendor/plugins/images/app/controllers/admin/images_controller.rb +28 -28
  149. data/vendor/plugins/images/app/helpers/admin/images_helper.rb +14 -14
  150. data/vendor/plugins/images/app/models/image.rb +11 -11
  151. data/vendor/plugins/images/app/views/admin/images/_form.html.erb +21 -21
  152. data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +13 -13
  153. data/vendor/plugins/images/app/views/admin/images/_list_view.html.erb +1 -1
  154. data/vendor/plugins/images/app/views/admin/images/_list_view_image.html.erb +2 -2
  155. data/vendor/plugins/images/app/views/admin/images/edit.html.erb +1 -1
  156. data/vendor/plugins/images/app/views/admin/images/index.html.erb +15 -15
  157. data/vendor/plugins/images/app/views/admin/images/insert.html.erb +91 -91
  158. data/vendor/plugins/images/app/views/admin/images/new.html.erb +1 -1
  159. data/vendor/plugins/images/config/routes.rb +2 -2
  160. data/vendor/plugins/images/init.rb +7 -7
  161. data/vendor/plugins/inquiries/app/controllers/admin/inquiries_controller.rb +4 -4
  162. data/vendor/plugins/inquiries/app/controllers/admin/inquiry_settings_controller.rb +5 -5
  163. data/vendor/plugins/inquiries/app/controllers/inquiries_controller.rb +3 -3
  164. data/vendor/plugins/inquiries/app/helpers/inquiries_helper.rb +3 -3
  165. data/vendor/plugins/inquiries/app/models/inquiry.rb +6 -6
  166. data/vendor/plugins/inquiries/app/models/inquiry_mailer.rb +1 -1
  167. data/vendor/plugins/inquiries/app/models/inquiry_setting.rb +3 -3
  168. data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +19 -19
  169. data/vendor/plugins/inquiries/app/views/admin/inquiries/index.html.erb +27 -27
  170. data/vendor/plugins/inquiries/app/views/admin/inquiries/show.html.erb +59 -59
  171. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +44 -44
  172. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +15 -15
  173. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/edit.html.erb +3 -3
  174. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/index.html.erb +29 -29
  175. data/vendor/plugins/inquiries/app/views/inquiries/new.html.erb +32 -32
  176. data/vendor/plugins/inquiries/app/views/inquiries/thank_you.html.erb +8 -8
  177. data/vendor/plugins/inquiries/app/views/inquiry_mailer/confirmation.html.erb +1 -1
  178. data/vendor/plugins/inquiries/app/views/inquiry_mailer/notification.html.erb +1 -1
  179. data/vendor/plugins/inquiries/config/routes.rb +3 -3
  180. data/vendor/plugins/inquiries/init.rb +10 -10
  181. data/vendor/plugins/news/app/controllers/admin/news_items_controller.rb +3 -3
  182. data/vendor/plugins/news/app/controllers/news_items_controller.rb +2 -2
  183. data/vendor/plugins/news/app/models/news_item.rb +5 -5
  184. data/vendor/plugins/news/app/views/admin/news_items/_form.html.erb +16 -16
  185. data/vendor/plugins/news/app/views/admin/news_items/_news_item.html.erb +14 -14
  186. data/vendor/plugins/news/app/views/admin/news_items/edit.html.erb +1 -1
  187. data/vendor/plugins/news/app/views/admin/news_items/index.html.erb +25 -25
  188. data/vendor/plugins/news/app/views/admin/news_items/new.html.erb +1 -1
  189. data/vendor/plugins/news/app/views/news_items/_recent_posts.html.erb +6 -6
  190. data/vendor/plugins/news/app/views/news_items/index.html.erb +20 -20
  191. data/vendor/plugins/news/app/views/news_items/show.html.erb +16 -16
  192. data/vendor/plugins/news/config/routes.rb +3 -3
  193. data/vendor/plugins/news/init.rb +7 -7
  194. data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +10 -10
  195. data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +4 -4
  196. data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +4 -4
  197. data/vendor/plugins/pages/app/controllers/pages_controller.rb +3 -3
  198. data/vendor/plugins/pages/app/helpers/pages_helper.rb +1 -1
  199. data/vendor/plugins/pages/app/models/page.rb +95 -95
  200. data/vendor/plugins/pages/app/models/page_part.rb +5 -5
  201. data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +1 -1
  202. data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +222 -222
  203. data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +232 -232
  204. data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +26 -26
  205. data/vendor/plugins/pages/app/views/admin/pages/_page_part_field.html.erb +3 -3
  206. data/vendor/plugins/pages/app/views/admin/pages/_sortable_list.html.erb +2 -2
  207. data/vendor/plugins/pages/app/views/admin/pages/edit.html.erb +1 -1
  208. data/vendor/plugins/pages/app/views/admin/pages/index.html.erb +37 -37
  209. data/vendor/plugins/pages/app/views/admin/pages/new.html.erb +1 -1
  210. data/vendor/plugins/pages/app/views/pages/home.html.erb +8 -8
  211. data/vendor/plugins/pages/app/views/pages/show.html.erb +11 -11
  212. data/vendor/plugins/pages/config/routes.rb +5 -5
  213. data/vendor/plugins/pages/init.rb +7 -7
  214. data/vendor/plugins/refinery/app/controllers/admin/refinery_core_controller.rb +7 -7
  215. data/vendor/plugins/refinery/app/views/admin/_head.html.erb +30 -30
  216. data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +61 -61
  217. data/vendor/plugins/refinery/app/views/layouts/admin.html.erb +32 -32
  218. data/vendor/plugins/refinery/app/views/layouts/application.html.erb +28 -28
  219. data/vendor/plugins/refinery/app/views/shared/_footer.html.erb +4 -4
  220. data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +11 -11
  221. data/vendor/plugins/refinery/app/views/shared/_header.html.erb +3 -3
  222. data/vendor/plugins/refinery/app/views/shared/_ie6check.html.erb +1 -1
  223. data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +14 -14
  224. data/vendor/plugins/refinery/app/views/shared/_menu_branch.html.erb +21 -21
  225. data/vendor/plugins/refinery/app/views/shared/_message.html.erb +8 -8
  226. data/vendor/plugins/refinery/app/views/shared/_submenu.html.erb +2 -2
  227. data/vendor/plugins/refinery/app/views/shared/_submenu_branch.html.erb +7 -7
  228. data/vendor/plugins/refinery/app/views/shared/admin/_continue_editing.html.erb +41 -41
  229. data/vendor/plugins/refinery/app/views/shared/admin/_error_messages_for.html.erb +1 -1
  230. data/vendor/plugins/refinery/app/views/shared/admin/_form_actions.html.erb +13 -13
  231. data/vendor/plugins/refinery/app/views/shared/admin/_image_picker.html.erb +31 -31
  232. data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +65 -65
  233. data/vendor/plugins/refinery/app/views/shared/admin/_resource_picker.html.erb +16 -16
  234. data/vendor/plugins/refinery/app/views/shared/admin/_search.html.erb +5 -5
  235. data/vendor/plugins/refinery/app/views/shared/admin/_sortable_list.html.erb +8 -8
  236. data/vendor/plugins/refinery/app/views/welcome.html.erb +1 -1
  237. data/vendor/plugins/refinery/app/views/wymiframe.html.erb +6 -6
  238. data/vendor/plugins/refinery/config/routes.rb +5 -5
  239. data/vendor/plugins/refinery/init.rb +8 -8
  240. data/vendor/plugins/refinery/lib/crud.rb +17 -17
  241. data/vendor/plugins/refinery/lib/generators/refinery/install.rb +1 -1
  242. data/vendor/plugins/refinery/lib/generators/refinery/refinery_generator.rb +17 -17
  243. data/vendor/plugins/refinery/lib/generators/refinery/templates/config/routes.rb +3 -3
  244. data/vendor/plugins/refinery/lib/generators/refinery/templates/controller.rb +2 -2
  245. data/vendor/plugins/refinery/lib/generators/refinery/templates/init.rb +6 -6
  246. data/vendor/plugins/refinery/lib/generators/refinery/templates/migration.rb +22 -22
  247. data/vendor/plugins/refinery/lib/generators/refinery/templates/model.rb +4 -4
  248. data/vendor/plugins/refinery/lib/generators/refinery/templates/public_controller.rb +10 -10
  249. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_form.html.erb +3 -3
  250. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_singular_name.html.erb +15 -15
  251. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_sortable_list.html.erb +1 -1
  252. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/edit.html.erb +1 -1
  253. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/index.html.erb +33 -33
  254. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/new.html.erb +1 -1
  255. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/index.html.erb +14 -14
  256. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/show.html.erb +21 -21
  257. data/vendor/plugins/refinery/lib/indexer.rb +29 -29
  258. data/vendor/plugins/refinery/lib/refinery.rb +10 -10
  259. data/vendor/plugins/refinery/lib/refinery/activity.rb +5 -5
  260. data/vendor/plugins/refinery/lib/refinery/admin_base_controller.rb +15 -15
  261. data/vendor/plugins/refinery/lib/refinery/application_controller.rb +39 -39
  262. data/vendor/plugins/refinery/lib/refinery/application_helper.rb +69 -69
  263. data/vendor/plugins/refinery/lib/refinery/form_helpers.rb +18 -18
  264. data/vendor/plugins/refinery/lib/refinery/html_truncation_helper.rb +5 -5
  265. data/vendor/plugins/refinery/lib/refinery/initializer.rb +2 -2
  266. data/vendor/plugins/refinery/lib/refinery/link_renderer.rb +13 -13
  267. data/vendor/plugins/refinery/lib/refinery/plugin.rb +24 -24
  268. data/vendor/plugins/refinery/lib/refinery/plugins.rb +2 -2
  269. data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +8 -8
  270. data/vendor/plugins/refinery_dialogs/app/views/admin/dialogs/show.html.erb +19 -19
  271. data/vendor/plugins/refinery_dialogs/app/views/layouts/admin_dialog.html.erb +29 -29
  272. data/vendor/plugins/refinery_dialogs/config/routes.rb +2 -2
  273. data/vendor/plugins/refinery_dialogs/init.rb +7 -7
  274. data/vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb +2 -2
  275. data/vendor/plugins/refinery_settings/app/models/refinery_setting.rb +52 -52
  276. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +11 -11
  277. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_make_sortable.html.erb +3 -3
  278. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +12 -12
  279. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/edit.html.erb +2 -2
  280. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/index.html.erb +19 -19
  281. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/new.html.erb +1 -1
  282. data/vendor/plugins/refinery_settings/config/routes.rb +3 -3
  283. data/vendor/plugins/refinery_settings/init.rb +8 -8
  284. data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +48 -48
  285. data/vendor/plugins/resources/app/models/resource.rb +12 -12
  286. data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +21 -21
  287. data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +15 -15
  288. data/vendor/plugins/resources/app/views/admin/resources/edit.html.erb +1 -1
  289. data/vendor/plugins/resources/app/views/admin/resources/index.html.erb +19 -19
  290. data/vendor/plugins/resources/app/views/admin/resources/insert.html.erb +86 -86
  291. data/vendor/plugins/resources/app/views/admin/resources/new.html.erb +1 -1
  292. data/vendor/plugins/resources/config/routes.rb +2 -2
  293. data/vendor/plugins/resources/init.rb +6 -6
  294. metadata +31 -23
@@ -8,53 +8,53 @@
8
8
  // http://lokeshdhakar.com/projects/lightbox2/
9
9
  //
10
10
  // Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
11
- // - Free for use in both personal and commercial projects
11
+ // - Free for use in both personal and commercial projects
12
12
  // - Attribution requires leaving author name, author link, and the license info intact.
13
13
  //
14
- // Thanks: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), and Thomas Fuchs(mir.aculo.us) for ideas, libs, and snippets.
15
- // Artemy Tregubenko (arty.name) for cleanup and help in updating to latest ver of proto-aculous.
14
+ // Thanks: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), and Thomas Fuchs(mir.aculo.us) for ideas, libs, and snippets.
15
+ // Artemy Tregubenko (arty.name) for cleanup and help in updating to latest ver of proto-aculous.
16
16
  //
17
17
  // -----------------------------------------------------------------------------------
18
18
  /*
19
19
 
20
- Table of Contents
21
- -----------------
22
- Configuration
23
-
24
- Lightbox Class Declaration
25
- - initialize()
26
- - updateImageList()
27
- - start()
28
- - changeImage()
29
- - resizeImageContainer()
30
- - showImage()
31
- - updateDetails()
32
- - updateNav()
33
- - enableKeyboardNav()
34
- - disableKeyboardNav()
35
- - keyboardAction()
36
- - preloadNeighborImages()
37
- - end()
38
-
39
- Function Calls
40
- - document.observe()
41
-
20
+ Table of Contents
21
+ -----------------
22
+ Configuration
23
+
24
+ Lightbox Class Declaration
25
+ - initialize()
26
+ - updateImageList()
27
+ - start()
28
+ - changeImage()
29
+ - resizeImageContainer()
30
+ - showImage()
31
+ - updateDetails()
32
+ - updateNav()
33
+ - enableKeyboardNav()
34
+ - disableKeyboardNav()
35
+ - keyboardAction()
36
+ - preloadNeighborImages()
37
+ - end()
38
+
39
+ Function Calls
40
+ - document.observe()
41
+
42
42
  */
43
43
  // -----------------------------------------------------------------------------------
44
44
 
45
45
  //
46
- // Configurationl
46
+ // Configurationl
47
47
  //
48
48
  LightboxOptions = Object.extend({
49
- fileLoadingImage: '/images/lightbox/loading.gif',
50
- fileBottomNavCloseImage: '/images/lightbox/closelabel.gif',
49
+ fileLoadingImage: '/images/lightbox/loading.gif',
50
+ fileBottomNavCloseImage: '/images/lightbox/closelabel.gif',
51
51
 
52
- overlayOpacity: 0.8, // controls transparency of shadow overlay
52
+ overlayOpacity: 0.8, // controls transparency of shadow overlay
53
53
 
54
- animate: true, // toggles resizing animations
55
- resizeSpeed: 7, // controls the speed of the image resizing animations (1=slowest and 10=fastest)
54
+ animate: true, // toggles resizing animations
55
+ resizeSpeed: 7, // controls the speed of the image resizing animations (1=slowest and 10=fastest)
56
56
 
57
- borderSize: 10, //if you adjust the padding in the CSS, you will need to update this variable
57
+ borderSize: 10, //if you adjust the padding in the CSS, you will need to update this variable
58
58
 
59
59
  // When grouping images this is used to write: Image # of #.
60
60
  // Change it for non-english localization
@@ -67,99 +67,99 @@ LightboxOptions = Object.extend({
67
67
  var Lightbox = Class.create();
68
68
 
69
69
  Lightbox.prototype = {
70
- imageArray: [],
71
- activeImage: undefined,
72
-
73
- // initialize()
74
- // Constructor runs on completion of the DOM loading. Calls updateImageList and then
75
- // the function inserts html at the bottom of the page which is used to display the shadow
76
- // overlay and the image container.
77
- //
78
- initialize: function() {
79
-
80
- this.updateImageList();
81
-
82
- this.keyboardAction = this.keyboardAction.bindAsEventListener(this);
83
-
84
- if (LightboxOptions.resizeSpeed > 10) LightboxOptions.resizeSpeed = 10;
85
- if (LightboxOptions.resizeSpeed < 1) LightboxOptions.resizeSpeed = 1;
86
-
87
- this.resizeDuration = LightboxOptions.animate ? ((11 - LightboxOptions.resizeSpeed) * 0.15) : 0;
88
- this.overlayDuration = LightboxOptions.animate ? 0.2 : 0; // shadow fade in/out duration
89
-
90
- // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension.
91
- // If animations are turned off, it will be hidden as to prevent a flicker of a
92
- // white 250 by 250 box.
93
- var size = (LightboxOptions.animate ? 250 : 1) + 'px';
94
-
95
-
96
- // Code inserts html at the bottom of the page that looks similar to this:
97
- //
98
- // <div id="overlay"></div>
99
- // <div id="lightbox">
100
- // <div id="outerImageContainer">
101
- // <div id="imageContainer">
102
- // <img id="lightboxImage">
103
- // <div style="" id="hoverNav">
104
- // <a href="#" id="prevLink"></a>
105
- // <a href="#" id="nextLink"></a>
106
- // </div>
107
- // <div id="loading">
108
- // <a href="#" id="loadingLink">
109
- // <img src="/images/lightbox/loading.gif">
110
- // </a>
111
- // </div>
112
- // </div>
113
- // </div>
114
- // <div id="imageDataContainer">
115
- // <div id="imageData">
116
- // <div id="imageDetails">
117
- // <span id="caption"></span>
118
- // <span id="numberDisplay"></span>
119
- // </div>
120
- // <div id="bottomNav">
121
- // <a href="#" id="bottomNavClose">
122
- // <img src="/images/lightbox/close.gif">
123
- // </a>
124
- // </div>
125
- // </div>
126
- // </div>
127
- // </div>
128
-
129
-
130
- var objBody = $$('body')[0];
70
+ imageArray: [],
71
+ activeImage: undefined,
72
+
73
+ // initialize()
74
+ // Constructor runs on completion of the DOM loading. Calls updateImageList and then
75
+ // the function inserts html at the bottom of the page which is used to display the shadow
76
+ // overlay and the image container.
77
+ //
78
+ initialize: function() {
79
+
80
+ this.updateImageList();
81
+
82
+ this.keyboardAction = this.keyboardAction.bindAsEventListener(this);
83
+
84
+ if (LightboxOptions.resizeSpeed > 10) LightboxOptions.resizeSpeed = 10;
85
+ if (LightboxOptions.resizeSpeed < 1) LightboxOptions.resizeSpeed = 1;
86
+
87
+ this.resizeDuration = LightboxOptions.animate ? ((11 - LightboxOptions.resizeSpeed) * 0.15) : 0;
88
+ this.overlayDuration = LightboxOptions.animate ? 0.2 : 0; // shadow fade in/out duration
89
+
90
+ // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension.
91
+ // If animations are turned off, it will be hidden as to prevent a flicker of a
92
+ // white 250 by 250 box.
93
+ var size = (LightboxOptions.animate ? 250 : 1) + 'px';
94
+
95
+
96
+ // Code inserts html at the bottom of the page that looks similar to this:
97
+ //
98
+ // <div id="overlay"></div>
99
+ // <div id="lightbox">
100
+ // <div id="outerImageContainer">
101
+ // <div id="imageContainer">
102
+ // <img id="lightboxImage">
103
+ // <div style="" id="hoverNav">
104
+ // <a href="#" id="prevLink"></a>
105
+ // <a href="#" id="nextLink"></a>
106
+ // </div>
107
+ // <div id="loading">
108
+ // <a href="#" id="loadingLink">
109
+ // <img src="/images/lightbox/loading.gif">
110
+ // </a>
111
+ // </div>
112
+ // </div>
113
+ // </div>
114
+ // <div id="imageDataContainer">
115
+ // <div id="imageData">
116
+ // <div id="imageDetails">
117
+ // <span id="caption"></span>
118
+ // <span id="numberDisplay"></span>
119
+ // </div>
120
+ // <div id="bottomNav">
121
+ // <a href="#" id="bottomNavClose">
122
+ // <img src="/images/lightbox/close.gif">
123
+ // </a>
124
+ // </div>
125
+ // </div>
126
+ // </div>
127
+ // </div>
128
+
129
+
130
+ var objBody = $$('body')[0];
131
131
 
132
132
  objBody.appendChild(Builder.node('div',{id:'overlay'}));
133
133
 
134
- objBody.appendChild(Builder.node('div',{id:'lightbox'}, [
135
- Builder.node('div',{id:'outerImageContainer'},
136
- Builder.node('div',{id:'imageContainer'}, [
137
- Builder.node('img',{id:'lightboxImage'}),
138
- Builder.node('div',{id:'hoverNav'}, [
139
- Builder.node('a',{id:'prevLink', href: '#' }),
140
- Builder.node('a',{id:'nextLink', href: '#' })
141
- ]),
142
- Builder.node('div',{id:'loading'},
143
- Builder.node('a',{id:'loadingLink', href: '#' },
144
- Builder.node('img', {src: LightboxOptions.fileLoadingImage})
145
- )
146
- )
147
- ])
148
- ),
149
- Builder.node('div', {id:'imageDataContainer'},
150
- Builder.node('div',{id:'imageData'}, [
151
- Builder.node('div',{id:'imageDetails'}, [
152
- Builder.node('span',{id:'caption'}),
153
- Builder.node('span',{id:'numberDisplay'})
154
- ]),
155
- Builder.node('div',{id:'bottomNav'},
156
- Builder.node('a',{id:'bottomNavClose', href: '#' },
157
- Builder.node('img', { src: LightboxOptions.fileBottomNavCloseImage })
158
- )
159
- )
160
- ])
161
- )
162
- ]));
134
+ objBody.appendChild(Builder.node('div',{id:'lightbox'}, [
135
+ Builder.node('div',{id:'outerImageContainer'},
136
+ Builder.node('div',{id:'imageContainer'}, [
137
+ Builder.node('img',{id:'lightboxImage'}),
138
+ Builder.node('div',{id:'hoverNav'}, [
139
+ Builder.node('a',{id:'prevLink', href: '#' }),
140
+ Builder.node('a',{id:'nextLink', href: '#' })
141
+ ]),
142
+ Builder.node('div',{id:'loading'},
143
+ Builder.node('a',{id:'loadingLink', href: '#' },
144
+ Builder.node('img', {src: LightboxOptions.fileLoadingImage})
145
+ )
146
+ )
147
+ ])
148
+ ),
149
+ Builder.node('div', {id:'imageDataContainer'},
150
+ Builder.node('div',{id:'imageData'}, [
151
+ Builder.node('div',{id:'imageDetails'}, [
152
+ Builder.node('span',{id:'caption'}),
153
+ Builder.node('span',{id:'numberDisplay'})
154
+ ]),
155
+ Builder.node('div',{id:'bottomNav'},
156
+ Builder.node('a',{id:'bottomNavClose', href: '#' },
157
+ Builder.node('img', { src: LightboxOptions.fileBottomNavCloseImage })
158
+ )
159
+ )
160
+ ])
161
+ )
162
+ ]));
163
163
 
164
164
 
165
165
  $('overlay').hide().observe('click', (function() { this.end(); }).bind(this));
@@ -170,113 +170,113 @@ Lightbox.prototype = {
170
170
  $('loadingLink').observe('click', (function(event) { event.stop(); this.end(); }).bind(this));
171
171
  $('bottomNavClose').observe('click', (function(event) { event.stop(); this.end(); }).bind(this));
172
172
 
173
- var th = this;
174
- (function(){
175
- var ids =
176
- 'overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink ' +
177
- 'imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose';
178
- $w(ids).each(function(id){ th[id] = $(id); });
179
- }).defer();
180
- },
181
-
182
- //
183
- // updateImageList()
184
- // Loops through anchor tags looking for 'lightbox' references and applies onclick
185
- // events to appropriate links. You can rerun after dynamically adding images w/ajax.
186
- //
187
- updateImageList: function() {
188
- this.updateImageList = Prototype.emptyFunction;
189
-
190
- document.observe('click', (function(event){
191
- var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]');
192
- if (target) {
193
- event.stop();
194
- this.start(target);
195
- }
196
- }).bind(this));
197
- },
198
-
199
- //
200
- // start()
201
- // Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
202
- //
203
- start: function(imageLink) {
204
-
205
- $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
206
-
207
- // stretch overlay to fill page and fade in
208
- var arrayPageSize = this.getPageSize();
209
- $('overlay').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });
210
-
211
- new Effect.Appear(this.overlay, { duration: this.overlayDuration, from: 0.0, to: LightboxOptions.overlayOpacity });
212
-
213
- this.imageArray = [];
214
- var imageNum = 0;
215
-
216
- if ((imageLink.rel == 'lightbox')){
217
- // if image is NOT part of a set, add single image to imageArray
218
- this.imageArray.push([imageLink.href, imageLink.title]);
219
- } else {
220
- // if image is part of a set..
221
- this.imageArray =
222
- $$(imageLink.tagName + '[href][rel="' + imageLink.rel + '"]').
223
- collect(function(anchor){ return [anchor.href, anchor.title]; }).
224
- uniq();
225
-
226
- while (this.imageArray[imageNum][0] != imageLink.href) { imageNum++; }
227
- }
228
-
229
- // calculate top and left offset for the lightbox
230
- var arrayPageScroll = document.viewport.getScrollOffsets();
231
- var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight() / 10);
232
- var lightboxLeft = arrayPageScroll[0];
233
- this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' }).show();
234
-
235
- this.changeImage(imageNum);
236
- },
237
-
238
- //
239
- // changeImage()
240
- // Hide most elements and preload image in preparation for resizing image container.
241
- //
242
- changeImage: function(imageNum) {
243
-
244
- this.activeImage = imageNum; // update global var
245
-
246
- // hide elements during transition
247
- if (LightboxOptions.animate) this.loading.show();
248
- this.lightboxImage.hide();
249
- this.hoverNav.hide();
250
- this.prevLink.hide();
251
- this.nextLink.hide();
173
+ var th = this;
174
+ (function(){
175
+ var ids =
176
+ 'overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink ' +
177
+ 'imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose';
178
+ $w(ids).each(function(id){ th[id] = $(id); });
179
+ }).defer();
180
+ },
181
+
182
+ //
183
+ // updateImageList()
184
+ // Loops through anchor tags looking for 'lightbox' references and applies onclick
185
+ // events to appropriate links. You can rerun after dynamically adding images w/ajax.
186
+ //
187
+ updateImageList: function() {
188
+ this.updateImageList = Prototype.emptyFunction;
189
+
190
+ document.observe('click', (function(event){
191
+ var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]');
192
+ if (target) {
193
+ event.stop();
194
+ this.start(target);
195
+ }
196
+ }).bind(this));
197
+ },
198
+
199
+ //
200
+ // start()
201
+ // Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
202
+ //
203
+ start: function(imageLink) {
204
+
205
+ $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });
206
+
207
+ // stretch overlay to fill page and fade in
208
+ var arrayPageSize = this.getPageSize();
209
+ $('overlay').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });
210
+
211
+ new Effect.Appear(this.overlay, { duration: this.overlayDuration, from: 0.0, to: LightboxOptions.overlayOpacity });
212
+
213
+ this.imageArray = [];
214
+ var imageNum = 0;
215
+
216
+ if ((imageLink.rel == 'lightbox')){
217
+ // if image is NOT part of a set, add single image to imageArray
218
+ this.imageArray.push([imageLink.href, imageLink.title]);
219
+ } else {
220
+ // if image is part of a set..
221
+ this.imageArray =
222
+ $$(imageLink.tagName + '[href][rel="' + imageLink.rel + '"]').
223
+ collect(function(anchor){ return [anchor.href, anchor.title]; }).
224
+ uniq();
225
+
226
+ while (this.imageArray[imageNum][0] != imageLink.href) { imageNum++; }
227
+ }
228
+
229
+ // calculate top and left offset for the lightbox
230
+ var arrayPageScroll = document.viewport.getScrollOffsets();
231
+ var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight() / 10);
232
+ var lightboxLeft = arrayPageScroll[0];
233
+ this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' }).show();
234
+
235
+ this.changeImage(imageNum);
236
+ },
237
+
238
+ //
239
+ // changeImage()
240
+ // Hide most elements and preload image in preparation for resizing image container.
241
+ //
242
+ changeImage: function(imageNum) {
243
+
244
+ this.activeImage = imageNum; // update global var
245
+
246
+ // hide elements during transition
247
+ if (LightboxOptions.animate) this.loading.show();
248
+ this.lightboxImage.hide();
249
+ this.hoverNav.hide();
250
+ this.prevLink.hide();
251
+ this.nextLink.hide();
252
252
  // HACK: Opera9 does not currently support scriptaculous opacity and appear fx
253
- this.imageDataContainer.setStyle({opacity: .0001});
254
- this.numberDisplay.hide();
255
-
256
- var imgPreloader = new Image();
257
-
258
- // once image is preloaded, resize image container
259
-
260
-
261
- imgPreloader.onload = (function(){
262
- this.lightboxImage.src = this.imageArray[this.activeImage][0];
263
- this.resizeImageContainer(imgPreloader.width, imgPreloader.height);
264
- }).bind(this);
265
- imgPreloader.src = this.imageArray[this.activeImage][0];
266
- },
267
-
268
- //
269
- // resizeImageContainer()
270
- //
271
- resizeImageContainer: function(imgWidth, imgHeight) {
272
-
273
- // get current width and height
274
- var widthCurrent = this.outerImageContainer.getWidth();
275
- var heightCurrent = this.outerImageContainer.getHeight();
276
-
277
- // get new width and height
278
- var widthNew = (imgWidth + LightboxOptions.borderSize * 2);
279
- var heightNew = (imgHeight + LightboxOptions.borderSize * 2);
253
+ this.imageDataContainer.setStyle({opacity: .0001});
254
+ this.numberDisplay.hide();
255
+
256
+ var imgPreloader = new Image();
257
+
258
+ // once image is preloaded, resize image container
259
+
260
+
261
+ imgPreloader.onload = (function(){
262
+ this.lightboxImage.src = this.imageArray[this.activeImage][0];
263
+ this.resizeImageContainer(imgPreloader.width, imgPreloader.height);
264
+ }).bind(this);
265
+ imgPreloader.src = this.imageArray[this.activeImage][0];
266
+ },
267
+
268
+ //
269
+ // resizeImageContainer()
270
+ //
271
+ resizeImageContainer: function(imgWidth, imgHeight) {
272
+
273
+ // get current width and height
274
+ var widthCurrent = this.outerImageContainer.getWidth();
275
+ var heightCurrent = this.outerImageContainer.getHeight();
276
+
277
+ // get new width and height
278
+ var widthNew = (imgWidth + LightboxOptions.borderSize * 2);
279
+ var heightNew = (imgHeight + LightboxOptions.borderSize * 2);
280
280
 
281
281
  // ensure the lightbox is wide enough for the close image.
282
282
  if (widthNew < 80)
@@ -284,175 +284,175 @@ Lightbox.prototype = {
284
284
  widthNew = 80
285
285
  }
286
286
 
287
- // scalars based on change from old to new
288
- var xScale = (widthNew / widthCurrent) * 100;
289
- var yScale = (heightNew / heightCurrent) * 100;
290
-
291
- // calculate size difference between new and old image, and resize if necessary
292
- var wDiff = widthCurrent - widthNew;
293
- var hDiff = heightCurrent - heightNew;
294
-
295
- if (hDiff != 0) new Effect.Scale(this.outerImageContainer, yScale, {scaleX: false, duration: this.resizeDuration, queue: 'front'});
296
- if (wDiff != 0) new Effect.Scale(this.outerImageContainer, xScale, {scaleY: false, duration: this.resizeDuration, delay: this.resizeDuration});
297
-
298
- // if new and old image are same size and no scaling transition is necessary,
299
- // do a quick pause to prevent image flicker.
300
- var timeout = 0;
301
- if ((hDiff == 0) && (wDiff == 0)){
302
- timeout = 100;
303
- if (Prototype.Browser.IE) timeout = 250;
304
- }
305
-
306
- (function(){
307
- this.prevLink.setStyle({ height: imgHeight + 'px' });
308
- this.nextLink.setStyle({ height: imgHeight + 'px' });
309
- this.imageDataContainer.setStyle({ width: widthNew + 'px' });
310
-
311
- this.showImage();
312
- }).bind(this).delay(timeout / 1000);
313
- },
314
-
315
- //
316
- // showImage()
317
- // Display image and begin preloading neighbors.
318
- //
319
- showImage: function(){
320
- this.loading.hide();
321
- new Effect.Appear(this.lightboxImage, {
322
- duration: this.resizeDuration,
323
- queue: 'end',
324
- afterFinish: (function(){ this.updateDetails(); }).bind(this)
325
- });
326
- this.preloadNeighborImages();
327
- },
328
-
329
- //
330
- // updateDetails()
331
- // Display caption, image number, and bottom nav.
332
- //
333
- updateDetails: function() {
334
-
335
- // if caption is not null
336
- if (this.imageArray[this.activeImage][1] != ""){
337
- this.caption.update(this.imageArray[this.activeImage][1]).show();
338
- }
339
-
340
- // if image is part of set display 'Image x of x'
341
- if (this.imageArray.length > 1){
342
- this.numberDisplay.update( LightboxOptions.labelImage + ' ' + (this.activeImage + 1) + ' ' + LightboxOptions.labelOf + ' ' + this.imageArray.length).show();
343
- }
344
-
345
- new Effect.Parallel(
346
- [
347
- new Effect.SlideDown(this.imageDataContainer, { sync: true, duration: this.resizeDuration, from: 0.0, to: 1.0 }),
348
- new Effect.Appear(this.imageDataContainer, { sync: true, duration: this.resizeDuration })
349
- ],
350
- {
351
- duration: this.resizeDuration,
352
- afterFinish: (function() {
353
- // update overlay size and update nav
354
- var arrayPageSize = this.getPageSize();
355
- this.overlay.setStyle({ height: arrayPageSize[1] + 'px' });
356
- this.updateNav();
357
- }).bind(this)
358
- }
359
- );
360
- },
361
-
362
- //
363
- // updateNav()
364
- // Display appropriate previous and next hover navigation.
365
- //
366
- updateNav: function() {
367
-
368
- this.hoverNav.show();
369
-
370
- // if not first image in set, display prev image button
371
- if (this.activeImage > 0) this.prevLink.show();
372
-
373
- // if not last image in set, display next image button
374
- if (this.activeImage < (this.imageArray.length - 1)) this.nextLink.show();
375
-
376
- this.enableKeyboardNav();
377
- },
378
-
379
- //
380
- // enableKeyboardNav()
381
- //
382
- enableKeyboardNav: function() {
383
- document.observe('keydown', this.keyboardAction);
384
- },
385
-
386
- //
387
- // disableKeyboardNav()
388
- //
389
- disableKeyboardNav: function() {
390
- document.stopObserving('keydown', this.keyboardAction);
391
- },
392
-
393
- //
394
- // keyboardAction()
395
- //
396
- keyboardAction: function(event) {
397
- var keycode = event.keyCode;
398
-
399
- var escapeKey;
400
- if (event.DOM_VK_ESCAPE) { // mozilla
401
- escapeKey = event.DOM_VK_ESCAPE;
402
- } else { // ie
403
- escapeKey = 27;
404
- }
405
-
406
- var key = String.fromCharCode(keycode).toLowerCase();
407
-
408
- if (key.match(/x|o|c/) || (keycode == escapeKey)){ // close lightbox
409
- this.end();
410
- } else if ((key == 'p') || (keycode == 37)){ // display previous image
411
- if (this.activeImage != 0){
412
- this.disableKeyboardNav();
413
- this.changeImage(this.activeImage - 1);
414
- }
415
- } else if ((key == 'n') || (keycode == 39)){ // display next image
416
- if (this.activeImage != (this.imageArray.length - 1)){
417
- this.disableKeyboardNav();
418
- this.changeImage(this.activeImage + 1);
419
- }
420
- }
421
- },
422
-
423
- //
424
- // preloadNeighborImages()
425
- // Preload previous and next images.
426
- //
427
- preloadNeighborImages: function(){
428
- var preloadNextImage, preloadPrevImage;
429
- if (this.imageArray.length > this.activeImage + 1){
430
- preloadNextImage = new Image();
431
- preloadNextImage.src = this.imageArray[this.activeImage + 1][0];
432
- }
433
- if (this.activeImage > 0){
434
- preloadPrevImage = new Image();
435
- preloadPrevImage.src = this.imageArray[this.activeImage - 1][0];
436
- }
437
-
438
- },
439
-
440
- //
441
- // end()
442
- //
443
- end: function() {
444
- this.disableKeyboardNav();
445
- this.lightbox.hide();
446
- new Effect.Fade(this.overlay, { duration: this.overlayDuration });
447
- $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
448
- },
449
-
450
- //
451
- // getPageSize()
452
- //
453
- getPageSize: function() {
454
-
455
- var xScroll, yScroll;
287
+ // scalars based on change from old to new
288
+ var xScale = (widthNew / widthCurrent) * 100;
289
+ var yScale = (heightNew / heightCurrent) * 100;
290
+
291
+ // calculate size difference between new and old image, and resize if necessary
292
+ var wDiff = widthCurrent - widthNew;
293
+ var hDiff = heightCurrent - heightNew;
294
+
295
+ if (hDiff != 0) new Effect.Scale(this.outerImageContainer, yScale, {scaleX: false, duration: this.resizeDuration, queue: 'front'});
296
+ if (wDiff != 0) new Effect.Scale(this.outerImageContainer, xScale, {scaleY: false, duration: this.resizeDuration, delay: this.resizeDuration});
297
+
298
+ // if new and old image are same size and no scaling transition is necessary,
299
+ // do a quick pause to prevent image flicker.
300
+ var timeout = 0;
301
+ if ((hDiff == 0) && (wDiff == 0)){
302
+ timeout = 100;
303
+ if (Prototype.Browser.IE) timeout = 250;
304
+ }
305
+
306
+ (function(){
307
+ this.prevLink.setStyle({ height: imgHeight + 'px' });
308
+ this.nextLink.setStyle({ height: imgHeight + 'px' });
309
+ this.imageDataContainer.setStyle({ width: widthNew + 'px' });
310
+
311
+ this.showImage();
312
+ }).bind(this).delay(timeout / 1000);
313
+ },
314
+
315
+ //
316
+ // showImage()
317
+ // Display image and begin preloading neighbors.
318
+ //
319
+ showImage: function(){
320
+ this.loading.hide();
321
+ new Effect.Appear(this.lightboxImage, {
322
+ duration: this.resizeDuration,
323
+ queue: 'end',
324
+ afterFinish: (function(){ this.updateDetails(); }).bind(this)
325
+ });
326
+ this.preloadNeighborImages();
327
+ },
328
+
329
+ //
330
+ // updateDetails()
331
+ // Display caption, image number, and bottom nav.
332
+ //
333
+ updateDetails: function() {
334
+
335
+ // if caption is not null
336
+ if (this.imageArray[this.activeImage][1] != ""){
337
+ this.caption.update(this.imageArray[this.activeImage][1]).show();
338
+ }
339
+
340
+ // if image is part of set display 'Image x of x'
341
+ if (this.imageArray.length > 1){
342
+ this.numberDisplay.update( LightboxOptions.labelImage + ' ' + (this.activeImage + 1) + ' ' + LightboxOptions.labelOf + ' ' + this.imageArray.length).show();
343
+ }
344
+
345
+ new Effect.Parallel(
346
+ [
347
+ new Effect.SlideDown(this.imageDataContainer, { sync: true, duration: this.resizeDuration, from: 0.0, to: 1.0 }),
348
+ new Effect.Appear(this.imageDataContainer, { sync: true, duration: this.resizeDuration })
349
+ ],
350
+ {
351
+ duration: this.resizeDuration,
352
+ afterFinish: (function() {
353
+ // update overlay size and update nav
354
+ var arrayPageSize = this.getPageSize();
355
+ this.overlay.setStyle({ height: arrayPageSize[1] + 'px' });
356
+ this.updateNav();
357
+ }).bind(this)
358
+ }
359
+ );
360
+ },
361
+
362
+ //
363
+ // updateNav()
364
+ // Display appropriate previous and next hover navigation.
365
+ //
366
+ updateNav: function() {
367
+
368
+ this.hoverNav.show();
369
+
370
+ // if not first image in set, display prev image button
371
+ if (this.activeImage > 0) this.prevLink.show();
372
+
373
+ // if not last image in set, display next image button
374
+ if (this.activeImage < (this.imageArray.length - 1)) this.nextLink.show();
375
+
376
+ this.enableKeyboardNav();
377
+ },
378
+
379
+ //
380
+ // enableKeyboardNav()
381
+ //
382
+ enableKeyboardNav: function() {
383
+ document.observe('keydown', this.keyboardAction);
384
+ },
385
+
386
+ //
387
+ // disableKeyboardNav()
388
+ //
389
+ disableKeyboardNav: function() {
390
+ document.stopObserving('keydown', this.keyboardAction);
391
+ },
392
+
393
+ //
394
+ // keyboardAction()
395
+ //
396
+ keyboardAction: function(event) {
397
+ var keycode = event.keyCode;
398
+
399
+ var escapeKey;
400
+ if (event.DOM_VK_ESCAPE) { // mozilla
401
+ escapeKey = event.DOM_VK_ESCAPE;
402
+ } else { // ie
403
+ escapeKey = 27;
404
+ }
405
+
406
+ var key = String.fromCharCode(keycode).toLowerCase();
407
+
408
+ if (key.match(/x|o|c/) || (keycode == escapeKey)){ // close lightbox
409
+ this.end();
410
+ } else if ((key == 'p') || (keycode == 37)){ // display previous image
411
+ if (this.activeImage != 0){
412
+ this.disableKeyboardNav();
413
+ this.changeImage(this.activeImage - 1);
414
+ }
415
+ } else if ((key == 'n') || (keycode == 39)){ // display next image
416
+ if (this.activeImage != (this.imageArray.length - 1)){
417
+ this.disableKeyboardNav();
418
+ this.changeImage(this.activeImage + 1);
419
+ }
420
+ }
421
+ },
422
+
423
+ //
424
+ // preloadNeighborImages()
425
+ // Preload previous and next images.
426
+ //
427
+ preloadNeighborImages: function(){
428
+ var preloadNextImage, preloadPrevImage;
429
+ if (this.imageArray.length > this.activeImage + 1){
430
+ preloadNextImage = new Image();
431
+ preloadNextImage.src = this.imageArray[this.activeImage + 1][0];
432
+ }
433
+ if (this.activeImage > 0){
434
+ preloadPrevImage = new Image();
435
+ preloadPrevImage.src = this.imageArray[this.activeImage - 1][0];
436
+ }
437
+
438
+ },
439
+
440
+ //
441
+ // end()
442
+ //
443
+ end: function() {
444
+ this.disableKeyboardNav();
445
+ this.lightbox.hide();
446
+ new Effect.Fade(this.overlay, { duration: this.overlayDuration });
447
+ $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
448
+ },
449
+
450
+ //
451
+ // getPageSize()
452
+ //
453
+ getPageSize: function() {
454
+
455
+ var xScroll, yScroll;
456
456
 
457
457
  if (window.innerHeight && window.scrollMaxY) {
458
458
  xScroll = window.innerWidth + window.scrollMaxX;