shoppe 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/Rakefile +18 -0
  3. data/app/assets/images/shoppe/document.svg +1 -0
  4. data/app/assets/images/shoppe/logo.svg +47 -0
  5. data/app/assets/images/shoppe/shoppe.svg +25 -0
  6. data/app/assets/images/shoppe/square.svg +9 -0
  7. data/app/assets/images/shoppe/statuses/accepted.svg +14 -0
  8. data/app/assets/images/shoppe/statuses/paid.svg +16 -0
  9. data/app/assets/images/shoppe/statuses/received.svg +15 -0
  10. data/app/assets/images/shoppe/statuses/rejected.svg +14 -0
  11. data/app/assets/images/shoppe/statuses/shipped.svg +14 -0
  12. data/app/assets/javascripts/shoppe/application.coffee +11 -0
  13. data/app/assets/stylesheets/shoppe/application.scss +302 -0
  14. data/app/assets/stylesheets/shoppe/elements.scss +73 -0
  15. data/app/assets/stylesheets/shoppe/reset.scss +93 -0
  16. data/app/assets/stylesheets/shoppe/sub.scss +90 -0
  17. data/app/assets/stylesheets/shoppe/variables.scss +1 -0
  18. data/app/controllers/shoppe/application_controller.rb +39 -0
  19. data/app/controllers/shoppe/attachments_controller.rb +12 -0
  20. data/app/controllers/shoppe/dashboard_controller.rb +7 -0
  21. data/app/controllers/shoppe/delivery_service_prices_controller.rb +42 -0
  22. data/app/controllers/shoppe/delivery_services_controller.rb +45 -0
  23. data/app/controllers/shoppe/orders_controller.rb +36 -0
  24. data/app/controllers/shoppe/product_categories_controller.rb +45 -0
  25. data/app/controllers/shoppe/products_controller.rb +45 -0
  26. data/app/controllers/shoppe/sessions_controller.rb +31 -0
  27. data/app/controllers/shoppe/users_controller.rb +46 -0
  28. data/app/helpers/shoppe/application_helper.rb +10 -0
  29. data/app/helpers/shoppe/shoppe_helper.rb +28 -0
  30. data/app/mailers/shoppe/order_mailer.rb +25 -0
  31. data/app/mailers/shoppe/user_mailer.rb +10 -0
  32. data/app/models/shoppe/delivery_service.rb +22 -0
  33. data/app/models/shoppe/delivery_service_price.rb +19 -0
  34. data/app/models/shoppe/order.rb +325 -0
  35. data/app/models/shoppe/order_item.rb +113 -0
  36. data/app/models/shoppe/product.rb +56 -0
  37. data/app/models/shoppe/product_category.rb +22 -0
  38. data/app/models/shoppe/user.rb +41 -0
  39. data/app/views/layouts/shoppe/application.html.haml +35 -0
  40. data/app/views/layouts/shoppe/sub.html.haml +10 -0
  41. data/app/views/shoppe/delivery_service_prices/_form.html.haml +28 -0
  42. data/app/views/shoppe/delivery_service_prices/edit.html.haml +5 -0
  43. data/app/views/shoppe/delivery_service_prices/index.html.haml +22 -0
  44. data/app/views/shoppe/delivery_service_prices/new.html.haml +5 -0
  45. data/app/views/shoppe/delivery_services/_form.html.haml +35 -0
  46. data/app/views/shoppe/delivery_services/edit.html.haml +5 -0
  47. data/app/views/shoppe/delivery_services/index.html.haml +24 -0
  48. data/app/views/shoppe/delivery_services/new.html.haml +5 -0
  49. data/app/views/shoppe/order_mailer/accepted.text.erb +12 -0
  50. data/app/views/shoppe/order_mailer/received.text.erb +12 -0
  51. data/app/views/shoppe/order_mailer/rejected.text.erb +10 -0
  52. data/app/views/shoppe/order_mailer/shipped.text.erb +16 -0
  53. data/app/views/shoppe/orders/index.html.haml +60 -0
  54. data/app/views/shoppe/orders/show.html.haml +117 -0
  55. data/app/views/shoppe/product_categories/_form.html.haml +25 -0
  56. data/app/views/shoppe/product_categories/edit.html.haml +6 -0
  57. data/app/views/shoppe/product_categories/index.html.haml +15 -0
  58. data/app/views/shoppe/product_categories/new.html.haml +5 -0
  59. data/app/views/shoppe/products/_form.html.haml +71 -0
  60. data/app/views/shoppe/products/edit.html.haml +5 -0
  61. data/app/views/shoppe/products/index.html.haml +27 -0
  62. data/app/views/shoppe/products/new.html.haml +5 -0
  63. data/app/views/shoppe/sessions/new.html.haml +12 -0
  64. data/app/views/shoppe/sessions/reset.html.haml +11 -0
  65. data/app/views/shoppe/user_mailer/new_password.text.erb +9 -0
  66. data/app/views/shoppe/users/_form.html.haml +26 -0
  67. data/app/views/shoppe/users/edit.html.haml +5 -0
  68. data/app/views/shoppe/users/index.html.haml +17 -0
  69. data/app/views/shoppe/users/new.html.haml +5 -0
  70. data/config/routes.rb +24 -0
  71. data/config/shoppe.example.yml +6 -0
  72. data/db/migrate/20130926094549_create_shoppe_initial_schema.rb +116 -0
  73. data/db/seeds.rb +85 -0
  74. data/db/seeds_data/poe400.jpg +0 -0
  75. data/db/seeds_data/snom-870-blk.jpg +0 -0
  76. data/db/seeds_data/snom-870-grey.jpg +0 -0
  77. data/db/seeds_data/snom-mm2.jpg +0 -0
  78. data/db/seeds_data/spa303.jpg +0 -0
  79. data/db/seeds_data/t18p.jpg +0 -0
  80. data/db/seeds_data/t20p.jpg +0 -0
  81. data/db/seeds_data/t22p.jpg +0 -0
  82. data/db/seeds_data/t26p.jpg +0 -0
  83. data/db/seeds_data/t41pn.jpg +0 -0
  84. data/db/seeds_data/t46gn.jpg +0 -0
  85. data/db/seeds_data/w52p.jpg +0 -0
  86. data/db/seeds_data/yhs32.jpg +0 -0
  87. data/lib/shoppe.rb +41 -0
  88. data/lib/shoppe/engine.rb +35 -0
  89. data/lib/shoppe/errors/inappropriate_delivery_service.rb +11 -0
  90. data/lib/shoppe/errors/insufficient_stock_to_fulfil.rb +19 -0
  91. data/lib/shoppe/errors/not_enough_stock.rb +19 -0
  92. data/lib/shoppe/errors/payment_declined.rb +15 -0
  93. data/lib/shoppe/setup_generator.rb +14 -0
  94. data/lib/shoppe/version.rb +3 -0
  95. data/lib/tasks/shoppe.rake +17 -0
  96. data/test/dummy/README.rdoc +28 -0
  97. data/test/dummy/Rakefile +6 -0
  98. data/test/dummy/app/assets/javascripts/application.js +13 -0
  99. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  100. data/test/dummy/app/controllers/application_controller.rb +5 -0
  101. data/test/dummy/app/helpers/application_helper.rb +2 -0
  102. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  103. data/test/dummy/bin/bundle +3 -0
  104. data/test/dummy/bin/rails +4 -0
  105. data/test/dummy/bin/rake +4 -0
  106. data/test/dummy/config.ru +4 -0
  107. data/test/dummy/config/application.rb +23 -0
  108. data/test/dummy/config/boot.rb +5 -0
  109. data/test/dummy/config/database.yml +25 -0
  110. data/test/dummy/config/environment.rb +5 -0
  111. data/test/dummy/config/environments/development.rb +29 -0
  112. data/test/dummy/config/environments/production.rb +80 -0
  113. data/test/dummy/config/environments/test.rb +36 -0
  114. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  115. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  116. data/test/dummy/config/initializers/inflections.rb +16 -0
  117. data/test/dummy/config/initializers/mime_types.rb +5 -0
  118. data/test/dummy/config/initializers/secret_token.rb +12 -0
  119. data/test/dummy/config/initializers/session_store.rb +3 -0
  120. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  121. data/test/dummy/config/locales/en.yml +23 -0
  122. data/test/dummy/config/routes.rb +3 -0
  123. data/test/dummy/config/shoppe.yml +7 -0
  124. data/test/dummy/db/development.sqlite3 +0 -0
  125. data/test/dummy/db/schema.rb +119 -0
  126. data/test/dummy/db/test.sqlite3 +0 -0
  127. data/test/dummy/log/development.log +893 -0
  128. data/test/dummy/log/test.log +6397 -0
  129. data/test/dummy/public/404.html +58 -0
  130. data/test/dummy/public/422.html +58 -0
  131. data/test/dummy/public/500.html +57 -0
  132. data/test/dummy/public/favicon.ico +0 -0
  133. data/test/models/shoppe/basket_test.rb +26 -0
  134. data/test/models/shoppe/user_test.rb +37 -0
  135. data/test/shoppe_test.rb +17 -0
  136. data/test/test_helper.rb +4 -0
  137. metadata +453 -0
@@ -0,0 +1,20 @@
1
+ Copyright 2013 Niftyware Limited.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,18 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
8
+ load 'rails/tasks/engine.rake'
9
+
10
+ Bundler::GemHelper.install_tasks
11
+
12
+ require 'rake/testtask'
13
+ Rake::TestTask.new(:test) do |t|
14
+ t.libs << 'lib'
15
+ t.libs << 'test'
16
+ t.pattern = 'test/**/*_test.rb'
17
+ t.verbose = false
18
+ end
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="utf-8"?> <!-- Generator: IcoMoon.io --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 16 16" xml:space="preserve" fill="#cccccc"> <path d="M 39.00,48.00L9.00,48.00 c-1.659,0.00-3.00-1.341-3.00-3.00L6.00,3.00 c0.00-1.659, 1.341-3.00, 3.00-3.00l21.00,0.00 l 12.00,12.00l0.00,33.00 C 42.00,46.659, 40.659,48.00, 39.00,48.00z M 27.00,15.00L27.00,6.00 L12.00,6.00 l0.00,36.00 l24.00,0.00 L36.00,15.00 L27.00,15.00 z" ></path></svg>
@@ -0,0 +1,47 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="305.552px" height="226px" viewBox="0 0 305.552 226" enable-background="new 0 0 305.552 226"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <g>
9
+ <g>
10
+ <defs>
11
+ <path id="SVGID_1_" d="M182.757,201.905C163.547,216.998,139.325,226,113,226C50.592,226,0,175.408,0,113
12
+ C0,50.592,50.592,0,113,0c49.205,0,91.064,31.449,106.574,75.344c-32.834,9.341-56.854,39.258-56.854,74.72
13
+ C162.72,169.981,170.297,188.149,182.757,201.905L182.757,201.905L182.757,201.905z M79.685,121.92
14
+ c8.328,7.994,18.286,11.991,29.873,11.991c6.88,0,10.32-1.658,10.32-4.974c0-1.59-1.788-2.805-5.364-3.645
15
+ c-3.576-0.84-7.887-1.726-12.933-2.657c-5.047-0.931-10.093-2.282-15.14-4.054c-5.047-1.771-9.358-4.883-12.934-9.334
16
+ c-3.576-4.451-5.363-10.083-5.363-16.896c0-7.449,2.716-14.035,8.147-19.758c5.431-5.723,13.013-9.22,22.744-10.492V48.816
17
+ h17.788v13.422c11.406,1.59,21.137,5.678,29.194,12.264l-15.004,19.962c-8.057-6.132-17.154-9.198-27.293-9.198
18
+ c-4.707,0-7.061,1.385-7.061,4.156c0,1.499,1.754,2.714,5.262,3.645c3.508,0.931,7.796,1.908,12.866,2.93
19
+ c5.069,1.022,10.15,2.419,15.242,4.19c5.092,1.771,9.403,4.792,12.934,9.061c3.53,4.27,5.296,9.606,5.296,16.011
20
+ c0,8.948-2.761,16.17-8.283,21.665c-5.522,5.496-13.239,8.88-23.151,10.151v12.877H99.034v-12.877
21
+ c-13.714-1.317-25.03-6.064-33.946-14.239L79.685,121.92L79.685,121.92z M79.685,121.92"/>
22
+ </defs>
23
+ <use xlink:href="#SVGID_1_" overflow="visible" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF"/>
24
+ <clipPath id="SVGID_2_">
25
+ <use xlink:href="#SVGID_1_" overflow="visible"/>
26
+ </clipPath>
27
+ </g>
28
+ <g>
29
+ <defs>
30
+ <path id="SVGID_3_" d="M240.464,213.344c35.947,0,65.088-28.736,65.088-64.184c0-35.448-29.141-64.184-65.088-64.184
31
+ c-35.947,0-65.088,28.736-65.088,64.184C175.376,184.608,204.517,213.344,240.464,213.344L240.464,213.344z M226.701,156.083
32
+ c4.526,4.415,9.938,6.622,16.235,6.622c3.739,0,5.609-0.916,5.609-2.747c0-0.878-0.972-1.549-2.915-2.013
33
+ c-1.943-0.464-4.286-0.953-7.029-1.467c-2.743-0.514-5.486-1.26-8.228-2.239c-2.743-0.978-5.086-2.696-7.029-5.155
34
+ c-1.943-2.458-2.915-5.568-2.915-9.331c0-4.114,1.476-7.751,4.428-10.911c2.952-3.161,7.072-5.092,12.361-5.794v-7.337h9.667
35
+ v7.412c6.199,0.878,11.488,3.135,15.866,6.772l-8.154,11.024c-4.379-3.386-9.323-5.079-14.833-5.079
36
+ c-2.558,0-3.837,0.765-3.837,2.295c0,0.828,0.953,1.499,2.86,2.013c1.906,0.514,4.237,1.053,6.992,1.618
37
+ c2.755,0.564,5.516,1.336,8.284,2.314c2.767,0.978,5.11,2.646,7.029,5.004c1.919,2.358,2.878,5.305,2.878,8.842
38
+ c0,4.941-1.5,8.929-4.502,11.965c-3.001,3.035-7.195,4.904-12.582,5.606v7.111h-9.667v-7.111
39
+ c-7.453-0.727-13.603-3.349-18.449-7.863L226.701,156.083L226.701,156.083z M226.701,156.083"/>
40
+ </defs>
41
+ <use xlink:href="#SVGID_3_" overflow="visible" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF"/>
42
+ <clipPath id="SVGID_4_">
43
+ <use xlink:href="#SVGID_3_" overflow="visible"/>
44
+ </clipPath>
45
+ </g>
46
+ </g>
47
+ </svg>
@@ -0,0 +1,25 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="360.246px" height="79.421px" viewBox="0 0 360.246 79.421" enable-background="new 0 0 360.246 79.421"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <g>
9
+ <path fill="#FFFFFF" d="M57.64,56.541c0,12.21-8.14,22.88-25.52,22.88c-12.76,0-25.19-5.83-32.12-10.89l9.02-14.74
10
+ c5.72,3.63,15.95,8.14,21.67,8.14c3.19,0,5.72-1.43,5.72-4.399c0-5.391-8.91-6.82-19.58-12.65c-7.26-4.07-15.51-10.34-15.51-22.33
11
+ C1.32,10.23,9.68,0,26.95,0C37.73,0,48.51,4.07,56.1,8.36l-9.13,15.07c-5.17-2.75-13.42-5.94-18.48-5.94
12
+ c-3.3,0-5.94,1.32-5.94,4.291c0,5.39,9.35,6.93,19.36,12.319C48.73,37.951,57.64,44.001,57.64,56.541z"/>
13
+ <path fill="#FFFFFF" d="M98.229,46.531H80.41v31.68h-20.13v-77h20.13v27.83h17.82V1.211h20.02v77h-20.02V46.531z"/>
14
+ <path fill="#FFFFFF" d="M188.099,39.711c0,22.33-9.021,39.71-33.22,39.71c-24.2,0-33.22-17.38-33.22-39.71S130.678,0,154.878,0
15
+ C179.078,0,188.099,17.381,188.099,39.711z M167.528,39.711c0-12.76-3.08-21.78-12.65-21.78c-9.57,0-12.65,9.021-12.65,21.78
16
+ c0,12.869,3.08,21.779,12.65,21.779C164.448,61.49,167.528,52.58,167.528,39.711z"/>
17
+ <path fill="#FFFFFF" d="M219.007,52.691h-7.479v25.52h-20.13v-77h27.609c21.23,0,29.591,9.68,29.591,25.85
18
+ C248.598,43.121,240.237,52.691,219.007,52.691z M218.348,18.591h-6.82v16.94h6.82c5.72,0,10.01-1.541,10.01-8.471
19
+ S224.067,18.591,218.348,18.591z"/>
20
+ <path fill="#FFFFFF" d="M278.516,52.691h-7.479v25.52h-20.13v-77h27.609c21.23,0,29.591,9.68,29.591,25.85
21
+ C308.106,43.121,299.746,52.691,278.516,52.691z M277.856,18.591h-6.82v16.94h6.82c5.72,0,10.01-1.541,10.01-8.471
22
+ S283.576,18.591,277.856,18.591z"/>
23
+ <path fill="#FFFFFF" d="M310.416,78.211v-77h49.39v17.82h-29.26v11.989h23.65V48.4h-23.65v11.99h29.7v17.82H310.416z"/>
24
+ </g>
25
+ </svg>
@@ -0,0 +1,9 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="231.959px" height="231.959px" viewBox="0 0 231.959 231.959" enable-background="new 0 0 231.959 231.959"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <rect x="0" y="0" fill="#e7ebf2" width="231.959" height="231.959"/>
9
+ </svg>
@@ -0,0 +1,14 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="502.062px" height="502.062px" viewBox="0 0 502.062 502.062" enable-background="new 0 0 502.062 502.062"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <circle fill="#89BD2F" cx="251.031" cy="251.031" r="251.031"/>
9
+ <path fill="#FFFFFF" d="M290.908,204.098c-1.73-4.668,46.487-47.731,18.359-82.624c-6.586-8.166-28.908,39.069-60.613,60.457
10
+ c-17.491,11.799-58.189,36.913-58.189,50.787v89.833c0,16.705,64.531,34.376,113.588,34.376c17.96,0,44.007-112.618,44.007-130.509
11
+ C348.06,208.461,292.639,208.767,290.908,204.098z M177.333,205.347c-8.636,0-39.399,5.253-39.399,40.997v63.667
12
+ c0,35.746,30.762,39.686,39.399,39.686c8.632,0-13.133-7.521-13.133-29.672V236.33C164.2,213.106,185.965,205.347,177.333,205.347z"
13
+ />
14
+ </svg>
@@ -0,0 +1,16 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="502.062px" height="502.062px" viewBox="0 0 502.062 502.062" enable-background="new 0 0 502.062 502.062"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <circle fill="#3DB3E2" cx="251.031" cy="251.031" r="251.031"/>
9
+ <path fill="#FFFFFF" d="M363.856,156.309H134.931c-15.739,0-28.616,12.877-28.616,28.616v143.078
10
+ c0,15.739,12.877,28.616,28.616,28.616h228.925c15.739,0,28.616-12.877,28.616-28.616V184.924
11
+ C392.471,169.186,379.594,156.309,363.856,156.309z M363.856,328.002H134.931v-85.847h228.925V328.002z M363.856,199.232H134.931
12
+ v-14.308h228.925V199.232z M163.546,272.202v8.585h8.585v-8.585H163.546z M215.054,289.371v8.585h17.169v-8.585h8.585v-8.585h8.585
13
+ v-8.585h-17.169v8.585h-8.585v8.585H215.054z M249.393,297.956v-8.585h-8.585v8.585H249.393z M206.47,297.956v-8.585H189.3v8.585
14
+ H206.47z M215.054,280.787h8.585v-8.585H206.47v17.169h8.585V280.787z M180.716,289.371h8.585v-8.585h8.585v-8.585h-17.169v8.585
15
+ h-8.585v8.585h-8.585v8.585h17.169V289.371z"/>
16
+ </svg>
@@ -0,0 +1,15 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="502.062px" height="502.062px" viewBox="0 0 502.062 502.062" enable-background="new 0 0 502.062 502.062"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <circle fill="#909091" cx="251.031" cy="251.031" r="251.031"/>
9
+ <path fill="#FFFFFF" d="M402.991,237.719c-6.284-6.68-36.621-36.416-50.491-49.992c-4.249-4.15-10.342-6.795-16.707-6.795
10
+ c-6.366,0-82.509,0-82.509,0s-76.144,0-82.509,0c-6.365,0-12.458,2.644-16.707,6.795c-13.871,13.576-44.207,43.312-50.491,49.992
11
+ c-7.84,8.336-12.142,14.99-10.094,23.232l8.992,49.276c2.041,8.239,11.071,14.983,20.064,14.983H384.03
12
+ c8.992,0,18.022-6.744,20.064-14.983l8.992-49.276C415.134,252.709,410.832,246.055,402.991,237.719z M318.175,248.402
13
+ c-1.628,0-3.106,0.825-3.839,2.129l-13.097,32.624h-95.91l-13.097-32.624c-0.733-1.304-2.21-2.129-3.839-2.129h-56.819l32.71-37.011
14
+ h177.999l32.71,37.011H318.175z"/>
15
+ </svg>
@@ -0,0 +1,14 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="502.062px" height="502.062px" viewBox="0 0 502.062 502.062" enable-background="new 0 0 502.062 502.062"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <circle fill="#E6311C" cx="251.031" cy="251.031" r="251.031"/>
9
+ <path fill="#FFFFFF" d="M202.229,293.308c1.851,4.994-49.731,51.061-19.64,88.389c7.045,8.736,30.925-41.795,64.842-64.676
10
+ c18.711-12.622,62.249-39.489,62.249-54.331v-96.101c0-17.87-69.033-36.775-121.513-36.775c-19.213,0-47.077,120.476-47.077,139.616
11
+ C141.089,288.64,200.377,288.312,202.229,293.308z M323.729,291.971c9.239,0,42.148-5.62,42.148-43.857v-68.11
12
+ c0-38.24-32.909-42.455-42.148-42.455c-9.236,0,14.049,8.045,14.049,31.742v89.535C337.778,283.671,314.492,291.971,323.729,291.971
13
+ z"/>
14
+ </svg>
@@ -0,0 +1,14 @@
1
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In -->
2
+ <svg version="1.1"
3
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
4
+ x="0px" y="0px" width="502.062px" height="502.062px" viewBox="0 0 502.062 502.062" enable-background="new 0 0 502.062 502.062"
5
+ xml:space="preserve">
6
+ <defs>
7
+ </defs>
8
+ <circle fill="#E32479" cx="251.031" cy="251.031" r="251.031"/>
9
+ <g>
10
+ <path fill="#FFFFFF" d="M203.353,389.855h29.961l67.227-119.842h77.339c0,0,44.941,0,44.941-20.972s-44.941-20.972-44.941-20.972
11
+ H300.54l-67.227-119.842h-29.961l37.266,119.842h-53.733l-33.711-29.961h-29.961l23.968,50.933l-23.968,50.933h29.961
12
+ l33.711-29.961h53.733L203.353,389.855z"/>
13
+ </g>
14
+ </svg>
@@ -0,0 +1,11 @@
1
+ #= require jquery
2
+ #= require jquery_ujs
3
+ #= require_tree .
4
+
5
+ $ ->
6
+ # Automatically focus all fields with the 'focus' class
7
+ $('input.focus').focus()
8
+
9
+ # When clicking the order search button, toggle the form
10
+ $('a[rel=searchOrders]').on 'click', ->
11
+ $('div.orderSearch').toggle()
@@ -0,0 +1,302 @@
1
+ /*
2
+ *= require shoppe/reset
3
+ *= require shoppe/elements
4
+ *= require_self
5
+ */
6
+
7
+ @import 'variables';
8
+
9
+ html { font-family:$font; font-size:12px; color:#000; -webkit-font-smoothing:antialiased; background-color:#f7f9fc;}
10
+
11
+ nav.sidebar {
12
+ width:200px;
13
+ background:#40454D;
14
+ position:fixed;
15
+ top:0;
16
+ bottom:0;
17
+ header.logo {
18
+ height:57px;
19
+ background:image-url('shoppe/logo.svg') #9AC835 no-repeat 22px 25px;
20
+ background-size:45px;
21
+ padding-left:80px;
22
+ padding-top:28px;
23
+ h1 a {
24
+ display:block;
25
+ width:72px;
26
+ height:16px;
27
+ background:image-url('shoppe/shoppe.svg') no-repeat;
28
+ background-size:72px 16px;
29
+ text-indent:-40000px;
30
+ }
31
+ p { color:#fff; font-size:0.9em; margin-top:4px; }
32
+ }
33
+
34
+ p.logged {
35
+ background:#5B6270;
36
+ padding:12px 20px;
37
+ color:#fff;
38
+ font-size:0.9em;
39
+ }
40
+
41
+ ul {
42
+ li {
43
+ span.pending { float:right; font-size:0.9em; font-weight:bold;background:#5B6270; color:#fff;padding:2px 7px; border-radius:16px; margin-top:9px; margin-right:10px;}
44
+ a {
45
+ display:block;
46
+ border-bottom:1px solid rgba(255,255,255,0.05);
47
+ color:rgba(255,255,255,0.7);
48
+ text-decoration:none;
49
+ padding:10px 20px;
50
+ font-size:1.1em;
51
+ &:hover {
52
+ background:rgba(0,0,0,0.1);
53
+ }
54
+ &.active {
55
+ font-weight:bold;
56
+ color:#fff;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ header.main {
64
+ position:fixed;
65
+ left:200px;
66
+ right:0;
67
+ height:85px;
68
+ background:#fff;
69
+ box-shadow: 0 0px 15px -2px rgba(0,0,0,0.2);
70
+ p.buttons { float:right; margin-top:27px; margin-right:35px;}
71
+ p.buttons a { margin-left:10px;}
72
+ h2 { margin-top:28px; margin-left:35px; font-size:1.8em; color:#333;}
73
+ h2 span { font-size:0.5em; font-weight:normal; color:#999; margin-left:10px;}
74
+ }
75
+
76
+ #content {
77
+ padding-left:200px;
78
+ padding-top:85px;
79
+
80
+ section.main {
81
+ padding:35px;
82
+ }
83
+
84
+ //
85
+ // flashes
86
+ //
87
+ #flash-notice { background:#21a3e0; padding:15px 35px; color:#fff; font-size:1.2em; font-weight:bold;}
88
+ #flash-alert { background:#e04e21; padding:15px 35px; color:#fff; font-size:1.2em; font-weight:bold;}
89
+
90
+ //
91
+ // data table
92
+ //
93
+ div.table {
94
+ table.data {
95
+ width:100%;
96
+ th, td { padding:10px;}
97
+ thead th { border:1px solid #40454D; background:#40454D; text-align:left; font-weight:normal; font-size:0.9em; color:#fff; }
98
+ tbody td { border:1px solid #cfd4dd; background:#fff;}
99
+ a { color:inherit;}
100
+ tbody th { text-align:left; background:#5B6270; border:1px solid #5B6270;font-size:1.2em; color:#fff;}
101
+ tfoot td.right { text-align:right; }
102
+ tfoot td.bold { font-weight:bold;}
103
+ tfoot td { border-top:0 solid #ccc; background:#fafafa;}
104
+ tfoot tr:first-child td { border-top-width:3px;}
105
+ }
106
+ }
107
+
108
+
109
+ //
110
+ // Status tags
111
+ //
112
+ span.status-tag {
113
+ font-weight:600;
114
+ font-size:11px;
115
+ text-transform:uppercase;
116
+ background-size:16px;
117
+ background-repeat:no-repeat;
118
+ padding-left:20px;
119
+ min-height:16px;
120
+ display:inline-block;
121
+ &.shipped { color:#E32479; background-image:image-url('shoppe/statuses/shipped.svg'); }
122
+ &.accepted { color:#89BD2F; background-image:image-url('shoppe/statuses/accepted.svg'); }
123
+ &.rejected { color:#E33127; background-image:image-url('shoppe/statuses/rejected.svg'); }
124
+ &.received { color:#909091; background-image:image-url('shoppe/statuses/received.svg'); }
125
+ }
126
+
127
+ //
128
+ // forms
129
+ //
130
+ form {
131
+ fieldset {
132
+ border:1px solid #ddd;
133
+ background:#fff;
134
+ padding-top:22px;
135
+ padding-bottom:25px;
136
+ margin-bottom:15px;
137
+ border-bottom-left-radius:6px;
138
+ border-bottom-right-radius:6px;
139
+ legend { border-top-left-radius:8px; border-top-right-radius:8px; font-weight:bold; color:#fff;padding:1%;background:#40454D; width:98%;}
140
+ dl {
141
+ margin:0 25px;
142
+ overflow:hidden;
143
+ margin-bottom:15px;
144
+ &:last-child { margin-bottom:0;}
145
+ dt { width:150px; float:left;}
146
+ dd { margin-left:170px; }
147
+ dd input[type=text], dd input[type=password], textarea {
148
+ width:97%; padding:8px; font-size:1.2em; border:1px solid #ccc;
149
+ font-family:$font;
150
+ border-radius:6px;
151
+ &:focus { border-color:#999; background-color:#f6f9f0;}
152
+ &.short { width:100px;}
153
+ }
154
+ dd textarea { height:80px; }
155
+ dd p.help { margin-top:10px; color:#999;}
156
+ }
157
+ }
158
+ p.submit {margin:30px 0 30px 185px; }
159
+ p.submit span.right { float:right;}
160
+ .errorExplanation {
161
+ margin-bottom:25px;
162
+ border:4px solid #e43c3c;
163
+ background:#ffeded;
164
+ padding:10px 10px 10px 10px;
165
+ line-height:1.5;
166
+ h2 { font-size:1.0em !important; font-weight:600; color:#F20011; margin-bottom:3px;}
167
+ p { display:none;}
168
+ ul li { list-style:disc; margin-left:25px;}
169
+ }
170
+ }
171
+
172
+ //
173
+ // attachment preview
174
+ //
175
+ div.attachmentPreview {
176
+ overflow:hidden;
177
+ margin-bottom:15px;
178
+ div.imgContainer { float:left;padding:4px; border:1px solid #ccc; background:#fff;}
179
+ div.imgContainer div.img { background-image:image-url('shoppe/document.svg'); width:40px; height:40px; display:block;background-size:contain; background-repeat:no-repeat; background-position: center center;}
180
+ div.desc {margin-left:60px; padding-top:5px;}
181
+ div.desc span { display:block}
182
+ div.desc span.filename { font-size:1.1em; margin-bottom:5px;}
183
+ div.desc span.filename a { text-decoration:none; font-weight:bold;}
184
+ div.desc span.delete a { color:#FF9781; font-size:0.9em; }
185
+ div.desc a { color:#000;}
186
+ }
187
+
188
+ //
189
+ // order summary page
190
+ //
191
+ #order {
192
+ .details {
193
+ overflow:hidden;
194
+ .left {
195
+ width:55%;
196
+ float:left
197
+ }
198
+ .right {
199
+ width:45%;
200
+ float:left;
201
+ p.acceptreject { text-align:center; margin-top:22px; }
202
+ p.acceptreject a { margin: 0 5px;}
203
+ p.ship { text-align:center; margin-top:22px;}
204
+ p.ship input[type=text] { padding:5px; width:200px; }
205
+ }
206
+
207
+ dl {
208
+ dt { float:left; width:30%; text-align:right; color:#888;white-space:nowrap}
209
+ dd { font-weight:bold; margin-left:35%; margin-bottom:6px; white-space:nowrap}
210
+ }
211
+
212
+ }
213
+
214
+ .status-bar {
215
+ background:image-url('shoppe/square.svg') repeat-x 0 15px;
216
+ background-size:8px;
217
+ margin:45px 0;
218
+ overflow:hidden;
219
+ ul {
220
+ li { width:25%;float:left; text-align:center; background:image-url('shoppe/statuses/shipped.svg') no-repeat center 0; background-size:36px; padding-top:42px;z-index:10;}
221
+ h4 { color:#E32479;}
222
+ li p { margin-top:5px; font-size:0.9em; color:#999;}
223
+ li a { color:inherit;}
224
+ li.payment { background-image:image-url('shoppe/statuses/paid.svg')}
225
+ li.payment h4 { color:#3DB3E2;}
226
+ li.received { background-image:image-url('shoppe/statuses/received.svg')}
227
+ li.received h4 { color:#909091;}
228
+ li.accepted { background-image:image-url('shoppe/statuses/accepted.svg')}
229
+ li.accepted h4 { color:#89BD2F;}
230
+ li.rejected { background-image:image-url('shoppe/statuses/rejected.svg')}
231
+ li.rejected h4 { color: #E33127}
232
+ }
233
+ }
234
+
235
+ .order_items {
236
+ margin:25px 0;
237
+ }
238
+ }
239
+
240
+ //
241
+ // orer search
242
+ //
243
+ div.orderSearch {
244
+ overflow:hidden;
245
+ display:none;
246
+ dl.left, dl.right {
247
+ float:left;
248
+ width:50%;
249
+ dt { float:left; width:40%; text-align:right; padding-top:3px; color:#888;}
250
+ dd { margin-left:44%; margin-bottom:15px;}
251
+ dd input.small { width:40%;}
252
+ }
253
+ p.submit {
254
+ float:right;
255
+ }
256
+ }
257
+
258
+ //
259
+ // pagination
260
+ //
261
+ nav.pagination {
262
+ display:block;
263
+ margin:25px 0;
264
+ overflow:hidden;
265
+ text-align:center;
266
+ span {
267
+ display:inline-block;
268
+ border:1px solid #ccc;
269
+ margin-right:3px;
270
+ color:#333;
271
+ background:#fff;
272
+ &.current { background:#9AC835; border-color:#7B9F26; color:#fff; font-weight:600; padding:5px 10px;}
273
+ a {
274
+ padding:5px 10px;
275
+ display:inline-block;
276
+ color:inherit;
277
+ text-decoration:none;
278
+ }
279
+ }
280
+ }
281
+
282
+
283
+
284
+ }
285
+
286
+ footer {
287
+ position:fixed;
288
+ bottom:0;
289
+ width:200px;
290
+ background:rgba(0,0,0,0.05);
291
+
292
+ p.store {
293
+ a {
294
+ display:block;
295
+ background:#4B515C;
296
+ color:rgba(255,255,255,0.7);
297
+ padding:12px 20px;
298
+ font-size:1.1em;
299
+ text-decoration:none;
300
+ }
301
+ }
302
+ }