artfully_ose 1.1.0 → 1.2.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (719) hide show
  1. checksums.yaml +13 -5
  2. data/README.md +28 -0
  3. data/app/assets/fonts/FontAwesome.otf +0 -0
  4. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  5. data/app/assets/fonts/fontawesome-webfont.svg +472 -252
  6. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  7. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  8. data/app/assets/images/actions/do.png +0 -0
  9. data/app/assets/images/actions/do.psd +0 -0
  10. data/app/assets/images/actions/get.png +0 -0
  11. data/app/assets/images/actions/get.psd +0 -0
  12. data/app/assets/images/actions/give.png +0 -0
  13. data/app/assets/images/actions/give.psd +0 -0
  14. data/app/assets/images/actions/go.png +0 -0
  15. data/app/assets/images/actions/go.psd +0 -0
  16. data/app/assets/images/actions/hear.png +0 -0
  17. data/app/assets/images/actions/hear.psd +0 -0
  18. data/app/assets/images/actions/join.png +0 -0
  19. data/app/assets/images/actions/join.psd +0 -0
  20. data/app/assets/images/actions/say.png +0 -0
  21. data/app/assets/images/actions/say.psd +0 -0
  22. data/app/assets/images/business-default-avatar.png +0 -0
  23. data/app/assets/images/foundation-default-avatar.png +0 -0
  24. data/app/assets/images/glyphish/people/208-facebook.png +0 -0
  25. data/app/assets/images/glyphish/people/210-twitterbird.png +0 -0
  26. data/app/assets/images/glyphish/people/218-trash2-small.png +0 -0
  27. data/app/assets/images/glyphish/people/291-idcard.png +0 -0
  28. data/app/assets/images/glyphish/people/email.png +0 -0
  29. data/app/assets/images/glyphish/people/email.psd +0 -0
  30. data/app/assets/images/glyphish/people/linkedin.png +0 -0
  31. data/app/assets/images/glyphish/people/linkedin.psd +0 -0
  32. data/app/assets/images/glyphish/people/website.png +0 -0
  33. data/app/assets/images/glyphish/people/website.psd +0 -0
  34. data/app/assets/images/government-default-avatar.png +0 -0
  35. data/app/assets/images/household-default-avatar.png +0 -0
  36. data/app/assets/images/loading.gif +0 -0
  37. data/app/assets/images/nonprofit-default-avatar.png +0 -0
  38. data/app/assets/images/other-default-avatar.png +0 -0
  39. data/app/assets/images/person-default-avatar.png +0 -0
  40. data/app/assets/images/person-default-avatar.psd +0 -0
  41. data/app/assets/javascripts/angular-bootstrap-ui.js +1 -0
  42. data/app/assets/javascripts/angular-resource.js +546 -0
  43. data/app/assets/javascripts/angular.js +20311 -0
  44. data/app/assets/javascripts/application.js +340 -24
  45. data/app/assets/javascripts/bootstrap-wysihtml5.js +511 -0
  46. data/app/assets/javascripts/bootstrap.js +1005 -455
  47. data/app/assets/javascripts/boxoffice.js +558 -0
  48. data/app/assets/javascripts/change-membership.js +152 -0
  49. data/app/assets/javascripts/custom/door-list.js +14 -0
  50. data/app/assets/javascripts/custom/endless-scroll.js +25 -0
  51. data/app/assets/javascripts/custom/inline-people-search.js +51 -49
  52. data/app/assets/javascripts/custom/kits-config.js +33 -0
  53. data/app/assets/javascripts/custom/people.js +74 -9
  54. data/app/assets/javascripts/custom/prices.js +1 -0
  55. data/app/assets/javascripts/custom/show.js +116 -27
  56. data/app/assets/javascripts/households.js +59 -0
  57. data/app/assets/javascripts/jquery-lib/fullcalendar.js +5982 -0
  58. data/app/assets/javascripts/jquery-lib/jquery-ui-1.10.3.custom.min.js +7 -0
  59. data/app/assets/javascripts/jquery-lib/jquery-ui-timepicker-addon.js +1992 -949
  60. data/app/assets/javascripts/jquery-lib/jquery.mask-money.js +305 -294
  61. data/app/assets/javascripts/jquery-migrate-1.2.1.js +521 -0
  62. data/app/assets/javascripts/jquery-migrate-1.2.1.min.js +2 -0
  63. data/app/assets/javascripts/jquery.js +5318 -4987
  64. data/app/assets/javascripts/locationselector.js +107 -0
  65. data/app/assets/javascripts/relationships.js +63 -0
  66. data/app/assets/javascripts/sales-console.js +158 -0
  67. data/app/assets/javascripts/store/jquery.validate.additional-methods.js +476 -159
  68. data/app/assets/javascripts/store/jquery.validate.js +449 -406
  69. data/app/assets/javascripts/store/store.js +107 -349
  70. data/app/assets/javascripts/storefront.js +1 -0
  71. data/app/assets/javascripts/wysihtml5-0.3.0.min.js +261 -0
  72. data/app/assets/stylesheets/application.sass +414 -48
  73. data/app/assets/stylesheets/bootstrap-overrides.css +100 -26
  74. data/app/assets/stylesheets/bootstrap-wysihtml5.css +102 -0
  75. data/app/assets/stylesheets/bootstrap.css +6 -3607
  76. data/app/assets/stylesheets/boxoffice.css.scss +258 -0
  77. data/app/assets/stylesheets/font-awesome.css.scss +1566 -0
  78. data/app/assets/stylesheets/jquery/fullcalendar.css +223 -252
  79. data/app/assets/stylesheets/pages/bootstrap-responsive.css +1109 -0
  80. data/app/assets/stylesheets/sass/_event_list.sass +43 -0
  81. data/app/assets/stylesheets/sass/_tags.sass +24 -2
  82. data/app/assets/stylesheets/sass/box-office.sass +24 -4
  83. data/app/assets/stylesheets/sass/cart.sass +0 -6
  84. data/app/assets/stylesheets/sass/store.sass +274 -55
  85. data/app/assets/stylesheets/storefront.css +2 -1
  86. data/app/assets/stylesheets/wysiwyg-color.css +67 -0
  87. data/app/concerns/cart_finder.rb +50 -0
  88. data/app/concerns/immutable_action.rb +9 -0
  89. data/app/concerns/pdf_generation.rb +74 -0
  90. data/app/{models/orders → concerns}/unrefundable.rb +0 -0
  91. data/app/controllers/actions_controller.rb +29 -22
  92. data/app/controllers/addresses_controller.rb +3 -3
  93. data/app/controllers/artfully_ose_controller.rb +56 -7
  94. data/app/controllers/assignments_controller.rb +28 -0
  95. data/app/controllers/charts_controller.rb +1 -1
  96. data/app/controllers/console_sales_controller.rb +182 -0
  97. data/app/controllers/contributions_controller.rb +31 -6
  98. data/app/controllers/discounts_controller.rb +10 -3
  99. data/app/controllers/events_controller.rb +42 -33
  100. data/app/controllers/events_pass_types_controller.rb +87 -0
  101. data/app/controllers/exchanges_controller.rb +16 -8
  102. data/app/controllers/export_controller.rb +10 -2
  103. data/app/controllers/households_controller.rb +71 -0
  104. data/app/controllers/imports_controller.rb +46 -7
  105. data/app/controllers/index_controller.rb +6 -1
  106. data/app/controllers/member_cards_controller.rb +45 -0
  107. data/app/controllers/members/index_controller.rb +4 -0
  108. data/app/controllers/members/invitations_controller.rb +7 -0
  109. data/app/controllers/members/members_controller.rb +9 -0
  110. data/app/controllers/members/passwords_controller.rb +10 -0
  111. data/app/controllers/members/people_controller.rb +17 -0
  112. data/app/controllers/members/sessions_controller.rb +14 -0
  113. data/app/controllers/membership_cancellations_controller.rb +46 -0
  114. data/app/controllers/membership_changes_controller.rb +39 -0
  115. data/app/controllers/membership_comps_controller.rb +102 -0
  116. data/app/controllers/membership_kits_controller.rb +25 -0
  117. data/app/controllers/membership_types_controller.rb +57 -0
  118. data/app/controllers/memberships_controller.rb +18 -47
  119. data/app/controllers/merges_controller.rb +11 -5
  120. data/app/controllers/mobile/dashboard_controller.rb +17 -0
  121. data/app/controllers/mobile/events_controller.rb +16 -0
  122. data/app/controllers/mobile/orders_controller.rb +61 -0
  123. data/app/controllers/mobile/shows_controller.rb +39 -0
  124. data/app/controllers/mobile/tickets_controller.rb +114 -0
  125. data/app/controllers/mobile/users_controller.rb +30 -0
  126. data/app/controllers/notes_controller.rb +3 -3
  127. data/app/controllers/orders_controller.rb +87 -8
  128. data/app/controllers/organizations_controller.rb +3 -2
  129. data/app/controllers/pass_types_controller.rb +53 -0
  130. data/app/controllers/passes_controller.rb +52 -0
  131. data/app/controllers/passes_kits_controller.rb +25 -0
  132. data/app/controllers/passes_reports_controller.rb +5 -0
  133. data/app/controllers/people_controller.rb +83 -28
  134. data/app/controllers/refunds_controller.rb +7 -7
  135. data/app/controllers/regular_donation_kits_controller.rb +32 -0
  136. data/app/controllers/relationships_controller.rb +15 -0
  137. data/app/controllers/sales_controller.rb +95 -31
  138. data/app/controllers/searches_controller.rb +15 -7
  139. data/app/controllers/sections_controller.rb +3 -3
  140. data/app/controllers/segments_controller.rb +4 -4
  141. data/app/controllers/shows_controller.rb +119 -98
  142. data/app/controllers/slices_controller.rb +3 -2
  143. data/app/controllers/statements_controller.rb +1 -1
  144. data/app/controllers/store/checkouts_controller.rb +27 -8
  145. data/app/controllers/store/donations_controller.rb +22 -0
  146. data/app/controllers/store/events_controller.rb +19 -1
  147. data/app/controllers/store/memberships_controller.rb +16 -0
  148. data/app/controllers/store/orders_controller.rb +46 -77
  149. data/app/controllers/store/passes_controller.rb +13 -0
  150. data/app/controllers/store/retrievals_controller.rb +29 -0
  151. data/app/controllers/store/shows_controller.rb +6 -0
  152. data/app/controllers/store/store_controller.rb +21 -23
  153. data/app/controllers/ticket_types_controller.rb +41 -0
  154. data/app/controllers/tickets_controller.rb +16 -0
  155. data/app/controllers/user_memberships_controller.rb +57 -0
  156. data/app/controllers/users/sessions_controller.rb +3 -0
  157. data/app/helpers/artfully_ose_helper.rb +88 -37
  158. data/app/helpers/households_helper.rb +7 -0
  159. data/app/helpers/link_helper.rb +15 -1
  160. data/app/helpers/members_helper.rb +9 -0
  161. data/app/helpers/membership_types_helper.rb +22 -0
  162. data/app/helpers/people_helper.rb +55 -1
  163. data/app/helpers/relationships_helper.rb +26 -0
  164. data/app/helpers/sales_helper.rb +29 -0
  165. data/app/helpers/searches_helper.rb +13 -0
  166. data/app/helpers/suggested_households_helper.rb +5 -0
  167. data/app/mailers/order_mailer.rb +28 -1
  168. data/app/mailers/pass_mailer.rb +17 -0
  169. data/app/mailers/producer_mailer.rb +2 -2
  170. data/app/mailers/reports_mailer.rb +6 -5
  171. data/app/models/ability.rb +1 -0
  172. data/app/models/action.rb +48 -24
  173. data/app/models/actions/change_action.rb +13 -0
  174. data/app/models/actions/comp_action.rb +15 -0
  175. data/app/models/actions/do_action.rb +12 -0
  176. data/app/models/actions/exchange_action.rb +15 -0
  177. data/app/models/actions/get_action.rb +7 -1
  178. data/app/models/actions/give_action.rb +20 -4
  179. data/app/models/actions/go_action.rb +27 -8
  180. data/app/models/actions/hear_action.rb +14 -2
  181. data/app/models/actions/join_action.rb +4 -0
  182. data/app/models/actions/refund_action.rb +2 -1
  183. data/app/models/actions/say_action.rb +23 -0
  184. data/app/models/address.rb +39 -9
  185. data/app/models/cart.rb +254 -0
  186. data/app/models/chart.rb +30 -23
  187. data/app/models/checkout.rb +94 -38
  188. data/app/models/comp.rb +25 -17
  189. data/app/models/company.rb +18 -0
  190. data/app/models/console_sale.rb +30 -0
  191. data/app/models/contribution.rb +11 -9
  192. data/app/models/daily_donation_report.rb +11 -8
  193. data/app/models/daily_membership_report.rb +50 -0
  194. data/app/models/daily_pass_report.rb +48 -0
  195. data/app/models/daily_ticket_report.rb +34 -14
  196. data/app/models/database_views/item_view.rb +148 -0
  197. data/app/models/discount.rb +7 -7
  198. data/app/models/discounts/buy_one_get_one_free_discount_type.rb +6 -1
  199. data/app/models/discounts/discount_type.rb +5 -1
  200. data/app/models/discounts/dollars_off_tickets_discount_type.rb +8 -2
  201. data/app/models/donation.rb +10 -6
  202. data/app/models/donation_search.rb +1 -1
  203. data/app/models/door_list.rb +14 -9
  204. data/app/models/event.rb +81 -10
  205. data/app/models/events_pass_type.rb +18 -0
  206. data/app/models/exchange.rb +23 -15
  207. data/app/models/{ext/ext.rb → ext.rb} +16 -3
  208. data/app/models/ext/integrations.rb +47 -32
  209. data/app/models/ext/preprocessor.rb +7 -0
  210. data/app/models/extendable.rb +6 -0
  211. data/app/models/fee_calculator.rb +13 -0
  212. data/app/models/fee_strategy.rb +5 -0
  213. data/app/models/gateway_transaction.rb +3 -1
  214. data/app/models/household.rb +61 -0
  215. data/app/models/household_suggester.rb +58 -0
  216. data/app/models/import.rb +48 -15
  217. data/app/models/import_message.rb +6 -0
  218. data/app/models/imports/donations_import.rb +3 -22
  219. data/app/models/imports/events_import.rb +56 -57
  220. data/app/models/imports/memberships_import.rb +43 -0
  221. data/app/models/imports/people_import.rb +45 -17
  222. data/app/models/imports/rollback.rb +7 -2
  223. data/app/models/imports/status.rb +8 -0
  224. data/app/models/individual.rb +20 -0
  225. data/app/models/item.rb +65 -54
  226. data/app/models/job/checkout_processor.rb +46 -0
  227. data/app/models/job/cleanup_suggested_households_job.rb +17 -0
  228. data/app/models/job/daily_email_report_job.rb +28 -7
  229. data/app/models/job/destroy_show_job.rb +10 -0
  230. data/app/models/job/expire_ticket_job.rb +9 -0
  231. data/app/models/job/geocode_address_job.rb +11 -0
  232. data/app/models/job/mailchimp_sync_job.rb +1 -3
  233. data/app/models/job/order_mailer_job.rb +8 -0
  234. data/app/models/job/order_processor.rb +93 -0
  235. data/app/models/job/person_lifetime_value_job.rb +10 -0
  236. data/app/models/job/recall_import_job.rb +5 -0
  237. data/app/models/job/refund_order_processor.rb +16 -0
  238. data/app/models/job/show_creator.rb +39 -0
  239. data/app/models/kit.rb +2 -4
  240. data/app/models/kits/mailchimp_kit.rb +49 -22
  241. data/app/models/kits/membership_kit.rb +62 -0
  242. data/app/models/kits/passes_kit.rb +62 -0
  243. data/app/models/kits/regular_donation_kit.rb +38 -8
  244. data/app/models/kits/scannable_tickets_kit.rb +23 -0
  245. data/app/models/member.rb +190 -0
  246. data/app/models/member_card_generator.rb +63 -0
  247. data/app/models/member_number_generator.rb +8 -0
  248. data/app/models/member_walkup.rb +150 -0
  249. data/app/models/membership.rb +97 -7
  250. data/app/models/membership_cancellation.rb +80 -0
  251. data/app/models/membership_change.rb +187 -0
  252. data/app/models/membership_comp.rb +105 -0
  253. data/app/models/membership_comp_job.rb +32 -0
  254. data/app/models/membership_sale_search.rb +36 -0
  255. data/app/models/membership_type.rb +67 -0
  256. data/app/models/note.rb +1 -1
  257. data/app/models/{orders/order.rb → order.rb} +224 -28
  258. data/app/models/order_handler.rb +154 -0
  259. data/app/models/orders/comp_order.rb +4 -0
  260. data/app/models/orders/exchange_order.rb +16 -0
  261. data/app/models/orders/imported_order.rb +4 -0
  262. data/app/models/orders/refund_order.rb +8 -0
  263. data/app/models/organization.rb +68 -17
  264. data/app/models/organization_ability.rb +1 -0
  265. data/app/models/parsed_row.rb +103 -20
  266. data/app/models/pass.rb +196 -0
  267. data/app/models/pass_summary.rb +18 -0
  268. data/app/models/pass_type.rb +41 -0
  269. data/app/models/{payments/payment.rb → payment.rb} +29 -1
  270. data/app/models/payments/cash_payment.rb +3 -1
  271. data/app/models/payments/check_payment.rb +33 -0
  272. data/app/models/payments/comp_payment.rb +3 -1
  273. data/app/models/payments/credit_card_payment.rb +44 -23
  274. data/app/models/person.rb +270 -62
  275. data/app/models/phone.rb +0 -8
  276. data/app/models/refund.rb +28 -18
  277. data/app/models/relation.rb +27 -0
  278. data/app/models/relation_builder.rb +32 -0
  279. data/app/models/relationship.rb +55 -0
  280. data/app/models/relationship_builder.rb +12 -0
  281. data/app/models/relationship_validator.rb +46 -0
  282. data/app/models/relationships_kit.rb +31 -0
  283. data/app/models/rolling_membership_type.rb +11 -0
  284. data/app/models/sale.rb +28 -21
  285. data/app/models/sale_search.rb +1 -1
  286. data/app/models/search.rb +334 -45
  287. data/app/models/seasonal_membership_type.rb +3 -0
  288. data/app/models/section.rb +49 -17
  289. data/app/models/segment.rb +1 -1
  290. data/app/models/show.rb +93 -16
  291. data/app/models/slices.rb +26 -10
  292. data/app/models/statement.rb +38 -9
  293. data/app/models/suggested_household.rb +24 -0
  294. data/app/models/sundial.rb +12 -0
  295. data/app/models/ticket.rb +109 -15
  296. data/app/models/ticket/glance.rb +1 -2
  297. data/app/models/ticket/locker.rb +51 -0
  298. data/app/models/ticket/pricing.rb +30 -22
  299. data/app/models/ticket/qr_code.rb +21 -0
  300. data/app/models/ticket/reports.rb +16 -10
  301. data/app/models/ticket/sale_transitions.rb +4 -0
  302. data/app/models/ticket/template.rb +1 -0
  303. data/app/models/ticket/transfers.rb +12 -1
  304. data/app/models/ticket_summary.rb +7 -1
  305. data/app/models/ticket_type.rb +137 -0
  306. data/app/models/user.rb +22 -9
  307. data/app/models/user_membership.rb +28 -0
  308. data/app/models/valuation/lifetime_donations.rb +2 -2
  309. data/app/models/valuation/lifetime_fees.rb +40 -0
  310. data/app/models/valuation/lifetime_memberships.rb +24 -0
  311. data/app/models/valuation/lifetime_ticket_value.rb +30 -0
  312. data/app/models/valuation/lifetime_value.rb +3 -8
  313. data/app/models/venue.rb +25 -7
  314. data/app/presenters/event_presenter.rb +1 -1
  315. data/app/serializers/show_serializer.rb +15 -0
  316. data/app/views/actions/_action.html.haml +21 -0
  317. data/app/views/actions/_form.html.haml +47 -0
  318. data/app/views/actions/_inline.html.haml +1 -0
  319. data/app/views/actions/_modal.html.haml +5 -0
  320. data/app/views/actions/get/_show.html.haml +3 -0
  321. data/app/views/actions/give/_show.html.haml +8 -0
  322. data/app/views/actions/shared/_show.html.haml +5 -0
  323. data/app/views/addresses/_address.html.haml +7 -6
  324. data/app/views/assignments/new.html.haml +31 -0
  325. data/app/views/console_sales/_aloha.html.haml +26 -0
  326. data/app/views/console_sales/_cart.html.haml +60 -0
  327. data/app/views/console_sales/_payment.html.haml +111 -0
  328. data/app/views/console_sales/_shows.html.haml +24 -0
  329. data/app/views/console_sales/new.html.haml +143 -0
  330. data/app/views/contributions/_form.html.haml +3 -3
  331. data/app/views/contributions/find_person.html.haml +1 -1
  332. data/app/views/contributions/index.html.haml +8 -6
  333. data/app/views/contributions/new.html.haml +5 -9
  334. data/app/views/discounts/_discount_section_fields.html.haml +1 -1
  335. data/app/views/discounts/_form.html.haml +3 -3
  336. data/app/views/discounts/index.html.haml +1 -1
  337. data/app/views/events/_day_date_show.html.haml +2 -2
  338. data/app/views/events/_discount_section_fields.html.haml +1 -1
  339. data/app/views/events/_glance.html.haml +28 -37
  340. data/app/views/events/_header.html.haml +1 -0
  341. data/app/views/events/_list.html.haml +11 -5
  342. data/app/views/events/_menu.html.haml +25 -20
  343. data/app/views/events/_section_fields.html.haml +16 -46
  344. data/app/views/events/_share_and_sell.haml +9 -5
  345. data/app/views/events/_ticket_type_fields.html.haml +86 -0
  346. data/app/views/events/edit.html.haml +13 -3
  347. data/app/views/events/image.html.haml +4 -3
  348. data/app/views/events/index.html.haml +20 -3
  349. data/app/views/events/messages.html.haml +2 -2
  350. data/app/views/events/prices.html.haml +4 -12
  351. data/app/views/events/show.html.haml +3 -1
  352. data/app/views/events/storefront_link.html.haml +1 -1
  353. data/app/views/events/temp_discount_form.html.haml +1 -1
  354. data/app/views/events/temp_discounts_index.html.haml +1 -1
  355. data/app/views/events_pass_types/_form.html.haml +42 -0
  356. data/app/views/events_pass_types/edit.html.haml +22 -0
  357. data/app/views/events_pass_types/index.html.haml +47 -0
  358. data/app/views/events_pass_types/new.html.haml +22 -0
  359. data/app/views/exchanges/new.html.haml +58 -35
  360. data/app/views/households/_action.html.haml +24 -0
  361. data/app/views/households/_edit_modal.html.haml +143 -0
  362. data/app/views/households/_form.html.haml +26 -0
  363. data/app/views/households/_header.html.haml +25 -0
  364. data/app/views/households/_individual_fields.html.haml +8 -0
  365. data/app/views/households/_list.html.haml +10 -0
  366. data/app/views/households/_note.html.haml +33 -0
  367. data/app/views/households/edit.html.haml +1 -0
  368. data/app/views/households/index.html.haml +13 -0
  369. data/app/views/households/new.html.haml +14 -0
  370. data/app/views/households/show.html.haml +72 -0
  371. data/app/views/households/suggested.html.haml +38 -0
  372. data/app/views/imports/_export_links.html.haml +3 -0
  373. data/app/views/imports/donations/_new.html.haml +6 -0
  374. data/app/views/imports/donations/_pending.html.haml +6 -22
  375. data/app/views/imports/events/_new.html.haml +7 -1
  376. data/app/views/imports/events/_pending.html.haml +6 -17
  377. data/app/views/imports/index.html.haml +6 -3
  378. data/app/views/imports/people/_imported.html.haml +35 -5
  379. data/app/views/imports/people/_importing.html.haml +8 -0
  380. data/app/views/imports/people/_new.html.haml +61 -21
  381. data/app/views/imports/people/_pending.html.haml +26 -20
  382. data/app/views/imports/people/_recalled.html.haml +25 -0
  383. data/app/views/imports/people/_recalling.html.haml +15 -0
  384. data/app/views/imports/shared/_knowledge_base.haml +11 -2
  385. data/app/views/imports/shared/_sidebar.html.haml +1 -1
  386. data/app/views/index/_action.html.haml +7 -0
  387. data/app/views/index/_recent_activity.html.haml +11 -0
  388. data/app/views/index/_recent_activity.js.haml +5 -0
  389. data/app/views/index/dashboard.html.haml +40 -36
  390. data/app/views/index/recent_activity.js.haml +5 -0
  391. data/app/views/kits/_list.html.haml +9 -0
  392. data/app/views/layouts/_flash.html.haml +3 -3
  393. data/app/views/layouts/_google_analytics.html.haml +5 -2
  394. data/app/views/layouts/_menu.html.haml +10 -6
  395. data/app/views/layouts/application.html.haml +6 -3
  396. data/app/views/layouts/devise_layout.html.haml +2 -2
  397. data/app/views/layouts/mail.html.haml +20 -0
  398. data/app/views/layouts/members.html.haml +14 -0
  399. data/app/views/layouts/storefront.html.haml +39 -3
  400. data/app/views/members/index/index.html.haml +41 -0
  401. data/app/views/members/invitations/edit.html.haml +17 -0
  402. data/app/views/members/invitations/new.html.erb +14 -0
  403. data/app/views/members/mailer/_invitation_body.html.haml +18 -0
  404. data/app/views/members/mailer/invitation_instructions.html.haml +6 -0
  405. data/app/views/members/mailer/reset_password_instructions.html.erb +8 -0
  406. data/app/views/members/passwords/edit.html.haml +18 -0
  407. data/app/views/members/sessions/new.html.haml +19 -0
  408. data/app/views/membership_cancellations/_form.html.haml +39 -0
  409. data/app/views/membership_cancellations/_modal.html.haml +2 -0
  410. data/app/views/membership_cancellations/_processing.html.haml +12 -0
  411. data/app/views/membership_cancellations/create.js.erb +3 -0
  412. data/app/views/membership_cancellations/new.js.erb +3 -0
  413. data/app/views/membership_comps/confirm.html.haml +86 -0
  414. data/app/views/membership_comps/create.html.haml +20 -0
  415. data/app/views/membership_comps/new.html.haml +95 -0
  416. data/app/views/membership_kits/edit.html.haml +52 -0
  417. data/app/views/membership_mailer/cancellation_confirmation.html.haml +9 -0
  418. data/app/views/membership_mailer/cancellation_confirmation.text.haml +6 -0
  419. data/app/views/membership_mailer/refund_problem.html.haml +18 -0
  420. data/app/views/membership_mailer/refund_problem.text.haml +14 -0
  421. data/app/views/membership_types/_form.html.haml +89 -0
  422. data/app/views/membership_types/_membership_type_fees.html.haml +0 -0
  423. data/app/views/membership_types/_rolling_membership_type_form.html.haml +5 -0
  424. data/app/views/membership_types/_seasonal_membership_type_form.html.haml +8 -0
  425. data/app/views/membership_types/edit.html.haml +4 -0
  426. data/app/views/membership_types/index.html.haml +28 -0
  427. data/app/views/membership_types/new.html.haml +4 -0
  428. data/app/views/membership_types/type.html.haml +19 -0
  429. data/app/views/memberships/_membership_scripts.js.erb +15 -0
  430. data/app/views/memberships/index.html.haml +160 -0
  431. data/app/views/merges/_merge_preview_person.html.haml +11 -6
  432. data/app/views/merges/find_person.html.haml +5 -5
  433. data/app/views/merges/new.html.haml +7 -6
  434. data/app/views/notes/_note.html.haml +29 -0
  435. data/app/views/order_mailer/confirmation_for.html.haml +34 -22
  436. data/app/views/order_mailer/confirmation_for.text.haml +7 -4
  437. data/app/views/order_mailer/confirmation_for_exchange.html.haml +34 -0
  438. data/app/views/order_mailer/confirmation_for_exchange.text.haml +26 -0
  439. data/app/views/order_mailer/confirmation_for_refund.html.haml +36 -0
  440. data/app/views/order_mailer/confirmation_for_refund.text.haml +22 -0
  441. data/app/views/orders/_item_donations_table.html.haml +27 -0
  442. data/app/views/orders/_item_memberships_table.html.haml +16 -0
  443. data/app/views/orders/_item_table.haml +31 -13
  444. data/app/views/orders/_item_tickets_table.html.haml +27 -0
  445. data/app/views/orders/_order_sidebar.html.haml +40 -18
  446. data/app/views/orders/index.html.haml +2 -0
  447. data/app/views/orders/membership.html.haml +104 -0
  448. data/app/views/orders/sales.html.haml +15 -13
  449. data/app/views/orders/show.html.haml +3 -3
  450. data/app/views/organizations/_connection_form.html.haml +1 -1
  451. data/app/views/organizations/_form.html.haml +25 -20
  452. data/app/views/organizations/edit.html.haml +2 -2
  453. data/app/views/organizations/new.html.haml +1 -1
  454. data/app/views/organizations/show.html.haml +22 -16
  455. data/app/views/pass_mailer/pass_info_for.html.haml +21 -0
  456. data/app/views/pass_types/_form.html.haml +76 -0
  457. data/app/views/pass_types/_pass_type_fees.html.haml +0 -0
  458. data/app/views/pass_types/edit.html.haml +4 -0
  459. data/app/views/pass_types/index.html.haml +34 -0
  460. data/app/views/pass_types/new.html.haml +4 -0
  461. data/app/views/passes/index.html.haml +108 -0
  462. data/app/views/passes_kits/edit.html.haml +30 -0
  463. data/app/views/passes_reports/index.html.haml +2 -0
  464. data/app/views/pdfs/member.html.haml +66 -0
  465. data/app/views/pdfs/member_card_generator/blanks_usa_idc6.html.haml +109 -0
  466. data/app/views/pdfs/order.html.haml +84 -0
  467. data/app/views/people/_convert_to_company_modal.html.haml +42 -0
  468. data/app/views/people/_edit_modal.html.haml +186 -0
  469. data/app/views/people/_form.html.haml +23 -5
  470. data/app/views/people/_header.html.haml +50 -0
  471. data/app/views/people/_household_fields.html.haml +5 -0
  472. data/app/views/people/_phone_fields.html.haml +10 -0
  473. data/app/views/people/_relationship_fields.html.haml +14 -0
  474. data/app/views/people/_work_with_menu.html.haml +39 -0
  475. data/app/views/people/index.html.haml +18 -6
  476. data/app/views/people/new.html.haml +2 -2
  477. data/app/views/people/show.html.haml +149 -28
  478. data/app/views/people/show.js.haml +5 -0
  479. data/app/views/producer_mailer/donation_kit_notification.html.haml +8 -0
  480. data/app/views/producer_mailer/donation_kit_notification.text.erb +8 -0
  481. data/app/views/producer_mailer/mailchimp_kit_initial_sync_notification.html.haml +21 -0
  482. data/app/views/producer_mailer/ticket_offer_accepted.html.haml +7 -0
  483. data/app/views/producer_mailer/ticket_offer_accepted.text.erb +7 -0
  484. data/app/views/producer_mailer/ticket_offer_rejected.html.haml +11 -0
  485. data/app/views/producer_mailer/ticket_offer_rejected.text.erb +13 -0
  486. data/app/views/refunds/new.html.haml +45 -27
  487. data/app/views/regular_donation_kits/edit.html.haml +140 -0
  488. data/app/views/relationships/index.html.haml +32 -0
  489. data/app/views/reports_mailer/_fine_print.html.haml +0 -0
  490. data/app/views/reports_mailer/daily.html.haml +113 -51
  491. data/app/views/reports_mailer/daily.text.erb +5 -5
  492. data/app/views/sales/_boxoffice.html.haml +141 -0
  493. data/app/views/sales/_doorlist.html.haml +79 -0
  494. data/app/views/sales/new.html.haml +33 -125
  495. data/app/views/searches/_form.html.haml +180 -34
  496. data/app/views/searches/_household.html.haml +7 -0
  497. data/app/views/searches/_person.html.haml +5 -2
  498. data/app/views/searches/new.html.haml +1 -1
  499. data/app/views/searches/show.html.haml +29 -21
  500. data/app/views/sections/edit.html.haml +1 -1
  501. data/app/views/sections/new.html.haml +1 -1
  502. data/app/views/segments/show.html.haml +19 -15
  503. data/app/views/shared/_door_list_table.haml +19 -6
  504. data/app/views/shared/_error_messages.html.haml +1 -1
  505. data/app/views/shared/_event_image_icon.html.haml +1 -3
  506. data/app/views/shared/_save_save_and_next.html.haml +2 -0
  507. data/app/views/shared/_show_summary.html.haml +0 -6
  508. data/app/views/shared/_show_time_and_calendar.html.haml +21 -0
  509. data/app/views/shared/_submit_cancel.haml +1 -1
  510. data/app/views/shared/_tags.html.haml +5 -3
  511. data/app/views/shows/_controls.html.haml +5 -23
  512. data/app/views/shows/_glance.html.haml +3 -11
  513. data/app/views/shows/_sections_table.html.haml +89 -0
  514. data/app/views/shows/_ticket_table.html.haml +12 -88
  515. data/app/views/shows/_work_with.html.haml +23 -0
  516. data/app/views/shows/calendar.html.haml +18 -0
  517. data/app/views/shows/door_list.html.haml +2 -2
  518. data/app/views/shows/door_list.pdf.haml +29 -0
  519. data/app/views/shows/index.html.haml +88 -19
  520. data/app/views/shows/new.html.haml +13 -27
  521. data/app/views/shows/show.html.haml +11 -11
  522. data/app/views/slices/index.html.haml +2 -1
  523. data/app/views/statements/_discounts_table.html.haml +1 -1
  524. data/app/views/statements/_order_location_table.html.haml +1 -1
  525. data/app/views/statements/_passes_table.html.haml +22 -0
  526. data/app/views/statements/_payment_method_table.haml +1 -1
  527. data/app/views/statements/_ticket_type_table.haml +5 -2
  528. data/app/views/statements/show.html.haml +5 -2
  529. data/app/views/store/checkouts/_membership_info.html.haml +12 -0
  530. data/app/views/store/checkouts/thanks.html.haml +134 -0
  531. data/app/views/store/donations/index.html.haml +19 -0
  532. data/app/views/store/events/_calendar.html.haml +4 -5
  533. data/app/views/store/events/_venue.html.haml +9 -0
  534. data/app/views/store/events/calendar.html.haml +50 -0
  535. data/app/views/store/events/index.html.haml +23 -0
  536. data/app/views/store/events/show.html.haml +26 -185
  537. data/app/views/store/events/single_show.html.haml +45 -0
  538. data/app/views/store/memberships/index.html.haml +40 -0
  539. data/app/views/store/orders/show.html.haml +198 -0
  540. data/app/views/store/passes/index.html.haml +33 -0
  541. data/app/views/store/retrievals/index.html.haml +11 -0
  542. data/app/views/store/shared/_donate_form.html.haml +31 -0
  543. data/app/views/store/shared/_small_donate_form.html.haml +21 -0
  544. data/app/views/store/shows/_show.html.haml +50 -0
  545. data/app/views/store/shows/show.html.haml +1 -0
  546. data/app/views/ticket_types/edit.html.haml +12 -0
  547. data/app/views/ticket_types/new.html.haml +13 -0
  548. data/app/views/user_memberships/_list.html.haml +30 -0
  549. data/app/views/users/invitations/edit.html.haml +19 -9
  550. data/app/views/users/mailer/invitation_instructions.html.haml +14 -0
  551. data/app/views/users/passwords/edit.html.haml +2 -2
  552. data/app/views/users/registrations/edit.html.erb +3 -3
  553. data/app/views/users/sessions/new.html.haml +2 -2
  554. data/app/views/venues/edit.html.haml +6 -4
  555. data/config/initializers/devise.rb +2 -5
  556. data/config/initializers/paperclip.rb +69 -0
  557. data/config/locales/devise.en.yml +1 -1
  558. data/config/locales/devise_invitable.en.yml +1 -1
  559. data/config/locales/en.yml +16 -3
  560. data/config/routes.rb +178 -22
  561. data/db/migrate/20130311184839_rename_memberships.rb +5 -0
  562. data/db/migrate/20130329201707_clean_geographic_data.rb +230 -0
  563. data/db/migrate/20130411162346_add_country_zip_state_phone_number_discipline_to_organizations.rb +9 -0
  564. data/db/migrate/20130412145428_massage_action_subtypes.rb +15 -0
  565. data/db/migrate/20130412184415_add_first_name_and_last_name_to_users.rb +6 -0
  566. data/db/migrate/20130420232537_add_starred_to_note.rb +5 -0
  567. data/db/migrate/20130425153848_add_notes_to_orders.rb +5 -0
  568. data/db/migrate/20130506173918_add_token_to_cart.rb +6 -0
  569. data/db/migrate/20130508180421_ticket_types_ahoy.rb +17 -0
  570. data/db/migrate/20130508194552_add_members_to_section.rb +6 -0
  571. data/db/migrate/20130514153006_add_import_messages.rb +17 -0
  572. data/db/migrate/20130520190452_add_ticket_type_to_tickets.rb +6 -0
  573. data/db/migrate/20130521185848_add_sti_to_cart.rb +12 -0
  574. data/db/migrate/20130526021126_add_validated_to_ticket.rb +5 -0
  575. data/db/migrate/20130528193811_add_widget_requests.rb +12 -0
  576. data/db/migrate/20130530011409_add_ticket_types_to_discounts.rb +5 -0
  577. data/db/migrate/20130531160800_migrate_to_ticket_types.rb +59 -0
  578. data/db/migrate/20130531160801_drop_price_from_ticket.rb +5 -0
  579. data/db/migrate/20130531160802_remove_price_from_section.rb +5 -0
  580. data/db/migrate/20130531180955_add_defaults_to_people_types.rb +21 -0
  581. data/db/migrate/20130604161411_add_validated_action_to_ticket.rb +5 -0
  582. data/db/migrate/20130607180250_change_institution_to_company.rb +9 -0
  583. data/db/migrate/20130609233536_revenue_applies_at.rb +11 -0
  584. data/db/migrate/20130611175122_add_more_indexes.rb +8 -0
  585. data/db/migrate/20130612183117_add_types_to_searches.rb +6 -0
  586. data/db/migrate/20130712145416_add_middle_name_and_suffix_to_people.rb +6 -0
  587. data/db/migrate/20130722153731_add_autentication_token_to_users.rb +5 -0
  588. data/db/migrate/20130722182255_create_membership_types.rb +18 -0
  589. data/db/migrate/20130723182754_create_slugged_slugs.rb +20 -0
  590. data/db/migrate/20130723182811_add_cached_slug_to_organizations.rb +16 -0
  591. data/db/migrate/20130723212712_add_qr_code_to_tickets.rb +9 -0
  592. data/db/migrate/20130725012338_create_new_memberships.rb +28 -0
  593. data/db/migrate/20130725013145_devise_create_members.rb +41 -0
  594. data/db/migrate/20130729140618_convert_to_company.rb +5 -0
  595. data/db/migrate/20130731145336_last_member_number.rb +5 -0
  596. data/db/migrate/20130731153806_add_member_number.rb +5 -0
  597. data/db/migrate/20130801194634_make_events_public.rb +5 -0
  598. data/db/migrate/20130802235709_add_memberships_to_search.rb +9 -0
  599. data/db/migrate/20130808002742_add_lifetime_ticket_value_to_person.rb +9 -0
  600. data/db/migrate/20130808005856_add_members_only_to_events.rb +5 -0
  601. data/db/migrate/20130820011240_add_uuid_to_tickets.rb +13 -0
  602. data/db/migrate/20130820025134_make_ticket_uuid_not_null.rb +11 -0
  603. data/db/migrate/20130823191625_add_pdf_to_orders.rb +5 -0
  604. data/db/migrate/20130827190839_add_fee_to_tickets_and_donations.rb +8 -0
  605. data/db/migrate/20130829015011_migrate_fees_to_items.rb +5 -0
  606. data/db/migrate/20130916194547_add_relationships.rb +21 -0
  607. data/db/migrate/20130917165559_add_service_fee_to_memberships.rb +5 -0
  608. data/db/migrate/20131002191646_create_show_stats_view.rb +16 -0
  609. data/db/migrate/20131003134821_add_relationships_to_search.rb +7 -0
  610. data/db/migrate/20131003200508_add_starred_to_relationships.rb +5 -0
  611. data/db/migrate/20131007141421_add_counters_to_member.rb +7 -0
  612. data/db/migrate/20131007144456_remove_expires_at_from_membership.rb +6 -0
  613. data/db/migrate/20131011154027_add_purchased_to_searches.rb +5 -0
  614. data/db/migrate/20131013144010_add_type_to_membership_type.rb +5 -0
  615. data/db/migrate/20131013150230_add_duration_to_membership_type.rb +6 -0
  616. data/db/migrate/20131013192807_change_number_of_shows_to_tickets.rb +5 -0
  617. data/db/migrate/20131015151550_add_households.rb +18 -0
  618. data/db/migrate/20131022183913_add_search_output_options.rb +24 -0
  619. data/db/migrate/20131023200559_add_admin_to_user_memberships.rb +14 -0
  620. data/db/migrate/20131025162155_default_search_filter_values.rb +10 -0
  621. data/db/migrate/20131025180139_unique_household_names.rb +8 -0
  622. data/db/migrate/20131029173612_add_sales_start_to_membership_typ.rb +6 -0
  623. data/db/migrate/20131106191847_add_suggested_households.rb +13 -0
  624. data/db/migrate/20131127162818_add_buyer_id_index_to_tickets.rb +5 -0
  625. data/db/migrate/20131127164000_member_tickets.rb +9 -0
  626. data/db/migrate/20131204162642_add_shared_address.rb +9 -0
  627. data/db/migrate/20131206153323_add_membership_kit.rb +5 -0
  628. data/db/migrate/20131206175325_add_marketing_to_membership_type.rb +6 -0
  629. data/db/migrate/20131210212342_add_show_fee_to_memberhsip_type.rb +5 -0
  630. data/db/migrate/20131210222814_add_renewal_price_to_membership_type.rb +6 -0
  631. data/db/migrate/20131212164553_add_copy_to_individuals_option.rb +5 -0
  632. data/db/migrate/20131223215615_goodbye_order_view.rb +6 -0
  633. data/db/migrate/20140114011856_add_welcome_message_to_memberships.rb +5 -0
  634. data/db/migrate/20140114212127_add_send_email_to_memberships.rb +5 -0
  635. data/db/migrate/20140125183606_index_memberships_and_types.rb +6 -0
  636. data/db/migrate/20140128213101_add_pdf_to_members.rb +5 -0
  637. data/db/migrate/20140128223140_add_uuid_to_member.rb +6 -0
  638. data/db/migrate/20140128223948_add_qr_code_to_member.rb +9 -0
  639. data/db/migrate/20140207135731_update_items_view.rb +38 -0
  640. data/db/migrate/20140210154723_add_cached_stats.rb +5 -0
  641. data/db/migrate/20140218202726_cache_stats.rb +7 -0
  642. data/db/migrate/20140304171625_passes_ahoy.rb +52 -0
  643. data/db/migrate/20140304174807_add_passes_kit.rb +5 -0
  644. data/db/migrate/20140307144454_add_events_pass_types.rb +9 -0
  645. data/db/migrate/20140307193350_add_pass_id_to_cart.rb +7 -0
  646. data/db/migrate/20140314162422_add_total_paid_to_membership.rb +13 -0
  647. data/db/migrate/20140319191237_add_show_dates_to_advanced_search.rb +6 -0
  648. data/db/migrate/20140328172333_add_cols_to_events_pass_types.rb +6 -0
  649. data/db/migrate/20140328174217_add_deleted_at_to_ept.rb +9 -0
  650. data/db/migrate/20140328185432_add_active_to_ept.rb +5 -0
  651. data/db/migrate/20140328192612_add_pass_type_id_to_search.rb +5 -0
  652. data/db/migrate/20140415212841_add_min_max_start_dates_to_searches.artfully_ose_engine.rb +6 -0
  653. data/db/migrate/20140422193345_add_email_copy_to_pass_type.rb +5 -0
  654. data/db/migrate/20140423181639_add_min_max_end_dates_to_searches.artfully_ose_engine.rb +6 -0
  655. data/db/migrate/20140423185921_add_cached_stats_to_event.rb +9 -0
  656. data/db/migrate/20140424174423_add_lifetime_memberships_to_people.artfully_ose_engine.rb +5 -0
  657. data/db/migrate/20140506155241_add_lpt_to_membership_type.rb +5 -0
  658. data/db/migrate/20140507184646_add_bday_attributes_to_person.rb +7 -0
  659. data/db/migrate/20140507201048_add_check_number_to_orders.rb +5 -0
  660. data/db/migrate/20140515143651_remove_show_stats_view.rb +6 -0
  661. data/db/migrate/20140521195853_add_deleted_at_to_pass_type.rb +5 -0
  662. data/db/migrate/20140522205554_add_limit_to_events_pass_types.rb +5 -0
  663. data/db/migrate/20140523180444_remove_tickets_purchased_from_passes.rb +5 -0
  664. data/db/migrate/20140603200735_add_subtitle_to_events.rb +5 -0
  665. data/db/migrate/20140619194127_add_do_not_call_to_people.artfully_ose_engine.rb +5 -0
  666. data/db/migrate/20140623160543_add_index_to_items.rb +7 -0
  667. data/lib/artfully_ose.rb +7 -4
  668. data/lib/artfully_ose/common_abilities.rb +8 -2
  669. data/lib/artfully_ose/engine.rb +34 -10
  670. data/lib/artfully_ose/version.rb +1 -1
  671. data/spec/factories/action_factories.rb +19 -0
  672. data/spec/factories/address_factories.rb +11 -0
  673. data/spec/factories/cart_factories.rb +26 -0
  674. data/spec/factories/chart_factories.rb +52 -0
  675. data/spec/factories/discount_factories.rb +11 -0
  676. data/spec/factories/donation_factories.rb +14 -0
  677. data/spec/factories/event_factories.rb +29 -0
  678. data/spec/factories/household_factories.rb +8 -0
  679. data/spec/factories/import_factories.rb +61 -0
  680. data/spec/factories/item_factories.rb +51 -0
  681. data/spec/factories/kit_factories.rb +33 -0
  682. data/spec/factories/member_factories.rb +19 -0
  683. data/spec/factories/membership_factories.rb +9 -0
  684. data/spec/factories/membership_type_factories.rb +18 -0
  685. data/spec/factories/order_factories.rb +40 -0
  686. data/spec/factories/organization_factories.rb +48 -0
  687. data/spec/factories/pass_type_factories.rb +11 -0
  688. data/spec/factories/payments_factories.rb +97 -0
  689. data/spec/factories/person_factories.rb +47 -0
  690. data/spec/factories/phone_factories.rb +6 -0
  691. data/spec/factories/section_factories.rb +21 -0
  692. data/spec/factories/segment_factories.rb +6 -0
  693. data/spec/factories/show_factories.rb +33 -0
  694. data/spec/factories/ticket_factories.rb +57 -0
  695. data/spec/factories/ticket_offer_factories.rb +16 -0
  696. data/spec/factories/ticket_type_factories.rb +8 -0
  697. data/spec/factories/user_factories.rb +24 -0
  698. metadata +522 -49
  699. data/app/assets/javascripts/box-office.js +0 -244
  700. data/app/assets/javascripts/jquery-lib/fullcalendar.min.js +0 -113
  701. data/app/assets/javascripts/jquery-lib/jquery-ui-1.8.14.custom.min.js +0 -570
  702. data/app/assets/javascripts/jquery_ujs.js +0 -316
  703. data/app/assets/stylesheets/font-awesome.sass +0 -759
  704. data/app/models/adjustments.rb +0 -10
  705. data/app/models/carts/cart.rb +0 -171
  706. data/app/models/database_views/order_view.rb +0 -34
  707. data/app/views/actions/_list.html.haml +0 -25
  708. data/app/views/actions/edit.html.haml +0 -19
  709. data/app/views/actions/new.html.haml +0 -19
  710. data/app/views/memberships/_list.html.haml +0 -31
  711. data/app/views/notes/_list.html.haml +0 -30
  712. data/app/views/notes/edit.html.haml +0 -14
  713. data/app/views/notes/new.html.haml +0 -14
  714. data/app/views/orders/_grouped_form_help.haml +0 -4
  715. data/app/views/people/_person_summary_sidebar.html.haml +0 -86
  716. data/app/views/people/edit.html.haml +0 -10
  717. data/app/views/shared/_new_person_popup.html.haml +0 -21
  718. data/app/views/store/events/_show.html.haml +0 -43
  719. data/app/views/users/mailer/invitation_instructions.html.erb +0 -8
@@ -1,316 +0,0 @@
1
- /**
2
- * Unobtrusive scripting adapter for jQuery
3
- *
4
- * Requires jQuery 1.4.4 or later.
5
- * https://github.com/rails/jquery-ujs
6
-
7
- * Uploading file using rails.js
8
- * =============================
9
- *
10
- * By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
11
- * in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
12
- *
13
- * The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
14
- *
15
- * Ex:
16
- * $('form').live('ajax:aborted:file', function(event, elements){
17
- * // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
18
- * // Returning false in this handler tells rails.js to disallow standard form submission
19
- * return false;
20
- * });
21
- *
22
- * The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
23
- *
24
- * Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
25
- * techniques like the iframe method to upload the file instead.
26
- *
27
- * Required fields in rails.js
28
- * ===========================
29
- *
30
- * If any blank required inputs (required="required") are detected in the remote form, the whole form submission
31
- * is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
32
- *
33
- * The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
34
- *
35
- * !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
36
- * get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
37
- *
38
- * Ex:
39
- * $('form').live('ajax:aborted:required', function(event, elements){
40
- * // Returning false in this handler tells rails.js to submit the form anyway.
41
- * // The blank required inputs are passed to this function in `elements`.
42
- * return ! confirm("Would you like to submit the form with missing info?");
43
- * });
44
- */
45
-
46
- (function($, undefined) {
47
- // Shorthand to make it a little easier to call public rails functions from within rails.js
48
- var rails;
49
-
50
- $.rails = rails = {
51
- // Link elements bound by jquery-ujs
52
- linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]',
53
-
54
- // Form elements bound by jquery-ujs
55
- formSubmitSelector: 'form',
56
-
57
- // Form input elements bound by jquery-ujs
58
- formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])',
59
-
60
- // Form input elements disabled during form submission
61
- disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]',
62
-
63
- // Form input elements re-enabled after form submission
64
- enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled',
65
-
66
- // Form required input elements
67
- requiredInputSelector: 'input[name][required]:not([disabled]),textarea[name][required]:not([disabled])',
68
-
69
- // Form file input elements
70
- fileInputSelector: 'input:file',
71
-
72
- // Make sure that every Ajax request sends the CSRF token
73
- CSRFProtection: function(xhr) {
74
- var token = $('meta[name="csrf-token"]').attr('content');
75
- if (token) xhr.setRequestHeader('X-CSRF-Token', token);
76
- },
77
-
78
- // Triggers an event on an element and returns false if the event result is false
79
- fire: function(obj, name, data) {
80
- var event = $.Event(name);
81
- obj.trigger(event, data);
82
- return event.result !== false;
83
- },
84
-
85
- // Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
86
- confirm: function(message) {
87
- return confirm(message);
88
- },
89
-
90
- // Default ajax function, may be overridden with custom function in $.rails.ajax
91
- ajax: function(options) {
92
- return $.ajax(options);
93
- },
94
-
95
- // Submits "remote" forms and links with ajax
96
- handleRemote: function(element) {
97
- var method, url, data,
98
- crossDomain = element.data('cross-domain') || null,
99
- dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType);
100
-
101
- if (rails.fire(element, 'ajax:before')) {
102
-
103
- if (element.is('form')) {
104
- method = element.attr('method');
105
- url = element.attr('action');
106
- data = element.serializeArray();
107
- // memoized value from clicked submit button
108
- var button = element.data('ujs:submit-button');
109
- if (button) {
110
- data.push(button);
111
- element.data('ujs:submit-button', null);
112
- }
113
- } else {
114
- method = element.data('method');
115
- url = element.attr('href');
116
- data = element.data('params') || null;
117
- }
118
-
119
- rails.ajax({
120
- url: url, type: method || 'GET', data: data, dataType: dataType, crossDomain: crossDomain,
121
- // stopping the "ajax:beforeSend" event will cancel the ajax request
122
- beforeSend: function(xhr, settings) {
123
- if (settings.dataType === undefined) {
124
- xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
125
- }
126
- return rails.fire(element, 'ajax:beforeSend', [xhr, settings]);
127
- },
128
- success: function(data, status, xhr) {
129
- element.trigger('ajax:success', [data, status, xhr]);
130
- },
131
- complete: function(xhr, status) {
132
- element.trigger('ajax:complete', [xhr, status]);
133
- },
134
- error: function(xhr, status, error) {
135
- element.trigger('ajax:error', [xhr, status, error]);
136
- }
137
- });
138
- }
139
- },
140
-
141
- // Handles "data-method" on links such as:
142
- // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
143
- handleMethod: function(link) {
144
- var href = link.attr('href'),
145
- method = link.data('method'),
146
- csrf_token = $('meta[name=csrf-token]').attr('content'),
147
- csrf_param = $('meta[name=csrf-param]').attr('content'),
148
- form = $('<form method="post" action="' + href + '"></form>'),
149
- metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
150
-
151
- if (csrf_param !== undefined && csrf_token !== undefined) {
152
- metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
153
- }
154
-
155
- form.hide().append(metadata_input).appendTo('body');
156
- form.submit();
157
- },
158
-
159
- /* Disables form elements:
160
- - Caches element value in 'ujs:enable-with' data store
161
- - Replaces element text with value of 'data-disable-with' attribute
162
- - Adds disabled=disabled attribute
163
- */
164
- disableFormElements: function(form) {
165
- form.find(rails.disableSelector).each(function() {
166
- var element = $(this), method = element.is('button') ? 'html' : 'val';
167
- element.data('ujs:enable-with', element[method]());
168
- element[method](element.data('disable-with'));
169
- element.attr('disabled', 'disabled');
170
- });
171
- },
172
-
173
- /* Re-enables disabled form elements:
174
- - Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)
175
- - Removes disabled attribute
176
- */
177
- enableFormElements: function(form) {
178
- form.find(rails.enableSelector).each(function() {
179
- var element = $(this), method = element.is('button') ? 'html' : 'val';
180
- if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with'));
181
- element.removeAttr('disabled');
182
- });
183
- },
184
-
185
- /* For 'data-confirm' attribute:
186
- - Fires `confirm` event
187
- - Shows the confirmation dialog
188
- - Fires the `confirm:complete` event
189
-
190
- Returns `true` if no function stops the chain and user chose yes; `false` otherwise.
191
- Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog.
192
- Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function
193
- return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog.
194
- */
195
- allowAction: function(element) {
196
- var message = element.data('confirm'),
197
- answer = false, callback;
198
- if (!message) { return true; }
199
-
200
- if (rails.fire(element, 'confirm')) {
201
- answer = rails.confirm(message);
202
- callback = rails.fire(element, 'confirm:complete', [answer]);
203
- }
204
- return answer && callback;
205
- },
206
-
207
- // Helper function which checks for blank inputs in a form that match the specified CSS selector
208
- blankInputs: function(form, specifiedSelector, nonBlank) {
209
- var inputs = $(), input,
210
- selector = specifiedSelector || 'input,textarea';
211
- form.find(selector).each(function() {
212
- input = $(this);
213
- // Collect non-blank inputs if nonBlank option is true, otherwise, collect blank inputs
214
- if (nonBlank ? input.val() : !input.val()) {
215
- inputs = inputs.add(input);
216
- }
217
- });
218
- return inputs.length ? inputs : false;
219
- },
220
-
221
- // Helper function which checks for non-blank inputs in a form that match the specified CSS selector
222
- nonBlankInputs: function(form, specifiedSelector) {
223
- return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank
224
- },
225
-
226
- // Helper function, needed to provide consistent behavior in IE
227
- stopEverything: function(e) {
228
- $(e.target).trigger('ujs:everythingStopped');
229
- e.stopImmediatePropagation();
230
- return false;
231
- },
232
-
233
- // find all the submit events directly bound to the form and
234
- // manually invoke them. If anyone returns false then stop the loop
235
- callFormSubmitBindings: function(form) {
236
- var events = form.data('events'), continuePropagation = true;
237
- if (events !== undefined && events['submit'] !== undefined) {
238
- $.each(events['submit'], function(i, obj){
239
- if (typeof obj.handler === 'function') return continuePropagation = obj.handler(obj.data);
240
- });
241
- }
242
- return continuePropagation;
243
- }
244
- };
245
-
246
- // ajaxPrefilter is a jQuery 1.5 feature
247
- if ('ajaxPrefilter' in $) {
248
- $.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
249
- } else {
250
- $(document).ajaxSend(function(e, xhr, options){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
251
- }
252
-
253
- $(rails.linkClickSelector).live('click.rails', function(e) {
254
- var link = $(this);
255
- if (!rails.allowAction(link)) return rails.stopEverything(e);
256
-
257
- if (link.data('remote') !== undefined) {
258
- rails.handleRemote(link);
259
- return false;
260
- } else if (link.data('method')) {
261
- rails.handleMethod(link);
262
- return false;
263
- }
264
- });
265
-
266
- $(rails.formSubmitSelector).live('submit.rails', function(e) {
267
- var form = $(this),
268
- remote = form.data('remote') !== undefined,
269
- blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
270
- nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
271
-
272
- if (!rails.allowAction(form)) return rails.stopEverything(e);
273
-
274
- // skip other logic when required values are missing or file upload is present
275
- if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
276
- return rails.stopEverything(e);
277
- }
278
-
279
- if (remote) {
280
- if (nonBlankFileInputs) {
281
- return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);
282
- }
283
-
284
- // If browser does not support submit bubbling, then this live-binding will be called before direct
285
- // bindings. Therefore, we should directly call any direct bindings before remotely submitting form.
286
- if (!$.support.submitBubbles && rails.callFormSubmitBindings(form) === false) return rails.stopEverything(e);
287
-
288
- rails.handleRemote(form);
289
- return false;
290
- } else {
291
- // slight timeout so that the submit button gets properly serialized
292
- setTimeout(function(){ rails.disableFormElements(form); }, 13);
293
- }
294
- });
295
-
296
- $(rails.formInputClickSelector).live('click.rails', function(event) {
297
- var button = $(this);
298
-
299
- if (!rails.allowAction(button)) return rails.stopEverything(event);
300
-
301
- // register the pressed submit button
302
- var name = button.attr('name'),
303
- data = name ? {name:name, value:button.val()} : null;
304
-
305
- button.closest('form').data('ujs:submit-button', data);
306
- });
307
-
308
- $(rails.formSubmitSelector).live('ajax:beforeSend.rails', function(event) {
309
- if (this == event.target) rails.disableFormElements($(this));
310
- });
311
-
312
- $(rails.formSubmitSelector).live('ajax:complete.rails', function(event) {
313
- if (this == event.target) rails.enableFormElements($(this));
314
- });
315
-
316
- })( jQuery );
@@ -1,759 +0,0 @@
1
- /*!
2
- * Font Awesome 3.0.2
3
- * the iconic font designed for use with Twitter Bootstrap
4
- * -------------------------------------------------------
5
- * The full suite of pictographic icons, examples, and documentation
6
- * can be found at: http://fortawesome.github.com/Font-Awesome/
7
- *
8
- * License
9
- * -------------------------------------------------------
10
- * - The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
11
- * - Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
12
- * http://opensource.org/licenses/mit-license.html
13
- * - The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
14
- * - Attribution is no longer required in Font Awesome 3.0, but much appreciated:
15
- * "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
16
- *
17
- * Contact
18
- * -------------------------------------------------------
19
- * Email: dave@davegandy.com
20
- * Twitter: http://twitter.com/fortaweso_me
21
- * Work: Lead Product Designer @ http://kyruus.com
22
- */
23
-
24
- $borderColor: #eee
25
- $iconMuted: #eee
26
- @mixin border-radius($radius)
27
- -webkit-border-radius: $radius
28
- -moz-border-radius: $radius
29
- border-radius: $radius
30
-
31
-
32
- @font-face
33
- font-family: 'FontAwesome'
34
- src: url('fontawesome-webfont.eot')
35
- src: url('fontawesome-webfont.eot?#iefix') format("embedded-opentype"), url('fontawesome-webfont.woff') format("woff"), url('fontawesome-webfont.ttf') format("truetype")
36
- font-weight: normal
37
- font-style: normal
38
-
39
-
40
-
41
-
42
- /* Font Awesome styles
43
- * -------------------------------------------------------
44
-
45
- [class^="icon-"],
46
- [class*=" icon-"]
47
- font-family: FontAwesome
48
- font-weight: normal
49
- font-style: normal
50
- text-decoration: inherit
51
- -webkit-font-smoothing: antialiased
52
-
53
- /* sprites.less reset */
54
- display: inline
55
- width: auto
56
- height: auto
57
- line-height: normal
58
- vertical-align: baseline
59
- background-image: none
60
- background-position: 0% 0%
61
- background-repeat: repeat
62
- margin-top: 0
63
-
64
- /* more sprites.less reset */
65
- .icon-white,
66
- .nav-pills > .active > a > [class^="icon-"],
67
- .nav-pills > .active > a > [class*=" icon-"],
68
- .nav-list > .active > a > [class^="icon-"],
69
- .nav-list > .active > a > [class*=" icon-"],
70
- .navbar-inverse .nav > .active > a > [class^="icon-"],
71
- .navbar-inverse .nav > .active > a > [class*=" icon-"],
72
- .dropdown-menu > li > a:hover > [class^="icon-"],
73
- .dropdown-menu > li > a:hover > [class*=" icon-"],
74
- .dropdown-menu > .active > a > [class^="icon-"],
75
- .dropdown-menu > .active > a > [class*=" icon-"],
76
- .dropdown-submenu:hover > a > [class^="icon-"],
77
- .dropdown-submenu:hover > a > [class*=" icon-"]
78
- background-image: none
79
-
80
- [class^="icon-"]:before,
81
- [class*=" icon-"]:before
82
- text-decoration: inherit
83
- display: inline-block
84
- speak: none
85
-
86
- /* makes sure icons active on rollover in links */
87
- a
88
- [class^="icon-"],
89
- [class*=" icon-"]
90
- display: inline-block
91
-
92
- /* makes the font 33% larger relative to the icon container */
93
- .icon-large:before
94
- vertical-align: -10%
95
- font-size: 1.3333333333333333em
96
-
97
- .btn, .nav
98
- [class^="icon-"],
99
- [class*=" icon-"]
100
- display: inline
101
- /* keeps button heights with and without icons the same */
102
- &.icon-large
103
- line-height: .9em
104
- &.icon-spin
105
- display: inline-block
106
-
107
- .nav-tabs, .nav-pills
108
- [class^="icon-"],
109
- [class*=" icon-"]
110
- /* keeps button heights with and without icons the same */
111
- line-height: .9em
112
- &.icon-large
113
- line-height: .9em
114
-
115
- li, .nav li
116
- [class^="icon-"],
117
- [class*=" icon-"]
118
- display: inline-block
119
- width: 1.25em
120
- text-align: center
121
- &.icon-large
122
- /* increased font size for icon-large */
123
- width: 1.5625em
124
-
125
- ul.icons
126
- list-style-type: none
127
- text-indent: -.75em
128
- li
129
- [class^="icon-"],
130
- [class*=" icon-"]
131
- width: .75em
132
-
133
- .icon-muted
134
- color: $iconMuted
135
-
136
- // Icon Borders
137
- // -------------------------
138
-
139
- .icon-border
140
- border: solid 1px $borderColor
141
- padding: .2em .25em .15em
142
- @include border-radius(3px)
143
-
144
- // Icon Sizes
145
- // -------------------------
146
-
147
- .icon-2x
148
- font-size: 2em
149
- &.icon-border
150
- border-width: 2px
151
- @include border-radius(4px)
152
-
153
- .icon-3x
154
- font-size: 3em
155
- &.icon-border
156
- border-width: 3px
157
- @include border-radius(5px)
158
-
159
- .icon-4x
160
- font-size: 4em
161
- &.icon-border
162
- border-width: 4px
163
- @include border-radius(6px)
164
-
165
- // Floats
166
- // -------------------------
167
-
168
- // Quick floats
169
- .pull-right
170
- float: right
171
- .pull-left
172
- float: left
173
-
174
- [class^="icon-"],
175
- [class*=" icon-"]
176
- &.pull-left
177
- margin-right: .3em
178
- &.pull-right
179
- margin-left: .3em
180
-
181
- .btn
182
- [class^="icon-"],
183
- [class*=" icon-"]
184
- &.pull-left, &.pull-right
185
- &.icon-2x
186
- margin-top: .18em
187
- &.icon-spin.icon-large
188
- line-height: .8em
189
-
190
- .btn.btn-small
191
- [class^="icon-"],
192
- [class*=" icon-"]
193
- &.pull-left, &.pull-right
194
- &.icon-2x
195
- margin-top: .25em
196
-
197
- .btn.btn-large
198
- [class^="icon-"],
199
- [class*=" icon-"]
200
- margin-top: 0 // overrides bootstrap default
201
- &.pull-left, &.pull-right
202
- &.icon-2x
203
- margin-top: .05em
204
- &.pull-left.icon-2x
205
- margin-right: .2em
206
- &.pull-right.icon-2x
207
- margin-left: .2em
208
-
209
-
210
- .icon-spin
211
- display: inline-block
212
- -moz-animation: spin 2s infinite linear
213
- -o-animation: spin 2s infinite linear
214
- -webkit-animation: spin 2s infinite linear
215
- animation: spin 2s infinite linear
216
-
217
- @-moz-keyframes spin
218
- 0%
219
- -moz-transform: rotate(0deg)
220
- 100%
221
- -moz-transform: rotate(359deg)
222
-
223
- @-webkit-keyframes spin
224
- 0%
225
- -webkit-transform: rotate(0deg)
226
- 100%
227
- -webkit-transform: rotate(359deg)
228
-
229
- @-o-keyframes spin
230
- 0%
231
- -o-transform: rotate(0deg)
232
- 100%
233
- -o-transform: rotate(359deg)
234
-
235
- @-ms-keyframes spin
236
- 0%
237
- -ms-transform: rotate(0deg)
238
- 100%
239
- -ms-transform: rotate(359deg)
240
-
241
- @keyframes spin
242
- 0%
243
- transform: rotate(0deg)
244
- 100%
245
- transform: rotate(359deg)
246
-
247
- @-moz-document url-prefix()
248
- .icon-spin
249
- height: .9em
250
- .btn .icon-spin
251
- height: auto
252
- .icon-spin.icon-large
253
- height: 1.25em
254
- .btn .icon-spin.icon-large
255
- height: .75em
256
-
257
-
258
- /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
259
- * readers do not read off random characters that represent icons
260
-
261
- .icon-glass:before
262
- content: "\f000"
263
- .icon-music:before
264
- content: "\f001"
265
- .icon-search:before
266
- content: "\f002"
267
- .icon-envelope:before
268
- content: "\f003"
269
- .icon-heart:before
270
- content: "\f004"
271
- .icon-star:before
272
- content: "\f005"
273
- .icon-star-empty:before
274
- content: "\f006"
275
- .icon-user:before
276
- content: "\f007"
277
- .icon-film:before
278
- content: "\f008"
279
- .icon-th-large:before
280
- content: "\f009"
281
- .icon-th:before
282
- content: "\f00a"
283
- .icon-th-list:before
284
- content: "\f00b"
285
- .icon-ok:before
286
- content: "\f00c"
287
- .icon-remove:before
288
- content: "\f00d"
289
- .icon-zoom-in:before
290
- content: "\f00e"
291
- .icon-zoom-out:before
292
- content: "\f010"
293
- .icon-off:before
294
- content: "\f011"
295
- .icon-signal:before
296
- content: "\f012"
297
- .icon-cog:before
298
- content: "\f013"
299
- .icon-trash:before
300
- content: "\f014"
301
- .icon-home:before
302
- content: "\f015"
303
- .icon-file:before
304
- content: "\f016"
305
- .icon-time:before
306
- content: "\f017"
307
- .icon-road:before
308
- content: "\f018"
309
- .icon-download-alt:before
310
- content: "\f019"
311
- .icon-download:before
312
- content: "\f01a"
313
- .icon-upload:before
314
- content: "\f01b"
315
- .icon-inbox:before
316
- content: "\f01c"
317
- .icon-play-circle:before
318
- content: "\f01d"
319
- .icon-repeat:before
320
- content: "\f01e"
321
- /* \f020 doesn't work in Safari. all shifted one down
322
- .icon-refresh:before
323
- content: "\f021"
324
- .icon-list-alt:before
325
- content: "\f022"
326
- .icon-lock:before
327
- content: "\f023"
328
- .icon-flag:before
329
- content: "\f024"
330
- .icon-headphones:before
331
- content: "\f025"
332
- .icon-volume-off:before
333
- content: "\f026"
334
- .icon-volume-down:before
335
- content: "\f027"
336
- .icon-volume-up:before
337
- content: "\f028"
338
- .icon-qrcode:before
339
- content: "\f029"
340
- .icon-barcode:before
341
- content: "\f02a"
342
- .icon-tag:before
343
- content: "\f02b"
344
- .icon-tags:before
345
- content: "\f02c"
346
- .icon-book:before
347
- content: "\f02d"
348
- .icon-bookmark:before
349
- content: "\f02e"
350
- .icon-print:before
351
- content: "\f02f"
352
- .icon-camera:before
353
- content: "\f030"
354
- .icon-font:before
355
- content: "\f031"
356
- .icon-bold:before
357
- content: "\f032"
358
- .icon-italic:before
359
- content: "\f033"
360
- .icon-text-height:before
361
- content: "\f034"
362
- .icon-text-width:before
363
- content: "\f035"
364
- .icon-align-left:before
365
- content: "\f036"
366
- .icon-align-center:before
367
- content: "\f037"
368
- .icon-align-right:before
369
- content: "\f038"
370
- .icon-align-justify:before
371
- content: "\f039"
372
- .icon-list:before
373
- content: "\f03a"
374
- .icon-indent-left:before
375
- content: "\f03b"
376
- .icon-indent-right:before
377
- content: "\f03c"
378
- .icon-facetime-video:before
379
- content: "\f03d"
380
- .icon-picture:before
381
- content: "\f03e"
382
- .icon-pencil:before
383
- content: "\f040"
384
- .icon-map-marker:before
385
- content: "\f041"
386
- .icon-adjust:before
387
- content: "\f042"
388
- .icon-tint:before
389
- content: "\f043"
390
- .icon-edit:before
391
- content: "\f044"
392
- .icon-share:before
393
- content: "\f045"
394
- .icon-check:before
395
- content: "\f046"
396
- .icon-move:before
397
- content: "\f047"
398
- .icon-step-backward:before
399
- content: "\f048"
400
- .icon-fast-backward:before
401
- content: "\f049"
402
- .icon-backward:before
403
- content: "\f04a"
404
- .icon-play:before
405
- content: "\f04b"
406
- .icon-pause:before
407
- content: "\f04c"
408
- .icon-stop:before
409
- content: "\f04d"
410
- .icon-forward:before
411
- content: "\f04e"
412
- .icon-fast-forward:before
413
- content: "\f050"
414
- .icon-step-forward:before
415
- content: "\f051"
416
- .icon-eject:before
417
- content: "\f052"
418
- .icon-chevron-left:before
419
- content: "\f053"
420
- .icon-chevron-right:before
421
- content: "\f054"
422
- .icon-plus-sign:before
423
- content: "\f055"
424
- .icon-minus-sign:before
425
- content: "\f056"
426
- .icon-remove-sign:before
427
- content: "\f057"
428
- .icon-ok-sign:before
429
- content: "\f058"
430
- .icon-question-sign:before
431
- content: "\f059"
432
- .icon-info-sign:before
433
- content: "\f05a"
434
- .icon-screenshot:before
435
- content: "\f05b"
436
- .icon-remove-circle:before
437
- content: "\f05c"
438
- .icon-ok-circle:before
439
- content: "\f05d"
440
- .icon-ban-circle:before
441
- content: "\f05e"
442
- .icon-arrow-left:before
443
- content: "\f060"
444
- .icon-arrow-right:before
445
- content: "\f061"
446
- .icon-arrow-up:before
447
- content: "\f062"
448
- .icon-arrow-down:before
449
- content: "\f063"
450
- .icon-share-alt:before
451
- content: "\f064"
452
- .icon-resize-full:before
453
- content: "\f065"
454
- .icon-resize-small:before
455
- content: "\f066"
456
- .icon-plus:before
457
- content: "\f067"
458
- .icon-minus:before
459
- content: "\f068"
460
- .icon-asterisk:before
461
- content: "\f069"
462
- .icon-exclamation-sign:before
463
- content: "\f06a"
464
- .icon-gift:before
465
- content: "\f06b"
466
- .icon-leaf:before
467
- content: "\f06c"
468
- .icon-fire:before
469
- content: "\f06d"
470
- .icon-eye-open:before
471
- content: "\f06e"
472
- .icon-eye-close:before
473
- content: "\f070"
474
- .icon-warning-sign:before
475
- content: "\f071"
476
- .icon-plane:before
477
- content: "\f072"
478
- .icon-calendar:before
479
- content: "\f073"
480
- .icon-random:before
481
- content: "\f074"
482
- .icon-comment:before
483
- content: "\f075"
484
- .icon-magnet:before
485
- content: "\f076"
486
- .icon-chevron-up:before
487
- content: "\f077"
488
- .icon-chevron-down:before
489
- content: "\f078"
490
- .icon-retweet:before
491
- content: "\f079"
492
- .icon-shopping-cart:before
493
- content: "\f07a"
494
- .icon-folder-close:before
495
- content: "\f07b"
496
- .icon-folder-open:before
497
- content: "\f07c"
498
- .icon-resize-vertical:before
499
- content: "\f07d"
500
- .icon-resize-horizontal:before
501
- content: "\f07e"
502
- .icon-bar-chart:before
503
- content: "\f080"
504
- .icon-twitter-sign:before
505
- content: "\f081"
506
- .icon-facebook-sign:before
507
- content: "\f082"
508
- .icon-camera-retro:before
509
- content: "\f083"
510
- .icon-key:before
511
- content: "\f084"
512
- .icon-cogs:before
513
- content: "\f085"
514
- .icon-comments:before
515
- content: "\f086"
516
- .icon-thumbs-up:before
517
- content: "\f087"
518
- .icon-thumbs-down:before
519
- content: "\f088"
520
- .icon-star-half:before
521
- content: "\f089"
522
- .icon-heart-empty:before
523
- content: "\f08a"
524
- .icon-signout:before
525
- content: "\f08b"
526
- .icon-linkedin-sign:before
527
- content: "\f08c"
528
- .icon-pushpin:before
529
- content: "\f08d"
530
- .icon-external-link:before
531
- content: "\f08e"
532
- .icon-signin:before
533
- content: "\f090"
534
- .icon-trophy:before
535
- content: "\f091"
536
- .icon-github-sign:before
537
- content: "\f092"
538
- .icon-upload-alt:before
539
- content: "\f093"
540
- .icon-lemon:before
541
- content: "\f094"
542
- .icon-phone:before
543
- content: "\f095"
544
- .icon-check-empty:before
545
- content: "\f096"
546
- .icon-bookmark-empty:before
547
- content: "\f097"
548
- .icon-phone-sign:before
549
- content: "\f098"
550
- .icon-twitter:before
551
- content: "\f099"
552
- .icon-facebook:before
553
- content: "\f09a"
554
- .icon-github:before
555
- content: "\f09b"
556
- .icon-unlock:before
557
- content: "\f09c"
558
- .icon-credit-card:before
559
- content: "\f09d"
560
- .icon-rss:before
561
- content: "\f09e"
562
- .icon-hdd:before
563
- content: "\f0a0"
564
- .icon-bullhorn:before
565
- content: "\f0a1"
566
- .icon-bell:before
567
- content: "\f0a2"
568
- .icon-certificate:before
569
- content: "\f0a3"
570
- .icon-hand-right:before
571
- content: "\f0a4"
572
- .icon-hand-left:before
573
- content: "\f0a5"
574
- .icon-hand-up:before
575
- content: "\f0a6"
576
- .icon-hand-down:before
577
- content: "\f0a7"
578
- .icon-circle-arrow-left:before
579
- content: "\f0a8"
580
- .icon-circle-arrow-right:before
581
- content: "\f0a9"
582
- .icon-circle-arrow-up:before
583
- content: "\f0aa"
584
- .icon-circle-arrow-down:before
585
- content: "\f0ab"
586
- .icon-globe:before
587
- content: "\f0ac"
588
- .icon-wrench:before
589
- content: "\f0ad"
590
- .icon-tasks:before
591
- content: "\f0ae"
592
- .icon-filter:before
593
- content: "\f0b0"
594
- .icon-briefcase:before
595
- content: "\f0b1"
596
- .icon-fullscreen:before
597
- content: "\f0b2"
598
- .icon-group:before
599
- content: "\f0c0"
600
- .icon-link:before
601
- content: "\f0c1"
602
- .icon-cloud:before
603
- content: "\f0c2"
604
- .icon-beaker:before
605
- content: "\f0c3"
606
- .icon-cut:before
607
- content: "\f0c4"
608
- .icon-copy:before
609
- content: "\f0c5"
610
- .icon-paper-clip:before
611
- content: "\f0c6"
612
- .icon-save:before
613
- content: "\f0c7"
614
- .icon-sign-blank:before
615
- content: "\f0c8"
616
- .icon-reorder:before
617
- content: "\f0c9"
618
- .icon-list-ul:before
619
- content: "\f0ca"
620
- .icon-list-ol:before
621
- content: "\f0cb"
622
- .icon-strikethrough:before
623
- content: "\f0cc"
624
- .icon-underline:before
625
- content: "\f0cd"
626
- .icon-table:before
627
- content: "\f0ce"
628
- .icon-magic:before
629
- content: "\f0d0"
630
- .icon-truck:before
631
- content: "\f0d1"
632
- .icon-pinterest:before
633
- content: "\f0d2"
634
- .icon-pinterest-sign:before
635
- content: "\f0d3"
636
- .icon-google-plus-sign:before
637
- content: "\f0d4"
638
- .icon-google-plus:before
639
- content: "\f0d5"
640
- .icon-money:before
641
- content: "\f0d6"
642
- .icon-caret-down:before
643
- content: "\f0d7"
644
- .icon-caret-up:before
645
- content: "\f0d8"
646
- .icon-caret-left:before
647
- content: "\f0d9"
648
- .icon-caret-right:before
649
- content: "\f0da"
650
- .icon-columns:before
651
- content: "\f0db"
652
- .icon-sort:before
653
- content: "\f0dc"
654
- .icon-sort-down:before
655
- content: "\f0dd"
656
- .icon-sort-up:before
657
- content: "\f0de"
658
- .icon-envelope-alt:before
659
- content: "\f0e0"
660
- .icon-linkedin:before
661
- content: "\f0e1"
662
- .icon-undo:before
663
- content: "\f0e2"
664
- .icon-legal:before
665
- content: "\f0e3"
666
- .icon-dashboard:before
667
- content: "\f0e4"
668
- .icon-comment-alt:before
669
- content: "\f0e5"
670
- .icon-comments-alt:before
671
- content: "\f0e6"
672
- .icon-bolt:before
673
- content: "\f0e7"
674
- .icon-sitemap:before
675
- content: "\f0e8"
676
- .icon-umbrella:before
677
- content: "\f0e9"
678
- .icon-paste:before
679
- content: "\f0ea"
680
- .icon-lightbulb:before
681
- content: "\f0eb"
682
- .icon-exchange:before
683
- content: "\f0ec"
684
- .icon-cloud-download:before
685
- content: "\f0ed"
686
- .icon-cloud-upload:before
687
- content: "\f0ee"
688
- .icon-user-md:before
689
- content: "\f0f0"
690
- .icon-stethoscope:before
691
- content: "\f0f1"
692
- .icon-suitcase:before
693
- content: "\f0f2"
694
- .icon-bell-alt:before
695
- content: "\f0f3"
696
- .icon-coffee:before
697
- content: "\f0f4"
698
- .icon-food:before
699
- content: "\f0f5"
700
- .icon-file-alt:before
701
- content: "\f0f6"
702
- .icon-building:before
703
- content: "\f0f7"
704
- .icon-hospital:before
705
- content: "\f0f8"
706
- .icon-ambulance:before
707
- content: "\f0f9"
708
- .icon-medkit:before
709
- content: "\f0fa"
710
- .icon-fighter-jet:before
711
- content: "\f0fb"
712
- .icon-beer:before
713
- content: "\f0fc"
714
- .icon-h-sign:before
715
- content: "\f0fd"
716
- .icon-plus-sign-alt:before
717
- content: "\f0fe"
718
- .icon-double-angle-left:before
719
- content: "\f100"
720
- .icon-double-angle-right:before
721
- content: "\f101"
722
- .icon-double-angle-up:before
723
- content: "\f102"
724
- .icon-double-angle-down:before
725
- content: "\f103"
726
- .icon-angle-left:before
727
- content: "\f104"
728
- .icon-angle-right:before
729
- content: "\f105"
730
- .icon-angle-up:before
731
- content: "\f106"
732
- .icon-angle-down:before
733
- content: "\f107"
734
- .icon-desktop:before
735
- content: "\f108"
736
- .icon-laptop:before
737
- content: "\f109"
738
- .icon-tablet:before
739
- content: "\f10a"
740
- .icon-mobile-phone:before
741
- content: "\f10b"
742
- .icon-circle-blank:before
743
- content: "\f10c"
744
- .icon-quote-left:before
745
- content: "\f10d"
746
- .icon-quote-right:before
747
- content: "\f10e"
748
- .icon-spinner:before
749
- content: "\f110"
750
- .icon-circle:before
751
- content: "\f111"
752
- .icon-reply:before
753
- content: "\f112"
754
- .icon-github-alt:before
755
- content: "\f113"
756
- .icon-folder-close-alt:before
757
- content: "\f114"
758
- .icon-folder-open-alt:before
759
- content: "\f115"