artfully_ose 1.0.0.rc4 → 1.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (326) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +661 -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 +284 -0
  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/chosen-sprite.png +0 -0
  9. data/app/assets/javascripts/application.js +88 -44
  10. data/app/assets/javascripts/box-office.js +7 -3
  11. data/app/assets/javascripts/custom/grouped-form.js +1 -1
  12. data/app/assets/javascripts/custom/modernizr.custom.12828.js +4 -0
  13. data/app/assets/javascripts/custom/people.js +30 -1
  14. data/app/assets/javascripts/jquery-lib/chosen.jquery.js +1026 -0
  15. data/app/assets/javascripts/jquery-lib/jquery.jeditable.js +1 -1
  16. data/app/assets/javascripts/jquery-lib/jquery.mask-money.js +90 -60
  17. data/app/assets/javascripts/store/store.js +112 -67
  18. data/app/assets/stylesheets/application.sass +174 -1
  19. data/app/assets/stylesheets/bootstrap-overrides.css +51 -13
  20. data/app/assets/stylesheets/bootstrap.css +4 -379
  21. data/app/assets/stylesheets/font-awesome.sass +759 -0
  22. data/app/assets/stylesheets/jquery/chosen.scss +397 -0
  23. data/app/assets/stylesheets/printing.css +5 -1
  24. data/app/assets/stylesheets/sass/store.sass +18 -3
  25. data/app/concerns/itemable.rb +11 -0
  26. data/app/concerns/oh_noes.rb +24 -0
  27. data/app/controllers/actions_controller.rb +39 -20
  28. data/app/controllers/addresses_controller.rb +2 -2
  29. data/app/controllers/artfully_ose_controller.rb +15 -1
  30. data/app/controllers/charts_controller.rb +6 -2
  31. data/app/controllers/contributions_controller.rb +28 -1
  32. data/app/controllers/discounts_controller.rb +65 -0
  33. data/app/controllers/discounts_reports_controller.rb +22 -0
  34. data/app/controllers/events_controller.rb +48 -45
  35. data/app/controllers/exchanges_controller.rb +10 -10
  36. data/app/controllers/imports_controller.rb +38 -20
  37. data/app/controllers/index_controller.rb +1 -1
  38. data/app/controllers/memberships_controller.rb +1 -0
  39. data/app/controllers/merges_controller.rb +1 -1
  40. data/app/controllers/orders_controller.rb +6 -12
  41. data/app/controllers/organizations_controller.rb +0 -1
  42. data/app/controllers/people_controller.rb +10 -12
  43. data/app/controllers/refunds_controller.rb +2 -2
  44. data/app/controllers/returns_controller.rb +0 -1
  45. data/app/controllers/sales_controller.rb +9 -6
  46. data/app/controllers/searches_controller.rb +53 -0
  47. data/app/controllers/sections_controller.rb +12 -1
  48. data/app/controllers/segments_controller.rb +23 -10
  49. data/app/controllers/shows_controller.rb +37 -28
  50. data/app/controllers/slices_controller.rb +37 -0
  51. data/app/controllers/statements_controller.rb +4 -4
  52. data/app/controllers/store/checkouts_controller.rb +14 -12
  53. data/app/controllers/store/events_controller.rb +1 -1
  54. data/app/controllers/store/orders_controller.rb +32 -5
  55. data/app/controllers/store/store_controller.rb +4 -0
  56. data/app/controllers/venues_controller.rb +6 -2
  57. data/app/helpers/artfully_ose_helper.rb +31 -5
  58. data/app/helpers/discounts_helper.rb +3 -0
  59. data/app/helpers/people_helper.rb +2 -19
  60. data/app/mailers/order_mailer.rb +21 -3
  61. data/app/mailers/producer_mailer.rb +9 -1
  62. data/app/mailers/reports_mailer.rb +12 -0
  63. data/app/models/action.rb +29 -3
  64. data/app/models/actions/get_action.rb +4 -0
  65. data/app/models/actions/go_action.rb +18 -0
  66. data/app/models/actions/refund_action.rb +14 -0
  67. data/app/models/address.rb +6 -16
  68. data/app/models/adjustments.rb +10 -0
  69. data/app/models/box_office.rb +1 -1
  70. data/app/models/carts/cart.rb +35 -24
  71. data/app/models/chart.rb +16 -8
  72. data/app/models/checkout.rb +32 -9
  73. data/app/models/comp.rb +2 -8
  74. data/app/models/contribution.rb +111 -25
  75. data/app/models/daily_donation_report.rb +45 -0
  76. data/app/models/daily_ticket_report.rb +51 -0
  77. data/app/models/discount.rb +137 -0
  78. data/app/models/discounts/buy_one_get_one_free_discount_type.rb +20 -0
  79. data/app/models/discounts/discount_type.rb +66 -0
  80. data/app/models/discounts/dollars_off_tickets_discount_type.rb +32 -0
  81. data/app/models/discounts/percentage_off_tickets_discount_type.rb +25 -0
  82. data/app/models/discounts_report.rb +87 -0
  83. data/app/models/donation.rb +2 -0
  84. data/app/models/door_list.rb +5 -4
  85. data/app/models/event.rb +45 -16
  86. data/app/models/exchange.rb +26 -15
  87. data/app/models/ext/delayed_indexing.rb +24 -0
  88. data/app/models/ext/due.rb +7 -0
  89. data/app/models/ext/ext.rb +37 -0
  90. data/app/models/ext/integrations.rb +30 -0
  91. data/app/models/ext/resellable.rb +8 -1
  92. data/app/models/gateway_transaction.rb +47 -0
  93. data/app/models/import.rb +83 -101
  94. data/app/models/import_error.rb +1 -1
  95. data/app/models/import_row.rb +1 -1
  96. data/app/models/imports/donations_import.rb +103 -0
  97. data/app/models/imports/events_import.rb +207 -0
  98. data/app/models/imports/people_import.rb +41 -0
  99. data/app/models/imports/processing.rb +53 -0
  100. data/app/models/imports/rollback.rb +11 -0
  101. data/app/models/imports/status.rb +48 -0
  102. data/app/models/imports/validations.rb +31 -0
  103. data/app/models/item.rb +112 -29
  104. data/app/models/job/action_job.rb +29 -0
  105. data/app/models/job/daily_email_report_job.rb +11 -0
  106. data/app/models/job/tag_job.rb +15 -0
  107. data/app/models/kit.rb +14 -6
  108. data/app/models/kits/mailchimp_kit.rb +448 -0
  109. data/app/models/kits/reseller_kit.rb +2 -2
  110. data/app/models/kits/sponsored_donation_kit.rb +2 -2
  111. data/app/models/orders/application_order.rb +3 -1
  112. data/app/models/orders/comp_order.rb +15 -2
  113. data/app/models/orders/exchange_order.rb +8 -0
  114. data/app/models/orders/imported_order.rb +7 -0
  115. data/app/models/orders/order.rb +164 -51
  116. data/app/models/orders/refund_order.rb +14 -1
  117. data/app/models/orders/unrefundable.rb +5 -0
  118. data/app/models/orders/web_order.rb +1 -1
  119. data/app/models/organization.rb +38 -7
  120. data/app/models/parsed_row.rb +167 -0
  121. data/app/models/payments/comp_payment.rb +10 -1
  122. data/app/models/payments/credit_card_payment.rb +63 -10
  123. data/app/models/payments/payment.rb +28 -0
  124. data/app/models/person.rb +115 -43
  125. data/app/models/refund.rb +28 -28
  126. data/app/models/return.rb +2 -0
  127. data/app/models/sale.rb +8 -5
  128. data/app/models/search.rb +117 -0
  129. data/app/models/section.rb +18 -0
  130. data/app/models/segment.rb +14 -4
  131. data/app/models/show.rb +14 -4
  132. data/app/models/slices.rb +82 -0
  133. data/app/models/statement.rb +170 -3
  134. data/app/models/temp_discount.rb +14 -0
  135. data/app/models/ticket.rb +42 -134
  136. data/app/models/ticket/pricing.rb +45 -0
  137. data/app/models/ticket/reports.rb +10 -7
  138. data/app/models/ticket/sale_transitions.rb +44 -0
  139. data/app/models/ticket/transfers.rb +50 -0
  140. data/app/models/user.rb +10 -2
  141. data/app/models/valuation/lifetime_donations.rb +35 -0
  142. data/app/models/venue.rb +12 -1
  143. data/app/presenters/event_presenter.rb +41 -0
  144. data/app/views/actions/_list.html.haml +1 -2
  145. data/app/views/actions/new.html.haml +1 -1
  146. data/app/views/contributions/_form.html.haml +40 -0
  147. data/app/views/contributions/_sidebar.html.haml +12 -0
  148. data/app/views/contributions/edit.html.haml +11 -0
  149. data/app/views/contributions/index.html.haml +2 -2
  150. data/app/views/contributions/new.html.haml +5 -35
  151. data/app/views/discounts/_discount_section_fields.html.haml +25 -0
  152. data/app/views/discounts/_form.html.haml +95 -0
  153. data/app/views/discounts/edit.html.haml +16 -0
  154. data/app/views/discounts/index.html.haml +33 -0
  155. data/app/views/discounts/new.html.haml +16 -0
  156. data/app/views/discounts_reports/index.html.haml +76 -0
  157. data/app/views/events/_discount_section_fields.html.haml +25 -0
  158. data/app/views/events/_glance.html.haml +4 -1
  159. data/app/views/events/_list.html.haml +2 -4
  160. data/app/views/events/_menu.html.haml +3 -3
  161. data/app/views/events/_section_fields.html.haml +32 -15
  162. data/app/views/events/_share_and_sell.haml +2 -1
  163. data/app/views/events/edit.html.haml +7 -6
  164. data/app/views/events/image.html.haml +1 -0
  165. data/app/views/events/index.html.haml +3 -1
  166. data/app/views/events/messages.html.haml +1 -0
  167. data/app/views/events/prices.html.haml +2 -1
  168. data/app/views/events/resell.html.haml +1 -1
  169. data/app/views/events/show.html.haml +25 -1
  170. data/app/views/events/storefront_link.html.haml +1 -1
  171. data/app/views/events/temp_discount_form.html.haml +108 -0
  172. data/app/views/events/temp_discounts_index.html.haml +38 -0
  173. data/app/views/events/widget.html.haml +14 -1
  174. data/app/views/exchanges/new.html.haml +50 -73
  175. data/app/views/imports/{_imported.html.haml → donations/_approved.html.haml} +2 -5
  176. data/app/views/imports/donations/_caching.html.haml +17 -0
  177. data/app/views/imports/donations/_failed.html.haml +5 -0
  178. data/app/views/imports/donations/_imported.html.haml +9 -0
  179. data/app/views/imports/donations/_importing.html.haml +12 -0
  180. data/app/views/imports/donations/_invalid.html.haml +5 -0
  181. data/app/views/imports/donations/_new.html.haml +99 -0
  182. data/app/views/imports/donations/_pending.html.haml +41 -0
  183. data/app/views/imports/events/_approved.html.haml +10 -0
  184. data/app/views/imports/events/_caching.html.haml +17 -0
  185. data/app/views/imports/events/_failed.html.haml +5 -0
  186. data/app/views/imports/events/_imported.html.haml +9 -0
  187. data/app/views/imports/events/_importing.html.haml +12 -0
  188. data/app/views/imports/events/_invalid.html.haml +5 -0
  189. data/app/views/imports/events/_new.html.haml +95 -0
  190. data/app/views/imports/events/_pending.html.haml +35 -0
  191. data/app/views/imports/index.html.haml +41 -18
  192. data/app/views/imports/new.html.haml +1 -93
  193. data/app/views/imports/{_approved.html.haml → people/_approved.html.haml} +0 -1
  194. data/app/views/imports/{_caching.html.haml → people/_caching.html.haml} +0 -0
  195. data/app/views/imports/people/_failed.html.haml +5 -0
  196. data/app/views/imports/people/_imported.html.haml +25 -0
  197. data/app/views/imports/{_importing.html.haml → people/_importing.html.haml} +1 -2
  198. data/app/views/imports/people/_invalid.html.haml +5 -0
  199. data/app/views/imports/people/_new.html.haml +120 -0
  200. data/app/views/imports/people/_pending.html.haml +39 -0
  201. data/app/views/imports/shared/_date_format.html.haml +14 -0
  202. data/app/views/imports/shared/_failed.html.haml +18 -0
  203. data/app/views/imports/shared/_inspect_modal.html.haml +11 -0
  204. data/app/views/imports/shared/_invalid.html.haml +18 -0
  205. data/app/views/imports/shared/_knowledge_base.haml +2 -0
  206. data/app/views/imports/shared/_sidebar.html.haml +5 -0
  207. data/app/views/imports/show.html.haml +2 -2
  208. data/app/views/index/dashboard.html.haml +4 -2
  209. data/app/views/layouts/_custom_css_includes.haml +0 -0
  210. data/app/views/layouts/_custom_js_includes.haml +0 -0
  211. data/app/views/layouts/_google_analytics.html.haml +3 -3
  212. data/app/views/layouts/_menu.html.haml +6 -2
  213. data/app/views/layouts/application.html.haml +4 -0
  214. data/app/views/layouts/{devise.html.haml → devise_layout.html.haml} +0 -0
  215. data/app/views/order_mailer/confirmation_for.html.haml +3 -2
  216. data/app/views/order_mailer/confirmation_for.text.haml +3 -2
  217. data/app/views/orders/_grouped_form_help.haml +4 -0
  218. data/app/views/orders/_item_table.haml +15 -4
  219. data/app/views/orders/_order_sidebar.html.haml +27 -6
  220. data/app/views/orders/index.html.haml +1 -12
  221. data/app/views/orders/show.html.haml +1 -1
  222. data/app/views/organizations/_form.html.haml +20 -6
  223. data/app/views/organizations/edit.html.haml +2 -1
  224. data/app/views/organizations/new.html.haml +1 -0
  225. data/app/views/organizations/show.html.haml +7 -1
  226. data/app/views/people/_form.html.haml +5 -2
  227. data/app/views/people/_key_relationships.html.haml +1 -1
  228. data/app/views/people/_list.html.haml +1 -12
  229. data/app/views/people/_person_summary_sidebar.html.haml +82 -50
  230. data/app/views/people/_relationship_table_row.html.haml +1 -1
  231. data/app/views/people/edit.html.haml +3 -1
  232. data/app/views/people/index.html.haml +7 -1
  233. data/app/views/people/new.html.haml +2 -0
  234. data/app/views/people/show.html.haml +2 -0
  235. data/app/views/refunds/new.html.haml +4 -6
  236. data/app/views/reports_mailer/daily.html.haml +67 -0
  237. data/app/views/reports_mailer/daily.text.erb +16 -0
  238. data/app/views/sales/new.html.haml +5 -20
  239. data/app/views/searches/_form.html.haml +43 -0
  240. data/app/views/searches/_person.html.haml +7 -0
  241. data/app/views/searches/new.html.haml +10 -0
  242. data/app/views/searches/show.html.haml +64 -0
  243. data/app/views/sections/edit.html.haml +12 -0
  244. data/app/views/segments/index.html.haml +8 -4
  245. data/app/views/segments/show.html.haml +39 -5
  246. data/app/views/shared/_door_list_table.haml +24 -0
  247. data/app/views/shared/_event_image_icon.html.haml +1 -1
  248. data/app/views/shared/_preload_assets.html.haml +2 -0
  249. data/app/views/shared/_tags.html.haml +3 -2
  250. data/app/views/shows/_glance.html.haml +8 -2
  251. data/app/views/shows/_ticket_table.html.haml +17 -10
  252. data/app/views/shows/_upcoming.html.haml +1 -1
  253. data/app/views/shows/door_list.html.haml +2 -24
  254. data/app/views/shows/index.html.haml +3 -3
  255. data/app/views/shows/new.html.haml +2 -2
  256. data/app/views/shows/show.html.haml +1 -1
  257. data/app/views/slices/_data.json +50 -0
  258. data/app/views/slices/index.html.haml +58 -0
  259. data/app/views/statements/_discounts_table.html.haml +26 -0
  260. data/app/views/statements/_order_location_table.html.haml +20 -0
  261. data/app/views/statements/_payment_method_table.haml +20 -0
  262. data/app/views/statements/{_played_shows.html.haml → _shows.html.haml} +3 -3
  263. data/app/views/statements/_ticket_type_table.haml +20 -0
  264. data/app/views/statements/_top_stats.haml +12 -0
  265. data/app/views/statements/show.html.haml +24 -32
  266. data/app/views/store/events/_show.html.haml +11 -5
  267. data/app/views/store/events/show.html.haml +24 -5
  268. data/app/views/users/registrations/edit.html.erb +1 -1
  269. data/app/views/venues/edit.html.haml +1 -0
  270. data/config/artfully.yml.sample +3 -0
  271. data/config/initializers/active_model_serializer.rb +3 -0
  272. data/config/initializers/braintree_error_mapping.rb +5 -0
  273. data/config/initializers/devise.rb +1 -1
  274. data/config/locales/en.yml +1 -0
  275. data/config/routes.rb +31 -8
  276. data/db/migrate/0000_set_up_artfully.rb +9 -11
  277. data/db/migrate/20120809212802_add_do_not_email_to_people.rb +5 -0
  278. data/db/migrate/20120831200120_create_advanced_search.rb +30 -0
  279. data/db/migrate/20120926201927_add_email_to_organization.rb +5 -0
  280. data/db/migrate/20121001143351_add_import_id_orders_events.rb +6 -0
  281. data/db/migrate/20121006024736_add_import_to_actions.rb +5 -0
  282. data/db/migrate/20121011180654_add_type_to_imports.rb +14 -0
  283. data/db/migrate/20121024143846_create_discounts.rb +15 -0
  284. data/db/migrate/20121026131454_deleted_at_to_orders_items_actions.rb +7 -0
  285. data/db/migrate/20121026203948_add_initial_price_to_tickets.rb +5 -0
  286. data/db/migrate/20121029183949_change_initial_price_to_cart_price.rb +5 -0
  287. data/db/migrate/20121113144826_migrate_donation_types.rb +41 -0
  288. data/db/migrate/20121115020441_add_salutation_to_people.rb +5 -0
  289. data/db/migrate/20121130004314_add_visibility_to_sections.rb +6 -0
  290. data/db/migrate/20121205184343_add_discount_to_ticket.rb +6 -0
  291. data/db/migrate/20121206212835_add_discount_to_carts_and_items.rb +7 -0
  292. data/db/migrate/20121211193728_add_deleted_at_to_discounts.rb +5 -0
  293. data/db/migrate/20121212022026_add_uuid_to_show_and_event.rb +9 -0
  294. data/db/migrate/20121212023203_set_uuids.rb +11 -0
  295. data/db/migrate/20121217201422_add_minimum_ticket_count_to_discounts.rb +5 -0
  296. data/db/migrate/20121221154152_add_shows_and_sections_to_discounts.rb +5 -0
  297. data/db/migrate/20130103153946_make_shows_and_sections_habtm.rb +19 -0
  298. data/db/migrate/20130108213102_add_original_price_to_items.rb +10 -0
  299. data/db/migrate/20130111211929_convert_discounts_sections_to_array_of_strings.rb +14 -0
  300. data/db/migrate/20130114200128_add_discount_code_to_search.rb +5 -0
  301. data/db/migrate/20130114212408_add_limit_to_discounts.rb +5 -0
  302. data/db/migrate/20130116203331_add_title_to_person.rb +5 -0
  303. data/db/migrate/20130122143845_install_audited.rb +28 -0
  304. data/db/migrate/20130131024955_add_gateway_transactions.rb +13 -0
  305. data/db/migrate/20130301144159_add_receive_daily_sales_report_boolean_to_organizations.rb +5 -0
  306. data/db/migrate/20130306213416_add_subscribed_lists_to_people.rb +5 -0
  307. data/db/migrate/20130308193328_people_arent_dummies.rb +6 -0
  308. data/db/migrate/20130312173340_add_categories_to_events.rb +6 -0
  309. data/db/migrate/20130319110520_add_transaction_id_index.rb +6 -0
  310. data/db/migrate/20130320192827_add_index_to_notes.rb +8 -0
  311. data/db/migrate/20130324173939_add_index_to_import_rows.rb +5 -0
  312. data/db/migrate/20130325190110_add_indexes_to_actions.rb +9 -0
  313. data/db/migrate/20130326173653_add_lifetime_donations_to_people_and_searches.rb +9 -0
  314. data/lib/artfully_ose.rb +5 -1
  315. data/lib/artfully_ose/common_abilities.rb +6 -9
  316. data/lib/artfully_ose/engine.rb +19 -5
  317. data/lib/artfully_ose/version.rb +1 -1
  318. data/lib/email_validator.rb +6 -0
  319. metadata +442 -138
  320. data/MIT-LICENSE +0 -20
  321. data/app/controllers/pages_controller.rb +0 -29
  322. data/app/models/import_person.rb +0 -78
  323. data/app/views/imports/_failed.html.haml +0 -20
  324. data/app/views/imports/_pending.html.haml +0 -35
  325. data/app/views/index/splash.html.erb +0 -160
  326. data/app/views/segments/new.html.haml +0 -20
@@ -0,0 +1,759 @@
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"