fe 0.0.4 → 2.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 (456) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -4
  3. data/Rakefile +16 -36
  4. data/app/assets/config/fe/manifest.js +3 -0
  5. data/app/assets/config/manifest.js +3 -0
  6. data/app/assets/javascripts/application.js.erb +1 -1
  7. data/app/assets/javascripts/fe/admin.js +0 -2
  8. data/app/assets/javascripts/fe/fe.admin.js +40 -20
  9. data/app/assets/javascripts/fe/fe.common.js.erb +98 -0
  10. data/app/assets/javascripts/fe/fe.public.js +2 -416
  11. data/app/assets/javascripts/fe/fe.public.nojquery.js.erb +526 -0
  12. data/app/assets/javascripts/fe/jquery.html5_upload.js +258 -0
  13. data/app/assets/javascripts/fe/jquery.validate.pack.js +3 -15
  14. data/app/assets/stylesheets/fe/fe.screen.css.scss.erb +90 -10
  15. data/app/assets/stylesheets/fe/validation.css +5 -1
  16. data/app/controllers/concerns/fe/admin/question_sheets_controller_concern.rb +111 -0
  17. data/app/controllers/concerns/fe/answer_pages_controller_concern.rb +131 -0
  18. data/app/controllers/{fe/concerns → concerns/fe}/answer_sheets_controller_concern.rb +15 -7
  19. data/app/controllers/{fe/concerns → concerns/fe}/application_controller_concern.rb +15 -2
  20. data/app/controllers/fe/admin/elements_controller.rb +102 -64
  21. data/app/controllers/fe/admin/email_templates_controller.rb +7 -7
  22. data/app/controllers/fe/admin/question_pages_controller.rb +9 -9
  23. data/app/controllers/fe/admin/question_sheets_controller.rb +2 -103
  24. data/app/controllers/fe/reference_pages_controller.rb +11 -11
  25. data/app/controllers/fe/reference_sheets_controller.rb +6 -4
  26. data/app/controllers/fe/references_controller.rb +20 -19
  27. data/app/controllers/fe/submit_pages_controller.rb +5 -5
  28. data/app/helpers/fe/answer_pages_helper.rb +1 -1
  29. data/app/helpers/fe/application_helper.rb +8 -3
  30. data/app/jobs/fe/update_reference_sheet_visibility_job.rb +11 -0
  31. data/app/mailers/fe/notifier.rb +12 -5
  32. data/app/models/answer_sheet.rb +2 -0
  33. data/app/models/application_record.rb +3 -0
  34. data/app/models/{fe/concerns → concerns/fe}/answer_concern.rb +2 -2
  35. data/app/models/{fe/concerns → concerns/fe}/answer_pages_presenter_concern.rb +15 -5
  36. data/app/models/concerns/fe/answer_sheet_concern.rb +125 -0
  37. data/app/models/{fe/concerns → concerns/fe}/choice_field_concern.rb +56 -31
  38. data/app/models/fe/address.rb +2 -2
  39. data/app/models/fe/answer.rb +1 -1
  40. data/app/models/fe/answer_sheet.rb +1 -1
  41. data/app/models/fe/answer_sheet_question_sheet.rb +2 -2
  42. data/app/models/fe/application.rb +15 -10
  43. data/app/models/fe/condition.rb +4 -4
  44. data/app/models/fe/date_field.rb +2 -2
  45. data/app/models/fe/element.rb +201 -45
  46. data/app/models/fe/email_address.rb +2 -2
  47. data/app/models/fe/email_template.rb +1 -1
  48. data/app/models/fe/page.rb +138 -31
  49. data/app/models/fe/page_element.rb +8 -3
  50. data/app/models/fe/page_link.rb +6 -3
  51. data/app/models/fe/paragraph.rb +1 -1
  52. data/app/models/fe/person.rb +16 -13
  53. data/app/models/fe/phone_number.rb +1 -1
  54. data/app/models/fe/question.rb +64 -44
  55. data/app/models/fe/question_grid.rb +16 -4
  56. data/app/models/fe/question_grid_with_total.rb +15 -0
  57. data/app/models/fe/question_set.rb +54 -14
  58. data/app/models/fe/question_sheet.rb +54 -19
  59. data/app/models/fe/reference_question.rb +9 -13
  60. data/app/models/fe/reference_sheet.rb +113 -54
  61. data/app/models/fe/state_chooser.rb +2 -2
  62. data/app/models/fe/text_field.rb +2 -2
  63. data/app/models/fe/user.rb +1 -1
  64. data/app/models/staff.rb +8 -6
  65. data/app/validators/email_validator.rb +11 -0
  66. data/app/views/fe/admin/elements/create.js.erb +4 -3
  67. data/app/views/fe/admin/elements/destroy.js.erb +1 -1
  68. data/app/views/fe/admin/elements/drop.js.erb +2 -1
  69. data/app/views/fe/admin/elements/duplicate.js.erb +2 -1
  70. data/app/views/fe/admin/elements/edit.js.erb +1 -1
  71. data/app/views/fe/admin/elements/error.js.erb +1 -1
  72. data/app/views/fe/admin/elements/new.js.erb +13 -6
  73. data/app/views/fe/admin/elements/update.js.erb +1 -1
  74. data/app/views/fe/admin/email_templates/_form.html.erb +3 -3
  75. data/app/views/fe/admin/email_templates/edit.html.erb +3 -3
  76. data/app/views/fe/admin/email_templates/index.html.erb +3 -3
  77. data/app/views/fe/admin/email_templates/new.html.erb +3 -3
  78. data/app/views/fe/admin/panels/_advanced_options.html.erb +16 -10
  79. data/app/views/fe/admin/panels/_common_boolean_fields.html.erb +1 -0
  80. data/app/views/fe/admin/panels/_common_boolean_fields_default.html.erb +11 -0
  81. data/app/views/fe/admin/panels/_common_fields.html.erb +18 -19
  82. data/app/views/fe/admin/panels/_condition.html.erb +1 -1
  83. data/app/views/fe/admin/panels/_insert.html.erb +25 -25
  84. data/app/views/fe/admin/panels/_nav_controls.html.erb +4 -4
  85. data/app/views/fe/admin/panels/_page.html.erb +2 -2
  86. data/app/views/fe/admin/panels/_pages_list.html.erb +3 -3
  87. data/app/views/fe/admin/panels/_prop_attachment_field.html.erb +2 -2
  88. data/app/views/fe/admin/panels/_prop_choice_field.html.erb +52 -24
  89. data/app/views/fe/admin/panels/_prop_date_field.html.erb +1 -1
  90. data/app/views/fe/admin/panels/_prop_element.html.erb +7 -14
  91. data/app/views/fe/admin/panels/_prop_page.html.erb +11 -6
  92. data/app/views/fe/admin/panels/_prop_paragraph.html.erb +38 -24
  93. data/app/views/fe/admin/panels/_prop_question_grid.html.erb +7 -2
  94. data/app/views/fe/admin/panels/_prop_question_grid_with_total.html.erb +2 -2
  95. data/app/views/fe/admin/panels/_prop_reference_question.html.erb +3 -3
  96. data/app/views/fe/admin/panels/_prop_section.html.erb +8 -2
  97. data/app/views/fe/admin/panels/_prop_sheet.html.erb +7 -4
  98. data/app/views/fe/admin/panels/_prop_text_field.html.erb +12 -12
  99. data/app/views/fe/admin/question_pages/_element.html.erb +16 -6
  100. data/app/views/fe/admin/question_pages/_element_show.html.erb +2 -2
  101. data/app/views/fe/admin/question_pages/_question_page.html.erb +4 -4
  102. data/app/views/fe/admin/question_pages/create.js.erb +3 -3
  103. data/app/views/fe/admin/question_pages/destroy.js.erb +3 -3
  104. data/app/views/fe/admin/question_pages/edit.js.erb +1 -1
  105. data/app/views/fe/admin/question_pages/error.js.erb +1 -1
  106. data/app/views/fe/admin/question_pages/show.js.erb +2 -2
  107. data/app/views/fe/admin/question_pages/show_panel.js.erb +1 -1
  108. data/app/views/fe/admin/question_pages/update.js.erb +1 -1
  109. data/app/views/fe/admin/question_sheets/edit.js.erb +1 -1
  110. data/app/views/fe/admin/question_sheets/error.js.erb +1 -1
  111. data/app/views/fe/admin/question_sheets/index.html.erb +8 -8
  112. data/app/views/fe/admin/question_sheets/new.html.erb +3 -3
  113. data/app/views/fe/admin/question_sheets/show.html.erb +5 -5
  114. data/app/views/fe/admin/question_sheets/update.js.erb +1 -1
  115. data/app/views/fe/answer_pages/_answer_page.html.erb +14 -14
  116. data/app/views/fe/answer_pages/_element.html.erb +25 -6
  117. data/app/views/fe/answer_pages/_page_name.html.erb +1 -0
  118. data/app/views/fe/answer_pages/show.html.erb +39 -0
  119. data/app/views/fe/answer_pages/update.js.erb +11 -3
  120. data/app/views/fe/answer_sheets/_answer_sheet.html.erb +6 -6
  121. data/app/views/fe/answer_sheets/_element.html.erb +55 -35
  122. data/app/views/fe/answer_sheets/_incomplete.html.erb +1 -1
  123. data/app/views/fe/answer_sheets/_page_link.html.erb +9 -7
  124. data/app/views/fe/answer_sheets/_pages_list.html.erb +4 -4
  125. data/app/views/fe/answer_sheets/_submit_to.html.erb +1 -0
  126. data/app/views/fe/answer_sheets/_title.html.erb +1 -1
  127. data/app/views/fe/answer_sheets/edit.html.erb +24 -24
  128. data/app/views/fe/answer_sheets/incomplete.js.erb +9 -3
  129. data/app/views/fe/answer_sheets/index.html.erb +3 -3
  130. data/app/views/fe/answer_sheets/show.html.erb +1 -1
  131. data/app/views/fe/applications/_logout.html.erb +1 -0
  132. data/app/views/fe/applications/show.html.erb +1 -0
  133. data/app/views/fe/questions/fe/_acceptance.html.erb +11 -10
  134. data/app/views/fe/questions/fe/_attachment_field.html.erb +133 -10
  135. data/app/views/fe/questions/fe/_checkbox_field.html.erb +34 -30
  136. data/app/views/fe/questions/fe/_country.html.erb +6 -6
  137. data/app/views/fe/questions/fe/_date_field.html.erb +5 -5
  138. data/app/views/fe/questions/fe/_date_field_mmyy.html.erb +8 -8
  139. data/app/views/fe/questions/fe/_drop_down_field.html.erb +7 -6
  140. data/app/views/fe/questions/fe/_paragraph.html.erb +1 -1
  141. data/app/views/fe/questions/fe/_question_grid.html.erb +21 -16
  142. data/app/views/fe/questions/fe/_question_grid_with_total.html.erb +25 -18
  143. data/app/views/fe/questions/fe/_questions.html.erb +11 -5
  144. data/app/views/fe/questions/fe/_radio_button_field.html.erb +42 -25
  145. data/app/views/fe/questions/fe/_rating.html.erb +57 -18
  146. data/app/views/fe/questions/fe/_reference_discipler.html.erb +1 -1
  147. data/app/views/fe/questions/fe/_reference_friend.html.erb +1 -1
  148. data/app/views/fe/questions/fe/_reference_parent.html.erb +1 -1
  149. data/app/views/fe/questions/fe/_reference_peer.html.erb +1 -1
  150. data/app/views/fe/questions/fe/_reference_question.html.erb +44 -21
  151. data/app/views/fe/questions/fe/_reference_roommate.html.erb +1 -1
  152. data/app/views/fe/questions/fe/_reference_spiritual.html.erb +1 -1
  153. data/app/views/fe/questions/fe/_reference_staff.html.erb +1 -1
  154. data/app/views/fe/questions/fe/_section.html.erb +1 -1
  155. data/app/views/fe/questions/fe/_state_chooser.html.erb +6 -6
  156. data/app/views/fe/questions/fe/_text_area_field.html.erb +17 -6
  157. data/app/views/fe/questions/fe/_text_field.html.erb +7 -6
  158. data/app/views/fe/questions/fe/_yes_no.html.erb +8 -8
  159. data/app/views/fe/questions/fe/_yes_no_field.erb +12 -9
  160. data/app/views/fe/reference_pages/_reference.html.erb +15 -15
  161. data/app/views/fe/reference_pages/edit.html.erb +9 -9
  162. data/app/views/fe/reference_sheets/done.html.erb +2 -2
  163. data/app/views/fe/reference_sheets/not_found.html.erb +4 -4
  164. data/app/views/fe/references/edit.html.erb +6 -6
  165. data/app/views/fe/references/show.html.erb +8 -8
  166. data/app/views/fe/references/submit.js.erb +3 -3
  167. data/app/views/fe/submit_pages/_thankyou.html.erb +1 -1
  168. data/app/views/fe/submit_pages/edit.html.erb +12 -12
  169. data/app/views/fe/submit_pages/error.js.erb +1 -1
  170. data/app/views/fe/submit_pages/submit.js.erb +2 -2
  171. data/app/views/layouts/fe/_error_messages_for.html.erb +7 -0
  172. data/app/views/layouts/fe/application.html.erb +4 -5
  173. data/app/views/layouts/fe/fe_admin.html.erb +30 -0
  174. data/app/views.current/fe/admin/elements/_errors.html.erb +11 -0
  175. data/app/views.current/fe/admin/elements/create.js.erb +12 -0
  176. data/app/views.current/fe/admin/elements/destroy.js.erb +4 -0
  177. data/app/views.current/fe/admin/elements/drop.js.erb +3 -0
  178. data/app/views.current/fe/admin/elements/duplicate.js.erb +3 -0
  179. data/app/views.current/fe/admin/elements/edit.js.erb +4 -0
  180. data/app/views.current/fe/admin/elements/error.js.erb +4 -0
  181. data/app/views.current/fe/admin/elements/new.js.erb +17 -0
  182. data/app/views.current/fe/admin/elements/reorder.js.erb +0 -0
  183. data/app/views.current/fe/admin/elements/update.js.erb +9 -0
  184. data/app/views.current/fe/admin/email_templates/_form.html.erb +8 -0
  185. data/app/views.current/fe/admin/email_templates/edit.html.erb +13 -0
  186. data/app/views.current/fe/admin/email_templates/index.html.erb +20 -0
  187. data/app/views.current/fe/admin/email_templates/new.html.erb +11 -0
  188. data/app/views.current/fe/admin/panels/_advanced_options.html.erb +49 -0
  189. data/app/views.current/fe/admin/panels/_common_boolean_fields.html.erb +1 -0
  190. data/app/views.current/fe/admin/panels/_common_boolean_fields_default.html.erb +11 -0
  191. data/app/views.current/fe/admin/panels/_common_fields.html.erb +23 -0
  192. data/app/views.current/fe/admin/panels/_condition.html.erb +6 -0
  193. data/app/views.current/fe/admin/panels/_insert.html.erb +39 -0
  194. data/app/views.current/fe/admin/panels/_nav_controls.html.erb +6 -0
  195. data/app/views.current/fe/admin/panels/_page.html.erb +3 -0
  196. data/app/views.current/fe/admin/panels/_pages_list.html.erb +16 -0
  197. data/app/views.current/fe/admin/panels/_prop_attachment_field.html.erb +2 -0
  198. data/app/views.current/fe/admin/panels/_prop_choice_field.html.erb +74 -0
  199. data/app/views.current/fe/admin/panels/_prop_date_field.html.erb +7 -0
  200. data/app/views.current/fe/admin/panels/_prop_element.html.erb +23 -0
  201. data/app/views.current/fe/admin/panels/_prop_page.html.erb +26 -0
  202. data/app/views.current/fe/admin/panels/_prop_paragraph.html.erb +46 -0
  203. data/app/views.current/fe/admin/panels/_prop_question_grid.html.erb +28 -0
  204. data/app/views.current/fe/admin/panels/_prop_question_grid_with_total.html.erb +14 -0
  205. data/app/views.current/fe/admin/panels/_prop_reference_question.html.erb +12 -0
  206. data/app/views.current/fe/admin/panels/_prop_section.html.erb +8 -0
  207. data/app/views.current/fe/admin/panels/_prop_sheet.html.erb +20 -0
  208. data/app/views.current/fe/admin/panels/_prop_text_field.html.erb +20 -0
  209. data/app/views.current/fe/admin/question_pages/_element.html.erb +28 -0
  210. data/app/views.current/fe/admin/question_pages/_element_show.html.erb +10 -0
  211. data/app/views.current/fe/admin/question_pages/_errors.html.erb +10 -0
  212. data/app/views.current/fe/admin/question_pages/_question_page.html.erb +13 -0
  213. data/app/views.current/fe/admin/question_pages/create.js.erb +11 -0
  214. data/app/views.current/fe/admin/question_pages/destroy.js.erb +5 -0
  215. data/app/views.current/fe/admin/question_pages/edit.js.erb +3 -0
  216. data/app/views.current/fe/admin/question_pages/error.js.erb +4 -0
  217. data/app/views.current/fe/admin/question_pages/show.js.erb +9 -0
  218. data/app/views.current/fe/admin/question_pages/show_panel.js.erb +3 -0
  219. data/app/views.current/fe/admin/question_pages/update.js.erb +2 -0
  220. data/app/views.current/fe/admin/question_sheets/_errors.html.erb +11 -0
  221. data/app/views.current/fe/admin/question_sheets/edit.js.erb +3 -0
  222. data/app/views.current/fe/admin/question_sheets/error.js.erb +5 -0
  223. data/app/views.current/fe/admin/question_sheets/index.html.erb +41 -0
  224. data/app/views.current/fe/admin/question_sheets/new.html.erb +15 -0
  225. data/app/views.current/fe/admin/question_sheets/show.html.erb +27 -0
  226. data/app/views.current/fe/admin/question_sheets/update.js.erb +2 -0
  227. data/app/views.current/fe/answer_pages/_answer_page.html.erb +53 -0
  228. data/app/views.current/fe/answer_pages/_element.html.erb +32 -0
  229. data/app/views.current/fe/answer_pages/_page_name.html.erb +1 -0
  230. data/app/views.current/fe/answer_pages/show.html.erb +39 -0
  231. data/app/views.current/fe/answer_pages/update.js.erb +13 -0
  232. data/app/views.current/fe/answer_sheets/_answer_sheet.html.erb +26 -0
  233. data/app/views.current/fe/answer_sheets/_element.html.erb +74 -0
  234. data/app/views.current/fe/answer_sheets/_incomplete.html.erb +10 -0
  235. data/app/views.current/fe/answer_sheets/_page_link.html.erb +9 -0
  236. data/app/views.current/fe/answer_sheets/_pages_list.html.erb +11 -0
  237. data/app/views.current/fe/answer_sheets/_submit_to.html.erb +1 -0
  238. data/app/views.current/fe/answer_sheets/_title.html.erb +1 -0
  239. data/app/views.current/fe/answer_sheets/edit.html.erb +66 -0
  240. data/app/views.current/fe/answer_sheets/incomplete.js.erb +11 -0
  241. data/app/views.current/fe/answer_sheets/index.html.erb +18 -0
  242. data/app/views.current/fe/answer_sheets/send_reference_invite.js.erb +8 -0
  243. data/app/views.current/fe/answer_sheets/show.html.erb +13 -0
  244. data/app/views.current/fe/applications/_logout.html.erb +1 -0
  245. data/app/views.current/fe/applications/show.html.erb +1 -0
  246. data/app/views.current/fe/help/builder.html +33 -0
  247. data/app/views.current/fe/help/question_grid.html +18 -0
  248. data/app/views.current/fe/questions/fe/_acceptance.html.erb +14 -0
  249. data/app/views.current/fe/questions/fe/_attachment_field.html.erb +165 -0
  250. data/app/views.current/fe/questions/fe/_checkbox_field.html.erb +53 -0
  251. data/app/views.current/fe/questions/fe/_country.html.erb +7 -0
  252. data/app/views.current/fe/questions/fe/_date_field.html.erb +7 -0
  253. data/app/views.current/fe/questions/fe/_date_field_mmyy.html.erb +9 -0
  254. data/app/views.current/fe/questions/fe/_drop_down_field.html.erb +8 -0
  255. data/app/views.current/fe/questions/fe/_paragraph.html.erb +1 -0
  256. data/app/views.current/fe/questions/fe/_question_grid.html.erb +70 -0
  257. data/app/views.current/fe/questions/fe/_question_grid_with_total.html.erb +64 -0
  258. data/app/views.current/fe/questions/fe/_questions.html.erb +15 -0
  259. data/app/views.current/fe/questions/fe/_radio_button_field.html.erb +60 -0
  260. data/app/views.current/fe/questions/fe/_rating.html.erb +64 -0
  261. data/app/views.current/fe/questions/fe/_reference_discipler.html.erb +1 -0
  262. data/app/views.current/fe/questions/fe/_reference_friend.html.erb +1 -0
  263. data/app/views.current/fe/questions/fe/_reference_parent.html.erb +1 -0
  264. data/app/views.current/fe/questions/fe/_reference_peer.html.erb +1 -0
  265. data/app/views.current/fe/questions/fe/_reference_question.html.erb +61 -0
  266. data/app/views.current/fe/questions/fe/_reference_roommate.html.erb +1 -0
  267. data/app/views.current/fe/questions/fe/_reference_spiritual.html.erb +1 -0
  268. data/app/views.current/fe/questions/fe/_reference_staff.html.erb +1 -0
  269. data/app/views.current/fe/questions/fe/_section.html.erb +1 -0
  270. data/app/views.current/fe/questions/fe/_state_chooser.html.erb +7 -0
  271. data/app/views.current/fe/questions/fe/_text_area_field.html.erb +17 -0
  272. data/app/views.current/fe/questions/fe/_text_field.html.erb +9 -0
  273. data/app/views.current/fe/questions/fe/_yes_no.html.erb +17 -0
  274. data/app/views.current/fe/questions/fe/_yes_no_field.erb +20 -0
  275. data/app/views.current/fe/reference_pages/_reference.html.erb +31 -0
  276. data/app/views.current/fe/reference_pages/edit.html.erb +24 -0
  277. data/app/views.current/fe/reference_sheets/done.html.erb +2 -0
  278. data/app/views.current/fe/reference_sheets/not_found.html.erb +5 -0
  279. data/app/views.current/fe/reference_sheets/submitted.js.erb +1 -0
  280. data/app/views.current/fe/references/edit.html.erb +8 -0
  281. data/app/views.current/fe/references/send_invite.js.erb +7 -0
  282. data/app/views.current/fe/references/show.html.erb +18 -0
  283. data/app/views.current/fe/references/submit.js.erb +3 -0
  284. data/app/views.current/fe/submit_pages/_errors.html.erb +1 -0
  285. data/app/views.current/fe/submit_pages/_thankyou.html.erb +2 -0
  286. data/app/views.current/fe/submit_pages/edit.html.erb +36 -0
  287. data/app/views.current/fe/submit_pages/error.js.erb +1 -0
  288. data/app/views.current/fe/submit_pages/submit.js.erb +3 -0
  289. data/app/views.current/layouts/fe/_error_messages_for.html.erb +7 -0
  290. data/app/views.current/layouts/fe/application.html.erb +47 -0
  291. data/app/{views/layouts/fe/fe.admin.html.erb → views.current/layouts/fe/fe_admin.html.erb} +4 -4
  292. data/config/initializers/paper_trail.rb +3 -0
  293. data/config/routes.rb +3 -37
  294. data/db/migrate/20131003041856_core.rb +23 -23
  295. data/db/migrate/20131003044250_create_reference_sheets.rb +2 -1
  296. data/db/migrate/20131003044436_add_element_and_answer_fields.rb +3 -3
  297. data/db/migrate/20131003044518_create_email_templates.rb +2 -2
  298. data/db/migrate/20131003044621_add_max_lengths.rb +1 -1
  299. data/db/migrate/20131003044714_create_join_table.rb +1 -1
  300. data/db/migrate/20131016162128_remove_question_id_from_element.rb +1 -1
  301. data/db/migrate/20140623153424_create_fe_people.rb +2 -2
  302. data/db/migrate/20140624180246_create_fe_addresses.rb +2 -2
  303. data/db/migrate/{20140624182216_create_create_fe_phone_numbers.rb → 20140624182216_create_fe_phone_numbers.rb} +2 -2
  304. data/db/migrate/20140625160545_create_fe_users.rb +2 -2
  305. data/db/migrate/20140808202507_add_conditional_type_to_elements.rb +1 -1
  306. data/db/migrate/20140808203609_add_conditional_answer_to_elements.rb +1 -1
  307. data/db/migrate/20141103204704_remove_short_value_column.rb +1 -1
  308. data/db/migrate/20141109154522_move_conditional_ids_used_for_choice_field_to_their_own_column.rb +1 -1
  309. data/db/migrate/20150504221439_add_all_element_ids_to_pages.rb +5 -0
  310. data/db/migrate/20150713022326_add_locale_columns.rb +9 -0
  311. data/db/migrate/20150714220730_add_locale_to_answer_sheet.rb +5 -0
  312. data/db/migrate/20150925181652_add_share_to_elements.rb +5 -0
  313. data/db/migrate/20150928085325_change_pages_all_element_ids_to_text.rb +5 -0
  314. data/db/migrate/20150930191538_add_locale_to_reference_sheets.rb +5 -0
  315. data/db/migrate/20151021181928_switch_conditional_answer_separator_to_semicolon.rb +7 -0
  316. data/db/migrate/20151021184250_add_question_sheet_id_in_refs.rb +12 -0
  317. data/db/migrate/20160201185838_add_visible_and_visibility_cache_key_to_reference_sheets.rb +6 -0
  318. data/db/migrate/20160805221415_add_rating_extra_labels.rb +10 -0
  319. data/db/migrate/20181108201746_create_versions.rb +80 -0
  320. data/db/migrate/20181218201130_increase_slug_length.rb +5 -0
  321. data/lib/access_key_generator.rb +12 -0
  322. data/lib/distinct_distinct_patch.rb +20 -0
  323. data/lib/fe/engine.rb +26 -14
  324. data/lib/fe/version.rb +1 -1
  325. data/lib/fe.rb +11 -1
  326. data/spec/controllers/fe/admin/elements_controller_spec.rb +211 -1
  327. data/spec/controllers/fe/admin/email_templates_controller_spec.rb +26 -1
  328. data/spec/controllers/fe/admin/question_pages_controller_spec.rb +8 -1
  329. data/spec/controllers/fe/admin/question_sheets_controller_spec.rb +48 -1
  330. data/spec/controllers/fe/answer_pages_controller_spec.rb +129 -1
  331. data/spec/controllers/fe/answer_sheets_controller_spec.rb +136 -1
  332. data/spec/controllers/fe/reference_pages_controller.rb +4 -0
  333. data/spec/controllers/fe/references_controller_spec.rb +4 -0
  334. data/spec/controllers/fe/submit_pages_controller_spec.rb +4 -0
  335. data/spec/dummy/app/assets/config/manifest.js +0 -0
  336. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  337. data/spec/dummy/app/helpers/application_helper.rb +9 -0
  338. data/spec/dummy/app/models/application.rb +3 -0
  339. data/spec/dummy/app/models/person.rb +11 -0
  340. data/spec/dummy/app/models/user.rb +3 -0
  341. data/spec/dummy/app/views/layouts/application.html.erb +2 -2
  342. data/spec/dummy/config/application.rb +3 -1
  343. data/spec/dummy/config/database.yml +20 -17
  344. data/spec/dummy/config/environments/production.rb +1 -5
  345. data/spec/dummy/config/environments/test.rb +4 -2
  346. data/spec/dummy/config/initializers/assets.rb +5 -2
  347. data/spec/dummy/config/initializers/fast_gettext.rb +5 -0
  348. data/spec/dummy/config/initializers/to_unsafe_h.rb +5 -0
  349. data/spec/dummy/config/initializers/to_unsafe_h.rb.new +5 -0
  350. data/spec/dummy/config/secrets.yml +2 -2
  351. data/spec/dummy/db/migrate/20141203214017_core.fe_engine.rb +92 -0
  352. data/spec/dummy/db/migrate/20141203214018_create_reference_sheets.fe_engine.rb +25 -0
  353. data/spec/dummy/db/migrate/20141203214019_add_element_and_answer_fields.fe_engine.rb +11 -0
  354. data/spec/dummy/db/migrate/20141203214020_create_email_templates.fe_engine.rb +18 -0
  355. data/spec/dummy/db/migrate/20141203214021_add_max_lengths.fe_engine.rb +9 -0
  356. data/spec/dummy/db/migrate/20141203214022_create_join_table.fe_engine.rb +12 -0
  357. data/spec/dummy/db/migrate/20141203214023_remove_question_id_from_element.fe_engine.rb +10 -0
  358. data/spec/dummy/db/migrate/20141203214024_create_fe_people.fe_engine.rb +13 -0
  359. data/spec/dummy/db/migrate/20141203214025_create_fe_addresses.fe_engine.rb +21 -0
  360. data/spec/dummy/db/migrate/20141203214027_create_fe_users.fe_engine.rb +13 -0
  361. data/spec/dummy/db/migrate/20141203214028_add_conditional_type_to_elements.fe_engine.rb +6 -0
  362. data/spec/dummy/db/migrate/20141203214029_add_conditional_answer_to_elements.fe_engine.rb +6 -0
  363. data/spec/dummy/db/migrate/20141203214030_remove_short_value_column.fe_engine.rb +6 -0
  364. data/spec/dummy/db/migrate/20141203214031_move_conditional_ids_used_for_choice_field_to_their_own_column.fe_engine.rb +8 -0
  365. data/spec/dummy/db/migrate/20150123215803_create_users.rb +9 -0
  366. data/spec/dummy/db/migrate/20150504222619_add_all_element_ids_to_pages.fe_engine.rb +6 -0
  367. data/spec/dummy/db/migrate/20150925192557_add_share_to_elements.fe_engine.rb +6 -0
  368. data/spec/dummy/db/migrate/20150930190001_create_fe_phone_numbers.fe_engine.rb +20 -0
  369. data/spec/dummy/db/migrate/20150930190002_add_locale_columns.fe_engine.rb +10 -0
  370. data/spec/dummy/db/migrate/20150930190003_add_locale_to_answer_sheet.fe_engine.rb +6 -0
  371. data/spec/dummy/db/migrate/20150930190004_change_pages_all_element_ids_to_text.fe_engine.rb +6 -0
  372. data/spec/dummy/db/migrate/20150930191756_add_locale_to_reference_sheets.fe_engine.rb +6 -0
  373. data/spec/dummy/db/migrate/20151021190027_add_question_sheet_id_in_refs.fe_engine.rb +13 -0
  374. data/spec/dummy/db/migrate/20160204164612_switch_conditional_answer_separator_to_semicolon.fe_engine.rb +8 -0
  375. data/spec/dummy/db/migrate/20160204164613_add_visible_and_visibility_cache_key_to_reference_sheets.fe_engine.rb +7 -0
  376. data/spec/dummy/db/migrate/20181108201746_create_versions.rb +80 -0
  377. data/spec/dummy/db/schema.rb +91 -69
  378. data/spec/dummy/log/test.log +101278 -419
  379. data/spec/factories/answer_sheet_question_sheets.rb +1 -1
  380. data/spec/factories/answer_sheets.rb +2 -2
  381. data/spec/factories/answers.rb +1 -1
  382. data/spec/factories/applications.rb +3 -4
  383. data/spec/factories/dummy_applications.rb +6 -0
  384. data/spec/factories/dummy_people.rb +6 -0
  385. data/spec/factories/dummy_users.rb +6 -0
  386. data/spec/factories/elements.rb +35 -10
  387. data/spec/factories/email_templates.rb +5 -0
  388. data/spec/factories/fe_addresses.rb +10 -10
  389. data/spec/factories/fe_email_addresses.rb +3 -3
  390. data/spec/factories/fe_email_templates.rb +9 -0
  391. data/spec/factories/fe_people.rb +5 -7
  392. data/spec/factories/fe_phone_numbers.rb +3 -3
  393. data/spec/factories/fe_user.rb +6 -0
  394. data/spec/factories/page.rb +1 -1
  395. data/spec/factories/page_elements.rb +1 -1
  396. data/spec/factories/paragraphs.rb +1 -1
  397. data/spec/factories/question_sheet.rb +3 -3
  398. data/spec/factories/reference_questions.rb +1 -1
  399. data/spec/factories/reference_sheets.rb +9 -0
  400. data/spec/jobs/fe/update_reference_sheet_visibility_job_spec.rb +40 -0
  401. data/spec/mailers/fe/notifier_spec.rb +39 -0
  402. data/spec/models/fe/answer_sheet_question_sheet_spec.rb +1 -1
  403. data/spec/models/fe/answer_spec.rb +2 -2
  404. data/spec/models/fe/application_spec.rb +94 -1
  405. data/spec/models/fe/choice_field_spec.rb +66 -0
  406. data/spec/models/fe/condition_spec.rb +2 -2
  407. data/spec/models/fe/element_spec.rb +414 -37
  408. data/spec/models/fe/email_template_spec.rb +1 -1
  409. data/spec/models/fe/page_element_spec.rb +1 -1
  410. data/spec/models/fe/page_spec.rb +168 -11
  411. data/spec/models/fe/person_spec.rb +1 -1
  412. data/spec/models/fe/question_set_spec.rb +91 -0
  413. data/spec/models/fe/question_sheet_spec.rb +103 -1
  414. data/spec/models/fe/question_spec.rb +73 -6
  415. data/spec/models/fe/reference_question_spec.rb +20 -0
  416. data/spec/models/fe/reference_sheet_spec.rb +305 -2
  417. data/spec/models/fe/text_field_spec.rb +22 -0
  418. data/spec/rails_helper.rb +85 -54
  419. data/spec/support/choices.xml +6 -0
  420. metadata +310 -84
  421. data/app/assets/javascripts/fe/fe.common.js +0 -57
  422. data/app/assets/javascripts/fe/jquery.scrollTo-min.js +0 -7
  423. data/app/assets/javascripts/fe/rails.extra.js +0 -6
  424. data/app/controllers/fe/applications_controller.rb +0 -183
  425. data/app/controllers/fe/concerns/answer_pages_controller_concern.rb +0 -83
  426. data/app/controllers/fe/payments_controller.rb +0 -184
  427. data/app/models/fe/concerns/answer_sheet_concern.rb +0 -55
  428. data/app/models/fe/payment.rb +0 -77
  429. data/app/models/fe/payment_question.rb +0 -22
  430. data/app/views/fe/admin/panels/_prop_payment_question.html.erb +0 -1
  431. data/app/views/fe/application/_logout.html.erb +0 -1
  432. data/app/views/fe/payment_pages/_credit.html.erb +0 -47
  433. data/app/views/fe/payment_pages/_mail.html.erb +0 -27
  434. data/app/views/fe/payment_pages/_payment.html.erb +0 -6
  435. data/app/views/fe/payment_pages/_staff.html.erb +0 -25
  436. data/app/views/fe/payment_pages/_staff_results.html.erb +0 -17
  437. data/app/views/fe/payment_pages/edit.html.erb +0 -75
  438. data/app/views/fe/payment_pages/staff_search.js.erb +0 -2
  439. data/app/views/fe/payments/_credit.html.erb +0 -47
  440. data/app/views/fe/payments/_errors.html.erb +0 -1
  441. data/app/views/fe/payments/_payment.html.erb +0 -13
  442. data/app/views/fe/payments/_staff.html.erb +0 -21
  443. data/app/views/fe/payments/_staff_results.html.erb +0 -18
  444. data/app/views/fe/payments/approve.js.erb +0 -3
  445. data/app/views/fe/payments/create.js.erb +0 -19
  446. data/app/views/fe/payments/destroy.js.erb +0 -7
  447. data/app/views/fe/payments/edit.html.erb +0 -56
  448. data/app/views/fe/payments/error.js.erb +0 -3
  449. data/app/views/fe/payments/no_access.html.erb +0 -7
  450. data/app/views/fe/payments/staff_search.js.erb +0 -1
  451. data/app/views/fe/payments/update.html.erb +0 -24
  452. data/app/views/fe/questions/fe/_payment_question.html.erb +0 -70
  453. data/db/migrate/20140828045339_create_payments.rb +0 -13
  454. data/spec/dummy/db/test.sqlite3 +0 -0
  455. data/spec/factories/payments.rb +0 -7
  456. data/spec/models/fe/payment_question_spec.rb +0 -65
@@ -1,17 +1,17 @@
1
- <%- if ['question_pages', 'question_sheets', 'elements'].include?(controller.controller_name) -%>
1
+ <%- if ["question_pages", "question_sheets", "elements"].include?(controller.controller_name) -%>
2
2
  <div class="droppable" data-url="<%= drop_fe_admin_question_sheet_page_element_path(@page.question_sheet_id, @page.id, yes_no.id) %>">
3
- <%= render 'fe/questions/fe/yes_no_field', :yes_no => yes_no %>
3
+ <%= render "fe/questions/fe/yes_no_field", yes_no: yes_no %>
4
4
  <ul class="questions" id="questions_list_<%= yes_no.id %>" data-sortable="true" data-sortable-url="<%= reorder_fe_admin_question_sheet_page_elements_path(@page.question_sheet_id, @page.id) %>" data-sortable-handle=".handle">
5
- <%= render :partial => 'fe/admin/question_pages/element', :collection => yes_no.elements, :locals => {:in_grid => true} %>
5
+ <%= render partial: "fe/admin/question_pages/element", collection: yes_no.elements, locals: {in_grid: true} %>
6
6
  </ul>
7
7
  </div>
8
8
  <% else %>
9
- <%= render 'fe/questions/fe/yes_no_field', :yes_no => yes_no %>
10
- <ul class="questions" id="questions_list_<%= yes_no.id %>" style="<%= yes_no.has_answer?(1,@answer_sheet) ? '' : 'display:none' %>">
11
- <%= render :partial => 'fe/answer_pages/element', :collection => yes_no.elements, :locals => {:in_grid => false, :in_conditional => true} %>
9
+ <%= render "fe/questions/fe/yes_no_field", yes_no: yes_no %>
10
+ <ul class="questions" id="questions_list_<%= yes_no.id %>" style="<%= yes_no.has_answer?(1,@answer_sheet) ? "" : "display:none" %>">
11
+ <%= render partial: "fe/answer_pages/element", collection: yes_no.elements, locals: {in_grid: false, in_conditional: true} %>
12
12
  </ul>
13
13
  <script type="text/javascript" charset="utf-8">
14
- $(document).on('click', '#<%= dom_id(yes_no) %>_1', function() {$('#questions_list_<%= yes_no.id %>').show(); $('input', '#questions_list_<%= yes_no.id %>').addClass('required'); });
15
- $(document).on('click', '#<%= dom_id(yes_no) %>_0', function() {$('#questions_list_<%= yes_no.id %>').hide(); $('input', '#questions_list_<%= yes_no.id %>').removeClass('required'); });
14
+ $(document).on("click", "#<%= dom_id(yes_no) %>_1", function() {$("#questions_list_<%= yes_no.id %>").show(); $("input", "#questions_list_<%= yes_no.id %>").addClass("required"); });
15
+ $(document).on("click", "#<%= dom_id(yes_no) %>_0", function() {$("#questions_list_<%= yes_no.id %>").hide(); $("input", "#questions_list_<%= yes_no.id %>").removeClass("required"); });
16
16
  </script>
17
17
  <% end %>
@@ -1,16 +1,19 @@
1
+ <% locked = yes_no.locked?(params, @answer_sheet, @presenter, current_person) %>
1
2
  <div id="<%= dom_id(yes_no) %>" class="choice_field" style="white-space: nowrap;">
2
- <% css_class = ' ' -%>
3
+ <% css_class = "#{yes_no.css_class} " -%>
3
4
  <% yes_no.choices.each_with_index do |choice, num| -%>
4
5
  <% dom_id = dom_id(yes_no) + "_" + pretty_tag(choice[1])
5
- css_class += yes_no.validation_class(@answer_sheet) if num == 0
6
+ css_class += yes_no.validation_class(@answer_sheet, @page) if num == 0
6
7
  checked = yes_no.has_answer?(choice[1],@answer_sheet) -%>
7
- <div class="field field_check yesno">
8
- <%= radio_button_tag "answers[#{yes_no.id}]", choice[1], checked,
9
- :id => dom_id,
10
- :class => css_class,
11
- :disabled => @answer_sheet.frozen?&&!@presenter.reference?,
12
- :readonly => @answer_sheet.frozen?&&!@presenter.reference? %>
13
- <label class="choice horiz" for="<%= dom_id %>"><%= choice[0] %></label>
8
+ <div class="<% if Fe.bootstrap %>radio<% end %> field field_check yesno">
9
+ <% if Fe.bootstrap %><label class="choice horiz" for="<%= dom_id %>"><% end %>
10
+ <%= radio_button_tag "answers[#{yes_no.id}]", choice[1], checked,
11
+ id: dom_id,
12
+ class: css_class,
13
+ disabled: locked,
14
+ readonly: locked %>
15
+ <% if Fe.bootstrap %><%= choice[0] %><% end %>
16
+ <% unless Fe.bootstrap %><label class="choice horiz" for="<%= dom_id %>"><%= choice[0] %></label><% end %>
14
17
  </div>
15
18
  <% end -%>
16
19
  <div class="clear"></div>
@@ -4,28 +4,28 @@
4
4
 
5
5
  <ul class="questions">
6
6
  <li>
7
- <label for="<%= "name_#{index}" %>" class="desc">Name</label>
8
- <%= text_field_tag "references[#{index}][name]", reference.name, :class => 'text required', :id => "name_#{index}" %>
7
+ <label for="<%= "name_#{index}" %>" class="desc"><%= _("Name") %></label>
8
+ <%= text_field_tag "references[#{index}][name]", reference.name, class: "text required", id: "name_#{index}" %>
9
9
  </li>
10
10
  <li>
11
- <label for="<%= "email_#{index}" %>" class="desc">E-mail</label>
11
+ <label for="<%= "email_#{index}" %>" class="desc"><%= _("E-mail") %></label>
12
12
  <% if (!reference.email.blank?) %><div class="warningText">Please be aware that any changes to this email address after your reference has started filling out their form will cause their answers to be lost.</div><% end %>
13
- <%= text_field_tag "references[#{index}][email]", reference.email, :class => 'text required validate-email', :id => "email_#{index}" %>
13
+ <%= text_field_tag "references[#{index}][email]", reference.email, class: "text required validate-email", id: "email_#{index}" %>
14
14
  </li>
15
15
  <li>
16
- <label for="<%= "phone_#{index}" %>" class="desc">Phone</label>
17
- <%= text_field_tag "references[#{index}][phone]", reference.phone, :class => 'text required validate-phone', :id => "phone_#{index}" %>
16
+ <label for="<%= "phone_#{index}" %>" class="desc"><%= _("Phone") %></label>
17
+ <%= text_field_tag "references[#{index}][phone]", reference.phone, class: "text required validate-phone", id: "phone_#{index}" %>
18
18
  </li>
19
19
  <li>
20
- <label for="<%= "months_known_#{index}" %>" class="desc">Length of acquaintance</label>
21
- <%= select_tag "references[#{index}][months_known]",
22
- options_for_select([""] + Fe::ReferencePagesController::MONTHS_KNOWN_OPTIONS, reference.months_known),
23
- :class => 'select validate-selection',
24
- :id => "months_known[#{index}]" %>
20
+ <label for="<%= "months_known_#{index}" %>" class="desc"><%= _("Length of acquaintance") %></label>
21
+ <%= select_tag "references[#{index}][months_known]",
22
+ options_for_select([""] + Fe::ReferencePagesController::MONTHS_KNOWN_OPTIONS, reference.months_known),
23
+ class: "select validate-selection",
24
+ id: "months_known[#{index}]" %>
25
25
  </li>
26
- <li><p>An invitation will be sent to this reference when you submit your application. If you would
27
- like to get a headstart, please feel free to click 'Send Email Invitation' below.</p></li>
26
+ <li><p><%= _("An invitation will be sent to this reference when you submit your application. If you would " \
27
+ "like to get a headstart, please feel free to click "Send Email Invitation" below.") %></p></li>
28
28
 
29
- <li><%= submit_tag 'Send Email Invitation' %>
30
- Invitation last sent: <span id="ref_last_sent_<%= reference.id %>"><% unless reference.email_sent_at.nil? -%><%= reference.email_sent_at.strftime("%m/%d/%Y @ %I:%M%p") %><% end -%></span></li>
29
+ <li><%= submit_tag(_("Send Email Invitation")) %>
30
+ <%= _("Invitation last sent:") %> <span id="ref_last_sent_<%= reference.id %>"><% unless reference.email_sent_at.nil? -%><%= reference.email_sent_at.strftime("%Y-%m-%d @ %I:%M%p") %><% end -%></span></li>
31
31
  </ul>
@@ -1,4 +1,4 @@
1
- <% page_dom = 'reference_page'
1
+ <% page_dom = "reference_page"
2
2
  next_js = load_page_js(@next_page) -%>
3
3
 
4
4
  <div id="<%= page_dom %>" class="answer-page" style="display: none;"> <!-- this id is parsed by public.js -->
@@ -9,15 +9,15 @@
9
9
  <div class="page">
10
10
 
11
11
  <%= form_tag fe_application_reference_page_path(@application), remote: true, id: "#{page_dom}-form", onsubmit: next_js + "; return false;" do %>
12
-
13
- <p>Please provide your references.</p>
14
-
15
- <%= render :partial => 'reference', :collection => @references, :locals => {:page_dom => page_dom} %>
16
-
12
+
13
+ <p><%= _("Please provide your references.") %></p>
14
+
15
+ <%= render partial: "reference", collection: @references, locals: {page_dom: page_dom} %>
16
+
17
17
  <% end -%>
18
-
19
- <%= button_to_function "Next", next_js unless next_js.empty? %>
20
-
18
+
19
+ <%= button_to_function _("Next"), next_js unless next_js.empty? %>
20
+
21
21
  </div>
22
22
  </div>
23
23
 
@@ -1,2 +1,2 @@
1
- <p>Thank you for completing this reference. Your input is so valuable to us. If you are not familiar with Campus Crusade for Christ or our STINT and Internship opportunities, why not visit our website to learn more? <%= link_to('http://cruoncampus.org', 'http://cruoncampus.org') %></p>
2
- <p>If you have any questions or concerns, email us at stintandinternships@uscm.org.</p>
1
+ <p><%= _("Thank you for completing this reference. Your input is so valuable to us. If you are not familiar with Cru, why not visit our website to learn more?") %> <%= link_to("http://cru.org", "http://cru.org") %></p>
2
+ <p><%= _("If you have any questions or concerns, email us at %{email}") % { email: Fe.from_email } %></p>
@@ -1,5 +1,5 @@
1
- We weren't able to find a reference associated with this link. The are two common reason for this issue:
2
- <ol>
3
- <li>1. The applicant has picked someone else to do their reference.</li>
4
- <li>2. The link in your email was wrapped onto two lines. Check to make sure what you see in the address bar of your browser is the full link you see in your email.</li>
1
+ <%= _("We weren"t able to find a reference associated with this link. The are two common reason for this issue:") %>
2
+ <ol>
3
+ <li><%= _("The applicant has picked someone else to do their reference.") %></li>
4
+ <li><%= _("The link in your email was wrapped onto two lines. Check to make sure what you see in the address bar of your browser is the full link you see in your email.") %></li>
5
5
  </ol>
@@ -1,8 +1,8 @@
1
- We're sorry, but the reference form you are trying to access is no longer available.<br/>
1
+ <%= _("We"re sorry, but the reference form you are trying to access is no longer available.") %><br/>
2
2
  <br/>
3
- If the applicant (the person you are attempting to fill out a reference for) has changed or updated any information about the reference,
4
- that would invalidate this form. If you know that you are supposed to fill out a reference for this person, please check the link
5
- that you clicked on and make sure the entire address is displayed in the address bar. Sometimes the link doesn’t fully cut and paste.<br/>
3
+ <%= _("If the applicant (the person you are attempting to fill out a reference for) has changed or updated any information about the reference, " \
4
+ "that would invalidate this form. If you know that you are supposed to fill out a reference for this person, please check the link " \
5
+ "that you clicked on and make sure the entire address is displayed in the address bar. Sometimes the link doesn’t fully cut and paste.") %><br/>
6
6
  <br/>
7
- If you still require assistance, please forward the email you received that contained the link you clicked on to
8
- <%= Fe.from_email %> with a description of your problem.
7
+ <%= _("If you still require assistance, please forward the email you received that contained the link you clicked to %{email} with a description of your problem.") %
8
+ { email: Fe.from_email } %>
@@ -1,18 +1,18 @@
1
1
  <div id="controls">
2
2
  <div id="panel">
3
3
  <div class="panel">
4
- <% unless @reference.question_sheet.nil? -%>
5
- <h2><%= @reference.question_sheet.label %></h2>
6
-
7
- <p><label class="desc">Applicant:</label> <%= @application.applicant.informal_full_name %></p>
8
- <p><label class="desc">Reference:</label> <%= @reference.name %></p>
9
- <% end -%>
4
+ <% unless @reference.question_sheet.nil? -%>
5
+ <h2><%= @reference.question_sheet.label %></h2>
6
+
7
+ <p><label class="desc"><%= _("Applicant:") %></label> <%= @application.applicant.informal_full_name %></p>
8
+ <p><label class="desc"><%= _("Reference:") %></label> <%= @reference.name %></p>
9
+ <% end -%>
10
10
  </div>
11
11
  </div>
12
12
  </div>
13
13
 
14
14
  <div id="preview" class="answer-page">
15
-
16
- <%= render :partial => '/answer_sheets/answer_sheet', :locals => {:answer_sheet => @answer_sheet, :elements => @elements } %>
15
+
16
+ <%= render partial: "/answer_sheets/answer_sheet", locals: {answer_sheet: @answer_sheet, elements: @elements } %>
17
17
 
18
18
  </div>
@@ -1,3 +1,3 @@
1
- $('#submit_message').html("Thank you for submitting your reference.")
2
- $('#submit_message').show()
3
- $('#submit_button').hide()
1
+ $('#submit_message, .submit_message').html("<%= _("Thank you for submitting your reference.") %>")
2
+ $('#submit_message, .submit_message').show()
3
+ $('.page:visible #submit_button').hide()
@@ -1,2 +1,2 @@
1
- <p>Thank you for submitting your application. It has been accepted for processing.</p>
1
+ <p><%= _("Thank you for submitting your application. It has been accepted for processing.") %></p>
2
2
 
@@ -1,4 +1,4 @@
1
- <% page_dom = 'submit_page'
1
+ <% page_dom = "submit_page"
2
2
  next_js = load_page_js(@next_page) -%>
3
3
 
4
4
  <div id="<%= page_dom %>" class="answer-page"> <!-- this id is parsed by public.js -->
@@ -8,29 +8,29 @@
8
8
  <div id="page-preview">
9
9
  <div class="page">
10
10
 
11
- <%= form_tag fe_application_submit_page_path(@application), :id => "#{page_dom}-form", :onsubmit => "page_handler.validateAll(); return false;" do -%>
11
+ <%= form_tag fe_application_submit_page_path(@application), id: "#{page_dom}-form", autocomplete: "off", onsubmit: "page_handler.validateAll(); return false;" do -%>
12
12
 
13
13
  <div id="submit_app">
14
14
  <% if @application.frozen? -%>
15
- <p>You have already submitted this application.</p>
15
+ <p><%= _("You have already submitted this application.") %></p>
16
16
  <% else -%>
17
- <p>If you are sure you are finished with the application, click "Submit Application".
18
- After you submit your application, you will not be able to edit your answers in your
19
- application, but you will be able to change your your personal information, your
20
- school information, and your reference information as necessary.</p>
21
-
17
+ <p><%= _("If you are sure you are finished with the application, click "Submit Application". " \
18
+ "After you submit your application, you will not be able to edit your answers in your " \
19
+ "application, but you will be able to change your your personal information, your " \
20
+ "school information, and your reference information as necessary.") %></p>
21
+
22
22
  <div id="application_errors">
23
- <%= render :partial => "errors"%>
23
+ <%= render partial: "errors"%>
24
24
  </div>
25
25
 
26
26
  <%= hidden_field_tag "submit_to", submit_fe_application_submit_page_path(@application) %>
27
27
  <div id="submit_message" class="validation-advice" style="display: none;"></div>
28
- <p class="buttons"><%= submit_tag "Submit Application" %></p>
28
+ <p class="buttons"><%= submit_tag(_("Submit Application")) %></p>
29
29
  <% end -%>
30
30
  </div>
31
-
31
+
32
32
  <% end -%>
33
-
33
+
34
34
  </div>
35
35
  </div>
36
36
  </div>
@@ -1 +1 @@
1
- page.replace_html 'application_errors', :partial => 'errors', :locals => {:application => @application}
1
+ page.replace_html 'application_errors', partial: 'errors', locals: {application: @application}
@@ -1,3 +1,3 @@
1
- page.replace_html "submit_app", :partial => "thankyou"
2
- page.replace "meta", :partial => "fe/applications/meta_info"
1
+ page.replace_html "submit_app", partial: "thankyou"
2
+ page.replace "meta", partial: "fe/applications/meta_info"
3
3
  page << "new Effect.ScrollTo('meta');"
@@ -0,0 +1,7 @@
1
+ <% if record && record.errors.any? %>
2
+ <ul>
3
+ <% record.errors.full_messages.each do |msg| %>
4
+ <li><%= msg %></li>
5
+ <% end %>
6
+ </ul>
7
+ <% end %>
@@ -4,15 +4,14 @@
4
4
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5
5
  <head>
6
6
  <title><%= @title %></title>
7
- <%= stylesheet_link_tag "print", :media => 'print' %>
7
+ <%= stylesheet_link_tag "print", media: "print" %>
8
8
  <%= stylesheet_link_tag "base" %>
9
9
 
10
10
  <script type="text/javascript" charset="utf-8">
11
- var answer_sheet_type = '<%= @answer_sheet.class %>'
11
+ var answer_sheet_type = "<%= @answer_sheet.class %>"
12
12
  </script>
13
13
  <%= csrf_meta_tag %>
14
- <%= stylesheet_link_tag 'message_block' %>
15
- <%= stylesheet_link_tag asset_path('fe/fe.screen.css') %>
14
+ <%= stylesheet_link_tag asset_path("fe/fe.screen.css") %>
16
15
  <script type="text/javascript" charset="utf-8">
17
16
  <%#= raw Rack::TimeZone::Javascript %>
18
17
  setTimezoneCookie()
@@ -26,7 +25,7 @@
26
25
  <div id="header" style="height: 72px;">
27
26
  <h1 style="display: inline; position: absolute; color: #F3F3F3; margin: 4.5px 10px; line-height: 36px;"><%= @title %></h1>
28
27
 
29
- <%= render "fe/application/logout" %>
28
+ <%= render "fe/applications/logout" %>
30
29
  </div>
31
30
 
32
31
  <% flash.each do |key, value| %>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5
+ <head>
6
+ <title>Dynamic Forms</title>
7
+ <%= stylesheet_link_tag "fe/fe.screen" %>
8
+
9
+ <%= javascript_include_tag "fe/admin" %>
10
+ <%= csrf_meta_tag %>
11
+ </head>
12
+ <body>
13
+
14
+ <div id="status" style="display: none;"><div class="status_content"><%= image_tag("fe/status.gif", id: "status-img" ) %> <span id="status-msg">Please Wait...</span></div></div>
15
+
16
+ <div id="wrapper">
17
+ <div id="header">
18
+ <ul id="nav-main">
19
+ <li class="active"><%= link_to "Forms", fe_admin_question_sheets_path %></li>
20
+ <div class="clear"></div>
21
+ </ul>
22
+ </div>
23
+
24
+ <div id="main">
25
+ <%= yield %>
26
+ </div>
27
+ </div>
28
+
29
+ </body>
30
+ </html>
@@ -0,0 +1,11 @@
1
+ <% if @element.errors.any? %>
2
+ <div class="errors">
3
+ <h2>There was a problem saving this element</h2>
4
+ <ul>
5
+ <% @element.errors.full_messages.each do |msg| %>
6
+ <li><%= msg %></li>
7
+ <% end %>
8
+ </ul>
9
+ </div>
10
+ <% end %>
11
+
@@ -0,0 +1,12 @@
1
+ <% if @page_element %>
2
+ $('#question_modal').dialog('close');
3
+ $('#page-preview').html('<%= escape_javascript(render("fe/admin/question_pages/question_page")) %>');
4
+ $('#element_<%= dom_id(@element) %>').hide();
5
+ $('#element_form_<%= dom_id(@element) %>').html('<%= escape_javascript(render("fe/admin/panels/prop_element", element: @element)) %>');
6
+ $('#element_form_<%= dom_id(@element) %>').show();
7
+ selectElement("#element_<%= @element.id %>");
8
+ scrollTo("#element_<%= @element.id %>");
9
+ setUpSortables();
10
+ <% else %>
11
+ alert('That question already exists on this question sheet')
12
+ <% end %>
@@ -0,0 +1,4 @@
1
+ $('#element_<%= @element.id %>').remove()
2
+ $('#panel').html('<%= escape_javascript(render("fe/admin/panels/insert")) %>')
3
+ activeElement = ''
4
+ switchTab('insert')
@@ -0,0 +1,3 @@
1
+ $('#page-preview').html('<%= escape_javascript(render("fe/admin/question_pages/question_page", page: @page)) %>')
2
+ $('#list-pages li').removeClass('active')
3
+ setUpJsHelpers();
@@ -0,0 +1,3 @@
1
+ $('#page-preview').html('<%= escape_javascript(render("fe/admin/question_pages/question_page")) %>')
2
+ selectElement("#element_<%= @element.id %>")
3
+ setUpSortables();
@@ -0,0 +1,4 @@
1
+ $('#element_<%= dom_id(@element) %>').hide()
2
+ $('#element_form_<%= dom_id(@element) %>').html('<%= escape_javascript(render("fe/admin/panels/prop_element", element: @element)) %>')
3
+ $('#element_form_<%= dom_id(@element) %>').show();
4
+ selectElement("#element_<%= @element.id %>")
@@ -0,0 +1,4 @@
1
+ $('#errors').html('<%= escape_javascript(render("errors", element: @element)) %>')
2
+ <% @element.errors.each do |attr_name, message| %>
3
+ addError('element_<%= attr_name %>')
4
+ <% end %>
@@ -0,0 +1,17 @@
1
+ <% if @questions.any? %>
2
+ if ($('#question_modal')[0] == null) {
3
+ $('body').append('<div id="question_modal"></div>');
4
+ }
5
+ $('#question_modal').html('<%= link_to("Add \"#{params[:human_type]}\"", fe_admin_question_sheet_page_elements_path(question_sheet_id: @page.question_sheet_id, page_id: @page.id,
6
+ element_type: params[:element_type], "element[style]" => @style, format: :js),
7
+ remote: true,
8
+ method: :post,
9
+ class: "add_type",
10
+ data: { disable_with: "Add \"#{params[:human_type]}\"" }) %><p>Or you can also copy an existing <%= params[:human_type] %> element. If you are unsure, just <strong>Add <%= params[:human_type] %>.</strong></p><div id="questions_div" title=""></div>');
11
+ $('#questions_div').html("<%= escape_javascript(render("fe/questions/fe/questions", questions: @questions)) %>")
12
+ $('#question_modal').dialog({width: 500, height: 400});
13
+ <% else %>
14
+ $.post('<%= fe_admin_question_sheet_page_elements_path(question_sheet_id: @page.question_sheet_id,
15
+ page_id: @page.id,
16
+ element_type: params[:element_type], "element[style]" => @style, format: :js) %>');
17
+ <% end %>
@@ -0,0 +1,9 @@
1
+ $('#element_form_<%= dom_id(@element) %>').hide();
2
+ $('#element_<%= dom_id(@element) %>').html('<%= escape_javascript(render("fe/admin/question_pages/element_show", element: @element)) %>')
3
+ $('#element_<%= dom_id(@element) %>').show()
4
+ clearCurrentElement()
5
+ $('#questions_list').sortable('refresh');
6
+
7
+ <% @page.question_grids.each do |grid| %>
8
+ $('#questions_list_<%= grid.id %>').sortable('refresh');
9
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <p><label for="email_template_name" class="desc">Template Name</label>
2
+ <%= f.text_field :name, class: "text", size: 93 %></p>
3
+
4
+ <p><label for="email_template_subject" class="desc">Subject</label>
5
+ <%= f.text_field :subject, class: "text", size: 93 %></p>
6
+
7
+ <p><label for="email_template_content" class="desc">Content</label>
8
+ <%= f.text_area :content, rows: 25, cols: 80, class: "text" %>
@@ -0,0 +1,13 @@
1
+ <div id="content">
2
+ <h1>Edit Email Template</h1>
3
+
4
+ <%= error_messages_for :email_template %>
5
+
6
+ <%= form_for(:email_template, url: fe_admin_email_template_path(@email_template), html: { method: :put } ) do |f| %>
7
+ <%= render "form", f: f %>
8
+
9
+ <p><%= submit_tag "Update" %> or <%= link_to "Cancel", fe_admin_email_templates_path, class: "cancel" %></p>
10
+ <% end %>
11
+
12
+
13
+ </div>
@@ -0,0 +1,20 @@
1
+ <div id="content">
2
+ <h1>Email Templates</h1>
3
+
4
+ <table cellspacing="0" class="list">
5
+ <tr>
6
+ <th>Template Name</th>
7
+ <th>&nbsp;</th>
8
+ </tr>
9
+ <% for email_template in @email_templates %>
10
+ <tr class="<%= cycle("","alt") %>">
11
+ <td><%= link_to email_template.name, edit_fe_admin_email_template_path(email_template), class: "email-template" %></td>
12
+ <td class="actions"><%= link_to "Destroy", fe_admin_email_template_path(email_template), data: {confirm: "Are you sure?"}, method: :delete, class: "destroy" %></td>
13
+ </tr>
14
+ <% end %>
15
+ </table>
16
+
17
+ <br />
18
+
19
+ <%= link_to "New Template", new_fe_admin_email_template_path, method: :GET, class: "add-link" %>
20
+ </div>
@@ -0,0 +1,11 @@
1
+ <div id="content">
2
+ <h1>New Email Template</h1>
3
+
4
+ <%= error_messages_for :email_template %>
5
+
6
+ <%= form_for(:email_template, url: fe_admin_email_templates_path) do |f| %>
7
+ <%= render partial: "form", locals: {f: f}%>
8
+
9
+ <p><%= submit_tag "Create" %> or <%= link_to "Cancel", fe_admin_email_templates_path, class: "cancel" %></p>
10
+ <% end %>
11
+ </div>
@@ -0,0 +1,49 @@
1
+ <h3 id="<%= dom_id(element) %>-h3-show-advanced-options">Advanced Options<br/>
2
+ <a style="font-size: 11px; font-weight: normal; " href="#" onclick="$("#<%= dom_id(element) %>-pnl-advanced").show();$("#<%= dom_id(element) %>-h3-show-advanced-options").hide();return false;">Show Advanced Options</a></h3>
3
+
4
+ <div id="<%= dom_id(element) %>-pnl-advanced" style="display: none;">
5
+ <h3>Advanced Options<br/>
6
+ <a style="font-size: 11px; font-weight: normal; " href="#" onclick="$("#<%= dom_id(element) %>-pnl-advanced").hide();$("#<%= dom_id(element) %>-h3-show-advanced-options").show();return false;">Hide Advanced Options</a></h3>
7
+
8
+ <div class="future_affect">
9
+ <%= label_tag "Future questions/pages will be shown based on the answer to this question: " %>
10
+ <%= radio_button_tag :future_affect, "yes" %>
11
+ <%= label_tag :future_affect_yes, "Yes" %>
12
+ <%= radio_button_tag :future_affect, "no" %>
13
+ <%= label_tag :future_affect_no, "No" %>
14
+ <% if @element.conditional.present? %>
15
+ <script>$(function() { $("#<%= dom_id(element) %>-pnl-advanced input[name=future_affect][value=yes]").click(); });</script>
16
+ <% end %>
17
+ <div class="future_answer" style="display:none">
18
+ What answer should show the element or page? <%= f.text_field "conditional_answer" %>
19
+ <br/>
20
+ Enter multiple answers separated by semi-colon to match using an OR condition. Ex: "Option A; Option B" will match either "Option A" or "Option B" answers
21
+ </div>
22
+ <div class="future_target" style="display:none">
23
+ <label>Should it show the next element or a page further down the application?</label>
24
+ <%= f.radio_button :conditional_type, "Fe::Element" %>
25
+ <%= f.label :conditional_type_feelement, "Next Element" %>
26
+ <%= f.radio_button :conditional_type, "Fe::Page" %>
27
+ <%= f.label :conditional_type_fepage, "Page" %>
28
+ <%= f.radio_button :conditional_type, "", style: "display:none" %>
29
+ <script>$(function() { $("#<%= dom_id(element) %>-pnl-advanced .future_target input[checked]").click(); });</script>
30
+ </div>
31
+ <div class="future_page" style="<%= "display:none" unless @element.conditional.is_a?(Fe::Page) %>">
32
+ <label>Which page? </label>
33
+ <%= f.collection_select :conditional_id, @page.question_sheet.pages, :id, :label, include_blank: true %>
34
+ </div>
35
+ </div>
36
+ <br/>
37
+
38
+ <p><label for="css_class" class="desc">Css Class</label>
39
+ <%= f.text_field :css_class %></p>
40
+
41
+ <p><label for="element_object" class="desc">Object Name</label>
42
+ <%= f.text_field :object_name %></p>
43
+
44
+ <p><label for="element_object" class="desc">Attribute Name</label>
45
+ <%= f.text_field :attribute_name %></p>
46
+
47
+ <p><label for="element_object" class="desc">Max Length</label>
48
+ <%= f.text_field :max_length %></p>
49
+ </div>
@@ -0,0 +1 @@
1
+ <%= render "fe/admin/panels/common_boolean_fields_default", f: f %>
@@ -0,0 +1,11 @@
1
+ <p>
2
+ <%= f.check_box :required, class: "inlinecheck" %>
3
+ <label for="element_required" class="inline">This field is required</label>
4
+ </p>
5
+
6
+ <p><%= f.check_box :is_confidential, class: "inlinecheck" %> <label for="element_is_confidential" class="inline">This field is confidential</label></p>
7
+
8
+ <p>
9
+ <%= f.check_box :hide_label, class: "inlinecheck" %>
10
+ <label for="element_hide_label" class="inline">Hide Label</label>
11
+ </p>
@@ -0,0 +1,23 @@
1
+ <p>
2
+ <label for="element_label" class="desc">Label (English) <span class="required">required</span></label>
3
+ <%= f.text_field :label, maxlength: Fe::Element.max_label_length %>
4
+ </p>
5
+ <% @page.question_sheet.languages.select(&:present?).each do |language| %>
6
+ <p>
7
+ <label for="element_label_translations_<%= language %>" class="desc">Label (<%= Fe::LANGUAGES[language] %>) <span class="required">required</span></label>
8
+ <%= text_field_tag "element[label_translations][#{language}]", @element.label_translations[language] %>
9
+ </p>
10
+ <% end %>
11
+
12
+ <p>
13
+ <label for="element_tooltip" class="desc">Tip (English)</label>
14
+ <%= f.text_field :tooltip %>
15
+ </p>
16
+ <% @page.question_sheet.languages.select(&:present?).each do |language| %>
17
+ <p>
18
+ <label for="element_tip_translations_<%= language %>" class="desc">Tip (<%= Fe::LANGUAGES[language] %>)</label>
19
+ <%= text_field_tag "element[tip_translations][#{language}]", @element.tip_translations[language] %>
20
+ </p>
21
+ <% end %>
22
+
23
+ <%= render "fe/admin/panels/common_boolean_fields", f: f %>
@@ -0,0 +1,6 @@
1
+ <% fields_for "element[conditions_attributes][#{i}]", condition do |fields| -%>
2
+ <p><%= "and<br/>" if i != 0 %>
3
+ <%= fields.collection_select :trigger_id, @questions_before_this, :id, :label %> is
4
+ <%= fields.text_field :expression %>
5
+ </p>
6
+ <% end -%>