brisk-bills 0.6.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 (524) hide show
  1. data/CHANGELOG +8 -0
  2. data/COPYING +674 -0
  3. data/COPYING.LESSER +165 -0
  4. data/INSTALL +5 -0
  5. data/README +22 -0
  6. data/Rakefile +11 -0
  7. data/TODO.txt +112 -0
  8. data/app/controllers/admin/activities_controller.rb +151 -0
  9. data/app/controllers/admin/activities_controller/adjustment.rb +16 -0
  10. data/app/controllers/admin/activities_controller/labor.rb +119 -0
  11. data/app/controllers/admin/activities_controller/labor/slimtimer.rb +28 -0
  12. data/app/controllers/admin/activities_controller/material.rb +20 -0
  13. data/app/controllers/admin/activities_controller/proposal.rb +15 -0
  14. data/app/controllers/admin/activities_with_prices_controller.rb +68 -0
  15. data/app/controllers/admin/adjustments_controller.rb +22 -0
  16. data/app/controllers/admin/client_accounting_controller.rb +49 -0
  17. data/app/controllers/admin/client_financial_transactions_controller.rb +24 -0
  18. data/app/controllers/admin/client_representatives_controller.rb +31 -0
  19. data/app/controllers/admin/clients_controller.rb +31 -0
  20. data/app/controllers/admin/employee_client_labor_rate_controller.rb +30 -0
  21. data/app/controllers/admin/employees_controller.rb +32 -0
  22. data/app/controllers/admin/employees_controller/slimtimer.rb +29 -0
  23. data/app/controllers/admin/invoices_controller.rb +165 -0
  24. data/app/controllers/admin/labors_controller.rb +103 -0
  25. data/app/controllers/admin/labors_controller/slimtimer.rb +31 -0
  26. data/app/controllers/admin/materials_controller.rb +24 -0
  27. data/app/controllers/admin/payments_controller.rb +75 -0
  28. data/app/controllers/admin/proposals_controller.rb +22 -0
  29. data/app/controllers/admin/settings_controller.rb +23 -0
  30. data/app/controllers/application_controller.rb +22 -0
  31. data/app/controllers/authentication_controller.rb +131 -0
  32. data/app/helpers/activity_type_model_helper.rb +194 -0
  33. data/app/helpers/admin/activities_helper.rb +110 -0
  34. data/app/helpers/admin/activities_helper/labor_helper.rb +28 -0
  35. data/app/helpers/admin/activities_helper/proposal_helper.rb +11 -0
  36. data/app/helpers/admin/activities_helper/slimtimer_helper.rb +13 -0
  37. data/app/helpers/admin/activities_with_prices_helper.rb +17 -0
  38. data/app/helpers/admin/activity_tax_controller_helper.rb +48 -0
  39. data/app/helpers/admin/activity_tax_field_helper.rb +33 -0
  40. data/app/helpers/admin/activity_type_controller_helper.rb +83 -0
  41. data/app/helpers/admin/activity_type_field_helper.rb +45 -0
  42. data/app/helpers/admin/adjustments_helper.rb +5 -0
  43. data/app/helpers/admin/client_accounting_helper.rb +13 -0
  44. data/app/helpers/admin/client_financial_transactions_helper.rb +9 -0
  45. data/app/helpers/admin/client_representatives_helper.rb +26 -0
  46. data/app/helpers/admin/clients_helper.rb +6 -0
  47. data/app/helpers/admin/employee_client_labor_rate_helper.rb +77 -0
  48. data/app/helpers/admin/employees_helper.rb +9 -0
  49. data/app/helpers/admin/employees_helper/slimtimer_helper.rb +2 -0
  50. data/app/helpers/admin/has_credential_column_helper.rb +60 -0
  51. data/app/helpers/admin/invoices_helper.rb +59 -0
  52. data/app/helpers/admin/is_active_column_helper.rb +46 -0
  53. data/app/helpers/admin/labors_helper.rb +20 -0
  54. data/app/helpers/admin/labors_helper/slimtimer_helper.rb +13 -0
  55. data/app/helpers/admin/materials_helper.rb +5 -0
  56. data/app/helpers/admin/payments_helper.rb +41 -0
  57. data/app/helpers/admin/proposals_helper.rb +3 -0
  58. data/app/helpers/admin/settings_helper.rb +8 -0
  59. data/app/helpers/admin_layout_helper.rb +91 -0
  60. data/app/helpers/application_helper.rb +27 -0
  61. data/app/helpers/authentication_helper.rb +61 -0
  62. data/app/helpers/extensible_object_helper.rb +28 -0
  63. data/app/helpers/has_credential_model_helper.rb +39 -0
  64. data/app/helpers/invoice_pdf_helper.rb +71 -0
  65. data/app/helpers/is_active_model_helper.rb +40 -0
  66. data/app/helpers/money_model_helper.rb +21 -0
  67. data/app/model_views/client_accounting.rb +5 -0
  68. data/app/model_views/client_financial_transaction.rb +15 -0
  69. data/app/model_views/invoices_with_total.rb +36 -0
  70. data/app/models/activity.rb +104 -0
  71. data/app/models/activity/adjustment.rb +34 -0
  72. data/app/models/activity/labor.rb +91 -0
  73. data/app/models/activity/labor/slimtimer.rb +28 -0
  74. data/app/models/activity/material.rb +16 -0
  75. data/app/models/activity/proposal.rb +17 -0
  76. data/app/models/activity_type.rb +2 -0
  77. data/app/models/client.rb +93 -0
  78. data/app/models/client_eventlog.rb +5 -0
  79. data/app/models/client_representative.rb +22 -0
  80. data/app/models/credential.rb +195 -0
  81. data/app/models/employee.rb +49 -0
  82. data/app/models/employee/labor.rb +13 -0
  83. data/app/models/employee/slimtimer.rb +43 -0
  84. data/app/models/employee_client_labor_rate.rb +20 -0
  85. data/app/models/invoice.rb +280 -0
  86. data/app/models/invoice_payment.rb +8 -0
  87. data/app/models/notifier.rb +85 -0
  88. data/app/models/payment.rb +108 -0
  89. data/app/models/payment_method.rb +7 -0
  90. data/app/models/setting.rb +39 -0
  91. data/app/models/slimtimer_task.rb +6 -0
  92. data/app/models/slimtimer_time_entry.rb +69 -0
  93. data/app/views/admin/activities/_adjustment_column.rhtml +23 -0
  94. data/app/views/admin/activities/_form.rhtml +20 -0
  95. data/app/views/admin/activities/_form_attribute.rhtml +12 -0
  96. data/app/views/admin/activities/_labor_column.rhtml +17 -0
  97. data/app/views/admin/activities/_material_column.rhtml +10 -0
  98. data/app/views/admin/activities/_proposal_column.rhtml +11 -0
  99. data/app/views/admin/activities_with_prices/move_to_invoice.rhtml +44 -0
  100. data/app/views/admin/activities_with_prices/move_to_invoice.rjs +9 -0
  101. data/app/views/admin/invoices/download.rpdf +224 -0
  102. data/app/views/authentication/email.rjs +9 -0
  103. data/app/views/authentication/login.rhtml +75 -0
  104. data/app/views/authentication/login.rjs +14 -0
  105. data/app/views/authentication/reset_password_via_token.rhtml +16 -0
  106. data/app/views/authentication/reset_password_via_token.rjs +6 -0
  107. data/app/views/authentication/sign_in_error.rjs +2 -0
  108. data/app/views/layouts/_navigation_tree.rhtml +15 -0
  109. data/app/views/layouts/admin.rhtml +26 -0
  110. data/app/views/layouts/public.rhtml +18 -0
  111. data/app/views/notifier/_email_footer.html.rhtml +12 -0
  112. data/app/views/notifier/_email_footer.plain.rhtml +3 -0
  113. data/app/views/notifier/_email_header.html.rhtml +53 -0
  114. data/app/views/notifier/invoice_available.html.rhtml +5 -0
  115. data/app/views/notifier/invoice_available.plain.rhtml +4 -0
  116. data/app/views/notifier/reset_password_requested.html.rhtml +15 -0
  117. data/app/views/notifier/reset_password_requested.plain.rhtml +9 -0
  118. data/bin/brisk-bills +51 -0
  119. data/config/boot.rb +164 -0
  120. data/config/environment.rb +39 -0
  121. data/config/environments/development.rb +17 -0
  122. data/config/environments/production.rb +18 -0
  123. data/config/environments/test.rb +19 -0
  124. data/config/locale/en.rb +26 -0
  125. data/config/routes.rb +20 -0
  126. data/config/secrets.yml +2 -0
  127. data/db/migrate/001_create_employees.rb +14 -0
  128. data/db/migrate/002_create_employee_slimtimers.rb +14 -0
  129. data/db/migrate/003_create_slimtimer_tasks.rb +21 -0
  130. data/db/migrate/004_create_slimtimer_time_entries.rb +25 -0
  131. data/db/migrate/005_create_clients.rb +12 -0
  132. data/db/migrate/006_create_client_representatives.rb +16 -0
  133. data/db/migrate/007_create_client_eventlogs.rb +13 -0
  134. data/db/migrate/008_create_activities.rb +17 -0
  135. data/db/migrate/009_create_activity_labors.rb +16 -0
  136. data/db/migrate/010_create_employee_client_labor_rates.rb +19 -0
  137. data/db/migrate/011_create_activity_adjustments.rb +16 -0
  138. data/db/migrate/012_create_activity_materials.rb +16 -0
  139. data/db/migrate/013_create_activity_proposals.rb +18 -0
  140. data/db/migrate/014_create_invoices.rb +16 -0
  141. data/db/migrate/015_create_payments.rb +18 -0
  142. data/db/migrate/016_create_payment_methods.rb +18 -0
  143. data/db/migrate/017_create_invoice_payments.rb +14 -0
  144. data/db/migrate/018_create_activity_types.rb +37 -0
  145. data/db/migrate/019_create_settings.rb +45 -0
  146. data/db/migrate/020_is_active_employees_clients.rb +11 -0
  147. data/db/migrate/021_create_views_and_indexes.rb +78 -0
  148. data/db/migrate/022_create_client_financial_transactions.rb +32 -0
  149. data/db/migrate/023_create_credentials_migrate_representatives.rb +133 -0
  150. data/db/migrate/024_updates_for_sales_tax.rb +91 -0
  151. data/db/migrate/025_alter_credentials_for_reset.rb +11 -0
  152. data/db/migrate/026_create_st_settings.rb +17 -0
  153. data/db/migrate/027_create_sessions.rb +16 -0
  154. data/db/migrate/028_money_to_cents.rb +136 -0
  155. data/db/schema.rb +301 -0
  156. data/lib/brisk-bills.rb +17 -0
  157. data/lib/brisk-bills/initializer.rb +100 -0
  158. data/lib/dti-navigation-menu/lib/dti-navigation-menu.rb +27 -0
  159. data/lib/generators/generator_base_extension.rb +16 -0
  160. data/lib/generators/instance/instance_generator.rb +117 -0
  161. data/lib/generators/instance/templates/databases/mysql.yml +47 -0
  162. data/lib/generators/instance/templates/instance_boot.rb +166 -0
  163. data/lib/generators/instance/templates/instance_environment.rb +65 -0
  164. data/lib/generators/instance/templates/instance_generate +18 -0
  165. data/lib/generators/instance/templates/instance_rakefile +3 -0
  166. data/lib/generators/instance/templates/instance_routes.rb +1 -0
  167. data/lib/tasks/create_last_months_invoices.rake +37 -0
  168. data/lib/tasks/credential_tasks.rake +47 -0
  169. data/lib/tasks/first_time_setup.rake +96 -0
  170. data/lib/tasks/instance.rake +27 -0
  171. data/lib/tasks/invoice_as_csv.rake +32 -0
  172. data/lib/tasks/package.rake +120 -0
  173. data/lib/tasks/slimtimer_import.rake +198 -0
  174. data/lib/utilities.rb +18 -0
  175. data/log/.keep +0 -0
  176. data/public/.htaccess +40 -0
  177. data/public/404.html +30 -0
  178. data/public/500.html +30 -0
  179. data/public/blank.html +33 -0
  180. data/public/blank_iframe.html +2 -0
  181. data/public/dispatch.cgi +10 -0
  182. data/public/dispatch.fcgi +24 -0
  183. data/public/dispatch.rb +10 -0
  184. data/public/favicon.ico +0 -0
  185. data/public/images/active_scaffold/DO_NOT_EDIT +2 -0
  186. data/public/images/active_scaffold/default/add.gif +0 -0
  187. data/public/images/active_scaffold/default/arrow_down.gif +0 -0
  188. data/public/images/active_scaffold/default/arrow_up.gif +0 -0
  189. data/public/images/active_scaffold/default/close.gif +0 -0
  190. data/public/images/active_scaffold/default/cross.png +0 -0
  191. data/public/images/active_scaffold/default/indicator-small.gif +0 -0
  192. data/public/images/active_scaffold/default/indicator.gif +0 -0
  193. data/public/images/active_scaffold/default/magnifier.png +0 -0
  194. data/public/images/background.gif +0 -0
  195. data/public/images/brisk-bills-logo.gif +0 -0
  196. data/public/images/calendar_date_select/calendar.gif +0 -0
  197. data/public/images/dti-logo.gif +0 -0
  198. data/public/images/dti-logo.jpg +0 -0
  199. data/public/images/favicon.ico +0 -0
  200. data/public/images/invoice-background.jpg +0 -0
  201. data/public/images/login-form-spinner.gif +0 -0
  202. data/public/images/nav-arrow.gif +0 -0
  203. data/public/images/notice-error.gif +0 -0
  204. data/public/images/notice-info.gif +0 -0
  205. data/public/images/rails.png +0 -0
  206. data/public/javascripts/active_scaffold/DO_NOT_EDIT +2 -0
  207. data/public/javascripts/active_scaffold/default/active_scaffold.js +430 -0
  208. data/public/javascripts/active_scaffold/default/dhtml_history.js +867 -0
  209. data/public/javascripts/active_scaffold/default/form_enhancements.js +114 -0
  210. data/public/javascripts/active_scaffold/default/rico_corner.js +370 -0
  211. data/public/javascripts/application.js +2 -0
  212. data/public/javascripts/briskbills-quick-helpers.js +9 -0
  213. data/public/javascripts/builder.js +136 -0
  214. data/public/javascripts/controls.js +963 -0
  215. data/public/javascripts/dragdrop.js +973 -0
  216. data/public/javascripts/effects.js +1128 -0
  217. data/public/javascripts/modalbox.js +573 -0
  218. data/public/javascripts/prototype.js +4320 -0
  219. data/public/javascripts/scriptaculous.js +58 -0
  220. data/public/javascripts/shadedborder.js +249 -0
  221. data/public/javascripts/slider.js +275 -0
  222. data/public/javascripts/sound.js +55 -0
  223. data/public/javascripts/unittest.js +568 -0
  224. data/public/robots.txt +1 -0
  225. data/public/stylesheets/active_scaffold/DO_NOT_EDIT +2 -0
  226. data/public/stylesheets/active_scaffold/default/stylesheet-ie.css +35 -0
  227. data/public/stylesheets/active_scaffold/default/stylesheet.css +809 -0
  228. data/public/stylesheets/admin/global.css +152 -0
  229. data/public/stylesheets/admin/pages.css +137 -0
  230. data/public/stylesheets/admin/screen.css +3 -0
  231. data/public/stylesheets/admin/structure.css +88 -0
  232. data/public/stylesheets/modalbox.css +95 -0
  233. data/public/stylesheets/public/global.css +36 -0
  234. data/public/stylesheets/public/pages.css +105 -0
  235. data/public/stylesheets/public/screen.css +3 -0
  236. data/public/stylesheets/public/structure.css +0 -0
  237. data/public/stylesheets/spinner.gif +0 -0
  238. data/script/about +3 -0
  239. data/script/breakpointer +3 -0
  240. data/script/console +3 -0
  241. data/script/dbconsole +3 -0
  242. data/script/destroy +3 -0
  243. data/script/generate +3 -0
  244. data/script/performance/benchmarker +3 -0
  245. data/script/performance/profiler +3 -0
  246. data/script/performance/request +3 -0
  247. data/script/plugin +3 -0
  248. data/script/process/inspector +3 -0
  249. data/script/process/reaper +3 -0
  250. data/script/process/spawner +3 -0
  251. data/script/runner +3 -0
  252. data/script/server +3 -0
  253. data/test/fixtures/activities.yml +28 -0
  254. data/test/fixtures/activity_adjustments.yml +7 -0
  255. data/test/fixtures/activity_labors.yml +25 -0
  256. data/test/fixtures/activity_materials.yml +7 -0
  257. data/test/fixtures/activity_proposals.yml +7 -0
  258. data/test/fixtures/activity_types.yml +23 -0
  259. data/test/fixtures/client_eventlogs.yml +5 -0
  260. data/test/fixtures/client_financial_transactions.yml +7 -0
  261. data/test/fixtures/client_representatives.yml +56 -0
  262. data/test/fixtures/clients.yml +172 -0
  263. data/test/fixtures/credentials.yml +34 -0
  264. data/test/fixtures/employee_client_labor_rates.yml +365 -0
  265. data/test/fixtures/employee_slimtimers.yml +19 -0
  266. data/test/fixtures/employees.yml +22 -0
  267. data/test/fixtures/invoice_payments.yml +7 -0
  268. data/test/fixtures/invoices.yml +7 -0
  269. data/test/fixtures/payment_methods.yml +7 -0
  270. data/test/fixtures/payments.yml +7 -0
  271. data/test/fixtures/settings.yml +7 -0
  272. data/test/fixtures/slimtimer_tasks.yml +5 -0
  273. data/test/fixtures/slimtimer_time_entries.yml +5 -0
  274. data/test/functional/admin/activities_controller_test.rb +8 -0
  275. data/test/functional/admin/adjustments_controller_test.rb +8 -0
  276. data/test/functional/admin/client_accounting_controller_test.rb +8 -0
  277. data/test/functional/admin/client_financial_transactions_controller_test.rb +8 -0
  278. data/test/functional/admin/client_representatives_controller_test.rb +8 -0
  279. data/test/functional/admin/clients_controller_test.rb +8 -0
  280. data/test/functional/admin/employee_client_labor_rate_controller_test.rb +8 -0
  281. data/test/functional/admin/employees/slimtimer_controller_test.rb +8 -0
  282. data/test/functional/admin/employees_controller_test.rb +8 -0
  283. data/test/functional/admin/invoices_controller_test.rb +8 -0
  284. data/test/functional/admin/labors_controller_test.rb +8 -0
  285. data/test/functional/admin/materials_controller_test.rb +8 -0
  286. data/test/functional/admin/payments_controller_test.rb +8 -0
  287. data/test/functional/admin/proposals_controller_test.rb +8 -0
  288. data/test/functional/admin/settings_controller_test.rb +8 -0
  289. data/test/functional/authentication_controller_test.rb +8 -0
  290. data/test/test_helper.rb +30 -0
  291. data/test/test_unit_factory_helper.rb +154 -0
  292. data/test/unit/activity/adjustment_test.rb +8 -0
  293. data/test/unit/activity/labor_test.rb +279 -0
  294. data/test/unit/activity/material_test.rb +8 -0
  295. data/test/unit/activity/proposal_test.rb +8 -0
  296. data/test/unit/activity_test.rb +83 -0
  297. data/test/unit/activity_type_test.rb +8 -0
  298. data/test/unit/client_eventlog_test.rb +10 -0
  299. data/test/unit/client_financial_transaction_test.rb +8 -0
  300. data/test/unit/client_representative_test.rb +10 -0
  301. data/test/unit/client_test.rb +24 -0
  302. data/test/unit/credential_test.rb +217 -0
  303. data/test/unit/employee/slimtimer_test.rb +10 -0
  304. data/test/unit/employee_client_labor_rate_test.rb +8 -0
  305. data/test/unit/employee_test.rb +25 -0
  306. data/test/unit/invoice_payment_test.rb +8 -0
  307. data/test/unit/invoice_test.rb +459 -0
  308. data/test/unit/notifier_test.rb +9 -0
  309. data/test/unit/payment_method_test.rb +8 -0
  310. data/test/unit/payment_test.rb +155 -0
  311. data/test/unit/setting_test.rb +8 -0
  312. data/test/unit/slimtimer_task_test.rb +10 -0
  313. data/test/unit/slimtimer_time_entry_test.rb +132 -0
  314. data/vendor/plugins/InlineAttachment-0.3.0-modified/README +79 -0
  315. data/vendor/plugins/InlineAttachment-0.3.0-modified/init.rb +2 -0
  316. data/vendor/plugins/InlineAttachment-0.3.0-modified/lib/inline_attachment.rb +136 -0
  317. data/vendor/plugins/InlineAttachment-0.3.0-modified/lib/tmail_content_id.rb +40 -0
  318. data/vendor/plugins/active_scaffold/CHANGELOG +152 -0
  319. data/vendor/plugins/active_scaffold/MIT-LICENSE +20 -0
  320. data/vendor/plugins/active_scaffold/README +28 -0
  321. data/vendor/plugins/active_scaffold/Rakefile +24 -0
  322. data/vendor/plugins/active_scaffold/environment.rb +17 -0
  323. data/vendor/plugins/active_scaffold/frontends/default/images/add.gif +0 -0
  324. data/vendor/plugins/active_scaffold/frontends/default/images/arrow_down.gif +0 -0
  325. data/vendor/plugins/active_scaffold/frontends/default/images/arrow_up.gif +0 -0
  326. data/vendor/plugins/active_scaffold/frontends/default/images/close.gif +0 -0
  327. data/vendor/plugins/active_scaffold/frontends/default/images/cross.png +0 -0
  328. data/vendor/plugins/active_scaffold/frontends/default/images/indicator-small.gif +0 -0
  329. data/vendor/plugins/active_scaffold/frontends/default/images/indicator.gif +0 -0
  330. data/vendor/plugins/active_scaffold/frontends/default/images/magnifier.png +0 -0
  331. data/vendor/plugins/active_scaffold/frontends/default/javascripts/active_scaffold.js +430 -0
  332. data/vendor/plugins/active_scaffold/frontends/default/javascripts/dhtml_history.js +867 -0
  333. data/vendor/plugins/active_scaffold/frontends/default/javascripts/form_enhancements.js +114 -0
  334. data/vendor/plugins/active_scaffold/frontends/default/javascripts/rico_corner.js +370 -0
  335. data/vendor/plugins/active_scaffold/frontends/default/stylesheets/stylesheet-ie.css +35 -0
  336. data/vendor/plugins/active_scaffold/frontends/default/stylesheets/stylesheet.css +809 -0
  337. data/vendor/plugins/active_scaffold/frontends/default/views/_add_existing_form.html.erb +40 -0
  338. data/vendor/plugins/active_scaffold/frontends/default/views/_create_form.html.erb +49 -0
  339. data/vendor/plugins/active_scaffold/frontends/default/views/_create_form_on_list.html.erb +38 -0
  340. data/vendor/plugins/active_scaffold/frontends/default/views/_field_search.html.erb +45 -0
  341. data/vendor/plugins/active_scaffold/frontends/default/views/_form.html.erb +18 -0
  342. data/vendor/plugins/active_scaffold/frontends/default/views/_form_association.html.erb +20 -0
  343. data/vendor/plugins/active_scaffold/frontends/default/views/_form_association_footer.html.erb +42 -0
  344. data/vendor/plugins/active_scaffold/frontends/default/views/_form_association_header.html.erb +10 -0
  345. data/vendor/plugins/active_scaffold/frontends/default/views/_form_association_record.html.erb +27 -0
  346. data/vendor/plugins/active_scaffold/frontends/default/views/_form_attribute.html.erb +12 -0
  347. data/vendor/plugins/active_scaffold/frontends/default/views/_form_hidden_attribute.html.erb +1 -0
  348. data/vendor/plugins/active_scaffold/frontends/default/views/_form_messages.html.erb +5 -0
  349. data/vendor/plugins/active_scaffold/frontends/default/views/_horizontal_subform.html.erb +21 -0
  350. data/vendor/plugins/active_scaffold/frontends/default/views/_list.html.erb +37 -0
  351. data/vendor/plugins/active_scaffold/frontends/default/views/_list_actions.html.erb +13 -0
  352. data/vendor/plugins/active_scaffold/frontends/default/views/_list_calculations.html.erb +22 -0
  353. data/vendor/plugins/active_scaffold/frontends/default/views/_list_column_headings.html.erb +32 -0
  354. data/vendor/plugins/active_scaffold/frontends/default/views/_list_header.html.erb +14 -0
  355. data/vendor/plugins/active_scaffold/frontends/default/views/_list_inline_adapter.html.erb +9 -0
  356. data/vendor/plugins/active_scaffold/frontends/default/views/_list_pagination_links.html.erb +30 -0
  357. data/vendor/plugins/active_scaffold/frontends/default/views/_list_record.html.erb +35 -0
  358. data/vendor/plugins/active_scaffold/frontends/default/views/_live_search.html.erb +25 -0
  359. data/vendor/plugins/active_scaffold/frontends/default/views/_messages.html.erb +10 -0
  360. data/vendor/plugins/active_scaffold/frontends/default/views/_nested.html.erb +44 -0
  361. data/vendor/plugins/active_scaffold/frontends/default/views/_search.html.erb +21 -0
  362. data/vendor/plugins/active_scaffold/frontends/default/views/_show.html.erb +8 -0
  363. data/vendor/plugins/active_scaffold/frontends/default/views/_show_columns.html.erb +11 -0
  364. data/vendor/plugins/active_scaffold/frontends/default/views/_update_actions.html.erb +9 -0
  365. data/vendor/plugins/active_scaffold/frontends/default/views/_update_form.html.erb +53 -0
  366. data/vendor/plugins/active_scaffold/frontends/default/views/add_existing.js.rjs +16 -0
  367. data/vendor/plugins/active_scaffold/frontends/default/views/add_existing_form.html.erb +5 -0
  368. data/vendor/plugins/active_scaffold/frontends/default/views/create.html.erb +5 -0
  369. data/vendor/plugins/active_scaffold/frontends/default/views/delete.html.erb +13 -0
  370. data/vendor/plugins/active_scaffold/frontends/default/views/destroy.js.rjs +10 -0
  371. data/vendor/plugins/active_scaffold/frontends/default/views/edit_associated.js.rjs +15 -0
  372. data/vendor/plugins/active_scaffold/frontends/default/views/field_search.html.erb +5 -0
  373. data/vendor/plugins/active_scaffold/frontends/default/views/form_messages.js.rjs +1 -0
  374. data/vendor/plugins/active_scaffold/frontends/default/views/form_messages_on_create.js.rjs +2 -0
  375. data/vendor/plugins/active_scaffold/frontends/default/views/form_messages_on_update.js.rjs +2 -0
  376. data/vendor/plugins/active_scaffold/frontends/default/views/list.html.erb +44 -0
  377. data/vendor/plugins/active_scaffold/frontends/default/views/on_create.js.rjs +25 -0
  378. data/vendor/plugins/active_scaffold/frontends/default/views/on_update.js.rjs +11 -0
  379. data/vendor/plugins/active_scaffold/frontends/default/views/search.html.erb +5 -0
  380. data/vendor/plugins/active_scaffold/frontends/default/views/show.html.erb +5 -0
  381. data/vendor/plugins/active_scaffold/frontends/default/views/update.html.erb +8 -0
  382. data/vendor/plugins/active_scaffold/frontends/default/views/update_column.js.rjs +12 -0
  383. data/vendor/plugins/active_scaffold/init.rb +18 -0
  384. data/vendor/plugins/active_scaffold/install.rb +40 -0
  385. data/vendor/plugins/active_scaffold/install_assets.rb +36 -0
  386. data/vendor/plugins/active_scaffold/lib/active_record_permissions.rb +123 -0
  387. data/vendor/plugins/active_scaffold/lib/active_scaffold.rb +144 -0
  388. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/core.rb +102 -0
  389. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/create.rb +120 -0
  390. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/delete.rb +46 -0
  391. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/field_search.rb +46 -0
  392. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/list.rb +77 -0
  393. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/live_search.rb +46 -0
  394. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/nested.rb +215 -0
  395. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/search.rb +40 -0
  396. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/show.rb +34 -0
  397. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/subform.rb +17 -0
  398. data/vendor/plugins/active_scaffold/lib/active_scaffold/actions/update.rb +114 -0
  399. data/vendor/plugins/active_scaffold/lib/active_scaffold/attribute_params.rb +185 -0
  400. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/base.rb +37 -0
  401. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/core.rb +189 -0
  402. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/create.rb +43 -0
  403. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/delete.rb +25 -0
  404. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/field_search.rb +53 -0
  405. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/form.rb +49 -0
  406. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/list.rb +134 -0
  407. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/live_search.rb +52 -0
  408. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/nested.rb +31 -0
  409. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/search.rb +52 -0
  410. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/show.rb +39 -0
  411. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/subform.rb +33 -0
  412. data/vendor/plugins/active_scaffold/lib/active_scaffold/config/update.rb +32 -0
  413. data/vendor/plugins/active_scaffold/lib/active_scaffold/configurable.rb +29 -0
  414. data/vendor/plugins/active_scaffold/lib/active_scaffold/constraints.rb +178 -0
  415. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/action_columns.rb +97 -0
  416. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/action_link.rb +136 -0
  417. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/action_links.rb +47 -0
  418. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/actions.rb +45 -0
  419. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/column.rb +297 -0
  420. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/columns.rb +75 -0
  421. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/error_message.rb +24 -0
  422. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/set.rb +62 -0
  423. data/vendor/plugins/active_scaffold/lib/active_scaffold/data_structures/sorting.rb +89 -0
  424. data/vendor/plugins/active_scaffold/lib/active_scaffold/finder.rb +234 -0
  425. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/association_helpers.rb +40 -0
  426. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/controller_helpers.rb +25 -0
  427. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/country_helpers.rb +348 -0
  428. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/form_column_helpers.rb +267 -0
  429. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/id_helpers.rb +125 -0
  430. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/list_column_helpers.rb +178 -0
  431. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/pagination_helpers.rb +37 -0
  432. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/search_column_helpers.rb +172 -0
  433. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/show_column_helpers.rb +46 -0
  434. data/vendor/plugins/active_scaffold/lib/active_scaffold/helpers/view_helpers.rb +196 -0
  435. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/en.rb +66 -0
  436. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/es.yml +64 -0
  437. data/vendor/plugins/active_scaffold/lib/active_scaffold/locale/hu.yml +62 -0
  438. data/vendor/plugins/active_scaffold/lib/bridges/bridge.rb +52 -0
  439. data/vendor/plugins/active_scaffold/lib/bridges/calendar_date_select/bridge.rb +11 -0
  440. data/vendor/plugins/active_scaffold/lib/bridges/calendar_date_select/lib/as_cds_bridge.rb +53 -0
  441. data/vendor/plugins/active_scaffold/lib/bridges/file_column/bridge.rb +12 -0
  442. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/as_file_column_bridge.rb +49 -0
  443. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/file_column_helpers.rb +51 -0
  444. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/form_ui.rb +32 -0
  445. data/vendor/plugins/active_scaffold/lib/bridges/file_column/lib/list_ui.rb +26 -0
  446. data/vendor/plugins/active_scaffold/lib/bridges/file_column/test/functional/file_column_keep_test.rb +43 -0
  447. data/vendor/plugins/active_scaffold/lib/bridges/file_column/test/mock_model.rb +9 -0
  448. data/vendor/plugins/active_scaffold/lib/bridges/file_column/test/test_helper.rb +15 -0
  449. data/vendor/plugins/active_scaffold/lib/dhtml_confirm.rb +54 -0
  450. data/vendor/plugins/active_scaffold/lib/extensions/action_controller_rendering.rb +20 -0
  451. data/vendor/plugins/active_scaffold/lib/extensions/action_view_rendering.rb +87 -0
  452. data/vendor/plugins/active_scaffold/lib/extensions/array.rb +7 -0
  453. data/vendor/plugins/active_scaffold/lib/extensions/component_response_with_namespacing.rb +17 -0
  454. data/vendor/plugins/active_scaffold/lib/extensions/generic_view_paths.rb +33 -0
  455. data/vendor/plugins/active_scaffold/lib/extensions/localize.rb +10 -0
  456. data/vendor/plugins/active_scaffold/lib/extensions/name_option_for_datetime.rb +12 -0
  457. data/vendor/plugins/active_scaffold/lib/extensions/nil_id_in_url_params.rb +7 -0
  458. data/vendor/plugins/active_scaffold/lib/extensions/resources.rb +26 -0
  459. data/vendor/plugins/active_scaffold/lib/extensions/reverse_associations.rb +56 -0
  460. data/vendor/plugins/active_scaffold/lib/extensions/to_label.rb +8 -0
  461. data/vendor/plugins/active_scaffold/lib/extensions/unsaved_associated.rb +61 -0
  462. data/vendor/plugins/active_scaffold/lib/extensions/unsaved_record.rb +20 -0
  463. data/vendor/plugins/active_scaffold/lib/extensions/usa_state.rb +46 -0
  464. data/vendor/plugins/active_scaffold/lib/paginator.rb +136 -0
  465. data/vendor/plugins/active_scaffold/lib/responds_to_parent.rb +68 -0
  466. data/vendor/plugins/active_scaffold/public/blank.html +33 -0
  467. data/vendor/plugins/active_scaffold/test/bridges/bridge_test.rb +47 -0
  468. data/vendor/plugins/active_scaffold/test/config/create_test.rb +55 -0
  469. data/vendor/plugins/active_scaffold/test/config/list_test.rb +74 -0
  470. data/vendor/plugins/active_scaffold/test/config/update_test.rb +17 -0
  471. data/vendor/plugins/active_scaffold/test/const_mocker.rb +36 -0
  472. data/vendor/plugins/active_scaffold/test/data_structures/action_columns_test.rb +119 -0
  473. data/vendor/plugins/active_scaffold/test/data_structures/action_link_test.rb +78 -0
  474. data/vendor/plugins/active_scaffold/test/data_structures/action_links_test.rb +78 -0
  475. data/vendor/plugins/active_scaffold/test/data_structures/actions_test.rb +25 -0
  476. data/vendor/plugins/active_scaffold/test/data_structures/association_column_test.rb +41 -0
  477. data/vendor/plugins/active_scaffold/test/data_structures/column_test.rb +161 -0
  478. data/vendor/plugins/active_scaffold/test/data_structures/columns_test.rb +69 -0
  479. data/vendor/plugins/active_scaffold/test/data_structures/error_message_test.rb +28 -0
  480. data/vendor/plugins/active_scaffold/test/data_structures/set_test.rb +86 -0
  481. data/vendor/plugins/active_scaffold/test/data_structures/sorting_test.rb +96 -0
  482. data/vendor/plugins/active_scaffold/test/data_structures/standard_column_test.rb +34 -0
  483. data/vendor/plugins/active_scaffold/test/data_structures/virtual_column_test.rb +34 -0
  484. data/vendor/plugins/active_scaffold/test/extensions/active_record_test.rb +45 -0
  485. data/vendor/plugins/active_scaffold/test/extensions/array.rb +12 -0
  486. data/vendor/plugins/active_scaffold/test/misc/active_record_permissions.rb +154 -0
  487. data/vendor/plugins/active_scaffold/test/misc/configurable_test.rb +96 -0
  488. data/vendor/plugins/active_scaffold/test/misc/constraints_test.rb +175 -0
  489. data/vendor/plugins/active_scaffold/test/misc/finder_test.rb +70 -0
  490. data/vendor/plugins/active_scaffold/test/misc/lang_test.rb +12 -0
  491. data/vendor/plugins/active_scaffold/test/model_stub.rb +39 -0
  492. data/vendor/plugins/active_scaffold/test/run_all.rb +8 -0
  493. data/vendor/plugins/active_scaffold/test/test_helper.rb +13 -0
  494. data/vendor/plugins/active_scaffold/uninstall.rb +12 -0
  495. data/vendor/plugins/active_scaffold_as_gem/init.rb +21 -0
  496. data/vendor/plugins/active_scaffold_form_observation/init.rb +4 -0
  497. data/vendor/plugins/active_scaffold_form_observation/lib/active_scaffold_form_observation.rb +99 -0
  498. data/vendor/plugins/active_scaffold_full_refresh/init.rb +7 -0
  499. data/vendor/plugins/active_scaffold_full_refresh/lib/active_scaffold_full_refresh.rb +46 -0
  500. data/vendor/plugins/active_scaffold_move_column_under/init.rb +17 -0
  501. data/vendor/plugins/acts_as_money/README +24 -0
  502. data/vendor/plugins/acts_as_money/Rakefile +22 -0
  503. data/vendor/plugins/acts_as_money/init.rb +3 -0
  504. data/vendor/plugins/acts_as_money/install.rb +1 -0
  505. data/vendor/plugins/acts_as_money/lib/acts_as_money.rb +27 -0
  506. data/vendor/plugins/acts_as_money/tasks/money_tasks.rake +4 -0
  507. data/vendor/plugins/acts_as_money/test/money_test.rb +8 -0
  508. data/vendor/plugins/association_hacks/init.rb +1 -0
  509. data/vendor/plugins/association_hacks/lib/association_hacks.rb +27 -0
  510. data/vendor/plugins/railspdf/CHANGELOG +5 -0
  511. data/vendor/plugins/railspdf/README +88 -0
  512. data/vendor/plugins/railspdf/Rakefile +22 -0
  513. data/vendor/plugins/railspdf/TODO +1 -0
  514. data/vendor/plugins/railspdf/init.rb +3 -0
  515. data/vendor/plugins/railspdf/lib/railspdf.rb +65 -0
  516. data/vendor/plugins/railspdf/test/railspdf_test.rb +14 -0
  517. data/vendor/plugins/railspdf/test/test_helper.rb +9 -0
  518. data/vendor/plugins/render_component/README +37 -0
  519. data/vendor/plugins/render_component/Rakefile +22 -0
  520. data/vendor/plugins/render_component/init.rb +2 -0
  521. data/vendor/plugins/render_component/lib/components.rb +142 -0
  522. data/vendor/plugins/render_component/test/abstract_unit.rb +8 -0
  523. data/vendor/plugins/render_component/test/components_test.rb +140 -0
  524. metadata +657 -0
@@ -0,0 +1,46 @@
1
+ module ActiveScaffold
2
+ module Helpers
3
+ # Helpers that assist with the rendering of a List Column
4
+ module ShowColumnHelpers
5
+ def show_column_value(record, column)
6
+ # check for an override helper
7
+ if show_column_override? column
8
+ # we only pass the record as the argument. we previously also passed the formatted_value,
9
+ # but mike perham pointed out that prohibited the usage of overrides to improve on the
10
+ # performance of our default formatting. see issue #138.
11
+ send(show_column_override(column), record)
12
+ # second, check if the dev has specified a valid list_ui for this column
13
+ elsif column.list_ui and override_show_column_ui?(column.list_ui)
14
+ send(override_show_column_ui(column.list_ui), column, record)
15
+ else
16
+ if override_show_column_ui?(column.column.type)
17
+ send(override_show_column_ui(column.column.type), column, record)
18
+ else
19
+ get_column_value(record, column)
20
+ end
21
+ end
22
+ end
23
+
24
+ def active_scaffold_show_text(column, record)
25
+ simple_format(get_column_value(record, column))
26
+ end
27
+
28
+ def show_column_override(column)
29
+ "#{column.name.to_s.gsub('?', '')}_show_column" # parse out any question marks (see issue 227)
30
+ end
31
+
32
+ def show_column_override?(column)
33
+ respond_to?(show_column_override(column))
34
+ end
35
+
36
+ def override_show_column_ui?(list_ui)
37
+ respond_to?(override_show_column_ui(list_ui))
38
+ end
39
+
40
+ # the naming convention for overriding show types with helpers
41
+ def override_show_column_ui(list_ui)
42
+ "active_scaffold_show_#{list_ui}"
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,196 @@
1
+ module ActiveScaffold
2
+ module Helpers
3
+ # All extra helpers that should be included in the View.
4
+ # Also a dumping ground for uncategorized helpers.
5
+ module ViewHelpers
6
+ include ActiveScaffold::Helpers::IdHelpers
7
+ include ActiveScaffold::Helpers::AssociationHelpers
8
+ include ActiveScaffold::Helpers::PaginationHelpers
9
+ include ActiveScaffold::Helpers::ListColumnHelpers
10
+ include ActiveScaffold::Helpers::ShowColumnHelpers
11
+ include ActiveScaffold::Helpers::FormColumnHelpers
12
+ include ActiveScaffold::Helpers::SearchColumnHelpers
13
+
14
+ ##
15
+ ## Delegates
16
+ ##
17
+
18
+ # access to the configuration variable
19
+ def active_scaffold_config
20
+ @controller.class.active_scaffold_config
21
+ end
22
+
23
+ def active_scaffold_config_for(*args)
24
+ @controller.class.active_scaffold_config_for(*args)
25
+ end
26
+
27
+ def active_scaffold_controller_for(*args)
28
+ @controller.class.active_scaffold_controller_for(*args)
29
+ end
30
+
31
+ ##
32
+ ## Uncategorized
33
+ ##
34
+
35
+ def generate_temporary_id
36
+ (Time.now.to_f*1000).to_i.to_s
37
+ end
38
+
39
+ # Turns [[label, value]] into <option> tags
40
+ # Takes optional parameter of :include_blank
41
+ def option_tags_for(select_options, options = {})
42
+ select_options.insert(0,[as_(:_select_),nil]) if options[:include_blank]
43
+ select_options.collect do |option|
44
+ label, value = option[0], option[1]
45
+ value.nil? ? "<option value="">#{label}</option>" : "<option value=\"#{value}\">#{label}</option>"
46
+ end
47
+ end
48
+
49
+ # Should this column be displayed in the subform?
50
+ def in_subform?(column, parent_record)
51
+ return true unless column.association
52
+
53
+ # Polymorphic associations can't appear because they *might* be the reverse association, and because you generally don't assign an association from the polymorphic side ... I think.
54
+ return false if column.polymorphic_association?
55
+
56
+ # We don't have the UI to currently handle habtm in subforms
57
+ return false if column.association.macro == :has_and_belongs_to_many
58
+
59
+ # A column shouldn't be in the subform if it's the reverse association to the parent
60
+ return false if column.association.reverse_for?(parent_record.class)
61
+ #return false if column.association.klass == parent_record.class
62
+
63
+ return true
64
+ end
65
+
66
+ def form_remote_upload_tag(url_for_options = {}, options = {})
67
+ onsubmits = options[:onsubmit] ? [ options[:onsubmit] ] : [ ]
68
+ # simulate a "loading". the setTimeout prevents the Form.disable from being called before the submit, so that data actually posts.
69
+ onsubmits << "setTimeout(function() { #{options[:loading]} }, 10); "
70
+ onsubmits << "return true" # make sure the form still submits
71
+
72
+ options[:onsubmit] = onsubmits * ';'
73
+ options[:target] = action_iframe_id(url_for_options)
74
+ options[:multipart] = true
75
+
76
+ output=""
77
+ output << "<iframe id='#{action_iframe_id(url_for_options)}' name='#{action_iframe_id(url_for_options)}' style='display:none'></iframe>"
78
+ output << form_tag(url_for_options, options)
79
+ end
80
+
81
+ # Provides list of javascripts to include with +javascript_include_tag+
82
+ # You can use this with your javascripts like
83
+ # <%= javascript_include_tag :defaults, 'your_own_cool_script', active_scaffold_javascripts, :cache => true %>
84
+ def active_scaffold_javascripts(frontend = :default)
85
+ ActiveScaffold::Config::Core.javascripts(frontend).collect do |name|
86
+ ActiveScaffold::Config::Core.asset_path(name, frontend)
87
+ end
88
+ end
89
+
90
+ # Provides stylesheets to include with +stylesheet_link_tag+
91
+ def active_scaffold_stylesheets(frontend = :default)
92
+ [ActiveScaffold::Config::Core.asset_path("stylesheet.css", frontend)]
93
+ end
94
+
95
+ # Provides stylesheets for IE to include with +stylesheet_link_tag+
96
+ def active_scaffold_ie_stylesheets(frontend = :default)
97
+ [ActiveScaffold::Config::Core.asset_path("stylesheet-ie.css", frontend)]
98
+ end
99
+
100
+ # easy way to include ActiveScaffold assets
101
+ def active_scaffold_includes(*args)
102
+ frontend = args.first.is_a?(Symbol) ? args.shift : :default
103
+ options = args.first.is_a?(Hash) ? args.shift : {}
104
+ js = javascript_include_tag(*active_scaffold_javascripts(frontend).push(options))
105
+
106
+ css = stylesheet_link_tag(*active_scaffold_stylesheets(frontend).push(options))
107
+ ie_css = stylesheet_link_tag(*active_scaffold_ie_stylesheets(frontend).push(options))
108
+
109
+ js + "\n" + css + "\n<!--[if IE]>" + ie_css + "<![endif]-->\n"
110
+ end
111
+
112
+ # a general-use loading indicator (the "stuff is happening, please wait" feedback)
113
+ def loading_indicator_tag(options)
114
+ image_tag "/images/active_scaffold/default/indicator.gif", :style => "visibility:hidden;", :id => loading_indicator_id(options), :alt => "loading indicator", :class => "loading-indicator"
115
+ end
116
+
117
+ # Creates a javascript-based link that toggles the visibility of some element on the page.
118
+ # By default, it toggles the visibility of the sibling after the one it's nested in. You may pass custom javascript logic in options[:of] to change that, though. For example, you could say :of => '$("my_div_id")'.
119
+ # You may also flag whether the other element is visible by default or not, and the initial text will adjust accordingly.
120
+ def link_to_visibility_toggle(options = {})
121
+ options[:of] ||= '$(this.parentNode).next()'
122
+ options[:default_visible] = true if options[:default_visible].nil?
123
+
124
+ link_text = options[:default_visible] ? as_(:hide) : as_(:show)
125
+ link_to_function link_text, "e = #{options[:of]}; e.toggle(); this.innerHTML = (e.style.display == 'none') ? '#{as_(:show)}' : '#{as_(:hide)}'", :class => 'visibility-toggle'
126
+ end
127
+
128
+ def render_action_link(link, url_options)
129
+ url_options = url_options.clone
130
+ url_options[:action] = link.action
131
+ url_options[:controller] = link.controller if link.controller
132
+ url_options.delete(:search) if link.controller and link.controller.to_s != params[:controller]
133
+ url_options.merge! link.parameters if link.parameters
134
+
135
+ html_options = link.html_options.merge({:class => link.action})
136
+ if link.inline?
137
+ # NOTE this is in url_options instead of html_options on purpose. the reason is that the client-side
138
+ # action link javascript needs to submit the proper method, but the normal html_options[:method]
139
+ # argument leaves no way to extract the proper method from the rendered tag.
140
+ url_options[:_method] = link.method
141
+
142
+ if link.method != :get and respond_to?(:protect_against_forgery?) and protect_against_forgery?
143
+ url_options[:authenticity_token] = form_authenticity_token
144
+ end
145
+
146
+ # robd: protect against submitting get links as forms, since this causes annoying
147
+ # 'Do you wish to resubmit your form?' messages whenever you go back and forwards.
148
+ elsif link.method != :get
149
+ # Needs to be in html_options to as the adding _method to the url is no longer supported by Rails
150
+ html_options[:method] = link.method
151
+ end
152
+
153
+ html_options[:confirm] = link.confirm if link.confirm?
154
+ html_options[:position] = link.position if link.position and link.inline?
155
+ html_options[:class] += ' action' if link.inline?
156
+ html_options[:popup] = true if link.popup?
157
+ html_options[:id] = action_link_id(url_options[:action],url_options[:id] || url_options[:parent_id])
158
+
159
+ if link.dhtml_confirm?
160
+ html_options[:class] += ' action' if !link.inline?
161
+ html_options[:page_link] = 'true' if !link.inline?
162
+ html_options[:dhtml_confirm] = link.dhtml_confirm.value
163
+ html_options[:onclick] = link.dhtml_confirm.onclick_function(controller,action_link_id(url_options[:action],url_options[:id] || url_options[:parent_id]))
164
+ end
165
+ html_options[:class] += " #{link.html_options[:class]}" unless link.html_options[:class].blank?
166
+
167
+ # issue 260, use url_options[:link] if it exists. This prevents DB data from being localized.
168
+ label = url_options.delete(:link) || link.label
169
+ link_to label, url_options, html_options
170
+ end
171
+
172
+ def column_class(column, column_value)
173
+ classes = []
174
+ classes << "#{column.name}-column"
175
+ classes << column.css_class unless column.css_class.nil?
176
+ classes << 'empty' if column_empty? column_value
177
+ classes << 'sorted' if active_scaffold_config.list.user.sorting.sorts_on?(column)
178
+ classes << 'numeric' if column.column and [:decimal, :float, :integer].include?(column.column.type)
179
+ classes.join(' ')
180
+ end
181
+
182
+ def column_empty?(column_value)
183
+ empty = column_value.nil?
184
+ empty ||= column_value.empty? if column_value.respond_to? :empty?
185
+ empty ||= (column_value == '&nbsp;')
186
+ empty ||= (column_value == active_scaffold_config.list.empty_field_text)
187
+ return empty
188
+ end
189
+
190
+ def column_calculation(column)
191
+ calculation = active_scaffold_config.model.calculate(column.calculate, column.name, :conditions => controller.send(:all_conditions),
192
+ :joins => controller.send(:joins_for_collection), :include => controller.send(:active_scaffold_joins))
193
+ end
194
+ end
195
+ end
196
+ end
@@ -0,0 +1,66 @@
1
+ {
2
+ :'en' => {
3
+ :active_scaffold => {
4
+ :add => 'Add',
5
+ :add_existing => 'Add Existing',
6
+ :add_existing_model => 'Add Existing {{model}}',
7
+ :are_you_sure => 'Are you sure?',
8
+ :cancel => 'Cancel',
9
+ :click_to_edit => 'Click to edit',
10
+ :close => 'Close',
11
+ :create => 'Create',
12
+ :create_model => 'Create {{model}}',
13
+ :create_another => 'Create Another',
14
+ :created_model => 'Created {{model}}',
15
+ :create_new => 'Create New',
16
+ :customize => 'Customize',
17
+ :delete => 'Delete',
18
+ :deleted_model => 'Deleted {{model}}',
19
+ :delimiter => 'Delimiter',
20
+ :download => 'Download',
21
+ :edit => 'Edit',
22
+ :export => 'Export',
23
+ :nested_for_model => '{{nested_model}} for {{parent_model}}',
24
+ :filtered => '(Filtered)',
25
+ :found => 'Found',
26
+ :hide => 'Hide',
27
+ :live_search => 'Live Search',
28
+ :loading => 'Loading…',
29
+ :next => 'Next',
30
+ :no_entries => 'No Entries',
31
+ :no_options => 'no options',
32
+ :omit_header => 'Omit Header',
33
+ :options => 'Options',
34
+ :pdf => 'PDF',
35
+ :previous => 'Previous',
36
+ :print => 'Print',
37
+ :refresh => 'Refresh',
38
+ :remove => 'Remove',
39
+ :remove_file => 'Remove or Replace file',
40
+ :replace_with_new => 'Replace With New',
41
+ :revisions_for_model => 'Revisions for {{model}}',
42
+ :reset => 'Reset',
43
+ :saving => 'Saving…',
44
+ :search => 'Search',
45
+ :search_terms => 'Search Terms',
46
+ :_select_ => '- select -',
47
+ :show => 'Show',
48
+ :show_model => 'Show {{model}}',
49
+ :_to_ => ' to ',
50
+ :update => 'Update',
51
+ :update_model => 'Update {{model}}',
52
+ :udated_model => 'Updated {{model}}',
53
+ :'=' => '=',
54
+ :'>=' => '>=',
55
+ :'<=' => '<=',
56
+ :'>' => '>',
57
+ :'<' => '<',
58
+ :'!=' => '!=',
59
+ :between => 'Between',
60
+
61
+ # error_messages
62
+ :internal_error => 'Request Failed (code 500, Internal Error)',
63
+ :version_inconsistency => 'Version inconsistency - this record has been modified since you started editing it.'
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,64 @@
1
+ es:
2
+ active_scaffold:
3
+ add: 'Añadir'
4
+ add_existing: 'Añadir Existente'
5
+ add_existing_model: 'Añadir {{model}} Existente'
6
+ are_you_sure: '¿Estás seguro?'
7
+ cancel: 'Cancelar'
8
+ click_to_edit: 'Pulsa para editar'
9
+ close: 'Cerrar'
10
+ create: 'Crear'
11
+ create_model: 'Crear {{model}}'
12
+ create_another: 'Crear Otro'
13
+ created_model: '{{model}} creado'
14
+ create_new: 'Crear Nuevo'
15
+ customize: 'Personalizar'
16
+ delete: 'Borrar'
17
+ deleted_model: '{{model}} borrado'
18
+ delimiter: 'Delimitador'
19
+ download: 'Descargar'
20
+ edit: 'Editar'
21
+ export: 'Exportar'
22
+ nested_for_model: '{{nested_model}} de {{parent_model}}'
23
+ filtered: '(Filtrado)'
24
+ found:
25
+ one: 'encontrado'
26
+ other: 'encontrados'
27
+ hide: 'Ocultar'
28
+ live_search: 'Buscar en Vivo'
29
+ loading: 'Cargando…'
30
+ next: 'Siguiente'
31
+ no_entries: 'Sin entradas'
32
+ no_options: 'sin opciones'
33
+ omit_header: 'Omitir Cabecera'
34
+ options: 'Opciones'
35
+ pdf: 'PDF'
36
+ previous: 'Anterior'
37
+ print: 'Imprimir'
38
+ refresh: 'Recargar'
39
+ remove: 'Eliminar'
40
+ remove_file: 'Eliminar o Reemplazar archivo'
41
+ replace_with_new: 'Replace With New'
42
+ revisions_for_model: 'Revisiones de {{model}}'
43
+ reset: 'Restaurar'
44
+ saving: 'Guardando…'
45
+ search: 'Buscar'
46
+ search_terms: 'Términos a buscar'
47
+ _select_: '- seleccionar -'
48
+ show: 'Ver'
49
+ show_model: 'Ver {{model}}'
50
+ _to_ : ' a '
51
+ update: 'Actualizar'
52
+ update_model: 'Actualizar {{model}}'
53
+ udated_model: '{{model}} actualizado'
54
+ '=': '='
55
+ '>=': '>='
56
+ '<=': '<='
57
+ '>': '>'
58
+ '<': '<'
59
+ '!=': '!='
60
+ between: 'entre'
61
+
62
+ # error_messages
63
+ internal_error: 'Petición fallida (código 500, error interno)'
64
+ version_inconsistency: 'Inconsistencia de versiones - este registro se ha modificado después de que empezó a editarlo.'
@@ -0,0 +1,62 @@
1
+ hu:
2
+ active_scaffold:
3
+ add: 'Hozzáadás'
4
+ add_existing: 'Meglevő hozzáadása'
5
+ add_existing_model: 'Meglevő {{model}} hozzáadása'
6
+ are_you_sure: 'Biztos vagy benne?'
7
+ cancel: 'Mégse'
8
+ click_to_edit: 'Kattints a szerkesztéshez'
9
+ close: 'Bezárás'
10
+ create: 'Létrehozás'
11
+ create_model: '{{model}} létrehozása'
12
+ create_another: 'Mégegy hozzáadása'
13
+ created_model: '{{model}} létrehozva'
14
+ create_new: 'Új létrehozása'
15
+ customize: 'Testreszabás'
16
+ delete: 'Törlés'
17
+ deleted_model: '{{model}} törölve'
18
+ delimiter: 'Elválasztó'
19
+ download: 'Letöltés'
20
+ edit: 'Szerkesztés'
21
+ export: 'Exportálás'
22
+ nested_for_model: '{{nested_model}} / {{parent_model}}'
23
+ filtered: '(Szűrt)'
24
+ found: 'Találat'
25
+ hide: 'Elrejtés'
26
+ live_search: 'Élő keresés'
27
+ loading: 'Betöltés…'
28
+ next: 'Következő'
29
+ no_entries: 'Nincs elem'
30
+ no_options: 'nincsenek'
31
+ omit_header: 'Fejléc nélkül'
32
+ options: 'Opciók'
33
+ pdf: 'PDF'
34
+ previous: 'Előző'
35
+ print: 'Nyomtatás'
36
+ refresh: 'Frissítés'
37
+ remove: 'Törlés'
38
+ remove_file: 'Fájl törlése, vagy cseréje'
39
+ replace_with_new: 'Csere újjal'
40
+ revisions_for_model: '{{model}} revíziói'
41
+ reset: 'Alapállapot'
42
+ saving: 'Mentés…'
43
+ search: 'Keresés'
44
+ search_terms: 'Keresési kifejezések'
45
+ _select_: '- válassz -'
46
+ show: 'Mutatás'
47
+ show_model: '{{model}} mutatása'
48
+ _to_ : ' – '
49
+ update: 'Modosítás'
50
+ update_model: '{{model}} modosítása'
51
+ udated_model: '{{model}} módosítva'
52
+ '=': '='
53
+ '>=': '>='
54
+ '<=': '<='
55
+ '>': '>'
56
+ '<': '<'
57
+ '!=': '!='
58
+ between: 'Között'
59
+
60
+ # error_messages
61
+ internal_error: 'A lekérés sikertelen (code 500, Internal Error)'
62
+ version_inconsistency: 'Verzió ütközés - ezt a rekordot módosították mióta elkezdted szerkeszteni.'
@@ -0,0 +1,52 @@
1
+ module ActiveScaffold
2
+ def self.bridge(name, &block)
3
+ ActiveScaffold::Bridge.new(name, &block)
4
+ end
5
+
6
+ class Bridge
7
+ attr_accessor :name
8
+ cattr_accessor :bridges
9
+ cattr_accessor :bridges_run
10
+ self.bridges = []
11
+
12
+ def initialize(name, &block)
13
+ self.name = name
14
+ @install = nil
15
+ # by convention and default, use the bridge name as the required constant for installation
16
+ @install_if = lambda { Object.const_defined?(name) }
17
+ self.instance_eval(&block)
18
+
19
+ ActiveScaffold::Bridge.bridges << self
20
+ end
21
+
22
+ # Set the install block
23
+ def install(&block)
24
+ @install = block
25
+ end
26
+
27
+ # Set the install_if block (to check to see whether or not to install the block)
28
+ def install?(&block)
29
+ @install_if = block
30
+ end
31
+
32
+
33
+ def run
34
+ raise(ArgumentError, "install and install? not defined for bridge #{name}" ) unless @install && @install_if
35
+ @install.call if @install_if.call
36
+ end
37
+
38
+ def self.run_all
39
+ return false if self.bridges_run
40
+ ActiveScaffold::Bridge.bridges.each{|bridge|
41
+ bridge.run
42
+ }
43
+
44
+
45
+ self.bridges_run=true
46
+ end
47
+ end
48
+ end
49
+
50
+ Dir[File.join(File.dirname(__FILE__), "*/bridge.rb")].each{|bridge_require|
51
+ require bridge_require
52
+ }