shoppe 0.0.5

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 (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
+ }