freeberry 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +118 -0
  3. data/Rakefile +53 -0
  4. data/app/controllers/manage/assets_controller.rb +60 -0
  5. data/app/controllers/manage/base_controller.rb +9 -0
  6. data/app/controllers/manage/pages_controller.rb +36 -0
  7. data/app/controllers/manage/posts_controller.rb +42 -0
  8. data/app/controllers/manage/settings_controller.rb +22 -0
  9. data/app/controllers/manage/structures_controller.rb +42 -0
  10. data/app/controllers/manage/users_controller.rb +79 -0
  11. data/config/locales/defaults/en.yml +149 -0
  12. data/config/locales/defaults/pluralize.rb +6 -0
  13. data/config/locales/defaults/ru.yml +170 -0
  14. data/config/locales/defaults/uk.yml +238 -0
  15. data/config/locales/devise.en.yml +39 -0
  16. data/config/locales/devise.ru.yml +41 -0
  17. data/config/locales/devise.uk.yml +41 -0
  18. data/config/locales/manage/en.yml +235 -0
  19. data/config/locales/manage/ru.yml +235 -0
  20. data/config/locales/manage/uk.yml +235 -0
  21. data/config/routes.rb +23 -0
  22. data/lib/freeberry.rb +36 -0
  23. data/lib/freeberry/accessible_attributes.rb +30 -0
  24. data/lib/freeberry/controllers/authorized_system.rb +77 -0
  25. data/lib/freeberry/controllers/head_options.rb +41 -0
  26. data/lib/freeberry/controllers/helper_tools.rb +171 -0
  27. data/lib/freeberry/core_ext.rb +3 -0
  28. data/lib/freeberry/core_ext/array.rb +22 -0
  29. data/lib/freeberry/core_ext/i18n.rb +21 -0
  30. data/lib/freeberry/core_ext/string.rb +28 -0
  31. data/lib/freeberry/header_tools.rb +30 -0
  32. data/lib/freeberry/model_filter.rb +151 -0
  33. data/lib/freeberry/models/asset.rb +110 -0
  34. data/lib/freeberry/models/comment.rb +49 -0
  35. data/lib/freeberry/models/header.rb +24 -0
  36. data/lib/freeberry/models/page.rb +27 -0
  37. data/lib/freeberry/models/position_type.rb +14 -0
  38. data/lib/freeberry/models/post.rb +44 -0
  39. data/lib/freeberry/models/role.rb +28 -0
  40. data/lib/freeberry/models/role_type.rb +15 -0
  41. data/lib/freeberry/models/structure.rb +39 -0
  42. data/lib/freeberry/models/structure_type.rb +15 -0
  43. data/lib/freeberry/models/user.rb +82 -0
  44. data/lib/freeberry/mysql_utils.rb +103 -0
  45. data/lib/freeberry/railtie.rb +34 -0
  46. data/lib/freeberry/settingslogic.rb +162 -0
  47. data/lib/freeberry/system_settings.rb +65 -0
  48. data/lib/freeberry/transliteration.rb +70 -0
  49. data/lib/freeberry/utils.rb +39 -0
  50. data/lib/freeberry/version.rb +11 -0
  51. data/lib/generators/freeberry/USAGE +5 -0
  52. data/lib/generators/freeberry/base/USAGE +7 -0
  53. data/lib/generators/freeberry/base/base_generator.rb +63 -0
  54. data/lib/generators/freeberry/base/templates/config/application.yml +4 -0
  55. data/lib/generators/freeberry/base/templates/config/authorization_rules.rb +51 -0
  56. data/lib/generators/freeberry/base/templates/config/database.yml +34 -0
  57. data/lib/generators/freeberry/base/templates/config/freeberry.rb +14 -0
  58. data/lib/generators/freeberry/base/templates/config/logrotate-config +9 -0
  59. data/lib/generators/freeberry/base/templates/config/nginx-config-passenger +51 -0
  60. data/lib/generators/freeberry/base/templates/config/seeds.rb +32 -0
  61. data/lib/generators/freeberry/base/templates/config/words +98569 -0
  62. data/lib/generators/freeberry/base/templates/helpers/manage/assets_helper.rb +18 -0
  63. data/lib/generators/freeberry/base/templates/helpers/manage/base_helper.rb +84 -0
  64. data/lib/generators/freeberry/base/templates/helpers/manage/pages_helper.rb +2 -0
  65. data/lib/generators/freeberry/base/templates/helpers/manage/posts_helper.rb +2 -0
  66. data/lib/generators/freeberry/base/templates/helpers/manage/settings_helper.rb +2 -0
  67. data/lib/generators/freeberry/base/templates/helpers/manage/structures_helper.rb +12 -0
  68. data/lib/generators/freeberry/base/templates/helpers/manage/users_helper.rb +16 -0
  69. data/lib/generators/freeberry/base/templates/images/manage/add_post_bot.gif +0 -0
  70. data/lib/generators/freeberry/base/templates/images/manage/add_post_top.gif +0 -0
  71. data/lib/generators/freeberry/base/templates/images/manage/add_white_bot.gif +0 -0
  72. data/lib/generators/freeberry/base/templates/images/manage/add_white_top.gif +0 -0
  73. data/lib/generators/freeberry/base/templates/images/manage/arrow.png +0 -0
  74. data/lib/generators/freeberry/base/templates/images/manage/back_but_lc.gif +0 -0
  75. data/lib/generators/freeberry/base/templates/images/manage/back_but_rc.gif +0 -0
  76. data/lib/generators/freeberry/base/templates/images/manage/bot_corn.gif +0 -0
  77. data/lib/generators/freeberry/base/templates/images/manage/bot_duo_corn.gif +0 -0
  78. data/lib/generators/freeberry/base/templates/images/manage/but_bg.png +0 -0
  79. data/lib/generators/freeberry/base/templates/images/manage/but_block_lc.gif +0 -0
  80. data/lib/generators/freeberry/base/templates/images/manage/but_block_rc.gif +0 -0
  81. data/lib/generators/freeberry/base/templates/images/manage/but_freze_lc.gif +0 -0
  82. data/lib/generators/freeberry/base/templates/images/manage/but_freze_rc.gif +0 -0
  83. data/lib/generators/freeberry/base/templates/images/manage/but_gr.gif +0 -0
  84. data/lib/generators/freeberry/base/templates/images/manage/but_gr_l.gif +0 -0
  85. data/lib/generators/freeberry/base/templates/images/manage/but_gr_r.gif +0 -0
  86. data/lib/generators/freeberry/base/templates/images/manage/but_search.gif +0 -0
  87. data/lib/generators/freeberry/base/templates/images/manage/but_unfreze_lc.gif +0 -0
  88. data/lib/generators/freeberry/base/templates/images/manage/but_unfreze_rc.gif +0 -0
  89. data/lib/generators/freeberry/base/templates/images/manage/button_add_foto.gif +0 -0
  90. data/lib/generators/freeberry/base/templates/images/manage/button_add_foto_ru.gif +0 -0
  91. data/lib/generators/freeberry/base/templates/images/manage/button_add_foto_ua.gif +0 -0
  92. data/lib/generators/freeberry/base/templates/images/manage/button_add_foto_uk.gif +0 -0
  93. data/lib/generators/freeberry/base/templates/images/manage/cancelbutton.gif +0 -0
  94. data/lib/generators/freeberry/base/templates/images/manage/dark_arr.gif +0 -0
  95. data/lib/generators/freeberry/base/templates/images/manage/dark_arr_left.gif +0 -0
  96. data/lib/generators/freeberry/base/templates/images/manage/dark_cross_ico.gif +0 -0
  97. data/lib/generators/freeberry/base/templates/images/manage/dot.gif +0 -0
  98. data/lib/generators/freeberry/base/templates/images/manage/duo_bg.gif +0 -0
  99. data/lib/generators/freeberry/base/templates/images/manage/duo_bg_small.gif +0 -0
  100. data/lib/generators/freeberry/base/templates/images/manage/duo_bg_small_blocked.gif +0 -0
  101. data/lib/generators/freeberry/base/templates/images/manage/duo_bg_small_frozed.gif +0 -0
  102. data/lib/generators/freeberry/base/templates/images/manage/duo_bg_small_notact.gif +0 -0
  103. data/lib/generators/freeberry/base/templates/images/manage/duo_bot_small.gif +0 -0
  104. data/lib/generators/freeberry/base/templates/images/manage/duo_bot_small_blocked.gif +0 -0
  105. data/lib/generators/freeberry/base/templates/images/manage/duo_bot_small_frozed.gif +0 -0
  106. data/lib/generators/freeberry/base/templates/images/manage/duo_bot_small_notact.gif +0 -0
  107. data/lib/generators/freeberry/base/templates/images/manage/duo_top_small.gif +0 -0
  108. data/lib/generators/freeberry/base/templates/images/manage/duo_top_small_blocked.gif +0 -0
  109. data/lib/generators/freeberry/base/templates/images/manage/duo_top_small_frozed.gif +0 -0
  110. data/lib/generators/freeberry/base/templates/images/manage/duo_top_small_notact.gif +0 -0
  111. data/lib/generators/freeberry/base/templates/images/manage/edit_white_top.gif +0 -0
  112. data/lib/generators/freeberry/base/templates/images/manage/empty.gif +0 -0
  113. data/lib/generators/freeberry/base/templates/images/manage/filter_bot_bg.gif +0 -0
  114. data/lib/generators/freeberry/base/templates/images/manage/filter_top_bg.gif +0 -0
  115. data/lib/generators/freeberry/base/templates/images/manage/flag_en.gif +0 -0
  116. data/lib/generators/freeberry/base/templates/images/manage/flag_en_nonact.gif +0 -0
  117. data/lib/generators/freeberry/base/templates/images/manage/flag_ru.gif +0 -0
  118. data/lib/generators/freeberry/base/templates/images/manage/flag_ru_nonact.gif +0 -0
  119. data/lib/generators/freeberry/base/templates/images/manage/flag_ua.gif +0 -0
  120. data/lib/generators/freeberry/base/templates/images/manage/flag_ua_nonact.gif +0 -0
  121. data/lib/generators/freeberry/base/templates/images/manage/foto.jpg +0 -0
  122. data/lib/generators/freeberry/base/templates/images/manage/ico_add.gif +0 -0
  123. data/lib/generators/freeberry/base/templates/images/manage/ico_del.gif +0 -0
  124. data/lib/generators/freeberry/base/templates/images/manage/ico_down.gif +0 -0
  125. data/lib/generators/freeberry/base/templates/images/manage/ico_edit.gif +0 -0
  126. data/lib/generators/freeberry/base/templates/images/manage/ico_settings.gif +0 -0
  127. data/lib/generators/freeberry/base/templates/images/manage/ico_up.gif +0 -0
  128. data/lib/generators/freeberry/base/templates/images/manage/input_bg.gif +0 -0
  129. data/lib/generators/freeberry/base/templates/images/manage/l_but_corn.gif +0 -0
  130. data/lib/generators/freeberry/base/templates/images/manage/minimise_but.gif +0 -0
  131. data/lib/generators/freeberry/base/templates/images/manage/mp3.png +0 -0
  132. data/lib/generators/freeberry/base/templates/images/manage/page_arr_hover.png +0 -0
  133. data/lib/generators/freeberry/base/templates/images/manage/page_next_arr.gif +0 -0
  134. data/lib/generators/freeberry/base/templates/images/manage/page_num_hover.gif +0 -0
  135. data/lib/generators/freeberry/base/templates/images/manage/page_prev_arr.gif +0 -0
  136. data/lib/generators/freeberry/base/templates/images/manage/panel/l_but_corn.gif +0 -0
  137. data/lib/generators/freeberry/base/templates/images/manage/panel/maximise_but.gif +0 -0
  138. data/lib/generators/freeberry/base/templates/images/manage/panel/r_but_corn.gif +0 -0
  139. data/lib/generators/freeberry/base/templates/images/manage/panel/top_menu_arr.gif +0 -0
  140. data/lib/generators/freeberry/base/templates/images/manage/panel/user_pic.gif +0 -0
  141. data/lib/generators/freeberry/base/templates/images/manage/preloader.gif +0 -0
  142. data/lib/generators/freeberry/base/templates/images/manage/r_but_corn.gif +0 -0
  143. data/lib/generators/freeberry/base/templates/images/manage/select_bg.gif +0 -0
  144. data/lib/generators/freeberry/base/templates/images/manage/select_corn.gif +0 -0
  145. data/lib/generators/freeberry/base/templates/images/manage/struct_corn_lg.gif +0 -0
  146. data/lib/generators/freeberry/base/templates/images/manage/struct_corn_llg.gif +0 -0
  147. data/lib/generators/freeberry/base/templates/images/manage/struct_corn_lw.gif +0 -0
  148. data/lib/generators/freeberry/base/templates/images/manage/struct_corn_rg.gif +0 -0
  149. data/lib/generators/freeberry/base/templates/images/manage/struct_corn_rlg.gif +0 -0
  150. data/lib/generators/freeberry/base/templates/images/manage/struct_corn_rw.gif +0 -0
  151. data/lib/generators/freeberry/base/templates/images/manage/tab_gl.gif +0 -0
  152. data/lib/generators/freeberry/base/templates/images/manage/tab_gr.gif +0 -0
  153. data/lib/generators/freeberry/base/templates/images/manage/tab_wl.gif +0 -0
  154. data/lib/generators/freeberry/base/templates/images/manage/tab_wr.gif +0 -0
  155. data/lib/generators/freeberry/base/templates/images/manage/top_corn.gif +0 -0
  156. data/lib/generators/freeberry/base/templates/images/manage/top_duo_corn.gif +0 -0
  157. data/lib/generators/freeberry/base/templates/images/manage/top_menu_arr.gif +0 -0
  158. data/lib/generators/freeberry/base/templates/images/manage/transp_cross.png +0 -0
  159. data/lib/generators/freeberry/base/templates/images/manage/upload_progress.gif +0 -0
  160. data/lib/generators/freeberry/base/templates/images/manage/user_act_lc.gif +0 -0
  161. data/lib/generators/freeberry/base/templates/images/manage/user_act_rc.gif +0 -0
  162. data/lib/generators/freeberry/base/templates/images/manage/user_ico.gif +0 -0
  163. data/lib/generators/freeberry/base/templates/images/manage/user_pic.gif +0 -0
  164. data/lib/generators/freeberry/base/templates/images/manage/user_pic_small.gif +0 -0
  165. data/lib/generators/freeberry/base/templates/images/manage/user_pic_thumb.gif +0 -0
  166. data/lib/generators/freeberry/base/templates/javascripts/datepicker/jquery-ui-i18n.js +1176 -0
  167. data/lib/generators/freeberry/base/templates/javascripts/datepicker/jquery.ui.datepicker-ru.js +23 -0
  168. data/lib/generators/freeberry/base/templates/javascripts/datepicker/jquery.ui.datepicker-uk.js +23 -0
  169. data/lib/generators/freeberry/base/templates/javascripts/jquery.fancybox-1.3.2.pack.js +46 -0
  170. data/lib/generators/freeberry/base/templates/javascripts/manage.js +266 -0
  171. data/lib/generators/freeberry/base/templates/javascripts/preloader.js +47 -0
  172. data/lib/generators/freeberry/base/templates/javascripts/rails.js +146 -0
  173. data/lib/generators/freeberry/base/templates/javascripts/wp_cookie.js +167 -0
  174. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/blank.gif +0 -0
  175. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_close.png +0 -0
  176. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_loading.png +0 -0
  177. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_nav_left.png +0 -0
  178. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_nav_right.png +0 -0
  179. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_e.png +0 -0
  180. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_n.png +0 -0
  181. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_ne.png +0 -0
  182. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_nw.png +0 -0
  183. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_s.png +0 -0
  184. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_se.png +0 -0
  185. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_sw.png +0 -0
  186. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_shadow_w.png +0 -0
  187. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_title_left.png +0 -0
  188. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_title_main.png +0 -0
  189. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_title_over.png +0 -0
  190. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancy_title_right.png +0 -0
  191. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancybox-x.png +0 -0
  192. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancybox-y.png +0 -0
  193. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/images/fancybox.png +0 -0
  194. data/lib/generators/freeberry/base/templates/stylesheets/fancybox/jquery.fancybox-1.3.2.css +359 -0
  195. data/lib/generators/freeberry/base/templates/stylesheets/manage/ie.css +16 -0
  196. data/lib/generators/freeberry/base/templates/stylesheets/manage/main.css +1069 -0
  197. data/lib/generators/freeberry/base/templates/stylesheets/manage/panel.css +126 -0
  198. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  199. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  200. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  201. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  202. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  203. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  204. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  205. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  206. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-icons_222222_256x240.png +0 -0
  207. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  208. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-icons_454545_256x240.png +0 -0
  209. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-icons_888888_256x240.png +0 -0
  210. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  211. data/lib/generators/freeberry/base/templates/stylesheets/smoothness/jquery-ui-1.8.6.custom.css +572 -0
  212. data/lib/generators/freeberry/base/templates/sweepers/page_sweeper.rb +22 -0
  213. data/lib/generators/freeberry/base/templates/sweepers/post_sweeper.rb +22 -0
  214. data/lib/generators/freeberry/base/templates/sweepers/structure_sweeper.rb +29 -0
  215. data/lib/generators/freeberry/base/templates/sweepers/user_sweeper.rb +17 -0
  216. data/lib/generators/freeberry/base/templates/views/layouts/application.html.erb +37 -0
  217. data/lib/generators/freeberry/base/templates/views/layouts/manage.html.erb +37 -0
  218. data/lib/generators/freeberry/base/templates/views/manage/assets/_collection.html.erb +36 -0
  219. data/lib/generators/freeberry/base/templates/views/manage/assets/_picture.html.erb +10 -0
  220. data/lib/generators/freeberry/base/templates/views/manage/assets/_swfscript.html.erb +59 -0
  221. data/lib/generators/freeberry/base/templates/views/manage/pages/_form.html.erb +9 -0
  222. data/lib/generators/freeberry/base/templates/views/manage/pages/edit.html.erb +14 -0
  223. data/lib/generators/freeberry/base/templates/views/manage/pages/new.html.erb +14 -0
  224. data/lib/generators/freeberry/base/templates/views/manage/posts/_form.html.erb +24 -0
  225. data/lib/generators/freeberry/base/templates/views/manage/posts/_model_filter.html.erb +29 -0
  226. data/lib/generators/freeberry/base/templates/views/manage/posts/_post.html.erb +31 -0
  227. data/lib/generators/freeberry/base/templates/views/manage/posts/edit.html.erb +14 -0
  228. data/lib/generators/freeberry/base/templates/views/manage/posts/index.html.erb +37 -0
  229. data/lib/generators/freeberry/base/templates/views/manage/posts/new.html.erb +14 -0
  230. data/lib/generators/freeberry/base/templates/views/manage/settings/_form.html.erb +22 -0
  231. data/lib/generators/freeberry/base/templates/views/manage/settings/index.html.erb +14 -0
  232. data/lib/generators/freeberry/base/templates/views/manage/structures/_form.html.erb +44 -0
  233. data/lib/generators/freeberry/base/templates/views/manage/structures/_structure.html.erb +35 -0
  234. data/lib/generators/freeberry/base/templates/views/manage/structures/edit.html.erb +14 -0
  235. data/lib/generators/freeberry/base/templates/views/manage/structures/index.html.erb +51 -0
  236. data/lib/generators/freeberry/base/templates/views/manage/structures/new.html.erb +14 -0
  237. data/lib/generators/freeberry/base/templates/views/manage/users/_form.html.erb +28 -0
  238. data/lib/generators/freeberry/base/templates/views/manage/users/_model_filter.html.erb +33 -0
  239. data/lib/generators/freeberry/base/templates/views/manage/users/_user.html.erb +55 -0
  240. data/lib/generators/freeberry/base/templates/views/manage/users/edit.html.erb +14 -0
  241. data/lib/generators/freeberry/base/templates/views/manage/users/index.html.erb +36 -0
  242. data/lib/generators/freeberry/base/templates/views/manage/users/new.html.erb +14 -0
  243. data/lib/generators/freeberry/base/templates/views/manage/users/show.html.erb +19 -0
  244. data/lib/generators/freeberry/base/templates/views/shared/_notice.html.erb +17 -0
  245. data/lib/generators/freeberry/base/templates/views/shared/manage/_head.html.erb +33 -0
  246. data/lib/generators/freeberry/base/templates/views/shared/manage/_locale.html.erb +8 -0
  247. data/lib/generators/freeberry/base/templates/views/shared/manage/_notice.html.erb +7 -0
  248. data/lib/generators/freeberry/base/templates/views/shared/manage/_panel.html.erb +34 -0
  249. data/lib/generators/freeberry/manage_scaffold/USAGE +6 -0
  250. data/lib/generators/freeberry/manage_scaffold/manage_scaffold_generator.rb +94 -0
  251. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/controller.rb +39 -0
  252. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/functional_test.rb +103 -0
  253. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/helper.rb +2 -0
  254. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/edit.html.erb +14 -0
  255. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/form.html.erb +26 -0
  256. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/index.html.erb +32 -0
  257. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/item.html.erb +27 -0
  258. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/model_filter.html.erb +31 -0
  259. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/new.html.erb +14 -0
  260. data/lib/generators/freeberry/manage_scaffold/templates/multiplay/views/show.html.erb +17 -0
  261. data/lib/generators/freeberry/manage_scaffold/templates/single/controller.rb +33 -0
  262. data/lib/generators/freeberry/manage_scaffold/templates/single/functional_test.rb +98 -0
  263. data/lib/generators/freeberry/manage_scaffold/templates/single/helper.rb +2 -0
  264. data/lib/generators/freeberry/manage_scaffold/templates/single/views/edit.html.erb +14 -0
  265. data/lib/generators/freeberry/manage_scaffold/templates/single/views/form.html.erb +26 -0
  266. data/lib/generators/freeberry/manage_scaffold/templates/single/views/index.html.erb +30 -0
  267. data/lib/generators/freeberry/manage_scaffold/templates/single/views/item.html.erb +27 -0
  268. data/lib/generators/freeberry/manage_scaffold/templates/single/views/model_filter.html.erb +31 -0
  269. data/lib/generators/freeberry/manage_scaffold/templates/single/views/new.html.erb +14 -0
  270. data/lib/generators/freeberry/manage_scaffold/templates/single/views/show.html.erb +17 -0
  271. data/lib/generators/freeberry/models/USAGE +11 -0
  272. data/lib/generators/freeberry/models/models_generator.rb +37 -0
  273. data/lib/generators/freeberry/models/templates/create_assets.rb +27 -0
  274. data/lib/generators/freeberry/models/templates/create_comments.rb +25 -0
  275. data/lib/generators/freeberry/models/templates/create_headers.rb +20 -0
  276. data/lib/generators/freeberry/models/templates/create_pages.rb +17 -0
  277. data/lib/generators/freeberry/models/templates/create_posts.rb +24 -0
  278. data/lib/generators/freeberry/models/templates/create_roles.rb +16 -0
  279. data/lib/generators/freeberry/models/templates/create_structures.rb +27 -0
  280. data/lib/generators/freeberry/models/templates/create_users.rb +28 -0
  281. data/lib/generators/freeberry/models/templates/models/asset.rb +3 -0
  282. data/lib/generators/freeberry/models/templates/models/attachment_file.rb +35 -0
  283. data/lib/generators/freeberry/models/templates/models/avatar.rb +38 -0
  284. data/lib/generators/freeberry/models/templates/models/comment.rb +17 -0
  285. data/lib/generators/freeberry/models/templates/models/header.rb +5 -0
  286. data/lib/generators/freeberry/models/templates/models/page.rb +5 -0
  287. data/lib/generators/freeberry/models/templates/models/picture.rb +35 -0
  288. data/lib/generators/freeberry/models/templates/models/position_type.rb +7 -0
  289. data/lib/generators/freeberry/models/templates/models/post.rb +7 -0
  290. data/lib/generators/freeberry/models/templates/models/role.rb +20 -0
  291. data/lib/generators/freeberry/models/templates/models/role_type.rb +8 -0
  292. data/lib/generators/freeberry/models/templates/models/structure.rb +9 -0
  293. data/lib/generators/freeberry/models/templates/models/structure_type.rb +9 -0
  294. data/lib/generators/freeberry/models/templates/models/user.rb +52 -0
  295. data/lib/tasks/freeberry.rake +6 -0
  296. data/test/freeberry_test.rb +8 -0
  297. data/test/test_helper.rb +3 -0
  298. metadata +365 -0
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 [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,118 @@
1
+ = Freeberry
2
+
3
+ Brainberry Content Managment System
4
+ For more instruction see {Wiki}[http://wiki.github.com/galetahub/freeberry].
5
+
6
+ == Install
7
+
8
+ === Dependents
9
+
10
+ In your Gemfile:
11
+
12
+ gem 'devise', '1.1.3'
13
+ gem 'paperclip', '2.3.3'
14
+ gem 'nokogiri', '1.4.3.1'
15
+ gem 'declarative_authorization', '0.5.1'
16
+ gem 'responders', '0.6.2'
17
+ gem 'inherited_resources', '1.1.2'
18
+ gem 'haddock', '0.2.2'
19
+ gem 'will_paginate', '2.3.15'
20
+ gem "mime-types", '1.16', :require => 'mime/types'
21
+
22
+ gem "ckeditor", :git => 'git://github.com/galetahub/rails-ckeditor.git', :branch => 'rails3'
23
+ gem "freeberry", :git => "git://github.com/galetahub/freeberry.git"
24
+
25
+ Bundler
26
+
27
+ bundle install --path vendor/bundle
28
+
29
+ Plugins:
30
+
31
+ rails plugin install git://github.com/galetahub/enum_field.git
32
+ rails plugin install git://github.com/galetahub/awesome_nested_set.git
33
+ rails plugin install git://github.com/galetahub/salty_slugs.git
34
+ rails plugin install git://github.com/galetahub/auto_html.git
35
+ rails plugin install git://github.com/galetahub/attach_file_field.git
36
+
37
+ === Generators
38
+
39
+ Plugin attach_file_field wants generate assets:
40
+ rails generate attach_file_field
41
+
42
+ Devise (http://github.com/plataformatec/devise)
43
+ rails generate devise:install
44
+
45
+ Ckeditor (http://github.com/galetahub/rails-ckeditor)
46
+ rails generate ckeditor:base
47
+ rails generate ckeditor:migration
48
+
49
+ Freeberry
50
+ rails generate freeberry:base
51
+ rails generate freeberry:models
52
+
53
+ === Configuration
54
+
55
+ Create yml files:
56
+ cp config/application.yml.sample config/application.yml
57
+ cp config/database.yml.sample config/database.yml
58
+
59
+ Create database and load seed data:
60
+ rake db:create
61
+ rake db:migrate
62
+ rake db:seed
63
+
64
+ In config/application.rb:
65
+ config.autoload_paths += %W( #{config.root}/app/models/defaults )
66
+
67
+ == Usage
68
+
69
+ === MysqlUtils
70
+
71
+ * database_exists?
72
+ * truncate_table
73
+ * disable_keys
74
+ * enable_keys
75
+ * with_keys_disabled
76
+
77
+ === Settingslogic
78
+
79
+ cass SystemSettings < Freeberry::Settingslogic
80
+ source Rails.root.join("config", "application.yml")
81
+ end
82
+
83
+ === Security
84
+
85
+ Freeberry by default protected all active record attributes for security with mass assignment.
86
+ To access protected attributes to be dynamic based on user permissions:
87
+
88
+ # models/article.rb
89
+ class Article < ActiveRecord::Base
90
+ attr_accessible :name, :content
91
+ end
92
+
93
+ # articles_controller.rb
94
+ def create
95
+ @article = Article.new
96
+ @article.accessible = :all if admin?
97
+ @article.attributes = params[:article]
98
+ if @article.save
99
+ flash[:notice] = "Successfully created article."
100
+ redirect_to @article
101
+ else
102
+ render :action => 'new'
103
+ end
104
+ end
105
+
106
+ === Generators
107
+
108
+ Manage scaffold:
109
+
110
+ rails generate freeberry:manage_scaffold ModelName
111
+
112
+ rails generate freeberry:manage_scaffold ModelName --parent=ParentModel
113
+
114
+ == Example
115
+
116
+ Example goes here.
117
+
118
+ Copyright (c) 2010 Brainberry, released under the MIT license
@@ -0,0 +1,53 @@
1
+ # encoding: utf-8
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
5
+ require File.join(File.dirname(__FILE__), 'lib', 'freeberry', 'version')
6
+
7
+ desc 'Default: run unit tests.'
8
+ task :default => :test
9
+
10
+ desc 'Test the freeberry plugin.'
11
+ Rake::TestTask.new(:test) do |t|
12
+ t.libs << 'lib'
13
+ t.libs << 'test'
14
+ t.pattern = 'test/**/*_test.rb'
15
+ t.verbose = true
16
+ end
17
+
18
+ desc 'Generate documentation for the freeberry plugin.'
19
+ Rake::RDocTask.new(:rdoc) do |rdoc|
20
+ rdoc.rdoc_dir = 'rdoc'
21
+ rdoc.title = 'Freeberry'
22
+ rdoc.options << '--line-numbers' << '--inline-source'
23
+ rdoc.rdoc_files.include('README')
24
+ rdoc.rdoc_files.include('lib/**/*.rb')
25
+ end
26
+
27
+ begin
28
+ require 'jeweler'
29
+ Jeweler::Tasks.new do |gemspec|
30
+ gemspec.name = "freeberry"
31
+ gemspec.version = Freeberry::Version.dup
32
+ gemspec.summary = "Rails CRM System"
33
+ gemspec.description = "Freeberry is a Brainberry CRM System"
34
+ gemspec.email = "galeta.igor@gmail.com"
35
+ gemspec.homepage = "https://github.com/galetahub/freeberry"
36
+ gemspec.authors = ["Igor Galeta", "Pavlo Galeta"]
37
+ gemspec.files = FileList["[A-Z]*", "{app,config,lib}/**/*"]
38
+ gemspec.rubyforge_project = "freeberry"
39
+
40
+ #gemspec.add_dependency('devise', '>= 1.1.3')
41
+ #gemspec.add_dependency('paperclip', '>= 2.3.3')
42
+ #gemspec.add_dependency('nokogiri', '>= 1.4.3.1')
43
+ #gemspec.add_dependency('declarative_authorization', '>= 0.5.1')
44
+ #gemspec.add_dependency('responders', '>= 0.6.2')
45
+ #gemspec.add_dependency('inherited_resources', '>= 1.1.2')
46
+ #gemspec.add_dependency('haddock', '>= 0.2.2')
47
+ #gemspec.add_dependency('will_paginate', '>= 2.3.15')
48
+ end
49
+
50
+ Jeweler::GemcutterTasks.new
51
+ rescue LoadError
52
+ puts "Jeweler not available. Install it with: gem install jeweler"
53
+ end
@@ -0,0 +1,60 @@
1
+ class Manage::AssetsController < Manage::BaseController
2
+ before_filter :find_klass, :only => [:create]
3
+ before_filter :find_asset, :only => [:destroy]
4
+
5
+ respond_to :html, :xml
6
+
7
+ # POST /manage/assets
8
+ def create
9
+ @asset ||= @klass.new(params[:asset])
10
+
11
+ @asset.assetable_type = params[:assetable_type]
12
+ @asset.assetable_id = params[:assetable_id] || 0
13
+ @asset.guid = params[:guid]
14
+ @asset.data = params[:data_file]
15
+ @asset.user = current_user
16
+ @asset.save
17
+
18
+ respond_with(@asset) do |format|
19
+ format.html { head :ok }
20
+ format.xml { render :xml => @asset.to_xml }
21
+ end
22
+ end
23
+
24
+ # DELETE /manage/assets/1
25
+ def destroy
26
+ @asset.destroy
27
+
28
+ respond_with(@asset) do |format|
29
+ format.html { head :ok }
30
+ end
31
+ end
32
+
33
+ protected
34
+
35
+ def find_asset
36
+ @asset = Asset.find(params[:id])
37
+ end
38
+
39
+ def find_klass
40
+ c_names = []
41
+ c_values = []
42
+
43
+ unless params[:assetable_id].blank?
44
+ c_names << "assetable_id = ?"
45
+ c_values << params[:assetable_id].to_i
46
+
47
+ c_names << "assetable_type = ?"
48
+ c_values << params[:assetable_type]
49
+ else
50
+ c_names << "guid = ?"
51
+ c_values << params[:guid]
52
+ end
53
+
54
+ @klass = params[:klass].blank? ? Asset : params[:klass].classify.constantize
55
+
56
+ if params[:collection].blank?
57
+ @asset = @klass.find(:first, :conditions=>[c_names.join(' AND ')] + c_values)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,9 @@
1
+ class Manage::BaseController < ApplicationController
2
+ layout "manage"
3
+
4
+ before_filter :authenticate_user!
5
+
6
+ filter_access_to :all
7
+
8
+ respond_to :html, :xml, :json
9
+ end
@@ -0,0 +1,36 @@
1
+ class Manage::PagesController < Manage::BaseController
2
+ before_filter :find_structure
3
+
4
+ cache_sweeper :page_sweeper, :only => [:create, :update, :destroy]
5
+
6
+ # GET /manage/structures/1/page/edit
7
+ def edit
8
+ @page = @structure.page || @structure.build_page(:title=>@structure.title)
9
+
10
+ respond_with(@page) do |format|
11
+ format.html { render :action => (@page.new_record? ? 'new' : 'edit') }
12
+ end
13
+ end
14
+
15
+ # POST /manage/structures/1/page
16
+ def create
17
+ @page = @structure.build_page(params[:page])
18
+ @page.save
19
+
20
+ respond_with(@page, :location => manage_structures_path)
21
+ end
22
+
23
+ # PUT /manage/structures/1/page
24
+ def update
25
+ @page = @structure.page
26
+ @page.update_attributes(params[:page])
27
+
28
+ respond_with(@page, :location => manage_structures_path)
29
+ end
30
+
31
+ protected
32
+
33
+ def find_structure
34
+ @structure = Structure.find(params[:structure_id])
35
+ end
36
+ end
@@ -0,0 +1,42 @@
1
+ class Manage::PostsController < Manage::BaseController
2
+ inherit_resources
3
+
4
+ belongs_to :structure
5
+
6
+ before_filter :make_filter, :only => [:index]
7
+
8
+ defaults :route_prefix => 'manage'
9
+ actions :all, :except => [:show]
10
+
11
+ cache_sweeper :post_sweeper, :only => [:create, :update, :destroy]
12
+
13
+ def create
14
+ create!{ manage_structure_posts_path(@structure.id) }
15
+ end
16
+
17
+ def update
18
+ update!{ manage_structure_posts_path(@structure.id) }
19
+ end
20
+
21
+ def destroy
22
+ destroy!{ manage_structure_posts_path(@structure.id) }
23
+ end
24
+
25
+ protected
26
+
27
+ def begin_of_association_chain
28
+ @structure
29
+ end
30
+
31
+ def collection
32
+ options = { :page => params[:page], :per_page => 20 }
33
+ options.update @search.filter
34
+
35
+ @posts ||= end_of_association_chain.paginate(options)
36
+ end
37
+
38
+ def make_filter
39
+ @search = Freeberry::ModelFilter.new(Post, :attributes=>[ :title, :kind ] )
40
+ @search.update_attributes(params[:search])
41
+ end
42
+ end
@@ -0,0 +1,22 @@
1
+ class Manage::SettingsController < Manage::BaseController
2
+ # GET /manage/settings
3
+ def index
4
+ end
5
+
6
+ # POST /manage/settings
7
+ def create
8
+ respond_to do |format|
9
+ if Freeberry::SystemSettings.update_settings(params[:settings])
10
+ flash[:notice] = I18n.t('flash.manage.settings.create.success')
11
+
12
+ format.html { redirect_to manage_settings_path }
13
+ format.xml { head :ok }
14
+ else
15
+ flash.now[:error] = I18n.t('flash.manage.settings.create.failure')
16
+
17
+ format.html { render :action => "index" }
18
+ format.xml { head :unprocessable_entity }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,42 @@
1
+ class Manage::StructuresController < Manage::BaseController
2
+ inherit_resources
3
+
4
+ before_filter :find_root, :only=>[:index]
5
+
6
+ defaults :route_prefix => 'manage'
7
+
8
+ filter_access_to :move, :require => :update
9
+
10
+ cache_sweeper :structure_sweeper, :only=>[:create, :update, :destroy, :move]
11
+
12
+ def create
13
+ create!{ manage_structures_path }
14
+ end
15
+
16
+ def update
17
+ update!{ manage_structures_path }
18
+ end
19
+
20
+ def destroy
21
+ destroy!{ manage_structures_path }
22
+ end
23
+
24
+ # POST /manage/structures/1/move
25
+ def move
26
+ @structure = Structure.find(params[:id])
27
+ @structure.move_by_direction(params[:direction])
28
+
29
+ respond_with(@structure, :location => manage_structures_path)
30
+ end
31
+
32
+ protected
33
+
34
+ def find_root
35
+ @structure ||= Structure.with_kind(StructureType.main).with_depth(0).find(:first)
36
+ @structure
37
+ end
38
+
39
+ def collection
40
+ @structures ||= end_of_association_chain.with_depth(1).find(:all)
41
+ end
42
+ end
@@ -0,0 +1,79 @@
1
+ class Manage::UsersController < Manage::BaseController
2
+ inherit_resources
3
+
4
+ before_filter :make_filter, :only=>[:index]
5
+ before_filter :check_params, :only => [:create, :update]
6
+ before_filter :find_user, :only=>[:update, :activate]
7
+
8
+ defaults :route_prefix => 'manage'
9
+
10
+ cache_sweeper :user_sweeper, :only=>[:update, :destroy]
11
+
12
+ def create
13
+ @user = User.new(params[:user])
14
+ @user.roles_attributes = @roles
15
+ create! { manage_users_path }
16
+ end
17
+
18
+ def update
19
+ @user.roles_attributes = @roles
20
+ update!{ manage_users_path }
21
+ end
22
+
23
+ def destroy
24
+ destroy!{ manage_users_path }
25
+ end
26
+
27
+ # POST /manage/users/1/activate
28
+ def activate
29
+ @user.confirm!
30
+ respond_with(@user, :location => manage_users_path)
31
+ end
32
+
33
+ # POST /manage/users/1/suspend
34
+ def suspend
35
+ @user.suspend!
36
+ respond_with(@user, :location => manage_users_path)
37
+ end
38
+
39
+ # POST /manage/users/1/unsuspend
40
+ def unsuspend
41
+ @user.unsuspend!
42
+ respond_with(@user, :location => manage_users_path)
43
+ end
44
+
45
+ # POST /manage/users/1/delete
46
+ def delete
47
+ @user.delete!
48
+ respond_with(@user, :location => manage_users_path)
49
+ end
50
+
51
+ protected
52
+
53
+ def collection
54
+ options = { :page => params[:page], :per_page => 20 }
55
+ options.update @search.filter
56
+
57
+ @users ||= end_of_association_chain.includes(:avatar).paginate(options)
58
+ end
59
+
60
+ def make_filter
61
+ @search = Freeberry::ModelFilter.new(User, :attributes=>[:name, :email])
62
+ @search.update_attributes(params[:search])
63
+ end
64
+
65
+ def check_params
66
+ unless params[:user].blank?
67
+ @roles = params[:user].delete(:roles_attributes)
68
+
69
+ if params[:user][:password].blank?
70
+ params[:user].delete(:password)
71
+ params[:user].delete(:password_confirmation)
72
+ end
73
+ end
74
+ end
75
+
76
+ def find_user
77
+ @user = User.find(params[:id])
78
+ end
79
+ end