outpost-cms 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +19 -1
  3. data/Rakefile +0 -12
  4. data/app/assets/javascripts/outpost.js +1 -1
  5. data/app/assets/javascripts/outpost/auto_slug_field.js.coffee +6 -6
  6. data/app/assets/javascripts/outpost/date_time_input.js.coffee +13 -13
  7. data/app/assets/javascripts/outpost/field_counter.js.coffee +15 -15
  8. data/app/assets/javascripts/outpost/field_manager.js.coffee +3 -3
  9. data/app/assets/javascripts/outpost/global_plugins.js.coffee +16 -19
  10. data/app/assets/javascripts/outpost/index_manager.js.coffee +12 -12
  11. data/app/assets/javascripts/outpost/notification.js.coffee +33 -11
  12. data/app/assets/javascripts/outpost/preview.js.coffee +4 -4
  13. data/app/assets/javascripts/outpost/utilities.js.coffee +13 -0
  14. data/app/assets/stylesheets/outpost/_base.css.scss +9 -9
  15. data/app/assets/stylesheets/outpost/_forms.css.scss +28 -15
  16. data/app/assets/stylesheets/outpost/_index.css.scss +2 -2
  17. data/app/assets/stylesheets/outpost/_utility.css.scss +1 -1
  18. data/app/controllers/outpost/application_controller.rb +5 -3
  19. data/app/controllers/outpost/errors_controller.rb +2 -1
  20. data/app/controllers/outpost/resource_controller.rb +1 -1
  21. data/app/controllers/outpost/sessions_controller.rb +10 -5
  22. data/app/helpers/authorization_helper.rb +3 -3
  23. data/app/helpers/list_helper.rb +72 -49
  24. data/app/helpers/outpost_helper.rb +4 -4
  25. data/app/helpers/render_helper.rb +5 -5
  26. data/app/helpers/utility_helper.rb +5 -5
  27. data/app/models/permission.rb +8 -5
  28. data/app/views/layouts/outpost/application.html.erb +7 -7
  29. data/app/views/layouts/outpost/minimal.html.erb +1 -1
  30. data/app/views/outpost/errors/error_500.html.erb +1 -1
  31. data/app/views/outpost/resource/_errors.html.erb +2 -11
  32. data/app/views/outpost/resource/edit.html.erb +8 -4
  33. data/app/views/outpost/resource/new.html.erb +5 -1
  34. data/app/views/outpost/sessions/new.html.erb +1 -1
  35. data/app/views/outpost/shared/_filters.html.erb +2 -2
  36. data/app/views/outpost/shared/_form_block.html.erb +2 -2
  37. data/app/views/outpost/shared/_form_nav.html.erb +1 -1
  38. data/app/views/outpost/shared/_full_errors.html.erb +9 -0
  39. data/app/views/outpost/shared/_headers.html.erb +4 -4
  40. data/app/views/outpost/shared/_navigation.html.erb +4 -4
  41. data/app/views/outpost/shared/_submit_row.html.erb +5 -5
  42. data/lib/action_view/helpers/form_builder.rb +28 -16
  43. data/lib/outpost.rb +8 -5
  44. data/lib/outpost/breadcrumbs.rb +13 -11
  45. data/lib/outpost/config.rb +6 -6
  46. data/lib/outpost/controller.rb +8 -2
  47. data/lib/outpost/controller/actions.rb +3 -3
  48. data/lib/outpost/controller/authentication.rb +2 -1
  49. data/lib/outpost/controller/authorization.rb +3 -2
  50. data/lib/outpost/controller/callbacks.rb +2 -1
  51. data/lib/outpost/controller/custom_errors.rb +44 -13
  52. data/lib/outpost/controller/helpers.rb +1 -29
  53. data/lib/outpost/controller/ordering.rb +59 -16
  54. data/lib/outpost/controller/preferences.rb +3 -3
  55. data/lib/outpost/helpers/naming.rb +2 -2
  56. data/lib/outpost/hook.rb +5 -5
  57. data/lib/outpost/list.rb +3 -3
  58. data/lib/outpost/list/base.rb +23 -13
  59. data/lib/outpost/list/column.rb +13 -4
  60. data/lib/outpost/list/filter.rb +4 -4
  61. data/lib/outpost/model.rb +2 -2
  62. data/lib/outpost/model/authentication.rb +6 -2
  63. data/lib/outpost/model/authorization.rb +1 -2
  64. data/lib/outpost/model/identifier.rb +15 -10
  65. data/lib/outpost/model/methods.rb +2 -2
  66. data/lib/outpost/model/naming.rb +10 -7
  67. data/lib/outpost/model/routing.rb +6 -6
  68. data/lib/outpost/model/serializer.rb +3 -3
  69. data/lib/outpost/version.rb +1 -1
  70. data/spec/controllers/authentication_spec.rb +10 -10
  71. data/spec/controllers/sessions_controller_spec.rb +17 -17
  72. data/spec/factories.rb +1 -1
  73. data/spec/features/authentication_spec.rb +43 -0
  74. data/spec/features/authorization_spec.rb +28 -0
  75. data/spec/features/creating_spec.rb +44 -0
  76. data/spec/features/destroying_spec.rb +18 -0
  77. data/spec/features/editing_spec.rb +43 -0
  78. data/spec/features/save_options_spec.rb +35 -0
  79. data/spec/helpers/authorization_helper_spec.rb +8 -8
  80. data/spec/helpers/list_helper_spec.rb +34 -0
  81. data/spec/helpers/render_helper_spec.rb +1 -1
  82. data/spec/helpers/utility_helper_spec.rb +10 -10
  83. data/spec/internal/app/controllers/outpost/people_controller.rb +3 -3
  84. data/spec/internal/app/models/person.rb +3 -0
  85. data/spec/internal/config/routes.rb +1 -1
  86. data/spec/internal/db/combustion_test.sqlite +0 -0
  87. data/spec/internal/log/test.log +35260 -53251
  88. data/spec/internal/tmp/cache/assets/test/sass/20f5650af539e2cc0c7216330842920da53e851d/bootstrap.css.scssc +0 -0
  89. data/spec/internal/tmp/cache/assets/test/sass/20f5650af539e2cc0c7216330842920da53e851d/datepicker.css.scssc +0 -0
  90. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_alerts.scssc +0 -0
  91. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_breadcrumbs.scssc +0 -0
  92. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_button-groups.scssc +0 -0
  93. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_buttons.scssc +0 -0
  94. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_close.scssc +0 -0
  95. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_code.scssc +0 -0
  96. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_component-animations.scssc +0 -0
  97. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_dropdowns.scssc +0 -0
  98. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_forms.scssc +0 -0
  99. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_grid.scssc +0 -0
  100. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_labels-badges.scssc +0 -0
  101. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_layouts.scssc +0 -0
  102. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_mixins.scssc +0 -0
  103. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_modals.scssc +0 -0
  104. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_navbar.scssc +0 -0
  105. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_navs.scssc +0 -0
  106. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_pager.scssc +0 -0
  107. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_pagination.scssc +0 -0
  108. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_reset.scssc +0 -0
  109. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_scaffolding.scssc +0 -0
  110. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_sprites.scssc +0 -0
  111. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_tables.scssc +0 -0
  112. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_type.scssc +0 -0
  113. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_utilities.scssc +0 -0
  114. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_variables.scssc +0 -0
  115. data/spec/internal/tmp/cache/assets/test/sass/4867dc0a3f589a0a2c9635bfeae1ddc8691d74a0/_wells.scssc +0 -0
  116. data/spec/internal/tmp/cache/assets/test/sass/56c521c2866fc194cbbf1ead1ad9e7d727f5e7b3/select2.css.scssc +0 -0
  117. data/spec/internal/tmp/cache/assets/test/sass/87aa0c8b43c5e29ce88dd86b1a2c657232e4bb6f/outpost.css.scssc +0 -0
  118. data/spec/internal/tmp/cache/assets/test/sass/cde194af3b19eae3aef82845ab8bc0df6c0d84d4/select2.css.scssc +0 -0
  119. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_alerts.scssc +0 -0
  120. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_breadcrumbs.scssc +0 -0
  121. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_button-groups.scssc +0 -0
  122. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_buttons.scssc +0 -0
  123. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_close.scssc +0 -0
  124. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_code.scssc +0 -0
  125. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_component-animations.scssc +0 -0
  126. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_dropdowns.scssc +0 -0
  127. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_forms.scssc +0 -0
  128. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_grid.scssc +0 -0
  129. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_labels-badges.scssc +0 -0
  130. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_layouts.scssc +0 -0
  131. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_mixins.scssc +0 -0
  132. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_modals.scssc +0 -0
  133. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_navbar.scssc +0 -0
  134. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_navs.scssc +0 -0
  135. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_pager.scssc +0 -0
  136. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_pagination.scssc +0 -0
  137. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_reset.scssc +0 -0
  138. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_scaffolding.scssc +0 -0
  139. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_sprites.scssc +0 -0
  140. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_tables.scssc +0 -0
  141. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_type.scssc +0 -0
  142. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_utilities.scssc +0 -0
  143. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_variables.scssc +0 -0
  144. data/spec/internal/tmp/cache/assets/test/sass/cee3b45c60038923cb15e74edf0b508296df0b89/_wells.scssc +0 -0
  145. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_alerts.scssc +0 -0
  146. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_breadcrumbs.scssc +0 -0
  147. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_button-groups.scssc +0 -0
  148. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_buttons.scssc +0 -0
  149. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_close.scssc +0 -0
  150. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_code.scssc +0 -0
  151. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_component-animations.scssc +0 -0
  152. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_dropdowns.scssc +0 -0
  153. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_forms.scssc +0 -0
  154. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_grid.scssc +0 -0
  155. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_labels-badges.scssc +0 -0
  156. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_layouts.scssc +0 -0
  157. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_mixins.scssc +0 -0
  158. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_modals.scssc +0 -0
  159. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_navbar.scssc +0 -0
  160. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_navs.scssc +0 -0
  161. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_pager.scssc +0 -0
  162. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_pagination.scssc +0 -0
  163. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_reset.scssc +0 -0
  164. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_scaffolding.scssc +0 -0
  165. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_sprites.scssc +0 -0
  166. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_tables.scssc +0 -0
  167. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_type.scssc +0 -0
  168. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_utilities.scssc +0 -0
  169. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_variables.scssc +0 -0
  170. data/spec/internal/tmp/cache/assets/test/sass/db455d3ae1e484fbc281e7097adf4ecb850d7d10/_wells.scssc +0 -0
  171. data/spec/internal/tmp/cache/assets/test/sass/e1eb86f6478445881765984079761fb4af85ab4e/select2.css.scssc +0 -0
  172. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/_base.css.scssc +0 -0
  173. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/_edit.css.scssc +0 -0
  174. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/_forms.css.scssc +0 -0
  175. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/_index.css.scssc +0 -0
  176. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/_utility.css.scssc +0 -0
  177. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/application.css.scssc +0 -0
  178. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/outpost.css.scssc +0 -0
  179. data/spec/internal/tmp/cache/assets/test/sass/ea24470654f74c1fe92aa45b2fae66b2a464a390/select2.css.scssc +0 -0
  180. data/spec/internal/tmp/cache/assets/test/sprockets/00154e1fc60e5765eb3704d402af06d1 +0 -0
  181. data/spec/internal/tmp/cache/assets/test/sprockets/0122e4f8c5576de5137307df7d6163a0 +0 -0
  182. data/spec/internal/tmp/cache/assets/test/sprockets/016db564806ffd72c90385066f2d1526 +0 -0
  183. data/spec/internal/tmp/cache/assets/test/sprockets/0185dbaba82d3fbc0fd9d2383dc7338d +0 -0
  184. data/spec/internal/tmp/cache/assets/test/sprockets/01a8e4b866eb7fc8ea5ed3941f1b1877 +0 -0
  185. data/spec/internal/tmp/cache/assets/test/sprockets/02713d4140ec033db3e897e7597c2096 +0 -0
  186. data/spec/internal/tmp/cache/assets/test/sprockets/0377ae38f0ab4fa7131b364012d9a4fa +0 -0
  187. data/spec/internal/tmp/cache/assets/test/sprockets/04effed13eef407140fbe39b6efae4b2 +0 -0
  188. data/spec/internal/tmp/cache/assets/test/sprockets/086d226e30e05ea260b6d01a4fbd8a29 +0 -0
  189. data/spec/internal/tmp/cache/assets/test/sprockets/0a032a3ea9ed2f90e27e350839fcc8dc +0 -0
  190. data/spec/internal/tmp/cache/assets/test/sprockets/0bc810339d0afdbe60e338e0041023cc +0 -0
  191. data/spec/internal/tmp/cache/assets/test/sprockets/0e167df01ba09061de9f5c49cfdccc99 +0 -0
  192. data/spec/internal/tmp/cache/assets/test/sprockets/0e69140d2c49ad3bd2a53e1a61ca911f +0 -0
  193. data/spec/internal/tmp/cache/assets/test/sprockets/15a87828df71925cca15a55b77afcf64 +0 -0
  194. data/spec/internal/tmp/cache/assets/test/sprockets/19b0f301c27628308ff1f81a322fcaa9 +0 -0
  195. data/spec/internal/tmp/cache/assets/test/sprockets/1b718773e74da99a05a30cc200c74d2b +0 -0
  196. data/spec/internal/tmp/cache/assets/test/sprockets/1d2a3ed3a5ee7d864dccd4feb0298858 +0 -0
  197. data/spec/internal/tmp/cache/assets/test/sprockets/1dfbb70993a8817b5e5aee44b888309d +0 -0
  198. data/spec/internal/tmp/cache/assets/test/sprockets/1e397e58ea65aa807232e81ba0646007 +0 -0
  199. data/spec/internal/tmp/cache/assets/test/sprockets/1e85a069dc1fa2fd3a325dd73115819a +0 -0
  200. data/spec/internal/tmp/cache/assets/test/sprockets/1fa01b5b6a31a3380b9f7926508624cb +0 -0
  201. data/spec/internal/tmp/cache/assets/test/sprockets/21f2bd9f5281712ad2d8c772fd407505 +0 -0
  202. data/spec/internal/tmp/cache/assets/test/sprockets/235664cdcf9cd81bf6a89a09e1e5711a +0 -0
  203. data/spec/internal/tmp/cache/assets/test/sprockets/23643a6f2a1f5c182681eca82a12b3b5 +0 -0
  204. data/spec/internal/tmp/cache/assets/test/sprockets/25f2c3cb96afc04742cb792a8adf703a +0 -0
  205. data/spec/internal/tmp/cache/assets/test/sprockets/26ad3186c36f3514d1028fb00180ed9c +0 -0
  206. data/spec/internal/tmp/cache/assets/test/sprockets/271f465e2ee560eee64005efa04346de +0 -0
  207. data/spec/internal/tmp/cache/assets/test/sprockets/29a5c683744eb88ed1292f59cd6063c9 +0 -0
  208. data/spec/internal/tmp/cache/assets/test/sprockets/2bb02e7009e6fec07e0ed0d01a1cf997 +0 -0
  209. data/spec/internal/tmp/cache/assets/test/sprockets/2cb954dcae3aa6f587625543070feb84 +0 -0
  210. data/spec/internal/tmp/cache/assets/test/sprockets/2f2c37a813522cd1889d2ebdfb2d2a66 +0 -0
  211. data/spec/internal/tmp/cache/assets/test/sprockets/316c469209d39a7bdac5c11828cf8d74 +0 -0
  212. data/spec/internal/tmp/cache/assets/test/sprockets/31be2b6ebd86190dc1ec80ce5f0833c5 +0 -0
  213. data/spec/internal/tmp/cache/assets/test/sprockets/36372f01bbdb43b410ec5192f7b6902f +0 -0
  214. data/spec/internal/tmp/cache/assets/test/sprockets/3717c6d6d1b1afd049b633417ed63cdd +0 -0
  215. data/spec/internal/tmp/cache/assets/test/sprockets/37abf1a201cc821dfc13cc427659a47b +0 -0
  216. data/spec/internal/tmp/cache/assets/test/sprockets/38341483f58eeea1d871954dbe986267 +0 -0
  217. data/spec/internal/tmp/cache/assets/test/sprockets/38aa3f8364fc8f118029ff4651c72221 +0 -0
  218. data/spec/internal/tmp/cache/assets/test/sprockets/3e5a01607dc58566739854e9f3ce5024 +0 -0
  219. data/spec/internal/tmp/cache/assets/test/sprockets/3f1c054c86b6510099f8e6c5dfe7ff3a +0 -0
  220. data/spec/internal/tmp/cache/assets/test/sprockets/3f744831928042565f7903a46a39791c +0 -0
  221. data/spec/internal/tmp/cache/assets/test/sprockets/3fadb5164d4b3caf81ef217fcde0d142 +0 -0
  222. data/spec/internal/tmp/cache/assets/test/sprockets/44020d882ece5491178ab3560f0d47a6 +0 -0
  223. data/spec/internal/tmp/cache/assets/test/sprockets/450ba61c4dc9c4cfa9f7efa5c9bba83d +0 -0
  224. data/spec/internal/tmp/cache/assets/test/sprockets/4543f412f8a876cd357e5888a4453e5d +0 -0
  225. data/spec/internal/tmp/cache/assets/test/sprockets/4a0eb5dbdb969be5257139300ae901a9 +0 -0
  226. data/spec/internal/tmp/cache/assets/test/sprockets/4ad30c03a35f4b46291c9c6331c43567 +0 -0
  227. data/spec/internal/tmp/cache/assets/test/sprockets/4c55f0b46f9bfc697010c07487d932e1 +0 -0
  228. data/spec/internal/tmp/cache/assets/test/sprockets/4d5649fe189b1fdead6428fdd2b9fafd +0 -0
  229. data/spec/internal/tmp/cache/assets/test/sprockets/4d779cbf3db6f14b3e022a5e5758d72d +0 -0
  230. data/spec/internal/tmp/cache/assets/test/sprockets/4ed642ba978ceb9502349fa8e6676440 +0 -0
  231. data/spec/internal/tmp/cache/assets/test/sprockets/4f6d52d657e0c1e635762f3edc6e8e20 +0 -0
  232. data/spec/internal/tmp/cache/assets/test/sprockets/50ae0bcf805250caf4ae4c4e01deebc9 +0 -0
  233. data/spec/internal/tmp/cache/assets/test/sprockets/53fc0263b1ce55a46ed55c461a2a8696 +0 -0
  234. data/spec/internal/tmp/cache/assets/test/sprockets/53fee1ff706022963c15ff24d5c53b54 +0 -0
  235. data/spec/internal/tmp/cache/assets/test/sprockets/54746a8bf1cdccbce2a3cfb4af05aef8 +0 -0
  236. data/spec/internal/tmp/cache/assets/test/sprockets/595ad1f5b58343141474f9211039df61 +0 -0
  237. data/spec/internal/tmp/cache/assets/test/sprockets/5c8c03be6364f23b4008487f351afa73 +0 -0
  238. data/spec/internal/tmp/cache/assets/test/sprockets/5d1e25ab219593639db982c901882c0f +0 -0
  239. data/spec/internal/tmp/cache/assets/test/sprockets/5d676e2352411dd3f05c6cee14727d1c +0 -0
  240. data/spec/internal/tmp/cache/assets/test/sprockets/5e2716f68ca78a5c0c83b157db90fc0d +0 -0
  241. data/spec/internal/tmp/cache/assets/test/sprockets/5e3f572f31041a301e0891c10f04604c +0 -0
  242. data/spec/internal/tmp/cache/assets/test/sprockets/620148b9ab753da9e8644581b619731b +0 -0
  243. data/spec/internal/tmp/cache/assets/test/sprockets/6471408d963e9165f8831b4bab80edd9 +0 -0
  244. data/spec/internal/tmp/cache/assets/test/sprockets/64a8cb638857a130dbabae4d1633618e +0 -0
  245. data/spec/internal/tmp/cache/assets/test/sprockets/6503f1ef9797aafce9339deb9200cfca +0 -0
  246. data/spec/internal/tmp/cache/assets/test/sprockets/6519463c3d8d8a34d743ef38eff5df45 +0 -0
  247. data/spec/internal/tmp/cache/assets/test/sprockets/656b07036edb74305c343f41eba55695 +0 -0
  248. data/spec/internal/tmp/cache/assets/test/sprockets/6571b577767caea14c3b89201d0643a2 +0 -0
  249. data/spec/internal/tmp/cache/assets/test/sprockets/6748f4abf46d0d2f516279ec032fd817 +0 -0
  250. data/spec/internal/tmp/cache/assets/test/sprockets/67a11a42996d51802481c92dc09c83fa +0 -0
  251. data/spec/internal/tmp/cache/assets/test/sprockets/6873baccb9ed57b839e83cfb93738955 +0 -0
  252. data/spec/internal/tmp/cache/assets/test/sprockets/6b9d79602e3b6ff9dd067605adeb0888 +0 -0
  253. data/spec/internal/tmp/cache/assets/test/sprockets/6c3df81c5fb88b555bafde4f54db7db2 +0 -0
  254. data/spec/internal/tmp/cache/assets/test/sprockets/6c62bea96eebf0f05624a859e8666f9a +0 -0
  255. data/spec/internal/tmp/cache/assets/test/sprockets/6cecd8ec655b80ac006bbec236b4263b +0 -0
  256. data/spec/internal/tmp/cache/assets/test/sprockets/700c635c138594de7ac50ad4b0420a0f +0 -0
  257. data/spec/internal/tmp/cache/assets/test/sprockets/70de8c6638b3ad61a4125dfb42e41f5b +0 -0
  258. data/spec/internal/tmp/cache/assets/test/sprockets/72a7339f697b2dcde9bd4835eaa42642 +0 -0
  259. data/spec/internal/tmp/cache/assets/test/sprockets/756eb63f1239c0a7a3d85253ddb5ca0d +0 -0
  260. data/spec/internal/tmp/cache/assets/test/sprockets/76e213ff5da12faa448078def3d32db5 +0 -0
  261. data/spec/internal/tmp/cache/assets/test/sprockets/76e3360cc08985753a1273cd40c3084a +0 -0
  262. data/spec/internal/tmp/cache/assets/test/sprockets/78f9aaf7b4a1253db9bdb2f2301a9b7d +0 -0
  263. data/spec/internal/tmp/cache/assets/test/sprockets/7ba5aaf62125e0b56d9e46603f5f8601 +0 -0
  264. data/spec/internal/tmp/cache/assets/test/sprockets/7e0d7eb383740100156a527b9e26d659 +0 -0
  265. data/spec/internal/tmp/cache/assets/test/sprockets/7e297a13578eea5ae51d5abb3be9df18 +0 -0
  266. data/spec/internal/tmp/cache/assets/test/sprockets/81670753eb8197bb1b9ca4d5a66a6fc5 +0 -0
  267. data/spec/internal/tmp/cache/assets/test/sprockets/896416332cf9f3e34262e6241b8237ef +0 -0
  268. data/spec/internal/tmp/cache/assets/test/sprockets/8b99288467087dc247c025d41444f377 +0 -0
  269. data/spec/internal/tmp/cache/assets/test/sprockets/8c123b8d3cc73220c5b69f99d2168389 +0 -0
  270. data/spec/internal/tmp/cache/assets/test/sprockets/8c5dcc180f78ee4957d754df726e2248 +0 -0
  271. data/spec/internal/tmp/cache/assets/test/sprockets/8e6315300501d34a896b82c0c0ceb70c +0 -0
  272. data/spec/internal/tmp/cache/assets/test/sprockets/90d6924223f69e10833fa8ef351e35ab +0 -0
  273. data/spec/internal/tmp/cache/assets/test/sprockets/9117ec941398c9b1340aa0b170ab2dc7 +0 -0
  274. data/spec/internal/tmp/cache/assets/test/sprockets/91d56ecde1551ea73ef462a44b77f650 +0 -0
  275. data/spec/internal/tmp/cache/assets/test/sprockets/9676f39584b5a04f92b29c0729175a8c +0 -0
  276. data/spec/internal/tmp/cache/assets/test/sprockets/9788c645f0c65ea7466be1dc13f64eea +0 -0
  277. data/spec/internal/tmp/cache/assets/test/sprockets/9add31bfd5f6aaa920af7f38211f9aa2 +0 -0
  278. data/spec/internal/tmp/cache/assets/test/sprockets/9b08bbf9ae722116682b8e22cb38c2ec +0 -0
  279. data/spec/internal/tmp/cache/assets/test/sprockets/9bc5469fea2a4926d4744c370bae613a +0 -0
  280. data/spec/internal/tmp/cache/assets/test/sprockets/9c1b3e8d4f1bab87ed819b82da42f535 +0 -0
  281. data/spec/internal/tmp/cache/assets/test/sprockets/9c736faedfe2dfe359042f9d2ce85367 +0 -0
  282. data/spec/internal/tmp/cache/assets/test/sprockets/9cf76f5ce68332b0f67c2f3b896a3475 +0 -0
  283. data/spec/internal/tmp/cache/assets/test/sprockets/9d484a2e742210fa6bc8be543c6331b9 +0 -0
  284. data/spec/internal/tmp/cache/assets/test/sprockets/9dd86c42f919be9f13a14317e7607f31 +0 -0
  285. data/spec/internal/tmp/cache/assets/test/sprockets/a0743c695fe7f2f40fc5f188fd054c2b +0 -0
  286. data/spec/internal/tmp/cache/assets/test/sprockets/a0b5c6371ce0b3308fc3be90c4f9ef5b +0 -0
  287. data/spec/internal/tmp/cache/assets/test/sprockets/a1e23f12c8163631dc3a2a98efd393a1 +0 -0
  288. data/spec/internal/tmp/cache/assets/test/sprockets/a2668b2b36e10c17a0a37e15af1adf92 +0 -0
  289. data/spec/internal/tmp/cache/assets/test/sprockets/a2d1f22b3a5164f8bdf8a2e08456d9c3 +0 -0
  290. data/spec/internal/tmp/cache/assets/test/sprockets/a458e44cf710f6e94208e22d3eafae3f +0 -0
  291. data/spec/internal/tmp/cache/assets/test/sprockets/a79a727e3b12ecb263735a8edecc86c2 +0 -0
  292. data/spec/internal/tmp/cache/assets/test/sprockets/aaa6c30950f43b707d50ee44229c1d0f +0 -0
  293. data/spec/internal/tmp/cache/assets/test/sprockets/ac25c69ce48ecf3a3a3808ba26537243 +0 -0
  294. data/spec/internal/tmp/cache/assets/test/sprockets/acb56c1b241b90a3a8694a04d7724e7d +0 -0
  295. data/spec/internal/tmp/cache/assets/test/sprockets/ad5315bf4cd3b8c4d38f662ef41c44d0 +0 -0
  296. data/spec/internal/tmp/cache/assets/test/sprockets/b0e1d9e51dba635c57573102d479dea9 +0 -0
  297. data/spec/internal/tmp/cache/assets/test/sprockets/b1a78635932522eb99a619b6e190b898 +0 -0
  298. data/spec/internal/tmp/cache/assets/test/sprockets/b236b354a0e5045c17b85a70f66e612d +0 -0
  299. data/spec/internal/tmp/cache/assets/test/sprockets/b2a3274db2081478a289f8eeee8370c7 +0 -0
  300. data/spec/internal/tmp/cache/assets/test/sprockets/b49f83c898ca822909d8d2c32470cfec +0 -0
  301. data/spec/internal/tmp/cache/assets/test/sprockets/b4c4d53c35d932c2b28bcefa990ec7fc +0 -0
  302. data/spec/internal/tmp/cache/assets/test/sprockets/b6f987547de2c90ebc0413d3263b87e8 +0 -0
  303. data/spec/internal/tmp/cache/assets/test/sprockets/b832658770b677e87a9d095ed3a87c47 +0 -0
  304. data/spec/internal/tmp/cache/assets/test/sprockets/b9d76e389aeda53d2f9cc256f75e303b +0 -0
  305. data/spec/internal/tmp/cache/assets/test/sprockets/bad56ba50db6ed97894b003103289ffe +0 -0
  306. data/spec/internal/tmp/cache/assets/test/sprockets/bb4e55b9b1a8a3bb8a8f0a10d4c6b074 +0 -0
  307. data/spec/internal/tmp/cache/assets/test/sprockets/bc8ba0b8c4f10524a604a7163f16e3dd +0 -0
  308. data/spec/internal/tmp/cache/assets/test/sprockets/bdfb9045b2f813ac4397c5cf0487f840 +0 -0
  309. data/spec/internal/tmp/cache/assets/test/sprockets/bf20d01df22f01e0fd66116d0ce58969 +0 -0
  310. data/spec/internal/tmp/cache/assets/test/sprockets/bf6fcb4c8c96d5406899b48c688e17a2 +0 -0
  311. data/spec/internal/tmp/cache/assets/test/sprockets/c0291860b6abb7bdc04ccc1e990e38f0 +0 -0
  312. data/spec/internal/tmp/cache/assets/test/sprockets/c1195a7d9d0e930545cda22ad40b0a9c +0 -0
  313. data/spec/internal/tmp/cache/assets/test/sprockets/c13a23e52c9d1956c61fb8540bfff8ef +0 -0
  314. data/spec/internal/tmp/cache/assets/test/sprockets/c1aa6b16696817c61530071b80c0cd43 +0 -0
  315. data/spec/internal/tmp/cache/assets/test/sprockets/c3954ed4f5e4dced91ee1240e4f90a05 +0 -0
  316. data/spec/internal/tmp/cache/assets/test/sprockets/c56fce185c88af8d191796b0172f498b +0 -0
  317. data/spec/internal/tmp/cache/assets/test/sprockets/c698133fe56541139a2f0d883ca07936 +0 -0
  318. data/spec/internal/tmp/cache/assets/test/sprockets/c7fcb613d0a346398fdf7a3a6ee722a1 +0 -0
  319. data/spec/internal/tmp/cache/assets/test/sprockets/c811799e9db5c939aab1e8e394df3b64 +0 -0
  320. data/spec/internal/tmp/cache/assets/test/sprockets/c9a027b847d199e99825ea85000303cf +0 -0
  321. data/spec/internal/tmp/cache/assets/test/sprockets/c9f12fd289b0f7e670ede1eeb8d3c24c +0 -0
  322. data/spec/internal/tmp/cache/assets/test/sprockets/c9f83bead35bd9bb5c671e327174c526 +0 -0
  323. data/spec/internal/tmp/cache/assets/test/sprockets/cb6a30f2c5219f77229df845e426ea71 +0 -0
  324. data/spec/internal/tmp/cache/assets/test/sprockets/cbbd567516b06004eb748f5a59bc14cc +0 -0
  325. data/spec/internal/tmp/cache/assets/test/sprockets/cbf827028b6168652324eb60180e21bd +0 -0
  326. data/spec/internal/tmp/cache/assets/test/sprockets/cc6766435593a06fcc9193244ea952a0 +0 -0
  327. data/spec/internal/tmp/cache/assets/test/sprockets/ccf22a7e27ed81a71d47f42a7cdb8e0e +0 -0
  328. data/spec/internal/tmp/cache/assets/test/sprockets/cd7d618755faec87f9c5cf47c6ae3365 +0 -0
  329. data/spec/internal/tmp/cache/assets/test/sprockets/cded6947b5642cfe05ffecc7a33ba54f +0 -0
  330. data/spec/internal/tmp/cache/assets/test/sprockets/d3638dad50702ecfe0e1b3bc8e07afc4 +0 -0
  331. data/spec/internal/tmp/cache/assets/test/sprockets/d5693a0bc9ebc317ed346946e8fe94ba +0 -0
  332. data/spec/internal/tmp/cache/assets/test/sprockets/d5c56cd3863549bedac1c7b3f28ae1d7 +0 -0
  333. data/spec/internal/tmp/cache/assets/test/sprockets/d6ba30bdd7d4b6d5205c150734acf5fa +0 -0
  334. data/spec/internal/tmp/cache/assets/test/sprockets/dd47254dcdc30cdbffbe6c32c57032fe +0 -0
  335. data/spec/internal/tmp/cache/assets/test/sprockets/dde6829bdb6fb77823831ab67644b76f +0 -0
  336. data/spec/internal/tmp/cache/assets/test/sprockets/ded9d8a2db25b4ab7f6d4f297208ded2 +0 -0
  337. data/spec/internal/tmp/cache/assets/test/sprockets/df8f0d31d3b82184ed7ded27b99b8ad4 +0 -0
  338. data/spec/internal/tmp/cache/assets/test/sprockets/e29bc5278f7e0bed414f714583faceee +0 -0
  339. data/spec/internal/tmp/cache/assets/test/sprockets/e461582472217950b63ee3247041e99c +0 -0
  340. data/spec/internal/tmp/cache/assets/test/sprockets/e521c94e59f66d600e517a555502fa11 +0 -0
  341. data/spec/internal/tmp/cache/assets/test/sprockets/e5be380a9dba4e6deae7a8511e4d7c13 +0 -0
  342. data/spec/internal/tmp/cache/assets/test/sprockets/e744b5ae603dc485f33ed176c899adfc +0 -0
  343. data/spec/internal/tmp/cache/assets/test/sprockets/e80c7be4df818b60928137fb7c450a43 +0 -0
  344. data/spec/internal/tmp/cache/assets/test/sprockets/e8edf2c8d66f7e31710f9aa5068d1155 +0 -0
  345. data/spec/internal/tmp/cache/assets/test/sprockets/ea8cf9239f191c63624cef6a3b6d2fbe +0 -0
  346. data/spec/internal/tmp/cache/assets/test/sprockets/ebb6acb80a5274f63d3ac5fd8df530b1 +0 -0
  347. data/spec/internal/tmp/cache/assets/test/sprockets/ebf2e1ad04f201369fb43454efc7bbd7 +0 -0
  348. data/spec/internal/tmp/cache/assets/test/sprockets/ec197b57d7a6b4163dac32744e3fa5b0 +0 -0
  349. data/spec/internal/tmp/cache/assets/test/sprockets/edb76e2e1ee82dc916a1086ca2d71de9 +0 -0
  350. data/spec/internal/tmp/cache/assets/test/sprockets/edc87d0b81267faccd7c5ada85675f9b +0 -0
  351. data/spec/internal/tmp/cache/assets/test/sprockets/ef4e09f768bb9330652eaa198bbd2c61 +0 -0
  352. data/spec/internal/tmp/cache/assets/test/sprockets/ef64bea489660cf5e30a6feb53bf3a5d +0 -0
  353. data/spec/internal/tmp/cache/assets/test/sprockets/f1b8af27ca9833a0ac2a5e10763efaa2 +0 -0
  354. data/spec/internal/tmp/cache/assets/test/sprockets/f5827ca48c75eb2925e0ae71f4545190 +0 -0
  355. data/spec/internal/tmp/cache/assets/test/sprockets/f60d687ea69fe491a8686efe8d6b3022 +0 -0
  356. data/spec/internal/tmp/cache/assets/test/sprockets/f66a526c31371958b5cd65928dd07d7f +0 -0
  357. data/spec/internal/tmp/cache/assets/test/sprockets/f6d577e76daa020d3df860c5dc7f8f61 +0 -0
  358. data/spec/internal/tmp/cache/assets/test/sprockets/f71d6134d0f24cb1de62de79100e19ee +0 -0
  359. data/spec/internal/tmp/cache/assets/test/sprockets/f7ace754f231b5ad97520f631ea60e01 +0 -0
  360. data/spec/internal/tmp/cache/assets/test/sprockets/f8f8cc64c68687e8c827d78d42ed93a4 +0 -0
  361. data/spec/internal/tmp/cache/assets/test/sprockets/fa2eaf4b4fc72c8cb321c6f9c022a55f +0 -0
  362. data/spec/internal/tmp/cache/assets/test/sprockets/fa32e1bd0e55873cd424ac5e7ce5c5ac +0 -0
  363. data/spec/internal/tmp/cache/assets/test/sprockets/fa9f906d3d676d23eac6d15f90f77876 +0 -0
  364. data/spec/internal/tmp/cache/assets/test/sprockets/fd8537c2a374241cc1d2d029ca4a3623 +0 -0
  365. data/spec/internal/tmp/cache/assets/test/sprockets/ff2e40602b14836c882af817459fa90e +0 -0
  366. data/spec/internal/tmp/capybara/capybara-201308160115352034044402.html +51 -0
  367. data/spec/internal/tmp/capybara/capybara-201308160118107572662369.html +140 -0
  368. data/spec/internal/tmp/capybara/capybara-201308160124322422773822.html +140 -0
  369. data/spec/internal/tmp/capybara/capybara-201308160216057700618069.html +71 -0
  370. data/spec/internal/tmp/capybara/capybara-201308160227299029704750.html +51 -0
  371. data/spec/internal/tmp/capybara/capybara-201308160227517375148134.html +51 -0
  372. data/spec/lib/breadcrumbs_spec.rb +5 -5
  373. data/spec/lib/config_spec.rb +11 -11
  374. data/spec/lib/controller/callbacks_spec.rb +1 -9
  375. data/spec/lib/controller/helpers_spec.rb +4 -4
  376. data/spec/lib/hook_spec.rb +1 -1
  377. data/spec/lib/list/base_spec.rb +18 -18
  378. data/spec/lib/list/column_spec.rb +4 -4
  379. data/spec/lib/list/filter_spec.rb +2 -2
  380. data/spec/lib/model/authentication_spec.rb +4 -4
  381. data/spec/lib/model/authorization_spec.rb +4 -4
  382. data/spec/lib/model/identifier_spec.rb +19 -18
  383. data/spec/lib/model/methods_spec.rb +1 -1
  384. data/spec/lib/model/naming_spec.rb +10 -10
  385. data/spec/lib/model/routing_spec.rb +14 -14
  386. data/spec/lib/model/serializer_spec.rb +1 -1
  387. data/spec/lib/outpost_spec.rb +5 -5
  388. data/spec/spec_helper.rb +7 -0
  389. data/spec/support/authentication_helper.rb +20 -0
  390. data/spec/support/authorization_helper.rb +13 -0
  391. metadata +632 -124
@@ -5,42 +5,64 @@
5
5
  #
6
6
  class outpost.Notification
7
7
  constructor: (@wrapper, @type, @message) ->
8
- @el = $("<div />", class: "alert alert-#{type}").html("#{message}")
8
+ @el = @_buildElement()
9
9
 
10
+ # Alias for #append
10
11
  render: ->
12
+ @append()
13
+
14
+ # Replaces the element.
15
+ # This is useful if you've changed the message or type.
16
+ rerender: ->
17
+ newEl = @_buildElement()
18
+ @el.replaceWith(newEl)
19
+ @el = newEl
20
+
21
+ # Append the element to the wrapper.
22
+ append: ->
11
23
  @wrapper.append @el
12
-
24
+
25
+ # Prepend the element to the wrapper.
13
26
  prepend: ->
14
27
  @wrapper.prepend @el
15
-
28
+
16
29
  # Replaces the wrapper's content with the alert
17
30
  replace: ->
18
31
  @wrapper.html @el
19
-
32
+
33
+ # Delegation for jQuery: @el.html("new text")
34
+ html: (html) ->
35
+ @el.html(html)
36
+
20
37
  # Delegation for jQuery: @el.is(":visible")
21
38
  isVisible: ->
22
39
  @el.is(":visible")
23
-
40
+
24
41
  # Delegation for jQuery: @el.show()
25
42
  show: ->
26
43
  @el.show()
27
-
44
+
28
45
  # Delegation for jQuery: @el.hide()
29
- hide: ->
46
+ hide: ->
30
47
  @el.hide()
31
-
48
+
32
49
  # Delegation for jQuery: @el.fadeIn()
33
50
  fadeIn: (speed=400, callback=null) ->
34
51
  @el.fadeIn(speed, callback?())
35
-
52
+
36
53
  # Delegation for jQuery: @el.fadeOut()
37
54
  fadeOut: (speed=400, callback=null) ->
38
55
  @el.fadeOut(speed, callback?())
39
-
56
+
40
57
  # Delegation for jQuery: @el.detach()
41
58
  detach: ->
42
59
  @el.detach()
43
-
60
+
44
61
  # Delegation for jQuery: @el.remove()
45
62
  remove: ->
46
63
  @el.remove()
64
+
65
+
66
+ # Builds an element based on the attributes.
67
+ _buildElement: ->
68
+ $("<div />", class: "alert alert-#{@type}").html("#{@message}")
@@ -6,13 +6,13 @@
6
6
  class outpost.Preview
7
7
  constructor: (@options) ->
8
8
  _t = @
9
-
9
+
10
10
  $("form #preview-submit a.js-preview-btn").on
11
11
  click: (event) ->
12
12
  event.preventDefault()
13
13
  target = $(@)
14
14
  form = target.closest("form")
15
-
15
+
16
16
  # Update any hidden textareas that are using CKEditor
17
17
  # Then serialize the form.
18
18
  if CKEDITOR?
@@ -27,7 +27,7 @@ class outpost.Preview
27
27
  url: "#{_t.options.baseUrl}/preview"
28
28
  data:
29
29
  data
30
-
30
+
31
31
  beforeSend: (jqXHR, settings) ->
32
32
  _t.openWindow(target.data("windowOptions"))
33
33
  _t.writeToWindow(JST['outpost/templates/loading']())
@@ -47,7 +47,7 @@ class outpost.Preview
47
47
  # If it already exists, just focus on it.
48
48
  openWindow: (options="")->
49
49
  if !@window or (@window and @window.closed)
50
- @window = window.open("", "preview",
50
+ @window = window.open("", "preview",
51
51
  "scrollbars=yes,menubar=no,location=no,directories=no,toolbar=no,#{options}")
52
52
  else
53
53
  @window.focus()
@@ -0,0 +1,13 @@
1
+ class outpost.Utilities
2
+ # Prevent forms from submitting when the "Enter"
3
+ # key is pressed inside of a text field
4
+ # Pass in an optional form ID to restrict it just to that form.
5
+ @preventEnterFromSubmittingForm: (formId='') ->
6
+ $("form#{formId} input[type=text]").on
7
+ keydown: (event) ->
8
+ key = event.keyCode || event.which
9
+
10
+ if key == 13 # Enter
11
+ event.stopPropagation()
12
+ event.preventDefault()
13
+ false
@@ -9,7 +9,7 @@ body, p {
9
9
  line-height: 14px;
10
10
  }
11
11
 
12
- small {
12
+ small {
13
13
  font-size: 11px;
14
14
  }
15
15
 
@@ -17,7 +17,7 @@ small {
17
17
  &.unstyled {
18
18
  padding: 0;
19
19
  }
20
-
20
+
21
21
  padding-left: 0;
22
22
  padding-right: 0;
23
23
  margin: 0;
@@ -40,25 +40,25 @@ small {
40
40
 
41
41
  .cms-nav {
42
42
  max-width: 820px;
43
-
43
+
44
44
  .grouper {
45
45
  display: inline-block;
46
46
  width: 400px;
47
47
  vertical-align: top;
48
48
  }
49
-
49
+
50
50
  li {
51
51
  clear: both;
52
52
  border-bottom: 1px solid $grayLighter;
53
-
53
+
54
54
  &:hover {
55
55
  background: $linkColor;
56
- &> a {
56
+ &> a {
57
57
  color: $white;
58
58
  text-decoration: none;
59
59
  }
60
60
  }
61
-
61
+
62
62
  &> a {
63
63
  clear: none;
64
64
  width: 285px;
@@ -73,14 +73,14 @@ small {
73
73
  color: #333333;
74
74
  white-space: nowrap;
75
75
  }
76
-
76
+
77
77
  .btn-links {
78
78
  display: inline-block;
79
79
  clear: both;
80
80
  vertical-align: bottom;
81
81
  margin-bottom: 3px;
82
82
  width: 60px;
83
-
83
+
84
84
  &> a {
85
85
  margin: 0px 2px;
86
86
  &.add { float: right; }
@@ -8,8 +8,8 @@
8
8
  form.simple_form {
9
9
  table.field-rows {
10
10
  td, th {
11
- text-align: left;
12
- padding: 5px 10px;
11
+ text-align: left;
12
+ padding: 5px 10px;
13
13
  }
14
14
 
15
15
  tbody tr { padding: 5px 0; }
@@ -21,7 +21,7 @@ form.simple_form {
21
21
  input.wide, textarea {
22
22
  @extend .span7;
23
23
  }
24
-
24
+
25
25
  input, textarea {
26
26
  &.span1 { @extend .span1; }
27
27
  &.span2 { @extend .span2; }
@@ -36,52 +36,61 @@ form.simple_form {
36
36
  &.span11 { @extend .span11; }
37
37
  &.span12 { @extend .span12; }
38
38
  }
39
-
39
+
40
40
  input.thin, textarea.thin {
41
41
  @extend .span2;
42
42
  }
43
-
43
+
44
44
  input.tiny {
45
45
  @extend .span1;
46
46
  }
47
-
47
+
48
48
  // For code inputs
49
49
  textarea.fixed-font, input.fixed-font {
50
50
  @include font-monospace($size: 11px);
51
51
  background: #000;
52
52
  color: #FFFF00;
53
53
  }
54
-
54
+
55
55
  textarea {
56
56
  &.tiny { height: 100px; }
57
57
  &.short { height: 200px; }
58
58
  &.tall { height: 600px; }
59
59
  }
60
-
61
- fieldset legend {
60
+
61
+ fieldset {
62
+ margin-bottom: 40px;
63
+
64
+ legend {
65
+ background: #000;
66
+ color: #fff;
67
+ padding: 0 5px;
62
68
  cursor: pointer;
69
+ line-height: 1.2em; // override bootstrap
70
+
63
71
  &:hover {
64
- background: #ffffcc;
72
+ background: #666;
65
73
  }
74
+ }
66
75
  }
67
-
76
+
68
77
  .counter-notify {
69
78
  @extend .span7;
70
79
  }
71
-
80
+
72
81
  .inline { // Extend bootstrap .inline
73
82
  display: inline-block;
74
83
  margin-right: 5px;
75
84
  input[type=text] { @extend .span2; }
76
85
  input[type=checkbox] { width: 20px; }
77
-
86
+
78
87
  .controls {
79
88
  margin-left: 10px;
80
89
  }
81
90
  }
82
-
91
+
83
92
  .control-group.vertical {
84
- label {
93
+ label {
85
94
  float: none;
86
95
  text-align: left;
87
96
  }
@@ -114,3 +123,7 @@ form.simple_form {
114
123
  .select2-drop {
115
124
  z-index: 4;
116
125
  }
126
+
127
+ .has-many-add-link {
128
+ @extend .btn;
129
+ }
@@ -5,9 +5,9 @@
5
5
  .select2-container {
6
6
  min-width: 130px;
7
7
  }
8
-
8
+
9
9
  .filter.label {
10
- display: inline-block;
10
+ display: inline-block;
11
11
  margin-right: 10px;
12
12
  }
13
13
 
@@ -1,4 +1,4 @@
1
- .transparent {
1
+ .transparent {
2
2
  @include opacity(0.2);
3
3
  @include transition(.1s linear all);
4
4
  }
@@ -4,12 +4,12 @@ module Outpost
4
4
  include Outpost::Controller::Authorization
5
5
  include Outpost::Controller::Authentication
6
6
  include Outpost::Controller::CustomErrors
7
-
7
+
8
8
  abstract!
9
9
  protect_from_forgery
10
10
  before_filter :root_breadcrumb
11
11
  before_filter :set_sections
12
-
12
+
13
13
  #------------------------
14
14
  # Always want to add this link to the Breadcrumbs
15
15
  def root_breadcrumb
@@ -34,7 +34,9 @@ module Outpost
34
34
  #----------------------
35
35
 
36
36
  def render_preview_validation_errors(record)
37
- render "/outpost/shared/_preview_errors", layout: "outpost/minimal", locals: { record: record }
37
+ render "/outpost/shared/_preview_errors",
38
+ :layout => "outpost/minimal",
39
+ :locals => { record: record }
38
40
  end
39
41
  end
40
42
  end
@@ -1,6 +1,7 @@
1
1
  class Outpost::ErrorsController < Outpost::BaseController
2
2
  def not_found
3
- render_error(404, ActionController::RoutingError.new("Not Found")) and return
3
+ render_error(404, ActionController::RoutingError.new("Not Found"))
4
+ return
4
5
  end
5
6
 
6
7
  def trigger_error
@@ -4,7 +4,7 @@ module Outpost
4
4
  respond_to :html, :json, :js
5
5
 
6
6
  #-----------------
7
-
7
+
8
8
  def extend_breadcrumbs_with_resource_root
9
9
  breadcrumb model.to_title.pluralize, model.admin_index_path
10
10
  end
@@ -4,23 +4,28 @@ module Outpost
4
4
  before_filter :get_authentication_attribute
5
5
 
6
6
  respond_to :html
7
-
7
+
8
8
  def new
9
9
  redirect_to outpost_root_path if current_user
10
10
  end
11
-
11
+
12
12
  def create
13
- if user = Outpost.user_class.authenticate(params[@authentication_attribute], params[:password])
13
+ if user = Outpost.user_class.authenticate(
14
+ params[@authentication_attribute], params[:password])
15
+
14
16
  session[:user_id] = user.id
15
17
  user.update_column(:last_login, Time.now)
16
- redirect_to session[:return_to] || outpost_root_path, notice: "Logged in."
18
+
19
+ redirect_to session[:return_to] || outpost_root_path,
20
+ notice: "Logged in."
21
+
17
22
  session[:return_to] = nil
18
23
  else
19
24
  flash.now[:alert] = "Invalid login information."
20
25
  render :new
21
26
  end
22
27
  end
23
-
28
+
24
29
  def destroy
25
30
  @current_user = nil
26
31
  session[:user_id] = nil
@@ -1,9 +1,9 @@
1
1
  module AuthorizationHelper
2
- # Public: Block out whole chunks of code based on permissions.
2
+ # Public: Block out whole chunks of code based on permissions.
3
3
  #
4
- # resource - (Class) The model that the user must have permission
4
+ # resource - (Class) The model that the user must have permission
5
5
  # to manage in order to see the block.
6
- # message - (String) The message to display if the user isn't
6
+ # message - (String) The message to display if the user isn't
7
7
  # authorized (default: "").
8
8
  # block - The block that will be captured if the user is authorized.
9
9
  # Should return a String.
@@ -1,15 +1,23 @@
1
1
  module ListHelper
2
+ ICON_DOWN = "icon-arrow-down"
3
+ ICON_UP = "icon-arrow-up"
4
+
5
+ BOOLEAN_BOOTSTRAP_MAP = {
6
+ true => { icon: "icon-white icon-ok", badge: "badge badge-success"},
7
+ false => { icon: "icon-white icon-remove", badge: "badge badge-important"}
8
+ }
9
+
2
10
  # Public: Renders the attribute for this column and record
3
11
  #
4
12
  # column - (Outpost::Column) The column object.
5
13
  # record - (Object) The ActiveRecord object being listed.
6
- #
14
+ #
7
15
  # Examples
8
- #
9
- # column.attribute # => :published_at
16
+ #
17
+ # column.attribute # => :published_at
10
18
  # <%= render_attribute(column, @post) %>
11
19
  # # => 2013-03-13 11:39:37 -0700
12
- #
20
+ #
13
21
  # Returns String of the rendered attribute.
14
22
  def render_attribute(column, record)
15
23
  if column.display.is_a? Proc
@@ -29,13 +37,13 @@ module ListHelper
29
37
  # If we have explicitly defined a helper for this attribute, use it.
30
38
  display_helper = :"display_#{column.attribute}"
31
39
 
32
- elsif record.class.respond_to?(:reflect_on_association) &&
40
+ elsif record.class.respond_to?(:reflect_on_association) &&
33
41
  record.class.reflect_on_association(column.attribute.to_sym)
34
42
  # For associations, display the associated object's #to_title
35
43
  display_helper = :display_record
36
-
37
- elsif record.class.respond_to?(:columns_hash) &&
38
- (ar_column = record.class.columns_hash[column.attribute]) &&
44
+
45
+ elsif record.class.respond_to?(:columns_hash) &&
46
+ (ar_column = record.class.columns_hash[column.attribute]) &&
39
47
  self.methods.include?(type_helper = :"display_#{ar_column.type}")
40
48
  # display_#{column_type} for generic display
41
49
  # Example: display_datetime
@@ -48,12 +56,18 @@ module ListHelper
48
56
 
49
57
  value = record.send(column.attribute)
50
58
  column._display_helper = display_helper
51
- send(display_helper, value)
59
+
60
+ if self.method(display_helper).arity == 2
61
+ send(display_helper, value, record)
62
+ else
63
+ send(display_helper, value)
64
+ end
52
65
  end
53
66
  end
54
67
 
68
+
55
69
  # Public: Format a DateTime for displaying in lists
56
- #
70
+ #
57
71
  # date - (DateTime) The date to be formatted
58
72
  #
59
73
  # Examples
@@ -66,6 +80,7 @@ module ListHelper
66
80
  format_date(date, format: :full_date)
67
81
  end
68
82
 
83
+
69
84
  # Public: Display the attribute or "[blank]" if not present
70
85
  #
71
86
  # attrib - (String) The attribute to display
@@ -87,6 +102,7 @@ module ListHelper
87
102
  attrib.present? ? attrib.to_s : content_tag(:em, fallback)
88
103
  end
89
104
 
105
+
90
106
  # Public: Display the attribute as a string.
91
107
  #
92
108
  # attrib - (String) The attribute to display.
@@ -101,22 +117,24 @@ module ListHelper
101
117
  attrib.to_s
102
118
  end
103
119
 
120
+
104
121
  # Public: Displays an String representation of the record using +#to_title+.
105
122
  #
106
123
  # record - (String) The associated record.
107
124
  #
108
125
  # Examples
109
- #
126
+ #
110
127
  # user = User.last
111
128
  # user.to_title # => "James Earl Jones"
112
129
  # display_record(User.last)
113
130
  # # => "James Earl Jones"
114
131
  #
115
132
  # Returns String representation of the passed-in record.
116
- def display_record(record)
117
- record.try(:to_title)
133
+ def display_record(associated_record)
134
+ associated_record.try(:to_title)
118
135
  end
119
-
136
+
137
+
120
138
  # Public: Display a formatted DateTime.
121
139
  #
122
140
  # datetime - (DateTime) The DateTime object to format.
@@ -130,7 +148,8 @@ module ListHelper
130
148
  def display_datetime(datetime)
131
149
  format_date(datetime, format: :full_date, time: true)
132
150
  end
133
-
151
+
152
+
134
153
  # Public: Display a boolean attribute as a sweet icon.
135
154
  #
136
155
  # boolean - (boolean) true or false
@@ -142,72 +161,69 @@ module ListHelper
142
161
  # # => <i class="icon-white icon-ok"></i>
143
162
  # # => </span>
144
163
  #
145
- # Returns String of the appropriate icon.
164
+ # Returns String of the appropriate icon.
146
165
  def display_boolean(boolean)
147
- content_tag(:span,
148
- content_tag(:i, "", class: boolean_bootstrap_map[!!boolean][:icon]),
149
- class: boolean_bootstrap_map[!!boolean][:badge])
166
+ content_tag(:span,
167
+ content_tag(:i, "", class: BOOLEAN_BOOTSTRAP_MAP[!!boolean][:icon]),
168
+ class: BOOLEAN_BOOTSTRAP_MAP[!!boolean][:badge])
150
169
  end
151
170
 
152
- # Private: Map for booleans to Bootstrap classes.
153
- #
154
- # Returns Hash
155
- def boolean_bootstrap_map
156
- {
157
- true => { icon: "icon-white icon-ok", badge: "badge badge-success"},
158
- false => { icon: "icon-white icon-remove", badge: "badge badge-important"}
159
- }
160
- end
161
171
 
162
172
  # Public: Maps the passed-in sort mode (asc, desc) to the appropriate
163
173
  # Bootstrap Glyphicons (icon-arrow-up, icon-arrow-down respectively)
164
174
  #
165
- # sort_mode - (String) The sort mode ("asc", "desc").
175
+ # direction - (String) "ASC", "DESC"
166
176
  #
167
177
  # Examples
168
178
  #
169
- # <i class="<%= sort_mode_icon('asc') %>">
179
+ # <i class="<%= direction_icon('ASC') %>">
170
180
  # # => <i class="icon-arrow-up">
171
181
  #
172
182
  # Returns String of the icon class.
173
- def sort_mode_icon(sort_mode)
174
- case sort_mode
175
- when "desc" then "icon-arrow-down"
176
- when "asc" then "icon-arrow-up"
183
+ def direction_icon(direction)
184
+ direction = direction.to_s.upcase
185
+
186
+ case direction
187
+ when Outpost::DESCENDING then ICON_DOWN
188
+ when Outpost::ASCENDING then ICON_UP
177
189
  end
178
190
  end
179
191
 
180
- # Public: Which sort mode to switch to. Useful for creating links to
192
+
193
+ # Public: Which sort mode to switch to. Useful for creating links to
181
194
  # switch the sort mode or change the list order.
182
195
  #
183
- # column - (Outpost::Column) The column on which the sort
196
+ # column - (Outpost::Column) The column on which the sort
184
197
  # will be performed.
185
- # current_order - (String) The attribute that is currently being
198
+ # current_attribute - (String) The attribute that is currently being
186
199
  # ordered.
187
- # current_sort_mode - (String) The current sort mode ("asc", "desc").
200
+ # current_direction - (String) The current sort mode ("ASC", "DESC").
188
201
  #
189
202
  # Examples
190
- #
203
+ #
191
204
  # <%= link_to column.header, request.parameters.merge({
192
- # :sort_mode => switch_sort_mode(
193
- # column, current_order, current_sort_mode
205
+ # :direction => switch_direction(
206
+ # column, current_attribute, current_direction
194
207
  # )
195
208
  # }) %>
196
209
  #
197
210
  # Returns String of the sort mode, "asc" or "desc"
198
- def switch_sort_mode(column, current_order, current_sort_mode)
199
- if column.attribute == current_order
200
- case current_sort_mode
201
- when "asc" then "desc"
202
- when "desc" then "asc"
203
- else column.default_sort_mode
211
+ def switch_direction(column, current_attribute, current_direction)
212
+ direction = current_direction.to_s.upcase
213
+
214
+ if column.attribute == current_attribute
215
+ case direction
216
+ when Outpost::ASCENDING then Outpost::DESCENDING
217
+ when Outpost::DESCENDING then Outpost::ASCENDING
218
+ else column.default_order_direction
204
219
  end
205
220
  else
206
- column.default_sort_mode
221
+ column.default_order_direction
207
222
  end
208
223
  end
209
224
 
210
- # Public: Generate a CSS class for the column. If the column represents
225
+
226
+ # Public: Generate a CSS class for the column. If the column represents
211
227
  # an association, the class will be "column-association".
212
228
  #
213
229
  # model - (Class) The ActiveRecord model.
@@ -227,6 +243,7 @@ module ListHelper
227
243
  end
228
244
  end
229
245
 
246
+
230
247
  # Public: Generate a CSS class for this attribute
231
248
  #
232
249
  # attribute - (String) The attribute.
@@ -240,4 +257,10 @@ module ListHelper
240
257
  def column_attribute_class(attribute)
241
258
  "column-#{attribute}".parameterize
242
259
  end
260
+
261
+
262
+ # Public: Call the BOOLEAN_BOOTSTRAP_MAP
263
+ def boolean_bootstrap_map
264
+ BOOLEAN_BOOTSTRAP_MAP
265
+ end
243
266
  end