shoppe 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/Rakefile +18 -0
- data/app/assets/images/shoppe/document.svg +1 -0
- data/app/assets/images/shoppe/logo.svg +47 -0
- data/app/assets/images/shoppe/shoppe.svg +25 -0
- data/app/assets/images/shoppe/square.svg +9 -0
- data/app/assets/images/shoppe/statuses/accepted.svg +14 -0
- data/app/assets/images/shoppe/statuses/paid.svg +16 -0
- data/app/assets/images/shoppe/statuses/received.svg +15 -0
- data/app/assets/images/shoppe/statuses/rejected.svg +14 -0
- data/app/assets/images/shoppe/statuses/shipped.svg +14 -0
- data/app/assets/javascripts/shoppe/application.coffee +11 -0
- data/app/assets/stylesheets/shoppe/application.scss +302 -0
- data/app/assets/stylesheets/shoppe/elements.scss +73 -0
- data/app/assets/stylesheets/shoppe/reset.scss +93 -0
- data/app/assets/stylesheets/shoppe/sub.scss +90 -0
- data/app/assets/stylesheets/shoppe/variables.scss +1 -0
- data/app/controllers/shoppe/application_controller.rb +39 -0
- data/app/controllers/shoppe/attachments_controller.rb +12 -0
- data/app/controllers/shoppe/dashboard_controller.rb +7 -0
- data/app/controllers/shoppe/delivery_service_prices_controller.rb +42 -0
- data/app/controllers/shoppe/delivery_services_controller.rb +45 -0
- data/app/controllers/shoppe/orders_controller.rb +36 -0
- data/app/controllers/shoppe/product_categories_controller.rb +45 -0
- data/app/controllers/shoppe/products_controller.rb +45 -0
- data/app/controllers/shoppe/sessions_controller.rb +31 -0
- data/app/controllers/shoppe/users_controller.rb +46 -0
- data/app/helpers/shoppe/application_helper.rb +10 -0
- data/app/helpers/shoppe/shoppe_helper.rb +28 -0
- data/app/mailers/shoppe/order_mailer.rb +25 -0
- data/app/mailers/shoppe/user_mailer.rb +10 -0
- data/app/models/shoppe/delivery_service.rb +22 -0
- data/app/models/shoppe/delivery_service_price.rb +19 -0
- data/app/models/shoppe/order.rb +325 -0
- data/app/models/shoppe/order_item.rb +113 -0
- data/app/models/shoppe/product.rb +56 -0
- data/app/models/shoppe/product_category.rb +22 -0
- data/app/models/shoppe/user.rb +41 -0
- data/app/views/layouts/shoppe/application.html.haml +35 -0
- data/app/views/layouts/shoppe/sub.html.haml +10 -0
- data/app/views/shoppe/delivery_service_prices/_form.html.haml +28 -0
- data/app/views/shoppe/delivery_service_prices/edit.html.haml +5 -0
- data/app/views/shoppe/delivery_service_prices/index.html.haml +22 -0
- data/app/views/shoppe/delivery_service_prices/new.html.haml +5 -0
- data/app/views/shoppe/delivery_services/_form.html.haml +35 -0
- data/app/views/shoppe/delivery_services/edit.html.haml +5 -0
- data/app/views/shoppe/delivery_services/index.html.haml +24 -0
- data/app/views/shoppe/delivery_services/new.html.haml +5 -0
- data/app/views/shoppe/order_mailer/accepted.text.erb +12 -0
- data/app/views/shoppe/order_mailer/received.text.erb +12 -0
- data/app/views/shoppe/order_mailer/rejected.text.erb +10 -0
- data/app/views/shoppe/order_mailer/shipped.text.erb +16 -0
- data/app/views/shoppe/orders/index.html.haml +60 -0
- data/app/views/shoppe/orders/show.html.haml +117 -0
- data/app/views/shoppe/product_categories/_form.html.haml +25 -0
- data/app/views/shoppe/product_categories/edit.html.haml +6 -0
- data/app/views/shoppe/product_categories/index.html.haml +15 -0
- data/app/views/shoppe/product_categories/new.html.haml +5 -0
- data/app/views/shoppe/products/_form.html.haml +71 -0
- data/app/views/shoppe/products/edit.html.haml +5 -0
- data/app/views/shoppe/products/index.html.haml +27 -0
- data/app/views/shoppe/products/new.html.haml +5 -0
- data/app/views/shoppe/sessions/new.html.haml +12 -0
- data/app/views/shoppe/sessions/reset.html.haml +11 -0
- data/app/views/shoppe/user_mailer/new_password.text.erb +9 -0
- data/app/views/shoppe/users/_form.html.haml +26 -0
- data/app/views/shoppe/users/edit.html.haml +5 -0
- data/app/views/shoppe/users/index.html.haml +17 -0
- data/app/views/shoppe/users/new.html.haml +5 -0
- data/config/routes.rb +24 -0
- data/config/shoppe.example.yml +6 -0
- data/db/migrate/20130926094549_create_shoppe_initial_schema.rb +116 -0
- data/db/seeds.rb +85 -0
- data/db/seeds_data/poe400.jpg +0 -0
- data/db/seeds_data/snom-870-blk.jpg +0 -0
- data/db/seeds_data/snom-870-grey.jpg +0 -0
- data/db/seeds_data/snom-mm2.jpg +0 -0
- data/db/seeds_data/spa303.jpg +0 -0
- data/db/seeds_data/t18p.jpg +0 -0
- data/db/seeds_data/t20p.jpg +0 -0
- data/db/seeds_data/t22p.jpg +0 -0
- data/db/seeds_data/t26p.jpg +0 -0
- data/db/seeds_data/t41pn.jpg +0 -0
- data/db/seeds_data/t46gn.jpg +0 -0
- data/db/seeds_data/w52p.jpg +0 -0
- data/db/seeds_data/yhs32.jpg +0 -0
- data/lib/shoppe.rb +41 -0
- data/lib/shoppe/engine.rb +35 -0
- data/lib/shoppe/errors/inappropriate_delivery_service.rb +11 -0
- data/lib/shoppe/errors/insufficient_stock_to_fulfil.rb +19 -0
- data/lib/shoppe/errors/not_enough_stock.rb +19 -0
- data/lib/shoppe/errors/payment_declined.rb +15 -0
- data/lib/shoppe/setup_generator.rb +14 -0
- data/lib/shoppe/version.rb +3 -0
- data/lib/tasks/shoppe.rake +17 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/shoppe.yml +7 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +119 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +893 -0
- data/test/dummy/log/test.log +6397 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/models/shoppe/basket_test.rb +26 -0
- data/test/models/shoppe/user_test.rb +37 -0
- data/test/shoppe_test.rb +17 -0
- data/test/test_helper.rb +4 -0
- metadata +453 -0
data/MIT-LICENSE
ADDED
@@ -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.
|
data/Rakefile
ADDED
@@ -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
|
+
}
|