shoppy 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +34 -0
  5. data/app/.DS_Store +0 -0
  6. data/app/api/apihelpers/api_auth.rb +50 -0
  7. data/app/api/base.rb +7 -0
  8. data/app/api/v1/auth.rb +57 -0
  9. data/app/api/v1/test.rb +15 -0
  10. data/app/api/v1/users.rb +50 -0
  11. data/app/api/v1/v1_api.rb +15 -0
  12. data/app/api/vo/user_vo.rb +7 -0
  13. data/app/assets/fonts/.DS_Store +0 -0
  14. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  15. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  16. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  17. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  18. data/app/assets/images/.DS_Store +0 -0
  19. data/app/assets/images/Sorting icons.psd +0 -0
  20. data/app/assets/images/back_disabled.png +0 -0
  21. data/app/assets/images/back_enabled.png +0 -0
  22. data/app/assets/images/back_enabled_hover.png +0 -0
  23. data/app/assets/images/favicon.ico +0 -0
  24. data/app/assets/images/forward_disabled.png +0 -0
  25. data/app/assets/images/forward_enabled.png +0 -0
  26. data/app/assets/images/forward_enabled_hover.png +0 -0
  27. data/app/assets/images/shoppy.svg +34 -0
  28. data/app/assets/images/sort_asc.png +0 -0
  29. data/app/assets/images/sort_asc_disabled.png +0 -0
  30. data/app/assets/images/sort_both.png +0 -0
  31. data/app/assets/images/sort_desc.png +0 -0
  32. data/app/assets/images/sort_desc_disabled.png +0 -0
  33. data/app/assets/images/spritemap.png +0 -0
  34. data/app/assets/images/spritemap@2x.png +0 -0
  35. data/app/assets/javascripts/.DS_Store +0 -0
  36. data/app/assets/javascripts/bootstrap.js +2114 -0
  37. data/app/assets/javascripts/bootstrap.min.js +6 -0
  38. data/app/assets/javascripts/jasny-bootstrap.min.js +6 -0
  39. data/app/assets/javascripts/jquery.dataTables.min.js +155 -0
  40. data/app/assets/javascripts/main.js +29 -0
  41. data/app/assets/javascripts/shoppy.js +31 -0
  42. data/app/assets/stylesheets/.DS_Store +0 -0
  43. data/app/assets/stylesheets/bootstrap.css +6203 -0
  44. data/app/assets/stylesheets/jasny-bootstrap.css +621 -0
  45. data/app/assets/stylesheets/jquery.dataTables.min.css +1 -0
  46. data/app/assets/stylesheets/jquery.dataTables_themeroller.css +330 -0
  47. data/app/assets/stylesheets/shoppy.css +23 -0
  48. data/app/assets/stylesheets/style.sass +79 -0
  49. data/app/controllers/.DS_Store +0 -0
  50. data/app/controllers/shoppy/accounts_controller.rb +102 -0
  51. data/app/controllers/shoppy/application_controller.rb +23 -0
  52. data/app/controllers/shoppy/brands_controller.rb +60 -0
  53. data/app/controllers/shoppy/cart_controller.rb +46 -0
  54. data/app/controllers/shoppy/categories_controller.rb +72 -0
  55. data/app/controllers/shoppy/concerns/.keep +0 -0
  56. data/app/controllers/shoppy/customer_addresses_controller.rb +90 -0
  57. data/app/controllers/shoppy/home_controller.rb +9 -0
  58. data/app/controllers/shoppy/inventories_controller.rb +62 -0
  59. data/app/controllers/shoppy/locations_controller.rb +80 -0
  60. data/app/controllers/shoppy/logs_controller.rb +9 -0
  61. data/app/controllers/shoppy/manufacturers_controller.rb +77 -0
  62. data/app/controllers/shoppy/options_controller.rb +63 -0
  63. data/app/controllers/shoppy/orders_controller.rb +130 -0
  64. data/app/controllers/shoppy/products_controller.rb +98 -0
  65. data/app/controllers/shoppy/reviews_controller.rb +70 -0
  66. data/app/controllers/shoppy/sessions_controller.rb +5 -0
  67. data/app/controllers/shoppy/settings_controller.rb +26 -0
  68. data/app/controllers/shoppy/shipments_controller.rb +125 -0
  69. data/app/controllers/shoppy/variants_controller.rb +104 -0
  70. data/app/helpers/shoppy/accounts_helper.rb +5 -0
  71. data/app/helpers/shoppy/application_helper.rb +19 -0
  72. data/app/helpers/shoppy/brands_helper.rb +4 -0
  73. data/app/helpers/shoppy/cart_helper.rb +66 -0
  74. data/app/helpers/shoppy/categories_helper.rb +4 -0
  75. data/app/helpers/shoppy/customer_addresses_helper.rb +4 -0
  76. data/app/helpers/shoppy/home_helper.rb +5 -0
  77. data/app/helpers/shoppy/inventories_helper.rb +53 -0
  78. data/app/helpers/shoppy/locations_helper.rb +4 -0
  79. data/app/helpers/shoppy/logs_helper.rb +4 -0
  80. data/app/helpers/shoppy/manufacturers_helper.rb +4 -0
  81. data/app/helpers/shoppy/options_helper.rb +43 -0
  82. data/app/helpers/shoppy/orders_helper.rb +61 -0
  83. data/app/helpers/shoppy/products_helper.rb +65 -0
  84. data/app/helpers/shoppy/reviews_helper.rb +4 -0
  85. data/app/helpers/shoppy/settings_helper.rb +5 -0
  86. data/app/helpers/shoppy/shipments_helper.rb +43 -0
  87. data/app/helpers/shoppy/variants_helper.rb +4 -0
  88. data/app/models/shoppy/.DS_Store +0 -0
  89. data/app/models/shoppy/admin.rb +5 -0
  90. data/app/models/shoppy/brand.rb +23 -0
  91. data/app/models/shoppy/cart_item.rb +13 -0
  92. data/app/models/shoppy/category.rb +50 -0
  93. data/app/models/shoppy/concerns/.DS_Store +0 -0
  94. data/app/models/shoppy/concerns/models/api_token_authenticatable.rb +36 -0
  95. data/app/models/shoppy/concerns/models/hashable.rb +60 -0
  96. data/app/models/shoppy/concerns/models/optionable.rb +60 -0
  97. data/app/models/shoppy/concerns/models/promotional.rb +36 -0
  98. data/app/models/shoppy/concerns/models/taggable.rb +44 -0
  99. data/app/models/shoppy/customer.rb +10 -0
  100. data/app/models/shoppy/customer_address.rb +44 -0
  101. data/app/models/shoppy/inventory.rb +18 -0
  102. data/app/models/shoppy/log.rb +8 -0
  103. data/app/models/shoppy/manufacturer.rb +35 -0
  104. data/app/models/shoppy/options_group.rb +57 -0
  105. data/app/models/shoppy/options_item.rb +18 -0
  106. data/app/models/shoppy/order.rb +15 -0
  107. data/app/models/shoppy/order_line.rb +16 -0
  108. data/app/models/shoppy/payment_method.rb +19 -0
  109. data/app/models/shoppy/product.rb +43 -0
  110. data/app/models/shoppy/review.rb +12 -0
  111. data/app/models/shoppy/setting.rb +11 -0
  112. data/app/models/shoppy/shipment.rb +11 -0
  113. data/app/models/shoppy/stock_location.rb +47 -0
  114. data/app/models/shoppy/user.rb +37 -0
  115. data/app/models/shoppy/variant.rb +48 -0
  116. data/app/views/.DS_Store +0 -0
  117. data/app/views/accounts/admins.html.erb +104 -0
  118. data/app/views/accounts/customers.html.erb +106 -0
  119. data/app/views/accounts/show.html.erb +50 -0
  120. data/app/views/brands/index.html.erb +85 -0
  121. data/app/views/brands/show.html.erb +31 -0
  122. data/app/views/cart/index.html.erb +52 -0
  123. data/app/views/categories/index.html.erb +84 -0
  124. data/app/views/categories/show.html.erb +29 -0
  125. data/app/views/customer_addresses/index.html.erb +112 -0
  126. data/app/views/customer_addresses/show.html.erb +50 -0
  127. data/app/views/devise/confirmations/new.html.erb +12 -0
  128. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  129. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  130. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  131. data/app/views/devise/passwords/edit.html.erb +16 -0
  132. data/app/views/devise/passwords/new.html.erb +12 -0
  133. data/app/views/devise/registrations/edit.html.erb +29 -0
  134. data/app/views/devise/registrations/new.html.erb +23 -0
  135. data/app/views/devise/sessions/new.html.erb +33 -0
  136. data/app/views/devise/shared/_links.erb +25 -0
  137. data/app/views/devise/unlocks/new.html.erb +12 -0
  138. data/app/views/home/index.html.erb +4 -0
  139. data/app/views/inventories/.DS_Store +0 -0
  140. data/app/views/inventories/index.html.erb +119 -0
  141. data/app/views/layouts/.DS_Store +0 -0
  142. data/app/views/layouts/shoppy.html.erb +27 -0
  143. data/app/views/locations/index.html.erb +120 -0
  144. data/app/views/locations/show.html.erb +58 -0
  145. data/app/views/logs/index.html.erb +49 -0
  146. data/app/views/manufacturers/index.html.erb +119 -0
  147. data/app/views/manufacturers/show.html.erb +62 -0
  148. data/app/views/options/index.html.erb +90 -0
  149. data/app/views/options/show.html.erb +32 -0
  150. data/app/views/orders/index.html.erb +174 -0
  151. data/app/views/orders/show.html.erb +74 -0
  152. data/app/views/products/index.html.erb +102 -0
  153. data/app/views/products/show.html.erb +112 -0
  154. data/app/views/reviews/index.html.erb +58 -0
  155. data/app/views/reviews/show.html.erb +46 -0
  156. data/app/views/settings/show.html.erb +50 -0
  157. data/app/views/shared/_custom_file_input.html.erb +12 -0
  158. data/app/views/shared/_flashes.html.erb +21 -0
  159. data/app/views/shared/_navigation.html.erb +66 -0
  160. data/app/views/shipments/index.html.erb +97 -0
  161. data/app/views/shipments/show.html.erb +84 -0
  162. data/app/views/variants/index.html.erb +119 -0
  163. data/app/views/variants/show.html.erb +114 -0
  164. data/bin/shoppy +183 -0
  165. data/config/routes.rb +124 -0
  166. data/db/.DS_Store +0 -0
  167. data/db/migrate/001__setup_hstore.rb +9 -0
  168. data/db/migrate/002__create_logs.rb +11 -0
  169. data/db/migrate/003__devise_create_users.rb +49 -0
  170. data/db/migrate/004__add_personal_info_to_user.rb +8 -0
  171. data/db/migrate/005__create_user_addresses.rb +16 -0
  172. data/db/migrate/006__create_categories.rb +11 -0
  173. data/db/migrate/007__create_brands.rb +10 -0
  174. data/db/migrate/008__create_manufacturers.rb +19 -0
  175. data/db/migrate/009__create_options_groups.rb +10 -0
  176. data/db/migrate/010__create_options_items.rb +10 -0
  177. data/db/migrate/011__create_products.rb +14 -0
  178. data/db/migrate/012__create_product_options_joint_table.rb +9 -0
  179. data/db/migrate/013__create_stock_locations.rb +18 -0
  180. data/db/migrate/014__create_variants.rb +12 -0
  181. data/db/migrate/015__add_promotional_to_variant.rb +8 -0
  182. data/db/migrate/016__create_inventories.rb +12 -0
  183. data/db/migrate/017__create_payment_methods.rb +9 -0
  184. data/db/migrate/018__create_cart_items.rb +12 -0
  185. data/db/migrate/019__create_orders.rb +11 -0
  186. data/db/migrate/020__create_order_lines.rb +14 -0
  187. data/db/migrate/021__add_type_to_user.rb +5 -0
  188. data/db/migrate/022__rename_user_address_to_customer_address.rb +5 -0
  189. data/db/migrate/023__create_shipments.rb +12 -0
  190. data/db/migrate/024__add_shipment_id_to_order_line.rb +5 -0
  191. data/db/migrate/025__change_user_gender_to_not_nullable.rb +5 -0
  192. data/db/migrate/026__add_category_id_to_product.rb +5 -0
  193. data/db/migrate/027__add_attachment_brand_image_to_brands.rb +11 -0
  194. data/db/migrate/028__add_delivery_date_to_shipment.rb +5 -0
  195. data/db/migrate/029__add_customer_info_to_order.rb +13 -0
  196. data/db/migrate/030__add_status_to_order.rb +5 -0
  197. data/db/migrate/031__add_default_address_to_user.rb +5 -0
  198. data/db/migrate/032__add_options_to_variant.rb +5 -0
  199. data/db/migrate/033__add_display_to_options_groups.rb +5 -0
  200. data/db/migrate/034__add_points_to_variant.rb +5 -0
  201. data/db/migrate/035__add_points_to_user.rb +5 -0
  202. data/db/migrate/036__define_ids.rb +25 -0
  203. data/db/migrate/037__create_seed_users.rb +13 -0
  204. data/db/migrate/038__add_name_to_customer_address.rb +5 -0
  205. data/db/migrate/039__create_reviews.rb +14 -0
  206. data/db/migrate/040__alter_table_customer_address.rb +5 -0
  207. data/db/migrate/041__create_settings.rb +23 -0
  208. data/lib/.DS_Store +0 -0
  209. data/lib/shoppy.rb +13 -0
  210. data/lib/shoppy/client.rb +53 -0
  211. data/lib/shoppy/engine.rb +4 -0
  212. data/lib/shoppy/version.rb +3 -0
  213. data/lib/tasks/shoppy_tasks.rake +4 -0
  214. data/lib/template/.gitignore +20 -0
  215. data/lib/template/Gemfile +46 -0
  216. data/lib/template/Gemfile.lock +218 -0
  217. data/lib/template/Rakefile +6 -0
  218. data/lib/template/app/assets/images/.keep +0 -0
  219. data/lib/template/app/assets/javascripts/application.js +13 -0
  220. data/lib/template/app/assets/stylesheets/application.css +15 -0
  221. data/lib/template/app/controllers/accounts_controller.rb +3 -0
  222. data/lib/template/app/controllers/application_controller.rb +3 -0
  223. data/lib/template/app/controllers/brands_controller.rb +3 -0
  224. data/lib/template/app/controllers/cart_controller.rb +3 -0
  225. data/lib/template/app/controllers/categories_controller.rb +3 -0
  226. data/lib/template/app/controllers/concerns/.keep +0 -0
  227. data/lib/template/app/controllers/customer_addresses_controller.rb +3 -0
  228. data/lib/template/app/controllers/home_controller.rb +3 -0
  229. data/lib/template/app/controllers/inventories_controller.rb +3 -0
  230. data/lib/template/app/controllers/locations_controller.rb +3 -0
  231. data/lib/template/app/controllers/logs_controller.rb +3 -0
  232. data/lib/template/app/controllers/manufacturers_controller.rb +3 -0
  233. data/lib/template/app/controllers/options_controller.rb +3 -0
  234. data/lib/template/app/controllers/orders_controller.rb +3 -0
  235. data/lib/template/app/controllers/products_controller.rb +3 -0
  236. data/lib/template/app/controllers/reviews_controller.rb +3 -0
  237. data/lib/template/app/controllers/sessions_controller.rb +3 -0
  238. data/lib/template/app/controllers/settings_controller.rb +3 -0
  239. data/lib/template/app/controllers/shipments_controller.rb +3 -0
  240. data/lib/template/app/controllers/variants_controller.rb +3 -0
  241. data/lib/template/app/helpers/.keep +0 -0
  242. data/lib/template/app/helpers/orders_helper.rb +4 -0
  243. data/lib/template/app/mailers/.keep +0 -0
  244. data/lib/template/app/models/.keep +0 -0
  245. data/lib/template/app/models/account.rb +4 -0
  246. data/lib/template/app/models/admin.rb +4 -0
  247. data/lib/template/app/models/brand.rb +3 -0
  248. data/lib/template/app/models/cart_item.rb +3 -0
  249. data/lib/template/app/models/category.rb +3 -0
  250. data/lib/template/app/models/concerns/.keep +0 -0
  251. data/lib/template/app/models/concerns/hashable.rb +4 -0
  252. data/lib/template/app/models/customer.rb +4 -0
  253. data/lib/template/app/models/customer_address.rb +3 -0
  254. data/lib/template/app/models/inventory.rb +3 -0
  255. data/lib/template/app/models/log.rb +3 -0
  256. data/lib/template/app/models/manufacturer.rb +3 -0
  257. data/lib/template/app/models/option_item.rb +3 -0
  258. data/lib/template/app/models/options_group.rb +3 -0
  259. data/lib/template/app/models/order.rb +3 -0
  260. data/lib/template/app/models/order_line.rb +3 -0
  261. data/lib/template/app/models/payment_method.rb +3 -0
  262. data/lib/template/app/models/product.rb +3 -0
  263. data/lib/template/app/models/review.rb +3 -0
  264. data/lib/template/app/models/setting.rb +3 -0
  265. data/lib/template/app/models/shipment.rb +3 -0
  266. data/lib/template/app/models/stock_location.rb +3 -0
  267. data/lib/template/app/models/variant.rb +3 -0
  268. data/lib/template/app/views/layouts/.keep +0 -0
  269. data/lib/template/bin/bundle +3 -0
  270. data/lib/template/bin/rails +8 -0
  271. data/lib/template/bin/rake +8 -0
  272. data/lib/template/bin/spring +18 -0
  273. data/lib/template/config.ru +4 -0
  274. data/lib/template/config/application.rb +23 -0
  275. data/lib/template/config/boot.rb +4 -0
  276. data/lib/template/config/database.yml +86 -0
  277. data/lib/template/config/environment.rb +5 -0
  278. data/lib/template/config/environments/development.rb +37 -0
  279. data/lib/template/config/environments/production.rb +78 -0
  280. data/lib/template/config/environments/test.rb +39 -0
  281. data/lib/template/config/initializers/assets.rb +8 -0
  282. data/lib/template/config/initializers/backtrace_silencers.rb +7 -0
  283. data/lib/template/config/initializers/cookies_serializer.rb +3 -0
  284. data/lib/template/config/initializers/devise.rb +256 -0
  285. data/lib/template/config/initializers/filter_parameter_logging.rb +4 -0
  286. data/lib/template/config/initializers/inflections.rb +16 -0
  287. data/lib/template/config/initializers/mime_types.rb +4 -0
  288. data/lib/template/config/initializers/session_store.rb +3 -0
  289. data/lib/template/config/initializers/wrap_parameters.rb +14 -0
  290. data/lib/template/config/locales/devise.en.yml +59 -0
  291. data/lib/template/config/locales/en.yml +23 -0
  292. data/lib/template/config/routes.rb +3 -0
  293. data/lib/template/config/secrets.yml +22 -0
  294. data/lib/template/db/migrate/.keep +0 -0
  295. data/lib/template/db/seeds.rb +7 -0
  296. data/lib/template/lib/assets/.keep +0 -0
  297. data/lib/template/lib/tasks/.keep +0 -0
  298. data/lib/template/log/.keep +0 -0
  299. data/lib/template/public/404.html +67 -0
  300. data/lib/template/public/422.html +67 -0
  301. data/lib/template/public/500.html +66 -0
  302. data/lib/template/public/favicon.ico +0 -0
  303. data/lib/template/public/robots.txt +5 -0
  304. data/lib/template/test/controllers/.keep +0 -0
  305. data/lib/template/test/fixtures/.keep +0 -0
  306. data/lib/template/test/helpers/.keep +0 -0
  307. data/lib/template/test/integration/.keep +0 -0
  308. data/lib/template/test/mailers/.keep +0 -0
  309. data/lib/template/test/models/.keep +0 -0
  310. data/lib/template/test/test_helper.rb +10 -0
  311. data/lib/template/vendor/assets/javascripts/.keep +0 -0
  312. data/lib/template/vendor/assets/stylesheets/.keep +0 -0
  313. data/test/dummy/README.rdoc +28 -0
  314. data/test/dummy/Rakefile +6 -0
  315. data/test/dummy/app/assets/javascripts/application.js +13 -0
  316. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  317. data/test/dummy/app/controllers/application_controller.rb +5 -0
  318. data/test/dummy/app/helpers/application_helper.rb +2 -0
  319. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  320. data/test/dummy/bin/bundle +3 -0
  321. data/test/dummy/bin/rails +4 -0
  322. data/test/dummy/bin/rake +4 -0
  323. data/test/dummy/config.ru +4 -0
  324. data/test/dummy/config/application.rb +23 -0
  325. data/test/dummy/config/boot.rb +5 -0
  326. data/test/dummy/config/database.yml +25 -0
  327. data/test/dummy/config/environment.rb +5 -0
  328. data/test/dummy/config/environments/development.rb +37 -0
  329. data/test/dummy/config/environments/production.rb +78 -0
  330. data/test/dummy/config/environments/test.rb +39 -0
  331. data/test/dummy/config/initializers/assets.rb +8 -0
  332. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  333. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  334. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  335. data/test/dummy/config/initializers/inflections.rb +16 -0
  336. data/test/dummy/config/initializers/mime_types.rb +4 -0
  337. data/test/dummy/config/initializers/session_store.rb +3 -0
  338. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  339. data/test/dummy/config/locales/en.yml +23 -0
  340. data/test/dummy/config/routes.rb +56 -0
  341. data/test/dummy/config/secrets.yml +22 -0
  342. data/test/dummy/public/404.html +67 -0
  343. data/test/dummy/public/422.html +67 -0
  344. data/test/dummy/public/500.html +66 -0
  345. data/test/dummy/public/favicon.ico +0 -0
  346. data/test/integration/navigation_test.rb +10 -0
  347. data/test/shoppy/Users/alybadawy/exp/shoppy/lib/template/Gemfile.lock +217 -0
  348. data/test/shoppy/Users/alybadawy/exp/shoppy/lib/template/README.rdoc +28 -0
  349. data/test/shoppy/Users/alybadawy/exp/shoppy/lib/template/config.ru +4 -0
  350. data/test/shoppy_test.rb +7 -0
  351. data/test/test_helper.rb +15 -0
  352. metadata +495 -0
@@ -0,0 +1 @@
1
+ table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting{cursor:pointer;*cursor:hand}table.dataTable thead .sorting{background:url("/assets/sort_both.png") no-repeat center right}table.dataTable thead .sorting_asc{background:url("/assets/sort_asc.png") no-repeat center right}table.dataTable thead .sorting_desc{background:url("../images/sort_desc.png") no-repeat center right}table.dataTable thead .sorting_asc_disabled{background:url("../images/sort_asc_disabled.png") no-repeat center right}table.dataTable thead .sorting_desc_disabled{background:url("../images/sort_desc_disabled.png") no-repeat center right}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover,table.dataTable.hover tbody tr.odd:hover,table.dataTable.hover tbody tr.even:hover,table.dataTable.display tbody tr:hover,table.dataTable.display tbody tr.odd:hover,table.dataTable.display tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected,table.dataTable.hover tbody tr.odd:hover.selected,table.dataTable.hover tbody tr.even:hover.selected,table.dataTable.display tbody tr:hover.selected,table.dataTable.display tbody tr.odd:hover.selected,table.dataTable.display tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.display tbody tr.odd:hover>.sorting_1,table.dataTable.display tbody tr.even:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1,table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.display tbody tr.odd:hover>.sorting_2,table.dataTable.display tbody tr.even:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2,table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.display tbody tr.odd:hover>.sorting_3,table.dataTable.display tbody tr.even:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3,table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.display tbody tr.odd:hover.selected>.sorting_1,table.dataTable.display tbody tr.even:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.display tbody tr.odd:hover.selected>.sorting_2,table.dataTable.display tbody tr.even:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.display tbody tr.odd:hover.selected>.sorting_3,table.dataTable.display tbody tr.even:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px 5px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #cacaca;background-color:#fff;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}}
@@ -0,0 +1,330 @@
1
+ /*
2
+ * Table styles
3
+ */
4
+ table.dataTable {
5
+ width: 100%;
6
+ margin: 0 auto;
7
+ clear: both;
8
+ border-collapse: separate;
9
+ border-spacing: 0;
10
+ /*
11
+ * Header and footer styles
12
+ */
13
+ /*
14
+ * Body styles
15
+ */
16
+ }
17
+ table.dataTable thead th,
18
+ table.dataTable thead td,
19
+ table.dataTable tfoot th,
20
+ table.dataTable tfoot td {
21
+ padding: 4px 10px;
22
+ }
23
+ table.dataTable thead th,
24
+ table.dataTable tfoot th {
25
+ font-weight: bold;
26
+ }
27
+ table.dataTable thead th:active,
28
+ table.dataTable thead td:active {
29
+ outline: none;
30
+ }
31
+ table.dataTable thead .sorting_asc,
32
+ table.dataTable thead .sorting_desc,
33
+ table.dataTable thead .sorting {
34
+ cursor: pointer;
35
+ *cursor: hand;
36
+ }
37
+ table.dataTable thead th div.DataTables_sort_wrapper {
38
+ position: relative;
39
+ padding-right: 10px;
40
+ }
41
+ table.dataTable thead th div.DataTables_sort_wrapper span {
42
+ position: absolute;
43
+ top: 50%;
44
+ margin-top: -8px;
45
+ right: -5px;
46
+ }
47
+ table.dataTable thead th.ui-state-default {
48
+ border-right-width: 0;
49
+ }
50
+ table.dataTable thead th.ui-state-default:last-child {
51
+ border-right-width: 1px;
52
+ }
53
+ table.dataTable tbody tr {
54
+ background-color: white;
55
+ }
56
+ table.dataTable tbody tr.selected {
57
+ background-color: #b0bed9;
58
+ }
59
+ table.dataTable tbody th,
60
+ table.dataTable tbody td {
61
+ padding: 8px 10px;
62
+ }
63
+ table.dataTable th.center,
64
+ table.dataTable td.center,
65
+ table.dataTable td.dataTables_empty {
66
+ text-align: center;
67
+ }
68
+ table.dataTable th.right,
69
+ table.dataTable td.right {
70
+ text-align: right;
71
+ }
72
+ table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
73
+ border-top: 1px solid #dddddd;
74
+ }
75
+ table.dataTable.row-border tbody tr:first-child th,
76
+ table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
77
+ table.dataTable.display tbody tr:first-child td {
78
+ border-top: none;
79
+ }
80
+ table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
81
+ border-top: 1px solid #dddddd;
82
+ border-right: 1px solid #dddddd;
83
+ }
84
+ table.dataTable.cell-border tbody tr th:first-child,
85
+ table.dataTable.cell-border tbody tr td:first-child {
86
+ border-left: 1px solid #dddddd;
87
+ }
88
+ table.dataTable.cell-border tbody tr:first-child th,
89
+ table.dataTable.cell-border tbody tr:first-child td {
90
+ border-top: none;
91
+ }
92
+ table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
93
+ background-color: #f9f9f9;
94
+ }
95
+ table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
96
+ background-color: #abb9d3;
97
+ }
98
+ table.dataTable.hover tbody tr:hover,
99
+ table.dataTable.hover tbody tr.odd:hover,
100
+ table.dataTable.hover tbody tr.even:hover, table.dataTable.display tbody tr:hover,
101
+ table.dataTable.display tbody tr.odd:hover,
102
+ table.dataTable.display tbody tr.even:hover {
103
+ background-color: whitesmoke;
104
+ }
105
+ table.dataTable.hover tbody tr:hover.selected,
106
+ table.dataTable.hover tbody tr.odd:hover.selected,
107
+ table.dataTable.hover tbody tr.even:hover.selected, table.dataTable.display tbody tr:hover.selected,
108
+ table.dataTable.display tbody tr.odd:hover.selected,
109
+ table.dataTable.display tbody tr.even:hover.selected {
110
+ background-color: #a9b7d1;
111
+ }
112
+ table.dataTable.order-column tbody tr > .sorting_1,
113
+ table.dataTable.order-column tbody tr > .sorting_2,
114
+ table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
115
+ table.dataTable.display tbody tr > .sorting_2,
116
+ table.dataTable.display tbody tr > .sorting_3 {
117
+ background-color: #f9f9f9;
118
+ }
119
+ table.dataTable.order-column tbody tr.selected > .sorting_1,
120
+ table.dataTable.order-column tbody tr.selected > .sorting_2,
121
+ table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
122
+ table.dataTable.display tbody tr.selected > .sorting_2,
123
+ table.dataTable.display tbody tr.selected > .sorting_3 {
124
+ background-color: #acbad4;
125
+ }
126
+ table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
127
+ background-color: #f1f1f1;
128
+ }
129
+ table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
130
+ background-color: #f3f3f3;
131
+ }
132
+ table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
133
+ background-color: whitesmoke;
134
+ }
135
+ table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
136
+ background-color: #a6b3cd;
137
+ }
138
+ table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
139
+ background-color: #a7b5ce;
140
+ }
141
+ table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
142
+ background-color: #a9b6d0;
143
+ }
144
+ table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
145
+ background-color: #f9f9f9;
146
+ }
147
+ table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
148
+ background-color: #fbfbfb;
149
+ }
150
+ table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
151
+ background-color: #fdfdfd;
152
+ }
153
+ table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
154
+ background-color: #acbad4;
155
+ }
156
+ table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
157
+ background-color: #adbbd6;
158
+ }
159
+ table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
160
+ background-color: #afbdd8;
161
+ }
162
+ table.dataTable.display tbody tr:hover > .sorting_1,
163
+ table.dataTable.display tbody tr.odd:hover > .sorting_1,
164
+ table.dataTable.display tbody tr.even:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1,
165
+ table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_1,
166
+ table.dataTable.order-column.hover tbody tr.even:hover > .sorting_1 {
167
+ background-color: #eaeaea;
168
+ }
169
+ table.dataTable.display tbody tr:hover > .sorting_2,
170
+ table.dataTable.display tbody tr.odd:hover > .sorting_2,
171
+ table.dataTable.display tbody tr.even:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2,
172
+ table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_2,
173
+ table.dataTable.order-column.hover tbody tr.even:hover > .sorting_2 {
174
+ background-color: #ebebeb;
175
+ }
176
+ table.dataTable.display tbody tr:hover > .sorting_3,
177
+ table.dataTable.display tbody tr.odd:hover > .sorting_3,
178
+ table.dataTable.display tbody tr.even:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3,
179
+ table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_3,
180
+ table.dataTable.order-column.hover tbody tr.even:hover > .sorting_3 {
181
+ background-color: #eeeeee;
182
+ }
183
+ table.dataTable.display tbody tr:hover.selected > .sorting_1,
184
+ table.dataTable.display tbody tr.odd:hover.selected > .sorting_1,
185
+ table.dataTable.display tbody tr.even:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1,
186
+ table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_1,
187
+ table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_1 {
188
+ background-color: #a1aec7;
189
+ }
190
+ table.dataTable.display tbody tr:hover.selected > .sorting_2,
191
+ table.dataTable.display tbody tr.odd:hover.selected > .sorting_2,
192
+ table.dataTable.display tbody tr.even:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2,
193
+ table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_2,
194
+ table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_2 {
195
+ background-color: #a2afc8;
196
+ }
197
+ table.dataTable.display tbody tr:hover.selected > .sorting_3,
198
+ table.dataTable.display tbody tr.odd:hover.selected > .sorting_3,
199
+ table.dataTable.display tbody tr.even:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3,
200
+ table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_3,
201
+ table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_3 {
202
+ background-color: #a4b2cb;
203
+ }
204
+
205
+ table.dataTable,
206
+ table.dataTable th,
207
+ table.dataTable td {
208
+ -webkit-box-sizing: content-box;
209
+ -moz-box-sizing: content-box;
210
+ box-sizing: content-box;
211
+ }
212
+
213
+ /*
214
+ * Control feature layout
215
+ */
216
+ .dataTables_wrapper {
217
+ position: relative;
218
+ clear: both;
219
+ *zoom: 1;
220
+ zoom: 1;
221
+ }
222
+ .dataTables_wrapper .dataTables_length {
223
+ float: left;
224
+ }
225
+ .dataTables_wrapper .dataTables_filter {
226
+ float: right;
227
+ text-align: right;
228
+ }
229
+ .dataTables_wrapper .dataTables_filter input {
230
+ margin-left: 0.5em;
231
+ }
232
+ .dataTables_wrapper .dataTables_info {
233
+ clear: both;
234
+ float: left;
235
+ padding-top: 0.55em;
236
+ }
237
+ .dataTables_wrapper .dataTables_paginate {
238
+ float: right;
239
+ text-align: right;
240
+ }
241
+ .dataTables_wrapper .dataTables_paginate .fg-button {
242
+ box-sizing: border-box;
243
+ display: inline-block;
244
+ min-width: 1.5em;
245
+ padding: 0.5em;
246
+ margin-left: 2px;
247
+ text-align: center;
248
+ text-decoration: none !important;
249
+ cursor: pointer;
250
+ *cursor: hand;
251
+ color: #333333 !important;
252
+ border: 1px solid transparent;
253
+ }
254
+ .dataTables_wrapper .dataTables_paginate .fg-button:active {
255
+ outline: none;
256
+ }
257
+ .dataTables_wrapper .dataTables_paginate .fg-button:first-child {
258
+ border-top-left-radius: 3px;
259
+ border-bottom-left-radius: 3px;
260
+ }
261
+ .dataTables_wrapper .dataTables_paginate .fg-button:last-child {
262
+ border-top-right-radius: 3px;
263
+ border-bottom-right-radius: 3px;
264
+ }
265
+ .dataTables_wrapper .dataTables_processing {
266
+ position: absolute;
267
+ top: 50%;
268
+ left: 50%;
269
+ width: 100%;
270
+ height: 40px;
271
+ margin-left: -50%;
272
+ margin-top: -25px;
273
+ padding-top: 20px;
274
+ text-align: center;
275
+ font-size: 1.2em;
276
+ background-color: white;
277
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
278
+ /* Chrome,Safari4+ */
279
+ background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
280
+ /* Chrome10+,Safari5.1+ */
281
+ background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
282
+ /* FF3.6+ */
283
+ background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
284
+ /* IE10+ */
285
+ background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
286
+ /* Opera 11.10+ */
287
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
288
+ /* W3C */
289
+ }
290
+ .dataTables_wrapper .dataTables_length,
291
+ .dataTables_wrapper .dataTables_filter,
292
+ .dataTables_wrapper .dataTables_info,
293
+ .dataTables_wrapper .dataTables_processing,
294
+ .dataTables_wrapper .dataTables_paginate {
295
+ color: #333333;
296
+ }
297
+ .dataTables_wrapper .dataTables_scroll {
298
+ clear: both;
299
+ }
300
+ .dataTables_wrapper .dataTables_scrollBody {
301
+ *margin-top: -1px;
302
+ -webkit-overflow-scrolling: touch;
303
+ }
304
+ .dataTables_wrapper .ui-widget-header {
305
+ font-weight: normal;
306
+ }
307
+ .dataTables_wrapper .ui-toolbar {
308
+ padding: 8px;
309
+ }
310
+ .dataTables_wrapper:after {
311
+ visibility: hidden;
312
+ display: block;
313
+ content: "";
314
+ clear: both;
315
+ height: 0;
316
+ }
317
+
318
+ @media screen and (max-width: 767px) {
319
+ .dataTables_wrapper .dataTables_length,
320
+ .dataTables_wrapper .dataTables_filter,
321
+ .dataTables_wrapper .dataTables_info,
322
+ .dataTables_wrapper .dataTables_paginate {
323
+ float: none;
324
+ text-align: center;
325
+ }
326
+ .dataTables_wrapper .dataTables_filter,
327
+ .dataTables_wrapper .dataTables_paginate {
328
+ margin-top: 0.5em;
329
+ }
330
+ }
@@ -0,0 +1,23 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_self
14
+ *= require bootstrap
15
+ *= require nprogress
16
+ *= require nprogress-bootstrap
17
+ *= require select2
18
+ *= require select2-bootstrap
19
+ *= require jquery-ui
20
+ *= require jasny-bootstrap.css
21
+ *= require jquery.dataTables.min.css
22
+ *= require style
23
+ */
@@ -0,0 +1,79 @@
1
+ body
2
+ background-color: #f5f5f5
3
+
4
+ .container
5
+ width: 970px !important
6
+
7
+ .logo
8
+ margin-top: 20px
9
+
10
+ .main-color
11
+ color: #2F9D92
12
+
13
+ .light-color
14
+ color: #999
15
+
16
+ footer
17
+ margin-top: 100px
18
+
19
+ .form-group.form-group-modal
20
+ margin: 10px
21
+
22
+ .select2-container-multi .select2-choices .select2-search-choice
23
+ background-color: white
24
+ background-image: none
25
+ border: none
26
+ margin-top: 6px
27
+ color: black
28
+ border-radius: 4px
29
+ padding: 5px 11px 5px 20px
30
+ border: 1px solid #428BCA
31
+
32
+ .select2-container-multi .select2-search-choice-close
33
+ left: 6px
34
+
35
+ .panel-title
36
+ margin-top: 10px
37
+
38
+ .panel-default > .panel-heading
39
+ background-color: white
40
+ margin-bottom: 20px
41
+
42
+ .dataTables_wrapper .dataTables_paginate,
43
+ .dataTables_wrapper .dataTables_info
44
+ margin-top: 20px
45
+
46
+ table.dataTable.no-footer
47
+ border-bottom: 1px solid #ddd
48
+
49
+ table.dataTable thead th, table.dataTable thead td
50
+ border-bottom: medium none
51
+ padding: 10px
52
+
53
+ table.dataTable thead .sorting
54
+ background: none
55
+
56
+ .table > thead > tr > th,
57
+ .table > tbody > tr > th,
58
+ .table > tfoot > tr > th,
59
+ .table > thead > tr > td,
60
+ .table > tbody > tr > td,
61
+ .table > tfoot > tr > td
62
+ vertical-align: middle
63
+
64
+ table.dataTable thead .sorting_asc
65
+ background: none
66
+ color: #5BC0DE
67
+
68
+ .navbar-default
69
+ background-color: white
70
+
71
+
72
+ .navbar-default .navbar-nav>.active>a,
73
+ .navbar-default .navbar-nav>.active>a:hover,
74
+ .navbar-default .navbar-nav>.active>a:focus
75
+ color: white
76
+ background-color: #2E6DA4
77
+
78
+ .navbar-nav.navbar-right:last-child
79
+ margin-right: 5px
Binary file
@@ -0,0 +1,102 @@
1
+ module Shoppy
2
+ class AccountsController < ApplicationController
3
+
4
+ before_action :authenticate_admin!
5
+
6
+ def customers
7
+ @customers = Customer.all
8
+ end
9
+
10
+ def admins
11
+ @admins = Admin.all
12
+ end
13
+
14
+ def newCustomer
15
+ @customer = Customer.new
16
+ @customer.name = params[:name]
17
+ @customer.phone = params[:phone]
18
+ @customer.password = params[:password]
19
+ @customer.password_confirmation = params[:password_confirmation]
20
+ @customer.email = params[:email]
21
+ @customer.gender = params[:gender]
22
+ if @customer.save
23
+ Log.newEvent("Users", "Customer with email #{@customer.email} was created", current_admin.name)
24
+ redirect_to '/accounts/customers'
25
+ flash[:notice] = "User has been created."
26
+ else
27
+ ## TODO: Handle Errors
28
+ redirect_to '/accounts/customers'
29
+ flash[:error] = @customer.errors.messages
30
+ end
31
+ end
32
+
33
+ def newAdmin
34
+ @admin = Admin.new
35
+ @admin.name = params[:name]
36
+ @admin.phone = params[:phone]
37
+ @admin.password = params[:password]
38
+ @admin.password_confirmation = params[:password_confirmation]
39
+ @admin.email = params[:email]
40
+ @admin.gender = params[:gender]
41
+ if @admin.save
42
+ Log.newEvent("Users", "Admin with email #{@admin.email} was created", current_admin.name)
43
+ redirect_to '/accounts/admins'
44
+ flash[:notice] = "Admin has been created."
45
+ else
46
+ ## TODO: Handle Errors
47
+ redirect_to '/accounts/admins'
48
+ flash[:error] = @admin.errors.messages
49
+ end
50
+ end
51
+
52
+ def show
53
+ user = User.find_by(id: params[:user_id])
54
+ if user
55
+ @user = user
56
+ else
57
+ page_not_found
58
+ end
59
+ end
60
+
61
+ def edit
62
+ @user = User.find_by(id: params[:user_id])
63
+ if @user
64
+ @user.update_attributes(@user.type == "Admin" ? admin_params : customer_params)
65
+ Log.newEvent("Users", "Customer with email #{@user.email} was updated", current_admin.name)
66
+ redirect_to '/accounts/' + params[:user_id]
67
+ flash[:notice] = "User has been updated."
68
+ end
69
+ end
70
+
71
+ def delete
72
+ @user = User.find_by(id: params[:user_id])
73
+ if @user
74
+ r = @user.type.downcase + "s"
75
+ if @user != current_admin
76
+ @user.destroy
77
+ Log.newEvent("Users", "User #{@user.name} was deleted", current_admin.name)
78
+ flash[:notice] = @user.type + " has been deleted."
79
+ else
80
+ flash[:warning] = "You can't delete yourself, you punk 😡"
81
+ end
82
+ if params[:view] == "show"
83
+ redirect_to '/accounts/#{@user.id}'
84
+ else
85
+ redirect_to '/accounts/' + r
86
+ end
87
+ else
88
+ page_not_found
89
+ end
90
+ end
91
+
92
+ private
93
+ def customer_params
94
+ params.require(:customer).permit(:name, :email, :phone, :gender)
95
+ end
96
+
97
+ def admin_params
98
+ params.require(:admin).permit(:name, :email, :phone, :gender)
99
+ end
100
+
101
+ end
102
+ end