deal_redemptions 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +30 -0
  5. data/app/assets/fonts/proximanova-light.eot +0 -0
  6. data/app/assets/fonts/proximanova-light.svg +542 -0
  7. data/app/assets/fonts/proximanova-light.ttf +0 -0
  8. data/app/assets/fonts/proximanova-light.woff +0 -0
  9. data/app/assets/fonts/proximanova-regular.eot +0 -0
  10. data/app/assets/fonts/proximanova-regular.svg +544 -0
  11. data/app/assets/fonts/proximanova-regular.ttf +0 -0
  12. data/app/assets/fonts/proximanova-regular.woff +0 -0
  13. data/app/assets/fonts/ss-glyphs.eot +0 -0
  14. data/app/assets/fonts/ss-glyphs.svg +17 -0
  15. data/app/assets/fonts/ss-glyphs.ttf +0 -0
  16. data/app/assets/fonts/ss-glyphs.woff +0 -0
  17. data/app/assets/images/admin/csv-demo.jpg +0 -0
  18. data/app/assets/images/deal-redemptions-logo.png +0 -0
  19. data/app/assets/javascripts/deal_redemptions/admin.js.coffee +77 -0
  20. data/app/assets/javascripts/deal_redemptions/application.js +17 -0
  21. data/app/assets/javascripts/deal_redemptions/redeem/redeem.js.coffee +49 -0
  22. data/app/assets/javascripts/deal_redemptions/redeem/redemption.js.coffee +41 -0
  23. data/app/assets/javascripts/deal_redemptions/redeem/validator.js.coffee +36 -0
  24. data/app/assets/javascripts/deal_redemptions/welcome.js.coffee +3 -0
  25. data/app/assets/stylesheets/deal_redemptions/admin.css.scss +505 -0
  26. data/app/assets/stylesheets/deal_redemptions/application.css.scss +57 -0
  27. data/app/assets/stylesheets/deal_redemptions/lib.css.scss +29 -0
  28. data/app/assets/stylesheets/deal_redemptions/redeem.css.scss +56 -0
  29. data/app/assets/stylesheets/deal_redemptions/welcome.css.scss +33 -0
  30. data/app/controllers/deal_redemptions/admin/companies_controller.rb +66 -0
  31. data/app/controllers/deal_redemptions/admin/dashboard_controller.rb +12 -0
  32. data/app/controllers/deal_redemptions/admin/import_controller.rb +47 -0
  33. data/app/controllers/deal_redemptions/admin/products_controller.rb +60 -0
  34. data/app/controllers/deal_redemptions/admin/redemptions_controller.rb +50 -0
  35. data/app/controllers/deal_redemptions/admin/sessions_controller.rb +26 -0
  36. data/app/controllers/deal_redemptions/admin/settings_controller.rb +14 -0
  37. data/app/controllers/deal_redemptions/admin/user_controller.rb +53 -0
  38. data/app/controllers/deal_redemptions/application_controller.rb +16 -0
  39. data/app/controllers/deal_redemptions/redeem_controller.rb +87 -0
  40. data/app/controllers/deal_redemptions/welcome_controller.rb +9 -0
  41. data/app/helpers/deal_redemptions/admin_helper.rb +30 -0
  42. data/app/helpers/deal_redemptions/application_helper.rb +8 -0
  43. data/app/helpers/deal_redemptions/redeem_helper.rb +4 -0
  44. data/app/helpers/deal_redemptions/welcome_helper.rb +4 -0
  45. data/app/mailers/deal_redemptions/admin_user_mailer.rb +11 -0
  46. data/app/mailers/deal_redemptions/redemption_mailer.rb +11 -0
  47. data/app/models/deal_redemptions/company.rb +27 -0
  48. data/app/models/deal_redemptions/mailing_list.rb +8 -0
  49. data/app/models/deal_redemptions/product.rb +18 -0
  50. data/app/models/deal_redemptions/redeem_code.rb +30 -0
  51. data/app/models/deal_redemptions/redemption.rb +14 -0
  52. data/app/models/deal_redemptions/redemptions/redeem.rb +21 -0
  53. data/app/models/deal_redemptions/user.rb +40 -0
  54. data/app/views/deal_redemptions/admin/companies/_form.html.haml +25 -0
  55. data/app/views/deal_redemptions/admin/companies/edit.html.haml +19 -0
  56. data/app/views/deal_redemptions/admin/companies/index.html.haml +32 -0
  57. data/app/views/deal_redemptions/admin/companies/new.html.haml +11 -0
  58. data/app/views/deal_redemptions/admin/dashboard/index.html.haml +4 -0
  59. data/app/views/deal_redemptions/admin/import/export_redemptions.csv.erb +1 -0
  60. data/app/views/deal_redemptions/admin/import/new.html.haml +54 -0
  61. data/app/views/deal_redemptions/admin/products/_form.html.haml +16 -0
  62. data/app/views/deal_redemptions/admin/products/edit.html.haml +18 -0
  63. data/app/views/deal_redemptions/admin/products/index.html.haml +26 -0
  64. data/app/views/deal_redemptions/admin/products/new.html.haml +11 -0
  65. data/app/views/deal_redemptions/admin/redemptions/index.html.haml +54 -0
  66. data/app/views/deal_redemptions/admin/redemptions/new.html.erb +5 -0
  67. data/app/views/deal_redemptions/admin/redemptions/show.html.haml +64 -0
  68. data/app/views/deal_redemptions/admin/sessions/new.html.haml +23 -0
  69. data/app/views/deal_redemptions/admin/settings/_new_user_modal.html.haml +38 -0
  70. data/app/views/deal_redemptions/admin/settings/index.html.haml +48 -0
  71. data/app/views/deal_redemptions/admin/shared/_sidebar.html.haml +16 -0
  72. data/app/views/deal_redemptions/admin/shared/_topbar.html.haml +5 -0
  73. data/app/views/deal_redemptions/admin_user_mailer/new_confirmation.html.erb +8 -0
  74. data/app/views/deal_redemptions/redeem/new.html.haml +112 -0
  75. data/app/views/deal_redemptions/redeem/thankyou.html.haml +6 -0
  76. data/app/views/deal_redemptions/redeem/validate_code.jbuilder +1 -0
  77. data/app/views/deal_redemptions/redemption_mailer/confirmation.html.erb +3 -0
  78. data/app/views/deal_redemptions/shared_partials/_powered.html.haml +4 -0
  79. data/app/views/deal_redemptions/welcome/index.html.haml +15 -0
  80. data/app/views/kaminari/_first_page.html.haml +9 -0
  81. data/app/views/kaminari/_gap.html.haml +8 -0
  82. data/app/views/kaminari/_last_page.html.haml +9 -0
  83. data/app/views/kaminari/_next_page.html.haml +9 -0
  84. data/app/views/kaminari/_page.html.haml +10 -0
  85. data/app/views/kaminari/_paginator.html.haml +18 -0
  86. data/app/views/kaminari/_prev_page.html.haml +9 -0
  87. data/app/views/layouts/deal_redemptions/admin/auth.html.erb +17 -0
  88. data/app/views/layouts/deal_redemptions/admin/default.html.erb +50 -0
  89. data/app/views/layouts/deal_redemptions/application.html.erb +16 -0
  90. data/config/config_engine_rake_file.rb +13 -0
  91. data/config/locales/en.yml +37 -0
  92. data/config/routes.rb +38 -0
  93. data/db/migrate/20140709234323_create_deal_redemptions_companies.rb +12 -0
  94. data/db/migrate/20140711183800_add_active_to_deal_redemptions_companies.rb +5 -0
  95. data/db/migrate/20140711222957_create_deal_redemptions_mailing_lists.rb +11 -0
  96. data/db/migrate/20140714165815_create_deal_redemptions_products.rb +10 -0
  97. data/db/migrate/20140714184807_create_deal_redemptions_redemptions.rb +20 -0
  98. data/db/migrate/20140715041757_create_deal_redemptions_redeem_codes.rb +13 -0
  99. data/db/migrate/20140718200319_create_deal_redemptions_users.rb +14 -0
  100. data/db/migrate/20140802010843_add_company_and_remove_transaction_to_redemption.rb +5 -0
  101. data/lib/deal_redemptions.rb +5 -0
  102. data/lib/deal_redemptions/admin/importer.rb +66 -0
  103. data/lib/deal_redemptions/admin_interface_domain.rb +11 -0
  104. data/lib/deal_redemptions/engine.rb +52 -0
  105. data/lib/deal_redemptions/version.rb +3 -0
  106. data/lib/tasks/deal_redemptions_tasks.rake +11 -0
  107. data/spec/controllers/deal_redemptions/admin/companies_controller_spec.rb +120 -0
  108. data/spec/controllers/deal_redemptions/admin/dashboard_controller_spec.rb +17 -0
  109. data/spec/controllers/deal_redemptions/admin/import_controller_spec.rb +32 -0
  110. data/spec/controllers/deal_redemptions/admin/products_controller_spec.rb +136 -0
  111. data/spec/controllers/deal_redemptions/admin/redemptions_controller_spec.rb +81 -0
  112. data/spec/controllers/deal_redemptions/admin/sessions_controller_spec.rb +15 -0
  113. data/spec/controllers/deal_redemptions/admin/settings_controller_spec.rb +28 -0
  114. data/spec/controllers/deal_redemptions/admin/user_controller_spec.rb +62 -0
  115. data/spec/controllers/deal_redemptions/redeem_controller_spec.rb +32 -0
  116. data/spec/controllers/deal_redemptions/welcome_controller_spec.rb +28 -0
  117. data/spec/dummy/README.rdoc +28 -0
  118. data/spec/dummy/Rakefile +6 -0
  119. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  120. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  121. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  122. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  123. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  124. data/spec/dummy/bin/bundle +3 -0
  125. data/spec/dummy/bin/rails +4 -0
  126. data/spec/dummy/bin/rake +4 -0
  127. data/spec/dummy/config.ru +4 -0
  128. data/spec/dummy/config/application.rb +29 -0
  129. data/spec/dummy/config/boot.rb +5 -0
  130. data/spec/dummy/config/database.yml +25 -0
  131. data/spec/dummy/config/environment.rb +5 -0
  132. data/spec/dummy/config/environments/development.rb +37 -0
  133. data/spec/dummy/config/environments/production.rb +82 -0
  134. data/spec/dummy/config/environments/test.rb +39 -0
  135. data/spec/dummy/config/initializers/assets.rb +8 -0
  136. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  137. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  138. data/spec/dummy/config/initializers/deal_redemptions.rb +13 -0
  139. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  140. data/spec/dummy/config/initializers/inflections.rb +16 -0
  141. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  142. data/spec/dummy/config/initializers/session_store.rb +3 -0
  143. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  144. data/spec/dummy/config/locales/en.yml +23 -0
  145. data/spec/dummy/config/routes.rb +4 -0
  146. data/spec/dummy/config/secrets.yml +22 -0
  147. data/spec/dummy/db/development.sqlite3 +0 -0
  148. data/spec/dummy/db/schema.rb +85 -0
  149. data/spec/dummy/db/test.sqlite3 +0 -0
  150. data/spec/dummy/log/development.log +1464 -0
  151. data/spec/dummy/log/test.log +242034 -0
  152. data/spec/dummy/public/404.html +67 -0
  153. data/spec/dummy/public/422.html +67 -0
  154. data/spec/dummy/public/500.html +66 -0
  155. data/spec/dummy/public/favicon.ico +0 -0
  156. data/spec/dummy/tmp/cache/assets/development/sprockets/65dfde5f086fa3aca4c12e3ec1bab0e7 +0 -0
  157. data/spec/dummy/tmp/cache/assets/development/sprockets/d625417a15a40e26da10d62fd34927e1 +0 -0
  158. data/spec/factories/company.rb +21 -0
  159. data/spec/factories/deal_redemption_products.rb +9 -0
  160. data/spec/factories/deal_redemptions_redeem_codes.rb +11 -0
  161. data/spec/factories/deal_redemptions_redemptions.rb +51 -0
  162. data/spec/factories/deal_redemptions_users.rb +19 -0
  163. data/spec/factories/mailing_lists.rb +9 -0
  164. data/spec/mailers/deal_redemptions/admin_user_mailer_spec.rb +24 -0
  165. data/spec/mailers/deal_redemptions/redemption_mailer_spec.rb +24 -0
  166. data/spec/models/deal_redemptions/company_spec.rb +27 -0
  167. data/spec/models/deal_redemptions/mailing_list_spec.rb +14 -0
  168. data/spec/models/deal_redemptions/product_spec.rb +23 -0
  169. data/spec/models/deal_redemptions/redeem_code_spec.rb +57 -0
  170. data/spec/models/deal_redemptions/redemption_spec.rb +23 -0
  171. data/spec/models/deal_redemptions/redemptions/redeem_spec.rb +21 -0
  172. data/spec/models/deal_redemptions/user_spec.rb +39 -0
  173. data/spec/rails_helper.rb +43 -0
  174. data/spec/routing/deal_redemptions/admin/import_routing_spec.rb +21 -0
  175. data/spec/routing/deal_redemptions/admin/redemptions_routing_spec.rb +18 -0
  176. data/spec/routing/deal_redemptions/admin/user_controller_routing_spec.rb +11 -0
  177. data/spec/spec_helper.rb +31 -0
  178. data/spec/tasks/tasks_spec.rb +20 -0
  179. data/spec/views/deal_redemptions/admin/dashboard/index.html.erb_spec.rb +5 -0
  180. data/spec/views/deal_redemptions/admin/import/index.html.erb_spec.rb +5 -0
  181. data/spec/views/deal_redemptions/admin/sessions/index.html.erb_spec.rb +5 -0
  182. data/spec/views/deal_redemptions/admin/settings/index.html.erb_spec.rb +5 -0
  183. data/vendor/assets/javascripts/bootstrap-datepicker.js +474 -0
  184. data/vendor/assets/stylesheets/datepicker.css +182 -0
  185. metadata +485 -0
Binary file
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="512">
7
+ <font-face units-per-em="512" ascent="480" descent="-32" />
8
+ <missing-glyph horiz-adv-x="512" />
9
+ <glyph unicode="&#x20;" d="" horiz-adv-x="256" />
10
+ <glyph unicode="&#xe600;" d="M346.777 89.084c-23.93 0-43.332 19.395-43.332 43.325 0 11.974-128.803 173.952-128.803 173.952s160.176-130.613 172.139-130.613c23.938 0 43.339-19.402 43.339-43.339-0.003-23.93-19.406-43.325-43.343-43.325zM325.015 281.752c0-11.96 9.7-21.662 21.666-21.662v0c11.967 0 21.67 9.699 21.67 21.662v46.563c0 11.967-9.703 21.662-21.67 21.662v0c-11.967 0-21.666-9.696-21.666-21.662v-46.563zM539.641 111.652c11.971 0 21.67 9.696 21.67 21.663v0c0 11.974-9.699 21.673-21.67 21.673h-46.553c-11.971 0-21.666-9.7-21.666-21.673v0c0-11.967 9.696-21.663 21.666-21.663h46.553zM494.364 251.588c8.462 8.466 8.459 22.178 0 30.641v0c-8.466 8.466-22.181 8.469-30.64 0l-32.926-32.923c-8.459-8.463-8.459-22.178 0-30.64v0c8.466-8.462 22.185-8.462 30.644 0l32.923 32.923zM197.922 111.652c11.97 0 21.67 9.696 21.67 21.663v0c0 11.974-9.7 21.673-21.67 21.673h-46.556c-11.967 0-21.666-9.7-21.666-21.673v0c0-11.967 9.7-21.663 21.666-21.663h46.556zM651.48-32c26.713 49.14 41.883 105.459 41.883 165.315 0 191.47-155.214 346.685-346.681 346.685s-346.681-155.214-346.681-346.685c0-59.856 15.177-116.175 41.883-165.315h609.597zM346.681 410.178c152.904 0 276.863-123.959 276.863-276.863 0-33.271-5.885-65.176-16.648-94.733h-520.427c-10.762 29.557-16.648 61.462-16.648 94.733 0.004 152.907 123.956 276.863 276.86 276.863z" horiz-adv-x="694" />
11
+ <glyph unicode="&#xe601;" d="M65.171 273.805c-3.224-8.243-0.018-17.79 7.936-22.214l19.543-10.858c-3.915 14.235-13.786 26.46-27.48 33.072zM485.212 124.038c-3.769-4.471-6.654-9.938-8.286-16.539-3.601-14.555 0.855-26.738 9.864-36.068l18.022 32.427c-8.706 4.841-15.339 11.955-19.599 20.18zM575.639 268.313l-376.869 209.422c-8.674 4.819-19.61 1.695-24.43-6.975l-30.404-54.712c23.557-13.095 32.042-42.801 18.955-66.362-0.954-1.717-2.020-3.327-3.142-4.884l388.173-94.457c10.263-2.536 16.529-12.921 13.989-23.186l-8.6-36.004 29.299 52.728c4.823 8.671 1.699 19.61-6.971 24.43zM461.882 110.305c6.904 27.885 35.103 44.899 62.992 37.998l16.026 64.762c2.54 10.27-3.722 20.654-13.989 23.194l-446.113 110.401c-10.267 2.54-20.647-3.722-23.191-13.989l-16.030-64.766c27.889-6.9 44.898-35.102 37.998-62.991s-35.102-44.895-62.988-37.995l-16.030-64.765c-2.54-10.267 3.723-20.647 13.989-23.19l446.116-110.405c10.267-2.54 20.647 3.723 23.19 13.986l16.026 64.769c-27.885 6.904-44.895 35.106-37.998 62.991z" horiz-adv-x="585" />
12
+ <glyph unicode="&#xe602;" d="M584.795 316.571h-89.459l1.243-3.736c0 0 11.639-35.267-19.714-53.819-39.548-23.406-63.677 15.325-63.677 15.325l-27.663 42.23h-165.054l-27.659-42.23c0 0-24.126-38.732-63.677-15.325-31.352 18.552-19.721 53.819-19.721 53.819l1.246 3.736h-85.317c-13.993 0-25.344-11.347-25.344-25.347 0-13.997 11.351-25.348 25.344-25.348h14.385l35.363-273.66c0-13.37 10.838-24.215 24.215-24.215h410.353c13.374 0 24.215 10.845 24.215 24.215l35.359 273.66h15.564c14 0 25.347 11.354 25.347 25.348-0.004 14-11.351 25.347-25.351 25.347zM199.779 34.031c0-12.37-10.026-22.399-22.399-22.399-12.369 0-22.395 10.029-22.395 22.399v151.331c0 12.373 10.026 22.402 22.395 22.402 12.373 0 22.399-10.029 22.399-22.402v-151.331zM272.474 34.031c0-12.37-10.026-22.399-22.395-22.399-12.373 0-22.398 10.029-22.398 22.399v151.331c0 12.373 10.026 22.402 22.399 22.402 12.37 0 22.395-10.029 22.395-22.402v-151.331zM381.519 34.031c0-12.37-10.026-22.399-22.395-22.399-12.373 0-22.399 10.029-22.399 22.399v151.331c0 12.373 10.026 22.402 22.399 22.402 12.37 0 22.395-10.029 22.395-22.402v-151.331zM454.214 34.031c0-12.37-10.026-22.399-22.395-22.399-12.373 0-22.395 10.029-22.395 22.399v151.331c0 12.373 10.022 22.402 22.395 22.402 12.37 0 22.395-10.029 22.395-22.402v-151.331zM180.835 281.948c-9.218-14.745-28.635-19.222-43.38-10.008v0c-14.745 9.218-19.218 28.635-10.008 43.377l93.698 149.885c9.214 14.745 28.631 19.222 43.376 10.008v0c14.745-9.218 19.218-28.635 10.012-43.377l-93.697-149.885zM425.675 281.948c9.217-14.745 28.635-19.222 43.38-10.008v0c14.741 9.218 19.218 28.635 10.008 43.377l-93.701 149.885c-9.21 14.745-28.632 19.222-43.377 10.008v0c-14.741-9.218-19.218-28.635-10.008-43.377l93.697-149.885z" horiz-adv-x="610" />
13
+ <glyph unicode="&#xe603;" d="M418.298 448.759l-193.542 31.238-193.542-31.238c-16.517-2.34-31.216-13.978-31.216-31.216v-387.086c0-17.235 14.7-27.959 31.216-31.216 0 0 166.228-31.238 193.542-31.238s193.542 31.238 193.542 31.238c19.774 3.258 31.216 13.985 31.216 31.216v387.082c0 17.243-11.445 28.88-31.216 31.22zM407.127 66.688c0-13.985-9.286-22.695-25.33-25.334 0 0-134.88-25.348-157.042-25.348-22.165 0-157.042 25.348-157.042 25.348-13.409 2.639-25.33 11.349-25.33 25.334v314.087c0 13.991 12.896 25.327 25.33 25.327s157.042-41.367 157.042-41.367 141.001 41.367 157.042 41.367 25.33-11.339 25.33-25.327v-314.087zM125.885 232.002c0-5.107-3.659-9.824-9.251-9.255l-43.938 11.566c-3.852 0.772-9.247 4.147-9.247 9.255v75.172c0 5.115 3.18 10.794 9.247 9.255l43.938-11.573c5.975-1.633 9.251-4.14 9.251-9.247v-75.172zM172.772-5.681c0-5.115-3.656-9.816-9.247-9.247l-72.082 11.566c-3.859 0.772-9.255 4.133-9.255 9.247v168.899c0 5.115 3.183 10.787 9.255 9.255l71.954-18.687c5.971-1.625 9.247-4.14 9.247-9.247l0.128-161.786zM203.995 213.245c0-5.1-3.667-9.816-9.255-9.24l-43.938 11.559c-3.856 0.772-9.247 4.147-9.247 9.255v75.175c0 5.115 3.183 10.787 9.247 9.255l43.938-11.573c5.975-1.633 9.255-4.14 9.255-9.247v-75.183zM322.615 232.002c0-5.107 3.659-9.824 9.25-9.255l43.938 11.566c3.852 0.772 9.247 4.147 9.247 9.255v75.172c0 5.115-3.176 10.794-9.247 9.255l-43.938-11.573c-5.968-1.633-9.25-4.14-9.25-9.247v-75.172zM244.516 213.245c0-5.1 3.656-9.816 9.247-9.24l43.938 11.559c3.852 0.772 9.247 4.147 9.247 9.255v75.175c0 5.115-3.18 10.787-9.247 9.255l-43.938-11.573c-5.975-1.633-9.247-4.14-9.247-9.247v-75.183zM322.615 107.034c0-5.108 3.659-9.816 9.25-9.255l43.938 11.573c3.852 0.772 9.247 4.14 9.247 9.255v75.172c0 5.108-3.176 10.787-9.247 9.247l-43.938-11.566c-5.968-1.632-9.25-4.14-9.25-9.255v-75.172zM244.516 88.291c0-5.115 3.656-9.83 9.247-9.255l43.938 11.559c3.852 0.786 9.247 4.154 9.247 9.262v75.175c0 5.108-3.18 10.787-9.247 9.247l-43.938-11.566c-5.975-1.632-9.247-4.14-9.247-9.255v-75.168z" horiz-adv-x="450" />
14
+ <glyph unicode="&#xe604;" d="M515.397 387.451l-92.275 92.549-190.248-190.255 92.275-92.542zM170.635 434.909v-295.637h295.641zM343.719 95.417v-36.043c0-15.603-12.651-28.255-28.252-28.255h-224.101c-15.6 0-28.252 12.651-28.252 28.255v224.101c0 15.603 12.652 28.255 28.252 28.255h36.616v63.119h-99.735c-15.6 0-28.252-12.651-28.252-28.258v-350.339c0-15.603 12.652-28.255 28.252-28.255h350.335c15.607 0 28.259 12.651 28.259 28.255v99.166h-63.123z" horiz-adv-x="516" />
15
+ <glyph unicode="&#xe605;" d="M485.787 271.171h-47.019c-4.447 17.289-11.324 33.594-20.169 48.586l33.714 33.711c10.236 10.236 10.232 26.831 0 37.074l-29.654 29.651c-10.236 10.236-26.832 10.236-37.067 0l-33.679-33.686c-15.035 8.896-31.393 15.796-48.736 20.255v47.026c0 14.47-11.736 26.206-26.213 26.206h-41.938c-14.477 0-26.213-11.736-26.213-26.206v-47.026c-17.314-4.459-33.643-11.338-48.661-20.215l-34.219 34.219c-10.236 10.236-26.831 10.236-37.067 0l-29.648-29.647c-10.239-10.243-10.236-26.832 0-37.067l34.22-34.22c-8.87-15.021-15.757-31.343-20.212-48.664h-47.022c-14.477 0-26.213-11.736-26.213-26.206v-41.942c0-14.47 11.736-26.206 26.213-26.206h47.022c4.462-17.339 11.362-33.7 20.255-48.732l-33.121-33.121c-10.236-10.236-10.239-26.832 0-37.067l29.651-29.651c10.236-10.236 26.835-10.236 37.067 0l33.153 33.149c14.996-8.846 31.297-15.721 48.583-20.166v-47.026c0-14.477 11.736-26.206 26.213-26.206h41.934c14.474 0 26.213 11.729 26.213 26.206v47.026c17.314 4.451 33.64 11.337 48.661 20.215l33.181-33.185c10.236-10.236 26.832-10.243 37.067 0l29.654 29.651c10.232 10.236 10.232 26.832 0 37.067l-33.181 33.185c8.87 15.021 15.757 31.343 20.215 48.657h47.019c14.477 0 26.209 11.736 26.209 26.206v41.941c-0.003 14.47-11.74 26.206-26.213 26.206zM255.996 145.368c-43.428 0-78.635 35.204-78.635 78.625 0 43.428 35.204 78.632 78.635 78.632 43.428 0 78.632-35.204 78.632-78.632 0-43.421-35.204-78.625-78.632-78.625z" />
16
+ <glyph unicode="&#xe606;" d="M289.084 480c-140.752 0-254.851-114.103-254.851-254.847 0-140.756 114.103-254.855 254.851-254.855s254.851 114.099 254.851 254.855c0 140.745-114.103 254.847-254.851 254.847zM289.084 18.98c-113.865 0-206.168 92.305-206.168 206.172 0 113.861 92.305 206.165 206.168 206.165s206.165-92.305 206.165-206.165c0-113.868-92.305-206.172-206.165-206.172zM190.157 279.522c0 15.575 2.337 29.74 7.010 42.487s11.474 23.644 20.393 32.713c8.92 9.062 19.682 16.076 32.291 21.030 12.598 4.954 26.692 7.437 42.274 7.437 13.024 0 25.135-1.91 36.327-5.733 11.185-3.824 20.959-9.346 29.317-16.57 8.351-7.223 14.938-16.221 19.757-26.981 4.815-10.766 7.224-22.943 7.224-36.537 0-9.92-1.060-18.48-3.187-25.707-2.123-7.224-4.958-13.454-8.497-18.697-3.546-5.246-7.579-9.916-12.11-14.017-4.534-4.112-9.070-8.148-13.597-12.11-5.385-4.531-10.342-8.923-14.87-13.17-4.534-4.247-8.497-8.995-11.897-14.233-3.4-5.246-6.022-11.406-7.86-18.48-1.846-7.084-2.76-15.72-2.76-25.917h-45.887c0 12.459 0.637 23.011 1.913 31.65 1.274 8.639 3.325 16.214 6.16 22.733 2.827 6.512 6.298 12.245 10.41 17.207 4.104 4.954 8.988 9.841 14.661 14.656 4.527 3.965 8.849 7.647 12.96 11.047 4.101 3.4 7.786 7.153 11.047 11.26 3.255 4.101 5.801 8.707 7.647 13.806 1.839 5.1 2.76 11.189 2.76 18.274 0 8.497-1.486 15.784-4.46 21.877-2.974 6.089-6.587 10.976-10.834 14.66-4.247 3.678-8.781 6.374-13.597 8.074-4.819 1.7-9.070 2.55-12.743 2.55-17.566 0-30.526-5.733-38.877-17.207-8.358-11.474-12.534-26.841-12.534-46.101h-48.441zM257.711 125.717h56.934v-53.111h-56.934v53.111z" horiz-adv-x="562" />
17
+ </font></defs></svg>
Binary file
Binary file
@@ -0,0 +1,77 @@
1
+ # JS File to handle admin interface
2
+
3
+ class Validator
4
+ email_address: (email) ->
5
+ regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/
6
+ regex.test email
7
+
8
+ form: (options) ->
9
+ options = options || {}
10
+ count = 0
11
+ self = @
12
+
13
+ $("#{options.form} input[required]").each(() ->
14
+ if @.value != ''
15
+ $(@).parent().removeClass 'has-error'
16
+ else
17
+ $(@).parent().addClass 'has-error'
18
+ count++
19
+
20
+ if $(@).prop('type') == 'email'
21
+ if self.email_address(@.value)
22
+ $(@).parent().removeClass 'has-error'
23
+ else
24
+ $(@).parent().addClass 'has-error'
25
+ count++
26
+ )
27
+
28
+ if count == 0 then true else false
29
+
30
+ class Navigation
31
+ mobile: () ->
32
+ $('section#mobile-navigation select').bind 'change', () ->
33
+ window.location.href = @.value
34
+
35
+
36
+ $(document).ready ->
37
+ navigation = new Navigation
38
+
39
+ # Responsive mobile navigation
40
+ navigation.mobile()
41
+
42
+ $('i.csv-tip').tooltip({
43
+ container: 'body'
44
+ html: true
45
+ placement: 'right'
46
+ trigger: 'hover'
47
+ template: '<img src="/assets/admin/csv-demo.jpg" alt="" />'
48
+ viewport: 'col-md-4'
49
+ })
50
+
51
+ nowTemp = new Date()
52
+ now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0)
53
+
54
+ checkin = $('input#exportStartDate').datepicker({
55
+ format: 'yyyy-mm-dd'
56
+ onRender: (date) ->
57
+ return date.valueOf() < now.valueOf() ? 'disabled' : ''
58
+
59
+ }).on('changeDate', (ev) ->
60
+ if ev.date.valueOf() > checkout.date.valueOf()
61
+ newDate = new Date(ev.date)
62
+ newDate.setDate(newDate.getDate() + 1)
63
+ checkout.setValue(newDate)
64
+
65
+ checkin.hide()
66
+
67
+ $('input#exportEndDate').focus()
68
+ ).data('datepicker')
69
+
70
+ checkout = $('#exportEndDate').datepicker({
71
+ format: 'yyyy-mm-dd'
72
+ onRender: (date) ->
73
+ return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : ''
74
+
75
+ }).on('changeDate', (ev) ->
76
+ checkout.hide()
77
+ ).data('datepicker')
@@ -0,0 +1,17 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file.
9
+ //
10
+ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require jquery
14
+ //= require bootstrap
15
+ //= require bootstrap-datepicker
16
+ //= stub deal_redemptions/admin
17
+ //= require_tree .
@@ -0,0 +1,49 @@
1
+ # Place all the behaviors and hooks related to the matching controller here.
2
+ # All this logic will automatically be available in application.js.
3
+
4
+ # Add duplicate detection on array prototype
5
+ Array.prototype.duplicate_values = () ->
6
+ sorted = this.sort()
7
+
8
+ for i, index in sorted
9
+ if sorted[index] == sorted[index - 1] || sorted[index] == sorted[index + 1]
10
+ return true
11
+
12
+ return false
13
+
14
+ $(document).ready () ->
15
+ # Instantiate redemption class
16
+ redemption = new Redemption
17
+ validation = new Validator
18
+
19
+ # Add additional redemption codes
20
+ $('.add-button').bind 'click', () ->
21
+ redemption.add_redeem_code()
22
+ false
23
+
24
+ # On change event, validate current code fields
25
+ $(document).on 'change', "input[name^='redeem_codes[]']", () ->
26
+ self = @
27
+ redemption.search_for_duplicate_entries("input[name^='redeem_codes[]']", (response) ->
28
+ if response
29
+ redemption.display_code_message("Please provide unique redemption codes.")
30
+ else
31
+ if self.value != ''
32
+ validation.validate_code(self.value, (response) ->
33
+ if response.status == true
34
+ $(self).parent().removeClass('has-error').addClass('has-success')
35
+ else
36
+ $(self).parent().addClass('has-error')
37
+ redemption.display_code_message("Please provide valid redemption code(s).")
38
+ )
39
+ )
40
+
41
+ # Form submission
42
+ $("button[type='submit']").bind 'click', () ->
43
+ validation.form((data) ->
44
+ if data == 0
45
+ return true
46
+ else
47
+ redemption.display_code_message('Please fill out all required fields.')
48
+ return false
49
+ )
@@ -0,0 +1,41 @@
1
+ root = exports ? this
2
+
3
+ class root.Redemption
4
+ constructor: (@max) ->
5
+ @number = 0
6
+ @max = @max || 9
7
+
8
+ add_redeem_code: () ->
9
+ if @number < @max
10
+ @number++
11
+ $('.row#redemption_codes').append "<div class=\"col-md-6\"><div class=\"form-group\"><label for=\"redeem_codes[]\">Voucher Code #{@number + 1}</label><input class=\"form-control\" id=\"redeem_codes_#{@number}_code\" name=\"redeem_codes[]\" type=\"text\"></div></div>"
12
+
13
+ # Search for duplicate codes in the input form
14
+ get_inputs_array: (inputs) ->
15
+ inputArray = []
16
+
17
+ $.each($(inputs), (key, input) ->
18
+ if input.value != ''
19
+ inputArray.push input.value
20
+ )
21
+
22
+ inputArray
23
+
24
+ search_for_duplicate_entries: (inputs, callback) ->
25
+ inputs = @.get_inputs_array(inputs)
26
+
27
+ if typeof callback == 'function'
28
+ # Find matching values in array if present and return with callback
29
+ callback inputs.duplicate_values()
30
+
31
+ get_company_from_uri: () ->
32
+ pathArray = window.location.pathname.split('/')
33
+ pathArray[2]
34
+
35
+ display_code_message: (message, timing) ->
36
+ timing = timing || 8000
37
+
38
+ container = $('.code-alert')
39
+ container.html message
40
+ container.slideDown()
41
+ container.delay(timing).slideUp()
@@ -0,0 +1,36 @@
1
+ root = exports ? this
2
+
3
+ class root.Validator extends Redemption
4
+ email_address: (email) ->
5
+ emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/
6
+
7
+ if emailReg.test email
8
+ return true
9
+
10
+ return false
11
+
12
+ form: (callback) ->
13
+ self = @
14
+ count = 0
15
+
16
+ $.each($("form[name='redemptionForm'] input"), (key, value) ->
17
+ if value.value == '' && $(value).prop 'required'
18
+ count++
19
+
20
+ if value.type == 'email' && count == 0
21
+ if !self.email_address(value.value)
22
+ self.display_code_message('Please provide a valid email address.')
23
+ )
24
+
25
+ # If all required fields are met
26
+ # return callback function
27
+ if typeof callback == 'function'
28
+ callback(count)
29
+
30
+ validate_code: (code, callback) ->
31
+ $.getJSON("/validate/code/#{@.get_company_from_uri()}/#{code}", (response) ->
32
+ if typeof callback == 'function'
33
+ callback response
34
+ ).error(() ->
35
+ false
36
+ )
@@ -0,0 +1,3 @@
1
+ # Place all the behaviors and hooks related to the matching controller here.
2
+ # All this logic will automatically be available in application.js.
3
+
@@ -0,0 +1,505 @@
1
+ @import "lib.css.scss";
2
+ // Stylesheet form deal redemptions admin interface
3
+
4
+ @font-face {
5
+ font-family: 'ss-glyphs';
6
+ src:url('/assets/ss-glyphs.eot?k0r2ye');
7
+ src:url('/assets/ss-glyphs.eot?#iefixk0r2ye') format('embedded-opentype'),
8
+ url('/assets/ss-glyphs.woff?k0r2ye') format('woff'),
9
+ url('/assets/ss-glyphs.ttf?k0r2ye') format('truetype'),
10
+ url('/assets/ss-glyphs.svg?k0r2ye#ss-glyphs') format('svg');
11
+ font-weight: normal;
12
+ font-style: normal;
13
+ }
14
+
15
+ html, body {
16
+ color: #444;
17
+ font-family: "ProximaNovaLight", "Helvetica Neue", "Helvetica", "sans-serif";
18
+ margin: 0;
19
+ padding: 0;
20
+ display: initial;
21
+
22
+ .login {
23
+ background: #444;
24
+ color: #FFF;
25
+ }
26
+ }
27
+
28
+ // ===============================================================
29
+ // 1.0 Login
30
+ // ===============================================================
31
+
32
+ // Login form
33
+ .login-heading, .login-subheading {
34
+ text-align: center;
35
+ text-shadow: 0 0 4px #000;
36
+
37
+ h1 {
38
+ padding: 30px 0 20px 0;
39
+ font-size: 30px;
40
+ }
41
+
42
+ h4 {
43
+ padding: 0 0 20px 0;
44
+ }
45
+ }
46
+
47
+ .login-subheading {
48
+ font-family: 'ProximaNovaRegular';
49
+ font-size: 12px;
50
+ }
51
+
52
+ .login-container {
53
+ max-width: 340px;
54
+ margin: auto;
55
+
56
+ .login-form {
57
+ background: white;
58
+ -webkit-border-radius: 10px;
59
+ -moz-border-radius: 10px;
60
+ -o-border-radius: 10px;
61
+ border-radius: 10px;
62
+ box-shadow: 0 0 8px #000;
63
+ overflow: hidden;
64
+
65
+ form {
66
+ .form-input {
67
+ padding: 10px;
68
+ }
69
+
70
+ input[type='text'], input[type='password'] {
71
+ color: #888;
72
+ width: 100%;
73
+ padding: 4%;
74
+ border: none;
75
+ outline: none;
76
+
77
+ &:-webkit-autofill {
78
+ -webkit-box-shadow: 0 0 0 50px white inset; /* Change the color to your own background color */
79
+ -webkit-text-fill-color: #888;
80
+ }
81
+
82
+ &:-webkit-autofill:focus {
83
+ -webkit-box-shadow: 0 0 0 50px white inset;
84
+ -webkit-text-fill-color: #888;
85
+ }
86
+ }
87
+
88
+ input[type='submit'] {
89
+ background: #059fe6;
90
+ width: 100%;
91
+ font-size: 18px;
92
+ padding: 20px;
93
+ border: none;
94
+ @include transform(background 0.3s linear);
95
+
96
+ &:hover {
97
+ background: #0081bc;
98
+ }
99
+ }
100
+
101
+ hr {
102
+ margin: 0;
103
+ }
104
+ }
105
+ }
106
+ }
107
+
108
+
109
+ // ===============================================================
110
+ // 2.0 Basic Structure
111
+ // ===============================================================
112
+ // Sidebar/Navigation
113
+ .sidebar {
114
+ position: fixed;
115
+ top: 0;
116
+ left: 0;
117
+ bottom: 0;
118
+ width: 200px;
119
+ background: #444;
120
+ z-index: 3;
121
+
122
+ .account-header {
123
+ background: #333;
124
+ height: 60px;
125
+ border-bottom: 1px #696969 solid;
126
+
127
+ .account-logo {
128
+ background: #FFF;
129
+ width: 60px;
130
+ height: 60px;
131
+ padding: 10px;
132
+ overflow: hidden;
133
+
134
+ img {
135
+ max-width: 30px;
136
+ }
137
+ }
138
+
139
+ p {
140
+ &.site-name {
141
+ color: #FFF;
142
+ font-size: 14px;
143
+ padding: 20px 10px;
144
+ }
145
+ }
146
+ }
147
+
148
+ nav {
149
+ ul {
150
+ padding: 0;
151
+ margin: 0;
152
+
153
+ li {
154
+ list-style: none;
155
+ height: 40px;
156
+
157
+ a:link, a:visited {
158
+ float: left;
159
+ width: 100%;
160
+ height: 40px;
161
+ color: #CCC;
162
+ text-decoration: none;
163
+ line-height: 25px;
164
+ padding: 8px 20px;
165
+ @include transform(background 0.2s linear);
166
+
167
+ &:hover {
168
+ background: #333;
169
+ }
170
+
171
+ &.active {
172
+ color: #FFF;
173
+ background: #333;
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ .topbar {
182
+ position: fixed;
183
+ top: 0;
184
+ left: 0;
185
+ background: #f0f0f0;
186
+ background: rgba(240,240,240,0.8);
187
+ width: 100%;
188
+ height: 60px;
189
+ border-bottom: 1px #CCC solid;
190
+ padding-left: 220px;
191
+ z-index: 2;
192
+
193
+ h1 {
194
+ float: left;
195
+ font-size: 24px;
196
+ margin: 16px 0;
197
+
198
+ &.dashboard {
199
+ &:before {
200
+ content: '\e600'
201
+ }
202
+ }
203
+ }
204
+
205
+ .pull-right {
206
+ padding: 13px;
207
+ }
208
+ }
209
+
210
+ // Glyph icons
211
+ i {
212
+ width: 30px;
213
+ font-family: "ss-glyphs";
214
+ font-style: normal;
215
+ font-weight: normal;
216
+ font-variant: normal;
217
+ text-transform: none;
218
+ text-align: center;
219
+ line-height: 1;
220
+ padding-right: 10px;
221
+
222
+ &.dashboard {
223
+ &:before {
224
+ content: '\e600'
225
+ }
226
+ }
227
+
228
+ &.redemptions {
229
+ &:before {
230
+ content: '\e601'
231
+ }
232
+ }
233
+
234
+ &.products {
235
+ &:before {
236
+ content: '\e602'
237
+ }
238
+ }
239
+
240
+ &.companies {
241
+ &:before {
242
+ content: '\e603'
243
+ }
244
+ }
245
+
246
+ &.import {
247
+ &:before {
248
+ content: '\e604'
249
+ }
250
+ }
251
+
252
+ &.settings {
253
+ &:before {
254
+ content: '\e605'
255
+ }
256
+ }
257
+
258
+ &.question {
259
+ &:before {
260
+ content: '\e606'
261
+ }
262
+ }
263
+ }
264
+
265
+ // Main content
266
+ .content-wrapper {
267
+ padding: 70px 20px 20px 220px;
268
+ }
269
+
270
+ label, input, textarea, select {
271
+ font-family: "Helvetica Neue", "Helvetica";
272
+ }
273
+
274
+ label {
275
+ font-size: 14px;
276
+ }
277
+
278
+ .remove-btn {
279
+ background: none;
280
+ color: red;
281
+ border: none;
282
+ padding: 0;
283
+
284
+ &:hover {
285
+ text-decoration: underline;
286
+ }
287
+ }
288
+
289
+ // Bootstrap tooltip
290
+ .tooltip {
291
+ z-index: 2000;
292
+ }
293
+
294
+ // ===============================================================
295
+ // 2.1 Page Structure
296
+ // ===============================================================
297
+ table.table {
298
+ &.default {
299
+ thead {
300
+ tr {
301
+ td {
302
+ padding: 10px 20px;
303
+ font: 14px "ProximaNovaRegular";
304
+ }
305
+ }
306
+ }
307
+
308
+ tbody {
309
+ tr {
310
+ @include transform(background 0.2s linear);
311
+
312
+ &:nth-last-child(1) {
313
+ border-bottom: 1px #DDD solid;
314
+ }
315
+
316
+ &:hover {
317
+ background: #f8f8f8;
318
+ }
319
+
320
+ td {
321
+ font-size: 14px;
322
+ padding: 16px;
323
+ }
324
+ }
325
+ }
326
+ }
327
+ }
328
+
329
+ .row, .row-fluid {
330
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6,
331
+ .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
332
+ &.description-wrapper {
333
+ border: 1px #e0e0e0 solid;
334
+ @include border-radius(6px);
335
+ margin-bottom: 10px;
336
+
337
+ header {
338
+ background: #f0f0f0;
339
+ color: #428bca;
340
+ font: 16px "ProximaNovaRegular";
341
+ padding: 10px;
342
+ margin: 0;
343
+ border-bottom: 1px #e0e0e0 solid;
344
+ @include border-top-left-radius(6px);
345
+ @include border-top-right-radius(6px);
346
+ }
347
+
348
+ .row, .row-fluid {
349
+ &.redemption-description {
350
+ padding: 10px 0;
351
+
352
+ strong {
353
+ &.title {
354
+ float: left;
355
+ width: 100%;
356
+ font-family: "ProximaNovaRegular";
357
+ font-style: bold;
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ }
364
+ }
365
+
366
+ // Padding
367
+ .padding-right-5 {
368
+ padding-right: 5px;
369
+ }
370
+
371
+ .padding-right-10 {
372
+ padding-right: 10px;
373
+ }
374
+
375
+ .padding-right-15 {
376
+ padding-right: 15px;
377
+ }
378
+
379
+ .padding-left-5 {
380
+ padding-left: 5px;
381
+ }
382
+
383
+ .padding-left-10 {
384
+ padding-left: 10px;
385
+ }
386
+
387
+ .padding-left-15 {
388
+ padding-left: 15px;
389
+ }
390
+
391
+ // ===============================================================
392
+ // 2.2 Mobile Components
393
+ // ===============================================================
394
+ section#mobile-navigation {
395
+ display: none;
396
+
397
+ select {
398
+ width: 100%;
399
+ }
400
+ }
401
+
402
+ // ===============================================================
403
+ // 3.0 Products
404
+ // ===============================================================
405
+ .no-current-products {
406
+ text-align: center;
407
+ font-size: 24px;
408
+ margin-top: 80px;
409
+
410
+ i {
411
+ &.products {
412
+ &:before {
413
+ width: 100%;
414
+ font-size: 140px;
415
+ margin-bottom: 20px;
416
+ }
417
+ }
418
+ }
419
+ }
420
+
421
+ // ===============================================================
422
+ // 4.0 Redemptions
423
+ // ===============================================================
424
+ form {
425
+ &.search-redemptions {
426
+ width: 100%;
427
+ }
428
+ }
429
+
430
+ .no-current-redemptions {
431
+ text-align: center;
432
+ font-size: 24px;
433
+ margin-top: 80px;
434
+
435
+ i {
436
+ &.redemptions {
437
+ &:before {
438
+ width: 100%;
439
+ font-size: 140px;
440
+ margin-bottom: 20px;
441
+ }
442
+ }
443
+ }
444
+ }
445
+
446
+ // ===============================================================
447
+ // 5.0 Responsive Design
448
+ // ===============================================================
449
+ // iPhone
450
+ @media (max-width: 480px) {
451
+ table {
452
+ &#redemptions {
453
+ tr {
454
+ td {
455
+ &:nth-child(1), &:nth-child(4), &:nth-child(5) {
456
+ display: none;
457
+ }
458
+ }
459
+ }
460
+ }
461
+ }
462
+ }
463
+
464
+ @media (max-width: 840px) {
465
+ .topbar {
466
+ padding-left: 20px;
467
+ }
468
+
469
+ section {
470
+ &.sidebar {
471
+ display: none;
472
+ }
473
+
474
+ &.content-wrapper {
475
+ padding-left: 20px;
476
+ }
477
+
478
+ &#mobile-navigation {
479
+ display: block;
480
+ }
481
+ }
482
+ }
483
+
484
+ @media (max-width: 990px) {
485
+ form {
486
+ &.search-redemptions {
487
+ button[type=submit] {
488
+ width: 100%;
489
+ }
490
+
491
+ .col-md-8 {
492
+ padding-right: 15px !important;
493
+ }
494
+
495
+ .col-md-4 {
496
+ padding-left: 15px !important;
497
+ }
498
+ }
499
+ }
500
+
501
+ // Redemptions
502
+ .redemption-right-col {
503
+ padding: 0;
504
+ }
505
+ }