barkest_core 1.5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (308) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/Gemfile +22 -0
  4. data/Gemfile.lock +254 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +364 -0
  7. data/Rakefile +37 -0
  8. data/app/assets/fonts/barkest_core/ArchivoNarrow-Bold.ttf +0 -0
  9. data/app/assets/fonts/barkest_core/ArchivoNarrow-BoldItalic.ttf +0 -0
  10. data/app/assets/fonts/barkest_core/ArchivoNarrow-Italic.ttf +0 -0
  11. data/app/assets/fonts/barkest_core/ArchivoNarrow-Regular.ttf +0 -0
  12. data/app/assets/images/barkest_core/.keep +0 -0
  13. data/app/assets/images/barkest_core/barcode-B.svg +181 -0
  14. data/app/assets/javascripts/barkest_core/.keep +0 -0
  15. data/app/assets/javascripts/barkest_core/application.js +22 -0
  16. data/app/assets/javascripts/barkest_core/bootstrap-datepicker.js +1800 -0
  17. data/app/assets/javascripts/barkest_core/field_init.js +7 -0
  18. data/app/assets/javascripts/barkest_core/jquery.doubleScroll.js +112 -0
  19. data/app/assets/javascripts/barkest_core/masked_edit.js +25 -0
  20. data/app/assets/javascripts/barkest_core/system_status.js.erb +201 -0
  21. data/app/assets/stylesheets/barkest_core/.keep +0 -0
  22. data/app/assets/stylesheets/barkest_core/application.css +17 -0
  23. data/app/assets/stylesheets/barkest_core/custom.css.scss +264 -0
  24. data/app/assets/stylesheets/barkest_core/datepicker3.css +790 -0
  25. data/app/controllers/.keep +0 -0
  26. data/app/controllers/access_groups_controller.rb +74 -0
  27. data/app/controllers/account_activations_controller.rb +29 -0
  28. data/app/controllers/application_controller.rb +5 -0
  29. data/app/controllers/barkest_core/application_controller_base.rb +113 -0
  30. data/app/controllers/barkest_core/engine_controller_base.rb +15 -0
  31. data/app/controllers/barkest_core/testsub_controller.rb +21 -0
  32. data/app/controllers/contact_controller.rb +32 -0
  33. data/app/controllers/log_view_controller.rb +31 -0
  34. data/app/controllers/password_resets_controller.rb +126 -0
  35. data/app/controllers/sessions_controller.rb +64 -0
  36. data/app/controllers/status_controller.rb +150 -0
  37. data/app/controllers/system_config_controller.rb +238 -0
  38. data/app/controllers/system_update_controller.rb +164 -0
  39. data/app/controllers/test_access_controller.rb +44 -0
  40. data/app/controllers/test_report_controller.rb +75 -0
  41. data/app/controllers/users_controller.rb +218 -0
  42. data/app/helpers/.keep +0 -0
  43. data/app/helpers/barkest_core/application_helper.rb +134 -0
  44. data/app/helpers/barkest_core/form_helper.rb +469 -0
  45. data/app/helpers/barkest_core/html_helper.rb +70 -0
  46. data/app/helpers/barkest_core/misc_helper.rb +68 -0
  47. data/app/helpers/barkest_core/pdf_helper.rb +180 -0
  48. data/app/helpers/barkest_core/recaptcha_helper.rb +115 -0
  49. data/app/helpers/barkest_core/sessions_helper.rb +94 -0
  50. data/app/helpers/barkest_core/status_helper.rb +118 -0
  51. data/app/helpers/barkest_core/users_helper.rb +32 -0
  52. data/app/mailers/.keep +0 -0
  53. data/app/mailers/application_mailer.rb +5 -0
  54. data/app/mailers/barkest_core/application_mailer_base.rb +30 -0
  55. data/app/mailers/barkest_core/contact_form.rb +20 -0
  56. data/app/mailers/barkest_core/user_mailer.rb +44 -0
  57. data/app/models/.keep +0 -0
  58. data/app/models/access_group.rb +121 -0
  59. data/app/models/access_group_group_member.rb +13 -0
  60. data/app/models/access_group_user_member.rb +11 -0
  61. data/app/models/barkest_core/auth_config.rb +95 -0
  62. data/app/models/barkest_core/authorize_failure.rb +7 -0
  63. data/app/models/barkest_core/contact_message.rb +37 -0
  64. data/app/models/barkest_core/database_config.rb +223 -0
  65. data/app/models/barkest_core/db_table.rb +21 -0
  66. data/app/models/barkest_core/email_config.rb +132 -0
  67. data/app/models/barkest_core/global_status.rb +267 -0
  68. data/app/models/barkest_core/log_entry.rb +101 -0
  69. data/app/models/barkest_core/log_view_options.rb +51 -0
  70. data/app/models/barkest_core/ms_sql_db_definition.rb +441 -0
  71. data/app/models/barkest_core/ms_sql_definition.rb +221 -0
  72. data/app/models/barkest_core/ms_sql_function.rb +423 -0
  73. data/app/models/barkest_core/not_logged_in.rb +7 -0
  74. data/app/models/barkest_core/pdf_table_builder.rb +407 -0
  75. data/app/models/barkest_core/self_update_config.rb +37 -0
  76. data/app/models/barkest_core/user_alert.rb +29 -0
  77. data/app/models/barkest_core/user_alert_generators.rb +58 -0
  78. data/app/models/barkest_core/user_manager.rb +404 -0
  79. data/app/models/barkest_core/work_path.rb +74 -0
  80. data/app/models/disable_user.rb +18 -0
  81. data/app/models/ldap_access_group.rb +15 -0
  82. data/app/models/system_config.rb +99 -0
  83. data/app/models/user.rb +405 -0
  84. data/app/models/user_login_history.rb +11 -0
  85. data/app/views/.keep +0 -0
  86. data/app/views/access_groups/_form.html.erb +19 -0
  87. data/app/views/access_groups/edit.html.erb +2 -0
  88. data/app/views/access_groups/index.html.erb +32 -0
  89. data/app/views/access_groups/new.html.erb +2 -0
  90. data/app/views/access_groups/show.html.erb +4 -0
  91. data/app/views/barkest_core/contact_form/contact.html.erb +16 -0
  92. data/app/views/barkest_core/contact_form/contact.text.erb +13 -0
  93. data/app/views/barkest_core/testsub/_links.html.erb +5 -0
  94. data/app/views/barkest_core/testsub/page1.html.erb +3 -0
  95. data/app/views/barkest_core/testsub/page2.html.erb +2 -0
  96. data/app/views/barkest_core/testsub/page3.html.erb +2 -0
  97. data/app/views/barkest_core/user_mailer/account_activation.html.erb +7 -0
  98. data/app/views/barkest_core/user_mailer/account_activation.text.erb +6 -0
  99. data/app/views/barkest_core/user_mailer/invalid_password_reset.html.erb +3 -0
  100. data/app/views/barkest_core/user_mailer/invalid_password_reset.text.erb +5 -0
  101. data/app/views/barkest_core/user_mailer/password_reset.html.erb +8 -0
  102. data/app/views/barkest_core/user_mailer/password_reset.text.erb +7 -0
  103. data/app/views/contact/index.html.erb +24 -0
  104. data/app/views/layouts/_footer_copyright.html.erb +1 -0
  105. data/app/views/layouts/_menu_admin.html.erb +5 -0
  106. data/app/views/layouts/_menu_anon.html.erb +0 -0
  107. data/app/views/layouts/_menu_auth.html.erb +3 -0
  108. data/app/views/layouts/_menu_footer.html.erb +1 -0
  109. data/app/views/layouts/_nav_logo.html.erb +1 -0
  110. data/app/views/layouts/application.html.erb +2 -0
  111. data/app/views/layouts/barkest_core/_application.html.erb +24 -0
  112. data/app/views/layouts/barkest_core/_footer.html.erb +18 -0
  113. data/app/views/layouts/barkest_core/_header.html.erb +38 -0
  114. data/app/views/layouts/barkest_core/_html_mailer.html.erb +11 -0
  115. data/app/views/layouts/barkest_core/_menu_account.html.erb +14 -0
  116. data/app/views/layouts/barkest_core/_menu_sample.html.erb +1 -0
  117. data/app/views/layouts/barkest_core/_messages.html.erb +4 -0
  118. data/app/views/layouts/barkest_core/_shim.html.erb +4 -0
  119. data/app/views/layouts/barkest_core/_subheader.html.erb +1 -0
  120. data/app/views/layouts/barkest_core/_text_mailer.text.erb +4 -0
  121. data/app/views/layouts/mailer.html.erb +1 -0
  122. data/app/views/layouts/mailer.text.erb +1 -0
  123. data/app/views/log_view/index.html.erb +100 -0
  124. data/app/views/password_resets/edit.html.erb +20 -0
  125. data/app/views/password_resets/new.html.erb +14 -0
  126. data/app/views/sessions/new.html.erb +27 -0
  127. data/app/views/shared/_error_messages.html.erb +29 -0
  128. data/app/views/shared/_generic_user_alert.html.erb +4 -0
  129. data/app/views/status/current.html.erb +34 -0
  130. data/app/views/status/test.html.erb +50 -0
  131. data/app/views/system_config/index.html.erb +25 -0
  132. data/app/views/system_config/show_auth.html.erb +28 -0
  133. data/app/views/system_config/show_database.html.erb +36 -0
  134. data/app/views/system_config/show_email.html.erb +21 -0
  135. data/app/views/system_config/show_self_update.html.erb +13 -0
  136. data/app/views/system_update/index.html.erb +31 -0
  137. data/app/views/system_update/new.html.erb +2 -0
  138. data/app/views/test_access/allow_anon.html.erb +2 -0
  139. data/app/views/test_access/require_admin.html.erb +2 -0
  140. data/app/views/test_access/require_group_x.html.erb +2 -0
  141. data/app/views/test_access/require_user.html.erb +2 -0
  142. data/app/views/test_report/index.csv.csvrb +23 -0
  143. data/app/views/test_report/index.html.erb +6 -0
  144. data/app/views/test_report/index.pdf.prawn +50 -0
  145. data/app/views/test_report/index.xlsx.axlsx +28 -0
  146. data/app/views/users/_user.html.erb +57 -0
  147. data/app/views/users/_user_details.html.erb +15 -0
  148. data/app/views/users/_user_details_for_list.html.erb +1 -0
  149. data/app/views/users/_user_form.html.erb +13 -0
  150. data/app/views/users/disable_confirm.html.erb +19 -0
  151. data/app/views/users/edit.html.erb +15 -0
  152. data/app/views/users/index.html.erb +9 -0
  153. data/app/views/users/new.html.erb +10 -0
  154. data/app/views/users/show.html.erb +46 -0
  155. data/bin/rails +12 -0
  156. data/config/routes.rb +3 -0
  157. data/db/migrate/20160617172539_create_access_groups.rb +10 -0
  158. data/db/migrate/20160617172725_create_users.rb +26 -0
  159. data/db/migrate/20160617172833_create_user_login_histories.rb +12 -0
  160. data/db/migrate/20160622151720_create_access_group_user_members.rb +9 -0
  161. data/db/migrate/20160622151925_create_access_group_group_members.rb +9 -0
  162. data/db/migrate/20160701005706_create_ldap_access_groups.rb +11 -0
  163. data/db/migrate/20161108155029_create_system_configs.rb +11 -0
  164. data/db/seeds/barkest_core_01_create_users.rb +42 -0
  165. data/db/seeds.rb +53 -0
  166. data/lib/barkest_core/concerns/association_with_defaults.rb +55 -0
  167. data/lib/barkest_core/concerns/boolean_parser.rb +88 -0
  168. data/lib/barkest_core/concerns/date_parser.rb +181 -0
  169. data/lib/barkest_core/concerns/email_tester.rb +55 -0
  170. data/lib/barkest_core/concerns/encrypted_fields.rb +156 -0
  171. data/lib/barkest_core/concerns/named_model.rb +73 -0
  172. data/lib/barkest_core/concerns/number_parser.rb +145 -0
  173. data/lib/barkest_core/concerns/utc_conversion.rb +60 -0
  174. data/lib/barkest_core/engine.rb +105 -0
  175. data/lib/barkest_core/extensions/active_record_extensions.rb +120 -0
  176. data/lib/barkest_core/extensions/application_configuration_extensions.rb +38 -0
  177. data/lib/barkest_core/extensions/application_extensions.rb +50 -0
  178. data/lib/barkest_core/extensions/axlsx_extenstions.rb +157 -0
  179. data/lib/barkest_core/extensions/fixture_set_extensions.rb +107 -0
  180. data/lib/barkest_core/extensions/generator_extensions.rb +271 -0
  181. data/lib/barkest_core/extensions/main_app_extensions.rb +35 -0
  182. data/lib/barkest_core/extensions/prawn_document_extensions.rb +367 -0
  183. data/lib/barkest_core/extensions/prawn_table_extensions.rb +131 -0
  184. data/lib/barkest_core/extensions/router_extensions.rb +106 -0
  185. data/lib/barkest_core/extensions/simple_formatter_extensions.rb +66 -0
  186. data/lib/barkest_core/extensions/test_case_extensions.rb +348 -0
  187. data/lib/barkest_core/extensions/time_extensions.rb +164 -0
  188. data/lib/barkest_core/handlers/csv_handler.rb +30 -0
  189. data/lib/barkest_core/version.rb +3 -0
  190. data/lib/barkest_core.rb +324 -0
  191. data/lib/generators/barkest/install_generator.rb +102 -0
  192. data/lib/generators/barkest_core/actions/01_patch_application_controller.rb +55 -0
  193. data/lib/generators/barkest_core/actions/02_patch_application_mailer.rb +56 -0
  194. data/lib/generators/barkest_core/actions/03_patch_assets.rb +62 -0
  195. data/lib/generators/barkest_core/actions/04_patch_layouts.rb +36 -0
  196. data/lib/generators/barkest_core/actions/05_patch_routes.rb +93 -0
  197. data/lib/generators/barkest_core/actions/06_patch_seeds.rb +60 -0
  198. data/lib/generators/barkest_core/actions/07_copy_migrations.rb +51 -0
  199. data/lib/generators/barkest_core/actions/08_configure_database.rb +52 -0
  200. data/lib/generators/barkest_core/actions/09_configure_secrets.rb +29 -0
  201. data/lib/generators/barkest_core/actions/99_patch_gitignore.rb +57 -0
  202. data/lib/generators/barkest_core/install_generator.rb +17 -0
  203. data/test/barkest_core_test.rb +83 -0
  204. data/test/controllers/access_groups_controller_test.rb +53 -0
  205. data/test/controllers/contact_controller_test.rb +10 -0
  206. data/test/controllers/sessions_controller_test.rb +10 -0
  207. data/test/controllers/users_controller_test.rb +10 -0
  208. data/test/dummy/.gitignore +10 -0
  209. data/test/dummy/README.rdoc +28 -0
  210. data/test/dummy/Rakefile +6 -0
  211. data/test/dummy/app/assets/images/.keep +0 -0
  212. data/test/dummy/app/assets/javascripts/application.js +14 -0
  213. data/test/dummy/app/assets/stylesheets/application.css +16 -0
  214. data/test/dummy/app/controllers/application_controller.rb +5 -0
  215. data/test/dummy/app/controllers/concerns/.keep +0 -0
  216. data/test/dummy/app/helpers/application_helper.rb +2 -0
  217. data/test/dummy/app/mailers/.keep +0 -0
  218. data/test/dummy/app/mailers/application_mailer.rb +3 -0
  219. data/test/dummy/app/models/.keep +0 -0
  220. data/test/dummy/app/models/concerns/.keep +0 -0
  221. data/test/dummy/app/views/layouts/application.html.erb +1 -0
  222. data/test/dummy/app/views/layouts/mailer.html.erb +1 -0
  223. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  224. data/test/dummy/app/views/system_config/show_fake.html.erb +3 -0
  225. data/test/dummy/bin/bundle +3 -0
  226. data/test/dummy/bin/rails +4 -0
  227. data/test/dummy/bin/rake +4 -0
  228. data/test/dummy/bin/setup +29 -0
  229. data/test/dummy/config/application.rb +27 -0
  230. data/test/dummy/config/boot.rb +5 -0
  231. data/test/dummy/config/environment.rb +5 -0
  232. data/test/dummy/config/environments/development.rb +47 -0
  233. data/test/dummy/config/environments/production.rb +79 -0
  234. data/test/dummy/config/environments/test.rb +44 -0
  235. data/test/dummy/config/initializers/assets.rb +11 -0
  236. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  237. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  238. data/test/dummy/config/initializers/db_updater_ext.rb +33 -0
  239. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  240. data/test/dummy/config/initializers/inflections.rb +16 -0
  241. data/test/dummy/config/initializers/mime_types.rb +4 -0
  242. data/test/dummy/config/initializers/session_store.rb +3 -0
  243. data/test/dummy/config/initializers/sys_config_ext.rb +12 -0
  244. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  245. data/test/dummy/config/locales/en.yml +23 -0
  246. data/test/dummy/config/routes.rb +60 -0
  247. data/test/dummy/config.ru +4 -0
  248. data/test/dummy/db/schema.rb +95 -0
  249. data/test/dummy/db/seeds/barkest_core_01_create_users.rb +42 -0
  250. data/test/dummy/db/seeds.rb +51 -0
  251. data/test/dummy/lib/assets/.keep +0 -0
  252. data/test/dummy/log/.keep +0 -0
  253. data/test/dummy/public/404.html +67 -0
  254. data/test/dummy/public/422.html +67 -0
  255. data/test/dummy/public/500.html +66 -0
  256. data/test/dummy/public/favicon.ico +0 -0
  257. data/test/dummy/sql/my_test_view.sql +3 -0
  258. data/test/fixtures/access_groups.yml +21 -0
  259. data/test/fixtures/users.yml +71 -0
  260. data/test/helpers/barkest_core/sessions_helper_test.rb +22 -0
  261. data/test/integration/access_group_mgmt_test.rb +33 -0
  262. data/test/integration/access_test.rb +24 -0
  263. data/test/integration/account_activations_access_test.rb +12 -0
  264. data/test/integration/contact_test.rb +98 -0
  265. data/test/integration/extra_partial_test.rb +41 -0
  266. data/test/integration/log_view_access_test.rb +12 -0
  267. data/test/integration/password_resets_test.rb +101 -0
  268. data/test/integration/reports_test.rb +53 -0
  269. data/test/integration/status_access_test.rb +27 -0
  270. data/test/integration/system_config_access_test.rb +24 -0
  271. data/test/integration/system_update_access_test.rb +19 -0
  272. data/test/integration/users_access_test.rb +34 -0
  273. data/test/integration/users_edit_test.rb +178 -0
  274. data/test/integration/users_index_test.rb +62 -0
  275. data/test/integration/users_login_test.rb +67 -0
  276. data/test/integration/users_signup_test.rb +54 -0
  277. data/test/mailers/.keep +0 -0
  278. data/test/mailers/barkest_core/contact_form_test.rb +28 -0
  279. data/test/mailers/barkest_core/user_mailer_test.rb +43 -0
  280. data/test/mailers/previews/barkest_core/contact_form_preview.rb +17 -0
  281. data/test/mailers/previews/barkest_core/user_mailer_preview.rb +26 -0
  282. data/test/models/access_group_group_member_test.rb +28 -0
  283. data/test/models/access_group_test.rb +114 -0
  284. data/test/models/access_group_user_member_test.rb +28 -0
  285. data/test/models/barkest_core/auth_config_test.rb +57 -0
  286. data/test/models/barkest_core/bool_parser_test.rb +28 -0
  287. data/test/models/barkest_core/contact_message_test.rb +61 -0
  288. data/test/models/barkest_core/database_config_test.rb +33 -0
  289. data/test/models/barkest_core/date_parser_test.rb +110 -0
  290. data/test/models/barkest_core/email_config_test.rb +57 -0
  291. data/test/models/barkest_core/global_status_test.rb +50 -0
  292. data/test/models/barkest_core/ms_sql_db_updater_test.rb +115 -0
  293. data/test/models/barkest_core/ms_sql_definition_test.rb +102 -0
  294. data/test/models/barkest_core/ms_sql_function_test.rb +131 -0
  295. data/test/models/barkest_core/number_parser_test.rb +29 -0
  296. data/test/models/barkest_core/self_update_config_test.rb +29 -0
  297. data/test/models/barkest_core/user_alert_test.rb +19 -0
  298. data/test/models/barkest_core/user_manager_test.rb +34 -0
  299. data/test/models/barkest_core/work_path_test.rb +26 -0
  300. data/test/models/disable_user_test.rb +27 -0
  301. data/test/models/generic_time_test.rb +66 -0
  302. data/test/models/ldap_access_group_test.rb +31 -0
  303. data/test/models/pdf_table_builder_test.rb +6 -0
  304. data/test/models/system_config_test.rb +78 -0
  305. data/test/models/user_login_history_test.rb +37 -0
  306. data/test/models/user_test.rb +130 -0
  307. data/test/test_helper.rb +63 -0
  308. metadata +798 -0
@@ -0,0 +1,20 @@
1
+ <% provide(:title, 'Reset password') %>
2
+ <h1>Reset password</h1>
3
+
4
+ <%= error_summary(@user) %>
5
+
6
+ <div class="row">
7
+ <div class="col-md-4 col-md-offset-4">
8
+ <%= form_for(@user, url: password_reset_path(params[:id])) do |f| %>
9
+ <%= hidden_field_tag :email, @user.email %>
10
+
11
+ <%= text_form_group f, :password, field_type: 'password' %>
12
+
13
+ <%= text_form_group f, :password_confirmation, field_type: 'password' %>
14
+
15
+ <%= add_recaptcha_challenge %>
16
+
17
+ <%= f.submit 'Update password', class: 'btn btn-primary' %>
18
+ <% end %>
19
+ </div>
20
+ </div>
@@ -0,0 +1,14 @@
1
+ <% provide(:title, 'Forgot password') %>
2
+ <h1>Forgot password</h1>
3
+
4
+ <div class="row">
5
+ <div class="col-md-4 col-md-offset-4">
6
+ <%= form_for(:password_reset, url: password_resets_path) do |f| %>
7
+ <%= text_form_group f, :email, field_type: 'email' %>
8
+
9
+ <%= add_recaptcha_challenge %>
10
+
11
+ <%= f.submit 'Submit', class: 'btn btn-primary' %>
12
+ <% end %>
13
+ </div>
14
+ </div>
@@ -0,0 +1,27 @@
1
+
2
+ <% provide(:title, 'Log in') %>
3
+ <h1>Log in</h1>
4
+
5
+ <div class="row">
6
+ <div class="col-md-4 col-md-offset-4">
7
+ <%= form_for(:session, url: login_path) do |f| %>
8
+ <%= f.text_form_group :email, field_type: 'email' %>
9
+
10
+ <div class="form-group">
11
+ <%= f.label :password %> <small><%= link_to '(forgot password)', new_password_reset_path %></small>
12
+ <%= f.password_field :password, class: 'form-control' %>
13
+ </div>
14
+
15
+ <%= f.label :remember_me, class: 'checkbox inline' do %>
16
+ <%= f.check_box :remember_me %>
17
+ <span>Remember me on this computer</span>
18
+ <% end %>
19
+
20
+ <%= f.submit 'Log in', class: 'btn btn-primary' %>
21
+ <% end %>
22
+ <br/>
23
+ <p>
24
+ New user? <%= link_to 'Sign up now!', signup_path %>
25
+ </p>
26
+ </div>
27
+ </div>
@@ -0,0 +1,29 @@
1
+ <% if model && model.respond_to?('errors') && model.errors && model.errors.any? %>
2
+ <div id="error_explanation">
3
+ <div class="alert alert-danger">
4
+ <strong>The form contains <%= pluralize(model.errors.count, 'error') %>.</strong>
5
+ <% if model.errors.count > 6 %>
6
+ <div id="error_top_<%= model.object_id %>" style="display: block;">
7
+ <% model.errors.full_messages[0..2].each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ <li><a href="javascript:show_all_<%= model.object_id %>()" title="Show all errors">... plus <%= model.errors.count - 3 %> more</a></li>
11
+ </div>
12
+ <div id="error_all_<%= model.object_id %>" style="display: none;">
13
+ <% model.errors.full_messages.each do |msg| %>
14
+ <li><%= msg %></li>
15
+ <% end %>
16
+ </div>
17
+ <script type="text/javascript">
18
+ function show_all_<%= model.object_id %>() { $('#error_top_<%= model.object_id %>').hide(); $('#error_all_<%= model.object_id %>').show(); }
19
+ </script>
20
+ <% else %>
21
+ <ul>
22
+ <% model.errors.full_messages.each do |msg| %>
23
+ <li><%= msg %></li>
24
+ <% end %>
25
+ </ul>
26
+ <% end %>
27
+ </div>
28
+ </div>
29
+ <% end %>
@@ -0,0 +1,4 @@
1
+ <div class="alert alert-<%= alert.type %> alert-dismissible">
2
+ <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
3
+ <%= alert.message %>
4
+ </div>
@@ -0,0 +1,34 @@
1
+ <% provide :title, 'Current System Status' %>
2
+
3
+ <div class="row">
4
+ <div class="col-md-8 col-md-offset-2">
5
+ <div class="panel panel-primary">
6
+ <div class="panel-heading">
7
+ <div id="status_progress_cont" style="float: right; width: 40%">
8
+ <div class="progress">
9
+ <div id="status_progress" class="progress-bar progress-bar-success progress-bar-striped" role="progressbar"
10
+ aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="min-width: 2em; width: 0%">
11
+ 0%
12
+ </div>
13
+ </div>
14
+ </div>
15
+ <h4 id="status_title" class="panel-title"><%= @inital_status %></h4>
16
+ </div>
17
+ <div class="panel-body">
18
+ <pre id="status_log" style="height: 450px; overflow: auto;"></pre>
19
+ <div class="center">
20
+ <a href="javascript:void(0)" title="Continue" class="btn btn-success" id="status_complete">Continue</a>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <script type="text/javascript">
27
+ //<![CDATA[
28
+ systemStatus.run({
29
+ update_only: true,
30
+ completionUrl: '<%= status_redirect_url.gsub("'", "\\'") %>',
31
+ completionLabel: '<%= status_button_label.gsub("'", "\\'") %>'
32
+ });
33
+ //]]>
34
+ </script>
@@ -0,0 +1,50 @@
1
+ <% provide :title, 'Status Tester' %>
2
+
3
+ <h1>Status Tester</h1>
4
+
5
+ <strong>Current Status</strong>
6
+ <ul>
7
+ <li><%= link_to 'Current Status', status_current_url %></li>
8
+ </ul>
9
+ <br>
10
+
11
+ <strong>Standard via Redirect</strong>
12
+ <ul>
13
+ <li><%= link_to 'With Progress', status_test_url(:with_progress) %></li>
14
+ <li><%= link_to 'Without Progress', status_test_url(:without_progress) %></li>
15
+ </ul>
16
+ <br>
17
+
18
+ <strong>Inline via Modal</strong>
19
+ <ul>
20
+ <li><a href="javascript:inline_with_progress()">With Progress</a></li>
21
+ <li><a href="javascript:inline_without_progress()">Without Progress</a></li>
22
+ <li><a href="javascript:inline_without_log()">Without Log</a></li>
23
+ </ul>
24
+
25
+ <script type="text/javascript">
26
+ function inline_with_progress() {
27
+ systemStatus.run({
28
+ inline: true,
29
+ method: 'GET',
30
+ submitUrl: '<%= status_test_url(:with_progress) %>'
31
+ });
32
+ }
33
+ function inline_without_progress() {
34
+ systemStatus.run({
35
+ inline: true,
36
+ method: 'GET',
37
+ submitUrl: '<%= status_test_url(:without_progress) %>'
38
+ });
39
+ }
40
+ // when running without the log, you should provide progress, otherwise the user is presented with
41
+ // a modal dialog with no output or interaction until the process completes.
42
+ function inline_without_log() {
43
+ systemStatus.run({
44
+ inline: true,
45
+ inlineNoLog: true,
46
+ method: 'GET',
47
+ submitUrl: '<%= status_test_url(:with_progress) %>'
48
+ });
49
+ }
50
+ </script>
@@ -0,0 +1,25 @@
1
+ <%= panel 'System Configuration' do %>
2
+ <ul>
3
+ <% SystemConfigController.get_config_items.sort.each do |(item_name,attrib)| %>
4
+ <% if attrib[:require_id] %>
5
+ <% eval(attrib[:id_provider]).each do |id| %>
6
+ <li><%= link_to item_name.to_s.humanize.titlecase + ' Settings: ' + id.to_s.humanize.titlecase, eval("#{attrib[:path_helper]}(#{id.inspect})") %></li>
7
+ <% end %>
8
+ <% else %>
9
+ <li><%= link_to item_name.to_s.humanize.titlecase + ' Settings', eval(attrib[:path_helper].to_s) %></li>
10
+ <% end %>
11
+ <% end %>
12
+ </ul>
13
+
14
+ <br>
15
+ <br>
16
+
17
+ <div class="center">
18
+ <% if BarkestCore.restart_pending? %>
19
+ <strong>Application restart is pending.</strong><br>
20
+ <%= link_to 'Refresh Page', system_config_url, class: 'btn btn-warning' %>
21
+ <% else %>
22
+ <%= link_to 'Restart Application', system_config_restart_url, method: :post, class: 'btn btn-danger' %>
23
+ <% end %>
24
+ </div>
25
+ <% end %>
@@ -0,0 +1,28 @@
1
+ <% provide :title, 'Configure Authentication' %>
2
+
3
+ <%= error_summary(@auth_params) %>
4
+ <%= panel 'Configure Authentication' do %>
5
+ <%= form_for @auth_params, url: system_config_auth_url, method: :post do |f| %>
6
+ <div class="form-group">
7
+ <label><%= f.check_box :enable_db_auth %> Enable DB Authentication?</label>
8
+ </div>
9
+ <div class="form-group">
10
+ <label><%= f.check_box :enable_ldap_auth %> Enable LDAP Authentication?</label>
11
+ </div>
12
+ <%= f.text_form_group :ldap_host %>
13
+ <%= f.text_form_group :ldap_port %>
14
+ <div class="form-group">
15
+ <label><%= f.check_box :ldap_ssl %> Use SSL for LDAP?</label>
16
+ </div>
17
+ <%= f.text_form_group :ldap_browse_user %>
18
+ <%= f.text_form_group :ldap_browse_password, field_type: :password %>
19
+ <%= f.text_form_group :ldap_base_dn %>
20
+ <div class="form-group">
21
+ <label><%= f.check_box :ldap_auto_activate %> Automatically activate new users from LDAP?</label>
22
+ </div>
23
+ <%= f.textarea_form_group :ldap_system_admin_groups %>
24
+ <br>
25
+ <%= f.submit "Save Configuration", class: 'btn btn-success' %>
26
+ <%= link_to 'Cancel', system_config_path, class: 'btn btn-default' %>
27
+ <% end %>
28
+ <% end %>
@@ -0,0 +1,36 @@
1
+ <% provide :title, "Configure #{@db_id.humanize.titlecase} Database" %>
2
+
3
+ <%= error_summary(@db_config) %>
4
+ <%= panel "Configure #{@db_id.humanize.titlecase} Database" do %>
5
+ <%= form_for @db_config, url: system_config_database_url(@db_id), method: :post do |f| %>
6
+ <%= f.select_form_group :adapter, BarkestCore::DatabaseConfig::VALID_ADAPTERS, :to_s, :to_s %>
7
+ <%= f.text_form_group :database %>
8
+ <%= f.text_form_group :pool %>
9
+ <%= f.text_form_group :timeout %>
10
+ <%= f.checkbox_form_group :reconnect, label_text: 'Automatically reconnect?' %>
11
+ <%= f.text_form_group :encoding %>
12
+ <%= f.text_form_group :host %>
13
+ <%= f.text_form_group :port %>
14
+ <%= f.text_form_group :username, label_small_text: 'runtime user should be a limited user' %>
15
+ <%= f.text_form_group :password, field_type: :password %>
16
+ <%= f.text_form_group :update_username, label_small_text: 'update user should be an admin user, required for auto-update' %>
17
+ <%= f.text_form_group :update_password, field_type: :password %>
18
+ <% (1..5).each do |idx| %>
19
+ <% unless @db_config.extra_name(idx).blank? %>
20
+ <%= f.hidden_field "extra_#{idx}_name" %>
21
+ <%= f.hidden_field "extra_#{idx}_label" %>
22
+ <%= f.hidden_field "extra_#{idx}_type" %>
23
+ <% if @db_config.extra_field_type(idx) == 'checkbox' %>
24
+ <%= f.checkbox_form_group "extra_#{idx}_value", label_text: @db_config.extra_label(idx) %>
25
+ <% elsif @db_config.extra_field_type(idx) == 'select' %>
26
+ <%= f.select_form_group "extra_#{idx}_value", @db_config.extra_field_options(idx), :to_s, :to_s, label_text: @db_config.extra_label(idx) %>
27
+ <% else %>
28
+ <%= f.text_form_group "extra_#{idx}_value", label_text: @db_config.extra_label(idx), field_type: @db_config.extra_field_type(idx) %>
29
+ <% end %>
30
+ <% end %>
31
+ <% end %>
32
+ <br>
33
+ <%= f.submit 'Save Configuration', class: 'btn btn-success' %>
34
+ <%= link_to 'Cancel', system_config_path, class: 'btn btn-default' %>
35
+ <% end %>
36
+ <% end %>
@@ -0,0 +1,21 @@
1
+ <% provide :title, 'Configure Email' %>
2
+
3
+ <%= error_summary(@email_config) %>
4
+ <%= panel 'Configure Email' do %>
5
+ <%= form_for @email_config, url: system_config_email_url, method: :post do |f| %>
6
+ <%= f.select_form_group :config_mode, BarkestCore::EmailConfig::VALID_CONFIG_MODES, :to_s, :to_s %>
7
+ <%= f.text_form_group :default_sender %>
8
+ <%= f.text_form_group :default_recipient %>
9
+ <%= f.text_form_group :default_hostname %>
10
+ <%= f.text_form_group :address, label_text: 'SMTP Address' %>
11
+ <%= f.text_form_group :port, label_text: 'SMTP Port' %>
12
+ <%= f.select_form_group :authentication, BarkestCore::EmailConfig::VALID_AUTH_MODES, :to_s, :to_s, label_text: 'SMTP Authentication' %>
13
+ <div class="form-group"><label><%= f.check_box :ssl %> Use SSL for SMTP connection?</label></div>
14
+ <div class="form-group"><label><%= f.check_box :enable_starttls_auto %> Use STARTTLS for SMTP connection?</label></div>
15
+ <%= f.text_form_group :user_name, label_text: 'SMTP User' %>
16
+ <%= f.text_form_group :password, field_type: :password, label_text: 'SMTP Password' %>
17
+ <br>
18
+ <%= f.submit "Save Configuration", class: 'btn btn-success' %>
19
+ <%= link_to 'Cancel', system_config_path, class: 'btn btn-default' %>
20
+ <% end %>
21
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <% provide :title, 'Self Update Settings' %>
2
+
3
+ <%= error_summary(@config) %>
4
+ <%= panel 'Self Update Settings' do %>
5
+ <%= form_for @config, url: system_config_self_update_url, method: :post do |f| %>
6
+ <%= f.multi_input_form_group [ :host, :port ], label_text: 'Host/port' %>
7
+ <%= f.text_form_group :user %>
8
+ <%= f.text_form_group :password, field_type: :password %>
9
+ <br>
10
+ <%= f.submit 'Save', class: 'btn btn-success' %>
11
+ <%= link_to 'Cancel', system_config_path, class: 'btn btn-default' %>
12
+ <% end %>
13
+ <% end %>
@@ -0,0 +1,31 @@
1
+ <% provide :title, 'System Update' %>
2
+
3
+ <h1>System Update</h1>
4
+
5
+ <div class="row">
6
+ <div class="col-sm-6 col-sm-offset-3">
7
+ <div class="panel panel-primary">
8
+ <div class="panel-heading">
9
+ <h4 class="panel-title">System Update</h4>
10
+ </div>
11
+ <div class="panel-body">
12
+ <h5>Current Version</h5>
13
+ <ul class="fixed_label">
14
+ <li><strong><%= Rails.application.app_name %>:</strong> <%= Rails.application.app_version %>
15
+ <ul class="fixed_label">
16
+ <% @additional.each do |(gem,ver)| %>
17
+ <li><strong><%= gem %>:</strong> <%= ver %></li>
18
+ <% end %>
19
+ </ul></li>
20
+ </ul>
21
+ <br>
22
+ <%= link_to 'Attempt System Update', system_update_new_path, class: 'btn btn-warning' %>
23
+ <br>
24
+ <br>
25
+ <small>
26
+ A system update will render the <%= Rails.application.app_name %> app unusable until the update finishes.
27
+ </small>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
@@ -0,0 +1,2 @@
1
+ <h1>SystemUpdate#new</h1>
2
+ <p>Find me in app/views/system_update/new.html.erb</p>
@@ -0,0 +1,2 @@
1
+ <h1>TestAccess#allow_anon</h1>
2
+ <p>Find me in app/views/test_access/allow_anon.html.erb</p>
@@ -0,0 +1,2 @@
1
+ <h1>TestAccess#require_admin</h1>
2
+ <p>Find me in app/views/test_access/require_admin.html.erb</p>
@@ -0,0 +1,2 @@
1
+ <h1>TestAccess#require_group_x</h1>
2
+ <p>Find me in app/views/test_access/require_group_x.html.erb</p>
@@ -0,0 +1,2 @@
1
+ <h1>TestAccess#require_user</h1>
2
+ <p>Find me in app/views/test_access/require_user.html.erb</p>
@@ -0,0 +1,23 @@
1
+ # add a header row.
2
+ csv << [
3
+ 'Code',
4
+ 'Name',
5
+ 'Email',
6
+ 'Date of Birth',
7
+ 'Hire Date',
8
+ 'Pay Rate',
9
+ 'Hours'
10
+ ]
11
+
12
+ # add the data rows.
13
+ @data.each do |row|
14
+ csv << [
15
+ row.code,
16
+ row.name,
17
+ row.email,
18
+ row.date_of_birth.to_s(:date4),
19
+ row.hire_date.to_s(:date4),
20
+ row.pay_rate,
21
+ row.hours
22
+ ]
23
+ end
@@ -0,0 +1,6 @@
1
+ <h1>TestReport</h1>
2
+
3
+ <%= link_to 'CSV', barkest_core_test_report_path(format: :csv), class: 'btn btn-default' %>
4
+ <%= link_to 'XLSX', barkest_core_test_report_path(format: :xlsx), class: 'btn btn-default' %>
5
+ <%= link_to 'PDF', barkest_core_test_report_path(format: :pdf), class: 'btn btn-default' %>
6
+
@@ -0,0 +1,50 @@
1
+ pdf_doc(
2
+ title: 'Test Report',
3
+
4
+ # override the user/timestamp to ensure a consistent result.
5
+ footer_left: 'Testing...',
6
+
7
+ # override the report path, keep it consistent with different params.
8
+ footer_center: barkest_core_test_report_path(format: :pdf),
9
+
10
+ # override the attributes to ensure a consistent result.
11
+ creation_date: Time.zone.local(2016, 12, 8, 15, 0),
12
+ producer: 'BarkerEST Core Test',
13
+ creator: 'BarkerEST'
14
+ ) do |pdf|
15
+ pdf.header 4, 'Test Report'
16
+
17
+ pdf.table_builder(
18
+ width_ratio: 1.0,
19
+ column_ratios: [ 0.12, 0.22, 0.22, 0.12, 0.12, 0.1, 0.1 ],
20
+ header: true, # turn the first row into a header that repeats on every page.
21
+ ) do |t|
22
+ t.row do
23
+ t.cells font_style: :bold_italic,
24
+ borders: [ :bottom ],
25
+ border_width: 0.5,
26
+ cell_4_align: :right,
27
+ cell_5_align: :right,
28
+ cell_6_align: :right,
29
+ cell_7_align: :right,
30
+ values: [ 'Code', 'Name', 'Email', 'Birth Date', 'Hire Date', 'Pay Rate', 'Hours' ]
31
+ end
32
+ @data.each do |item|
33
+ t.row do
34
+ t.cells values: [
35
+ item.code,
36
+ item.name,
37
+ item.email,
38
+ fmt_date(item.date_of_birth),
39
+ fmt_date(item.hire_date),
40
+ fixed(item.pay_rate),
41
+ item.hours
42
+ ],
43
+ cell_4_align: :right,
44
+ cell_5_align: :right,
45
+ cell_6_align: :right,
46
+ cell_7_align: :right
47
+ end
48
+ end
49
+ end
50
+ end