typus 0.9.39 → 1.0.0.pre

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 (424) hide show
  1. data/CHANGELOG +104 -0
  2. data/Gemfile +17 -0
  3. data/Gemfile.lock +96 -0
  4. data/MIT-LICENSE +1 -1
  5. data/README.rdoc +45 -0
  6. data/Rakefile +19 -48
  7. data/app/controllers/admin/account_controller.rb +54 -0
  8. data/app/controllers/admin/dashboard_controller.rb +7 -0
  9. data/app/controllers/admin/resource_controller.rb +8 -0
  10. data/app/controllers/admin/resources_controller.rb +307 -0
  11. data/app/controllers/admin/session_controller.rb +38 -0
  12. data/app/controllers/admin_controller.rb +26 -0
  13. data/app/helpers/admin/dashboard_helper.rb +38 -0
  14. data/app/helpers/admin/filters_helper.rb +81 -0
  15. data/app/helpers/admin/form_helper.rb +68 -261
  16. data/app/helpers/admin/preview_helper.rb +48 -0
  17. data/app/helpers/admin/relationships_helper.rb +192 -0
  18. data/app/helpers/admin/resources_helper.rb +80 -0
  19. data/app/helpers/admin/search_helper.rb +19 -0
  20. data/app/helpers/admin/sidebar_helper.rb +32 -210
  21. data/app/helpers/admin/table_helper.rb +207 -200
  22. data/app/helpers/admin_helper.rb +56 -0
  23. data/app/mailers/admin/mailer.rb +13 -0
  24. data/app/models/admin/fake_user.rb +38 -0
  25. data/app/views/admin/account/forgot_password.html.erb +21 -0
  26. data/app/views/admin/account/new.html.erb +21 -0
  27. data/app/views/admin/dashboard/_sidebar.html.erb +3 -3
  28. data/app/views/admin/dashboard/show.html.erb +16 -0
  29. data/app/views/admin/dashboard/styles.html.erb +154 -0
  30. data/app/views/admin/helpers/_apps.html.erb +6 -0
  31. data/app/views/admin/helpers/_flash_message.html.erb +3 -0
  32. data/app/views/admin/helpers/_header.html.erb +7 -0
  33. data/app/views/admin/helpers/_login_info.html.erb +4 -0
  34. data/app/views/admin/helpers/_preview.html.erb +13 -0
  35. data/app/views/admin/helpers/dashboard/_applications.html.erb +32 -0
  36. data/app/views/admin/helpers/dashboard/_resources.html.erb +16 -0
  37. data/app/views/admin/helpers/filters/_filters.html.erb +31 -0
  38. data/app/views/admin/helpers/resources/_display_link_to_previous.html.erb +3 -0
  39. data/app/views/admin/helpers/resources/_pagination.html.erb +28 -0
  40. data/app/views/admin/helpers/search/_search.html.erb +12 -0
  41. data/app/views/admin/helpers/sidebar/_sidebar.html.erb +17 -0
  42. data/app/views/admin/helpers/table/_table.html.erb +22 -0
  43. data/app/views/{typus_mailer/reset_password_link.erb → admin/mailer/reset_password_link.text.erb} +2 -2
  44. data/{test/config/broken/empty.yml → app/views/admin/resources/_edit.html.erb} +0 -0
  45. data/app/views/admin/resources/_form.html.erb +26 -0
  46. data/{test/config/broken/empty_roles.yml → app/views/admin/resources/_index.html.erb} +0 -0
  47. data/{test/config/empty/empty_01.yml → app/views/admin/resources/_new.html.erb} +0 -0
  48. data/{test/config/empty/empty_01_roles.yml → app/views/admin/resources/_show.html.erb} +0 -0
  49. data/app/views/admin/resources/edit.html.erb +23 -21
  50. data/app/views/admin/resources/index.html.erb +31 -18
  51. data/app/views/admin/resources/new.html.erb +20 -18
  52. data/app/views/admin/resources/show.html.erb +29 -20
  53. data/app/views/admin/session/new.html.erb +26 -0
  54. data/app/views/admin/templates/_belongs_to.html.erb +4 -0
  55. data/app/views/admin/templates/_boolean.html.erb +4 -8
  56. data/app/views/admin/templates/_date.html.erb +9 -2
  57. data/app/views/admin/templates/_datetime.html.erb +9 -2
  58. data/app/views/admin/templates/_file.html.erb +20 -5
  59. data/app/views/admin/templates/_has_many.html.erb +24 -0
  60. data/app/views/admin/templates/_has_n.html.erb +17 -0
  61. data/{test/config/empty/empty_02.yml → app/views/admin/templates/_has_one.html.erb} +0 -0
  62. data/app/views/admin/templates/_password.html.erb +4 -2
  63. data/app/views/admin/templates/_relate_form.html.erb +4 -0
  64. data/app/views/admin/templates/_selector.html.erb +6 -18
  65. data/app/views/admin/templates/_string.html.erb +11 -10
  66. data/app/views/admin/templates/_text.html.erb +9 -2
  67. data/app/views/admin/templates/_time.html.erb +9 -2
  68. data/app/views/admin/templates/_tree.html.erb +4 -0
  69. data/app/views/layouts/admin/session.html.erb +44 -0
  70. data/app/views/layouts/admin.html.erb +45 -39
  71. data/config/available_locales/ca.yml +124 -0
  72. data/config/available_locales/ca_models.yml +16 -0
  73. data/config/{locales → available_locales}/de.yml +108 -89
  74. data/config/available_locales/de_models.yml +13 -0
  75. data/config/available_locales/es.yml +124 -0
  76. data/config/available_locales/es_models.yml +13 -0
  77. data/config/available_locales/fr.yml +124 -0
  78. data/config/available_locales/fr_models.yml +13 -0
  79. data/config/available_locales/hu.yml +124 -0
  80. data/config/available_locales/hu_models.yml +13 -0
  81. data/config/available_locales/it.yml +136 -0
  82. data/config/available_locales/it_models.yml +15 -0
  83. data/config/available_locales/language.yml.template +122 -0
  84. data/config/available_locales/language_models.yml.template +13 -0
  85. data/config/{locales → available_locales}/pt-BR.yml +97 -74
  86. data/config/available_locales/pt-BR_models.yml +13 -0
  87. data/config/{locales → available_locales}/ru.yml +107 -85
  88. data/config/available_locales/ru_models.yml +13 -0
  89. data/config/routes.rb +18 -11
  90. data/lib/generators/templates/config/initializers/typus.rb +26 -0
  91. data/lib/generators/templates/config/initializers/typus_authentication.rb +18 -0
  92. data/lib/generators/templates/config/initializers/typus_resources.rb +30 -0
  93. data/{generators/typus → lib/generators}/templates/config/typus/README +34 -16
  94. data/lib/generators/templates/config/typus/application.yml +5 -0
  95. data/lib/generators/templates/config/typus/application_roles.yml +6 -0
  96. data/lib/generators/templates/config/typus/typus.yml +17 -0
  97. data/lib/generators/templates/config/typus/typus_roles.yml +6 -0
  98. data/lib/generators/templates/controller.rb +4 -0
  99. data/lib/generators/templates/functional_test.rb +21 -0
  100. data/{generators/typus/templates/db/create_typus_users.rb → lib/generators/templates/migration.rb} +4 -4
  101. data/lib/generators/templates/model.rb +8 -0
  102. data/lib/generators/templates/model.yml +10 -0
  103. data/{generators/typus/templates/public/images/admin → lib/generators/templates/public/admin/images}/ui-icons.png +0 -0
  104. data/lib/generators/templates/public/admin/javascripts/application.js +6 -0
  105. data/lib/generators/templates/public/admin/javascripts/jquery-1.4.2.min.js +154 -0
  106. data/lib/generators/templates/public/admin/javascripts/jquery.rails.js +126 -0
  107. data/lib/generators/templates/public/admin/javascripts/jquery.searchField.js +91 -0
  108. data/lib/generators/templates/public/admin/stylesheets/application.css +11 -0
  109. data/lib/generators/templates/public/admin/stylesheets/screen.css +356 -0
  110. data/lib/generators/templates/public/admin/vendor/fancybox/blank.gif +0 -0
  111. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_close.png +0 -0
  112. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_loading.png +0 -0
  113. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_nav_left.png +0 -0
  114. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_nav_right.png +0 -0
  115. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_e.png +0 -0
  116. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_n.png +0 -0
  117. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_ne.png +0 -0
  118. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_nw.png +0 -0
  119. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_s.png +0 -0
  120. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_se.png +0 -0
  121. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_sw.png +0 -0
  122. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_w.png +0 -0
  123. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_title_left.png +0 -0
  124. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_title_main.png +0 -0
  125. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_title_over.png +0 -0
  126. data/{generators/typus/templates/public/images/admin → lib/generators/templates/public/admin/vendor}/fancybox/fancy_title_right.png +0 -0
  127. data/lib/generators/templates/public/admin/vendor/fancybox/fancybox-x.png +0 -0
  128. data/lib/generators/templates/public/admin/vendor/fancybox/fancybox-y.png +0 -0
  129. data/lib/generators/templates/public/admin/vendor/fancybox/fancybox.png +0 -0
  130. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.easing-1.3.pack.js +72 -0
  131. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.css +363 -0
  132. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.js +1077 -0
  133. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  134. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.mousewheel-3.0.2.pack.js +13 -0
  135. data/lib/generators/templates/view.html.erb +9 -0
  136. data/lib/generators/typus/migration_generator.rb +85 -0
  137. data/lib/generators/typus/typus_generator.rb +190 -0
  138. data/lib/generators/typus/views_generator.rb +27 -0
  139. data/lib/support/active_record.rb +60 -0
  140. data/lib/support/array.rb +13 -0
  141. data/lib/{typus → support}/hash.rb +2 -2
  142. data/lib/{typus → support}/object.rb +2 -2
  143. data/lib/support/string.rb +47 -0
  144. data/lib/tasks/typus.rake +19 -0
  145. data/lib/typus/authentication.rb +146 -40
  146. data/lib/typus/configuration.rb +14 -49
  147. data/lib/typus/engine.rb +6 -0
  148. data/lib/typus/format.rb +41 -18
  149. data/lib/typus/orm/active_record.rb +378 -0
  150. data/lib/typus/resources.rb +57 -0
  151. data/lib/typus/user.rb +54 -37
  152. data/lib/typus/version.rb +3 -0
  153. data/lib/typus.rb +118 -80
  154. data/lib/vendor/paginator.rb +2 -2
  155. data/test/factories/assets.rb +5 -0
  156. data/test/factories/categories.rb +3 -0
  157. data/test/factories/comments.rb +6 -0
  158. data/test/factories/pages.rb +5 -0
  159. data/test/factories/pictures.rb +7 -0
  160. data/test/factories/posts.rb +6 -0
  161. data/test/factories/typus_users.rb +8 -0
  162. data/test/{config → fixtures/config}/broken/application.yml +0 -0
  163. data/test/{config → fixtures/config}/broken/application_roles.yml +0 -0
  164. data/test/{config/empty/empty_02_roles.yml → fixtures/config/broken/empty.yml} +0 -0
  165. data/test/fixtures/config/broken/empty_roles.yml +0 -0
  166. data/test/{config → fixtures/config}/broken/undefined.yml +0 -0
  167. data/test/{config → fixtures/config}/broken/undefined_roles.yml +0 -0
  168. data/test/{config → fixtures/config}/default/typus.yml +2 -1
  169. data/{generators/typus/templates/config/typus → test/fixtures/config/default}/typus_roles.yml +0 -0
  170. data/test/fixtures/config/empty/empty_01.yml +0 -0
  171. data/test/fixtures/config/empty/empty_01_roles.yml +0 -0
  172. data/test/fixtures/config/empty/empty_02.yml +0 -0
  173. data/test/fixtures/config/empty/empty_02_roles.yml +0 -0
  174. data/test/{config → fixtures/config}/locales/es.yml +0 -0
  175. data/test/fixtures/config/namespaced/application.yml +5 -0
  176. data/test/fixtures/config/namespaced/application_roles.yml +2 -0
  177. data/test/{config → fixtures/config}/ordered/001_roles.yml +0 -0
  178. data/test/{config → fixtures/config}/ordered/002_roles.yml +0 -0
  179. data/test/{config → fixtures/config}/unordered/app_one_roles.yml +0 -0
  180. data/test/{config → fixtures/config}/unordered/app_two_roles.yml +0 -0
  181. data/test/fixtures/config/working/application.yml +73 -0
  182. data/test/fixtures/config/working/application_roles.yml +24 -0
  183. data/{generators/typus/templates/config/typus → test/fixtures/config/working}/typus.yml +2 -1
  184. data/test/{config/default → fixtures/config/working}/typus_roles.yml +0 -0
  185. data/test/fixtures/rails_app/README +244 -0
  186. data/test/fixtures/rails_app/Rakefile +7 -0
  187. data/test/fixtures/rails_app/app/controllers/admin/assets_controller.rb +2 -0
  188. data/test/fixtures/rails_app/app/controllers/admin/categories_controller.rb +2 -0
  189. data/test/fixtures/rails_app/app/controllers/admin/comments_controller.rb +2 -0
  190. data/test/fixtures/rails_app/app/controllers/admin/pages_controller.rb +2 -0
  191. data/test/fixtures/rails_app/app/controllers/admin/pictures_controller.rb +2 -0
  192. data/test/fixtures/rails_app/app/controllers/admin/posts_controller.rb +2 -0
  193. data/test/fixtures/rails_app/app/controllers/admin/status_controller.rb +2 -0
  194. data/test/fixtures/rails_app/app/controllers/admin/typus_users_controller.rb +2 -0
  195. data/test/fixtures/rails_app/app/controllers/admin/watch_dog_controller.rb +2 -0
  196. data/test/fixtures/rails_app/app/controllers/application_controller.rb +4 -0
  197. data/test/fixtures/rails_app/app/helpers/application_helper.rb +2 -0
  198. data/test/fixtures/{app → rails_app/app}/models/asset.rb +1 -1
  199. data/test/fixtures/{app → rails_app/app}/models/category.rb +2 -2
  200. data/test/fixtures/{app → rails_app/app}/models/comment.rb +1 -1
  201. data/test/fixtures/{app → rails_app/app}/models/custom_user.rb +1 -1
  202. data/test/fixtures/{app → rails_app/app}/models/delayed/task.rb +2 -2
  203. data/test/fixtures/rails_app/app/models/page.rb +9 -0
  204. data/test/fixtures/rails_app/app/models/picture.rb +6 -0
  205. data/test/fixtures/{app → rails_app/app}/models/post.rb +6 -6
  206. data/test/fixtures/rails_app/app/models/typus_user.rb +8 -0
  207. data/test/fixtures/{app → rails_app/app}/models/view.rb +1 -1
  208. data/test/fixtures/rails_app/app/views/admin/categories/_form.html.erb +1 -0
  209. data/test/fixtures/rails_app/app/views/admin/dashboard/_sidebar.html.erb +1 -0
  210. data/test/fixtures/rails_app/app/views/admin/mailer/reset_password_link.text.erb +6 -0
  211. data/test/fixtures/rails_app/app/views/admin/posts/_edit.html.erb +1 -0
  212. data/test/fixtures/rails_app/app/views/admin/posts/_index.html.erb +1 -0
  213. data/test/fixtures/rails_app/app/views/admin/posts/_new.html.erb +1 -0
  214. data/test/fixtures/rails_app/app/views/admin/posts/_show.html.erb +1 -0
  215. data/test/fixtures/rails_app/app/views/admin/posts/_sidebar.html.erb +1 -0
  216. data/test/fixtures/rails_app/app/views/admin/resources/_sidebar.html.erb +1 -0
  217. data/test/fixtures/rails_app/app/views/admin/status/index.html.erb +1 -0
  218. data/test/fixtures/rails_app/app/views/admin/templates/_datepicker.html.erb +1 -0
  219. data/test/fixtures/rails_app/app/views/layouts/application.html.erb +14 -0
  220. data/test/fixtures/rails_app/config/application.rb +50 -0
  221. data/test/fixtures/rails_app/config/boot.rb +13 -0
  222. data/test/fixtures/rails_app/config/database.yml +22 -0
  223. data/test/fixtures/rails_app/config/environment.rb +5 -0
  224. data/test/fixtures/rails_app/config/environments/development.rb +19 -0
  225. data/test/fixtures/rails_app/config/environments/production.rb +42 -0
  226. data/test/fixtures/rails_app/config/environments/test.rb +34 -0
  227. data/test/fixtures/rails_app/config/initializers/acts_as_list.rb +258 -0
  228. data/test/fixtures/rails_app/config/initializers/acts_as_tree.rb +98 -0
  229. data/test/fixtures/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  230. data/test/fixtures/rails_app/config/initializers/inflections.rb +10 -0
  231. data/test/fixtures/rails_app/config/initializers/mime_types.rb +5 -0
  232. data/test/fixtures/rails_app/config/initializers/secret_token.rb +7 -0
  233. data/test/fixtures/rails_app/config/initializers/session_store.rb +8 -0
  234. data/test/fixtures/rails_app/config/initializers/typus.rb +6 -0
  235. data/test/fixtures/rails_app/config/locales/en.yml +5 -0
  236. data/test/fixtures/rails_app/config/routes.rb +8 -0
  237. data/test/{config/working → fixtures/rails_app/config/typus}/application.yml +11 -9
  238. data/test/{config/working → fixtures/rails_app/config/typus}/application_roles.yml +0 -0
  239. data/{generators/typus_update_schema_to_01/templates/config → test/fixtures/rails_app/config/typus}/typus.yml +0 -0
  240. data/test/{config/working → fixtures/rails_app/config/typus}/typus_roles.yml +0 -0
  241. data/test/fixtures/rails_app/config.ru +4 -0
  242. data/test/fixtures/rails_app/db/seeds.rb +7 -0
  243. data/test/fixtures/rails_app/db/test.sqlite3 +0 -0
  244. data/test/fixtures/rails_app/log/test.log +4268 -0
  245. data/test/fixtures/rails_app/public/404.html +26 -0
  246. data/test/fixtures/rails_app/public/422.html +26 -0
  247. data/test/fixtures/rails_app/public/500.html +26 -0
  248. data/test/fixtures/rails_app/public/favicon.ico +0 -0
  249. data/test/fixtures/rails_app/public/images/rails.png +0 -0
  250. data/test/fixtures/rails_app/public/index.html +279 -0
  251. data/test/fixtures/rails_app/public/javascripts/application.js +2 -0
  252. data/test/fixtures/rails_app/public/javascripts/controls.js +965 -0
  253. data/test/fixtures/rails_app/public/javascripts/dragdrop.js +974 -0
  254. data/test/fixtures/rails_app/public/javascripts/effects.js +1123 -0
  255. data/test/fixtures/rails_app/public/javascripts/prototype.js +4874 -0
  256. data/test/fixtures/rails_app/public/javascripts/rails.js +118 -0
  257. data/test/fixtures/rails_app/public/robots.txt +5 -0
  258. data/test/fixtures/rails_app/script/rails +9 -0
  259. data/test/fixtures/rails_app/tmp/export-posts-20100902120447.csv +2 -0
  260. data/test/fixtures/rails_app/tmp/export-posts-20100902120700.csv +2 -0
  261. data/test/functional/admin/account_controller_test.rb +90 -0
  262. data/test/functional/admin/dashboard_controller_http_basic_test.rb +24 -0
  263. data/test/functional/admin/dashboard_controller_none_test.rb +18 -0
  264. data/test/functional/admin/dashboard_controller_test.rb +106 -0
  265. data/test/functional/admin/resources_controller_assets_relationships.rb +59 -0
  266. data/test/functional/admin/resources_controller_categories_before_test.rb +10 -0
  267. data/test/functional/admin/resources_controller_categories_lists_test.rb +44 -0
  268. data/test/functional/admin/resources_controller_categories_views_test.rb +10 -0
  269. data/test/functional/admin/resources_controller_comments_toggle_test.rb +21 -0
  270. data/test/functional/admin/{master_controller_posts_before_test.rb → resources_controller_posts_before_test.rb} +3 -3
  271. data/test/functional/admin/resources_controller_posts_crud_custom_test.rb +27 -0
  272. data/test/functional/admin/resources_controller_posts_crud_test.rb +44 -0
  273. data/test/functional/admin/resources_controller_posts_formats_test.rb +39 -0
  274. data/test/functional/admin/resources_controller_posts_forms_test.rb +58 -0
  275. data/test/functional/admin/resources_controller_posts_permissions_test.rb +100 -0
  276. data/test/functional/admin/{master_controller_posts_relationships_test.rb → resources_controller_posts_relationships_test.rb} +25 -20
  277. data/test/functional/admin/resources_controller_posts_roles.rb +52 -0
  278. data/test/functional/admin/resources_controller_posts_views_test.rb +143 -0
  279. data/test/functional/admin/resources_controller_tableless_resource_test.rb +51 -0
  280. data/test/functional/admin/resources_controller_typus_users_test.rb +159 -0
  281. data/test/functional/admin/session_controller_test.rb +85 -0
  282. data/test/helpers/admin/dashboard_helper_test.rb +42 -0
  283. data/test/helpers/admin/form_helper_test.rb +52 -276
  284. data/test/helpers/admin/resources_helper_test.rb +52 -0
  285. data/test/helpers/admin/sidebar_helper_test.rb +133 -224
  286. data/test/helpers/admin/table_helper_test.rb +136 -144
  287. data/test/helpers/admin_helper_test.rb +69 -0
  288. data/test/lib/support/active_record_test.rb +35 -0
  289. data/test/lib/support/array_test.rb +15 -0
  290. data/test/lib/support/hash_test.rb +11 -0
  291. data/test/lib/support/string_test.rb +48 -0
  292. data/test/lib/typus/active_record_test.rb +385 -0
  293. data/test/lib/typus/configuration_test.rb +52 -0
  294. data/test/lib/typus/resource_test.rb +17 -0
  295. data/test/lib/typus/routes_test.rb +29 -0
  296. data/test/lib/typus_test.rb +72 -40
  297. data/test/{vendor → lib/vendor}/paginator_test.rb +7 -4
  298. data/test/schema.rb +28 -3
  299. data/test/test_helper.rb +29 -0
  300. data/test/unit/admin/mailer_test.rb +32 -0
  301. data/test/unit/typus_user_roles_test.rb +69 -61
  302. data/test/unit/typus_user_test.rb +56 -143
  303. data/typus.gemspec +18 -276
  304. metadata +305 -231
  305. data/.gitignore +0 -1
  306. data/AUTHORS.md +0 -34
  307. data/CHANGES +0 -3
  308. data/README.md +0 -75
  309. data/VERSION +0 -1
  310. data/app/controllers/admin/master_controller.rb +0 -394
  311. data/app/controllers/typus_controller.rb +0 -152
  312. data/app/helpers/admin/master_helper.rb +0 -104
  313. data/app/helpers/admin/public_helper.rb +0 -27
  314. data/app/helpers/typus_helper.rb +0 -181
  315. data/app/models/typus_mailer.rb +0 -14
  316. data/app/models/typus_user.rb +0 -5
  317. data/app/views/admin/shared/_feedback.html.erb +0 -6
  318. data/app/views/admin/shared/_footer.html.erb +0 -2
  319. data/app/views/admin/shared/_pagination.html.erb +0 -28
  320. data/app/views/admin/templates/_tiny_mce.html.erb +0 -2
  321. data/app/views/layouts/typus.html.erb +0 -29
  322. data/app/views/typus/dashboard.html.erb +0 -9
  323. data/app/views/typus/recover_password.html.erb +0 -7
  324. data/app/views/typus/reset_password.html.erb +0 -15
  325. data/app/views/typus/sign_in.html.erb +0 -9
  326. data/app/views/typus/sign_up.html.erb +0 -7
  327. data/config/locales/es.yml +0 -105
  328. data/config/locales/fr.yml +0 -98
  329. data/config/locales/language.yml.template +0 -106
  330. data/generators/typus/templates/auto/index.html.erb +0 -11
  331. data/generators/typus/templates/auto/resource_controller.rb.erb +0 -15
  332. data/generators/typus/templates/auto/resource_controller_test.rb.erb +0 -11
  333. data/generators/typus/templates/auto/resources_controller.rb.erb +0 -37
  334. data/generators/typus/templates/config/initializers/typus.rb +0 -34
  335. data/generators/typus/templates/config/typus/application.yml +0 -6
  336. data/generators/typus/templates/config/typus/application_roles.yml +0 -23
  337. data/generators/typus/templates/lib/tasks/typus_tasks.rake +0 -32
  338. data/generators/typus/templates/public/images/admin/fancybox/fancy_closebox.png +0 -0
  339. data/generators/typus/templates/public/images/admin/fancybox/fancy_left.png +0 -0
  340. data/generators/typus/templates/public/images/admin/fancybox/fancy_progress.png +0 -0
  341. data/generators/typus/templates/public/images/admin/fancybox/fancy_right.png +0 -0
  342. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_e.png +0 -0
  343. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_n.png +0 -0
  344. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_ne.png +0 -0
  345. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_nw.png +0 -0
  346. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_s.png +0 -0
  347. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_se.png +0 -0
  348. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_sw.png +0 -0
  349. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_w.png +0 -0
  350. data/generators/typus/templates/public/images/admin/fancybox/fancy_title_left.png +0 -0
  351. data/generators/typus/templates/public/images/admin/fancybox/fancy_title_main.png +0 -0
  352. data/generators/typus/templates/public/javascripts/admin/application.js +0 -14
  353. data/generators/typus/templates/public/javascripts/admin/jquery-1.3.2.min.js +0 -19
  354. data/generators/typus/templates/public/javascripts/admin/jquery.fancybox-1.2.1.min.js +0 -9
  355. data/generators/typus/templates/public/stylesheets/admin/jquery.fancybox.css +0 -315
  356. data/generators/typus/templates/public/stylesheets/admin/reset.css +0 -68
  357. data/generators/typus/templates/public/stylesheets/admin/screen.css +0 -361
  358. data/generators/typus/typus_generator.rb +0 -191
  359. data/generators/typus_update_schema_to_01/templates/migration.rb +0 -11
  360. data/generators/typus_update_schema_to_01/typus_update_schema_to_01_generator.rb +0 -19
  361. data/generators/typus_update_schema_to_02/templates/migration.rb +0 -11
  362. data/generators/typus_update_schema_to_02/typus_update_schema_to_02_generator.rb +0 -11
  363. data/lib/typus/active_record.rb +0 -323
  364. data/lib/typus/extensions/routes.rb +0 -15
  365. data/lib/typus/extensions/routes_hack.rb +0 -15
  366. data/lib/typus/preferences.rb +0 -11
  367. data/lib/typus/preview.rb +0 -76
  368. data/lib/typus/quick_edit.rb +0 -40
  369. data/lib/typus/reloader.rb +0 -14
  370. data/lib/typus/string.rb +0 -27
  371. data/lib/vendor/active_record.rb +0 -15
  372. data/lib/vendor/rss_parser.rb +0 -20
  373. data/rails/init.rb +0 -3
  374. data/tasks/typus_tasks.rake +0 -32
  375. data/test/config/working/typus.yml +0 -12
  376. data/test/fixtures/app/controllers/admin/assets_controller.rb +0 -2
  377. data/test/fixtures/app/controllers/admin/categories_controller.rb +0 -2
  378. data/test/fixtures/app/controllers/admin/comments_controller.rb +0 -2
  379. data/test/fixtures/app/controllers/admin/pages_controller.rb +0 -2
  380. data/test/fixtures/app/controllers/admin/posts_controller.rb +0 -2
  381. data/test/fixtures/app/controllers/admin/status_controller.rb +0 -6
  382. data/test/fixtures/app/controllers/admin/typus_users_controller.rb +0 -2
  383. data/test/fixtures/app/controllers/admin/watch_dog_controller.rb +0 -6
  384. data/test/fixtures/app/models/page.rb +0 -5
  385. data/test/fixtures/app/views/admin/dashboard/_content.html.erb +0 -1
  386. data/test/fixtures/app/views/admin/dashboard/_sidebar.html.erb +0 -1
  387. data/test/fixtures/app/views/admin/posts/_edit.html.erb +0 -1
  388. data/test/fixtures/app/views/admin/posts/_index.html.erb +0 -1
  389. data/test/fixtures/app/views/admin/posts/_new.html.erb +0 -1
  390. data/test/fixtures/app/views/admin/posts/_show.html.erb +0 -1
  391. data/test/fixtures/app/views/admin/posts/_sidebar.html.erb +0 -1
  392. data/test/fixtures/app/views/admin/resources/_sidebar.html.erb +0 -1
  393. data/test/fixtures/app/views/admin/shared/_footer.html.erb +0 -1
  394. data/test/fixtures/app/views/admin/status/index.html.erb +0 -1
  395. data/test/fixtures/app/views/admin/templates/_datepicker.html.erb +0 -1
  396. data/test/fixtures/assets.yml +0 -11
  397. data/test/fixtures/categories.yml +0 -14
  398. data/test/fixtures/comments.yml +0 -27
  399. data/test/fixtures/pages.yml +0 -41
  400. data/test/fixtures/posts.yml +0 -37
  401. data/test/fixtures/typus_users.yml +0 -59
  402. data/test/functional/admin/master_controller_assets_relationships.rb +0 -66
  403. data/test/functional/admin/master_controller_categories_lists_test.rb +0 -64
  404. data/test/functional/admin/master_controller_posts_crud_test.rb +0 -97
  405. data/test/functional/admin/master_controller_posts_formats_test.rb +0 -53
  406. data/test/functional/admin/master_controller_posts_permissions_test.rb +0 -127
  407. data/test/functional/admin/master_controller_posts_roles.rb +0 -50
  408. data/test/functional/admin/master_controller_posts_toggle_test.rb +0 -35
  409. data/test/functional/admin/master_controller_posts_views_test.rb +0 -209
  410. data/test/functional/admin/master_controller_tableless_resource_test.rb +0 -36
  411. data/test/functional/admin/master_controller_typus_users_test.rb +0 -211
  412. data/test/functional/typus_controller_test.rb +0 -342
  413. data/test/helper.rb +0 -51
  414. data/test/helpers/admin/master_helper_test.rb +0 -70
  415. data/test/helpers/admin/public_helper_test.rb +0 -26
  416. data/test/helpers/typus_helper_test.rb +0 -96
  417. data/test/lib/active_record_test.rb +0 -377
  418. data/test/lib/configuration_test.rb +0 -95
  419. data/test/lib/hash_test.rb +0 -11
  420. data/test/lib/routes_test.rb +0 -71
  421. data/test/lib/string_test.rb +0 -55
  422. data/test/unit/typus_mailer_test.rb +0 -29
  423. data/test/unit/typus_test.rb +0 -17
  424. data/test/vendor/active_record_test.rb +0 -18
data/AUTHORS.md DELETED
@@ -1,34 +0,0 @@
1
- Typus was designed & developed by Francesc Esplugas (fesplugas).
2
-
3
- Special thanks to the following individuals:
4
-
5
- * [Laia Gargallo](http://azotacalles.net): Lover & tea provider.
6
- * [Isaac Feliu](http://www.vesne.com): Code review on first public release.
7
- * [Lluis Folch](http://wet-floor.com): Feedback.
8
- * [Sergio Espeja](http://github.com/spejman): Code.
9
- * [Eadz](http://github.com/eadz): Code.
10
- * [Anthony Underwood](http://github.com/aunderwo): Code.
11
- * [Felipe Talavera](http://github.com/flype): Spanish translation & code.
12
- * [Erik Tigerholm](http://github.com/eriktigerholm): Code.
13
- * [George Guimarães](http://github.com/georgeguimaraes): Portuguese translation & code)
14
- * [José Valim](http://github.com/josevalim): Code.
15
- * [Luqman Amjad](http://github.com/luqman): Code.
16
- * [Alexey Noskov](http://github.com/alno) Russian translation & code.
17
- * [Andres Gutierres](http://github.com/andresgutgon): Bugfixes & feedback.
18
- * [Komzák Nándor](http://github.com/rubymood): Code, bugfixes & feedback.
19
- * [Michael Grunewalder](http://michael.grunewalder.com) : German translation.
20
- * [Tim Harvey](http://www.timharvey.net): Code.
21
- * [Ned Baldessin](http://github.com/nedbaldessin) : French translation & code.
22
- * Robert Rouse: Ruby 1.9 compatibility fixes.
23
- * [Rytis Lukoseviciu](http://rytis.net): Code.
24
- * [WesEd Interactive](http://www.wested.org/): Code.
25
-
26
- Somehow involved in the project
27
-
28
- * [Yukihiro "matz" Matsumoto](http://www.rubyist.net/~matz/) creator of
29
- [Ruby](http://ruby-lang.org/) the most beautiful programming language I've ever seen.
30
- * [David Heinemeier Hansson](http://loudthinking.com/) for creating
31
- [Ruby on Rails](http://rubyonrails.org/).
32
- * [Django Admin](http://www.djangoproject.com) who inspired part of the
33
- development, in special the templates rendering & UI.
34
- * [Paginator](http://github.com/bruce/paginator) by [Bruce Williams](http://codefluency.com).
data/CHANGES DELETED
@@ -1,3 +0,0 @@
1
- = 0.9.39 / 2009-??-??
2
-
3
- * ...
data/README.md DELETED
@@ -1,75 +0,0 @@
1
- # Typus: Admin interface for Rails applications
2
-
3
- **Typus** is designed for a single activity:
4
-
5
- Trusted users editing structured content.
6
-
7
- **Typus** doesn't try to be all the things to all the people but it's
8
- extensible enough to match lots of use cases.
9
-
10
- ## Key Features
11
-
12
- - Access control by users and roles.
13
- - CRUD and custom actions for your models on a clean interface.
14
- - Internationalized.
15
- - Extensible and overwritable templates.
16
- - Low memory footprint.
17
- - Released under the MIT License.
18
-
19
- ## Links
20
-
21
- - [Project site and documentation](http://intraducibles.com/projects/typus)
22
- - [Plugin source](http://github.com/fesplugas/typus)
23
- - [Mailing list](http://groups.google.com/group/typus)
24
- - [Bug reports](http://github.com/fesplugas/typus/issues)
25
- - [Gems](http://gemcutter.org/gems/typus)
26
-
27
- ## Impatients to see it working?
28
-
29
- **Step 1:** Create a Rails application using a template.
30
-
31
- $ rails example.com -m http://tr.im/typus_example
32
-
33
- **Step 2:** Start the server.
34
-
35
- $ cd example.com && script/server
36
-
37
- **Step 3:** Go to the admin area (<http://0.0.0.0:3000/admin>) and enjoy it!
38
-
39
-
40
- ## Want to see a demo working?
41
-
42
- Demo application is hosted at Heroku (<http://typus.heroku.com/>).
43
-
44
- Use the following credentials to log in.
45
-
46
- Email: userdemo@intraducibles.com
47
- Password: userdemo
48
-
49
- ## Installing
50
-
51
- Install from GitHub the latest version which it's compatible with Rails 2.3.4.
52
-
53
- $ script/plugin install git://github.com/fesplugas/typus.git
54
-
55
- Once `typus` is installed, run the generator to create required files and migrate your
56
- database. (<tt>typus_users</tt> table is created)
57
-
58
- $ script/generate typus
59
- $ rake db:migrate
60
-
61
- To create the first user, start the application server, go to
62
- http://0.0.0.0:3000/admin and follow the instructions.
63
-
64
- ## Support
65
-
66
- As an experiment we encourage you to support this project by
67
- [donating][1] 90 &euro; if you are a developer or studio. Donations do
68
- allow us to spend more time working and supporting the project.
69
-
70
- ## License
71
-
72
- Copyright &copy; 2007-2009 Francesc Esplugas Marti, released under the
73
- MIT license
74
-
75
- [1]:http://intraducibles.com/projects/typus/donate
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.9.39
@@ -1,394 +0,0 @@
1
- class Admin::MasterController < ApplicationController
2
-
3
- skip_filter filter_chain
4
-
5
- unloadable
6
-
7
- layout 'admin'
8
-
9
- include Typus::Authentication
10
- include Typus::Format
11
- include Typus::Preferences
12
- include Typus::Reloader
13
-
14
- if Typus::Configuration.options[:ssl]
15
- include SslRequirement
16
- ssl_required :index, :new, :create, :edit, :show, :update, :destroy, :toggle, :position, :relate, :unrelate
17
- end
18
-
19
- filter_parameter_logging :password
20
-
21
- before_filter :reload_config_et_roles
22
-
23
- before_filter :require_login
24
-
25
- before_filter :set_typus_preferences
26
-
27
- before_filter :set_resource
28
- before_filter :find_item,
29
- :only => [ :show, :edit, :update, :destroy, :toggle, :position, :relate, :unrelate ]
30
-
31
- before_filter :check_ownership_of_item,
32
- :only => [ :edit, :update, :destroy, :toggle, :position, :relate, :unrelate ]
33
-
34
- before_filter :check_if_user_can_perform_action_on_user,
35
- :only => [ :edit, :update, :toggle, :destroy ]
36
- before_filter :check_if_user_can_perform_action_on_resource
37
-
38
- before_filter :set_order,
39
- :only => [ :index ]
40
- before_filter :set_fields,
41
- :only => [ :index, :new, :edit, :create, :update, :show ]
42
-
43
- before_filter :set_tiny_mce,
44
- :only => [ :new, :edit, :create, :update ]
45
-
46
- ##
47
- # This is the main index of the model. With filters, conditions
48
- # and more.
49
- #
50
- # By default application can respond_to html, csv and xml, but you
51
- # can add your formats.
52
- #
53
- def index
54
-
55
- @conditions, @joins = @resource[:class].build_conditions(params)
56
-
57
- check_ownership_of_items if @resource[:class].typus_options_for(:only_user_items)
58
-
59
- respond_to do |format|
60
- format.html { generate_html }
61
- @resource[:class].typus_export_formats.each do |f|
62
- format.send(f) { send("generate_#{f}") }
63
- end
64
- end
65
-
66
- rescue Exception => error
67
- error_handler(error)
68
- end
69
-
70
- def new
71
-
72
- check_ownership_of_referal_item
73
-
74
- item_params = params.dup
75
- %w( controller action resource resource_id back_to selected ).each do |param|
76
- item_params.delete(param)
77
- end
78
-
79
- @item = @resource[:class].new(item_params.symbolize_keys)
80
-
81
- select_template :new
82
-
83
- end
84
-
85
- ##
86
- # Create new items. There's an special case when we create an
87
- # item from another item. In this case, after the item is
88
- # created we also create the relationship between these items.
89
- #
90
- def create
91
-
92
- @item = @resource[:class].new(params[:item])
93
-
94
- if @resource[:class].typus_user_id?
95
- @item.attributes = { Typus.user_fk => @current_user.id }
96
- end
97
-
98
- if @item.valid?
99
- create_with_back_to and return if params[:back_to]
100
- @item.save
101
- flash[:success] = _("{{model}} successfully created.", :model => @resource[:human_name])
102
- if @resource[:class].typus_options_for(:index_after_save)
103
- redirect_to :action => 'index'
104
- else
105
- redirect_to :action => @resource[:class].typus_options_for(:default_action_on_item), :id => @item.id
106
- end
107
- else
108
- select_template :new
109
- end
110
-
111
- end
112
-
113
- def edit
114
-
115
- item_params = params.dup
116
- %w( action controller model model_id back_to id resource resource_id page ).each { |p| item_params.delete(p) }
117
-
118
- # We assign the params passed trough the url
119
- @item.attributes = item_params
120
-
121
- item_params.merge!(set_conditions)
122
- @previous, @next = @item.previous_and_next(item_params)
123
-
124
- select_template :edit
125
-
126
- end
127
-
128
- def show
129
-
130
- check_ownership_of_item and return if @resource[:class].typus_options_for(:only_user_items)
131
-
132
- @previous, @next = @item.previous_and_next(set_conditions)
133
-
134
- respond_to do |format|
135
- format.html { select_template :show }
136
- format.xml do
137
- fields = @resource[:class].typus_fields_for(:xml).collect { |i| i.first }
138
- render :xml => @item.to_xml(:only => fields)
139
- end
140
- end
141
-
142
- end
143
-
144
- def update
145
-
146
- if @item.update_attributes(params[:item])
147
-
148
- if @resource[:class].typus_user_id? && !@current_user.is_root?
149
- @item.update_attributes Typus.user_fk => @current_user.id
150
- end
151
-
152
- flash[:success] = _("{{model}} successfully updated.", :model => @resource[:human_name])
153
- path = if @resource[:class].typus_options_for(:index_after_save)
154
- params[:back_to] ? "#{params[:back_to]}##{@resource[:self]}" : { :action => 'index' }
155
- else
156
- { :action => @resource[:class].typus_options_for(:default_action_on_item), :id => @item.id, :back_to => params[:back_to] }
157
- end
158
- redirect_to path
159
-
160
- else
161
-
162
- @previous, @next = @item.previous_and_next
163
- select_template :edit
164
-
165
- end
166
-
167
- end
168
-
169
- def destroy
170
- @item.destroy
171
- flash[:success] = _("{{model}} successfully removed.", :model => @resource[:human_name])
172
- redirect_to request.referer || admin_dashboard_path
173
- rescue Exception => error
174
- error_handler(error, params.merge(:action => 'index', :id => nil))
175
- end
176
-
177
- def toggle
178
- if @resource[:class].typus_options_for(:toggle)
179
- @item.toggle!(params[:field])
180
- flash[:success] = _("{{model}} {{attribute}} changed.",
181
- :model => @resource[:human_name],
182
- :attribute => params[:field].humanize.downcase)
183
- else
184
- flash[:notice] = _("Toggle is disabled.")
185
- end
186
- redirect_to request.referer || admin_dashboard_path
187
- end
188
-
189
- ##
190
- # Change item position. This only works if acts_as_list is
191
- # installed. We can then move items:
192
- #
193
- # params[:go] = 'move_to_top'
194
- #
195
- # Available positions are move_to_top, move_higher, move_lower,
196
- # move_to_bottom.
197
- #
198
- def position
199
- @item.send(params[:go])
200
- flash[:success] = _("Record moved {{to}}.", :to => params[:go].gsub(/move_/, '').humanize.downcase)
201
- redirect_to request.referer || admin_dashboard_path
202
- end
203
-
204
- ##
205
- # Relate a model object to another, this action is used only by the
206
- # has_and_belongs_to_many and has_many relationships.
207
- #
208
- def relate
209
-
210
- resource_class = params[:related][:model].constantize
211
- resource_tableized = params[:related][:model].tableize
212
-
213
- @item.send(resource_tableized) << resource_class.find(params[:related][:id])
214
-
215
- flash[:success] = _("{{model_a}} related to {{model_b}}.",
216
- :model_a => resource_class.typus_human_name,
217
- :model_b => @resource[:human_name])
218
-
219
- redirect_to :back
220
-
221
- end
222
-
223
- ##
224
- # Remove relationship between models, this action never removes items!
225
- #
226
- def unrelate
227
-
228
- resource_class = params[:resource].classify.constantize
229
- resource = resource_class.find(params[:resource_id])
230
-
231
- if @resource[:class].
232
- reflect_on_association(resource_class.table_name.singularize.to_sym).
233
- try(:macro) == :has_one
234
- attribute = resource_class.table_name.singularize
235
- @item.update_attribute attribute, nil
236
- else
237
- attribute = resource_class.table_name
238
- @item.send(attribute).delete(resource)
239
- end
240
-
241
- flash[:success] = _("{{model_a}} unrelated from {{model_b}}.",
242
- :model_a => resource_class.typus_human_name,
243
- :model_b => @resource[:human_name])
244
-
245
- redirect_to :back
246
-
247
- end
248
-
249
- private
250
-
251
- def set_resource
252
- @resource = { :self => params[:controller].extract_resource,
253
- :human_name => params[:controller].extract_human_name,
254
- :class => params[:controller].extract_class }
255
- rescue Exception => error
256
- error_handler(error)
257
- end
258
-
259
- ##
260
- # Find model when performing an edit, update, destroy, relate,
261
- # unrelate ...
262
- #
263
- def find_item
264
- @item = @resource[:class].find(params[:id])
265
- end
266
-
267
- ##
268
- # If item is owned by another user, we only can perform a
269
- # show action on the item. Updated item is also blocked.
270
- #
271
- # before_filter :check_ownership_of_item, :only => [ :edit, :update, :destroy,
272
- # :toggle, :position,
273
- # :relate, :unrelate ]
274
- #
275
- def check_ownership_of_item
276
-
277
- # By-pass if current_user is root.
278
- return if @current_user.is_root?
279
-
280
- condition_typus_users = @item.respond_to?(Typus.relationship) && !@item.send(Typus.relationship).include?(@current_user)
281
- condition_typus_user_id = @item.respond_to?(Typus.user_fk) && !@item.owned_by?(@current_user)
282
-
283
- if condition_typus_users || condition_typus_user_id
284
- flash[:notice] = _("You don't have permission to access this item.")
285
- redirect_to request.referer || admin_dashboard_path
286
- end
287
-
288
- end
289
-
290
- def check_ownership_of_items
291
-
292
- # By-pass if current_user is root.
293
- return if @current_user.is_root?
294
-
295
- # Show only related items it @resource has a foreign_key (Typus.user_fk)
296
- # related to the logged user.
297
- if @resource[:class].typus_user_id?
298
- condition = { Typus.user_fk => @current_user }
299
- @conditions = @resource[:class].merge_conditions(@conditions, condition)
300
- end
301
-
302
- end
303
-
304
- def check_ownership_of_referal_item
305
- return unless params[:resource] && params[:resource_id]
306
- klass = params[:resource].classify.constantize
307
- return if !klass.typus_user_id?
308
- item = klass.find(params[:resource_id])
309
- raise "You're not owner of this record." unless item.owned_by?(@current_user) || @current_user.is_root?
310
- end
311
-
312
- def set_fields
313
- @fields = case params[:action]
314
- when 'index'
315
- @resource[:class].typus_fields_for(:list)
316
- when 'new', 'edit', 'create', 'update'
317
- @resource[:class].typus_fields_for(:form)
318
- else
319
- @resource[:class].typus_fields_for(params[:action])
320
- end
321
- end
322
-
323
- def set_order
324
- params[:sort_order] ||= 'desc'
325
- @order = params[:order_by] ? "#{@resource[:class].table_name}.#{params[:order_by]} #{params[:sort_order]}" : @resource[:class].typus_order_by
326
- end
327
-
328
- # If we want to display only user items, we don't want the links previous and
329
- # next linking to records from other users.
330
- def set_conditions
331
- condition = @current_user.is_root? ||
332
- !@resource[:class].typus_options_for(:only_user_items) ||
333
- !@resource[:class].columns.map(&:name).include?(Typus.user_fk)
334
- !condition ? { Typus.user_fk => @current_user.id } : { }
335
- end
336
-
337
- def set_tiny_mce
338
- if !@resource[:class].typus_tiny_mce_fields.empty? && defined?(TinyMCE)
339
- options = @resource[:class].typus_tiny_mce_options
340
- self.class.class_eval { uses_tiny_mce :options => options }
341
- end
342
- end
343
-
344
- def select_template(template, resource = @resource[:self])
345
- folder = (File.exist?("app/views/admin/#{resource}/#{template}.html.erb")) ? resource : 'resources'
346
- render "admin/#{folder}/#{template}"
347
- end
348
-
349
- ##
350
- # When <tt>params[:back_to]</tt> is defined this action is used.
351
- #
352
- # - <tt>has_and_belongs_to_many</tt> relationships.
353
- # - <tt>has_many</tt> relationships (polymorphic ones).
354
- #
355
- def create_with_back_to
356
-
357
- if params[:resource] && params[:resource_id]
358
- resource_class = params[:resource].classify.constantize
359
- resource_id = params[:resource_id]
360
- resource = resource_class.find(resource_id)
361
- association = @resource[:class].reflect_on_association(params[:resource].to_sym).macro rescue :polymorphic
362
- else
363
- association = :has_many
364
- end
365
-
366
- case association
367
- when :belongs_to
368
- @item.save
369
- when :has_and_belongs_to_many
370
- @item.save
371
- @item.send(params[:resource]) << resource
372
- when :has_many
373
- @item.save
374
- message = _("{{model}} successfully created.", :model => @resource[:human_name])
375
- path = "#{params[:back_to]}?#{params[:selected]}=#{@item.id}"
376
- when :polymorphic
377
- resource.send(@item.class.name.tableize).create(params[:item])
378
- path = "#{params[:back_to]}##{@resource[:self]}"
379
- end
380
-
381
- flash[:success] = message || _("{{model_a}} successfully assigned to {{model_b}}.",
382
- :model_a => @item.class.typus_human_name,
383
- :model_b => resource_class.name)
384
- redirect_to path || params[:back_to]
385
-
386
- end
387
-
388
- def error_handler(error, path = admin_dashboard_path)
389
- raise error unless Rails.env.production?
390
- flash[:error] = "#{error.message} (#{@resource[:class]})"
391
- redirect_to path
392
- end
393
-
394
- end
@@ -1,152 +0,0 @@
1
- class TypusController < ApplicationController
2
-
3
- skip_filter filter_chain
4
-
5
- unloadable
6
-
7
- layout :select_layout
8
-
9
- include Typus::Authentication
10
- include Typus::QuickEdit
11
- include Typus::Preferences
12
- include Typus::Reloader
13
-
14
- if Typus::Configuration.options[:ssl]
15
- include SslRequirement
16
- ssl_required :sign_in, :sign_out,
17
- :dashboard,
18
- :recover_password, :reset_password
19
- end
20
-
21
- filter_parameter_logging :password
22
-
23
- before_filter :verify_typus_users_table_schema
24
-
25
- before_filter :reload_config_et_roles
26
- before_filter :require_login,
27
- :except => [ :sign_up, :sign_in, :sign_out,
28
- :recover_password, :reset_password,
29
- :quick_edit ]
30
-
31
- before_filter :check_if_user_can_perform_action_on_resource_without_model,
32
- :except => [ :sign_up, :sign_in, :sign_out,
33
- :dashboard,
34
- :recover_password, :reset_password,
35
- :quick_edit ]
36
-
37
- before_filter :recover_password_disabled?,
38
- :only => [ :recover_password, :reset_password ]
39
-
40
- def dashboard
41
- begin
42
- I18n.locale = @current_user.preferences[:locale]
43
- flash[:notice] = _("There are not defined applications in config/typus/*.yml.") if Typus.applications.empty?
44
- rescue
45
- @current_user.update_attributes :preferences => { :locale => Typus::Configuration.options[:default_locale] }
46
- retry
47
- end
48
- end
49
-
50
- def sign_in
51
-
52
- redirect_to admin_sign_up_path and return if Typus.user_class.count.zero?
53
-
54
- if request.post?
55
- if user = Typus.user_class.authenticate(params[:user][:email], params[:user][:password])
56
- session[:typus_user_id] = user.id
57
- redirect_to params[:back_to] || admin_dashboard_path
58
- else
59
- flash[:error] = _("The email and/or password you entered is invalid.")
60
- redirect_to admin_sign_in_path
61
- end
62
- end
63
-
64
- end
65
-
66
- def sign_out
67
- session[:typus_user_id] = nil
68
- redirect_to admin_sign_in_path
69
- end
70
-
71
- def recover_password
72
- if request.post?
73
- if user = Typus.user_class.find_by_email(params[:user][:email])
74
- ActionMailer::Base.default_url_options[:host] = request.host_with_port
75
- TypusMailer.deliver_reset_password_link(user)
76
- flash[:success] = _("Password recovery link sent to your email.")
77
- redirect_to admin_sign_in_path
78
- else
79
- redirect_to admin_recover_password_path
80
- end
81
- end
82
- end
83
-
84
- ##
85
- # Available if Typus::Configuration.options[:recover_password] is enabled.
86
- #
87
- def reset_password
88
- @user = Typus.user_class.find_by_token!(params[:token])
89
- if request.post?
90
- @user.password = params[:user][:password]
91
- @user.password_confirmation = params[:user][:password_confirmation]
92
- if @user.save
93
- session[:typus_user_id] = @user.id
94
- redirect_to admin_dashboard_path
95
- else
96
- render :action => 'reset_password'
97
- end
98
- end
99
- end
100
-
101
- def sign_up
102
-
103
- redirect_to admin_sign_in_path and return unless Typus.user_class.count.zero?
104
-
105
- if request.post?
106
-
107
- password = 'columbia'
108
-
109
- user = Typus.user_class.generate(:email => params[:user][:email],
110
- :password => 'columbia',
111
- :role => Typus::Configuration.options[:root])
112
- user.status = true
113
-
114
- if user.save
115
- session[:typus_user_id] = user.id
116
- flash[:notice] = _("Password set to \"{{password}}\".", :password => password)
117
- redirect_to admin_dashboard_path
118
- else
119
- flash[:error] = _("That doesn't seem like a valid email address.")
120
- end
121
-
122
- else
123
-
124
- flash[:notice] = _("Enter your email below to create the first user.")
125
-
126
- end
127
-
128
- end
129
-
130
- private
131
-
132
- def verify_typus_users_table_schema
133
-
134
- unless Typus.user_class.model_fields.keys.include?(:role)
135
- raise "Run `script/generate typus_update_schema_to_01 -f && rake db:migrate` to update database schema."
136
- end
137
-
138
- unless Typus.user_class.model_fields.keys.include?(:preferences)
139
- raise "Run `script/generate typus_update_schema_to_02 -f && rake db:migrate` to update database schema."
140
- end
141
-
142
- end
143
-
144
- def recover_password_disabled?
145
- redirect_to admin_sign_in_path unless Typus::Configuration.options[:recover_password]
146
- end
147
-
148
- def select_layout
149
- %w( sign_up sign_in sign_out recover_password reset_password ).include?(action_name) ? 'typus' : 'admin'
150
- end
151
-
152
- end