trusty-cms 1.0.0

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 (388) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +23 -0
  3. data/CHANGELOG.md +754 -0
  4. data/CONTRIBUTORS.md +263 -0
  5. data/Gemfile +40 -0
  6. data/Gemfile.lock +177 -0
  7. data/INSTALL.md +10 -0
  8. data/LICENSE.md +21 -0
  9. data/README.md +85 -0
  10. data/Rakefile +7 -0
  11. data/app/controllers/admin/configuration_controller.rb +50 -0
  12. data/app/controllers/admin/extensions_controller.rb +11 -0
  13. data/app/controllers/admin/layouts_controller.rb +8 -0
  14. data/app/controllers/admin/page_fields_controller.rb +9 -0
  15. data/app/controllers/admin/page_parts_controller.rb +9 -0
  16. data/app/controllers/admin/pages_controller.rb +89 -0
  17. data/app/controllers/admin/preferences_controller.rb +46 -0
  18. data/app/controllers/admin/references_controller.rb +7 -0
  19. data/app/controllers/admin/resource_controller.rb +245 -0
  20. data/app/controllers/admin/users_controller.rb +40 -0
  21. data/app/controllers/admin/welcome_controller.rb +48 -0
  22. data/app/controllers/application_controller.rb +114 -0
  23. data/app/controllers/site_controller.rb +97 -0
  24. data/app/helpers/admin/configuration_helper.rb +80 -0
  25. data/app/helpers/admin/export_helper.rb +2 -0
  26. data/app/helpers/admin/extensions_helper.rb +2 -0
  27. data/app/helpers/admin/layouts_helper.rb +21 -0
  28. data/app/helpers/admin/node_helper.rb +96 -0
  29. data/app/helpers/admin/pages_helper.rb +117 -0
  30. data/app/helpers/admin/preferences_helper.rb +3 -0
  31. data/app/helpers/admin/references_helper.rb +46 -0
  32. data/app/helpers/admin/regions_helper.rb +28 -0
  33. data/app/helpers/admin/resource_helper.rb +2 -0
  34. data/app/helpers/admin/users_helper.rb +8 -0
  35. data/app/helpers/admin/welcome_helper.rb +2 -0
  36. data/app/helpers/application_helper.rb +241 -0
  37. data/app/helpers/site_helper.rb +2 -0
  38. data/app/models/deprecated_tags.rb +42 -0
  39. data/app/models/file_not_found_page.rb +32 -0
  40. data/app/models/layout.rb +15 -0
  41. data/app/models/menu_renderer.rb +140 -0
  42. data/app/models/page.rb +377 -0
  43. data/app/models/page_context.rb +53 -0
  44. data/app/models/page_field.rb +3 -0
  45. data/app/models/page_part.rb +20 -0
  46. data/app/models/standard_tags.rb +1318 -0
  47. data/app/models/status.rb +41 -0
  48. data/app/models/text_filter.rb +36 -0
  49. data/app/models/trusty_cms/config.rb +313 -0
  50. data/app/models/trusty_cms/page_response_cache_director.rb +43 -0
  51. data/app/models/user.rb +96 -0
  52. data/app/models/user_action_observer.rb +25 -0
  53. data/app/views/admin/configuration/edit.html.haml +38 -0
  54. data/app/views/admin/configuration/show.html.haml +58 -0
  55. data/app/views/admin/extensions/index.html.haml +41 -0
  56. data/app/views/admin/layouts/_form.html.haml +39 -0
  57. data/app/views/admin/layouts/edit.html.haml +9 -0
  58. data/app/views/admin/layouts/index.html.haml +35 -0
  59. data/app/views/admin/layouts/new.html.haml +7 -0
  60. data/app/views/admin/layouts/remove.html.haml +16 -0
  61. data/app/views/admin/page_fields/_page_field.html.haml +12 -0
  62. data/app/views/admin/page_parts/_page_part.html.haml +18 -0
  63. data/app/views/admin/pages/_fields.html.haml +71 -0
  64. data/app/views/admin/pages/_meta_row.html.haml +8 -0
  65. data/app/views/admin/pages/_node.html.haml +26 -0
  66. data/app/views/admin/pages/_popups.html.haml +27 -0
  67. data/app/views/admin/pages/children.html.haml +2 -0
  68. data/app/views/admin/pages/edit.html.haml +12 -0
  69. data/app/views/admin/pages/index.html.haml +26 -0
  70. data/app/views/admin/pages/new.html.haml +10 -0
  71. data/app/views/admin/pages/remove.html.haml +18 -0
  72. data/app/views/admin/preferences/edit.html.haml +44 -0
  73. data/app/views/admin/references/_tag_reference.haml +3 -0
  74. data/app/views/admin/references/filters.haml +6 -0
  75. data/app/views/admin/references/tags.haml +30 -0
  76. data/app/views/admin/users/_avatar.html.haml +5 -0
  77. data/app/views/admin/users/_form.html.haml +53 -0
  78. data/app/views/admin/users/_password_fields.html.haml +18 -0
  79. data/app/views/admin/users/edit.html.haml +9 -0
  80. data/app/views/admin/users/index.html.haml +39 -0
  81. data/app/views/admin/users/new.html.haml +6 -0
  82. data/app/views/admin/users/remove.html.haml +16 -0
  83. data/app/views/admin/welcome/login.html.haml +23 -0
  84. data/app/views/layouts/application.html.haml +50 -0
  85. data/app/views/site/not_found.html.haml +3 -0
  86. data/bin/ci/before_script +15 -0
  87. data/bin/trusty_cms +53 -0
  88. data/config/application.rb +124 -0
  89. data/config/boot.rb +9 -0
  90. data/config/compass.config +15 -0
  91. data/config/database.db2.yml +20 -0
  92. data/config/database.mysql.yml +25 -0
  93. data/config/database.postgresql.yml +25 -0
  94. data/config/database.sqlite.yml +16 -0
  95. data/config/database.sqlserver.yml +20 -0
  96. data/config/environment.rb +5 -0
  97. data/config/environments/development.rb +19 -0
  98. data/config/environments/production.rb +27 -0
  99. data/config/environments/test.rb +35 -0
  100. data/config/initializers/active_record_extensions.rb +1 -0
  101. data/config/initializers/configuration_extensions.rb +0 -0
  102. data/config/initializers/haml.rb +2 -0
  103. data/config/initializers/object_extensions.rb +1 -0
  104. data/config/initializers/radiant_config.rb +16 -0
  105. data/config/initializers/rails_patch.rb +2 -0
  106. data/config/initializers/response_cache_timeout.rb +3 -0
  107. data/config/initializers/string_extensions.rb +1 -0
  108. data/config/initializers/symbol_extensions.rb +1 -0
  109. data/config/initializers/tmp.rb +2 -0
  110. data/config/locales/en.yml +230 -0
  111. data/config/locales/en_available_tags.yml +625 -0
  112. data/config/preinitializer.rb +18 -0
  113. data/config/routes.rb +30 -0
  114. data/db/migrate/001_create_radiant_tables.rb +75 -0
  115. data/db/migrate/002_insert_initial_data.rb +12 -0
  116. data/db/migrate/003_rename_behavior_column.rb +9 -0
  117. data/db/migrate/004_rename_filter_column.rb +11 -0
  118. data/db/migrate/005_add_virtual_column_to_page.rb +9 -0
  119. data/db/migrate/006_integer_columns_to_boolean.rb +36 -0
  120. data/db/migrate/007_remove_virtual_column_from_page.rb +9 -0
  121. data/db/migrate/008_add_virtual_column_to_page_again.rb +9 -0
  122. data/db/migrate/009_add_content_type_field_to_layout.rb +9 -0
  123. data/db/migrate/010_merge_behaviors_and_pages.rb +57 -0
  124. data/db/migrate/011_rename_type_column_on_page_to_class_name.rb +9 -0
  125. data/db/migrate/012_create_extension_meta.rb +13 -0
  126. data/db/migrate/013_add_notes_field_to_user.rb +9 -0
  127. data/db/migrate/014_rename_config_default_parts_key.rb +17 -0
  128. data/db/migrate/015_add_optimistic_locking.rb +15 -0
  129. data/db/migrate/016_add_sessions.rb +16 -0
  130. data/db/migrate/017_rename_created_by_updated_by_columns.rb +15 -0
  131. data/db/migrate/018_add_description_and_keywords_to_pages.rb +11 -0
  132. data/db/migrate/019_add_salt_to_users.rb +11 -0
  133. data/db/migrate/020_add_session_info_to_users.rb +11 -0
  134. data/db/migrate/021_remove_session_expire_from_users.rb +9 -0
  135. data/db/migrate/20081203140407_add_indexes.rb +19 -0
  136. data/db/migrate/20090226140109_add_user_language.rb +9 -0
  137. data/db/migrate/20090929164633_rename_developer_role_to_designer.rb +9 -0
  138. data/db/migrate/20091003095744_change_user_language_to_locale.rb +9 -0
  139. data/db/migrate/20100805154952_add_page_fields.rb +15 -0
  140. data/db/migrate/20100805155020_convert_page_metas.rb +24 -0
  141. data/db/migrate/20100810151922_add_field_name_index.rb +11 -0
  142. data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +13 -0
  143. data/db/migrate/20111016150725_extend_page_part_content_limit.rb +15 -0
  144. data/db/migrate/20120209231801_change_pages_allowed_children_cache_to_text.rb +11 -0
  145. data/db/schema.rb +128 -0
  146. data/lib/active_record_extensions/active_record_extensions.rb +27 -0
  147. data/lib/annotatable.rb +68 -0
  148. data/lib/configuration_extensions/configuration_extensions.rb +357 -0
  149. data/lib/generators/extension/USAGE +30 -0
  150. data/lib/generators/extension/extension_generator.rb +97 -0
  151. data/lib/generators/extension/templates/README.md +6 -0
  152. data/lib/generators/extension/templates/RSpecRakefile +109 -0
  153. data/lib/generators/extension/templates/Rakefile +25 -0
  154. data/lib/generators/extension/templates/cucumber.yml +1 -0
  155. data/lib/generators/extension/templates/cucumber_env.rb +11 -0
  156. data/lib/generators/extension/templates/cucumber_paths.rb +22 -0
  157. data/lib/generators/extension/templates/en.yml +3 -0
  158. data/lib/generators/extension/templates/extension.rb +21 -0
  159. data/lib/generators/extension/templates/functional_test.rb +15 -0
  160. data/lib/generators/extension/templates/gemspec.rb +29 -0
  161. data/lib/generators/extension/templates/lib.rb +8 -0
  162. data/lib/generators/extension/templates/migration.rb +9 -0
  163. data/lib/generators/extension/templates/radiant_config.rb +3 -0
  164. data/lib/generators/extension/templates/routes.rb +5 -0
  165. data/lib/generators/extension/templates/spec.opts +6 -0
  166. data/lib/generators/extension/templates/spec_helper.rb +42 -0
  167. data/lib/generators/extension/templates/tasks.rake +47 -0
  168. data/lib/generators/extension/templates/test_helper.rb +26 -0
  169. data/lib/generators/extension_controller/USAGE +36 -0
  170. data/lib/generators/extension_controller/extension_controller_generator.rb +84 -0
  171. data/lib/generators/extension_controller/templates/controller.rb +10 -0
  172. data/lib/generators/extension_controller/templates/controller_spec.rb +23 -0
  173. data/lib/generators/extension_controller/templates/functional_test.rb +11 -0
  174. data/lib/generators/extension_controller/templates/helper.rb +2 -0
  175. data/lib/generators/extension_controller/templates/helper_spec.rb +11 -0
  176. data/lib/generators/extension_controller/templates/helper_test.rb +4 -0
  177. data/lib/generators/extension_controller/templates/view.html.erb +2 -0
  178. data/lib/generators/extension_controller/templates/view_spec.rb +12 -0
  179. data/lib/generators/extension_mailer/USAGE +17 -0
  180. data/lib/generators/extension_mailer/extension_mailer_generator.rb +68 -0
  181. data/lib/generators/extension_mailer/templates/fixture.erb +3 -0
  182. data/lib/generators/extension_mailer/templates/mailer.rb +15 -0
  183. data/lib/generators/extension_mailer/templates/unit_test.rb +21 -0
  184. data/lib/generators/extension_mailer/templates/view.erb +3 -0
  185. data/lib/generators/extension_migration/USAGE +34 -0
  186. data/lib/generators/extension_migration/extension_migration_generator.rb +25 -0
  187. data/lib/generators/extension_migration/templates/migration.rb +11 -0
  188. data/lib/generators/extension_model/USAGE +35 -0
  189. data/lib/generators/extension_model/extension_model_generator.rb +68 -0
  190. data/lib/generators/extension_model/templates/fixtures.yml +19 -0
  191. data/lib/generators/extension_model/templates/migration.rb +16 -0
  192. data/lib/generators/extension_model/templates/model.rb +2 -0
  193. data/lib/generators/extension_model/templates/model_spec.rb +11 -0
  194. data/lib/generators/extension_model/templates/unit_test.rb +8 -0
  195. data/lib/generators/generator_base_extension.rb +16 -0
  196. data/lib/generators/instance/instance_generator.rb +148 -0
  197. data/lib/generators/instance/templates/databases/db2.yml +40 -0
  198. data/lib/generators/instance/templates/databases/mysql.yml +47 -0
  199. data/lib/generators/instance/templates/databases/postgresql.yml +44 -0
  200. data/lib/generators/instance/templates/databases/sqlite3.yml +16 -0
  201. data/lib/generators/instance/templates/databases/sqlserver.yml +21 -0
  202. data/lib/generators/instance/templates/instance_boot.rb +122 -0
  203. data/lib/generators/instance/templates/instance_config.ru +2 -0
  204. data/lib/generators/instance/templates/instance_environment.rb +83 -0
  205. data/lib/generators/instance/templates/instance_gemfile +81 -0
  206. data/lib/generators/instance/templates/instance_generate +6 -0
  207. data/lib/generators/instance/templates/instance_radiant_config.rb +16 -0
  208. data/lib/generators/instance/templates/instance_rakefile +3 -0
  209. data/lib/generators/instance/templates/instance_routes.rb +1 -0
  210. data/lib/generators/language_extension/USAGE +27 -0
  211. data/lib/generators/language_extension/language_extension_generator.rb +71 -0
  212. data/lib/generators/language_extension/templates/README +3 -0
  213. data/lib/generators/language_extension/templates/RSpecRakefile +123 -0
  214. data/lib/generators/language_extension/templates/Rakefile +25 -0
  215. data/lib/generators/language_extension/templates/available_tags.yml +553 -0
  216. data/lib/generators/language_extension/templates/cucumber.yml +1 -0
  217. data/lib/generators/language_extension/templates/cucumber_env.rb +16 -0
  218. data/lib/generators/language_extension/templates/cucumber_paths.rb +14 -0
  219. data/lib/generators/language_extension/templates/extension.rb +12 -0
  220. data/lib/generators/language_extension/templates/functional_test.rb +15 -0
  221. data/lib/generators/language_extension/templates/gemspec.rb +24 -0
  222. data/lib/generators/language_extension/templates/lang.yml +181 -0
  223. data/lib/generators/language_extension/templates/lib.rb +8 -0
  224. data/lib/generators/language_extension/templates/spec.opts +6 -0
  225. data/lib/generators/language_extension/templates/spec_helper.rb +36 -0
  226. data/lib/generators/language_extension/templates/tasks.rake +28 -0
  227. data/lib/generators/language_extension/templates/test_helper.rb +26 -0
  228. data/lib/inheritable_class_attributes.rb +65 -0
  229. data/lib/local_time.rb +6 -0
  230. data/lib/login_system.rb +132 -0
  231. data/lib/method_observer.rb +50 -0
  232. data/lib/object_extensions/object_extensions.rb +5 -0
  233. data/lib/simpleton.rb +21 -0
  234. data/lib/string_extensions/string_extensions.rb +25 -0
  235. data/lib/symbol_extensions/symbol_extensions.rb +5 -0
  236. data/lib/tasks/database.rake +85 -0
  237. data/lib/tasks/environments.rake +11 -0
  238. data/lib/tasks/extensions.rake +85 -0
  239. data/lib/tasks/framework.rake +255 -0
  240. data/lib/tasks/instance.rake +23 -0
  241. data/lib/tasks/prototype.rake +31 -0
  242. data/lib/tasks/radiant_config.rake +18 -0
  243. data/lib/tasks/release.rake +131 -0
  244. data/lib/tasks/translate.rake +59 -0
  245. data/lib/tasks/undefine.rake +28 -0
  246. data/lib/translation_support.rb +54 -0
  247. data/lib/trusty_cms/admin_ui/region_partials.rb +23 -0
  248. data/lib/trusty_cms/admin_ui/region_set.rb +35 -0
  249. data/lib/trusty_cms/admin_ui.rb +244 -0
  250. data/lib/trusty_cms/available_locales.rb +19 -0
  251. data/lib/trusty_cms/cache.rb +100 -0
  252. data/lib/trusty_cms/config/definition.rb +142 -0
  253. data/lib/trusty_cms/engine.rb +10 -0
  254. data/lib/trusty_cms/extension/script.rb +395 -0
  255. data/lib/trusty_cms/extension.rb +146 -0
  256. data/lib/trusty_cms/extension_loader.rb +130 -0
  257. data/lib/trusty_cms/extension_migrator.rb +98 -0
  258. data/lib/trusty_cms/extension_path.rb +200 -0
  259. data/lib/trusty_cms/initializer.rb +162 -0
  260. data/lib/trusty_cms/pagination/controller.rb +41 -0
  261. data/lib/trusty_cms/pagination/link_renderer.rb +34 -0
  262. data/lib/trusty_cms/resource_responses.rb +121 -0
  263. data/lib/trusty_cms/setup.rb +227 -0
  264. data/lib/trusty_cms/taggable.rb +138 -0
  265. data/lib/trusty_cms/task_support.rb +66 -0
  266. data/lib/trusty_cms.rb +19 -0
  267. data/log/.keep +0 -0
  268. data/public/.htaccess +40 -0
  269. data/public/404.html +8 -0
  270. data/public/500.html +8 -0
  271. data/public/dispatch.cgi +10 -0
  272. data/public/dispatch.fcgi +24 -0
  273. data/public/dispatch.rb +10 -0
  274. data/public/favicon.ico +0 -0
  275. data/public/images/admin/add_tab.png +0 -0
  276. data/public/images/admin/avatar_32x32.png +0 -0
  277. data/public/images/admin/avatar_64x64.png +0 -0
  278. data/public/images/admin/avatar_96x96.png +0 -0
  279. data/public/images/admin/brown_bottom_line.gif +0 -0
  280. data/public/images/admin/calendar_down.gif +0 -0
  281. data/public/images/admin/collapse.png +0 -0
  282. data/public/images/admin/draft_page.png +0 -0
  283. data/public/images/admin/expand.png +0 -0
  284. data/public/images/admin/image.png +0 -0
  285. data/public/images/admin/javascript.png +0 -0
  286. data/public/images/admin/layout.png +0 -0
  287. data/public/images/admin/metadata_toggle.png +0 -0
  288. data/public/images/admin/minus.png +0 -0
  289. data/public/images/admin/minus_disabled.png +0 -0
  290. data/public/images/admin/minus_grey.png +0 -0
  291. data/public/images/admin/navigation_secondary_separator.gif +0 -0
  292. data/public/images/admin/page.png +0 -0
  293. data/public/images/admin/plus.png +0 -0
  294. data/public/images/admin/plus_disabled.png +0 -0
  295. data/public/images/admin/plus_grey.png +0 -0
  296. data/public/images/admin/popup_border_background.png +0 -0
  297. data/public/images/admin/popup_border_bottom_left.png +0 -0
  298. data/public/images/admin/popup_border_bottom_right.png +0 -0
  299. data/public/images/admin/popup_border_top_left.png +0 -0
  300. data/public/images/admin/popup_border_top_right.png +0 -0
  301. data/public/images/admin/search.png +0 -0
  302. data/public/images/admin/single_form_shadow.png +0 -0
  303. data/public/images/admin/snippet.png +0 -0
  304. data/public/images/admin/spinner.gif +0 -0
  305. data/public/images/admin/status_background.png +0 -0
  306. data/public/images/admin/status_bottom_left.png +0 -0
  307. data/public/images/admin/status_bottom_right.png +0 -0
  308. data/public/images/admin/status_spinner.gif +0 -0
  309. data/public/images/admin/status_top_left.png +0 -0
  310. data/public/images/admin/status_top_right.png +0 -0
  311. data/public/images/admin/stylesheet.png +0 -0
  312. data/public/images/admin/tab_close.png +0 -0
  313. data/public/images/admin/upload.png +0 -0
  314. data/public/images/admin/virtual_page.png +0 -0
  315. data/public/images/radiant/radiant-badge-color.png +0 -0
  316. data/public/javascripts/admin/application.js +94 -0
  317. data/public/javascripts/admin/codearea.js +165 -0
  318. data/public/javascripts/admin/controls.js +965 -0
  319. data/public/javascripts/admin/cookie.js +80 -0
  320. data/public/javascripts/admin/dateinput.js +402 -0
  321. data/public/javascripts/admin/dragdrop.js +974 -0
  322. data/public/javascripts/admin/dropdown.js +216 -0
  323. data/public/javascripts/admin/effects.js +1122 -0
  324. data/public/javascripts/admin/lowpro.js +340 -0
  325. data/public/javascripts/admin/overrides.js +1 -0
  326. data/public/javascripts/admin/page_preview.js +41 -0
  327. data/public/javascripts/admin/pagefield.js +54 -0
  328. data/public/javascripts/admin/pagestatus.js +17 -0
  329. data/public/javascripts/admin/popup.js +339 -0
  330. data/public/javascripts/admin/prototype.js +4874 -0
  331. data/public/javascripts/admin/ruledtable.js +13 -0
  332. data/public/javascripts/admin/shortcuts.js +33 -0
  333. data/public/javascripts/admin/sitemap.js +149 -0
  334. data/public/javascripts/admin/status.js +233 -0
  335. data/public/javascripts/admin/tabcontrol.js +123 -0
  336. data/public/javascripts/admin/toggle.js +430 -0
  337. data/public/javascripts/admin/utility.js +53 -0
  338. data/public/javascripts/admin/validationerror.js +18 -0
  339. data/public/loading-iframe.html +11 -0
  340. data/public/robots.txt +1 -0
  341. data/public/stylesheets/sass/admin/_base.sass +18 -0
  342. data/public/stylesheets/sass/admin/main.sass +27 -0
  343. data/public/stylesheets/sass/admin/modules/_boxes.sass +6 -0
  344. data/public/stylesheets/sass/admin/modules/_gradients.sass +4 -0
  345. data/public/stylesheets/sass/admin/modules/_links.sass +18 -0
  346. data/public/stylesheets/sass/admin/overrides.sass +2 -0
  347. data/public/stylesheets/sass/admin/partials/_actions.sass +96 -0
  348. data/public/stylesheets/sass/admin/partials/_avatars.sass +10 -0
  349. data/public/stylesheets/sass/admin/partials/_content.sass +58 -0
  350. data/public/stylesheets/sass/admin/partials/_dateinput.sass +62 -0
  351. data/public/stylesheets/sass/admin/partials/_deprecated.sass +55 -0
  352. data/public/stylesheets/sass/admin/partials/_dropdown.sass +28 -0
  353. data/public/stylesheets/sass/admin/partials/_footer.sass +12 -0
  354. data/public/stylesheets/sass/admin/partials/_forms.sass +322 -0
  355. data/public/stylesheets/sass/admin/partials/_header.sass +114 -0
  356. data/public/stylesheets/sass/admin/partials/_index.sass +147 -0
  357. data/public/stylesheets/sass/admin/partials/_layout.sass +10 -0
  358. data/public/stylesheets/sass/admin/partials/_messages.sass +10 -0
  359. data/public/stylesheets/sass/admin/partials/_popup.sass +213 -0
  360. data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +72 -0
  361. data/public/stylesheets/sass/admin/partials/_toolbar.sass +31 -0
  362. data/public/stylesheets/sass/admin/partials/_typography.sass +60 -0
  363. data/public/stylesheets/sass/admin/partials/_validations.sass +19 -0
  364. data/rails/init.rb +1 -0
  365. data/script/about +4 -0
  366. data/script/breakpointer +3 -0
  367. data/script/console +3 -0
  368. data/script/dbconsole +3 -0
  369. data/script/destroy +3 -0
  370. data/script/extension +5 -0
  371. data/script/generate +3 -0
  372. data/script/performance/benchmarker +3 -0
  373. data/script/performance/profiler +3 -0
  374. data/script/performance/request +3 -0
  375. data/script/plugin +3 -0
  376. data/script/process/inspector +3 -0
  377. data/script/process/reaper +3 -0
  378. data/script/process/spawner +3 -0
  379. data/script/process/spinner +3 -0
  380. data/script/rails +6 -0
  381. data/script/runner +3 -0
  382. data/script/server +3 -0
  383. data/script/version +5 -0
  384. data/spec/ci/database.mysql.yml +4 -0
  385. data/spec/ci/database.postgresql.yml +4 -0
  386. data/spec/ci/database.sqlite.yml +3 -0
  387. data/trusty_cms.gemspec +50 -0
  388. metadata +781 -0
@@ -0,0 +1,50 @@
1
+ <!DOCTYPE html>
2
+ %html{html_attrs}
3
+ %head
4
+ %meta{"http-equiv"=>"Content-type", :content=>"text/html;charset=utf-8"}/
5
+ %title= @page_title || default_page_title
6
+ - @stylesheets.uniq.each do |stylesheet|
7
+ = stylesheet_link_tag stylesheet
8
+ %script{:type=>"text/javascript"}="var relative_url_root = '#{ActionController::Base.relative_url_root}';"
9
+ = javascript_include_tag %w(admin/prototype admin/effects admin/dragdrop admin/lowpro admin/dateinput admin/pagestatus admin/cookie admin/popup admin/pagefield admin/dropdown admin/status admin/utility admin/codearea admin/tabcontrol admin/ruledtable admin/sitemap admin/shortcuts admin/toggle admin/validationerror admin/application), :cache => 'admin/all'
10
+ - @javascripts.uniq.each do |javascript|
11
+ = javascript_include_tag javascript
12
+ - if @content_for_page_scripts
13
+ = javascript_tag @content_for_page_scripts
14
+ - if @content_for_page_css
15
+ %style{:type => "text/css"}= @content_for_page_css
16
+ = yield :meta
17
+ = stylesheet_and_javascript_overrides
18
+ %body{:class=>body_classes.join(" ")}
19
+ #page
20
+ #header
21
+ - if logged_in?
22
+ #site_links
23
+ = %{#{t('logged_in_as')} #{link_to h(current_user.name), edit_admin_preferences_path} &nbsp; (#{link_to t('log_out'), logout_path})}
24
+ &nbsp;
25
+ = link_to t('view_site'), root_path, :id=>"view_site"
26
+ %ul#navigation
27
+ - nav_tabs.each do |tab|
28
+ - if tab.visible?(current_user)
29
+ %li{:class=>('current ' if current_tab?(tab)).to_s}
30
+ = link_to translate_with_default(tab.name), (tab.first.relative_url if tab.first)
31
+ #toolbar
32
+ - if @current_tab and @current_tab.size > 1
33
+ %ul#secondary_navigation
34
+ - @current_tab.each do |sub_item|
35
+ - if sub_item.visible?(current_user)
36
+ %li= link_to translate_with_default(sub_item.name), sub_item.relative_url, :class=>('current' if current_item?(sub_item))
37
+ = yield :toolbar
38
+ #main
39
+ - if flash[:notice]
40
+ #notice
41
+ %p= flash[:notice]
42
+ - if flash[:error]
43
+ #error
44
+ %p= flash[:error]
45
+ #content
46
+ = find_and_preserve(yield)
47
+
48
+ - if @content_for_popups
49
+ #popups
50
+ = yield :popups
@@ -0,0 +1,3 @@
1
+ - @page_title = 'Page Not Found'
2
+ %h1=@page_title
3
+ %p The page you were looking for could not be located on this site.
@@ -0,0 +1,15 @@
1
+ #!/bin/sh
2
+
3
+ case $DB in
4
+ "mysql" )
5
+ mysql -e 'create database radiant_test;'
6
+ cp spec/ci/database.mysql.yml config/database.yml;;
7
+ "postgres" )
8
+ psql -c 'create database radiant_test;' -U postgres
9
+ cp spec/ci/database.postgresql.yml config/database.yml;;
10
+ "sqlite" )
11
+ cp spec/ci/database.sqlite.yml config/database.yml;;
12
+ esac
13
+
14
+ bundle exec rake db:migrate
15
+ bundle exec rake db:migrate:extensions
data/bin/trusty_cms ADDED
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= 'production'
4
+
5
+ $LOAD_PATH << File.join(File.dirname(__FILE__), '..')
6
+
7
+ require 'ruby_version_check'
8
+ Signal.trap("INT") { puts; exit }
9
+
10
+ require 'trusty_cms'
11
+ if ARGV.any? { |arg| %w(--version -v).any? { |flag| arg == flag } }
12
+ puts "TrustyCms #{TrustyCms::Version}"
13
+ exit 0
14
+ end
15
+
16
+ app_path = ARGV.first
17
+
18
+ require 'rails_generator'
19
+ require 'rails_generator/scripts/generate'
20
+
21
+ class Rails::Generator::Base
22
+
23
+ def self.use_application_sources!
24
+ reset_sources
25
+ sources << Rails::Generator::PathSource.new(:builtin, "#{File.dirname(__FILE__)}/../lib/generators")
26
+ end
27
+
28
+ def add_general_options!(opt)
29
+ opt.separator ''
30
+ opt.separator 'TrustyCms Info:'
31
+ opt.on('-v', '--version', 'Show the TrustyCms version number and quit.')
32
+ opt.on('-h', '--help', 'Show this help message and quit.') { |v| options[:help] = v }
33
+
34
+ opt.separator ''
35
+ opt.separator 'General Options:'
36
+
37
+ opt.on('-p', '--pretend', 'Run but do not make any changes.') { |v| options[:pretend] = v }
38
+ opt.on('-f', '--force', 'Overwrite files that already exist.') { options[:collision] = :force }
39
+ opt.on('-s', '--skip', 'Skip files that already exist.') { options[:collision] = :skip }
40
+ opt.on('-q', '--quiet', 'Suppress normal output.') { |v| options[:quiet] = v }
41
+ opt.on('-t', '--backtrace', 'Debugging: show backtrace on errors.') { |v| options[:backtrace] = v }
42
+ opt.on('-c', '--svn', 'Modify files with subversion. (Note: svn must be in path)') do
43
+ options[:svn] = `svn status`.inject({}) do |opt, e|
44
+ opt[e.chomp[7..-1]] = true
45
+ opt
46
+ end
47
+ end
48
+ end
49
+
50
+ end
51
+
52
+ Rails::Generator::Base.use_application_sources!
53
+ Rails::Generator::Scripts::Generate.new.run(ARGV, :generator => 'instance')
@@ -0,0 +1,124 @@
1
+ require File.expand_path('../boot', __FILE__)
2
+
3
+ require 'rails/all'
4
+ require 'configuration_extensions/configuration_extensions'
5
+ require 'radius'
6
+ require 'trusty_cms/extension_loader'
7
+ require 'trusty_cms/initializer'
8
+
9
+
10
+ Bundler.require(:default, Rails.env) if defined?(Bundler)
11
+
12
+ module TrustyCms
13
+ class Application < Rails::Application
14
+
15
+ include TrustyCms::Initializer
16
+
17
+ config.autoload_paths += %W(#{config.root}/lib)
18
+
19
+
20
+ # Initialize extension paths
21
+ config.initialize_extension_paths
22
+ extension_loader = ExtensionLoader.instance {|l| l.initializer = self }
23
+ extension_loader.paths(:load).reverse_each do |path|
24
+ config.autoload_paths.unshift path
25
+ $LOAD_PATH.unshift path
26
+ end
27
+ # config.add_plugin_paths(extension_loader.paths(:plugin))
28
+ radiant_locale_paths = Dir[File.join(TRUSTY_CMS_ROOT, 'config', 'locales', '*.{rb,yml}')]
29
+ config.i18n.load_path = radiant_locale_paths + extension_loader.paths(:locale)
30
+
31
+ config.encoding = 'utf-8'
32
+ # Skip frameworks you're not going to use (only works if using vendor/rails).
33
+ # To use Rails without a database, you must remove the Active Record framework
34
+ # config.frameworks -= [ :action_mailer ]
35
+
36
+ # Only load the extensions named here, in the order given. By default all
37
+ # extensions in vendor/extensions are loaded, in alphabetical order. :all
38
+ # can be used as a placeholder for all extensions not explicitly named.
39
+ # config.extensions = [ :all ]
40
+
41
+ # By default, only English translations are loaded. Remove any of these from
42
+ # the list below if you'd like to provide any of the additional options
43
+ # config.ignore_extensions []
44
+
45
+ # Your secret key for verifying cookie session data integrity.
46
+ # If you change this key, all old sessions will become invalid!
47
+ # Make sure the secret is at least 30 characters and all random,
48
+ # no regular words or you'll be exposed to dictionary attacks.
49
+ config.session_store(:cookie_store,
50
+ {:key => '_trusty_cms_session',
51
+ :secret => 'asdfqwerfxcoivswqenadfasdfqewpfioutyqwel'})
52
+
53
+ # Comment out this line if you want to turn off all caching, or
54
+ # add options to modify the behavior. In the majority of deployment
55
+ # scenarios it is desirable to leave TrustyCms's cache enabled and in
56
+ # the default configuration.
57
+ #
58
+ # Additional options:
59
+ # :use_x_sendfile => true
60
+ # Turns on X-Sendfile support for Apache with mod_xsendfile or lighttpd.
61
+ # :use_x_accel_redirect => '/some/virtual/path'
62
+ # Turns on X-Accel-Redirect support for nginx. You have to provide
63
+ # a path that corresponds to a virtual location in your webserver
64
+ # configuration.
65
+ # :entitystore => "radiant:tmp/cache/entity"
66
+ # Sets the entity store type (preceding the colon) and storage
67
+ # location (following the colon, relative to Rails.root).
68
+ # We recommend you use radiant: since this will enable manual expiration.
69
+ # :metastore => "radiant:tmp/cache/meta"
70
+ # Sets the meta store type and storage location. We recommend you use
71
+ # radiant: since this will enable manual expiration and acceleration headers.
72
+
73
+
74
+ # TODO: We're not sure this is actually working, but we can't really test this until the app initializes.
75
+ config.middleware.use "TrustyCms::Cache"
76
+
77
+
78
+ config.filter_parameters += [:password, :password_confirmation]
79
+
80
+ # Use the database for sessions instead of the cookie-based default,
81
+ # which shouldn't be used to store highly confidential information
82
+ # (create the session table with 'rake db:sessions:create')
83
+ # config.action_controller.session_store = :cookie_store DEPRECATED
84
+
85
+ # Activate observers that should always be running
86
+ config.active_record.observers = :user_action_observer
87
+
88
+ # The internationalization framework can be changed to have another default locale (standard is :en) or more load paths.
89
+ # All files from config/locales/*.rb,yml are added automatically.
90
+ # config.i18n.load_path << Dir[File.join(Rails.root, 'my', 'locales', '*.{rb,yml}')]
91
+ # config.i18n.default_locale = :'en'
92
+
93
+ # Make Active Record use UTC-base instead of local time
94
+ config.time_zone = 'UTC'
95
+
96
+ # Set the default field error proc
97
+ config.action_view.field_error_proc = Proc.new do |html, instance|
98
+ if html !~ /label/
99
+ %{<span class="error-with-field">#{html} <span class="error">#{[instance.error_message].flatten.first}</span></span>}
100
+ else
101
+ html
102
+ end
103
+ end
104
+
105
+ config.after_initialize do
106
+ extension_loader.load_extensions
107
+ extension_loader.load_extension_initalizers
108
+
109
+
110
+ Dir["#{TRUSTY_CMS_ROOT}/config/initializers/**/*.rb"].sort.each do |initializer|
111
+ load(initializer)
112
+ end
113
+
114
+ extension_loader.activate_extensions # also calls initialize_views
115
+ #config.add_controller_paths(extension_loader.paths(:controller))
116
+ #config.add_eager_load_paths(extension_loader.paths(:eager_load))
117
+
118
+ # Add new inflection rules using the following format:
119
+ ActiveSupport::Inflector.inflections do |inflect|
120
+ inflect.uncountable 'config'
121
+ end
122
+ end
123
+ end
124
+ end
data/config/boot.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ # Don't change this file!
3
+ # Configure your app in config/environment.rb and config/environments/*.rb
4
+
5
+
6
+ # Set up gems listed in the Gemfile.
7
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
8
+
9
+ require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
@@ -0,0 +1,15 @@
1
+ project_type = :rails
2
+
3
+ http_path = "/"
4
+ http_stylesheets_path = "/stylesheets"
5
+ http_images_path = "/images"
6
+ http_javascripts_path = "/javascripts"
7
+
8
+ sass_dir = "public/stylesheets/sass"
9
+ css_dir = "public/stylesheets"
10
+ images_dir = "public/images"
11
+ javascripts_dir = "public/javascripts"
12
+
13
+ relative_assets = true
14
+
15
+ output_style = :compressed
@@ -0,0 +1,20 @@
1
+ # This is only an example configuration. Please see the Rails
2
+ # documentation for more details.
3
+
4
+ development:
5
+ adapter: ibm_db
6
+ database: rad_dev
7
+ username: db2inst1
8
+ password:
9
+
10
+ test: &TEST
11
+ adapter: ibm_db
12
+ database: rad_test
13
+ username: db2inst1
14
+ password:
15
+
16
+ production:
17
+ adapter: ibm_db
18
+ database: radiant
19
+ username: db2inst1
20
+ password:
@@ -0,0 +1,25 @@
1
+ #
2
+ # This is only an example configuration. Please see the Rails
3
+ # documentation for more details.
4
+ #
5
+
6
+ development:
7
+ adapter: mysql
8
+ database: radiant_dev
9
+ username: root
10
+ password:
11
+ socket: /tmp/mysql.sock
12
+
13
+ test: &TEST
14
+ adapter: mysql
15
+ database: radiant_test
16
+ username: root
17
+ password:
18
+ socket: /tmp/mysql.sock
19
+
20
+ production:
21
+ adapter: mysql
22
+ database: radiant_live
23
+ username: root
24
+ password:
25
+ socket: /tmp/mysql.sock
@@ -0,0 +1,25 @@
1
+ #
2
+ # This is only an example configuration. Please see the Rails
3
+ # documentation for more details.
4
+ #
5
+
6
+ development:
7
+ adapter: postgresql
8
+ database: radiant_dev
9
+ username: root
10
+ password:
11
+ host: localhost
12
+
13
+ test: &TEST
14
+ adapter: postgresql
15
+ database: radiant_test
16
+ username: root
17
+ password:
18
+ host: localhost
19
+
20
+ production:
21
+ adapter: postgresql
22
+ database: radiant_live
23
+ username: root
24
+ password:
25
+ host: localhost
@@ -0,0 +1,16 @@
1
+ #
2
+ # This is only an example configuration. Please see the Rails
3
+ # documentation for more details.
4
+ #
5
+
6
+ development:
7
+ adapter: sqlite3
8
+ database: db/radiant_dev.db
9
+
10
+ test: &TEST
11
+ adapter: sqlite3
12
+ database: db/radiant_test.db
13
+
14
+ production:
15
+ adapter: sqlite3
16
+ database: db/radiant_live.db
@@ -0,0 +1,20 @@
1
+ development:
2
+ adapter: sqlserver
3
+ database: radiant_dev
4
+ username:
5
+ password:
6
+ host:
7
+
8
+ test: &TEST
9
+ adapter: sqlserver
10
+ database: radiant_test
11
+ username:
12
+ password:
13
+ host:
14
+
15
+ production:
16
+ adapter: sqlserver
17
+ database: radiant_live
18
+ username:
19
+ password:
20
+ host:
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ TrustyCms::Application.initialize!
@@ -0,0 +1,19 @@
1
+ TrustyCms::Application.configure do
2
+ # Settings specified here will take precedence over those in config/environment.rb
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the webserver when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and caching is turned off
13
+ config.consider_all_requests_local = true
14
+ #config.action_view.debug_rjs = true
15
+ config.action_controller.perform_caching = false
16
+
17
+ # Don't care if the mailer can't send
18
+ config.action_mailer.raise_delivery_errors = false
19
+ end
@@ -0,0 +1,27 @@
1
+ TrustyCms::Application.configure do
2
+ # Settings specified here will take precedence over those in config/environment.rb
3
+
4
+ # The production environment is meant for finished, "live" apps.
5
+ # Code is not reloaded between requests
6
+ config.cache_classes = true
7
+
8
+ # Use a different logger for distributed setups
9
+ # config.logger = SyslogLogger.new
10
+
11
+
12
+ # Full error reports are disabled and caching is on
13
+ config.consider_all_requests_local = false
14
+ config.action_controller.perform_caching = true
15
+
16
+ # Enable serving of images, stylesheets, and javascripts from an asset server
17
+ # config.action_controller.asset_host = "http://assets.example.com"
18
+
19
+ # Disable delivery errors if you bad email addresses should just be ignored
20
+ # config.action_mailer.raise_delivery_errors = false
21
+
22
+ # Cache your content for a longer time, the default is 5.minutes
23
+ # config.after_initialize do
24
+ # SiteController.cache_timeout = 12.hours
25
+ # end
26
+
27
+ end
@@ -0,0 +1,35 @@
1
+ TrustyCms::Application.configure do
2
+ # Settings specified here will take precedence over those in config/environment.rb
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # ensure test extensions are loaded
11
+ # test_extension_dir = File.join(File.expand_path(TRUSTY_CMS_ROOT), 'test', 'fixtures', 'extensions')
12
+ # config.extension_paths.unshift test_extension_dir
13
+ # config.extension_paths.uniq!
14
+ # if !config.extensions.include?(:all)
15
+ # config.extensions.concat(Dir["#{test_extension_dir}/*"].sort.map {|x| File.basename(x).sub(/^\d+_/,'')})
16
+ # config.extensions.uniq!
17
+ # end
18
+
19
+ # Log error messages when you accidentally call methods on nil.
20
+ config.whiny_nils = true
21
+
22
+ # Show full error reports and disable caching
23
+ config.consider_all_requests_local = true
24
+ config.action_controller.perform_caching = false
25
+
26
+ # Disable request forgery protection in test environment
27
+ config.action_controller.allow_forgery_protection = false
28
+
29
+ # Tell ActionMailer not to deliver emails to the real world.
30
+ # The :test delivery method accumulates sent emails in the
31
+ # ActionMailer::Base.deliveries array.
32
+ config.action_mailer.delivery_method = :test
33
+ end
34
+
35
+
@@ -0,0 +1 @@
1
+ require 'active_record_extensions/active_record_extensions'
File without changes
@@ -0,0 +1,2 @@
1
+ #Haml::Template.options[:format] = :html5
2
+ #Haml::Template.options[:ugly] = Rails.env == 'production'
@@ -0,0 +1 @@
1
+ require 'object_extensions/object_extensions'
@@ -0,0 +1,16 @@
1
+ TrustyCms::Application.config do |config|
2
+ config.define 'admin.title', :default => "TrustyCms CMS"
3
+ config.define 'dev.host'
4
+ config.define 'local.timezone', :allow_change => true, :select_from => lambda { ActiveSupport::TimeZone::MAPPING.keys.sort }
5
+ config.define 'defaults.locale', :select_from => lambda { TrustyCms::AvailableLocales.locales }, :allow_blank => true
6
+ config.define 'defaults.page.parts', :default => "Body,Extended"
7
+ config.define 'defaults.page.status', :select_from => lambda { Status.selectable_values }, :allow_blank => false, :default => "Draft"
8
+ config.define 'defaults.page.filter', :select_from => lambda { TextFilter.descendants.map { |s| s.filter_name }.sort }, :allow_blank => true
9
+ config.define 'defaults.page.fields'
10
+ config.define 'pagination.param_name', :default => 'page'
11
+ config.define 'pagination.per_page_param_name', :default => 'per_page'
12
+ config.define 'admin.pagination.per_page', :type => :integer, :default => 50
13
+ config.define 'site.title', :default => "Your site title", :allow_blank => false
14
+ config.define 'site.host', :default => "www.example.com", :allow_blank => false
15
+ config.define 'user.allow_password_reset?', :default => true
16
+ end
@@ -0,0 +1,2 @@
1
+ # The following code alters Rails MissingSourceFile to catch errors in Ruby 1.9.3
2
+ MissingSourceFile::REGEXPS.push([/^cannot load such file -- (.+)$/i, 1])
@@ -0,0 +1,3 @@
1
+ ActionDispatch::Response.class_eval do
2
+ attr_accessor :cache_timeout
3
+ end
@@ -0,0 +1 @@
1
+ #require 'string_extensions/string_extensions'
@@ -0,0 +1 @@
1
+ #require 'symbol_extensions'
@@ -0,0 +1,2 @@
1
+ require 'fileutils'
2
+ FileUtils.mkdir_p(Rails.root.join("tmp", "stylesheets"))