jacobat-refinerycms 0.9.6.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (547) hide show
  1. data/.gems +8 -0
  2. data/.gitignore +23 -0
  3. data/.yardopts +31 -0
  4. data/Gemfile +12 -0
  5. data/Rakefile +70 -0
  6. data/VERSION +1 -0
  7. data/app/controllers/admin/base_controller.rb +8 -0
  8. data/app/controllers/application.rb +3 -0
  9. data/app/controllers/application_controller.rb +7 -0
  10. data/app/helpers/application_helper.rb +7 -0
  11. data/bin/refinery +84 -0
  12. data/bin/refinery-override +76 -0
  13. data/bin/refinery-update-core +92 -0
  14. data/config/amazon_s3.yml.example +18 -0
  15. data/config/application.rb +88 -0
  16. data/config/boot.rb +110 -0
  17. data/config/database.yml.example +20 -0
  18. data/config/environment.rb +5 -0
  19. data/config/environments/development.rb +26 -0
  20. data/config/environments/production.rb +26 -0
  21. data/config/environments/test.rb +22 -0
  22. data/config/initializers/inflections.rb +10 -0
  23. data/config/initializers/mime_types.rb +5 -0
  24. data/config/preinitializer.rb +27 -0
  25. data/config/rackspace_cloudfiles.yml.example +14 -0
  26. data/config/routes.rb +20 -0
  27. data/contributors.md +20 -0
  28. data/db/migrate/20091029034951_remove_blurb_from_news_items.rb +9 -0
  29. data/db/migrate/20091109012126_add_missing_indexes.rb +25 -0
  30. data/db/migrate/20091130040711_add_down_for_maintenance_page.rb +15 -0
  31. data/db/migrate/20091207033335_add_superuser_to_users.rb +12 -0
  32. data/db/migrate/20100114092849_add_themes_table.rb +19 -0
  33. data/db/migrate/20100127004649_add_reset_code_to_users.rb +9 -0
  34. data/db/migrate/20100202034802_remove_custom_title_image_id_and_image_id_from_pages.rb +13 -0
  35. data/db/migrate/20100204011654_change_part_titles_to_titleized_version_for_new_format.rb +13 -0
  36. data/db/migrate/20100223211536_remove_themes_table.rb +17 -0
  37. data/db/schema.rb +150 -0
  38. data/db/seeds.rb +121 -0
  39. data/doc/.yardoc/checksums +0 -0
  40. data/doc/.yardoc/objects/root.dat +0 -0
  41. data/doc/.yardoc/proxy_types +0 -0
  42. data/lib/refinery_initializer.rb +23 -0
  43. data/license.md +21 -0
  44. data/public/.htaccess +40 -0
  45. data/public/404.html +29 -0
  46. data/public/422.html +30 -0
  47. data/public/500.html +29 -0
  48. data/public/favicon.ico +0 -0
  49. data/public/images/refinery/add.png +0 -0
  50. data/public/images/refinery/admin_bg.png +0 -0
  51. data/public/images/refinery/ajax-loader.gif +0 -0
  52. data/public/images/refinery/branch-end.gif +0 -0
  53. data/public/images/refinery/branch-start.gif +0 -0
  54. data/public/images/refinery/branch.gif +0 -0
  55. data/public/images/refinery/header_background.png +0 -0
  56. data/public/images/refinery/hover-gradient.jpg +0 -0
  57. data/public/images/refinery/icons/accept.png +0 -0
  58. data/public/images/refinery/icons/add.png +0 -0
  59. data/public/images/refinery/icons/application_edit.png +0 -0
  60. data/public/images/refinery/icons/application_go.png +0 -0
  61. data/public/images/refinery/icons/arrow_left.png +0 -0
  62. data/public/images/refinery/icons/arrow_switch.png +0 -0
  63. data/public/images/refinery/icons/arrow_up.png +0 -0
  64. data/public/images/refinery/icons/cancel.png +0 -0
  65. data/public/images/refinery/icons/cog_add.png +0 -0
  66. data/public/images/refinery/icons/cog_edit.png +0 -0
  67. data/public/images/refinery/icons/cross.png +0 -0
  68. data/public/images/refinery/icons/delete.png +0 -0
  69. data/public/images/refinery/icons/edit.png +0 -0
  70. data/public/images/refinery/icons/email_edit.png +0 -0
  71. data/public/images/refinery/icons/email_go.png +0 -0
  72. data/public/images/refinery/icons/email_open.png +0 -0
  73. data/public/images/refinery/icons/eye.png +0 -0
  74. data/public/images/refinery/icons/image_add.png +0 -0
  75. data/public/images/refinery/icons/image_edit.png +0 -0
  76. data/public/images/refinery/icons/layout_add.png +0 -0
  77. data/public/images/refinery/icons/layout_edit.png +0 -0
  78. data/public/images/refinery/icons/page_add.png +0 -0
  79. data/public/images/refinery/icons/page_edit.png +0 -0
  80. data/public/images/refinery/icons/page_white_edit.png +0 -0
  81. data/public/images/refinery/icons/page_white_put.png +0 -0
  82. data/public/images/refinery/icons/star.png +0 -0
  83. data/public/images/refinery/icons/tick.png +0 -0
  84. data/public/images/refinery/icons/user_add.png +0 -0
  85. data/public/images/refinery/icons/user_comment.png +0 -0
  86. data/public/images/refinery/icons/user_edit.png +0 -0
  87. data/public/images/refinery/logo-large.png +0 -0
  88. data/public/images/refinery/logo-medium.png +0 -0
  89. data/public/images/refinery/logo-small-medium.png +0 -0
  90. data/public/images/refinery/logo-small.png +0 -0
  91. data/public/images/refinery/logo.png +0 -0
  92. data/public/images/refinery/nav-3-background.gif +0 -0
  93. data/public/images/refinery/page_bg.png +0 -0
  94. data/public/images/refinery/resolve_digital_footer_logo.png +0 -0
  95. data/public/images/thickbox/cross.png +0 -0
  96. data/public/images/thickbox/loadingAnimation.gif +0 -0
  97. data/public/images/thickbox/macFFBgHack.png +0 -0
  98. data/public/images/wymeditor/skins/refinery/blockquote.png +0 -0
  99. data/public/images/wymeditor/skins/refinery/center.png +0 -0
  100. data/public/images/wymeditor/skins/refinery/css.png +0 -0
  101. data/public/images/wymeditor/skins/refinery/h1.png +0 -0
  102. data/public/images/wymeditor/skins/refinery/h2.png +0 -0
  103. data/public/images/wymeditor/skins/refinery/h3.png +0 -0
  104. data/public/images/wymeditor/skins/refinery/h4.png +0 -0
  105. data/public/images/wymeditor/skins/refinery/h5.png +0 -0
  106. data/public/images/wymeditor/skins/refinery/h6.png +0 -0
  107. data/public/images/wymeditor/skins/refinery/icons.png +0 -0
  108. data/public/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
  109. data/public/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
  110. data/public/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
  111. data/public/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
  112. data/public/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
  113. data/public/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
  114. data/public/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
  115. data/public/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
  116. data/public/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
  117. data/public/images/wymeditor/skins/refinery/justify.png +0 -0
  118. data/public/images/wymeditor/skins/refinery/left.png +0 -0
  119. data/public/images/wymeditor/skins/refinery/paragraph.png +0 -0
  120. data/public/images/wymeditor/skins/refinery/right.png +0 -0
  121. data/public/images/wymeditor/skins/wymeditor_icon.png +0 -0
  122. data/public/javascripts/admin.js +5 -0
  123. data/public/javascripts/application.js +1 -0
  124. data/public/javascripts/jquery/GPL-LICENSE.txt +278 -0
  125. data/public/javascripts/jquery/MIT-LICENSE.txt +20 -0
  126. data/public/javascripts/jquery-ui-1.8rc1.min.js +375 -0
  127. data/public/javascripts/jquery.js +6078 -0
  128. data/public/javascripts/refinery/admin.js +705 -0
  129. data/public/javascripts/refinery/boot_wym.js +154 -0
  130. data/public/javascripts/thickbox.js +350 -0
  131. data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +4975 -0
  132. data/public/javascripts/wymeditor/lang/ca.js +45 -0
  133. data/public/javascripts/wymeditor/lang/cs.js +45 -0
  134. data/public/javascripts/wymeditor/lang/de.js +45 -0
  135. data/public/javascripts/wymeditor/lang/en.js +48 -0
  136. data/public/javascripts/wymeditor/lang/es.js +45 -0
  137. data/public/javascripts/wymeditor/lang/fa.js +46 -0
  138. data/public/javascripts/wymeditor/lang/fr.js +45 -0
  139. data/public/javascripts/wymeditor/lang/he.js +45 -0
  140. data/public/javascripts/wymeditor/lang/hu.js +45 -0
  141. data/public/javascripts/wymeditor/lang/it.js +45 -0
  142. data/public/javascripts/wymeditor/lang/nb.js +45 -0
  143. data/public/javascripts/wymeditor/lang/nl.js +45 -0
  144. data/public/javascripts/wymeditor/lang/nn.js +45 -0
  145. data/public/javascripts/wymeditor/lang/pl.js +45 -0
  146. data/public/javascripts/wymeditor/lang/pt-br.js +45 -0
  147. data/public/javascripts/wymeditor/lang/pt.js +45 -0
  148. data/public/javascripts/wymeditor/lang/ru.js +45 -0
  149. data/public/javascripts/wymeditor/lang/sv.js +45 -0
  150. data/public/javascripts/wymeditor/lang/tr.js +45 -0
  151. data/public/javascripts/wymeditor/lang/zh_cn.js +47 -0
  152. data/public/javascripts/wymeditor/skins/refinery/skin.js +40 -0
  153. data/public/robots.txt +2 -0
  154. data/public/stylesheets/application.css +5 -0
  155. data/public/stylesheets/formatting.css +5 -0
  156. data/public/stylesheets/home.css +5 -0
  157. data/public/stylesheets/ie6.css +0 -0
  158. data/public/stylesheets/ie7.css +0 -0
  159. data/public/stylesheets/refinery/application.css +45 -0
  160. data/public/stylesheets/refinery/formatting.css +53 -0
  161. data/public/stylesheets/refinery/home.css +0 -0
  162. data/public/stylesheets/refinery/refinery.css +1233 -0
  163. data/public/stylesheets/refinery/theme.css +36 -0
  164. data/public/stylesheets/refinery/thickbox.css +165 -0
  165. data/public/stylesheets/refinery/tooltips.css +38 -0
  166. data/public/stylesheets/theme.css +1 -0
  167. data/public/stylesheets/wymeditor/skins/refinery/skin.css +218 -0
  168. data/public/stylesheets/wymeditor/skins/refinery/wymiframe.css +92 -0
  169. data/public/wymeditor/GPL-license.txt +278 -0
  170. data/public/wymeditor/MIT-license.txt +20 -0
  171. data/public/wymeditor/README +35 -0
  172. data/readme.md +181 -0
  173. data/script/about +3 -0
  174. data/script/console +3 -0
  175. data/script/dbconsole +3 -0
  176. data/script/destroy +3 -0
  177. data/script/generate +3 -0
  178. data/script/performance/benchmarker +3 -0
  179. data/script/performance/profiler +3 -0
  180. data/script/performance/request +3 -0
  181. data/script/plugin +3 -0
  182. data/script/process/inspector +3 -0
  183. data/script/process/reaper +3 -0
  184. data/script/process/spawner +3 -0
  185. data/script/runner +3 -0
  186. data/script/server +3 -0
  187. data/test/files/The world!.gif +0 -0
  188. data/test/files/car-wallpapers19.jpg +0 -0
  189. data/test/files/teng.pdf +0 -0
  190. data/test/fixtures/images.yml +14 -0
  191. data/test/fixtures/inquiries.yml +22 -0
  192. data/test/fixtures/news_items.yml +14 -0
  193. data/test/fixtures/page_parts.yml +9 -0
  194. data/test/fixtures/pages.yml +94 -0
  195. data/test/fixtures/refinery_settings.yml +3 -0
  196. data/test/fixtures/resources.yml +4 -0
  197. data/test/fixtures/users.yml +16 -0
  198. data/test/functional/dashboard_controller_test.rb +24 -0
  199. data/test/performance/browsing_test.rb +9 -0
  200. data/test/test_helper.rb +43 -0
  201. data/test/unit/image_test.rb +27 -0
  202. data/test/unit/inquiry_test.rb +41 -0
  203. data/test/unit/news_items_test.rb +33 -0
  204. data/test/unit/page_part_test.rb +19 -0
  205. data/test/unit/page_test.rb +133 -0
  206. data/test/unit/refinery_setting_test.rb +57 -0
  207. data/test/unit/resource_test.rb +33 -0
  208. data/themes/demolicious/LICENSE +21 -0
  209. data/themes/demolicious/README +1 -0
  210. data/themes/demolicious/images/footer_background.png +0 -0
  211. data/themes/demolicious/images/header_background.png +0 -0
  212. data/themes/demolicious/stylesheets/application.css +94 -0
  213. data/themes/demolicious/stylesheets/formatting.css +36 -0
  214. data/themes/demolicious/stylesheets/home.css +8 -0
  215. data/themes/demolicious/stylesheets/ie6.css +0 -0
  216. data/themes/demolicious/stylesheets/ie7.css +0 -0
  217. data/themes/demolicious/views/layouts/application.html.erb +20 -0
  218. data/themes/demolicious/views/pages/home.html.erb +1 -0
  219. data/themes/demolicious/views/pages/show.html.erb +1 -0
  220. data/themes/hemingway/LICENSE +7 -0
  221. data/themes/hemingway/README +3 -0
  222. data/themes/hemingway/images/archives.gif +0 -0
  223. data/themes/hemingway/images/footer_black.gif +0 -0
  224. data/themes/hemingway/images/kyle-header.jpg +0 -0
  225. data/themes/hemingway/images/readon_black.gif +0 -0
  226. data/themes/hemingway/images/search.gif +0 -0
  227. data/themes/hemingway/images/spinner.gif +0 -0
  228. data/themes/hemingway/images/trackback_pingback.gif +0 -0
  229. data/themes/hemingway/stylesheets/application.css +713 -0
  230. data/themes/hemingway/stylesheets/formatting.css +1 -0
  231. data/themes/hemingway/stylesheets/home.css +1 -0
  232. data/themes/hemingway/views/layouts/application.html.erb +55 -0
  233. data/todo.md +23 -0
  234. data/vendor/cache/aasm-2.1.3.gem +0 -0
  235. data/vendor/cache/actionmailer-2.3.5.gem +0 -0
  236. data/vendor/cache/actionpack-2.3.5.gem +0 -0
  237. data/vendor/cache/activerecord-2.3.5.gem +0 -0
  238. data/vendor/cache/activeresource-2.3.5.gem +0 -0
  239. data/vendor/cache/activesupport-2.3.5.gem +0 -0
  240. data/vendor/cache/friendly_id-2.3.1.gem +0 -0
  241. data/vendor/cache/hpricot-0.8.2.gem +0 -0
  242. data/vendor/cache/rack-1.0.1.gem +0 -0
  243. data/vendor/cache/rails-2.3.5.gem +0 -0
  244. data/vendor/cache/rake-0.8.7.gem +0 -0
  245. data/vendor/cache/rubyzip-0.9.1.gem +0 -0
  246. data/vendor/cache/slim_scrooge-1.0.3.gem +0 -0
  247. data/vendor/cache/will_paginate-2.3.11.gem +0 -0
  248. data/vendor/plugins/acts_as_indexed/CHANGELOG +74 -0
  249. data/vendor/plugins/acts_as_indexed/MIT-LICENSE +20 -0
  250. data/vendor/plugins/acts_as_indexed/README.rdoc +114 -0
  251. data/vendor/plugins/acts_as_indexed/Rakefile +35 -0
  252. data/vendor/plugins/acts_as_indexed/init.rb +2 -0
  253. data/vendor/plugins/acts_as_indexed/lib/acts_as_indexed.rb +224 -0
  254. data/vendor/plugins/acts_as_indexed/lib/search_atom.rb +107 -0
  255. data/vendor/plugins/acts_as_indexed/lib/search_index.rb +329 -0
  256. data/vendor/plugins/acts_as_indexed/lib/will_paginate_search.rb +29 -0
  257. data/vendor/plugins/acts_as_indexed/test/abstract_unit.rb +47 -0
  258. data/vendor/plugins/acts_as_indexed/test/acts_as_indexed_test.rb +102 -0
  259. data/vendor/plugins/acts_as_indexed/test/database.yml +10 -0
  260. data/vendor/plugins/acts_as_indexed/test/fixtures/post.rb +5 -0
  261. data/vendor/plugins/acts_as_indexed/test/fixtures/posts.yml +31 -0
  262. data/vendor/plugins/acts_as_indexed/test/schema.rb +6 -0
  263. data/vendor/plugins/acts_as_tree/README +26 -0
  264. data/vendor/plugins/acts_as_tree/Rakefile +22 -0
  265. data/vendor/plugins/acts_as_tree/init.rb +1 -0
  266. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +141 -0
  267. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  268. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  269. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  270. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  271. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  272. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  273. data/vendor/plugins/attachment_fu/CHANGELOG +35 -0
  274. data/vendor/plugins/attachment_fu/LICENSE +20 -0
  275. data/vendor/plugins/attachment_fu/README +193 -0
  276. data/vendor/plugins/attachment_fu/Rakefile +22 -0
  277. data/vendor/plugins/attachment_fu/amazon_s3.yml.tpl +17 -0
  278. data/vendor/plugins/attachment_fu/init.rb +16 -0
  279. data/vendor/plugins/attachment_fu/install.rb +7 -0
  280. data/vendor/plugins/attachment_fu/lib/geometry.rb +93 -0
  281. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/cloud_file_backend.rb +211 -0
  282. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/db_file_backend.rb +39 -0
  283. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/file_system_backend.rb +126 -0
  284. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/backends/s3_backend.rb +394 -0
  285. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/core_image_processor.rb +59 -0
  286. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/gd2_processor.rb +54 -0
  287. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/image_science_processor.rb +61 -0
  288. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/mini_magick_processor.rb +132 -0
  289. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu/processors/rmagick_processor.rb +57 -0
  290. data/vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb +514 -0
  291. data/vendor/plugins/attachment_fu/rackspace_cloudfiles.yml.tpl +14 -0
  292. data/vendor/plugins/attachment_fu/test/backends/db_file_test.rb +16 -0
  293. data/vendor/plugins/attachment_fu/test/backends/file_system_test.rb +143 -0
  294. data/vendor/plugins/attachment_fu/test/backends/remote/cloudfiles_test.rb +102 -0
  295. data/vendor/plugins/attachment_fu/test/backends/remote/s3_test.rb +119 -0
  296. data/vendor/plugins/attachment_fu/test/base_attachment_tests.rb +77 -0
  297. data/vendor/plugins/attachment_fu/test/basic_test.rb +70 -0
  298. data/vendor/plugins/attachment_fu/test/database.yml +18 -0
  299. data/vendor/plugins/attachment_fu/test/extra_attachment_test.rb +67 -0
  300. data/vendor/plugins/attachment_fu/test/fixtures/attachment.rb +226 -0
  301. data/vendor/plugins/attachment_fu/test/fixtures/files/fake/rails.png +0 -0
  302. data/vendor/plugins/attachment_fu/test/fixtures/files/foo.txt +1 -0
  303. data/vendor/plugins/attachment_fu/test/fixtures/files/rails.png +0 -0
  304. data/vendor/plugins/attachment_fu/test/geometry_test.rb +108 -0
  305. data/vendor/plugins/attachment_fu/test/processors/core_image_test.rb +37 -0
  306. data/vendor/plugins/attachment_fu/test/processors/gd2_test.rb +31 -0
  307. data/vendor/plugins/attachment_fu/test/processors/image_science_test.rb +31 -0
  308. data/vendor/plugins/attachment_fu/test/processors/mini_magick_test.rb +103 -0
  309. data/vendor/plugins/attachment_fu/test/processors/rmagick_test.rb +255 -0
  310. data/vendor/plugins/attachment_fu/test/schema.rb +134 -0
  311. data/vendor/plugins/attachment_fu/test/test_helper.rb +150 -0
  312. data/vendor/plugins/attachment_fu/test/validation_test.rb +55 -0
  313. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/color.rb +27 -0
  314. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/effects.rb +31 -0
  315. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/perspective.rb +25 -0
  316. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/quality.rb +25 -0
  317. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/scale.rb +47 -0
  318. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/filters/watermark.rb +32 -0
  319. data/vendor/plugins/attachment_fu/vendor/red_artisan/core_image/processor.rb +123 -0
  320. data/vendor/plugins/authentication/README +0 -0
  321. data/vendor/plugins/authentication/Rakefile +0 -0
  322. data/vendor/plugins/authentication/app/controllers/admin/users_controller.rb +67 -0
  323. data/vendor/plugins/authentication/app/controllers/sessions_controller.rb +36 -0
  324. data/vendor/plugins/authentication/app/controllers/users_controller.rb +101 -0
  325. data/vendor/plugins/authentication/app/helpers/sessions_helper.rb +2 -0
  326. data/vendor/plugins/authentication/app/helpers/users_helper.rb +2 -0
  327. data/vendor/plugins/authentication/app/models/user.rb +154 -0
  328. data/vendor/plugins/authentication/app/models/user_mailer.rb +18 -0
  329. data/vendor/plugins/authentication/app/models/user_plugin.rb +5 -0
  330. data/vendor/plugins/authentication/app/views/admin/users/_form.html.erb +38 -0
  331. data/vendor/plugins/authentication/app/views/admin/users/edit.html.erb +1 -0
  332. data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +40 -0
  333. data/vendor/plugins/authentication/app/views/admin/users/new.html.erb +1 -0
  334. data/vendor/plugins/authentication/app/views/sessions/new.html.erb +24 -0
  335. data/vendor/plugins/authentication/app/views/user_mailer/reset_notification.html.erb +6 -0
  336. data/vendor/plugins/authentication/app/views/users/forgot.html.erb +13 -0
  337. data/vendor/plugins/authentication/app/views/users/new.html.erb +28 -0
  338. data/vendor/plugins/authentication/app/views/users/reset.html.erb +18 -0
  339. data/vendor/plugins/authentication/authentication.md +15 -0
  340. data/vendor/plugins/authentication/config/routes.rb +15 -0
  341. data/vendor/plugins/authentication/lib/authenticated_system.rb +115 -0
  342. data/vendor/plugins/authentication/lib/authenticated_test_helper.rb +10 -0
  343. data/vendor/plugins/authentication/rails/init.rb +13 -0
  344. data/vendor/plugins/authentication/test/fixtures/users.yml +19 -0
  345. data/vendor/plugins/authentication/test/functional/admin/base_controller_test.rb +8 -0
  346. data/vendor/plugins/authentication/test/functional/admin/dashboard_controller_test.rb +8 -0
  347. data/vendor/plugins/authentication/test/functional/admin/pages_controller_test.rb +8 -0
  348. data/vendor/plugins/authentication/test/functional/sessions_controller_test.rb +85 -0
  349. data/vendor/plugins/authentication/test/functional/users_controller_test.rb +99 -0
  350. data/vendor/plugins/authentication/test/test_helper.rb +38 -0
  351. data/vendor/plugins/authentication/test/unit/user_mailer_test.rb +31 -0
  352. data/vendor/plugins/authentication/test/unit/user_test.rb +164 -0
  353. data/vendor/plugins/dashboard/app/controllers/admin/dashboard_controller.rb +28 -0
  354. data/vendor/plugins/dashboard/app/helpers/admin/dashboard_helper.rb +19 -0
  355. data/vendor/plugins/dashboard/app/views/admin/dashboard/_recent_activity.html.erb +14 -0
  356. data/vendor/plugins/dashboard/app/views/admin/dashboard/index.html.erb +31 -0
  357. data/vendor/plugins/dashboard/config/routes.rb +5 -0
  358. data/vendor/plugins/dashboard/dashboard.md +22 -0
  359. data/vendor/plugins/dashboard/rails/init.rb +6 -0
  360. data/vendor/plugins/images/app/controllers/admin/images_controller.rb +98 -0
  361. data/vendor/plugins/images/app/helpers/admin/images_helper.rb +23 -0
  362. data/vendor/plugins/images/app/models/image.rb +57 -0
  363. data/vendor/plugins/images/app/views/admin/images/_form.html.erb +31 -0
  364. data/vendor/plugins/images/app/views/admin/images/_grid_view.html.erb +16 -0
  365. data/vendor/plugins/images/app/views/admin/images/_list_view.html.erb +12 -0
  366. data/vendor/plugins/images/app/views/admin/images/_list_view_image.html.erb +16 -0
  367. data/vendor/plugins/images/app/views/admin/images/edit.html.erb +1 -0
  368. data/vendor/plugins/images/app/views/admin/images/index.html.erb +42 -0
  369. data/vendor/plugins/images/app/views/admin/images/insert.html.erb +50 -0
  370. data/vendor/plugins/images/app/views/admin/images/new.html.erb +1 -0
  371. data/vendor/plugins/images/config/routes.rb +5 -0
  372. data/vendor/plugins/images/images.md +53 -0
  373. data/vendor/plugins/images/lib/tasks/images.rake +45 -0
  374. data/vendor/plugins/images/rails/init.rb +14 -0
  375. data/vendor/plugins/inquiries/app/controllers/admin/inquiries_controller.rb +29 -0
  376. data/vendor/plugins/inquiries/app/controllers/admin/inquiry_settings_controller.rb +16 -0
  377. data/vendor/plugins/inquiries/app/controllers/inquiries_controller.rb +41 -0
  378. data/vendor/plugins/inquiries/app/helpers/inquiries_helper.rb +13 -0
  379. data/vendor/plugins/inquiries/app/models/inquiry.rb +16 -0
  380. data/vendor/plugins/inquiries/app/models/inquiry_mailer.rb +20 -0
  381. data/vendor/plugins/inquiries/app/models/inquiry_setting.rb +11 -0
  382. data/vendor/plugins/inquiries/app/views/admin/inquiries/_inquiry.html.erb +20 -0
  383. data/vendor/plugins/inquiries/app/views/admin/inquiries/index.html.erb +43 -0
  384. data/vendor/plugins/inquiries/app/views/admin/inquiries/show.html.erb +62 -0
  385. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_confirmation_email_form.html.erb +46 -0
  386. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/_notification_recipients_form.html.erb +18 -0
  387. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/edit.html.erb +5 -0
  388. data/vendor/plugins/inquiries/app/views/admin/inquiry_settings/index.html.erb +31 -0
  389. data/vendor/plugins/inquiries/app/views/inquiries/new.html.erb +31 -0
  390. data/vendor/plugins/inquiries/app/views/inquiries/thank_you.html.erb +1 -0
  391. data/vendor/plugins/inquiries/app/views/inquiry_mailer/confirmation.html.erb +1 -0
  392. data/vendor/plugins/inquiries/app/views/inquiry_mailer/notification.html.erb +18 -0
  393. data/vendor/plugins/inquiries/config/routes.rb +8 -0
  394. data/vendor/plugins/inquiries/inquiries.md +31 -0
  395. data/vendor/plugins/inquiries/rails/init.rb +13 -0
  396. data/vendor/plugins/news/app/controllers/admin/news_items_controller.rb +5 -0
  397. data/vendor/plugins/news/app/controllers/news_items_controller.rb +20 -0
  398. data/vendor/plugins/news/app/models/news_item.rb +22 -0
  399. data/vendor/plugins/news/app/views/admin/news_items/_form.html.erb +19 -0
  400. data/vendor/plugins/news/app/views/admin/news_items/_news_item.html.erb +15 -0
  401. data/vendor/plugins/news/app/views/admin/news_items/edit.html.erb +1 -0
  402. data/vendor/plugins/news/app/views/admin/news_items/index.html.erb +31 -0
  403. data/vendor/plugins/news/app/views/admin/news_items/new.html.erb +1 -0
  404. data/vendor/plugins/news/app/views/news_items/_recent_posts.html.erb +8 -0
  405. data/vendor/plugins/news/app/views/news_items/index.html.erb +17 -0
  406. data/vendor/plugins/news/app/views/news_items/index.rss.builder +26 -0
  407. data/vendor/plugins/news/app/views/news_items/show.html.erb +13 -0
  408. data/vendor/plugins/news/config/routes.rb +7 -0
  409. data/vendor/plugins/news/news.md +20 -0
  410. data/vendor/plugins/news/rails/init.rb +11 -0
  411. data/vendor/plugins/pages/app/controllers/admin/page_dialogs_controller.rb +49 -0
  412. data/vendor/plugins/pages/app/controllers/admin/page_parts_controller.rb +20 -0
  413. data/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +18 -0
  414. data/vendor/plugins/pages/app/controllers/pages_controller.rb +22 -0
  415. data/vendor/plugins/pages/app/helpers/pages_helper.rb +2 -0
  416. data/vendor/plugins/pages/app/models/page.rb +162 -0
  417. data/vendor/plugins/pages/app/models/page_part.rb +10 -0
  418. data/vendor/plugins/pages/app/presenters/page_presenter.rb +3 -0
  419. data/vendor/plugins/pages/app/views/admin/page_dialogs/_page_link.html.erb +5 -0
  420. data/vendor/plugins/pages/app/views/admin/page_dialogs/link_to.html.erb +149 -0
  421. data/vendor/plugins/pages/app/views/admin/pages/_form.html.erb +140 -0
  422. data/vendor/plugins/pages/app/views/admin/pages/_list.html.erb +29 -0
  423. data/vendor/plugins/pages/app/views/admin/pages/_page_part_field.html.erb +4 -0
  424. data/vendor/plugins/pages/app/views/admin/pages/_sortable_list.html.erb +4 -0
  425. data/vendor/plugins/pages/app/views/admin/pages/edit.html.erb +1 -0
  426. data/vendor/plugins/pages/app/views/admin/pages/index.html.erb +41 -0
  427. data/vendor/plugins/pages/app/views/admin/pages/new.html.erb +1 -0
  428. data/vendor/plugins/pages/app/views/pages/home.html.erb +1 -0
  429. data/vendor/plugins/pages/app/views/pages/show.html.erb +1 -0
  430. data/vendor/plugins/pages/config/routes.rb +11 -0
  431. data/vendor/plugins/pages/pages.md +146 -0
  432. data/vendor/plugins/pages/rails/init.rb +13 -0
  433. data/vendor/plugins/rails_indexes/MIT-LICENSE +20 -0
  434. data/vendor/plugins/rails_indexes/README.textile +46 -0
  435. data/vendor/plugins/rails_indexes/Rakefile +23 -0
  436. data/vendor/plugins/rails_indexes/lib/indexer.rb +305 -0
  437. data/vendor/plugins/rails_indexes/tasks/indexer.rake +18 -0
  438. data/vendor/plugins/rails_indexes/test/fixtures/app/controllers/users_controller.rb +8 -0
  439. data/vendor/plugins/rails_indexes/test/fixtures/app/models/address.rb +5 -0
  440. data/vendor/plugins/rails_indexes/test/fixtures/app/models/company.rb +11 -0
  441. data/vendor/plugins/rails_indexes/test/fixtures/app/models/country.rb +4 -0
  442. data/vendor/plugins/rails_indexes/test/fixtures/app/models/freelancer.rb +3 -0
  443. data/vendor/plugins/rails_indexes/test/fixtures/app/models/gift.rb +10 -0
  444. data/vendor/plugins/rails_indexes/test/fixtures/app/models/god.rb +3 -0
  445. data/vendor/plugins/rails_indexes/test/fixtures/app/models/user.rb +17 -0
  446. data/vendor/plugins/rails_indexes/test/fixtures/app/sweepers/user_sweeper.rb +9 -0
  447. data/vendor/plugins/rails_indexes/test/fixtures/schema.rb +46 -0
  448. data/vendor/plugins/rails_indexes/test/rails_indexes_test.rb +83 -0
  449. data/vendor/plugins/rails_indexes/test/test_helper.rb +30 -0
  450. data/vendor/plugins/refinery/app/controllers/admin/refinery_core_controller.rb +14 -0
  451. data/vendor/plugins/refinery/app/views/admin/_head.html.erb +11 -0
  452. data/vendor/plugins/refinery/app/views/admin/_menu.html.erb +23 -0
  453. data/vendor/plugins/refinery/app/views/layouts/admin.html.erb +34 -0
  454. data/vendor/plugins/refinery/app/views/layouts/application.html.erb +20 -0
  455. data/vendor/plugins/refinery/app/views/shared/_content_page.html.erb +36 -0
  456. data/vendor/plugins/refinery/app/views/shared/_footer.html.erb +5 -0
  457. data/vendor/plugins/refinery/app/views/shared/_google_analytics.html.erb +13 -0
  458. data/vendor/plugins/refinery/app/views/shared/_head.html.erb +16 -0
  459. data/vendor/plugins/refinery/app/views/shared/_header.html.erb +4 -0
  460. data/vendor/plugins/refinery/app/views/shared/_ie6check.html.erb +11 -0
  461. data/vendor/plugins/refinery/app/views/shared/_menu.html.erb +8 -0
  462. data/vendor/plugins/refinery/app/views/shared/_menu_branch.html.erb +23 -0
  463. data/vendor/plugins/refinery/app/views/shared/_message.html.erb +5 -0
  464. data/vendor/plugins/refinery/app/views/shared/_submenu.html.erb +5 -0
  465. data/vendor/plugins/refinery/app/views/shared/_submenu_branch.html.erb +10 -0
  466. data/vendor/plugins/refinery/app/views/shared/admin/_continue_editing.html.erb +4 -0
  467. data/vendor/plugins/refinery/app/views/shared/admin/_error_messages_for.html.erb +2 -0
  468. data/vendor/plugins/refinery/app/views/shared/admin/_form_actions.html.erb +13 -0
  469. data/vendor/plugins/refinery/app/views/shared/admin/_head_before_javascript_libraries.html.erb +0 -0
  470. data/vendor/plugins/refinery/app/views/shared/admin/_image_picker.html.erb +48 -0
  471. data/vendor/plugins/refinery/app/views/shared/admin/_make_sortable.html.erb +10 -0
  472. data/vendor/plugins/refinery/app/views/shared/admin/_resource_picker.html.erb +57 -0
  473. data/vendor/plugins/refinery/app/views/shared/admin/_search.html.erb +5 -0
  474. data/vendor/plugins/refinery/app/views/shared/admin/_sortable_list.html.erb +9 -0
  475. data/vendor/plugins/refinery/app/views/welcome.html.erb +13 -0
  476. data/vendor/plugins/refinery/app/views/wymiframe.html.erb +8 -0
  477. data/vendor/plugins/refinery/config/routes.rb +10 -0
  478. data/vendor/plugins/refinery/crud.md +197 -0
  479. data/vendor/plugins/refinery/lib/crud.rb +222 -0
  480. data/vendor/plugins/refinery/lib/generators/refinery/README +29 -0
  481. data/vendor/plugins/refinery/lib/generators/refinery/Rakefile +12 -0
  482. data/vendor/plugins/refinery/lib/generators/refinery/USAGE +2 -0
  483. data/vendor/plugins/refinery/lib/generators/refinery/install.rb +2 -0
  484. data/vendor/plugins/refinery/lib/generators/refinery/refinery_generator.rb +65 -0
  485. data/vendor/plugins/refinery/lib/generators/refinery/templates/config/routes.rb +7 -0
  486. data/vendor/plugins/refinery/lib/generators/refinery/templates/controller.rb +5 -0
  487. data/vendor/plugins/refinery/lib/generators/refinery/templates/migration.rb +44 -0
  488. data/vendor/plugins/refinery/lib/generators/refinery/templates/model.rb +9 -0
  489. data/vendor/plugins/refinery/lib/generators/refinery/templates/public_controller.rb +30 -0
  490. data/vendor/plugins/refinery/lib/generators/refinery/templates/rails/init.rb +10 -0
  491. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_form.html.erb +14 -0
  492. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_singular_name.html.erb +15 -0
  493. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/_sortable_list.html.erb +2 -0
  494. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/edit.html.erb +1 -0
  495. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/index.html.erb +42 -0
  496. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/admin/new.html.erb +1 -0
  497. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/index.html.erb +11 -0
  498. data/vendor/plugins/refinery/lib/generators/refinery/templates/views/show.html.erb +25 -0
  499. data/vendor/plugins/refinery/lib/refinery/activity.rb +37 -0
  500. data/vendor/plugins/refinery/lib/refinery/admin_base_controller.rb +56 -0
  501. data/vendor/plugins/refinery/lib/refinery/application_controller.rb +80 -0
  502. data/vendor/plugins/refinery/lib/refinery/application_helper.rb +112 -0
  503. data/vendor/plugins/refinery/lib/refinery/attachment_fu_patch.rb +16 -0
  504. data/vendor/plugins/refinery/lib/refinery/base_presenter.rb +27 -0
  505. data/vendor/plugins/refinery/lib/refinery/form_helpers.rb +28 -0
  506. data/vendor/plugins/refinery/lib/refinery/html_truncation_helper.rb +110 -0
  507. data/vendor/plugins/refinery/lib/refinery/initializer.rb +80 -0
  508. data/vendor/plugins/refinery/lib/refinery/link_renderer.rb +45 -0
  509. data/vendor/plugins/refinery/lib/refinery/plugin.rb +47 -0
  510. data/vendor/plugins/refinery/lib/refinery/plugins.rb +53 -0
  511. data/vendor/plugins/refinery/lib/refinery.rb +11 -0
  512. data/vendor/plugins/refinery/lib/tasks/doc.rake +29 -0
  513. data/vendor/plugins/refinery/lib/tasks/refinery.rake +34 -0
  514. data/vendor/plugins/refinery/lib/tasks/yard.rake +32 -0
  515. data/vendor/plugins/refinery/plugins.md +205 -0
  516. data/vendor/plugins/refinery/rails/init.rb +14 -0
  517. data/vendor/plugins/refinery_dialogs/app/controllers/admin/dialogs_controller.rb +26 -0
  518. data/vendor/plugins/refinery_dialogs/app/views/admin/dialogs/show.html.erb +20 -0
  519. data/vendor/plugins/refinery_dialogs/app/views/layouts/admin_dialog.html.erb +24 -0
  520. data/vendor/plugins/refinery_dialogs/config/routes.rb +5 -0
  521. data/vendor/plugins/refinery_dialogs/rails/init.rb +7 -0
  522. data/vendor/plugins/refinery_settings/app/controllers/admin/refinery_settings_controller.rb +5 -0
  523. data/vendor/plugins/refinery_settings/app/models/refinery_setting.rb +88 -0
  524. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_form.html.erb +17 -0
  525. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/_refinery_setting.html.erb +12 -0
  526. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/edit.html.erb +4 -0
  527. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/index.html.erb +27 -0
  528. data/vendor/plugins/refinery_settings/app/views/admin/refinery_settings/new.html.erb +1 -0
  529. data/vendor/plugins/refinery_settings/config/routes.rb +5 -0
  530. data/vendor/plugins/refinery_settings/rails/init.rb +13 -0
  531. data/vendor/plugins/refinery_settings/settings.md +55 -0
  532. data/vendor/plugins/resources/app/controllers/admin/resources_controller.rb +94 -0
  533. data/vendor/plugins/resources/app/models/resource.rb +55 -0
  534. data/vendor/plugins/resources/app/views/admin/resources/_form.html.erb +33 -0
  535. data/vendor/plugins/resources/app/views/admin/resources/_resource.html.erb +14 -0
  536. data/vendor/plugins/resources/app/views/admin/resources/edit.html.erb +1 -0
  537. data/vendor/plugins/resources/app/views/admin/resources/index.html.erb +41 -0
  538. data/vendor/plugins/resources/app/views/admin/resources/insert.html.erb +67 -0
  539. data/vendor/plugins/resources/app/views/admin/resources/new.html.erb +1 -0
  540. data/vendor/plugins/resources/config/routes.rb +9 -0
  541. data/vendor/plugins/resources/rails/init.rb +12 -0
  542. data/vendor/plugins/resources/resources.md +9 -0
  543. data/vendor/plugins/themes/app/helpers/themes_helper.rb +25 -0
  544. data/vendor/plugins/themes/lib/theme_server.rb +30 -0
  545. data/vendor/plugins/themes/rails/init.rb +24 -0
  546. data/vendor/plugins/themes/themes.md +113 -0
  547. metadata +625 -0
@@ -0,0 +1,29 @@
1
+ <%
2
+ branch = if (!page.parent_id.nil? and page === page.self_and_siblings.last) or (page != @pages.first and page === @pages.last)
3
+ "branch_end"
4
+ elsif page === @pages.first
5
+ "branch_start"
6
+ end
7
+ -%>
8
+ <li class='record<%= " #{branch}" %>' id="<%= dom_id(page) -%>">
9
+ <div class='clearfix'>
10
+ <span class='actions'>
11
+ <%= link_to refinery_icon_tag('application_go.png'), page.url, :target => "_blank",
12
+ :title => "View this page live <br/><em>(opens in a new window)</em>" %>
13
+ <%= link_to refinery_icon_tag('application_edit.png'), edit_admin_page_path(page),
14
+ :title => "Edit this page" %>
15
+ <%= link_to refinery_icon_tag('delete.png'), admin_page_path(page),
16
+ :class => "cancel confirm-delete",
17
+ :title => "Remove this page forever" if page.deletable? %>
18
+ </span>
19
+ <%= h page.title %> <%= "<em>(hidden)</em>" unless page.show_in_menu? %>
20
+ <%= "<em>(draft)</em>" if page.draft? %>
21
+ </div>
22
+ <% if (children = page.children).any? %>
23
+ <ul<%= " class='nested'" %>>
24
+ <% children.each do |child| %>
25
+ <%= render :partial => 'list', :locals => {:page => child} %>
26
+ <% end %>
27
+ </ul>
28
+ <% end %>
29
+ </li>
@@ -0,0 +1,4 @@
1
+ <div class='page_part field' id='<%= new_part ? "page_part_new_#{part_index}" : dom_id(part) %>'>
2
+ <%= hidden_field_tag "page[parts_attributes][#{part_index}][title]", part.title if new_part %>
3
+ <%= text_area_tag "page[parts_attributes][#{part_index}][body]", part.body, :rows => 20, :cols => 140, :class => 'wymeditor' %>
4
+ </div>
@@ -0,0 +1,4 @@
1
+ <% @pages.each do |page| %>
2
+ <%= render :partial => 'list', :locals => {:page => page} %>
3
+ <% end %>
4
+ <%= render :partial => "/shared/admin/sortable_list", :locals => {:continue_reordering => (defined?(continue_reordering) ? continue_reordering : true)} %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,41 @@
1
+ <div id='actions'>
2
+ <ul>
3
+ <li>
4
+ <%= render :partial => "/shared/admin/search", :locals => {:url => admin_pages_url} %>
5
+ </li>
6
+ <li>
7
+ <%= link_to "Create New Page", new_admin_page_url, :class => "add_icon" %>
8
+ </li>
9
+ <% if Page.count > 1 and not searching? %>
10
+ <li>
11
+ <%= link_to "Reorder Pages", admin_pages_url, :id => "reorder_action", :class => "reorder_icon" %>
12
+ <%= link_to "Done Reordering Pages", admin_pages_url, :id => "reorder_action_done", :style => "display: none;", :class => "reorder_icon" %>
13
+ </li>
14
+ <% end %>
15
+ </ul>
16
+ </div>
17
+ <div id='records' class='tree'>
18
+ <% if searching? %>
19
+ <% if @pages.any? %>
20
+ <h2>Search Results for "<%= params[:search] %>"</h2>
21
+ <ul id='sortable_list'>
22
+ <%= render :partial => "sortable_list" %>
23
+ </ul>
24
+ <% else %>
25
+ <p>
26
+ <strong>Sorry, no results found.</strong>
27
+ </p>
28
+ <% end %>
29
+ <% else %>
30
+ <% if @pages.any? %>
31
+ <ul id='sortable_list'>
32
+ <%= render :partial => "sortable_list" %>
33
+ </ul>
34
+ <% else %>
35
+ <p>
36
+ <strong>There are no pages yet. Click "Create New Page" to add your first page.</strong>
37
+ </p>
38
+ <% end %>
39
+ <% end %>
40
+ </div>
41
+ <%= render :partial => "/shared/admin/make_sortable", :locals => {:tree => true } if Page.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "/shared/content_page", :locals => {:show_submenu => false} %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "/shared/content_page" %>
@@ -0,0 +1,11 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+ map.resources :pages
3
+
4
+ map.namespace(:admin) do |admin|
5
+ admin.resources :pages
6
+ admin.resources :page_parts
7
+
8
+ admin.resources :pages_dialogs, :as => "pages/dialogs", :controller => :page_dialogs,
9
+ :collection => {:link_to => :get, :test_url => :get, :test_email => :get}
10
+ end
11
+ end
@@ -0,0 +1,146 @@
1
+ # Pages
2
+
3
+ ![Refinery Pages](http://refinerycms.com/system/images/0000/0656/pages.png)
4
+
5
+ ## About
6
+
7
+ One core part of is Pages. Plugins such as News and Inquiries hook to pages. The menu is rendered based off the structure of your pages.
8
+
9
+ Pages have one key thing about them that is unique - page parts.
10
+
11
+ ## Page Parts
12
+
13
+ ![Refinery Page Parts](http://refinerycms.com/system/images/0000/0586/editing-page.png)
14
+
15
+ ### What are they?
16
+
17
+ Think of a page part is a single piece of content on your page. At [Resolve Digital](http://www.resolvedigital.co.nz) we often simply use ``body`` and ``side_body``. One is for the main content and one is for the content which goes on a side bit of the page to display other information.
18
+
19
+ ### Default Page Parts
20
+
21
+ You can change what the default page parts are called or add more by editing the "Default Page Parts" setting. This is a serialized array of names. The default looks like this
22
+
23
+ ---
24
+ - Body
25
+ - Side Body
26
+
27
+ Edit this setting to suit your taste.
28
+
29
+ ### Adding Page Parts for Specific Pages
30
+
31
+ You can add extra page parts to your pages by setting the "New Page Parts" to ``true``.
32
+
33
+ Now do this
34
+
35
+ * Edit the page you want to add a part to
36
+ * Click the little "+" icon up by the page part tabs
37
+ * Type the name of your new part and hit add.
38
+
39
+ _Note: in the user-facing front end we call them "content sections" not "page parts"._
40
+
41
+ ## Page Options
42
+
43
+ ### Draft/Published
44
+
45
+ You can have draft and published pages. This is controlled by checking and unchecking the "Save as Draft" field on the page form, when editing the page.
46
+
47
+ ### Custom Title
48
+
49
+ There are three options for how the page title will be rendered on the front end.
50
+
51
+ * ``None``: will just default to the page title
52
+ * ``Text``: allows you to have a different name for the page in the backend to the front end (sometimes good for SEO)
53
+ * ``Image``: If your designer is using a custom non-standard web font, this is ideal. Bang the image of your title right in there (_we don't recommend this though! Standard web fonts are always a good idea_)
54
+
55
+ ### Show in Menu
56
+
57
+ You can hide a page from the navigation if you like by unchecking "show in menu". This is good for extra reference pages or even pages you might want to link someone up to directly but not "advertise" the pages existence on the menu.
58
+
59
+ ### Custom URL
60
+
61
+ This allows you to make your page not link to a normal page but make it show something else. This could be a donation link to a completely different site or as Refinery uses it, you might want to link to another plugin.
62
+
63
+ The "contact us" page for example has a Custom URL of ``/inquiries/new``, this is because we want it to load the inquiries form from the inquiries plugin instead.
64
+
65
+ ### WYMEditor (the visual editor)
66
+
67
+ Refinery is backed by [WYMEditor](http://www.wymeditor.org/)
68
+
69
+ It's a standards compliant editor that we've trimmed to only have what we feel is absolutely necessary. When you're editing the content in a page part you're using [WYMEditor](http://www.wymeditor.org/).
70
+
71
+ You can also switch to "source" view and edit XHTML manually if the visual editor is not playing nice.
72
+
73
+ ### Custom Selectable Styles in WYMEditor
74
+
75
+ ![Refinery Page Editor Styles](http://refinerycms.com/system/images/0000/0596/editing-page-style.png)
76
+
77
+ Some sites require a little more than just your standard bold and heading controls. This is where the "css" style drop down comes in handy.
78
+
79
+ It allows your users to select a style you define. You need to edit/create a CSS file called ``theme.css``.
80
+
81
+ This file should be located in ``/public/stylesheets/themes.css``
82
+
83
+ Inside that file you define your styles like this
84
+
85
+ .category-name-style-name {
86
+ // apply your CSS rules here
87
+ }
88
+
89
+ For example, if I wanted to add a style that allowed my users to highlight their text a light yellow colour, I would put this
90
+
91
+ .text-highlight-yellow {
92
+ background: LightYellow;
93
+ }
94
+
95
+ Now edit ``public/javascripts/admin.js``. We're going to need to tell WYMEditor that we have some new styles it should load when the editor is loaded.
96
+
97
+ Currently your ``admin.js`` file will have something like this
98
+
99
+ var wymeditorClassesItems = [
100
+    {name: 'text-align', rules:['left', 'center', 'right', 'justify'], join: '-'}
101
+ ,  {name: 'image-align', rules:['left', 'right'], join: '-'}
102
+ ,  {name: 'font-size', rules:['small','normal','large'], join: '-'}
103
+ ]
104
+
105
+ Let's just breakdown a single WYMeditor line and understand it:
106
+
107
+ {name: 'font-size', rules:['small','normal','large'], join: '-'}
108
+
109
+ ``font-size`` is the name of the category and ``small``, ``normal``, ``large`` are the actual styles. So for this to match up with the styles in my theme.css file the class name has to be:
110
+
111
+ .font-size-small { // CSS rules here }
112
+ .font-size-normal { // CSS rules here }
113
+ .font-size-large { // CSS rules here }
114
+
115
+ So going back to our text highlighting style above, we make the new style show up in the editor by changing our ``admin.js`` file to:
116
+
117
+ var wymeditorClassesItems = [
118
+    {name: 'text-align', rules:['left', 'center', 'right', 'justify'], join: '-'}
119
+ ,  {name: 'image-align', rules:['left', 'right'], join: '-'}
120
+ ,  {name: 'font-size', rules:['small','normal','large'], join: '-'}
121
+ ,  {name: 'text-highlight', rules:['yellow'], join: '-'}
122
+ ]
123
+
124
+ ### Dialogs that show from WYMEditor
125
+
126
+ ![Refinery Page Editor Link Dialog](http://refinerycms.com/system/images/0000/0636/link-dialog.png)
127
+
128
+ ## Page Link dialog
129
+
130
+ The link dialog lets you link in several different ways:
131
+
132
+ * To an internal page
133
+ * To an external page
134
+ * To an email address
135
+ * To a resource you've uploaded in the Resources tab.
136
+
137
+ ## Insert Image dialog
138
+
139
+ Simply lets you select from an existing image found in the Images tab or upload a new one right within the dialog.
140
+
141
+ ## Refinery Default Pages
142
+
143
+ Some pages you have to keep in order for Refinery to stay fully functional:
144
+
145
+ * Page not found - the default 404 page
146
+ * Down for maintenance - renders when you're site is being updated.
@@ -0,0 +1,13 @@
1
+ Refinery::Plugin.register do |plugin|
2
+ plugin.title = "Pages"
3
+ plugin.description = "Manage content pages"
4
+ plugin.version = 1.0
5
+ plugin.menu_match = /admin\/page(_dialog|_part)?s$/
6
+ plugin.activity = {
7
+ :class => Page,
8
+ :url_prefix => "edit",
9
+ :title => "title",
10
+ :created_image => "page_add.png",
11
+ :updated_image => "page_edit.png"
12
+ }
13
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 [name of plugin creator]
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,46 @@
1
+ h1. Rails Indexes
2
+
3
+ Rails indexes is a small package of 2 rake tasks that scan your application models and displays a list of columns that _probably_ should be indexed.
4
+
5
+ note: there should be mode fields depending on your application design and custom queries.
6
+
7
+ h2. Installation
8
+
9
+ as a rails plugin:
10
+ <pre>script/plugin install git://github.com/eladmeidar/rails_indexes.git</pre>
11
+
12
+ h2. Usage
13
+
14
+ <del>Display a simple report:</del>
15
+ <pre><del>rake db:show_me_some_indexes</del></pre>
16
+ - *deprecated*
17
+
18
+ Display a migration for adding/removing all necessary indexes based on associations:
19
+ <pre>rake db:show_me_a_migration</pre>
20
+
21
+ Display a migration for adding/removing all necessary indexes based on AR::Base#find calls (including: find, find_by, find_all_by, find_by_x_and_y, find_all_by_x_and_y):
22
+ <pre>rake db:show_me_ar_find_indexes</pre>
23
+
24
+ Note that it would probably make more sense running those tasks on production, where you *actually* need those indexes to be added.
25
+
26
+ * Add an option to create a migration that adds all the needed indexes.
27
+ * Add an option to scan the application root tree for #find, #find_all_by and #find_by to get some more index-required columns.
28
+
29
+ h2. Tests
30
+
31
+ Requires SQLite3 installed, then just:
32
+ <pre>rake</pre>
33
+ to run the tests
34
+
35
+ h4. Author:
36
+
37
+ Elad Meidar
38
+ "http://blog.eizesus.com":http://blog.eizesus.com
39
+
40
+ Thanks:
41
+ Eric Davis,
42
+ "http://littlestreamsoftware.com":http://littlestreamsoftware.com
43
+
44
+ Released under the same license as Ruby. No Support. No Warranty, no Pain.
45
+
46
+
@@ -0,0 +1,23 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ desc 'Default: run unit tests.'
6
+ task :default => :test
7
+
8
+ desc 'Testing the rails indexes plugin.'
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << 'lib'
11
+ t.libs << 'test'
12
+ t.pattern = 'test/**/*_test.rb'
13
+ t.verbose = true
14
+ end
15
+
16
+ desc 'Generate documentation for the rails_indexes plugin.'
17
+ Rake::RDocTask.new(:rdoc) do |rdoc|
18
+ rdoc.rdoc_dir = 'rdoc'
19
+ rdoc.title = 'RailsIndexes'
20
+ rdoc.options << '--line-numbers' << '--inline-source'
21
+ rdoc.rdoc_files.include('README')
22
+ rdoc.rdoc_files.include('lib/**/*.rb')
23
+ end
@@ -0,0 +1,305 @@
1
+ module Indexer
2
+
3
+ def self.sortalize(array)
4
+ Marshal.load(Marshal.dump(array)).each do |element|
5
+ element.sort! if element.is_a?(Array)
6
+ end
7
+ end
8
+
9
+ def self.check_for_indexes(migration_format = false)
10
+ model_names = []
11
+ Dir.chdir(Rails.root) do
12
+ model_names = Dir["**/app/models/**/*.rb"].collect {|filename| File.basename(filename) }.uniq
13
+ end
14
+
15
+ model_classes = []
16
+ model_names.each do |model_name|
17
+ class_name = model_name.sub(/\.rb$/,'').camelize
18
+ begin
19
+ klass = class_name.split('::').inject(Object){ |klass,part| klass.const_get(part) }
20
+ if klass < ActiveRecord::Base && !klass.abstract_class?
21
+ model_classes << klass
22
+ end
23
+ rescue
24
+ # No-op
25
+ end
26
+ end
27
+
28
+ @index_migrations = Hash.new([])
29
+
30
+ model_classes.each do |class_name|
31
+
32
+ # check if this is an STI child instance
33
+ if class_name.base_class.name != class_name.name && (class_name.column_names.include?(class_name.base_class.inheritance_column) || class_name.column_names.include?(class_name.inheritance_column))
34
+
35
+ # add the inharitance column on the parent table
36
+ # index migration for STI should require both the primary key and the inheritance_column in a composite index.
37
+ @index_migrations[class_name.base_class.table_name] += [[class_name.inheritance_column, class_name.base_class.primary_key].sort] unless @index_migrations[class_name.base_class.table_name].include?([class_name.base_class.inheritance_column].sort)
38
+ end
39
+ #puts "class name: #{class_name}"
40
+ class_name.reflections.each_pair do |reflection_name, reflection_options|
41
+ #puts "reflection => #{reflection_name}"
42
+ case reflection_options.macro
43
+ when :belongs_to
44
+ # polymorphic?
45
+ @table_name = class_name.table_name.to_s
46
+ if reflection_options.options.has_key?(:polymorphic) && (reflection_options.options[:polymorphic] == true)
47
+ poly_type = "#{reflection_options.name.to_s}_type"
48
+ poly_id = "#{reflection_options.name.to_s}_id"
49
+
50
+ @index_migrations[@table_name.to_s] += [[poly_type, poly_id].sort] unless @index_migrations[@table_name.to_s].include?([poly_type, poly_id].sort)
51
+ else
52
+
53
+ foreign_key = reflection_options.options[:foreign_key] ||= reflection_options.primary_key_name
54
+ @index_migrations[@table_name.to_s] += [foreign_key] unless @index_migrations[@table_name.to_s].include?(foreign_key)
55
+ end
56
+ when :has_and_belongs_to_many
57
+ table_name = reflection_options.options[:join_table] ||= [class_name.table_name, reflection_name.to_s].sort.join('_')
58
+ association_foreign_key = reflection_options.options[:association_foreign_key] ||= "#{reflection_name.to_s.singularize}_id"
59
+ foreign_key = reflection_options.options[:foreign_key] ||= "#{class_name.name.tableize.singularize}_id"
60
+
61
+ composite_keys = [association_foreign_key, foreign_key]
62
+
63
+ @index_migrations[table_name.to_s] += [composite_keys] unless @index_migrations[table_name].include?(composite_keys)
64
+ @index_migrations[table_name.to_s] += [composite_keys.reverse] unless @index_migrations[table_name].include?(composite_keys.reverse)
65
+
66
+ else
67
+ #nothing
68
+ end
69
+ end
70
+ end
71
+
72
+ @missing_indexes = {}
73
+
74
+ @index_migrations.each do |table_name, foreign_keys|
75
+
76
+ unless foreign_keys.blank?
77
+ existing_indexes = ActiveRecord::Base.connection.indexes(table_name.to_sym).collect {|index| index.columns.size > 1 ? index.columns : index.columns.first}
78
+ keys_to_add = foreign_keys.uniq - existing_indexes #self.sortalize(foreign_keys.uniq) - self.sortalize(existing_indexes)
79
+ @missing_indexes[table_name] = keys_to_add unless keys_to_add.empty?
80
+ end
81
+ end
82
+
83
+ @missing_indexes
84
+ end
85
+
86
+ def self.scan_finds
87
+ file_names = []
88
+
89
+ Dir.chdir(Rails.root) do
90
+ file_names = Dir["**/app/**/*.rb"].uniq.reject {|file_with_path| file_with_path.include?('test')}
91
+ end
92
+
93
+ @indexes_required = Hash.new([])
94
+ file_names.each do |file_name|
95
+ current_file = File.open(File.join(Rails.root, file_name), 'r')
96
+
97
+ current_file.each do |line|
98
+
99
+ # by default, try to add index on primary key, based on file name
100
+ # this will fail if the file isnot a model file
101
+
102
+ begin
103
+ current_model_name = File.basename(file_name).sub(/\.rb$/,'').camelize
104
+ rescue
105
+ # NO-OP
106
+ end
107
+
108
+ klass = current_model_name.split('::').inject(Object){ |klass,part| klass.const_get(part) } rescue nil
109
+ if klass.present? && klass < ActiveRecord::Base && !klass.abstract_class?
110
+ current_model = current_model_name.constantize
111
+ primary_key = current_model.primary_key
112
+ table_name = current_model.table_name
113
+ @indexes_required[table_name] += [primary_key] unless @indexes_required[table_name].include?(primary_key)
114
+ end
115
+
116
+ check_line_for_find_indexes(file_name, line)
117
+
118
+ end
119
+ end
120
+
121
+ @missing_indexes = {}
122
+ @indexes_required.each do |table_name, foreign_keys|
123
+
124
+ unless foreign_keys.blank?
125
+ begin
126
+ if ActiveRecord::Base.connection.tables.include?(table_name.to_s)
127
+ existing_indexes = ActiveRecord::Base.connection.indexes(table_name.to_sym).collect {|index| index.columns.size > 1 ? index.columns : index.columns.first}
128
+ keys_to_add = self.sortalize(foreign_keys.uniq) - self.sortalize(existing_indexes)
129
+ @missing_indexes[table_name] = keys_to_add unless keys_to_add.empty?
130
+ else
131
+ puts "BUG: table '#{table_name.to_s}' does not exist, please report this bug."
132
+ end
133
+ rescue Exception => e
134
+ puts "ERROR: #{e}"
135
+ end
136
+ end
137
+ end
138
+
139
+ @indexes_required
140
+ end
141
+
142
+
143
+ def self.check_line_for_find_indexes(file_name, line)
144
+ find_regexp = Regexp.new(/([A-Z]{1}[A-Za-z]+|self).(find){1}((_all){0,1}(_by_){0,1}([A-Za-z_]+))?\(([0-9A-Za-z"\':=>. \[\]{},]*)\)/)
145
+ if matches = find_regexp.match(line)
146
+
147
+ model_name, column_names, options = matches[1], matches[6], matches[7]
148
+
149
+ if model_name == "self"
150
+ model_name = File.basename(file_name).sub(/\.rb$/,'').camelize
151
+ table_name = model_name.constantize.table_name
152
+ else
153
+ if model_name.respond_to?(:constantize)
154
+ if model_name.constantize.respond_to?(:table_name)
155
+ table_name = model_name.constantize.table_name
156
+ else
157
+ #puts "Unable to get the table_name for #{model_name.to_s}. it could be an ActiveResource"
158
+ next
159
+ end
160
+ else
161
+ #puts "Unable to constantize #{model_name.to_s}, if you are sure that #{model_name.to_s} is a valid class name, please file an issue on\nhttp://github.com/eladmeidar/rails_indexes\nPlease supply the relevant code as well, thanks. =)"
162
+ next
163
+ end
164
+ end
165
+
166
+ primary_key = model_name.constantize.primary_key
167
+ @indexes_required[table_name] += [primary_key] unless @indexes_required[table_name].include?(primary_key)
168
+
169
+ if column_names.present?
170
+ column_names = column_names.split('_and_')
171
+
172
+ # remove find_by_sql references.
173
+ column_names.delete("sql")
174
+
175
+ column_names = model_name.constantize.column_names & column_names
176
+
177
+ # Check if there were more than 1 column
178
+ if column_names.size == 1
179
+ column_name = column_names.first
180
+ @indexes_required[table_name] += [column_name] unless @indexes_required[table_name].include?(column_name)
181
+ else
182
+ @indexes_required[table_name] += [column_names] unless @indexes_required[table_name].include?(column_names)
183
+ @indexes_required[table_name] += [column_names.reverse] unless @indexes_required[table_name].include?(column_names.reverse)
184
+ end
185
+ end
186
+ end
187
+ end
188
+
189
+ def self.key_exists?(table,key_columns)
190
+ result = (key_columns.to_a - ActiveRecord::Base.connection.indexes(table).map { |i| i.columns }.flatten)
191
+ result.empty?
192
+ end
193
+
194
+ def self.simple_migration
195
+ migration_format = true
196
+ missing_indexes = check_for_indexes(migration_format)
197
+
198
+ unless missing_indexes.keys.empty?
199
+ add = []
200
+ remove = []
201
+ missing_indexes.each do |table_name, keys_to_add|
202
+ keys_to_add.each do |key|
203
+ next if key_exists?(table_name,key)
204
+ next if key.blank?
205
+ if key.is_a?(Array)
206
+ keys = key.collect {|k| ":#{k}"}
207
+ add << "add_index :#{table_name}, [#{keys.join(', ')}]"
208
+ remove << "remove_index :#{table_name}, :column => [#{keys.join(', ')}]"
209
+ else
210
+ add << "add_index :#{table_name}, :#{key}"
211
+ remove << "remove_index :#{table_name}, :#{key}"
212
+ end
213
+
214
+ end
215
+ end
216
+
217
+ migration = <<EOM
218
+ class AddMissingIndexes < ActiveRecord::Migration
219
+ def self.up
220
+
221
+ # These indexes were found by searching for AR::Base finds on your application
222
+ # It is strongly recommanded that you will consult a professional DBA about your infrastucture and implemntation before
223
+ # changing your database in that matter.
224
+ # There is a possibility that some of the indexes offered below is not required and can be removed and not added, if you require
225
+ # further assistance with your rails application, database infrastructure or any other problem, visit:
226
+ #
227
+ # http://www.railsmentors.org
228
+ # http://www.railstutor.org
229
+ # http://guides.rubyonrails.org
230
+
231
+
232
+ #{add.uniq.join("\n ")}
233
+ end
234
+
235
+ def self.down
236
+ #{remove.uniq.join("\n ")}
237
+ end
238
+ end
239
+ EOM
240
+
241
+ puts "## Drop this into a file in db/migrate ##"
242
+ puts migration
243
+ end
244
+ end
245
+
246
+ def self.indexes_list
247
+ check_for_indexes.each do |table_name, keys_to_add|
248
+ puts "Table '#{table_name}' => #{keys_to_add.to_sentence}"
249
+ end
250
+ end
251
+
252
+ def self.ar_find_indexes(migration_mode=true)
253
+ find_indexes = self.scan_finds
254
+
255
+ if migration_mode
256
+ unless find_indexes.keys.empty?
257
+ add = []
258
+ remove = []
259
+ find_indexes.each do |table_name, keys_to_add|
260
+ keys_to_add.each do |key|
261
+ next if key_exists?(table_name,key)
262
+ next if key.blank?
263
+ if key.is_a?(Array)
264
+ keys = key.collect {|k| ":#{k}"}
265
+ add << "add_index :#{table_name}, [#{keys.join(', ')}]"
266
+ remove << "remove_index :#{table_name}, :column => [#{keys.join(', ')}]"
267
+ else
268
+ add << "add_index :#{table_name}, :#{key}"
269
+ remove << "remove_index :#{table_name}, :#{key}"
270
+ end
271
+
272
+ end
273
+ end
274
+
275
+ migration = <<EOM
276
+ class AddFindsMissingIndexes < ActiveRecord::Migration
277
+ def self.up
278
+
279
+ # These indexes were found by searching for AR::Base finds on your application
280
+ # It is strongly recommanded that you will consult a professional DBA about your infrastucture and implemntation before
281
+ # changing your database in that matter.
282
+ # There is a possibility that some of the indexes offered below is not required and can be removed and not added, if you require
283
+ # further assistance with your rails application, database infrastructure or any other problem, visit:
284
+ #
285
+ # http://www.railsmentors.org
286
+ # http://www.railstutor.org
287
+ # http://guides.rubyonrails.org
288
+
289
+ #{add.uniq.join("\n ")}
290
+ end
291
+
292
+ def self.down
293
+ #{remove.uniq.join("\n ")}
294
+ end
295
+ end
296
+ EOM
297
+
298
+ puts "## Drop this into a file in db/migrate ##"
299
+ puts migration
300
+ end
301
+ end
302
+ else
303
+ find_indexes
304
+ end
305
+ end