diff --git a/Gemfile b/Gemfile
index 741c8a0e5b..6d9822be68 100644
--- a/Gemfile
+++ b/Gemfile
@@ -30,6 +30,7 @@ gem 'newrelic_rpm'
gem 'haml'
gem 'sass', "~> 3.3"
gem 'sass-rails', '~> 3.2.3', groups: [:default, :assets]
+gem 'redcarpet'
gem 'aws-sdk'
gem 'db2fog'
gem 'andand'
@@ -72,11 +73,12 @@ group :assets do
gem 'momentjs-rails'
gem 'angular-rails-templates', '~> 0.2.0'
end
+
gem "foundation-rails"
gem 'foundation_rails_helper', github: 'willrjmarshall/foundation_rails_helper', branch: "rails3"
gem 'jquery-rails'
-
+gem 'css_splitter'
group :test, :development do
diff --git a/Gemfile.lock b/Gemfile.lock
index e0a2e5e8ce..1c3fb92a5d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -219,6 +219,8 @@ GEM
safe_yaml (~> 0.9.0)
css_parser (1.3.5)
addressable
+ css_splitter (0.4.1)
+ sprockets (>= 2.0.0)
daemons (1.2.2)
dalli (2.7.2)
database_cleaner (0.7.1)
@@ -428,6 +430,7 @@ GEM
ffi (>= 0.5.0)
rdoc (3.12.2)
json (~> 1.4)
+ redcarpet (3.2.3)
ref (1.0.5)
representative (1.0.5)
activesupport (>= 2.2.2)
@@ -548,6 +551,7 @@ DEPENDENCIES
coffee-rails (~> 3.2.1)
comfortable_mexican_sofa
compass-rails
+ css_splitter
custom_error_message!
daemons
dalli
@@ -589,6 +593,7 @@ DEPENDENCIES
rack-ssl
rails (= 3.2.21)
rails-i18n (~> 3.0.0)
+ redcarpet
representative_view
roadie-rails (~> 1.0.3)
rspec-rails
diff --git a/app/assets/images/case-studies/South_East_Food_Hub.png b/app/assets/images/case-studies/South_East_Food_Hub.png
new file mode 100644
index 0000000000..1760a68d72
Binary files /dev/null and b/app/assets/images/case-studies/South_East_Food_Hub.png differ
diff --git a/app/assets/images/case-studies/baw-baw.png b/app/assets/images/case-studies/baw-baw.png
new file mode 100644
index 0000000000..56dd2c94f1
Binary files /dev/null and b/app/assets/images/case-studies/baw-baw.png differ
diff --git a/app/assets/images/case-studies/bfc_logo_square.png b/app/assets/images/case-studies/bfc_logo_square.png
new file mode 100644
index 0000000000..90f54df507
Binary files /dev/null and b/app/assets/images/case-studies/bfc_logo_square.png differ
diff --git a/app/assets/images/case-studies/bonnie-beef-growers.png b/app/assets/images/case-studies/bonnie-beef-growers.png
new file mode 100644
index 0000000000..ad9f5b14ad
Binary files /dev/null and b/app/assets/images/case-studies/bonnie-beef-growers.png differ
diff --git a/app/assets/images/case-studies/jindivick.jpg b/app/assets/images/case-studies/jindivick.jpg
new file mode 100644
index 0000000000..b94ab00166
Binary files /dev/null and b/app/assets/images/case-studies/jindivick.jpg differ
diff --git a/app/assets/images/case-studies/jonai.png b/app/assets/images/case-studies/jonai.png
new file mode 100644
index 0000000000..6cdf7dd20b
Binary files /dev/null and b/app/assets/images/case-studies/jonai.png differ
diff --git a/app/assets/images/case-studies/longley.png b/app/assets/images/case-studies/longley.png
new file mode 100644
index 0000000000..0d20ae93df
Binary files /dev/null and b/app/assets/images/case-studies/longley.png differ
diff --git a/app/assets/images/case-studies/mt-alexander.png b/app/assets/images/case-studies/mt-alexander.png
new file mode 100644
index 0000000000..efb86d2463
Binary files /dev/null and b/app/assets/images/case-studies/mt-alexander.png differ
diff --git a/app/assets/images/case-studies/wandiful.png b/app/assets/images/case-studies/wandiful.png
new file mode 100644
index 0000000000..f7c4469022
Binary files /dev/null and b/app/assets/images/case-studies/wandiful.png differ
diff --git a/app/assets/images/enterprise-type.png b/app/assets/images/enterprise-type.png
new file mode 100644
index 0000000000..0c5741a82f
Binary files /dev/null and b/app/assets/images/enterprise-type.png differ
diff --git a/app/assets/images/favicon.ico b/app/assets/images/favicon.ico
deleted file mode 100644
index 4011e1ba8b..0000000000
Binary files a/app/assets/images/favicon.ico and /dev/null differ
diff --git a/app/assets/images/favicon.png b/app/assets/images/favicon.png
deleted file mode 100644
index 758c60d7e2..0000000000
Binary files a/app/assets/images/favicon.png and /dev/null differ
diff --git a/app/assets/images/groups.svg b/app/assets/images/groups.svg
index f4ca32ec27..a2e353d47f 100644
--- a/app/assets/images/groups.svg
+++ b/app/assets/images/groups.svg
@@ -1,1565 +1 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/app/assets/images/home/background-blurred-oranges.jpg b/app/assets/images/home/background-blurred-oranges.jpg
new file mode 100644
index 0000000000..61019198e3
Binary files /dev/null and b/app/assets/images/home/background-blurred-oranges.jpg differ
diff --git a/app/assets/images/home/home-apples.jpg b/app/assets/images/home/home-apples.jpg
new file mode 100644
index 0000000000..5cf22d4a50
Binary files /dev/null and b/app/assets/images/home/home-apples.jpg differ
diff --git a/app/assets/images/home/home-oranges.jpg b/app/assets/images/home/home-oranges.jpg
new file mode 100644
index 0000000000..6cd547c97f
Binary files /dev/null and b/app/assets/images/home/home-oranges.jpg differ
diff --git a/app/assets/images/home/home-strawberries.jpg b/app/assets/images/home/home-strawberries.jpg
new file mode 100644
index 0000000000..e837c69065
Binary files /dev/null and b/app/assets/images/home/home-strawberries.jpg differ
diff --git a/app/assets/images/home/home.jpg b/app/assets/images/home/home.jpg
new file mode 100644
index 0000000000..cb59fbef31
Binary files /dev/null and b/app/assets/images/home/home.jpg differ
diff --git a/app/assets/images/home/home1.jpg b/app/assets/images/home/home1.jpg
new file mode 100644
index 0000000000..0e37397127
Binary files /dev/null and b/app/assets/images/home/home1.jpg differ
diff --git a/app/assets/images/home/home2.jpg b/app/assets/images/home/home2.jpg
new file mode 100644
index 0000000000..fa548cb519
Binary files /dev/null and b/app/assets/images/home/home2.jpg differ
diff --git a/app/assets/images/home/home3.jpg b/app/assets/images/home/home3.jpg
new file mode 100644
index 0000000000..26fdf1037c
Binary files /dev/null and b/app/assets/images/home/home3.jpg differ
diff --git a/app/assets/images/home/ofn_bg_1.jpg b/app/assets/images/home/ofn_bg_1.jpg
deleted file mode 100644
index 416ebf35fb..0000000000
Binary files a/app/assets/images/home/ofn_bg_1.jpg and /dev/null differ
diff --git a/app/assets/images/home/shopping-bg.jpg b/app/assets/images/home/shopping-bg.jpg
deleted file mode 100644
index 0a02b0f6f4..0000000000
Binary files a/app/assets/images/home/shopping-bg.jpg and /dev/null differ
diff --git a/app/assets/images/home/tagline-bg.jpg b/app/assets/images/home/tagline-bg.jpg
deleted file mode 100644
index 68366a9569..0000000000
Binary files a/app/assets/images/home/tagline-bg.jpg and /dev/null differ
diff --git a/app/assets/images/hubs-bg.jpg b/app/assets/images/hubs-bg.jpg
new file mode 100644
index 0000000000..2d1c49e230
Binary files /dev/null and b/app/assets/images/hubs-bg.jpg differ
diff --git a/app/assets/images/icon-mask-apple.png b/app/assets/images/icon-mask-apple.png
new file mode 100644
index 0000000000..87bfa91bb8
Binary files /dev/null and b/app/assets/images/icon-mask-apple.png differ
diff --git a/app/assets/images/icon-mask-bread.png b/app/assets/images/icon-mask-bread.png
new file mode 100644
index 0000000000..d5c29d96ff
Binary files /dev/null and b/app/assets/images/icon-mask-bread.png differ
diff --git a/app/assets/images/icon-mask-magnifier.png b/app/assets/images/icon-mask-magnifier.png
new file mode 100644
index 0000000000..7f53b7db9d
Binary files /dev/null and b/app/assets/images/icon-mask-magnifier.png differ
diff --git a/app/assets/images/icon-mask-truck.png b/app/assets/images/icon-mask-truck.png
new file mode 100644
index 0000000000..40550f98c2
Binary files /dev/null and b/app/assets/images/icon-mask-truck.png differ
diff --git a/app/assets/images/logo-australia.png b/app/assets/images/logo-australia.png
new file mode 100644
index 0000000000..46b8ef071a
Binary files /dev/null and b/app/assets/images/logo-australia.png differ
diff --git a/app/assets/images/logo-black.png b/app/assets/images/logo-black.png
new file mode 100644
index 0000000000..31ec1422f1
Binary files /dev/null and b/app/assets/images/logo-black.png differ
diff --git a/app/assets/images/logo-black.svg b/app/assets/images/logo-black.svg
new file mode 100644
index 0000000000..5f69f364c4
--- /dev/null
+++ b/app/assets/images/logo-black.svg
@@ -0,0 +1,82 @@
+
+
diff --git a/app/assets/images/logo-color.png b/app/assets/images/logo-color.png
new file mode 100644
index 0000000000..e464781a54
Binary files /dev/null and b/app/assets/images/logo-color.png differ
diff --git a/app/assets/images/logo-color.svg b/app/assets/images/logo-color.svg
new file mode 100644
index 0000000000..84de1b4ceb
--- /dev/null
+++ b/app/assets/images/logo-color.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/assets/images/logo-global-white.png b/app/assets/images/logo-global-white.png
new file mode 100644
index 0000000000..8761bafe9d
Binary files /dev/null and b/app/assets/images/logo-global-white.png differ
diff --git a/app/assets/images/logo-white-notext.png b/app/assets/images/logo-white-notext.png
new file mode 100644
index 0000000000..bfd590c621
Binary files /dev/null and b/app/assets/images/logo-white-notext.png differ
diff --git a/app/assets/images/logo-white.png b/app/assets/images/logo-white.png
new file mode 100644
index 0000000000..ffd1c6f73a
Binary files /dev/null and b/app/assets/images/logo-white.png differ
diff --git a/app/assets/images/logo-white.svg b/app/assets/images/logo-white.svg
new file mode 100644
index 0000000000..c2c22bab40
--- /dev/null
+++ b/app/assets/images/logo-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/assets/images/logo.jpg b/app/assets/images/logo.jpg
deleted file mode 100644
index 49e232eb55..0000000000
Binary files a/app/assets/images/logo.jpg and /dev/null differ
diff --git a/app/assets/images/logo.png b/app/assets/images/logo.png
deleted file mode 100644
index aca7aac1dc..0000000000
Binary files a/app/assets/images/logo.png and /dev/null differ
diff --git a/app/assets/images/noimage/large.png b/app/assets/images/noimage/large.png
index 29dcff5ea9..166a74488a 100644
Binary files a/app/assets/images/noimage/large.png and b/app/assets/images/noimage/large.png differ
diff --git a/app/assets/images/noimage/mini.png b/app/assets/images/noimage/mini.png
index 5094c92a18..db94c3ce7f 100644
Binary files a/app/assets/images/noimage/mini.png and b/app/assets/images/noimage/mini.png differ
diff --git a/app/assets/images/noimage/product.png b/app/assets/images/noimage/product.png
index ca06da639b..6ca94eadb2 100644
Binary files a/app/assets/images/noimage/product.png and b/app/assets/images/noimage/product.png differ
diff --git a/app/assets/images/noimage/small.png b/app/assets/images/noimage/small.png
index ca06da639b..02088d8da0 100644
Binary files a/app/assets/images/noimage/small.png and b/app/assets/images/noimage/small.png differ
diff --git a/app/assets/images/ofn-o.png b/app/assets/images/ofn-o.png
new file mode 100644
index 0000000000..d6498ddb4d
Binary files /dev/null and b/app/assets/images/ofn-o.png differ
diff --git a/app/assets/images/ofn-o.svg b/app/assets/images/ofn-o.svg
new file mode 100644
index 0000000000..2082ae6176
--- /dev/null
+++ b/app/assets/images/ofn-o.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/assets/images/ofn_logo.png b/app/assets/images/ofn_logo.png
deleted file mode 100644
index cdf690d997..0000000000
Binary files a/app/assets/images/ofn_logo.png and /dev/null differ
diff --git a/app/assets/images/ofn_logo_beta.png b/app/assets/images/ofn_logo_beta.png
deleted file mode 100644
index 420a51768d..0000000000
Binary files a/app/assets/images/ofn_logo_beta.png and /dev/null differ
diff --git a/app/assets/images/ofn_logo_black.png b/app/assets/images/ofn_logo_black.png
deleted file mode 100644
index d5f250daba..0000000000
Binary files a/app/assets/images/ofn_logo_black.png and /dev/null differ
diff --git a/app/assets/images/ofn_logo_small.png b/app/assets/images/ofn_logo_small.png
deleted file mode 100644
index 90277ab384..0000000000
Binary files a/app/assets/images/ofn_logo_small.png and /dev/null differ
diff --git a/app/assets/images/ofw.png b/app/assets/images/ofw.png
deleted file mode 100644
index ac571bacd0..0000000000
Binary files a/app/assets/images/ofw.png and /dev/null differ
diff --git a/app/assets/images/open-food-network-beta-black.png b/app/assets/images/open-food-network-beta-black.png
deleted file mode 100644
index 8e5f810023..0000000000
Binary files a/app/assets/images/open-food-network-beta-black.png and /dev/null differ
diff --git a/app/assets/images/open-food-network-beta.png b/app/assets/images/open-food-network-beta.png
deleted file mode 100644
index 965a248162..0000000000
Binary files a/app/assets/images/open-food-network-beta.png and /dev/null differ
diff --git a/app/assets/images/open-food-network-beta.svg b/app/assets/images/open-food-network-beta.svg
deleted file mode 100644
index eb882701d4..0000000000
--- a/app/assets/images/open-food-network-beta.svg
+++ /dev/null
@@ -1,840 +0,0 @@
-
-
-
-
diff --git a/app/assets/images/pickup.png b/app/assets/images/pickup.png
deleted file mode 100644
index aabceb508e..0000000000
Binary files a/app/assets/images/pickup.png and /dev/null differ
diff --git a/app/assets/images/pin_bg.png b/app/assets/images/pin_bg.png
deleted file mode 100644
index cfdd66162d..0000000000
Binary files a/app/assets/images/pin_bg.png and /dev/null differ
diff --git a/app/assets/images/producers.svg b/app/assets/images/producers.svg
new file mode 100644
index 0000000000..9804557f4b
--- /dev/null
+++ b/app/assets/images/producers.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/assets/images/store/cart.png b/app/assets/images/store/cart.png
deleted file mode 100755
index 8650c39936..0000000000
Binary files a/app/assets/images/store/cart.png and /dev/null differ
diff --git a/app/assets/images/subtle_white_feathers.png b/app/assets/images/subtle_white_feathers.png
deleted file mode 100644
index dd699f66ba..0000000000
Binary files a/app/assets/images/subtle_white_feathers.png and /dev/null differ
diff --git a/app/assets/images/tile-wide.png b/app/assets/images/tile-wide.png
new file mode 100644
index 0000000000..f4e348b73c
Binary files /dev/null and b/app/assets/images/tile-wide.png differ
diff --git a/app/assets/javascripts/darkswarm/controllers/home_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/home_controller.js.coffee
new file mode 100644
index 0000000000..928f9a4fa1
--- /dev/null
+++ b/app/assets/javascripts/darkswarm/controllers/home_controller.js.coffee
@@ -0,0 +1,5 @@
+Darkswarm.controller "HomeCtrl", ($scope) ->
+ $scope.brandStoryExpanded = false
+
+ $scope.toggleBrandStory = ->
+ $scope.brandStoryExpanded = !$scope.brandStoryExpanded
diff --git a/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee b/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee
new file mode 100644
index 0000000000..659bd227e9
--- /dev/null
+++ b/app/assets/javascripts/darkswarm/directives/page_alert.js.coffee
@@ -0,0 +1,14 @@
+Darkswarm.directive "ofnPageAlert", ($timeout) ->
+ restrict: 'A'
+ scope: true
+ link: (scope, elem, attrs) ->
+ container_elems = $(".off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, .page-alert")
+
+ # Wait a moment after page load before showing the alert. Otherwise we often miss the
+ # start of the animation.
+ $timeout ->
+ container_elems.addClass("move-down")
+ , 1000
+
+ scope.close = ->
+ container_elems.removeClass("move-down")
diff --git a/app/assets/javascripts/templates/product_modal.html.haml b/app/assets/javascripts/templates/product_modal.html.haml
index d99eb3893f..481fa67c20 100644
--- a/app/assets/javascripts/templates/product_modal.html.haml
+++ b/app/assets/javascripts/templates/product_modal.html.haml
@@ -4,7 +4,7 @@
%h3{"bo-text" => "product.name"}
%span
%em from
- %span.avenir{"bo-text" => "enterprise.name"}
+ %span{"bo-text" => "enterprise.name"}
%br
diff --git a/app/assets/stylesheets/darkswarm/_shop-navigation.css.sass b/app/assets/stylesheets/darkswarm/_shop-navigation.css.sass
index 17b68a3e46..a2f2304d3e 100644
--- a/app/assets/stylesheets/darkswarm/_shop-navigation.css.sass
+++ b/app/assets/stylesheets/darkswarm/_shop-navigation.css.sass
@@ -1,3 +1,4 @@
+@import typography
.darkswarm
@@ -20,7 +21,7 @@
margin-right: 12px
location
- font-family: "AvenirBla_IE", "AvenirBla"
+ @include headingFont
@media all and (max-width: 768px)
location, location + small
display: block
@@ -63,6 +64,7 @@
@media all and (max-width: 768px)
font-size: 0.875em
closing
+ @include headingFont
@media all and (max-width: 768px)
font-size: 1.2em
padding-bottom: 10px
diff --git a/app/assets/stylesheets/darkswarm/all.scss b/app/assets/stylesheets/darkswarm/all.scss
index 80e43cdc8b..6cfc32e605 100644
--- a/app/assets/stylesheets/darkswarm/all.scss
+++ b/app/assets/stylesheets/darkswarm/all.scss
@@ -2,13 +2,15 @@
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
-
+
*= require_self
- *= require foundation
- *= require_tree .
*/
+@import 'variables';
+@import 'foundation';
@import 'foundation-icons';
+@import '*';
+
ofn-modal {
display: block;
}
\ No newline at end of file
diff --git a/app/assets/stylesheets/darkswarm/all_split2.css b/app/assets/stylesheets/darkswarm/all_split2.css
new file mode 100644
index 0000000000..e231ca5d02
--- /dev/null
+++ b/app/assets/stylesheets/darkswarm/all_split2.css
@@ -0,0 +1,3 @@
+/*
+ *= require 'darkswarm/all'
+ */
diff --git a/app/assets/stylesheets/darkswarm/big-input.sass b/app/assets/stylesheets/darkswarm/big-input.sass
index 165404fff3..0660fda460 100644
--- a/app/assets/stylesheets/darkswarm/big-input.sass
+++ b/app/assets/stylesheets/darkswarm/big-input.sass
@@ -6,14 +6,14 @@
//Big search used in active table search \\
@mixin big-input($input, $inputhvr, $inputactv)
- @include avenir
+ @include headingFont
@include csstrans
@include border-radius(0.5rem)
background: rgba(255,255,255,0.1)
border: 2px solid $input
font-size: 2rem
box-shadow: 0
- padding: 0.75rem 1rem 0.35rem
+ padding: 0.5rem 1rem
height: auto
width: 100%
margin-bottom: 0.5rem
@@ -33,7 +33,7 @@
background: white
background: rgba(255,255,255,0.5)
text-shadow: 0 0 10px #ffffff
- padding: 1.5rem 1rem 1rem
+ padding: 1rem
letter-spacing: 0.02rem
outline: none
@@ -44,7 +44,7 @@
letter-spacing: 0
@mixin medium-input($input, $inputhvr, $inputactv)
- @include avenir
+ @include headingFont
@include csstrans
@include border-radius(0.5rem)
background: rgba(255,255,255,0.1)
diff --git a/app/assets/stylesheets/darkswarm/branding.css.sass b/app/assets/stylesheets/darkswarm/branding.css.sass
index da2600818e..76614599cf 100644
--- a/app/assets/stylesheets/darkswarm/branding.css.sass
+++ b/app/assets/stylesheets/darkswarm/branding.css.sass
@@ -1,3 +1,11 @@
+$ofn-brand: #f27052
+// e.g. australia, uk, norway specific color
+
+$ofn-grey: #808184
+
+
+// old colors:
+
$clr-brick: #c1122b
$clr-brick-light: #f5e6e7
$clr-brick-light-trans: rgba(245, 230, 231, 0.9)
diff --git a/app/assets/stylesheets/darkswarm/footer.sass b/app/assets/stylesheets/darkswarm/footer.sass
index 9e3f9dac55..0f6b93a90a 100644
--- a/app/assets/stylesheets/darkswarm/footer.sass
+++ b/app/assets/stylesheets/darkswarm/footer.sass
@@ -1,15 +1,75 @@
@import branding
@import mixins
+@import animations
footer
- background: $dark-grey
- border-top: 1px dotted white
- @include panepadding
.row
- &, & *
+ p a
+ font-size: 0.875rem
+ a, a *
+ @include csstrans
color: white
- a, a *
- color: $clr-brick-light-bright
&:hover, &:active, &:focus
- color: $clr-brick-bright
- @include textsoftpress
+ color: rgba(white, 1)
+ text-decoration: underline
+
+ .footer-global
+ background-color: $ofn-grey
+ padding-top: 60px
+ padding-bottom: 40px
+ .logo
+ width: 200px
+ height: 200px
+ background: $ofn-grey
+ @include border-radius(120px)
+ margin: -140px auto 0 auto
+ img
+ margin-top: 36px
+
+ .alert-box
+ background-color: transparent
+ border: none
+ padding: 0
+ a.big-alert
+ @include csstrans
+ width: 100%
+ border: 1px solid rgba($dark-grey, 0.35)
+ background-image: url("/assets/tile-wide.png")
+ background-position: center center
+ padding: 12px 0 8px 0
+ display: block
+ &, & *
+ @include csstrans
+ color: #333
+ &:hover, &:active, &:focus
+ text-decoration: none
+ border-color: white
+ &, & *
+ color: rgba(white, 1)
+ .row
+ &, p, h1, h2, h3, h4, h5, h6
+ color: $disabled-bright
+
+ .footer-local
+ background: lighten($dark-grey, 3%)
+ @include panepadding
+ .row
+ &, p, h1, h2, h3, h4, h5, h6
+ color: $disabled-med
+ p.secure-icon i
+ font-size: 10rem
+ color: rgba(white, 0.1)
+ p.secure-text
+ color: rgba($disabled-med, 0.35)
+ .social-icons
+ margin-bottom: 0.25rem
+ margin-top: 0.75rem
+ a
+ i
+ font-size: 1.5rem
+ color: white
+ &:hover, &:active, &:focus
+ text-decoration: none
+ i
+ color: lighten($dark-grey, 60%)
+ text-shadow: 2px 2px 0 black
diff --git a/app/assets/stylesheets/darkswarm/groups.css.sass b/app/assets/stylesheets/darkswarm/groups.css.sass
index 7f70bf7211..97b984eb34 100644
--- a/app/assets/stylesheets/darkswarm/groups.css.sass
+++ b/app/assets/stylesheets/darkswarm/groups.css.sass
@@ -1,14 +1,16 @@
@import branding
@import mixins
+@import typography
// Search page
#groups
- background-color: $clr-brick-light
+ background-color: lighten($clr-brick, 56%)
background-image: url("/assets/groups.svg")
- background-position: center 15px
+ background-position: center 50px
background-repeat: no-repeat
- padding-bottom: 20px
-
+ background-size: 922px 922px
+ @include sidepaddingSm
+ @include panepadding
a > .group-name
&:hover, &:focus, &:active
text-decoration: underline
@@ -65,7 +67,7 @@
margin-bottom: -2px
margin-right: 2px
text-transform: capitalize
- @include avenir
+ @include headingFont
@include border-radius(1em 0.25em 0 0)
@include gradient($disabled-light, $disabled-bright)
@media screen and (min-width: 768px)
diff --git a/app/assets/stylesheets/darkswarm/header.css.sass b/app/assets/stylesheets/darkswarm/header.css.sass
index f0bf6072d6..523afca824 100644
--- a/app/assets/stylesheets/darkswarm/header.css.sass
+++ b/app/assets/stylesheets/darkswarm/header.css.sass
@@ -1,18 +1,20 @@
+@import variables
+
nav.top-bar
margin-bottom: 0px
a.icon
&:hover
text-decoration: none
- height: 45px
+ height: $topbar-height
color: white
i
font-size: 29px
- line-height: 45px
+ line-height: $topbar-height
span
font-size: 13px
display: inline-block
- line-height: 45px
- height: 45px
+ line-height: $topbar-height
+ height: $topbar-height
vertical-align: top
body > section[role='main']
diff --git a/app/assets/stylesheets/darkswarm/home.css.sass b/app/assets/stylesheets/darkswarm/home.css.sass
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/app/assets/stylesheets/darkswarm/home_panes.css.sass b/app/assets/stylesheets/darkswarm/home_panes.css.sass
index 568b6ebc66..06a5810a03 100644
--- a/app/assets/stylesheets/darkswarm/home_panes.css.sass
+++ b/app/assets/stylesheets/darkswarm/home_panes.css.sass
@@ -1,57 +1,139 @@
@import branding
@import mixins
-
-// Styling for big panes on homepage
-
-#beta.pane
- .row
- @include panepadding
- background-image: url("/assets/home/macbook.png")
- background-repeat: no-repeat
- background-position: center bottom
- padding-bottom: 280px
- &, & *
- max-width: 610px
+@import typography
+@import animations
+@import variables
-#map.pane
- @include darkbg
- .row
- @include panepadding
- background-image: url("/assets/home/maps-bg.svg")
- background-repeat: no-repeat
- background-position: left center
-
-#groups.pane
- @include darkbg
- .row
- @include panepadding
- background-image: url("/assets/home/groups-bg.svg")
- background-repeat: no-repeat
- background-position: left center
-
-#producers.pane
- @include turqbg
- @include panepadding
- background-image: url("/assets/home/producers-bg.svg")
- background-repeat: no-repeat
- background-position: center center
- background-size: 80% 80%
-
- @media all and (max-width: 768px)
- background-position: center top
- background-size: 100% 100%
- .row
- .pricing-table
- .title
- color: $clr-turquoise-light
- .price
- background-color: rgba(240, 240, 240, 0.6)
- .description, .bullet-item, .cta-button
- background-color: rgba(255, 255, 255, 0.8)
-
-// Responsive
-@media all and (max-width: 768px)
- #map.pane, #groups.pane, #producers.pane
+// Styling for big panes on homepage \\
+#panes
+ .pane
.row
- background-position: center center
\ No newline at end of file
+ @include panepadding
+ padding-top: 75px
+ padding-bottom: 75px
+ &.header
+ padding-bottom: 0
+ &.content
+ padding-top: 0
+
+
+// Background styles \\
+#system.pane
+ background-color: white
+
+#brand-story.pane, #cta.pane, #shops.pane
+ @include tiledPane
+
+#stats.pane
+ background-image: url("/assets/home/background-blurred-oranges.jpg")
+ background-position: center center
+ background-color: $ofn-grey
+ @include fullbg
+ @include paneWhiteText
+
+
+// Content styles \\
+#brand-story.pane
+ .row
+ h2
+ font-weight: 300
+ font-size: 88px
+ p
+ @include bodyFont
+ font-size: 1.5rem
+ font-weight: 300
+
+ a.text-vbig i
+ font-size: 75px
+
+#system.pane
+ .row .row
+ padding-bottom: 0
+ @media all and (max-width: 640px)
+ .row .row
+ padding: 0
+
+ .home-icon-box
+ background-image: url("/assets/ofn-o.png")
+ background-position: center center
+ background-repeat: no-repeat
+ background-size: auto 100%
+ padding: 3rem 0
+ text-align: center
+ margin-top: 2rem
+ @media all and (min-width: 642px)
+ margin-top: 0
+ i
+ font-size: 4rem
+ a
+ display: block
+ width: 64px
+ height: 64px
+ margin: 0 auto
+ background-color: $australia-orange
+ background-position: center center
+ background-repeat: no-repeat
+ background-size: auto 100%
+ &.search
+ background-image: url("/assets/icon-mask-magnifier.png")
+ &.shop
+ background-image: url("/assets/icon-mask-apple.png")
+ &.pick-up-delivery
+ background-image: url("/assets/icon-mask-truck.png")
+
+ h2
+ font-size: 70px
+ font-weight: 300
+ color: $australia-orange
+
+ a
+ color: $australia-orange
+
+ .home-icon-box-bottom
+ margin-top: 1rem
+ width: 100%
+ padding-left: 1rem
+ padding-right: 1rem
+ @media all and (min-width: 480px)
+ padding-left: 3rem
+ padding-right: 3rem
+ @media all and (min-width: 642px)
+ padding-left: 1rem
+ padding-right: 1rem
+ h4
+ color: $australia-orange
+ border-bottom: 2px solid lighten($australia-orange, 20%)
+ text-align: center
+ padding: 1rem 0
+ margin: 1.5rem 0
+
+#cta.pane, #stats.pane
+ h2
+ font-weight: 300
+ font-size: 45px
+ margin-bottom: 2rem
+
+#stats.pane
+ .row.header
+ padding-bottom: 2rem
+
+ h4
+ font-weight: 300
+ text-transform: uppercase
+ margin: 1.5rem 0
+ display: inline-block
+ strong
+ display: block
+ font-weight: normal
+ font-size: 75px
+
+#shops.pane
+ @include paneWhiteText
+ h2
+ margin-bottom: 2rem
+ font-size: 4.4rem
+ font-weight: 300
+
+#shops-signup.pane
+ background-color: $australia-orange
diff --git a/app/assets/stylesheets/darkswarm/home_tagline.css.sass b/app/assets/stylesheets/darkswarm/home_tagline.css.sass
index ed85e07d60..8b0ebe9a49 100644
--- a/app/assets/stylesheets/darkswarm/home_tagline.css.sass
+++ b/app/assets/stylesheets/darkswarm/home_tagline.css.sass
@@ -1,25 +1,28 @@
@import branding
@import mixins
+@import variables
// Styling for brand intro / tagline on homepage
#tagline
- background-color: black
- background-image: url("/assets/home/ofn_bg_1.jpg")
- @include fullbg
- height: 400px
- padding: 40px 0px
- h1, h2, p
- color: white
- h1
- margin-bottom: 1em
- h2
- font-size: 1.6875rem
- max-width: 610px
- margin: 0 auto
+ width: 100%
+ &:before
+ content: ""
+ @include fullbg
+ background-color: $ofn-grey
+ background-image: url("/assets/home/home.jpg")
+ position: fixed
+ left: 0
+ right: 0
+ bottom: 0
+ z-index: -1
+ width: 100%
+ height: 100%
- a
- color: white
- &:hover, &:active, &:focus
- color: $clr-brick-light-bright
- @include textsoftpress
+ h1
+ margin-top: 2rem
+ @media all and (min-width: 768px)
+ margin-top: 10rem
+ img
+ max-width: 80%
+ margin-bottom: 5rem
diff --git a/app/assets/stylesheets/darkswarm/hubs.css.sass b/app/assets/stylesheets/darkswarm/hubs.css.sass
index 43f2b8cbea..da597b5ee7 100644
--- a/app/assets/stylesheets/darkswarm/hubs.css.sass
+++ b/app/assets/stylesheets/darkswarm/hubs.css.sass
@@ -2,8 +2,6 @@
@import mixins
#hubs
- background-repeat: repeat
- background-image: url("/assets/subtle_white_feathers.png")
- // background: $clr-brick-ultra-light url("/assets/home/shopping-bg.jpg")
- // @include fullwidthbg
+ background-color: lighten($ofn-grey, 43%)
@include panepadding
+ @include sidepaddingSm
diff --git a/app/assets/stylesheets/darkswarm/menu.css.sass b/app/assets/stylesheets/darkswarm/menu.css.sass
index b256c6165c..1c02eac9aa 100644
--- a/app/assets/stylesheets/darkswarm/menu.css.sass
+++ b/app/assets/stylesheets/darkswarm/menu.css.sass
@@ -1,49 +1,75 @@
+@import compass
@import branding
@import mixins
@import typography
+@import variables
-.fixed .top-bar
- @include box-shadow(0 2px 3px 0 rgba(0,0,0,0.25))
-
nav
@include textpress
+ text-shadow: none
+
+ // Create center style for nav ul (foundation provides left and right)
+ text-align: center
+ .top-bar-section
+ // Avoid menu items blocking logo
+ li:not(.has-form), li:not(.has-form) a:not(.button), li:not(.has-form) a:not(.button):hover
+ background-color: transparent
+
+ ul.center
+ display: inline-block
+ // By default, we center between the left and right uls, but we want to be centered
+ // relative to the whole page. The difference in width between the other uls is 74px,
+ // so we offset by that amount here.
+ margin-left: -74px
+
.joyride-tip-guide .button
text-shadow: none
// Default overrides - big menu
- .top-bar-section ul li.ofn-logo > a
- display: table-cell
- vertical-align: middle
-
.top-bar-section .has-dropdown > a
- padding-right: 15px !important
-
+ padding-right: $topbar-height / 2 !important
+
i.ofn-i_022-cog
font-size: 24px
- line-height: 45px
-
+ line-height: $topbar-height
+
.top-bar-section .has-dropdown > a:after
display: none
.top-bar-section ul li > a
font-size: 0.75rem
- height: 45px
+ height: $topbar-height
opacity: 0.8
&:hover, &:focus, &:active
opacity: 1
+ @include transition(all 0.3s ease-in-out)
+
+ .top-bar-section ul li.ofn-logo > a
+ display: table-cell
+ vertical-align: middle
+ opacity: 1
.nav-branded
- color: $clr-brick-light-bright
+ color: $australia-orange
span
font-size: 13px
.nav-primary
- @include avenir
+ @include headingFont
font-size: 0.875rem
+ font-weight: 300
+ ul .nav-primary
+ text-transform: uppercase
+ ul.dropdown
+ border: 1px solid $smoke
+ border-top: none
// Mobile Menu
+.tab-bar
+ background-color: white
+
.off-canvas-wrap.move-right .tab-bar .menu-icon
@include box-shadow(inset 0 0 6px 2px rgba(0,0,0,0.5))
@@ -55,29 +81,54 @@ nav
-webkit-box-shadow: 0 0px 0 1px #666, 0 7px 0 1px #666, 0 14px 0 1px #666
box-shadow: 0 0px 0 1px #666, 0 7px 0 1px #666, 0 14px 0 1px #666
+.tab-bar .menu-icon span::after
+ box-shadow: 0 0 0 1px black, 0 7px 0 1px black, 0 14px 0 1px black
+
+.left-off-canvas-menu
+ background-color: white
+
.off-canvas-wrap.move-right ul.off-canvas-list
font-size: 0.875rem
.li-menu
- @include avenir
+ @include headingFont
font-size: 1rem
a
- color: rgba(255, 255, 255, 0.9)
+ color: rgba(0, 0, 0, 0.9)
+ li a
+ color: rgba(0, 0, 0, 0.9)
+ &:hover
+ background-color: transparent
+ color: $australia-orange
+ @include transition(all 0.3s ease-in-out)
.off-canvas-wrap.move-right ul.off-canvas-list i
font-size: 1.5rem
margin-right: 0.25rem
-// Responsive
+
+// Responsive
+
+@media screen and (max-width: 1350px)
+ nav .top-bar-section
+ ul li a, .has-dropdown > a
+ padding: 0 $topbar-height / 4 !important
+
+ ul.center
+ margin-left: -24px
+
@media screen and (min-width: 1025px)
body.off-canvas
// padding required to placehold for fixed menu bar
- padding-top: 45px
+ padding-top: $topbar-height
+
+
@media screen and (max-width: 1025px)
- section.right
+ body.off-canvas
+ // padding required to placehold for fixed menu bar
+ padding-top: 0
+ section.right
.nav-branded
padding: 0 1em
-
-
\ No newline at end of file
diff --git a/app/assets/stylesheets/darkswarm/mixins.sass b/app/assets/stylesheets/darkswarm/mixins.sass
index 6925e84f72..668ef2b59c 100644
--- a/app/assets/stylesheets/darkswarm/mixins.sass
+++ b/app/assets/stylesheets/darkswarm/mixins.sass
@@ -5,10 +5,46 @@
// Generic \\
+@mixin tiledPane
+ background-image: url("/assets/tile-wide.png")
+ background-color: $australia-orange
+ background-position: center center
+ @include paneWhiteText
+
@mixin panepadding
padding-top: 100px
padding-bottom: 100px
+@mixin paneWhiteText
+ &, & *
+ color: white
+
+@mixin sidepaddingSm
+ padding-left: 10px
+ padding-right: 10px
+ @media all and (min-width: 768px)
+ padding-left: 20px
+ padding-right: 20px
+ @media all and (min-width: 1024px)
+ padding-left: 50px
+ padding-right: 50px
+ @media all and (min-width: 1200px)
+ padding-left: 100px
+ padding-right: 100px
+
+@mixin sidepaddingBg
+ padding-left: 20px
+ padding-right: 20px
+ @media all and (min-width: 768px)
+ padding-left: 40px
+ padding-right: 40px
+ @media all and (min-width: 1024px)
+ padding-left: 100px
+ padding-right: 100px
+ @media all and (min-width: 1200px)
+ padding-left: 200px
+ padding-right: 200px
+
@mixin disabled
color: $disabled-bright
@@ -53,9 +89,6 @@
// Typography \\
-@mixin avenir
- font-family: "AvenirBla_IE", "AvenirBla"
-
@mixin textpress
text-shadow: 0 -1px 1px #111111, 0 1px 2px #222222
@@ -108,7 +141,7 @@
color: $clr-turquoise-bright
@mixin fullbg
- background-position: center center
+ background-position: center center
background-repeat: no-repeat
-webkit-background-size: cover
-moz-background-size: cover
@@ -116,7 +149,7 @@
background-size: cover
@mixin fullwidthbg
- background-position: center top
+ background-position: center top
background-repeat: no-repeat
background-size: 100% auto
@@ -137,4 +170,3 @@
// W3C
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='$gradient-clr1', endColorstr='$gradient-clr2',GradientType=0 )
// IE6-8
-
diff --git a/app/assets/stylesheets/darkswarm/page_alert.css.sass b/app/assets/stylesheets/darkswarm/page_alert.css.sass
new file mode 100644
index 0000000000..921b954d2a
--- /dev/null
+++ b/app/assets/stylesheets/darkswarm/page_alert.css.sass
@@ -0,0 +1,50 @@
+@import branding
+@import animations
+@import "compass/css3/transition"
+
+// Basic style \\
+.page-alert
+ .alert-box
+ height: 55px
+ overflow: hidden
+ border: 1px solid rgba($dark-grey, 0.35)
+ border-left: none
+ border-right: none
+ background-color: lighten($ofn-grey, 15%)
+ background-image: url("/assets/tile-wide.png")
+ background-position: center center
+ padding: 12px 0 8px 0
+ margin: 0
+ a.alert-cta
+ &, & *
+ @include csstrans
+ color: #333
+ &:hover, &:active, &:focus
+ &, & *
+ text-decoration: none
+ color: white
+
+
+// Show-hide animation \\
+.off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, nav.tab-bar
+ @include transition(all, 1000ms, ease-in-out)
+
+ &.move-down
+ margin-top: 55px
+ @include transition(all, 1000ms, ease-in-out)
+
+
+.off-canvas-wrap .inner-wrap .page-alert.fixed
+ top: -55px
+ z-index: 1
+ // TODO: Compass to disable transition
+ -moz-transition: none
+ -webkit-transition: none
+ -o-transition: color 0 ease-in
+ transition: none
+
+.off-canvas-wrap.move-right .inner-wrap.move-down
+ .page-alert
+ top: -55px * 2
+ .left-off-canvas-menu
+ top: -55px
diff --git a/app/assets/stylesheets/darkswarm/producers.css.sass b/app/assets/stylesheets/darkswarm/producers.css.sass
index 8f0e7edfcb..2055a45035 100644
--- a/app/assets/stylesheets/darkswarm/producers.css.sass
+++ b/app/assets/stylesheets/darkswarm/producers.css.sass
@@ -2,9 +2,13 @@
@import mixins
.producers
- @include fullwidthbg
- background-image: url("/assets/producers/producers-pg-bg.jpg")
+ background-color: lighten($clr-turquoise, 68%)
+ background-image: url("/assets/producers.svg")
+ background-position: center 50px
background-repeat: no-repeat
+ background-size: 922px 763px
+ @include sidepaddingSm
+ @include panepadding
a
color: $clr-turquoise
&:hover, &:active, &:focus
diff --git a/app/assets/stylesheets/darkswarm/registration.css.sass b/app/assets/stylesheets/darkswarm/registration.css.sass
index f63eb30421..ba56701600 100644
--- a/app/assets/stylesheets/darkswarm/registration.css.sass
+++ b/app/assets/stylesheets/darkswarm/registration.css.sass
@@ -4,7 +4,6 @@
#registration-modal
header
text-align: center
- // background-color: #efefef
@media all and (max-width: 64em)
text-align: left
.container
diff --git a/app/assets/stylesheets/darkswarm/shop.css.sass b/app/assets/stylesheets/darkswarm/shop.css.sass
index 9d38398f36..5422c4463a 100644
--- a/app/assets/stylesheets/darkswarm/shop.css.sass
+++ b/app/assets/stylesheets/darkswarm/shop.css.sass
@@ -12,7 +12,6 @@
@import shop-popovers
.darkswarm
-
products
display: block
padding-top: 20px
diff --git a/app/assets/stylesheets/darkswarm/signup.css.sass b/app/assets/stylesheets/darkswarm/signup.css.sass
new file mode 100644
index 0000000000..c4d055b3a6
--- /dev/null
+++ b/app/assets/stylesheets/darkswarm/signup.css.sass
@@ -0,0 +1,121 @@
+@import branding
+@import mixins
+@import typography
+@import animations
+@import variables
+
+
+#producer-signup.pane, #shops-signup.pane
+ @include tiledPane
+
+ h2
+ margin-bottom: 2rem
+ font-size: 4.4rem
+ font-weight: 300
+
+#producer-details.pane, #hub-details.pane, .groups-details.pane
+ background-color: lighten($ofn-grey, 44%)
+
+
+#producer-case-studies, #shops-case-studies
+ padding-top: 100px
+ padding-bottom: 100px
+ background-color: $australia-orange
+ background-image: url("/assets/hubs-bg.jpg")
+ background-position: center center
+ -webkit-filter: brightness(1.1)
+ filter: brightness(1.1)
+ h2
+ color: $australia-orange
+ font-size: 3rem
+ .case-study
+ background-color: rgba(255, 255, 255, 0.5)
+ padding: 1rem
+ margin-top: 2rem
+ text-align: center
+ .case-study-img
+ background-color: white
+ margin-bottom: 1rem
+ @media all and (min-width: 768px)
+ float: right
+ margin-left: 2rem
+ @media all and (min-width: 640px)
+ text-align: left
+ h4, a
+ color: $australia-orange
+ a
+ &, & *
+ @include csstrans
+ opacity: 1
+ &:hover, &:focus, &:active
+ &, & *
+ opacity: 0.75
+
+
+// Signup tables \\
+table.signup-table
+ width: 100%
+ border: 0
+
+table.signup-table.hubs-table, table.signup-table.producers-table
+ tr
+ td
+ background-color: white
+ border-bottom: 1px solid rgba($ofn-grey, 0.3)
+ td:nth-child(2)
+ background-color: lighten($ofn-grey, 46%)
+ td:nth-child(3)
+ background-color: lighten($ofn-grey, 41%)
+ td:last-child
+ &, & i
+ color: $australia-orange
+ border-bottom: 1px solid rgba($australia-orange, 0.3)
+ background-color: lighten($australia-orange, 48%)
+ thead
+ background-color: transparent
+ tr
+ td
+ border-bottom: 1px solid transparent
+ td:nth-child(1)
+ background-color: transparent
+ td:nth-child(2)
+ background: lighten($ofn-grey, 44%)
+ td:nth-child(3)
+ background: lighten($ofn-grey, 38%)
+ td:last-child
+ &, & *
+ color: white
+ background: $australia-orange
+ h5
+ text-transform: uppercase
+ color: $ofn-grey
+ font-weight: 400
+ font-size: 0.875rem
+ margin-bottom: 0.25em
+
+ tfoot
+ background-color: transparent
+ tr
+ td
+ border-bottom: 1px solid transparent
+ td:nth-child(1)
+ background-color: transparent
+ td:nth-child(2)
+ background: lighten($ofn-grey, 44%)
+ td:nth-child(3)
+ background: lighten($ofn-grey, 38%)
+ td:last-child
+ &, & *
+ color: white
+ background: $australia-orange
+ h2
+ .text-small
+ text-transform: uppercase
+ display: inline-block
+ font-weight: 400
+ line-height: 1.5
+ @include headingFont
+
+// Detail \\
+.enterprise-type-flowchart
+ float: right
diff --git a/app/assets/stylesheets/darkswarm/style.css b/app/assets/stylesheets/darkswarm/style.css.scss
old mode 100755
new mode 100644
similarity index 100%
rename from app/assets/stylesheets/darkswarm/style.css
rename to app/assets/stylesheets/darkswarm/style.css.scss
diff --git a/app/assets/stylesheets/darkswarm/tabs.css.sass b/app/assets/stylesheets/darkswarm/tabs.css.sass
index 0c911eb66a..12134a19e1 100644
--- a/app/assets/stylesheets/darkswarm/tabs.css.sass
+++ b/app/assets/stylesheets/darkswarm/tabs.css.sass
@@ -37,7 +37,7 @@
text-align: left
a
- @include avenir
+ @include headingFont
background: transparent
text-transform: uppercase
line-height: 1
diff --git a/app/assets/stylesheets/darkswarm/typography.css.sass b/app/assets/stylesheets/darkswarm/typography.css.sass
index f549420d83..97230d5b0a 100644
--- a/app/assets/stylesheets/darkswarm/typography.css.sass
+++ b/app/assets/stylesheets/darkswarm/typography.css.sass
@@ -1,30 +1,27 @@
@import branding
-//@import mixins
-@font-face
- font-family: 'AvenirBla_IE'
- src: url("/AveniBla.eot") format("opentype")
+@mixin headingFont
+ font-family: 'Oswald', sans-serif
-@font-face
- font-family: 'AvenirBla'
- src: url("/AvenirLTStd-Black.otf") format("opentype")
+@mixin bodyFont
+ font-family: 'Roboto', Arial, sans-serif
-@font-face
- font-family: 'AvenirMed_IE'
- src: url("/AveniMed.eot") format("opentype")
+$headingFont: 'Oswald'
+$bodyFont: 'Roboto'
-@font-face
- font-family: 'AvenirMed'
- src: url("/AvenirLTStd-Medium.otf") format("opentype")
-
-$font-helvetica: "Helvetica Neue", "HelveticaNeue", "Helvetica", Helvetica, Arial, sans-serif
-
+body
+ @include bodyFont
+ font-weight: 400
a
color: $clr-brick
&:hover, &:focus, &:active
text-decoration: none
color: $clr-brick-bright
+.text-vbig
+ font-size: 2rem
+ font-weight: 300
+
.text-big
font-size: 1.5rem
font-weight: 300
@@ -35,17 +32,17 @@ small, .small
.text-small
font-size: 0.875rem
margin-bottom: 0.5rem
- font-family: $font-helvetica
+ font-family: $bodyFont
&, & *
font-size: 0.875rem
.text-normal
font-weight: 400
- font-family: $font-helvetica
+ font-family: $bodyFont
.text-skinny
font-weight: 300
- font-family: $font-helvetica
+ font-family: $bodyFont
.word-wrap
word-wrap: break-word
@@ -69,11 +66,11 @@ small, .small
.brick
color: $clr-brick
-@mixin avenir
- font-family: "AvenirBla_IE", "AvenirBla"
+.hr-light
+ border-color: rgba(#ddd, 0.25)
-h1, h2, h3, h4, h5, h6, .avenir
- @include avenir
+h1, h2, h3, h4, h5, h6
+ @include headingFont
padding: 0px
ul.bullet-list, ul.check-list
@@ -108,8 +105,8 @@ ul.check-list
.not-bold
font-weight: normal
-strong.avenir
- font-weight: normal // Avenir is basically bold anyway
+.footer-pad
+ padding-bottom: 100px
// These selectors match the default Foundation selectors
diff --git a/app/assets/stylesheets/darkswarm/ui.css.sass b/app/assets/stylesheets/darkswarm/ui.css.sass
index d18adae1b4..5c049a2bba 100644
--- a/app/assets/stylesheets/darkswarm/ui.css.sass
+++ b/app/assets/stylesheets/darkswarm/ui.css.sass
@@ -1,18 +1,19 @@
@import foundation/components/buttons
@import branding
@import mixins
+@import typography
// Button class extensions
.neutral-btn
@include button
@include border-radius(0.5em)
- font-family: 'Open Sans', Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif
+ font-family: $bodyFont
background-color: transparent
border: 2px solid rgba(200, 200, 200, 1)
color: #999
-.neutral-btn:hover, .neutral-btn:active, .neutral-btn:focus
+.neutral-btn:hover, .neutral-btn:active, .neutral-btn:focus
background-color: rgba(200, 200, 200, 0.2)
border: 2px solid rgba(200, 200, 200, 0.8)
@@ -20,7 +21,7 @@
border-color: #000
color: #000
-.neutral-btn.dark:hover, .neutral-btn.dark:active, .neutral-btn.dark:focus
+.neutral-btn.dark:hover, .neutral-btn.dark:active, .neutral-btn.dark:focus
background-color: rgba(0, 0, 0, 0.1)
border: 2px solid rgba(0, 0, 0, 0.8)
text-shadow: 0 1px 0 #fff
@@ -29,18 +30,18 @@
border-color: #fff
color: #fff
-.neutral-btn.light:hover, .neutral-btn.light:active, .neutral-btn.light:focus
+.neutral-btn.light:hover, .neutral-btn.light:active, .neutral-btn.light:focus
background-color: rgba(255, 255, 255, 0.2)
border: 2px solid rgba(255, 255, 255, 0.8)
- text-shadow: 0 1px 0 $clr-brick
+ text-shadow: 0 1px 0 rgba(0,0,0,0.2)
.neutral-btn.turquoise
border-color: $clr-turquoise
color: $clr-turquoise
-.neutral-btn.turquoise:hover, .neutral-btn.turquoise:active, .neutral-btn.turquoise:focus
+.neutral-btn.turquoise:hover, .neutral-btn.turquoise:active, .neutral-btn.turquoise:focus
background-color: rgba(0, 0, 0, 0.1)
- text-shadow: 0 1px 0 #fff
+ // text-shadow: 0 1px 0 #fff
// Rewrite foundation's .primary button style
@@ -49,7 +50,7 @@
outline: none // Turn off blue highlight on chrome
.button.primary, button.primary
- font-family: 'Open Sans', Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif
+ font-family: $bodyFont
background: $clr-brick
color: white
@@ -58,7 +59,7 @@
text-shadow: 0 1px 0 $clr-brick
button.success, .button.success
- background: #0096ad
+ background: #0096ad
.button.success:hover, .button.success:active, .button.success:focus, button.success:hover, button.success:active, button.success:focus
background: #14b6cc
@@ -77,11 +78,20 @@ button.success, .button.success
label
margin: 0 0.2rem
float: right
-
-// Responsive
+// Transparent button
+.button.transparent
+ @include headingFont
+ font-size: 20px
+ text-transform: uppercase
+ background: rgba(0, 0, 0, 0.3)
+ border: 3px solid #fff
+ text-shadow: none
+ &:hover
+ background: rgba(0, 0, 0, 0.6)
+ color: #fff
+
+// Responsive
@media screen and (min-width: 768px)
[role="main"]
padding: 0
-
-
diff --git a/app/assets/stylesheets/darkswarm/variables.css.sass b/app/assets/stylesheets/darkswarm/variables.css.sass
index 1020f7cbaa..6a9828951a 100644
--- a/app/assets/stylesheets/darkswarm/variables.css.sass
+++ b/app/assets/stylesheets/darkswarm/variables.css.sass
@@ -1 +1,22 @@
-// necessary; user to overwrite Foundation variables css
\ No newline at end of file
+@import "foundation/functions"
+@import "foundation/components/global"
+
+$australia-orange: rgba(242, 112, 82, 1)
+
+// Topbar
+$topbar-height: rem-calc(75)
+$topbar-link-padding: $topbar-height / 2
+
+$topbar-bg: $white
+$topbar-bg-color: $topbar-bg
+
+$topbar-link-color: $black
+$topbar-link-color-hover: $australia-orange
+$topbar-link-color-active: $black
+$topbar-link-color-active-hover: $white
+$topbar-link-bg-hover: $white
+
+$topbar-dropdown-link-color: $black
+$topbar-dropdown-bg: $white
+$topbar-dropdown-link-bg: $white
+$topbar-dropdown-link-bg-hover: $white
diff --git a/app/controllers/admin/contents_controller.rb b/app/controllers/admin/contents_controller.rb
new file mode 100644
index 0000000000..a048981f5e
--- /dev/null
+++ b/app/controllers/admin/contents_controller.rb
@@ -0,0 +1,18 @@
+module Admin
+ class ContentsController < Spree::Admin::BaseController
+ def edit
+ @preferences_home = [:home_tagline_cta, :home_whats_happening]
+ @preferences_footer = [:footer_facebook_url, :footer_twitter_url, :footer_instagram_url, :footer_linkedin_url, :footer_googleplus_url, :footer_pinterest_url, :footer_email, :footer_links_md, :footer_about_url]
+ end
+
+ def update
+ params.each do |name, value|
+ next unless ContentConfig.has_preference? name
+ ContentConfig[name] = value
+ end
+ flash[:success] = t(:successfully_updated, :resource => "Your content")
+
+ redirect_to main_app.edit_admin_content_path
+ end
+ end
+end
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index aaa7d0bb06..7dfd404b69 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -4,6 +4,7 @@ class ApplicationController < ActionController::Base
protect_from_forgery
include EnterprisesHelper
+ helper CssSplitter::ApplicationHelper
def redirect_to(options = {}, response_status = {})
::Rails.logger.error("Redirected by #{caller(1).first rescue "unknown"}")
diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb
index 3bb7a68538..0f32dbf2d8 100644
--- a/app/controllers/home_controller.rb
+++ b/app/controllers/home_controller.rb
@@ -2,6 +2,10 @@ class HomeController < BaseController
layout 'darkswarm'
def index
+ @num_distributors = Enterprise.is_distributor.activated.visible.count
+ @num_producers = Enterprise.is_primary_producer.activated.visible.count
+ @num_users = Spree::User.joins(:orders).merge(Spree::Order.complete).count('DISTINCT spree_users.*')
+ @num_orders = Spree::Order.complete.count
end
def about_us
diff --git a/app/controllers/shops_controller.rb b/app/controllers/shops_controller.rb
new file mode 100644
index 0000000000..3305811e07
--- /dev/null
+++ b/app/controllers/shops_controller.rb
@@ -0,0 +1,6 @@
+class ShopsController < BaseController
+ layout 'darkswarm'
+
+ def index
+ end
+end
diff --git a/app/helpers/markdown_helper.rb b/app/helpers/markdown_helper.rb
new file mode 100644
index 0000000000..bd45e31124
--- /dev/null
+++ b/app/helpers/markdown_helper.rb
@@ -0,0 +1,6 @@
+module MarkdownHelper
+ def render_markdown(markdown)
+ md ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_intra_emphasis: true, tables: true, autolink: true, superscript: true)
+ md.render markdown
+ end
+end
diff --git a/app/models/content_configuration.rb b/app/models/content_configuration.rb
new file mode 100644
index 0000000000..6e36b67812
--- /dev/null
+++ b/app/models/content_configuration.rb
@@ -0,0 +1,21 @@
+class ContentConfiguration < Spree::Preferences::Configuration
+ preference :home_tagline_cta, :string, default: "Browse Open Food Network Australia"
+ preference :home_whats_happening, :string, default: "Thanks for making the Open Food Network possible. Our vision is a better food system, and we're proud of what we're achieving together."
+
+ preference :footer_facebook_url, :string, default: "https://www.facebook.com/OpenFoodNet"
+ preference :footer_twitter_url, :string, default: "https://twitter.com/OpenFoodNet"
+ preference :footer_instagram_url, :string, default: ""
+ preference :footer_linkedin_url, :string, default: "http://www.linkedin.com/groups/Open-Food-Foundation-4743336"
+ preference :footer_googleplus_url, :string, default: ""
+ preference :footer_pinterest_url, :string, default: ""
+ preference :footer_email, :string, default: "hello@openfoodnetwork.org"
+ preference :footer_links_md, :text, default: <<-EOS
+[Newsletter sign-up](/)
+
+[News](/)
+
+[Calendar](/)
+EOS
+
+ preference :footer_about_url, :string, default: "http://www.openfoodnetwork.org/ofn-local/open-food-network-australia/"
+end
diff --git a/app/overrides/spree/admin/shared/_configuration_menu/add_content.html.haml.deface b/app/overrides/spree/admin/shared/_configuration_menu/add_content.html.haml.deface
new file mode 100644
index 0000000000..0709cb9451
--- /dev/null
+++ b/app/overrides/spree/admin/shared/_configuration_menu/add_content.html.haml.deface
@@ -0,0 +1,3 @@
+/ insert_bottom "[data-hook='admin_configurations_sidebar_menu']"
+
+%li= link_to 'Content', main_app.edit_admin_content_path
diff --git a/app/views/admin/contents/_fieldset.html.haml b/app/views/admin/contents/_fieldset.html.haml
new file mode 100644
index 0000000000..709f3d5ec8
--- /dev/null
+++ b/app/views/admin/contents/_fieldset.html.haml
@@ -0,0 +1,8 @@
+%fieldset.no-border-bottom
+ %legend{align: "center"}= name
+ - preferences.each do |key|
+ - type = ContentConfig.preference_type(key)
+ .field
+ = label_tag(key, t(key) + ': ') + tag(:br) if type != :boolean
+ = preference_field_tag(key, ContentConfig[key], :type => type)
+ = label_tag(key, t(key)) + tag(:br) if type == :boolean
diff --git a/app/views/admin/contents/edit.html.haml b/app/views/admin/contents/edit.html.haml
new file mode 100644
index 0000000000..ef4467f09d
--- /dev/null
+++ b/app/views/admin/contents/edit.html.haml
@@ -0,0 +1,15 @@
+= render 'spree/admin/shared/configuration_menu'
+
+- content_for :page_title do
+ Content
+
+
+= form_tag main_app.admin_content_path, method: :put do
+ #preferences
+ = render 'fieldset', name: 'Home page', preferences: @preferences_home
+ = render 'fieldset', name: 'Footer', preferences: @preferences_footer
+
+ .form-buttons.filter-actions.actions{"data-hook" => "buttons"}
+ = button t(:update), 'icon-refresh'
+ %span.or= t(:or)
+ = link_to_with_icon 'icon-remove', t(:cancel), main_app.edit_admin_content_path, class: 'button'
diff --git a/app/views/admin/shared/_user_guide_link.html.haml b/app/views/admin/shared/_user_guide_link.html.haml
index af83d96936..bfae6002e7 100644
--- a/app/views/admin/shared/_user_guide_link.html.haml
+++ b/app/views/admin/shared/_user_guide_link.html.haml
@@ -1 +1 @@
-= button_link_to "User Guide", "http://global.openfoodnetwork.org/platform/user-guide/", :icon => 'icon-external-link', :id => 'user_guide_link', target: '_blank'
+= button_link_to "User Guide", "http://www.openfoodnetwork.org/platform/user-guide/", :icon => 'icon-external-link', :id => 'user_guide_link', target: '_blank'
diff --git a/app/views/checkout/edit.html.haml b/app/views/checkout/edit.html.haml
index 2f30c93ba5..c2cc0aaa9d 100644
--- a/app/views/checkout/edit.html.haml
+++ b/app/views/checkout/edit.html.haml
@@ -1,6 +1,9 @@
+- content_for(:title) do
+ Checkout
+
= inject_enterprises
-.darkswarm
+.darkswarm.footer-pad
- content_for :order_cycle_form do
%closing Checkout now
@@ -23,4 +26,3 @@
= render partial: "shared/footer"
-
diff --git a/app/views/enterprise_mailer/confirmation_instructions.html.haml b/app/views/enterprise_mailer/confirmation_instructions.html.haml
index 3fe7ba09e9..3ee6e8fd12 100644
--- a/app/views/enterprise_mailer/confirmation_instructions.html.haml
+++ b/app/views/enterprise_mailer/confirmation_instructions.html.haml
@@ -15,7 +15,7 @@
%p
After confirming your email you can access your administration account for this enterprise.
See the
- = link_to 'User Guide', 'http://global.openfoodnetwork.org/platform/user-guide/'
+ = link_to 'User Guide', 'http://www.openfoodnetwork.org/platform/user-guide/'
= "to find out more about #{ Spree::Config[:site_name] }'s features and to start using your profile or online store."
= render 'shared/mailers/signoff'
diff --git a/app/views/enterprise_mailer/welcome.html.haml b/app/views/enterprise_mailer/welcome.html.haml
index 3cd9d14034..ea939dbc6f 100644
--- a/app/views/enterprise_mailer/welcome.html.haml
+++ b/app/views/enterprise_mailer/welcome.html.haml
@@ -8,7 +8,7 @@
%p
The User Guide with detailed support for setting up your Producer or Hub is here:
- = link_to 'Open Food Network User Guide', 'http://global.openfoodnetwork.org/platform/user-guide/'
+ = link_to 'Open Food Network User Guide', 'http://www.openfoodnetwork.org/platform/user-guide/'
%p
You can manage your account by logging into the
diff --git a/app/views/enterprises/shop.html.haml b/app/views/enterprises/shop.html.haml
index 08e25417cb..3af68f4a50 100644
--- a/app/views/enterprises/shop.html.haml
+++ b/app/views/enterprises/shop.html.haml
@@ -1,3 +1,6 @@
+- content_for(:title) do
+ = current_distributor.name
+
= inject_enterprises
%shop.darkswarm
diff --git a/app/views/groups/index.html.haml b/app/views/groups/index.html.haml
index 710039c7fb..537a81cc26 100644
--- a/app/views/groups/index.html.haml
+++ b/app/views/groups/index.html.haml
@@ -1,20 +1,23 @@
-= inject_enterprises
+- content_for(:title) do
+ Groups
+
+= inject_enterprises
:javascript
angular.module('Darkswarm').value('groups', #{render partial: "json/groups", object: @groups})
-#groups.pad-top{"ng-controller" => "GroupsCtrl"}
+#groups.pad-top.footer-pad{"ng-controller" => "GroupsCtrl"}
#active-table-search.row.pad-top
.small-12.columns
%h1 Groups / regions
%p
- %input.animate-show{type: :text,
+ %input{type: :text,
"ng-model" => "query",
placeholder: "Search name or keyword",
"ng-debounce" => "150",
"ofn-disable-enter" => true}
- .group{"ng-repeat" => "group in groups = (Groups.groups | groups:query | orderBy:order)",
+ .group.animate-repeat{"ng-repeat" => "group in groups = (Groups.groups | groups:query | orderBy:order)",
name: "group{{group.id}}",
id: "group{{group.id}}"}
.row.pad-top{bindonce: true}
diff --git a/app/views/groups/show.html.haml b/app/views/groups/show.html.haml
index 80101d9e8c..907926f8b7 100644
--- a/app/views/groups/show.html.haml
+++ b/app/views/groups/show.html.haml
@@ -1,3 +1,6 @@
+- content_for(:title) do
+ = @group.name
+
-# inject all enterprises as "enterprises"
-# it could be more efficient to inject only the enterprises that are related to the group
= inject_enterprises
@@ -6,7 +9,7 @@
-# further hubs and producers of these enterprises can't be resolved within this small subset
= inject_group_enterprises
-#group-page.row.pad-top{"ng-controller" => "GroupPageCtrl"}
+#group-page.row.pad-top.footer-pad{"ng-controller" => "GroupPageCtrl"}
.small-12.columns.pad-top
%header
.row
diff --git a/app/views/groups/signup.html.haml b/app/views/groups/signup.html.haml
new file mode 100644
index 0000000000..db12442d23
--- /dev/null
+++ b/app/views/groups/signup.html.haml
@@ -0,0 +1,130 @@
+- content_for(:title) do
+ Sign up as a group
+
+#panes
+ #shops-signup.pane
+ .row.header
+ .small-12.medium-12.columns.text-center
+ %h2 Groups sign up
+ .row.content
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %p.text-big We're an amazing platform for collaborative marketing, the easiest way for your members and stakeholders to reach new markets. We're non-profit, affordable, and simple.
+ %br
+ %a.button.transparent{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true}
+ Email us
+
+ .groups-details.pane
+ .row
+ .small-12.medium-8.medium-offset-2.columns
+ %h3.text-center We transform food systems fairly.
+ %p.text-big It's why we get out of bed every day. We're a global non-profit, based on open source code. We play fair. You can always trust us.
+ %p.text-big We know you have big ideas, and we want to help. We'll share our knowledge, networks and resources. We know that isolation doesn't create change, so we'll partner with you.
+ %br
+ %h3.text-center We meet you where you are.
+ %p.text-big You might be an alliance of food hubs, producers, or distributors, and an industry body, or a local government.
+ %p.text-big Whatever your role in your local food movement, we're ready to help. However you come to wonder what Open Food Network would look like or is doing in your part of the world, let's start the conversation.
+ %br
+ %h3.text-center We make food movements make more sense.
+ %p.text-big You need to activate and enable your networks, we offer a platform for conversation and action. You need real engagement. We’ll help reach all the players, all the stakeholders, all the sectors.
+ %p.text-big You need resourcing. We’ll bring all our experience to bear. You need cooperation. We’ll better connect you to a global network of peers.
+ .pane
+ .row
+ .small-12.medium-10.medium-offset-1.columns.text-center
+ %h2 Group Account
+ -# %p.text-big
+ -# / If there is a time-sensitive offer you can write it here, e.g.
+ -# Time-sensitive offer goes here!
+ %br
+ %table.signup-table.hubs-table{cellpadding: "0", cellspacing: "0"}
+ %thead
+ %tr
+ %td
+ %h5
+ %td.text-center{width: "24%"}
+ %h5 OFN Group
+ %tr
+ %td
+ %p
+ %strong Promote your members
+ %br
+ %span.text-small Promote your local and/or member businesses through a group page
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tr
+ %td
+ %p
+ %strong Unique URL
+ %br
+ %span.text-small Your own organisation page/url on the Open Food Network.
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tr
+ %td
+ %p
+ %strong Region map & listings
+ %br
+ %span.text-small Easy search from your own list view and your own map - links through to profile pages for your member/local producers and/or food businesses.
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tr
+ %td
+ %p
+ %strong Opt-in extras
+ %p.text-small Available additional support:
+ %ul.small
+ %li Tailored workshop(s) for your stakeholders
+ %li Tailored training and support package
+ %td.text-center
+ %tfoot
+ %tr
+ %td
+ %td.text-center{valign: "top"}
+ %h2
+ $5,500
+
+ #shops-case-studies
+ .row
+ .small-12.medium-10.medium-offset-1.columns
+ %h2.text-center Case studies
+ %br
+ .row
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/South_East_Food_Hub.png", title: "South East Food Group", description: "The South East Food Hub lists all its participating producers and hubs (food clubs) on its group page on the Open Food Network.", link: "https://openfoodnetwork.org.au/groups/6"
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/mt-alexander.png", title: "Mt Alexander Local Produce Network", description: "This community organisation promotes local sustainable food production and consumption through its group page. It lists sources of local sustenance — direct from the grower or through a range local shops and markets.".html_safe, link: "https://openfoodnetwork.org.au/groups/10"
+
+ .pane#cta
+ .row
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %h2 Ready to discuss?
+ %p.text-big Get in touch to discover what OFN can do for you:
+ %a.button.transparent{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true}
+ Email us
+
+ #hub-details.pane.footer-pad
+ .row
+ .small-12.medium-10.medium-offset-1.columns
+ %h2.text-center Here's the detail.
+ .row
+ .small-12.medium-6.columns
+ %h4 A sub-heading goes here
+ %p Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer in odio vel ex efficitur auctor. Nam rhoncus, tortor vel varius varius, magna lorem dignissim libero, at dignissim erat leo id tortor. Donec gravida quis augue sed pellentesque. Morbi laoreet efficitur mi, id tempus diam lacinia eu.
+ %h5 Smaller sub-heading goes here
+ %p.text-small Vestibulum eu quam neque. Aenean porta velit sit amet metus mattis, ut pulvinar dui semper. Nunc ornare scelerisque varius. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras a magna nec augue suscipit fermentum at ac urna.
+ %ul.text-small
+ %li A bullet point
+ %li Another point
+ %li A third point goes here
+ %p.text-small Quisque urna lacus, tristique sed rutrum a, volutpat eu diam. Nam placerat mi nec enim tincidunt, nec dapibus risus molestie. Praesent mattis eu dolor nec sollicitudin. Cras ut magna sem. Etiam vitae commodo augue, sit amet feugiat diam.
+ .small-12.medium-6.columns
+ %h4 A sub-heading goes here
+ %p Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer in odio vel ex efficitur auctor. Nam rhoncus, tortor vel varius varius, magna lorem dignissim libero, at dignissim erat leo id tortor. Donec gravida quis augue sed pellentesque. Morbi laoreet efficitur mi, id tempus diam lacinia eu.
+ %h5 Smaller sub-heading goes here
+ %p.text-small Vestibulum eu quam neque. Aenean porta velit sit amet metus mattis, ut pulvinar dui semper. Nunc ornare scelerisque varius. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Cras a magna nec augue suscipit fermentum at ac urna.
+ %ul.text-small
+ %li A bullet point
+ %li Another point
+ %li A third point goes here
+ %p.text-small Quisque urna lacus, tristique sed rutrum a, volutpat eu diam. Nam placerat mi nec enim tincidunt, nec dapibus risus molestie. Praesent mattis eu dolor nec sollicitudin. Cras ut magna sem. Etiam vitae commodo augue, sit amet feugiat diam.
+
+= render partial: "shared/footer"
diff --git a/app/views/home/_beta.en-GB.html.haml b/app/views/home/_beta.en-GB.html.haml
deleted file mode 100644
index 2badc7c826..0000000000
--- a/app/views/home/_beta.en-GB.html.haml
+++ /dev/null
@@ -1,13 +0,0 @@
-#beta.pane
-
- .row
- .small-12.columns.text-center
- %h2 S'cuse us
- %h5 while we get (more) awesome
- %p Open Food Network UK is a new service that’s being piloted right now!
- %p Want to help? Or find out when OFN is coming to you?
- %strong We’d love to hear from you:
- %p
- %a{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true} Food buyers
- |
- %a{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true} Food producers & farmers
diff --git a/app/views/home/_beta.html.haml b/app/views/home/_beta.html.haml
deleted file mode 100644
index af72211862..0000000000
--- a/app/views/home/_beta.html.haml
+++ /dev/null
@@ -1,13 +0,0 @@
-#beta.pane
-
- .row
- .small-12.columns.text-center
- %h2 S'cuse us
- %h5 while we get (more) awesome
- %p Open Food Network (beta) is a new service that’s being built right now! Our food producers are currently based around Melbourne and Victoria, and we hope to expand OFN nationally very soon.
- %p Want to help? Or find out when OFN is coming to you?
- %strong We’d love to hear from you:
- %p
- %a{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true} Food buyers
- |
- %a{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true} Food producers & farmers
\ No newline at end of file
diff --git a/app/views/home/_brandstory.html.haml b/app/views/home/_brandstory.html.haml
new file mode 100644
index 0000000000..0db6440db4
--- /dev/null
+++ b/app/views/home/_brandstory.html.haml
@@ -0,0 +1,19 @@
+#brand-story.pane
+ .row
+ .small-12.medium-8.medium-offset-2.columns.text-center
+ %h2 Food, unincorporated.
+ %p Sometimes the best way to fix the system is to start a new one…
+
+ -# TODO: Make this slide down/up
+ .hide-show{"ng-show" => "brandStoryExpanded"}
+ %p We begin from the ground up. With farmers and growers ready to tell their stories proudly and truly. With distributors ready to connect people with products fairly and honestly. With buyers who believe that better weekly shopping decisions can seriously change the world.
+ %p Then we need a way to make it real. A way to empower everyone who grows, sells and buys food. A way to tell all the stories, to handle all the logistics. A way to turn transaction into transformation every day.
+ %p So we build an online marketplace that levels the playing field. It’s transparent, so it creates real relationships. It’s open source, so it’s owned by everyone. It scales to regions and nations, so people start versions across the world.
+ %p It works everywhere. It changes everything.
+ %p
+ %strong We call it Open Food Network.
+ %p We all love food. Now we can love our food system too.
+
+ %a.text-vbig{"ng-click" => "toggleBrandStory()"}
+ %i.ofn-i_005-caret-down{"ng-hide" => "brandStoryExpanded"}
+ %i.ofn-i_006-caret-up{ "ng-show" => "brandStoryExpanded"}
diff --git a/app/views/home/_cta.html.haml b/app/views/home/_cta.html.haml
new file mode 100644
index 0000000000..ab95bae95d
--- /dev/null
+++ b/app/views/home/_cta.html.haml
@@ -0,0 +1,7 @@
+#cta.pane
+ .row
+ .small-12.columns.text-center
+ %h2 Shopping that makes the world a better place.
+ %br
+ %a.button.transparent{href: "/shops"}
+ I'm Ready
diff --git a/app/views/home/_groups.html.haml b/app/views/home/_groups.html.haml
deleted file mode 100644
index 5d76dd1e2d..0000000000
--- a/app/views/home/_groups.html.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-#groups.pane
-
- .row
- .small-12.columns.text-center
- %h2 Groups / Regions
- %h5 See all the groups & regions on the Open Food Network
- %p
- %a.neutral-btn.light{href: "/groups"}
- %i.ofn-i_035-groups
- View groups & regions
\ No newline at end of file
diff --git a/app/views/home/_map.html.haml b/app/views/home/_map.html.haml
deleted file mode 100644
index 5a89dd181e..0000000000
--- a/app/views/home/_map.html.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-#map.pane
-
- .row
- .small-12.columns.text-center
- %h2 Map
- %h5 of all our food hubs and producers
- %p
- %a.neutral-btn.light{href: "/map"}
- %i.ofn-i_037-map
- View map
\ No newline at end of file
diff --git a/app/views/home/_producer-register.html.haml b/app/views/home/_producer-register.html.haml
deleted file mode 100644
index 62845bd9ea..0000000000
--- a/app/views/home/_producer-register.html.haml
+++ /dev/null
@@ -1,75 +0,0 @@
-#producers.pane
-
- .row
- .small-12.columns.text-center
- %h2
- = t :producers
- %h5 Want to join the Open Food Network?
- %br
- %a.neutral-btn.turquoise{href: "/register"}
- Register now
- %i.ofn-i_007-caret-right
- / .row
- / .small-12.medium-4.columns.text-center
- / %ul.pricing-table
- / %li.title Profile
- / %li.price Always free
- / %li.description Help people find and contact you on OFN
- / %li.bullet-item
- / %i.ofn-i_019-map-pin
- / Pin on OFN Map
- / %li.bullet-item
- / %i.ofn-i_044-facebook
- / Share your contact and social info
- / %li.cta-button
- / %a.neutral-btn.turquoise{:href => "/register"}
- / Register now
- / %i.ofn-i_007-caret-right
-
- / .small-12.medium-4.columns.text-center
- / %ul.pricing-table
- / %li.title Supplier
- / %li.price Always free
- / %li.description Sell your products through existing OFN shopfronts
- / %li.bullet-item
- / %i.ofn-i_019-map-pin
- / Pin on OFN Map
- / %li.bullet-item
- / %i.ofn-i_044-facebook
- / Share your contact and social info
- / %li.bullet-item
- / %i.ofn-i_067-shop
- / Create and manage products
- / %li.cta-button
- / %a.neutral-btn.turquoise{:href => "/register"}
- / Register now
- / %i.ofn-i_007-caret-right
-
- / .small-12.medium-4.columns.text-center
- / %ul.pricing-table
- / %li.title Shopfront
- / %li.price $200 setup fee
- / %li.description + Sliding monthly fee of $5-$50/month
- / %li.bullet-item
- / %i.ofn-i_019-map-pin
- / Pin on OFN Map
- / %li.bullet-item
- / %i.ofn-i_044-facebook
- / Share your contact and social info
- / %li.bullet-item
- / %i.ofn-i_067-shop
- / Create and manage products
- / %li.bullet-item
- / %i.ofn-i_051-check-big
- / Create and manage order cycles
- / %li.bullet-item
- / %i.ofn-i_051-check-big
- / Sell your products on Shopfront
- / %li.cta-button
- / %a.neutral-btn.turquoise{:href => "/register"}
- / Register now
- / %i.ofn-i_007-caret-right
-
-
-
-
\ No newline at end of file
diff --git a/app/views/home/_producers.html.haml b/app/views/home/_producers.html.haml
deleted file mode 100644
index 3d4fcfbd68..0000000000
--- a/app/views/home/_producers.html.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-#producers.pane
-
- .row
- .small-12.columns.text-center
- %h2 Producers
- %h5 Looking for a specific producer or farmer?
- %p
- %a.neutral-btn.turquoise{href: "/producers"}
- %i.ofn-i_036-producers
- View all producers
\ No newline at end of file
diff --git a/app/views/home/_stats.html.haml b/app/views/home/_stats.html.haml
new file mode 100644
index 0000000000..374a98cdbf
--- /dev/null
+++ b/app/views/home/_stats.html.haml
@@ -0,0 +1,22 @@
+#stats.pane
+ .row.header
+ .small-12.medium-8.medium-offset-2.columns.text-center
+ %h2 We're creating a new food system.
+
+ .row.content
+ .small-12.medium-3.columns.text-center
+ %h4
+ %strong= number_with_delimiter @num_producers
+ food producers
+ .small-12.medium-3.columns.text-center
+ %h4
+ %strong= number_with_delimiter @num_distributors
+ food shops
+ .small-12.medium-3.columns.text-center
+ %h4
+ %strong= number_with_delimiter @num_users
+ food shoppers
+ .small-12.medium-3.columns.text-center
+ %h4
+ %strong= number_with_delimiter @num_orders
+ food orders
diff --git a/app/views/home/_system.html.haml b/app/views/home/_system.html.haml
new file mode 100644
index 0000000000..ed32e305f4
--- /dev/null
+++ b/app/views/home/_system.html.haml
@@ -0,0 +1,23 @@
+#system.pane
+ .row
+ .small-12.medium-12.large-8.large-offset-2.columns.text-center
+ %h2 Here's how it works.
+ .row
+ .small-12.medium-4.columns.text-left
+ .home-icon-box
+ %a.search{href: "/shops"}
+ .home-icon-box-bottom
+ %h4 1. Search
+ %p.text-normal Search our diverse, independent shops for seasonal local food. Search by neighbourhood and food category, or whether you prefer delivery or pickup.
+ .small-12.medium-4.columns.text-left
+ .home-icon-box
+ %a.shop{href: "/shops"}
+ .home-icon-box-bottom
+ %h4 2. Shop
+ %p.text-normal Transform your transactions with affordable local food from diverse producers and hubs. Know the stories behind your food and the people who make it!
+ .small-12.medium-4.columns.text-left
+ .home-icon-box
+ %a.pick-up-delivery{href: "/shops"}
+ .home-icon-box-bottom
+ %h4 3. Pick-up / Delivery
+ %p.text-normal Hang on for your delivery, or visit your producer or hub for a more personal connection with your food. Food shopping as diverse as nature intended it.
diff --git a/app/views/home/about_us.html.haml b/app/views/home/about_us.html.haml
deleted file mode 100644
index 79e4a657a7..0000000000
--- a/app/views/home/about_us.html.haml
+++ /dev/null
@@ -1,8 +0,0 @@
-.row
- .large-12.columns
- %h2 What is open food network
- %p
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
- aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
- Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
- occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
\ No newline at end of file
diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml
index a15442e794..7388466973 100644
--- a/app/views/home/index.html.haml
+++ b/app/views/home/index.html.haml
@@ -1,24 +1,22 @@
-#tagline
- .row
- .small-12.text-center.columns
- %h1
- %img{src: "/assets/open-food-network-beta.png", srcset: "/assets/open-food-network-beta.svg", width: "550", height: "134", title: "Open Food Network (beta)"}
- %h2 An open marketplace that makes it easy to find, buy, sell and move sustainable local food.
-
- %ofn-modal{title: "Learn more", "ng-cloak" => true}
- = render partial: "modals/learn_more"
+%div{"ng-controller" => "HomeCtrl"}
+ = render partial: "shared/menu/alert"
-.ng-cloak
- = render partial: "home/hubs"
+ #tagline
+ .row
+ .small-12.text-center.columns
+ %h1
+ / TODO: Rohan - logo asset & width is content manageable:
+ -# TODO: SVGify
+ %img{src: "/assets/logo-white-notext.png", width: "250", title: "Open Food Network Australia"}
+ %br/
+ %a.button.transparent{href: "/shops"}
+ Shop Now
- / = render partial: "home/map"
- / = render partial: "home/producers"
+ #panes
+ = render partial: "home/brandstory"
+ = render partial: "home/system"
+ = render partial: "home/cta"
+ = render partial: "home/stats"
- / = render partial: "home/groups"
-
-= render partial: "home/producer-register"
-
-= render partial: "home/beta"
-
-= render partial: "shared/footer"
+ = render partial: "shared/footer"
diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml
index 5169efa942..a4d8db30c0 100644
--- a/app/views/layouts/darkswarm.html.haml
+++ b/app/views/layouts/darkswarm.html.haml
@@ -3,16 +3,16 @@
%meta{charset: 'utf-8'}/
%meta{name: 'viewport', content: "width=device-width,initial-scale=1.0"}/
- %title= content_for?(:title) ? yield(:title) : 'Welcome to Open Food Network'
+ %title= content_for?(:title) ? "#{yield(:title)} - Open Food Network" : 'Welcome to Open Food Network'
- if Rails.env.production?
= favicon_link_tag
- else
= favicon_link_tag "/favicon-staging.ico"
- %link{href: "https://fonts.googleapis.com/css?family=Open+Sans:400,700", rel: "stylesheet", type: "text/css"}/
+ %link{href: "https://fonts.googleapis.com/css?family=Roboto:400,300italic,400italic,300,700,700italic|Oswald:300,400,700", rel: "stylesheet", type: "text/css"}
= yield :scripts
%script{src: "//maps.googleapis.com/maps/api/js?libraries=places&sensor=false"}
- = stylesheet_link_tag "darkswarm/all"
+ = split_stylesheet_link_tag "darkswarm/all"
= javascript_include_tag "darkswarm/all"
@@ -34,7 +34,7 @@
.off-canvas-wrap{offcanvas: true}
.inner-wrap
- = render partial: "shared/menu/menu"
+ = render "shared/menu/menu"
%section{ role: "main" }
= yield
diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml
index 9042c91213..39f677b890 100644
--- a/app/views/layouts/mailer.html.haml
+++ b/app/views/layouts/mailer.html.haml
@@ -15,7 +15,7 @@
%table{:bgcolor => "#f2f2f2"}
%tr
%td
- %img{:src => "#{ asset_path 'open-food-network-beta-black.png' }", :width => "200", :height => "49"}/
+ %img{:src => "#{ asset_path 'logo-color.png' }", :width => "144", :height => "50"}/
%td{:align => "right"}
%h6.collapse
Open Food Network
diff --git a/app/views/layouts/registration.html.haml b/app/views/layouts/registration.html.haml
index d6122cdc3b..c0e0c4b7ec 100644
--- a/app/views/layouts/registration.html.haml
+++ b/app/views/layouts/registration.html.haml
@@ -3,12 +3,12 @@
%meta{charset: 'utf-8'}/
%meta{name: 'viewport', content: "width=device-width,initial-scale=1.0"}/
- %title= content_for?(:title) ? yield(:title) : 'Welcome to Open Food Network'
+ %title= content_for?(:title) ? "#{yield(:title)} - Open Food Network" : 'Welcome to Open Food Network'
- if Rails.env.production?
= favicon_link_tag
- else
= favicon_link_tag "/favicon-staging.ico"
- %link{href: "https://fonts.googleapis.com/css?family=Open+Sans:400,700", rel: "stylesheet", type: "text/css"}/
+ %link{href: "https://fonts.googleapis.com/css?family=Roboto:400,300italic,400italic,300,700,700italic|Oswald:300,400,700", rel: "stylesheet", type: "text/css"}
= yield :scripts
%script{src: "//maps.googleapis.com/maps/api/js?libraries=places&sensor=false"}
@@ -19,7 +19,7 @@
= render "layouts/bugherd_script"
= csrf_meta_tags
- %body.off-canvas{"ng-app" => "Darkswarm", style: 'background-image: url("/assets/home/ofn_bg_1.jpg")' }
+ %body.off-canvas{"ng-app" => "Darkswarm", style: 'background-image: url("/assets/tile-wide.png")' }
/ [if lte IE 8]
= render partial: "shared/ie_warning"
= javascript_include_tag "iehack"
diff --git a/app/views/map/index.html.haml b/app/views/map/index.html.haml
index ce4052be57..30df47e28c 100644
--- a/app/views/map/index.html.haml
+++ b/app/views/map/index.html.haml
@@ -1,8 +1,11 @@
-= inject_enterprises
+- content_for(:title) do
+ Map
+
+= inject_enterprises
.map-container{"fill-vertical" => true}
%map{"ng-controller" => "MapCtrl"}
%google-map{options: "map.additional_options", center: "map.center", zoom: "map.zoom", styles: "map.styles", draggable: "true"}
%map-search
- %markers{models: "OfnMap.enterprises", fit: "true",
- coords: "'self'", icon: "'icon'", click: "'reveal'"}
+ %markers{models: "OfnMap.enterprises", fit: "true",
+ coords: "'self'", icon: "'icon'", click: "'reveal'"}
diff --git a/app/views/producers/index.html.haml b/app/views/producers/index.html.haml
index e3ae9815e2..3dbbfe9fbb 100644
--- a/app/views/producers/index.html.haml
+++ b/app/views/producers/index.html.haml
@@ -1,6 +1,9 @@
+- content_for(:title) do
+ Producers
+
= inject_enterprises
-.producers.pad-top{"ng-controller" => "EnterprisesCtrl", "ng-cloak" => true}
+.producers{"ng-controller" => "EnterprisesCtrl", "ng-cloak" => true}
.row
.small-12.columns.pad-top
%h1 Find local producers
diff --git a/app/views/producers/signup.html.haml b/app/views/producers/signup.html.haml
new file mode 100644
index 0000000000..6f2cee2a5b
--- /dev/null
+++ b/app/views/producers/signup.html.haml
@@ -0,0 +1,122 @@
+- content_for(:title) do
+ Sign up as a producer
+
+#panes
+ #producer-signup.pane
+ .row.header
+ .small-12.medium-12.columns.text-center
+ %h2 Food producers, empowered.
+ .row.content
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %p.text-big Sell your food and tell your stories to diverse new markets. Save time and money on every overhead. We support innovation without the risk. We've levelled the playing field.
+ %br
+ %a.button.transparent{href: "/register"}
+ Join now
+ .pane
+ .row
+ .small-12.medium-10.medium-offset-1.columns.text-center
+ %h2 Enterprise Accounts
+ -# %p.text-big
+ -# If there is a time-sensitive offer you can write it here, e.g.
+ -# Sign up before 30th June for an extra month free!
+ %br
+ %table.signup-table.producers-table{cellpadding: "0", cellspacing: "0"}
+ %thead
+ %tr
+ %td
+ %h5
+ %td.text-center{width: "20%"}
+ %h5 Basic
+ %td.text-center{width: "24%"}
+ %h5 Plus
+ %tr
+ %td
+ %p
+ %strong Profile
+ %p
+ %span.text-small Get a profile on the Open Food Network - including a listing on the Producers page and a pin on the OFN Map. These help people to find and connect with you.
+ %p
+ %span.text-small Option to add and manage your products on OFN, enabling you to act as a supplier to other OFN shopfronts.
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tr
+ %td
+ %p
+ %strong Shop
+ %p.text-small Get a shopfront on OFN to sell your produce direct!
+ %p.text-small Basic support included:
+ %ul.small
+ %li User manual
+ %li Post queries to discussion forum/via contact form
+ %li Report bugs/suggestions
+ %li Regular release notes – what's new
+ %td.text-center
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tfoot
+ %tr
+ %td
+ %td.text-center{valign: "top"}
+ %h2 Free
+ %td.text-center{valign: "top"}
+ %h2
+ .text-small
+ first
+ %br
+ month
+ Free
+ %p.text-small
+ Then, 2% of total transactions
+ %br
+ %em
+ Capped at
+ %strong $50
+ per month
+ %br
+ %em (Special offer for 2015)
+
+ #producer-case-studies
+ .row
+ .small-12.medium-10.medium-offset-1.columns
+ %h2.text-center Stories from our producers.
+ %br
+ .row
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/jonai.png", title: "Jonai Farms", description: "Jonai Farms is an ethical pork and beef “Community Supported Agriculture” farm that delivers to a range of hubs in Melbourne and central Victoria every month.", link: "http://www.jonaifarms.com.au"
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/wandiful.png", title: "Wandiful Produce", description: "Biodynamically grown in NE Victoria, Wandiful Produce supplies hazelnuts, chestnuts and associated products (bliss balls - yum!) shipped to your door.", link: "https://openfoodnetwork.org.au/wandiful-produce/shop"
+ .row
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/longley.png", title: "Longley Organic Farm", description: "Near Hobart, Longley Organic Farm provides berries and vegetables for local food cooperatives and small shops and through its roadside stall.", link: "https://openfoodnetwork.org.au/longley-organic-farm/shop"
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/jindivick.jpg", title: "Jindivick Hydroponics", description: "Selling through farmers markets and the South East Food Hub, Jindivick Hydroponics grow an ever increasing range of vegetables including tomatoes, cucumbers and beans.", link: "https://openfoodnetwork.org.au/producers#/#jindivick-hydroponics"
+
+
+ .pane#cta
+ .row
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %h2 Join now!
+ %p.text-big Start with a free profile, and expand when you're ready!
+ %a.button.transparent{href: "/register"}
+ Join now
+
+ #producer-details.pane.footer-pad
+ .row
+ .small-12.medium-10.medium-offset-1.columns
+ %h2.text-center Here's the detail.
+ = render 'shared/enterprise_type_flowchart', type: 'producers'
+ %h4 Join a marketplace of independent online food stores
+ %p Create an online shop front and join the network of online farmers markets on the Open Food Network. Set up a Producer Shop and sell your products direct to customers, or create a Food Hub and sell products from multiple producers.
+
+ %h4 Connect with a new source of customers
+ %p Gain access to the growing crowd of conscientious buyers on the Open Food Network, all looking to make more ethical and sustainable choices when purchasing food.
+ %h4 Manage your business online
+ %p The Open Food Network provides online tools to help with the day-to-day running of your business. Manage your product listing and stock levels. Create, receive and manage orders from your buyers, and organise payments online. Generate invoices for orders and export them to your accounting software, and access a range of reports.
+ %h4 Start with a simple listing on our directory
+ %p Create a profile on the Open Food Network and gain exposure to a new marketplace of potential buyers. Tell your story in words and images, provide your contact details, and drive connections to your social and online presence.
+ %p Access new wholesale opportunities by connecting with food hubs in your region who can sell and distribute your products to buyers on the Open Food Network.
+
+
+= render partial: "shared/footer"
diff --git a/app/views/registration/index.html.haml b/app/views/registration/index.html.haml
index d110e98657..a05c383395 100644
--- a/app/views/registration/index.html.haml
+++ b/app/views/registration/index.html.haml
@@ -1,3 +1,6 @@
+- content_for(:title) do
+ Register
+
= inject_spree_api_key
= inject_available_countries
= inject_enterprise_attributes
diff --git a/app/views/shared/_case_study.html.haml b/app/views/shared/_case_study.html.haml
new file mode 100644
index 0000000000..12e59c6b6c
--- /dev/null
+++ b/app/views/shared/_case_study.html.haml
@@ -0,0 +1,6 @@
+.case-study
+ %img.case-study-img{src: img_src, width: "100", height: "100", title: title}
+ %h4= title
+ %p.text-small= description
+ %a{href: link, target: "_blank"}
+ %strong More
diff --git a/app/views/shared/_enterprise_type_flowchart.html.haml b/app/views/shared/_enterprise_type_flowchart.html.haml
new file mode 100644
index 0000000000..7fda2e0891
--- /dev/null
+++ b/app/views/shared/_enterprise_type_flowchart.html.haml
@@ -0,0 +1,16 @@
+.enterprise-type-flowchart
+ = image_tag "enterprise-type.png"
+ %br
+ %br
+ %br
+ %br
+ %br
+ %p{style: "text-align: center;"}
+ %a{href: "http://www.openfoodnetwork.org/platform/features/"} More Features
+ \|
+ %a{href: "http://www.openfoodnetwork.org/platform/user-guide/"} User Guide
+ \|
+ - if type == 'hubs'
+ %a{href: "http://www.openfoodnetwork.org/platform/user-guide/faqs/hub-faqs/"} Hub FAQs
+ - elsif type == 'producers'
+ %a{href: "http://www.openfoodnetwork.org/platform/user-guide/faqs/producer-faqs/"} Producer FAQs
diff --git a/app/views/shared/_footer.html.haml b/app/views/shared/_footer.html.haml
index e06ae0f0aa..de9d9e341a 100644
--- a/app/views/shared/_footer.html.haml
+++ b/app/views/shared/_footer.html.haml
@@ -1,60 +1,136 @@
%footer
- .row.landing-page-row
- .small-12.medium-4.columns.text-left
- %h4 Email us
- %p
- %a{href: "hello@openfoodnetwork.org".reverse, target: '_blank', mailto: true}
- %span.email
- = "hello@openfoodnetwork.org".reverse
- %h4 Follow us
- %p
- %a{title:'Follow us on Facebook', href: 'https://www.facebook.com/OpenFoodNet', target: '_blank'}
- %i.ofn-i_044-facebook
- Facebook
- %a{title:'Follow us on Twitter', href: 'https://twitter.com/OpenFoodNet', target: '_blank'}
- %i.ofn-i_041-twitter
- Twitter
- %a{title:'Join our group on LinkedIn', href: 'http://www.linkedin.com/groups/Open-Food-Foundation-4743336', target: '_blank'}
- %i.ofn-i_042-linkedin
- LinkedIn
- .small-12.medium-3.columns.text-left
- %h4 Getting around
- %ul.bullet-list
- %li
- %a{href: "/shop"} Shop
- %li
- %a{href: "/map"} Map
- %li
- %a{href: "/producers"} Producers
- %li
- %a{href: "/groups"} Groups
- .small-12.medium-2.columns.text-left
- %h4 Producers
- %p
- = t :producers_join
- %p
- %a{href: "/register"} Register now
- .small-12.medium-3.columns.text-left
- %h4 About us
- %p OFN is a network of independent online food stores that connect farmers and food hubs with individuals and local businesses. It gives farmers and food hubs an easier and fairer way to distribute their food.
- .row.landing-page-row
- .small-12.columns.text-center.pad-top
- %hr
- %h5.pad-top
- %a{title: 'Open Food Network', href:'http://www.openfoodnetwork.org', target: '_blank' } openfoodnetwork.org
- %br
- © Copyright
- = Date.today.year
- Open Food Foundation
- %p
- %small
- %a{href:"https://creativecommons.org/licenses/by-sa/3.0/", target: "_blank" } Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
- %p
- %small
- %a{href:"/Terms-of-service.pdf", target: "_blank" } Site terms & conditions
- |
- %a{href:"https://github.com/openfoodfoundation/openfoodnetwork", target: "_blank" } Open Source & developer info on GitHub
+ .footer-global
+ .row
+ .small-12.columns.text-center
+ .logo
+ %img{src: "/assets/logo-white-notext.png", width: "120px"}
+ .row
+ .small-12.medium-8.medium-offset-2.columns.text-center
+ .alert-box
+ %a.big-alert{href: "http://www.openfoodnetwork.org", target: "_blank"}
+ %h6
+ Interested in selling food on the Open Food Network?
+ %strong Start here
+ %i.ofn-i_054-point-right
+ .row
+ .small-12.medium-4.medium-offset-2.columns.text-center
+ %h6 OFN Global
+ %p
+ %a{href: "http://www.openfoodnetwork.org", target: "_blank"} Home
+ %span |
+ %a{href: "http://www.openfoodnetwork.org/news/", target: "_blank"} News
+ %span |
+ %a{href: "http://www.openfoodnetwork.org/about/history-team/", target: "_blank"} About
+ %span |
+ %a{href: "http://www.openfoodnetwork.org/contact/", target: "_blank"} Contact
- // To be added when Guy's pretty landing page is up:
- //|
- //%a{href:'' } Developers
+
+ .small-12.medium-4.columns.text-center
+ %h6 OFN Sites
+ %p
+ %a{href: "http://dev.openfoodnetwork.org", target: "_blank"} Developer
+ %span |
+ %a{href: "http://community.openfoodnetwork.org", target: "_blank"} Community
+ %span |
+ %a{href: "http://www.openfoodnetwork.org/platform/user-guide/", target: "_blank"} User Guide
+
+ .medium-2.columns.text-center
+ / Placeholder
+
+ .footer-local
+ .row
+ .small-12.medium-2.medium-offset-2.columns.text-center
+ %p.secure-icon
+ %i.ofn-i_017-locked
+ .small-12.medium-6.columns.text-center
+ %p.text-big.secure-text Secure and trusted.
+ %p.secure-text Open Food Network uses SSL encryption (2048 bit RSA) everywhere to keep your shopping and payment information private. Our servers do not store your credit card details and payments are processed by PCI-compliant services.
+ .small-12.medium-2.columns
+
+ .row
+ .small-12.medium-8.medium-offset-2.columns.text-center
+ %hr.hr-light
+ %br
+
+ .row
+ .small-6.medium-3.medium-offset-2.columns.text-left
+ // This is the instance-managed set of links:
+ %h4 Keep in touch
+ %p.social-icons
+ - if ContentConfig.footer_facebook_url.present?
+ %a{href: ContentConfig.footer_facebook_url}
+ %i.ofn-i_044-facebook
+ - if ContentConfig.footer_twitter_url.present?
+ %a{href: ContentConfig.footer_twitter_url}
+ %i.ofn-i_041-twitter
+ - if ContentConfig.footer_instagram_url.present?
+ %a{href: ContentConfig.footer_instagram_url}
+ %i.ofn-i_043-instagram
+ - if ContentConfig.footer_linkedin_url.present?
+ %a{href: ContentConfig.footer_linkedin_url}
+ %i.ofn-i_042-linkedin
+ - if ContentConfig.footer_googleplus_url.present?
+ %a{href: ContentConfig.footer_googleplus_url}
+ %i.ofn-i_046-g
+ - if ContentConfig.footer_pinterest_url.present?
+ %a{href: ContentConfig.footer_pinterest_url}
+ %i.ofn-i_045-pintrest
+ - if ContentConfig.footer_email.present?
+ %p
+ %a{href: ContentConfig.footer_email.reverse, mailto: true, target: '_blank'} Email us
+ = render_markdown(ContentConfig.footer_links_md).html_safe
+
+
+ .small-6.medium-3.columns.text-left
+ %h4 Navigate
+ %p
+ %a{href: "/shops"} Shops
+ %p
+ %a{href: "/map"} Map
+ %p
+ %a{href: "/producers"} Producers
+ %p
+ %a{href: "/groups"} Groups
+ %p
+ %a{href: ContentConfig.footer_about_url} About
+
+ .small-12.medium-2.columns.text-left
+ %h4 Join us
+ %p
+ %a{href: "/producers/signup"} Producers sign-up
+ %p
+ %a{href: "/shops/signup"} Hubs sign-up
+ %p
+ %a{href: "/groups/signup"} Groups sign-up
+ %p
+ %a{href: "http://www.openfoodnetwork.org/platform/food-system-partners/", target: "_blank"} Food systems partners
+
+ .medium-2.columns.text-center
+ / Placeholder
+
+ .row
+ .small-12.medium-8.medium-offset-2.columns.text-center
+ %hr.hr-light
+ %br
+
+ .row
+ .small-12.medium-3.medium-offset-2.columns.text-left
+ %a{href: root_path}
+ %img{src: "/assets/logo-color.png", srcset: "/assets/logo-color.svg", width: "220px"}
+ .small-12.medium-5.columns.text-left
+ %p.text-small
+ Read our
+ %a{href: "/Terms-of-service.pdf"} Terms & conditions
+ |
+ Find us on
+ %a{href:"https://github.com/openfoodfoundation/openfoodnetwork", target: "_blank"} Github
+ %p.text-small
+ Open Food Network is a free and open source software platform. Our content is licensed with
+ = succeed ',' do
+ %a{href:"https://creativecommons.org/licenses/by-sa/3.0/", target: "_blank" } CC BY-SA 3.0
+ and our code with
+ = succeed '.' do
+ %a{href:"https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)", target: "_blank" } AGPL 3
+
+ .medium-2.columns.text-center
+ / Placeholder
diff --git a/app/views/shared/menu/_alert.html.haml b/app/views/shared/menu/_alert.html.haml
new file mode 100644
index 0000000000..529276f379
--- /dev/null
+++ b/app/views/shared/menu/_alert.html.haml
@@ -0,0 +1,8 @@
+.text-center.page-alert.fixed{ "ofn-page-alert" => true }
+ .alert-box
+ %a.alert-cta{href: "http://www.openfoodnetwork.org", target: "_blank"}
+ %h6
+ Interested in selling food on the Open Food Network?
+ %strong Start here
+ %i.ofn-i_054-point-right
+ %a.close{ ng: { click: "close()" } } ×
diff --git a/app/views/shared/menu/_large_menu.html.haml b/app/views/shared/menu/_large_menu.html.haml
index a12d0030e0..bf4e14d871 100644
--- a/app/views/shared/menu/_large_menu.html.haml
+++ b/app/views/shared/menu/_large_menu.html.haml
@@ -1,43 +1,34 @@
%nav.top-bar.show-for-large-up{'data-topbar' => true}
%section.top-bar-section
- %ul.left{}
+ %ul.left
%li.ofn-logo
- %a{href: root_path}
- %img{src: "/assets/open-food-network-beta.png", srcset: "/assets/open-food-network-beta.svg", width: "110", height: "26"}
- %li.divider
- - if current_page? root_path
- %li
- %a{"ofn-scroll-to" => "hubs"}
- %span.nav-primary Hubs
- - else
- %li
- %a{href: root_path + "#/#hubs"}
- %span.nav-primary Hubs
- %li.divider
+ %a{href: root_path}
+ -# TODO: SVGify (though this image is double-size for retina)
+ %img{src: "/assets/logo-australia.png", width: "250", height: "51"}
+ %ul.center
+ %li
+ %a{href: main_app.shops_path}
+ %span.nav-primary Shops
%li
%a{href: main_app.map_path}
%span.nav-primary Map
- %li.divider
%li
%a{href: main_app.producers_path}
%span.nav-primary Producers
- %li.divider
%li
%a{href: main_app.groups_path}
%span.nav-primary Groups
- %li.divider
- %section.top-bar-section
+ %li
+ %a{href: ContentConfig.footer_about_url}
+ %span.nav-primary About
%ul.right
- %li.divider
- if spree_current_user.nil?
= render 'shared/signed_out'
- else
= render 'shared/signed_in'
- %li.divider
%li.current_hub{"ng-controller" => "CurrentHubCtrl", "ng-show" => "CurrentHub.hub.id", "ng-cloak" => true}
%a{href: main_app.shop_path}
- %em Shopping @
+ %em Shopping @
%span.nav-primary.nav-branded {{ CurrentHub.hub.name }}
- %li.divider
%li.cart{"ng-cloak" => true}
= render partial: "shared/menu/cart"
diff --git a/app/views/shared/menu/_mobile_menu.html.haml b/app/views/shared/menu/_mobile_menu.html.haml
index e5ba9af83b..0860b6ebca 100644
--- a/app/views/shared/menu/_mobile_menu.html.haml
+++ b/app/views/shared/menu/_mobile_menu.html.haml
@@ -12,20 +12,18 @@
%ul.off-canvas-list
%li.ofn-logo
%a{href: root_path}
- %img{src: "/assets/open-food-network-beta.png", srcset: "/assets/open-food-network-beta.svg", width: "110", height: "26"}
-
- - if current_page? root_path
- %li.li-menu
+ %img{src: "/assets/logo-black.png", srcset: "/assets/logo-black.svg", width: "75", height: "26"}
+ %li.li-menu
+ - if current_page? main_app.shops_path
%a{"ofn-scroll-to" => "hubs"}
%span.nav-primary
- %i.ofn-i_040-hub
- Hubs
- - else
- %li.li-menu
- %a{href: root_path + "#/#hubs"}
+ %i.ofn-i_019-map-pin
+ Shops
+ - else
+ %a{href: main_app.shops_path}
%span.nav-primary
- %i.ofn-i_040-hub
- Hubs
+ %i.ofn-i_019-map-pin
+ Shops
%li.li-menu
%a{href: main_app.map_path}
%span.nav-primary
@@ -41,6 +39,11 @@
%span.nav-primary
%i.ofn-i_035-groups
Groups
+ %li.li-menu
+ %a{href: ContentConfig.footer_about_url}
+ %span.nav-primary
+ %i.ofn-i_013-help
+ About
%li
- if spree_current_user.nil?
diff --git a/app/views/shop/products/_form.html.haml b/app/views/shop/products/_form.html.haml
index bdaded0f0d..527ecbdd94 100644
--- a/app/views/shop/products/_form.html.haml
+++ b/app/views/shop/products/_form.html.haml
@@ -1,57 +1,58 @@
-%products.small-12.columns{"ng-controller" => "ProductsCtrl", "ng-show" => "order_cycle.order_cycle_id != null", "ng-cloak" => true,
-"infinite-scroll" => "incrementLimit()", "infinite-scroll-distance" => "1"}
+.footer-pad.small-12.columns
+ %products{"ng-controller" => "ProductsCtrl", "ng-show" => "order_cycle.order_cycle_id != null", "ng-cloak" => true,
+ "infinite-scroll" => "incrementLimit()", "infinite-scroll-distance" => "1"}
- // TODO: Needs an ng-show to slide content down
- .row.animate-slide{ "ng-show" => "query || appliedPropertiesList() || appliedTaxonsList()" }
- .small-12.columns
- .alert-box.search-alert.ng-scope
- %a.right{"ng-click" => "clearAll()"}
- Clear all
- %i.ofn-i_009-close
- %span.filter-label
- Showing:
- %span.applied-properties
- {{ appliedPropertiesList() }}
- %span.applied-taxons
- {{ appliedTaxonsList() }}
- %span{ ng: { hide: "!query"} }
- %span{ "ng-show" => "appliedPropertiesList() || appliedTaxonsList()" }
- with
- %span.applied-search "{{ query }}"
- .row
- .small-12.medium-6.large-5.columns
- %input#search.text{"ng-model" => "query",
- placeholder: "Search by product or producer",
- "ng-debounce" => "100",
- "ofn-disable-enter" => true}
+ // TODO: Needs an ng-show to slide content down
+ .row.animate-slide{ "ng-show" => "query || appliedPropertiesList() || appliedTaxonsList()" }
+ .small-12.columns
+ .alert-box.search-alert.ng-scope
+ %a.right{"ng-click" => "clearAll()"}
+ Clear all
+ %i.ofn-i_009-close
+ %span.filter-label
+ Showing:
+ %span.applied-properties
+ {{ appliedPropertiesList() }}
+ %span.applied-taxons
+ {{ appliedTaxonsList() }}
+ %span{ ng: { hide: "!query"} }
+ %span{ "ng-show" => "appliedPropertiesList() || appliedTaxonsList()" }
+ with
+ %span.applied-search "{{ query }}"
+ .row
+ .small-12.medium-6.large-5.columns
+ %input#search.text{"ng-model" => "query",
+ placeholder: "Search by product or producer",
+ "ng-debounce" => "100",
+ "ofn-disable-enter" => true}
- .small-12.medium-6.large-6.large-offset-1.columns
- = render partial: "shop/products/filters"
+ .small-12.medium-6.large-6.large-offset-1.columns
+ = render partial: "shop/products/filters"
- %div.pad-top{bindonce: true}
- %product.animate-repeat{"ng-controller" => "ProductNodeCtrl",
- "ng-repeat" => "product in filteredProducts = (Products.products | products:query | taxons:activeTaxons | properties: activeProperties) track by product.id ", "id" => "product-{{ product.id }}"}
- = render partial: "shop/products/summary"
- %shop-variant{variant: 'product.master', "bo-if" => "!product.hasVariants", "id" => "variant-{{ product.master.id }}"}
- %shop-variant{variant: 'variant', "ng-repeat" => "variant in product.variants track by variant.id", "id" => "variant-{{ variant.id }}"}
+ %div.pad-top{bindonce: true}
+ %product.animate-repeat{"ng-controller" => "ProductNodeCtrl",
+ "ng-repeat" => "product in filteredProducts = (Products.products | products:query | taxons:activeTaxons | properties: activeProperties) track by product.id ", "id" => "product-{{ product.id }}"}
+ = render partial: "shop/products/summary"
+ %shop-variant{variant: 'product.master', "bo-if" => "!product.hasVariants", "id" => "variant-{{ product.master.id }}"}
+ %shop-variant{variant: 'variant', "ng-repeat" => "variant in product.variants track by variant.id", "id" => "variant-{{ variant.id }}"}
- %product{"ng-show" => "Products.loading"}
- .row.summary
- .small-12.columns.text-center
- Loading products...
- .row
- .small-12.columns.text-center
- %img.spinner{ src: "/assets/spinning-circles.svg" }
+ %product{"ng-show" => "Products.loading"}
+ .row.summary
+ .small-12.columns.text-center
+ Loading products...
+ .row
+ .small-12.columns.text-center
+ %img.spinner{ src: "/assets/spinning-circles.svg" }
- %div{"ng-show" => "filteredProducts.length == 0 && !Products.loading"}
- .row.summary
- .small-12.columns
- %p.no-results
- Sorry, no results found for
- %strong {{query}}.
- Try another search?
- .row
- .small-12.columns
- %form{action: cart_path}
- %i.ofn-i_011-spinner.cart-spinner{"ng-show" => "Cart.dirty"}
- %input.small.button.primary.right.add_to_cart{type: :submit, value: "{{ Cart.dirty ? 'Updating cart...' : (Cart.empty() ? 'Cart empty' : 'Edit your cart' ) }}", "ng-disabled" => "Cart.dirty || Cart.empty()", "ng-class" => "{ dirty: Cart.dirty }" }
+ %div{"ng-show" => "filteredProducts.length == 0 && !Products.loading"}
+ .row.summary
+ .small-12.columns
+ %p.no-results
+ Sorry, no results found for
+ %strong {{query}}.
+ Try another search?
+ .row
+ .small-12.columns
+ %form{action: cart_path}
+ %i.ofn-i_011-spinner.cart-spinner{"ng-show" => "Cart.dirty"}
+ %input.small.button.primary.right.add_to_cart{type: :submit, value: "{{ Cart.dirty ? 'Updating cart...' : (Cart.empty() ? 'Cart empty' : 'Edit your cart' ) }}", "ng-disabled" => "Cart.dirty || Cart.empty()", "ng-class" => "{ dirty: Cart.dirty }" }
diff --git a/app/views/shops/index.html.haml b/app/views/shops/index.html.haml
new file mode 100644
index 0000000000..40a42da1ea
--- /dev/null
+++ b/app/views/shops/index.html.haml
@@ -0,0 +1,12 @@
+- content_for(:title) do
+ Shops
+
+#panes
+ #shops.pane
+ .row
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %h2 Shopping, transformed.
+ %p.text-big Food grows in cycles, farmers harvest in cycles, and we order food in cycles. If you find an order cycle closed, check back soon.
+
+= render partial: "home/hubs"
+= render partial: "shared/footer"
diff --git a/app/views/shops/signup.html.haml b/app/views/shops/signup.html.haml
new file mode 100644
index 0000000000..72c319413f
--- /dev/null
+++ b/app/views/shops/signup.html.haml
@@ -0,0 +1,120 @@
+- content_for(:title) do
+ Sign up as a hub
+
+#panes
+ #shops-signup.pane
+ .row.header
+ .small-12.medium-12.columns.text-center
+ %h2 Food hubs, unlimited.
+ .row.content
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %p.text-big Whatever your model, we support you. However you change, we're with you. We're non-profit, independent, and open-sourced. We're the software partners you've dreamed of.
+ %br
+ %a.button.transparent{href: "/register"}
+ Join now
+ .pane
+ .row
+ .small-12.medium-10.medium-offset-1.columns.text-center
+ %h2 Enterprise Accounts
+ -# %p.text-big
+ -# If there is a time-sensitive offer you can write it here, e.g.
+ -# Sign up before 30th June for an extra month free!
+ %br
+ %table.signup-table.hubs-table{cellpadding: "0", cellspacing: "0"}
+ %thead
+ %tr
+ %td
+ %h5
+ %td.text-center{width: "20%"}
+ %h5 Basic
+ %td.text-center{width: "24%"}
+ %h5 Plus
+ %tr
+ %td
+ %p
+ %strong Profile
+ %p
+ %span.text-small Get a profile on the Open Food Network - including a listing on the Shops page and a pin on the OFN Map. These help people to find and connect with you.
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tr
+ %td
+ %p
+ %strong Shop
+ %p.text-small Get a shopfront on OFN to sell food from multiple suppliers & producers.
+ %p.text-small Basic support included:
+ %ul.small
+ %li User manual
+ %li Post queries to discussion forum/via contact form
+ %li Report bugs/suggestions
+ %li Regular release notes – what's new
+ %td.text-center
+ %td.text-center
+ %i.ofn-i_003-check.text-big
+ %tfoot
+ %tr
+ %td
+ %td.text-center{valign: "top"}
+ %h2
+ Free
+ %td.text-center{valign: "top"}
+ %h2
+ .text-small
+ First
+ %br
+ month
+ Free
+ %p.text-small
+ Then, 2% of transactions
+ %br
+ %em
+ Capped at
+ %strong $50
+ per month
+ %br
+ %em (Special offer for 2015)
+
+ #shops-case-studies
+ .row
+ .small-12.medium-10.medium-offset-1.columns
+ %h2.text-center Stories from our hubs.
+ %br
+ .row
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/bfc_logo_square.png", title: "Bondi Food Collective", description: "Bondi Food Collective is a member-based not for profit that provide weekly fruit & veg picked fresh to order, plus dry foods - all organic and all Australian-grown.", link: "http://www.bondifoodcollective.org"
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/bonnie-beef-growers.png", title: "Bonnie Beef Growers", description: "Bonnie Beef Growers work on monthly order cycles for their wide range of beef products and also act as a hub for products from neighboring farms on the Sunshine Coast.", link: "http://www.bonniebeef.com.au"
+ .row
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/South_East_Food_Hub.png", title: "South East Food Hub", description: "South East Food Hub is a choose-your-own food box service supported by a collective of farmers in Melbourne’s south-east. It distributes food through buying groups or “food clubs”.", link: "http://www.southeastfoodhub.org"
+ .small-12.medium-6.columns
+ = render 'shared/case_study', img_src: "/assets/case-studies/baw-baw.png", title: "Baw Baw Organics", description: "A weekly seasonal vegetable box program, Baw Baw Organics services around 100 households with local produce in West Gippsland.", link: "https://bawbawfoodhub.org.au"
+
+
+ .pane#cta
+ .row
+ .small-12.medium-6.medium-offset-3.columns.text-center
+ %h2 We're ready to help.
+ %p.text-big You need a better return. You need new buyers and logistics partners. You need your story told across wholesale, retail, and the kitchen table.
+ %br
+ %a.button.transparent{href: "/register"}
+ Join now
+
+ #hub-details.pane.footer-pad
+ .row
+ .small-12.medium-10.medium-offset-1.columns
+ %h2.text-center Here's the detail.
+ = render 'shared/enterprise_type_flowchart', type: 'hubs'
+
+ %h4 Join a marketplace of independent online food stores
+ %p Create a hub profile on the Open Food Network and gain exposure to a new marketplace of potential buyers. Tell your story in words and images, provide your contact details, and drive connections to your social and online presence. Set up a “Hub” shop and sell products from multiple producers.
+ %h4 Connect with a new source of customers and suppliers
+ %p Gain access to the growing crowd of conscientious buyers on the Open Food Network, all looking to make more ethical and sustainable choices when purchasing food.
+ %p Access new supply opportunities by connecting with producers in your region, sell their products in your shop.
+ %h4 Manage your business online
+ %p The Open Food Network provides online tools to help with the day-to-day running of your business. Manage your product listing and stock levels. Create, receive and manage orders from your buyers, and organise payments online. Generate invoices for orders and export them to your accounting software, and access a range of reports.
+
+
+= render partial: "shared/footer"
diff --git a/app/views/spree/orders/edit.html.haml b/app/views/spree/orders/edit.html.haml
index 5f8186e568..3a00558a52 100644
--- a/app/views/spree/orders/edit.html.haml
+++ b/app/views/spree/orders/edit.html.haml
@@ -1,19 +1,22 @@
-= inject_enterprises
+- content_for(:title) do
+ Shopping Cart
+
+= inject_enterprises
.darkswarm
- content_for :order_cycle_form do
%closing Your shopping cart
- %p
+ %p
Order ready for
%strong
- if @order.order_cycle
- = pickup_time @order.order_cycle
+ = pickup_time @order.order_cycle
- else
= @order.distributor.next_collection_at
= render partial: "shopping_shared/details"
-
- %fieldset
+
+ %fieldset.footer-pad
- if @order.line_items.empty?
%div.row{"data-hook" => "empty_cart"}
%p= t(:your_cart_is_empty)
@@ -31,9 +34,9 @@
.links{'data-hook' => "cart_buttons"}
.row
.columns.large-8{"data-hook" => ""}
-
+
%a.button.large.secondary{href: main_app.shop_path}
- %i.ofn-i_008-caret-left
+ %i.ofn-i_008-caret-left
Continue shopping
.columns.large-4.text-right
%a#checkout-link.button.large.primary{href: main_app.checkout_path}
@@ -41,4 +44,3 @@
%i.ofn-i_007-caret-right
= render partial: "shared/footer"
-
diff --git a/app/views/spree/orders/show.html.haml b/app/views/spree/orders/show.html.haml
index de142e3cac..7533ae981a 100644
--- a/app/views/spree/orders/show.html.haml
+++ b/app/views/spree/orders/show.html.haml
@@ -1,3 +1,6 @@
+- content_for(:title) do
+ Order Confirmation
+
= inject_enterprises
.darkswarm
@@ -11,7 +14,7 @@
= render "shopping_shared/details" if current_distributor.present?
- %fieldset#order_summary{"data-hook" => ""}
+ %fieldset#order_summary.footer-pad{"data-hook" => ""}
.row
.columns.large-12.text-center
%h2
@@ -30,3 +33,6 @@
- unless params.has_key? :checkout_complete
- if try_spree_current_user && respond_to?(:spree_account_path)
= link_to t(:my_account), spree_account_path, :class => "button"
+
+
+= render partial: "shared/footer"
diff --git a/config/application.rb b/config/application.rb
index ef0bf028be..5a31bc5774 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -79,7 +79,7 @@ module Openfoodnetwork
config.assets.enabled = true
# Version of your assets, change this if you want to expire all your assets
- config.assets.version = '1.1'
+ config.assets.version = '1.2'
config.sass.load_paths += [
"#{Gem.loaded_specs['foundation-rails'].full_gem_path}/vendor/assets/stylesheets/foundation/components",
@@ -92,7 +92,7 @@ module Openfoodnetwork
config.assets.initialize_on_precompile = true
config.assets.precompile += ['store/all.css', 'store/all.js', 'store/shop_front.js', 'iehack.js']
config.assets.precompile += ['admin/all.css', 'admin/restore_spree_from_cms.css', 'admin/*.js', 'admin/**/*.js']
- config.assets.precompile += ['darkswarm/all.css', 'darkswarm/all.js']
+ config.assets.precompile += ['darkswarm/all.css', 'darkswarm/all_split2.css', 'darkswarm/all.js']
config.assets.precompile += ['mail/all.css']
config.assets.precompile += ['comfortable_mexican_sofa/*']
config.assets.precompile += ['search/all.css', 'search/*.js']
diff --git a/config/initializers/content_config.rb b/config/initializers/content_config.rb
new file mode 100644
index 0000000000..abbd2c70e9
--- /dev/null
+++ b/config/initializers/content_config.rb
@@ -0,0 +1 @@
+ContentConfig = ContentConfiguration.new
diff --git a/config/locales/en.yml b/config/locales/en.yml
index fe7d3c53aa..05ad5113ee 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -19,3 +19,15 @@ en:
producers: Aussie Producers
producers_join: Australian producers are now welcome to join the Open Food Network.
charges_sales_tax: Charges GST?
+
+ home_tagline_cta: "Tagline call to action"
+ home_whats_happening: "What's happening"
+ footer_facebook_url: "Facebook URL"
+ footer_twitter_url: "Twitter URL"
+ footer_instagram_url: "Instagram URL"
+ footer_linkedin_url: "LinkedIn URL"
+ footer_googleplus_url: "Google Plus URL"
+ footer_pinterest_url: "Pinterest URL"
+ footer_email: "Email"
+ footer_links_md: "Links"
+ footer_about_url: "About URL"
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 9855f96fe0..02d8717f6c 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -20,8 +20,23 @@ Openfoodnetwork::Application.routes.draw do
get :order_cycle
end
- resources :groups
- resources :producers
+ resources :producers, only: [:index] do
+ collection do
+ get :signup
+ end
+ end
+
+ resources :shops, only: [:index] do
+ collection do
+ get :signup
+ end
+ end
+
+ resources :groups, only: [:index, :show] do
+ collection do
+ get :signup
+ end
+ end
get '/checkout', :to => 'checkout#edit' , :as => :checkout
put '/checkout', :to => 'checkout#update' , :as => :update_checkout
@@ -86,6 +101,8 @@ Openfoodnetwork::Application.routes.draw do
end
resources :customers, only: [:index, :update]
+
+ resource :content
end
namespace :api do
diff --git a/public/AveniBla.eot b/public/AveniBla.eot
deleted file mode 100644
index 1ae59a3381..0000000000
Binary files a/public/AveniBla.eot and /dev/null differ
diff --git a/public/AveniMed.eot b/public/AveniMed.eot
deleted file mode 100644
index 61c35da54b..0000000000
Binary files a/public/AveniMed.eot and /dev/null differ
diff --git a/public/AvenirLTStd-Black.otf b/public/AvenirLTStd-Black.otf
deleted file mode 100644
index 1a934a2af3..0000000000
Binary files a/public/AvenirLTStd-Black.otf and /dev/null differ
diff --git a/public/AvenirLTStd-Medium.otf b/public/AvenirLTStd-Medium.otf
deleted file mode 100644
index e902718152..0000000000
Binary files a/public/AvenirLTStd-Medium.otf and /dev/null differ
diff --git a/public/favicon-staging.ico b/public/favicon-staging.ico
index c54a7c4528..91eac8cce8 100644
Binary files a/public/favicon-staging.ico and b/public/favicon-staging.ico differ
diff --git a/public/favicon.ico b/public/favicon.ico
index 9e0f9a2681..c62c6eeb38 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/shops_controller_spec.rb
similarity index 94%
rename from spec/controllers/home_controller_spec.rb
rename to spec/controllers/shops_controller_spec.rb
index 924462741f..a4c66ea3a7 100644
--- a/spec/controllers/home_controller_spec.rb
+++ b/spec/controllers/shops_controller_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-describe HomeController do
+describe ShopsController do
render_views
let!(:distributor) { create(:distributor_enterprise) }
let!(:invisible_distributor) { create(:distributor_enterprise, visible: false) }
diff --git a/spec/factories.rb b/spec/factories.rb
index bdb99b3235..b037eac843 100644
--- a/spec/factories.rb
+++ b/spec/factories.rb
@@ -42,7 +42,7 @@ FactoryGirl.define do
# Products with images
[ex1, ex2].each do |exchange|
product = create(:product, supplier: exchange.sender)
- image = File.open(File.expand_path('../../app/assets/images/logo.jpg', __FILE__))
+ image = File.open(File.expand_path('../../app/assets/images/logo-white.png', __FILE__))
Spree::Image.create({:viewable_id => product.master.id, :viewable_type => 'Spree::Variant', :alt => "position 1", :attachment => image, :position => 1})
exchange.variants << product.variants.first
diff --git a/spec/features/admin/content_spec.rb b/spec/features/admin/content_spec.rb
new file mode 100644
index 0000000000..00a162f0b4
--- /dev/null
+++ b/spec/features/admin/content_spec.rb
@@ -0,0 +1,30 @@
+require 'spec_helper'
+
+feature %q{
+ As a site administrator
+ I want to configure the site content
+} do
+ include AuthenticationWorkflow
+ include WebHelper
+
+ scenario "filling in a setting shows the result on the home page" do
+ login_to_admin_section
+ click_link 'Configuration'
+ click_link 'Content'
+
+ fill_in 'footer_facebook_url', with: ''
+ fill_in 'footer_twitter_url', with: 'http://twitter.com/me'
+ fill_in 'footer_links_md', with: '[markdown link](/)'
+ click_button 'Update'
+ page.should have_content 'Your content has been successfully updated!'
+
+ visit root_path
+
+ # Then social media icons are only shown if they have a value
+ page.should_not have_selector 'i.ofn-i_044-facebook'
+ page.should have_selector 'i.ofn-i_041-twitter'
+
+ # And markdown is rendered
+ page.should have_link 'markdown link'
+ end
+end
diff --git a/spec/features/admin/products_spec.rb b/spec/features/admin/products_spec.rb
index 57b3aa0dfe..eb8da43930 100644
--- a/spec/features/admin/products_spec.rb
+++ b/spec/features/admin/products_spec.rb
@@ -205,7 +205,7 @@ feature %q{
scenario "deleting product images", js: true do
product = create(:simple_product, supplier: @supplier2)
- image = File.open(File.expand_path('../../../../app/assets/images/logo.jpg', __FILE__))
+ image = File.open(File.expand_path('../../../../app/assets/images/logo-white.png', __FILE__))
Spree::Image.create({:viewable_id => product.master.id, :viewable_type => 'Spree::Variant', :alt => "position 1", :attachment => image, :position => 1})
visit spree.admin_product_images_path(product)
diff --git a/spec/features/consumer/shopping/shopping_spec.rb b/spec/features/consumer/shopping/shopping_spec.rb
index 248826ea5a..2ab060f66f 100644
--- a/spec/features/consumer/shopping/shopping_spec.rb
+++ b/spec/features/consumer/shopping/shopping_spec.rb
@@ -22,7 +22,7 @@ feature "As a consumer I want to shop with a distributor", js: true do
it "shows a distributor with images" do
# Given the distributor has a logo
- distributor.logo = File.new(Rails.root + 'app/assets/images/logo.jpg')
+ distributor.logo = File.new(Rails.root + 'app/assets/images/logo-white.png')
distributor.save!
# Then we should see the distributor and its logo
diff --git a/spec/features/consumer/shopping/variant_overrides_spec.rb b/spec/features/consumer/shopping/variant_overrides_spec.rb
index 98d58e174f..44e8e38732 100644
--- a/spec/features/consumer/shopping/variant_overrides_spec.rb
+++ b/spec/features/consumer/shopping/variant_overrides_spec.rb
@@ -29,7 +29,7 @@ feature "shopping with variant overrides defined", js: true do
outgoing_exchange.variants = [v1, v2, v3, v4]
outgoing_exchange.enterprise_fees << ef
sm.calculator.preferred_amount = 0
- visit shop_path
+ visit shops_path
click_link hub.name
end
diff --git a/spec/features/consumer/home_spec.rb b/spec/features/consumer/shops_spec.rb
similarity index 95%
rename from spec/features/consumer/home_spec.rb
rename to spec/features/consumer/shops_spec.rb
index 128b1f734f..faeff9c37d 100644
--- a/spec/features/consumer/home_spec.rb
+++ b/spec/features/consumer/shops_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-feature 'Home', js: true do
+feature 'Shops', js: true do
include AuthenticationWorkflow
include UIComponentHelper
@@ -13,7 +13,7 @@ feature 'Home', js: true do
let!(:er) { create(:enterprise_relationship, parent: distributor, child: producer) }
before do
- visit "/"
+ visit shops_path
end
it "shows hubs" do
@@ -28,7 +28,7 @@ feature 'Home', js: true do
it "should grey out hubs that are not in an order cycle" do
create(:simple_product, distributors: [d1, d2])
- visit root_path
+ visit shops_path
page.should have_selector 'hub.inactive'
page.should have_selector 'hub.inactive', text: d2.name
end
diff --git a/spec/javascripts/unit/darkswarm/controllers/home_controller_spec.js.coffee b/spec/javascripts/unit/darkswarm/controllers/home_controller_spec.js.coffee
new file mode 100644
index 0000000000..8ba07e2f77
--- /dev/null
+++ b/spec/javascripts/unit/darkswarm/controllers/home_controller_spec.js.coffee
@@ -0,0 +1,19 @@
+describe "HomeCtrl", ->
+ ctrl = null
+ scope = null
+
+ beforeEach ->
+ module 'Darkswarm'
+ scope = {}
+
+ inject ($controller) ->
+ ctrl = $controller 'HomeCtrl', {$scope: scope}
+
+ it "starts with the brand story contracted", ->
+ expect(scope.brandStoryExpanded).toBe false
+
+ it "toggles the brand story", ->
+ scope.toggleBrandStory()
+ expect(scope.brandStoryExpanded).toBe true
+ scope.toggleBrandStory()
+ expect(scope.brandStoryExpanded).toBe false
diff --git a/spec/models/enterprise_group_spec.rb b/spec/models/enterprise_group_spec.rb
index 45e7b0692c..63b3ef58ae 100644
--- a/spec/models/enterprise_group_spec.rb
+++ b/spec/models/enterprise_group_spec.rb
@@ -51,7 +51,7 @@ describe EnterpriseGroup do
# it "can have an image" do
# eg = create(:enterprise_group)
- # image_file = File.open(File.expand_path('../../../app/assets/images/logo.jpg', __FILE__))
+ # image_file = File.open(File.expand_path('../../../app/assets/images/logo-white.png', __FILE__))
# image = Spree::Image.create(viewable_id: eg.id, viewable_type: 'EnterpriseGroup', attachment: image_file)
# eg.reload.image.should == image
# end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 20dfcc8bca..c8e1a2e682 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -33,7 +33,7 @@ require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
- options = {phantomjs_options: ['--load-images=no'], window_size: [1280, 800], timeout: 1.minute}
+ options = {phantomjs_options: ['--load-images=no'], window_size: [1280, 800], timeout: 2.minutes}
# Extend poltergeist's timeout to allow ample time to use pry in browser thread
#options.merge! {timeout: 5.minutes}
# Enable the remote inspector: Use page.driver.debug to open a remote debugger in chrome