refinerycms 0.9.5.13 → 0.9.5.14

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