Compare commits

..

406 Commits
0.6.2 ... 0.6.3

Author SHA1 Message Date
Rafael Schouten
92a40fc842 order mailer edits 2014-09-26 17:21:41 +10:00
Rob Harrington
4b2f1cefa0 Spliting order management abilities out of product management abilities 2014-09-26 17:11:11 +10:00
Rob Harrington
299b0fe5be Allowing all enterprise users to access products 2014-09-26 15:01:23 +10:00
summerscope
2ea0c89899 Style the modal headers 2014-09-26 15:01:23 +10:00
summerscope
237d129710 Changing the markup to give a class where is a producer 2014-09-26 15:01:23 +10:00
Rafael Schouten
e9c8547ca3 fix enterprsie model logic 2014-09-26 15:01:23 +10:00
summerscope
dee503befb Tweak language around the long description 2014-09-26 15:01:22 +10:00
summerscope
781fcae946 Change styling for register modals 2014-09-26 15:01:22 +10:00
Rob Harrington
d3c8e4a547 Replacing reference to is_profile 2014-09-26 11:20:55 +10:00
summerscope
a6e8d6906f Tweak message on profile label 2014-09-26 11:20:09 +10:00
Rob Harrington
be17d80cc4 Fixing hubs service spec 2014-09-25 17:28:01 +10:00
Rob Harrington
85b27f5b51 Adding angularjs-file-upload to spec manifest 2014-09-25 17:25:48 +10:00
Rob Harrington
b55b4e9a0c Merge branch 'master' into ent_types_frontend 2014-09-25 17:20:15 +10:00
Rob Harrington
33dff551c7 Removing 'show profiles' from producer and shop pages 2014-09-25 17:19:57 +10:00
Rob Harrington
1e31dd88ee Remove unrequired functions, add has_hub_listing 2014-09-25 17:19:57 +10:00
summerscope
cbc8a62686 STyling for profile only small view 2014-09-25 17:02:41 +10:00
summerscope
3b7cd6d329 Making the styling work for profiles and producers 2014-09-25 16:54:17 +10:00
summerscope
97ae170dd1 Add in profile only use case to styling 2014-09-25 16:40:06 +10:00
summerscope
3812d1eebb Add more greys 2014-09-25 16:39:48 +10:00
summerscope
2e1b2ffe12 Add italics 2014-09-25 16:04:27 +10:00
summerscope
a068411b7d Add in class to show when hub is 2014-09-25 16:00:03 +10:00
Rafael Schouten
f8b083e4b7 fix lost hub link 2014-09-25 14:04:10 +10:00
Rob Harrington
f5849e91dc Adding limit reached modal to registration 2014-09-25 12:25:32 +10:00
Rob Harrington
6fa7d9cbcb Registration controller checks number of owned enterpises 2014-09-25 12:10:45 +10:00
Rob Harrington
9520eeeb15 can specify attributes for create_enterpise_user 2014-09-25 11:56:18 +10:00
Rafael Schouten
da620f3723 Merge branch 'master' into ent_types_frontend 2014-09-25 10:09:42 +10:00
Rafael Schouten
f8d5b7ede8 refactor enterprise types to six options 2014-09-24 23:30:43 +10:00
Rob Harrington
ed91cd6463 Make sure d1 != d2 2014-09-24 20:48:52 +10:00
Rob Harrington
b5ef24bacb table matchers use capybara matchers rather than wait_until with micro-sleep 2014-09-24 16:18:59 +10:00
Rob Harrington
f0f165a129 Explicitly create enterprises in order_cycle factory to fix intermittent fail 2014-09-24 14:00:08 +10:00
Rob Harrington
1a86206e1f Fixing super annoying server reload bug 2014-09-24 13:01:40 +10:00
Rob Harrington
c6d463bf25 Revert "Pending bulk order mgmt specs"
This reverts commit eead8d665f.
2014-09-20 18:06:42 +10:00
Rob Harrington
b86848269b Merge branch 'specs' into reg_images 2014-09-19 23:44:31 +10:00
Rob Harrington
5bceb81479 Fixing image upload in onboarding 2014-09-19 23:37:02 +10:00
Rob Harrington
509cf6250a Explicitly sort managed products 2014-09-19 18:32:03 +10:00
Rob Harrington
07275574b6 Manager can't bulk update owner 2014-09-19 18:31:50 +10:00
Rob Harrington
5d2d619d66 Assigning @spree_api_key for store 2014-09-19 18:31:33 +10:00
Rob Harrington
17ce80a417 Allow new user to create enterprises 2014-09-19 18:31:23 +10:00
summerscope
d86c3cff26 Making enterprise header styles show as turquoise when no shopfront to click through to 2014-09-19 17:48:24 +10:00
summerscope
5e4e939087 Return template markup which was accidentally removed in Rafs merge 2014-09-19 17:47:49 +10:00
Rafael Schouten
559d3b0e4b fixup the header but needs some styling 2014-09-19 17:24:41 +10:00
Rafael Schouten
883e5f1095 Merge branch 'ent_types_frontend' of https://github.com/openfoodfoundation/openfoodnetwork into ent_types_frontend
Conflicts:
	app/assets/javascripts/templates/partials/enterprise_header.html.haml
2014-09-19 17:22:29 +10:00
Rafael Schouten
abc5a215a2 add map modals, profile filters and bugfixes 2014-09-19 17:07:07 +10:00
summerscope
919f87df58 change modal styling to improve look of Close button, overall layout for modals 2014-09-19 16:46:19 +10:00
Rafael Schouten
cf13115d57 bugfix is_profile bool 2014-09-19 16:44:51 +10:00
summerscope
408f7b7f10 Modals styling refine for small use cases 2014-09-19 16:44:43 +10:00
Rafael Schouten
e4991d4528 reorganise and document enterprise categories 2014-09-19 16:44:28 +10:00
summerscope
09cc3c6285 Styling for hero image underlay used on enterprises- adjust min heights for different text use cases 2014-09-19 16:44:16 +10:00
summerscope
5a7175e75d Tweak markup to make modals fit headers nicely across small sizes 2014-09-19 16:43:31 +10:00
summerscope
1c0196cf5d Change language for Kirsten 2014-09-19 16:25:34 +10:00
Rob Harrington
c6acbc6810 Assigning @spree_api_key for store 2014-09-19 16:09:26 +10:00
Rob Harrington
eeb54f3f76 Allow new user to create enterprises 2014-09-19 15:30:53 +10:00
summerscope
4c7fa4eb9f Fix markup so that text is not nested inside icon markup 2014-09-19 15:19:47 +10:00
summerscope
e5fc3c19e3 Working on refining scroll on modals 2014-09-19 14:41:45 +10:00
Rob Harrington
544e6e074a Stop being lazy 2014-09-19 14:38:59 +10:00
Rob Harrington
d3e72b5a2a Adding images to registration process 2014-09-19 12:41:24 +10:00
Rafael Schouten
f9cbdcee0a swap profile name 2014-09-19 12:18:02 +10:00
Rafael Schouten
527a139f72 Merge branch 'ent_types_frontend' of https://github.com/openfoodfoundation/openfoodnetwork into ent_types_frontend 2014-09-18 18:17:41 +10:00
Rafael Schouten
64fdbcf04f update enterprise type spec 2014-09-18 18:17:31 +10:00
Rafael Schouten
0d5106d571 refactor enterprise type logic and fix icons 2014-09-18 18:15:28 +10:00
summerscope
9a4ba5aa1f Producer page styling and logic for markup 2014-09-18 16:15:14 +10:00
summerscope
e1769e638d More styling for producer page 2014-09-18 16:14:53 +10:00
summerscope
24ca1b064a Tweak language for help popover 2014-09-18 15:34:56 +10:00
summerscope
0b59ca2dc1 Turning Show Profiles checkbox back on ready for logic 2014-09-18 15:33:44 +10:00
summerscope
7f4bccc956 fix anchor angular for link to hub shopfront 2014-09-18 15:22:53 +10:00
summerscope
20a76626b9 Add styling for instance where producer is own shopwfront on producer page 2014-09-18 15:22:29 +10:00
Rafael Schouten
1fdcbbec40 Merge branch 'ent_types_frontend' of https://github.com/openfoodfoundation/openfoodnetwork into ent_types_frontend 2014-09-18 15:15:01 +10:00
Rafael Schouten
bd922085c4 icons and entity category logic 2014-09-18 15:14:55 +10:00
summerscope
c42f83b6b1 Tweak markup to show producer name and write logic for link around producer if also own shopfront 2014-09-18 15:13:48 +10:00
Rafael Schouten
d75076e1c9 producer icons and inital link logic 2014-09-18 13:59:47 +10:00
Rafael Schouten
21628ed069 Merge branch 'master' into ent_types_frontend2 2014-09-17 17:45:55 +10:00
Rafael Schouten
e9dd863462 Merge branch 'master' into payment_description
Conflicts:
	app/views/spree/order_mailer/confirm_email.text.erb
2014-09-17 17:07:43 +10:00
Rafael Schouten
83b19ee632 fix haml and formatting on confirm email 2014-09-17 16:56:44 +10:00
Rafael Schouten
79fd8ed98b dubug mail template 2014-09-17 15:37:38 +10:00
Rafael Schouten
e618c4c2c0 add payment description to checkout 2014-09-17 14:56:29 +10:00
rafaqz
ee6b71b140 Merge pull request #260 from openfoodfoundation/currency
Merge Currency branch
2014-09-17 13:47:37 +10:00
Rafael Schouten
1c9bb906d1 Merge branch 'currency' of https://github.com/openfoodfoundation/openfoodnetwork into currency 2014-09-17 13:21:56 +10:00
Rafael Schouten
ac3c3f9f6c remove to_f on decimals 2014-09-17 13:19:34 +10:00
Rafael Schouten
6829636f11 comit ng-tst changes elsewhere 2014-09-17 13:19:08 +10:00
rafaqz
98ba135d49 Explain weird spree override 2014-09-17 13:12:27 +10:00
Rafael Schouten
4a93e9e94f Merge branch 'master' into currency 2014-09-17 12:49:10 +10:00
Rafael Schouten
b6fd3a11fa remove old mailer 2014-09-17 11:54:06 +10:00
Rafael Schouten
f79dfed6ef use haml for mailer 2014-09-17 11:53:47 +10:00
Rob Harrington
0fdbcc0023 Make dates consistent 2014-09-17 11:39:39 +10:00
Rob Harrington
eead8d665f Pending bulk order mgmt specs 2014-09-17 11:39:20 +10:00
Rafael Schouten
01c98bf6e4 refactor and bugfix for tests 2014-09-17 01:07:34 +10:00
Rob Harrington
22e61d9834 TEMP: spit out variables in failing oc spec 2014-09-16 23:47:34 +10:00
Rob Harrington
279c5925ef Add helpers to registration spec to counter JS weirdness 2014-09-16 23:46:34 +10:00
Rob Harrington
9e2e96d19e Schema weirdness 2014-09-16 23:45:36 +10:00
Rafael Schouten
49476b17e8 fix typos and add missing helper 2014-09-16 16:10:48 +10:00
Rafael Schouten
1aa80e53b1 Merge branch 'master' into currency
Conflicts:
	app/helpers/injection_helper.rb
	db/suburb_seeds.rb
2014-09-16 10:25:22 +10:00
Rafael Schouten
5cf09d264c fix suburb typo 2014-09-14 12:27:24 +10:00
Rob H
143545da0d Try newer syntax to fix spec failing on CI 2014-09-12 23:41:26 +10:00
Rob H
0815775bc3 Temporary fix for race condition in registration spec 2014-09-12 17:22:54 +10:00
Rob H
30bcdde5ca Merge branch 'ent_types_frontend' into working 2014-09-12 16:45:58 +10:00
Rob H
cb7033eea0 Registration spec checks enterprise created and updated 2014-09-12 16:42:10 +10:00
Rohan Mitchell
25a889375c Fix unreliable spec 2014-09-12 16:39:47 +10:00
Rohan Mitchell
b41029d5d0 Spec reliability: Explicitly set a $0 calculator for shipping method 2014-09-12 16:11:31 +10:00
Rob H
d2c5533549 Remove use_short_wait 2014-09-12 16:10:38 +10:00
summerscope
cc9d2ebbac Modal styling fixes for scrolling on mobile view 2014-09-12 16:01:25 +10:00
summerscope
799bfae6e4 Revert "Add commented-out scrolling code. Return false from click handlers."
This reverts commit dbefd43f07.
2014-09-12 15:51:20 +10:00
summerscope
c365047d0c Short description goes back in producer fat view until we can clean up the HTML formatting 2014-09-12 15:40:12 +10:00
Rohan Mitchell
dbefd43f07 Add commented-out scrolling code. Return false from click handlers. 2014-09-12 15:33:02 +10:00
Rob H
8507690865 Fixing enterprise owner migration 2014-09-12 15:23:13 +10:00
summerscope
42fccd1bdf Merging master into my branch to make it up to date 2014-09-12 14:48:19 +10:00
summerscope
3cff83b7a5 Kill the outside modal close button styling once and for all 2014-09-12 14:42:58 +10:00
Rob H
05d8c825c7 Enterprise User should NOT see form elements for changing type 2014-09-12 13:40:47 +10:00
summerscope
0dd33e6635 Modal styling updates ated trying to fix mobile scrolling issue. getting there. 2014-09-12 13:40:00 +10:00
Rob H
bcca8c5c0d Merging master into all the things 2014-09-12 13:28:30 +10:00
Rob H
f5048ecf7c Sends confirmation email when Enterprise is created 2014-09-12 13:24:17 +10:00
Rohan Mitchell
4fb30f2942 When removing outgoing exchanges, do not removing variants from other outgoing exchanges 2014-09-12 12:50:04 +10:00
Rob H
5c7ab2efa3 Restrict editing of ownership and type in enterprise api controller 2014-09-12 12:47:16 +10:00
Rafael Schouten
9a1b524915 fix icon font class 2014-09-12 12:21:40 +10:00
Rob H
cc65faadd0 Specing out enterprise registration service properly 2014-09-12 11:48:17 +10:00
summerscope
a28eaba31a Turn off price graph pop overs for small devices 2014-09-12 11:45:13 +10:00
Rohan Mitchell
e50bbeaefb Edit product form shows permitted suppliers 2014-09-12 11:33:47 +10:00
summerscope
1c5a495d5c Making icons smaller, adding a bit of background shadow to pop them out 2014-09-12 11:29:41 +10:00
Rohan Mitchell
a6556f3a4f Fix broken JS specs 2014-09-12 11:12:35 +10:00
Rohan Mitchell
033fe88513 New product form shows permitted suppliers 2014-09-12 11:07:59 +10:00
summerscope
bfa71942fe Tweaks to input placeholder label 2014-09-12 11:02:28 +10:00
summerscope
01397b2e49 Tweaks to filter box 2014-09-12 11:01:35 +10:00
Rob H
6ee3010fa7 Differentiation of on-boarding process by url 2014-09-12 11:00:34 +10:00
summerscope
ecacde41dd Tweaks to big input for small screens 2014-09-12 11:00:10 +10:00
summerscope
126e9e82a6 Add in blues for use 2014-09-12 10:58:51 +10:00
summerscope
9c33be911c Update placeholder label 2014-09-12 10:49:59 +10:00
summerscope
6d7fd6dc94 Add in logic to change right hand label if this is the current hub 2014-09-12 10:48:33 +10:00
Rafael Schouten
309ddece89 make profile icons work 2014-09-12 10:38:04 +10:00
Rafael Schouten
3ea29df111 12 option entity categories 2014-09-12 10:11:59 +10:00
Rafael Schouten
05782b6ec1 Merge branch 'ent_types_frontend' of https://github.com/openfoodfoundation/openfoodnetwork into ent_types_frontend 2014-09-12 09:59:55 +10:00
Rafael Schouten
f33a9e1a58 16 enterprise categories from four checks. 2014-09-12 01:50:36 +10:00
Rob H
043cc915e7 Removing save_screenshot calls 2014-09-11 22:40:03 +10:00
Rob H
5007fd8ec3 Shipping method 1 is used, so shipping method amount is zero 2014-09-11 22:27:05 +10:00
Rob H
a7a99b5048 Pending registration spec 2014-09-11 18:15:33 +10:00
Rob H
12f5e48479 Replace is not with isnt - damn you CoffeeScript 2014-09-11 17:58:38 +10:00
Rob H
98f7e58f9d Registration spec expects the correct url 2014-09-11 17:58:05 +10:00
summerscope
de64a5154b Fixing markup icon class name was incorrect 2014-09-11 17:13:07 +10:00
Rob H
048a741a2c Plugging final two registration pages into validation 2014-09-11 17:11:53 +10:00
Rob H
19565a5f3b Rename service 2014-09-11 17:10:59 +10:00
Rob H
fc0afae51c Adding form validation to contact page 2014-09-11 17:10:59 +10:00
Rob H
454e4c971a Adding validation to address page 2014-09-11 17:10:59 +10:00
Rob H
34841f8543 Refactoring registration form controller 2014-09-11 17:10:59 +10:00
Rob H
412e906ed3 Adding basic validation to reg process 2014-09-11 17:10:59 +10:00
Rob H
800eecea33 Fix failing bulk specs 2014-09-11 17:10:58 +10:00
summerscope
8d570286a1 Adding in sexy logic to add color to name depending on type 2014-09-11 17:10:58 +10:00
summerscope
f8c761f492 Comment out unused section, set column layout to match previous step 2014-09-11 17:10:58 +10:00
summerscope
e0fff552f9 Adjust button layout at bottom of page 2014-09-11 17:10:58 +10:00
summerscope
4d8796669b Adding in pretty alert boxes, yay! 2014-09-11 17:10:58 +10:00
summerscope
dc5506d06b Adjust button layout at bottom of page 2014-09-11 17:10:58 +10:00
summerscope
100d672eef Adjust button layout at bottom of page 2014-09-11 17:10:58 +10:00
summerscope
6486e41576 More styling for registration 2014-09-11 17:10:08 +10:00
summerscope
a5fefbe6bb More styling for register form 2014-09-11 17:10:07 +10:00
summerscope
912b7a8f95 Add a color class for global use 2014-09-11 17:10:07 +10:00
summerscope
75c62a7cb8 Markup changes to step 2 address 2014-09-11 17:10:07 +10:00
summerscope
2917c0fa44 More styling and work on step 1 - DETAILS 2014-09-11 17:10:07 +10:00
Rob H
c93673d78b Adding form to each page of registration 2014-09-11 17:10:07 +10:00
summerscope
c54b18a416 Cleanupm markup 2014-09-11 17:07:07 +10:00
summerscope
8a4dcef7fe Tweak layout and simplify column structures 2014-09-11 17:07:07 +10:00
summerscope
500cb65b41 Styling for registration steps 2014-09-11 17:07:07 +10:00
summerscope
d1b8b12901 Tweak custom bullet point styles 2014-09-11 17:07:07 +10:00
Rob H
a16da4eae0 Commenting out enterprise creation 2014-09-11 17:07:07 +10:00
Rob H
f1ef8ba3c7 Getting signup to work and authentication to load in reg specific template 2014-09-11 17:07:07 +10:00
summerscope
8b928b5a66 Styling on-boarding wizard Introduction step 2014-09-11 17:07:06 +10:00
summerscope
08d3eb6f93 Making the modals higher relative to their respective window 2014-09-11 17:07:06 +10:00
summerscope
36f719d538 Creating new style of bullet point list 2014-09-11 17:07:06 +10:00
summerscope
db58fb5b0c Pretty potatoes picture for creating profile wizard 2014-09-11 17:07:06 +10:00
Rob H
f1f9a2e7fc Updating on later pages of registration process 2014-09-11 17:07:06 +10:00
summerscope
60d6599f9b Tweak chirpy message in view 2014-09-11 17:07:06 +10:00
Rob H
dc43612a04 Adding an 'r' 2014-09-11 17:07:06 +10:00
Rob H
bc0c9dd229 Adding the social page to registration form 2014-09-11 17:07:06 +10:00
Rob H
b848d583ff Adding the remainder of pages to registration process 2014-09-11 17:07:05 +10:00
Rob H
e341b12d3a Adding loading message when creating enterprise 2014-09-11 17:07:05 +10:00
Rob H
4d106129ee Creating an about page including flash boxes for registration 2014-09-11 17:07:05 +10:00
Rob H
69b1d14cc4 Adding authorize to api enterprise create 2014-09-11 17:07:05 +10:00
Rob H
ef8f611458 Adding countries and states to registration 2014-09-11 17:07:05 +10:00
Rob H
7dc42c9e39 Creating an enterprise works in registration process 2014-09-11 17:07:05 +10:00
Rob H
3d4e00a03c Swtich API key injection over to helper 2014-09-11 17:07:05 +10:00
summerscope
a642ad0855 More style detail for small view inactive hub small views 2014-09-11 17:00:59 +10:00
Rob H
10f97fe14b Adding some icons to registration pages 2014-09-11 16:34:21 +10:00
Rob H
07f9dc23e0 Making button styling a bit nicer 2014-09-11 16:34:21 +10:00
Rob H
29e78e63ad Playing with resizing 2014-09-11 16:34:20 +10:00
Rob H
95bfc74b3f No need to deal with locations in registration 2014-09-11 16:34:20 +10:00
Rob H
e1400705fe Adding contact step to registration process 2014-09-11 16:34:20 +10:00
Rob H
843c6ea6a6 Fix styling on details page 2014-09-11 16:34:20 +10:00
Rob H
c53df00969 Adding address step to registration process 2014-09-11 16:34:20 +10:00
Rob H
5f09f1b4f7 Pull out styling for registration process 2014-09-11 16:34:20 +10:00
Rob H
c92aa41e28 Adding introduction and details pages to registration process 2014-09-11 16:34:19 +10:00
Rob H
595aa760cb Loads registration page with authentication 2014-09-11 16:34:19 +10:00
summerscope
94165f17e4 Merging master into this branch to keep repository up to date 2014-09-11 16:33:44 +10:00
summerscope
24507c6c0a turn off Profile filter again until ready to support this 2014-09-11 16:29:38 +10:00
summerscope
1eef483c44 Hub node styling for different use cases of active / inactive / current / open / closed 2014-09-11 15:42:37 +10:00
summerscope
af064a3fc7 Adding more spacing for fat view on small devices - vertical spacing for each chunk 2014-09-11 15:42:08 +10:00
summerscope
de7837aea9 New greys and translucent colors for global use 2014-09-11 15:41:28 +10:00
summerscope
7d0cf2ace9 Adding rounded corners to producers nodes for active table 2014-09-11 15:41:01 +10:00
summerscope
71918539b8 Undo changing name Hubs to Shops, for the moment 2014-09-11 15:40:35 +10:00
summerscope
16ad465571 tweak placeholder name 2014-09-11 15:40:12 +10:00
Rob H
ad56594fe9 Removing obsolete spec 2014-09-11 15:19:24 +10:00
Rob H
c0e4a22a6e Adding enterprise_limit form element to user edit page 2014-09-11 15:19:24 +10:00
Rob H
7780046d71 Clicking on user email takes me to the edit page rather than the annoying 'show' intermediary 2014-09-11 15:19:24 +10:00
Rob H
a3f7fc1202 Adding column for enterprise limit on users index page 2014-09-11 15:19:23 +10:00
Rob H
9085741f3c Removing enterprises form from user edit page 2014-09-11 15:19:23 +10:00
Rob H
8cc5c2246a Hide 'Create New' enterprise link on dashboard when user has reached limit 2014-09-11 15:19:23 +10:00
Rob H
eb6af408d7 Trailing spaces crusader: one man, a million trailing spaces 2014-09-11 15:19:23 +10:00
Rob H
60297eb5c8 Hide 'New Enterprise' link on index page when user has reached limit 2014-09-11 15:19:23 +10:00
Rob H
41b286f80f Delete specific E2ER in spec 2014-09-11 14:54:51 +10:00
Rob H
f1c19ea64c Enterprise validates owner enterprise_limit 2014-09-11 14:54:51 +10:00
Rob H
7fbc9aa680 User validates the number of enterprises owned 2014-09-11 14:54:51 +10:00
Rob H
2253859cd1 Adding enterprise limit to spree users 2014-09-11 14:54:51 +10:00
Rob H
e83e2295ed Adding some extra controller-level specs for enterprise ownership 2014-09-11 14:54:51 +10:00
Rob H
3e1f4628e3 Can change owner of enterprises from index page 2014-09-11 14:51:22 +10:00
Rob H
7983b2f45a Adding changing ownership to enterprise update spec 2014-09-11 14:39:15 +10:00
Rob H
e106c7a0cd Initialise user autocomplete element using data from element itself rather than AJAX request 2014-09-11 14:39:15 +10:00
Rob H
13d814ff23 Adding user autocomplete directive to speed up specification of owner for enterprises 2014-09-11 14:39:15 +10:00
Rob H
73a32fdaf1 Remove distributor_info: 'how does it work' from enterprises edit page 2014-09-11 14:39:14 +10:00
Rob H
8e91e4513d Remove rich text editors from about us in enterprise editor 2014-09-11 14:39:14 +10:00
Rob H
4bde6a0a3d WIP: VERY SLOW PAGE LOAD: Super admin can edit owner of enterprise from edit screen 2014-09-11 14:39:14 +10:00
Rob H
138e0281a3 Specify owner for enterprise create action 2014-09-11 14:39:14 +10:00
Rob H
31de5d45ea Adding owner to enterprise 2014-09-11 14:36:09 +10:00
Rob H
58f28f112a Enterprise index type selection is only visible to super admin 2014-09-11 14:22:47 +10:00
summerscope
997479f5be Change label on mobile menu 2014-09-11 13:05:21 +10:00
Rafael Schouten
0fa4540cec Merge branch 'master' into currency 2014-09-11 12:09:18 +10:00
summerscope
bebe0c41f6 Styling for hubs and producers - adding rounded corners, making current shop less intense 2014-09-11 11:50:46 +10:00
Rafael Schouten
09a4c4e17e add spree currency helper, fix some typos and specs 2014-09-11 11:47:55 +10:00
Rafael Schouten
c1971d015c fix bug in mailer 2014-09-10 19:59:39 +10:00
Rafael Schouten
666036756e fixup docs etc 2014-09-10 19:50:32 +10:00
Rafael Schouten
dc266e066f another few class names 2014-09-10 19:43:14 +10:00
Rafael Schouten
44e9cf5ade add currency spec file and update some class names 2014-09-10 18:22:33 +10:00
Rohan Mitchell
69d1111c73 Fix expected payment amount 2014-09-10 17:00:51 +10:00
Rohan Mitchell
32a2e793ad When deleting enterprise relationships, delete dependent permissions 2014-09-10 14:49:15 +10:00
Rohan Mitchell
c297b7014a Charge customers for their shipping fee 2014-09-10 14:01:36 +10:00
Rohan Mitchell
4168ea054b For body content, cloak the home page only. JS should be cached after that. 2014-09-10 12:12:46 +10:00
Rohan Mitchell
b49eb8fe03 Hide angular templates on page load 2014-09-10 11:50:30 +10:00
Rob H
78a70292ac Moved attributes are actually delcared in the right place for Enterprise Serializer 2014-09-08 15:39:17 +10:00
Rob H
dfa837cac6 Moved cached properties which should not be cached 2014-09-08 15:01:34 +10:00
Rob H
b49a4cbc4f Fix intermittent failing spec 2014-09-08 11:11:07 +10:00
Rob H
3ee0cf46e0 Merge branch 'working' into merging 2014-09-08 10:12:31 +10:00
Rob H
36891c73cb Merge branch 'master' into merging 2014-09-08 10:09:51 +10:00
Rob H
a968aa9b91 Removing float:left which weirdly breaks specs 2014-09-08 10:09:00 +10:00
Rafael Schouten
991d0029dd add currency localisation 2014-09-08 00:06:53 +10:00
Rob H
5fb4110328 Adding distributor and producer checkboxes to enterprise index 2014-09-07 21:04:53 +10:00
Rob H
6540bb8efc Adding select field for enterprise type to index when super admin 2014-09-07 19:51:14 +10:00
Rob H
b8fadb50ae Special Instructions in checkout are actually wired up 2014-09-06 12:00:27 +10:00
Rob H
9dc2b248c7 Bulk management permissions make more sense 2014-09-06 09:37:34 +10:00
Rob H
ee4a1925fe Bulk Order Management works with navigation helper override 2014-09-06 00:34:27 +10:00
Rob H
780df6bfe0 Hide 'profile type' form element for non super-admin users 2014-09-05 18:38:43 +10:00
Rob H
58dcdbd9c4 Restricting ability to change enterprise type at the controller level 2014-09-05 18:30:15 +10:00
summerscope
2e8ec3df18 Tweak placeholder messages for big inputs 2014-09-05 18:07:50 +10:00
summerscope
6271b83fad Tweak placeholder messages for big inputs 2014-09-05 18:07:28 +10:00
summerscope
778cf0326b Changing placeholder for 2014-09-05 18:04:02 +10:00
summerscope
94e3946d52 producer list view styling 2014-09-05 17:54:16 +10:00
summerscope
0b74242f49 make classes more generic for more use-cases 2014-09-05 17:53:52 +10:00
summerscope
bb82fc4b20 move generic things into active table 2014-09-05 17:53:27 +10:00
summerscope
6e10c416e2 hub view styling 2014-09-05 17:53:14 +10:00
summerscope
ab44046658 skinny view producers remove unnecessary spacer element 2014-09-05 17:52:36 +10:00
summerscope
a9619a6dca Changes to markup on producer page to adjust layout 2014-09-05 17:50:50 +10:00
Rob H
20bfcd6e48 Switching enterprise relationships form around 2014-09-05 17:11:57 +10:00
summerscope
60ac3f29a5 Producers page WIP 2014-09-05 16:41:00 +10:00
summerscope
adb8b6b02f Styling for help icon 2014-09-05 16:40:59 +10:00
summerscope
b3f97479d3 Hide profile filter from search for the mo 2014-09-05 16:40:59 +10:00
Rob H
097367a9f8 Map modals for 'profile' enterprises do not display shopping options 2014-09-05 16:28:08 +10:00
Rob H
1e1ddedfb2 Merge remote-tracking branch 'origin/ent_types_frontend' into ent_types_frontend 2014-09-05 16:18:45 +10:00
Rob H
428e4c63d4 Profile hubs don't show up in hubs list 2014-09-05 16:18:25 +10:00
summerscope
0d0ffa1cd0 Making CTA links consistent with modals, adding in logic to force space holding for producer fat view 2014-09-05 15:47:41 +10:00
summerscope
a092e97294 Adding a little bit of spacing between each row for active table 2014-09-05 15:47:14 +10:00
summerscope
26bd1000de Changing placeholder for search input 2014-09-05 15:28:50 +10:00
summerscope
59adae5c9c Working on space placeholders for fat view 2014-09-05 15:28:32 +10:00
Rob H
233532a85f Merge remote-tracking branch 'origin/ent_types_frontend' into ent_types_frontend 2014-09-05 15:14:48 +10:00
summerscope
99fb9c1966 Adding in markup and styling for new layout of hubs list view 2014-09-05 15:10:17 +10:00
Rohan Mitchell
3a12f9a7c8 Extract bulk product edit interface into partials 2014-09-05 15:10:17 +10:00
Rohan Mitchell
4d766a29ab Convert admin login nav to haml 2014-09-05 15:10:16 +10:00
Rohan Mitchell
c43c35601b Set product.largeImage in JS, use for product modal 2014-09-05 15:10:16 +10:00
Rohan Mitchell
fe1c60ba47 Enterprise manager can edit products from enterprises it has manage_products permission on 2014-09-05 15:10:16 +10:00
Rohan Mitchell
b7708d750b Check authorisation for bulk update products 2014-09-05 15:10:15 +10:00
Rohan Mitchell
fbd4f98fa9 Include producers I have permission to in BPE producers choice 2014-09-05 15:10:15 +10:00
Rohan Mitchell
9ec5dc6466 Find enterprises that we manage products for 2014-09-05 15:10:14 +10:00
Rohan Mitchell
e023a66167 Bulk product edit lists managed products 2014-09-05 15:10:14 +10:00
Rohan Mitchell
4af704b1d0 Fetch managed products via OpenFoodNetwork::Permissions 2014-09-05 15:10:14 +10:00
Rohan Mitchell
1ea63bca6e Name test enterprises semantically 2014-09-05 15:10:14 +10:00
digital dreamer
503fb53750 Fix #242 - foreign key constraint error on load_sample_data 2014-09-05 15:10:14 +10:00
Rohan Mitchell
6ff6e4248c Rename spec to match view name change 2014-09-05 15:10:14 +10:00
Rohan Mitchell
57af658e7c For OC, fetch all enterprises we have access to, including those via E2E relationships 2014-09-05 15:10:13 +10:00
Rohan Mitchell
913c167fdf Revert 5ede8d1, reinstating a4be0ff..7b89e6a 2014-09-05 15:10:12 +10:00
Maikel Linke
7603ea867f Store links to root_path instead of product_path 2014-09-05 15:10:12 +10:00
Maikel Linke
c5cfda5283 Adding login_nav partial from spree_auth_devise
Preparing to change 'Store' link for Bugherd #443.
2014-09-05 15:10:12 +10:00
Maikel Linke
aaa32528ea Giving an example name for an enterprise fee.
The example is displayed as input placeholder. See bugherd #439.
2014-09-05 15:10:11 +10:00
Maikel Linke
602dfbe002 ng_text_field handling options parameter 2014-09-05 15:10:10 +10:00
Rob H
14aada1808 Add 'profile only' logic to maps icons 2014-09-05 15:09:15 +10:00
Rob H
32ee8afdce logic for producer shop icon in list view 2014-09-05 14:46:04 +10:00
summerscope
7b9ff9b6dd Merge branch 'ent_types_frontend' of github.com:openfoodfoundation/openfoodnetwork into ent_types_frontend
Conflicts:
	app/views/home/_skinny.html.haml
2014-09-05 12:48:05 +10:00
summerscope
658c27408e Styling for hub listing page and tweaks to markup to accomodate new icons and styling 2014-09-05 12:32:45 +10:00
Rob H
8f6d04a129 Adding properties to enterprise serialiser to allow differentiation between profile, shopfront and aggregators 2014-09-05 12:30:52 +10:00
summerscope
b487c9848b Add checkbox for show / hide profiles 2014-09-05 12:15:14 +10:00
summerscope
94fbb624f5 Make CTA links separate from hub link styling 2014-09-05 12:14:55 +10:00
summerscope
ed0f2de2f3 More styling for CTA links on modals 2014-09-05 11:56:21 +10:00
summerscope
c64ef39e22 Ran a DB:micrate, this is a change to the order 2014-09-05 11:39:43 +10:00
summerscope
0138fded17 Styling for modals 2014-09-05 11:39:04 +10:00
summerscope
116eb6a2c6 template updates for modals - links not buttons 2014-09-05 11:38:19 +10:00
Rohan Mitchell
0fd496aa97 Extract bulk product edit interface into partials 2014-09-02 15:27:51 +10:00
Rohan Mitchell
4d57a73ee3 Merge branch 'digital-dreamer-fix-242-foreign-key' 2014-09-02 14:08:45 +10:00
Rohan Mitchell
7d6dbeba28 Merge branch 'fix-242-foreign-key' of https://github.com/digital-dreamer/openfoodnetwork into digital-dreamer-fix-242-foreign-key 2014-09-02 14:02:14 +10:00
Rohan Mitchell
f53ed4bf31 Merge branch 'admin-panel-store-link' 2014-09-02 13:45:25 +10:00
Rohan Mitchell
818a0f8595 Convert admin login nav to haml 2014-09-02 13:45:11 +10:00
Rohan Mitchell
a347152490 Merge branch 'master' into admin-panel-store-link 2014-09-02 13:39:46 +10:00
Rohan Mitchell
fce2147dc1 Merge branch 'enterprise-fee-naming-example' 2014-09-02 13:39:11 +10:00
Rohan Mitchell
7247e65115 Merge branch 'master' into enterprise-fee-naming-example 2014-09-02 13:36:50 +10:00
Rohan Mitchell
2cd5afbf9c Set product.largeImage in JS, use for product modal 2014-09-01 16:21:23 +10:00
Rohan Mitchell
e72c3d861b Enterprise manager can edit products from enterprises it has manage_products permission on 2014-09-01 11:49:09 +10:00
Rohan Mitchell
94683f1eaa Check authorisation for bulk update products 2014-09-01 11:15:00 +10:00
Rohan Mitchell
c81503d95f Include producers I have permission to in BPE producers choice 2014-09-01 10:44:09 +10:00
Rohan Mitchell
4d8d74dec7 Find enterprises that we manage products for 2014-09-01 10:36:59 +10:00
Rohan Mitchell
cfb31b46e4 Bulk product edit lists managed products 2014-09-01 10:13:59 +10:00
Rohan Mitchell
e0645dfbd9 Fetch managed products via OpenFoodNetwork::Permissions 2014-09-01 09:42:50 +10:00
Rohan Mitchell
66f20a6b8a Name test enterprises semantically 2014-09-01 09:17:38 +10:00
digital dreamer
ac48613556 Fix #242 - foreign key constraint error on load_sample_data 2014-08-29 13:42:27 +02:00
summerscope
a4aa949499 Applying new icons for map view 2014-08-29 18:04:06 +10:00
summerscope
ae442769b5 New version of icon font for OFN system 2014-08-29 18:03:47 +10:00
summerscope
a31e8ff82f New map icons 2014-08-29 18:03:15 +10:00
summerscope
4efe3fdf88 Remove old map icons 2014-08-29 18:01:54 +10:00
Rohan Mitchell
62e6cacfd0 Rename spec to match view name change 2014-08-29 17:37:56 +10:00
Rohan Mitchell
7f74854a2f For OC, fetch all enterprises we have access to, including those via E2E relationships 2014-08-29 16:38:23 +10:00
Rohan Mitchell
0b61872d96 Revert 5ede8d1, reinstating a4be0ff..7b89e6a 2014-08-29 16:38:10 +10:00
Rob H
ba3f97ca1f Fixing enterprise relationships spec 2014-08-28 14:45:24 +10:00
Rob H
5ede8d169f Revert a4be0ff..7b89e6a for deployment 2014-08-28 14:32:57 +10:00
Rob H
bfd9ffd84a Adding missing data-bindings for country/state 2014-08-28 14:25:21 +10:00
Rohan Mitchell
7b89e6aa80 Revert "Comment out ERPs which have confusing names, use old 'permits'"
This reverts commit a4be0ff55a.
2014-08-28 10:12:06 +10:00
Rohan Mitchell
1871d42e68 Switch to correct grammatical ordering of child/parent enterprise on enterprise relationships page 2014-08-28 10:09:50 +10:00
Rohan Mitchell
a5debc19dc Permit edits to exchanges involving enterprises permitted via E2E relationships 2014-08-28 10:09:50 +10:00
Rohan Mitchell
628d87b69a Add to OC permission allows adding distributors to order cycle 2014-08-28 10:09:50 +10:00
Rohan Mitchell
5ef13d3c5a Change 'add products to OC' permission into the more general 'add enterprise to OC' 2014-08-28 10:09:50 +10:00
Rohan Mitchell
099a5b0b7b Show E2E related enterprise exchanges in OC 2014-08-28 10:09:50 +10:00
Rohan Mitchell
34602244ca Show permitted suppliers in order cycle add supplier select box 2014-08-28 10:09:50 +10:00
Rohan Mitchell
b9e5821497 Add EnterpriseRelationship scopes permitting and with_permission 2014-08-28 10:09:50 +10:00
Rohan Mitchell
8548a1a67e Determine producer options on order cycle screen through OpenFoodNetwork::Permissions class 2014-08-28 10:09:50 +10:00
Rohan Mitchell
a7689973be Semantically name enterprises in spec 2014-08-28 10:09:50 +10:00
Rohan Mitchell
5e8bdce67d Refactor spec 2014-08-28 10:09:50 +10:00
Rob H
a4be0ff55a Comment out ERPs which have confusing names, use old 'permits' 2014-08-27 17:07:30 +10:00
Rob H
7124dc57fd Requiring a state in checkout 2014-08-27 16:59:26 +10:00
Rob H
400f2ea9b9 Don't add payment forms to checkout DOM unless required 2014-08-27 15:09:41 +10:00
Rohan Mitchell
0462b3e55d Prevent duplicate enterprise roles 2014-08-26 14:40:34 +10:00
Rob H
435819acc4 Removing unit text from total units column 2014-08-25 20:29:24 +10:00
Rob H
310d1b3726 Zeus server does not crash when editing controllers 2014-08-25 20:29:24 +10:00
Rob H
0d9e07d484 Make restore script compatible with OSX 2014-08-25 20:29:23 +10:00
Rohan Mitchell
45a44844ca Remove old rabl spec 2014-08-25 16:38:17 +10:00
Rohan Mitchell
1a995aedda Simplify enterprise_relationship factory - leverage permissions_list= model method 2014-08-25 15:20:46 +10:00
Rohan Mitchell
c3224ce668 Style permission list items, order perms consistently by name 2014-08-25 15:05:49 +10:00
Rohan Mitchell
3932884dba Admin can create enterprise relationships with permissions 2014-08-25 14:59:10 +10:00
Rohan Mitchell
057ad9c6d3 Set enterprise relationship permissions from a list 2014-08-25 14:54:52 +10:00
Rohan Mitchell
50c559964c Display enterprise relationship permissions 2014-08-25 13:28:02 +10:00
Rohan Mitchell
b4e89ad2c0 Convert enterprise relationship permission to string presentation 2014-08-25 13:27:01 +10:00
Rohan Mitchell
70feef1256 Add EnterpriseRelationshipPermission model 2014-08-25 13:26:23 +10:00
Rohan Mitchell
cb615ba994 Render enterprise relationships JSON with AMS instead of rabl 2014-08-25 13:07:31 +10:00
Rohan Mitchell
3524e658f8 Error when creating product and master is invalid, instead of creating a product without a master 2014-08-25 11:52:15 +10:00
Rohan Mitchell
4ceaec0ef5 Do not error when checking out with a pre-loaded shipping/billing address 2014-08-22 17:34:42 +10:00
Maikel Linke
adf4f92ffb Store links to root_path instead of product_path 2014-08-22 16:10:23 +10:00
Maikel Linke
ca7eb72688 Adding login_nav partial from spree_auth_devise
Preparing to change 'Store' link for Bugherd #443.
2014-08-22 16:04:46 +10:00
Rohan Mitchell
dd42b0c239 Split out opening payments into own context 2014-08-22 14:38:44 +10:00
Rohan Mitchell
e173c69ee3 Fix arrow position 2014-08-19 16:53:23 +10:00
Rohan Mitchell
b35c5e902f Fix broken JS specs 2014-08-19 16:47:51 +10:00
Rohan Mitchell
e3b4f6efc1 When profile admin only, do not show payment methods, shipping methods or enterprise fees when editing profile 2014-08-19 16:43:18 +10:00
Rohan Mitchell
a533daab96 Split sidebar into parts 2014-08-19 16:41:49 +10:00
Rohan Mitchell
4b42c28bd5 Refactor admin enterpriseCtrl - variable naming, if x then true else false antipattern 2014-08-19 16:34:56 +10:00
Rohan Mitchell
3e97762f7e Remove unused producer options on hub tab, make logic consistently ordered 2014-08-19 16:23:05 +10:00
Rohan Mitchell
79387d3d82 On admin enterprises listing page, do not show links to pages without perms 2014-08-19 16:15:17 +10:00
Rohan Mitchell
2706c0e47e Extract enterprise actions to partial 2014-08-19 16:11:20 +10:00
Rohan Mitchell
5dc7d1ee11 For users without product management perms, show a cut-down admin dashboard 2014-08-19 16:02:11 +10:00
Rohan Mitchell
9451f3659c Use pluralize helper, sentence case 2014-08-19 15:41:01 +10:00
Rohan Mitchell
e1a1b74f03 Extract dashboard enterprises table markup into partials 2014-08-19 14:49:20 +10:00
Rohan Mitchell
50e4c5fac9 Users with only a profile-level enterprise see only menu items for enterprise management 2014-08-19 14:26:45 +10:00
Rohan Mitchell
abe592c9a3 Allow Reports admin tab to be enabled/disabled through cancan :report resource 2014-08-19 14:22:19 +10:00
Rohan Mitchell
0e6cd30e7e Edit for clarity 2014-08-19 13:27:45 +10:00
Rohan Mitchell
732a61664f Split abilities into enterprises/products/relationships 2014-08-19 13:21:20 +10:00
Rohan Mitchell
a858c21296 Enterprise has a type (full, single, profile), editable by admin 2014-08-19 11:37:31 +10:00
Rohan Mitchell
2660ffd459 Fix duplicate enterprise role 2014-08-16 16:33:07 +10:00
Rohan Mitchell
a0a752a3b1 Don't re-create FK 2014-08-15 17:34:24 +10:00
Rohan Mitchell
63f9abdf5c Add CSS3 animations to enterprise roles admin 2014-08-15 16:09:06 +10:00
Rohan Mitchell
9ddfb1584b Admin can delete enterprise roles 2014-08-15 16:09:06 +10:00
Rohan Mitchell
95a0bf39f7 Enterprise roles must be unique 2014-08-15 16:09:05 +10:00
Rohan Mitchell
6e17f0aaa2 Admin can create enterprise roles 2014-08-15 16:09:05 +10:00
Rohan Mitchell
8bc9def6ae Switch to AMS for enterprise role serialisation 2014-08-15 16:09:05 +10:00
Rohan Mitchell
1d77812ab8 Admin can list enterprise roles 2014-08-15 16:09:04 +10:00
summerscope
a03c4f7110 Merge branch 'master' into laura_and_will 2014-08-15 12:17:05 +10:00
summerscope
7f6a7b4254 Adding underlines to links on modals for map view etc to try and make these more intuitive and usable 2014-08-15 11:02:21 +10:00
summerscope
8ef91d1b2a Styling and layout tweaks for checkout page to improve how columns sit on small devices 2014-08-14 12:09:55 +10:00
summerscope
3d2c196237 Tweak layout for checkout accordions to prevent expand and hide from dropping over two lines on small devices 2014-08-14 12:09:23 +10:00
Rohan Mitchell
50b8eaecab Add fundraising fees 2014-08-13 15:07:32 +10:00
Rohan Mitchell
f30c67da7b Remove crowdfunding notice from README 2014-08-12 14:07:16 +10:00
Rohan Mitchell
d05e5e430a Revert "Adding CTA button for crowdfunding site to homepage & countdown timer directive"
This reverts commit 75f3358e2a.
2014-08-12 14:06:13 +10:00
Rohan Mitchell
cc011f5136 Switch to forked version of better_spree_paypal_express - passes customer email and phone number to paypal. Waiting on PR #117 2014-08-12 12:34:42 +10:00
Rob H
a7b3bbee74 Overriding payment method load_data to hide Bogus Gateways 2014-08-09 12:52:00 +10:00
Rob H
c20369919c Can change hub after changing pm type 2014-08-09 11:23:05 +10:00
Rob H
044a4c6816 Finish changing class names for PayPal gateways 2014-08-08 23:19:13 +10:00
Rob H
a8b823668f Fix checkout specs failing due to payment method not having hub 2014-08-08 22:40:24 +10:00
Rob H
51f912033b Remove test for PayPalExpress UK which does not exist anymore 2014-08-08 22:39:26 +10:00
Rob H
115d8e0d6e Smoosh distributions up into cart item subtotal in order confirmation email 2014-08-08 17:50:00 +10:00
Rob H
40d290951c Fix failing specs related to requiring distributor for payment method 2014-08-08 17:47:51 +10:00
Rob H
6b73eb435c Add js specs for providers controller 2014-08-08 17:47:51 +10:00
Rob H
9e54162a62 Annoying migration changes 2014-08-08 17:47:51 +10:00
Rob H
d80166e80d Restrict access to show_provider_preferences action on payment methods controller 2014-08-08 17:47:50 +10:00
Rob H
f19af52556 WIP: angularised provider settings for payment method works on create (for admin only at this stage) 2014-08-08 17:47:50 +10:00
Rob H
f430267304 Specs for show_provider_preferences 2014-08-08 17:47:50 +10:00
Rob H
16215289d0 Spec for payment method clean_name translation 2014-08-08 17:47:50 +10:00
Rob H
f021d260b1 Require payment_methods to be associated with at least one hub 2014-08-08 17:47:50 +10:00
Rob H
d6aae0050f Angularise payment method provider UI 2014-08-08 17:47:50 +10:00
Rob H
55e29832e1 Make name of payment_methods more human readable 2014-08-08 17:47:50 +10:00
Rob H
1cbdd9a5fa WIP: rearrange payment methods page 2014-08-08 17:47:49 +10:00
Maikel Linke
bd3a4acc15 Giving an example name for an enterprise fee.
The example is displayed as input placeholder. See bugherd #439.
2014-07-31 15:21:13 +10:00
Maikel Linke
722ccfc83b ng_text_field handling options parameter 2014-07-31 15:20:22 +10:00
319 changed files with 5764 additions and 1824 deletions

2
.gitignore vendored
View File

@@ -36,3 +36,5 @@ config/initializers/feature_toggle.rb
NERD_tree*
coverage
libpeerconnection.log
tags
app/assets/javascripts/tags

View File

@@ -7,7 +7,11 @@ gem 'pg'
gem 'spree', :github => 'openfoodfoundation/spree', :branch => '1-3-stable'
gem 'spree_i18n', :github => 'spree/spree_i18n'
gem 'spree_auth_devise', :github => 'spree/spree_auth_devise', :branch => '1-3-stable'
gem 'spree_paypal_express', :github => "spree-contrib/better_spree_paypal_express", :branch => "1-3-stable"
# Waiting on merge of PR #117
# https://github.com/spree-contrib/better_spree_paypal_express/pull/117
gem 'spree_paypal_express', :github => "openfoodfoundation/better_spree_paypal_express", :branch => "1-3-stable"
#gem 'spree_paypal_express', :github => "spree-contrib/better_spree_paypal_express", :branch => "1-3-stable"
gem 'comfortable_mexican_sofa'
@@ -38,6 +42,7 @@ gem 'gmaps4rails'
gem 'spinjs-rails'
gem 'rack-ssl', :require => 'rack/ssl'
gem 'custom_error_message', :github => 'jeremydurham/custom-err-msg'
gem 'angularjs-file-upload-rails', '~> 1.1.0'
gem 'foreigner'
gem 'immigrant'

View File

@@ -12,6 +12,15 @@ GIT
specs:
custom_error_message (1.1.1)
GIT
remote: git://github.com/openfoodfoundation/better_spree_paypal_express.git
revision: cdd61161ccd27cd8d183f9321422c7be113796b8
branch: 1-3-stable
specs:
spree_paypal_express (2.0.3)
paypal-sdk-merchant (= 1.106.1)
spree_core (~> 1.3.4)
GIT
remote: git://github.com/openfoodfoundation/spree.git
revision: bbe5e779bcb883a1726ad4006d7c06b06c3f5372
@@ -54,15 +63,6 @@ GIT
spree_sample (1.3.6.beta)
spree_core (= 1.3.6.beta)
GIT
remote: git://github.com/spree-contrib/better_spree_paypal_express.git
revision: db135b89a289aaab951c1228bcc55871de0cbba7
branch: 1-3-stable
specs:
spree_paypal_express (2.0.3)
paypal-sdk-merchant (= 1.106.1)
spree_core (~> 1.3.4)
GIT
remote: git://github.com/spree/deface.git
revision: 1110a1336252109bce7f98f9182042e0bc2930ae
@@ -153,6 +153,7 @@ GEM
railties (>= 3.1)
sprockets
tilt
angularjs-file-upload-rails (1.1.0)
angularjs-rails (1.2.13)
ansi (1.4.2)
arel (3.0.3)
@@ -505,6 +506,7 @@ DEPENDENCIES
active_model_serializers
andand
angular-rails-templates
angularjs-file-upload-rails (~> 1.1.0)
angularjs-rails
awesome_print
aws-sdk

View File

@@ -9,7 +9,6 @@ Supported by the Open Food Foundation, we are proudly open source and not-for-pr
We're part of global movement - get involved!
* We're crowd-funding RIGHT NOW - please help out at http://startsomegood.com/openfoodnetwork
* Fill in this short survey to tell us who you are and what you want to do with OFN: https://docs.google.com/a/eaterprises.com.au/forms/d/1zxR5vSiU9CigJ9cEaC8-eJLgYid8CR8er7PPH9Mc-30/edit#
* Find out more and join in the conversation - http://openfoodnetwork.org

View File

@@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="32px" y="32px" height="32px" width="32px"
viewBox="0 0 30.2 40" enable-background="new 0 0 30.2 40" xml:space="preserve">
<g id="Layer_1_1_">
<g>
<g>
<g>
<path fill="#C1122B" d="M15.1,39.5c-0.1,0-0.2,0-0.3-0.1C14.2,38.9,0.5,27.2,0.5,15.1C0.5,7.1,7,0.5,15.1,0.5
s14.6,6.6,14.6,14.6c0,12.3-13.7,23.8-14.3,24.3C15.3,39.5,15.2,39.5,15.1,39.5z"/>
<path fill="#E5E5E5" d="M15.1,1c8,0,14.1,6.5,14.1,14.1C29.2,27.4,15.1,39,15.1,39S1,27.1,1,15.1C1,7.5,7.1,1,15.1,1 M15.1,0
C6.8,0,0,6.8,0,15.1c0,12.3,13.9,24.1,14.5,24.6c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2c0.6-0.5,14.5-12.1,14.5-24.6
C30.2,6.8,23.4,0,15.1,0L15.1,0z"/>
</g>
</g>
<g>
<g>
<path fill="#0B8C61" d="M15.1,32.5c-0.1,0-0.2,0-0.3-0.1c-0.4-0.3-9.1-7.7-9.1-15.5c0-5.2,4.2-9.4,9.4-9.4s9.4,4.2,9.4,9.4
c0,7.9-8.7,15.2-9.1,15.5C15.3,32.5,15.2,32.5,15.1,32.5z"/>
<path fill="#E5E5E5" d="M15.1,8c5.1,0,8.9,4.1,8.9,8.9c0,7.7-8.9,15.1-8.9,15.1s-8.9-7.5-8.9-15.1C6.2,12.1,10,8,15.1,8 M15.1,7
c-5.5,0-9.9,4.5-9.9,9.9c0,8,8.9,15.5,9.3,15.8c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2C16.1,32.5,25,25,25,16.9
C25,11.5,20.6,7,15.1,7L15.1,7z"/>
</g>
</g>
</g>
</g>
<g id="source_files" display="none">
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="32px" y="32px" height="32px" width="32px"
viewBox="0 0 30.2 40" enable-background="new 0 0 30.2 40" xml:space="preserve">
<g id="Layer_1_1_">
<g>
<g>
<g>
<path fill="#C1122B" d="M15.1,39.5c-0.1,0-0.2,0-0.3-0.1C14.2,38.9,0.5,27.2,0.5,15.1C0.5,7.1,7,0.5,15.1,0.5
s14.6,6.6,14.6,14.6c0,12.3-13.7,23.8-14.3,24.3C15.3,39.5,15.2,39.5,15.1,39.5z"/>
<path fill="#E5E5E5" d="M15.1,1c8,0,14.1,6.5,14.1,14.1C29.2,27.4,15.1,39,15.1,39S1,27.1,1,15.1C1,7.5,7.1,1,15.1,1 M15.1,0
C6.8,0,0,6.8,0,15.1c0,12.3,13.9,24.1,14.5,24.6c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2c0.6-0.5,14.5-12.1,14.5-24.6
C30.2,6.8,23.4,0,15.1,0L15.1,0z"/>
</g>
</g>
<path fill="#FFFFFF" d="M16.9,21.7c1.9-3.2,3.9-7.3,3.9-9.5c0-3.2-2.6-5.7-5.7-5.7S9.4,9,9.4,12.2c0,2.2,2.1,6.3,3.9,9.5
c-2.1,0.3-3.5,1.2-3.5,2.3c0,1.4,2.3,2.5,5.3,2.5s5.3-1.1,5.3-2.5C20.4,22.9,19,22.1,16.9,21.7z M12.2,12.2c0-1.6,1.3-2.9,2.9-2.9
c1.6,0,2.9,1.3,2.9,2.9c0,1.6-1.3,2.9-2.9,2.9C13.5,15.1,12.2,13.8,12.2,12.2z M15.1,25.7c-2.7,0-4.6-0.9-4.6-1.7
c0-0.6,1.2-1.4,3.2-1.6c0.1,0.2,0.2,0.3,0.3,0.4c0,0.1,0.1,0.2,0.1,0.2c0.1,0.2,0.2,0.3,0.3,0.5c0,0,0.1,0.1,0.1,0.1
c0.1,0.2,0.2,0.3,0.2,0.4c0,0,0,0,0,0c0.1,0.1,0.1,0.1,0.1,0.1l0.3,0.5l0.3-0.5c0,0,0,0,0.1-0.1c0,0,0-0.1,0-0.1
c0.1-0.1,0.1-0.2,0.2-0.3c0,0,0-0.1,0.1-0.1c0.1-0.2,0.2-0.3,0.3-0.5c0-0.1,0.1-0.1,0.1-0.2c0.1-0.1,0.2-0.3,0.3-0.5
c2,0.3,3.2,1,3.2,1.6C19.7,24.8,17.8,25.7,15.1,25.7z"/>
</g>
</g>
<g id="source_files" display="none">
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="32px" y="32px" height="32px" width="32px"
viewBox="0 0 30.2 40" enable-background="new 0 0 30.2 40" xml:space="preserve">
<g id="Layer_1_1_">
<g>
<g>
<g>
<path fill="#0B8C61" d="M15.1,39.5c-0.1,0-0.2,0-0.3-0.1C14.2,38.9,0.5,27.2,0.5,15.1C0.5,7.1,7,0.5,15.1,0.5
s14.6,6.6,14.6,14.6c0,12.3-13.7,23.8-14.3,24.3C15.3,39.5,15.2,39.5,15.1,39.5z"/>
<path fill="#E5E5E5" d="M15.1,1c8,0,14.1,6.5,14.1,14.1C29.2,27.4,15.1,39,15.1,39S1,27.1,1,15.1C1,7.5,7.1,1,15.1,1 M15.1,0
C6.8,0,0,6.8,0,15.1c0,12.3,13.9,24.1,14.5,24.6c0.2,0.2,0.4,0.2,0.6,0.2c0.2,0,0.5-0.1,0.6-0.2c0.6-0.5,14.5-12.1,14.5-24.6
C30.2,6.8,23.4,0,15.1,0L15.1,0z"/>
</g>
</g>
<g>
<path fill="#FFFFFF" d="M8.3,15.3c2.9-0.8,5.8,1.2,6.1,4.2c0,0.1,0,0.2,0.1,0.4c0.1,0,0.2,0,0.4,0c2.4-0.1,4.8-0.1,7.2-0.2
c-1,0.3-1.7,1.2-1.7,2.3c0,1.3,1.1,2.4,2.4,2.4c1.3,0,2.4-1.1,2.4-2.4c0-1.2-0.9-2.2-2-2.3c1.8-0.1,1.4-0.1,1.7-1.7
c0.1-0.8,0.2-1.6,0.3-2.3c0.1-0.7-0.1-0.9-0.8-0.9c-1.1,0-2-0.1-3.1-0.1c0,0-0.1,0-0.1-0.1c0-0.8,0-2.7,0-2.7s-0.4-0.3-0.9,0
c0,0.9,0,1.8,0,2.8c0,0-1.3,0-3.1-0.1c-0.1,0-0.3-0.1-0.4-0.4c-0.3-0.8-0.9-2.3-1.7-4.6c0,0-0.4-1-1.5-1c-0.9,0-5.2,0-5.2,0v5.7
c0,0-0.4,0.2-0.7,0.2C7.4,15.3,7.5,15.5,8.3,15.3z M23.9,22c0,0.7-0.6,1.2-1.2,1.2s-1.2-0.6-1.2-1.2c0-0.7,0.6-1.2,1.2-1.2
C23.4,20.8,23.9,21.3,23.9,22z M9.6,11.3l0-1.1l4.4,0l1.4,4.2l0,0c-1.9,0-4,0-5.8,0.1L9.6,11.3z"/>
<path fill="#FFFFFF" d="M9.4,15.8c-2.4,0-4.3,1.9-4.3,4.3s1.9,4.3,4.3,4.3c2.4,0,4.3-1.9,4.3-4.3C13.7,17.7,11.8,15.8,9.4,15.8z
M9.4,22.5c-1.3,0-2.4-1.1-2.4-2.4c0-1.3,1.1-2.4,2.4-2.4c1.3,0,2.4,1.1,2.4,2.4S10.7,22.5,9.4,22.5z"/>
</g>
</g>
</g>
<g id="source_files" display="none">
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#0B8C61" d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002
l-0.935-2.824L9.46,8.846z"/>
<circle fill="#0B8C61" cx="8.728" cy="17.454" r="1.569"/>
<path fill="#0B8C61" d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075
c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464
c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112
c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727
c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069
s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"/>
<circle fill="#0B8C61" cx="20.826" cy="19.013" r="1.006"/>
<path fill="#0B8C61" d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839
c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484
S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065
c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0
v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252
c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147
c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037
c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0
c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147
c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163
c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018
C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257
c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"/>
<path fill="#0B8C61" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013
c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98
c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018
c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455
c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679
c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572
c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23
c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073
c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208
c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#0B8C61" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1c7.44,0,13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
<path fill="#0B8C61" d="M23.703,15.582c0.123-0.658,0.214-1.36,0.284-2.208c0.035-0.422,0.026-0.962-0.358-1.396
c-0.433-0.489-1.081-0.514-1.358-0.525c-0.659-0.024-1.281-0.048-1.916-0.073c0.011-0.745,0.028-1.56,0.028-1.56l0.011-0.52
l-0.419-0.307c-0.106-0.078-0.495-0.332-1.044-0.332c-0.306,0-0.599,0.077-0.872,0.23l-0.512,0.286v0.586v1.502
c-0.378-0.009-0.845-0.02-1.376-0.031c-0.062-0.164-0.135-0.355-0.217-0.572c-0.298-0.78-0.706-1.847-1.203-3.283l-0.011-0.03
l-0.013-0.03c-0.234-0.557-0.969-1.5-2.238-1.5H7.811h-1v1v4.407L6.3,11.276l-0.125,0.757c-0.061,0.373-0.13,0.911,0.148,1.375
C4.939,14.233,4,15.729,4,17.455c0,2.606,2.121,4.727,4.728,4.727c2.39,0,4.349-1.79,4.661-4.096
c0.107,0.016,0.212,0.03,0.315,0.03h0.018l0.037-0.001c0.706-0.018,1.421-0.031,2.137-0.043c0.639-0.011,1.288-0.023,1.94-0.039
c-0.103,0.311-0.158,0.641-0.158,0.98c0,1.735,1.412,3.147,3.148,3.147c1.736,0,3.147-1.412,3.147-3.147
c0-0.706-0.242-1.369-0.651-1.903c0.135-0.239,0.23-0.556,0.292-0.981C23.636,15.978,23.662,15.798,23.703,15.582z M8.728,21.181
C6.672,21.181,5,19.51,5,17.455c0-1.562,0.969-2.898,2.335-3.451c0.026,0.001,0.046,0.009,0.074,0.009
c0.197,0,0.409-0.034,0.685-0.112c0.289-0.081,0.586-0.122,0.881-0.122c0.21,0,0.417,0.021,0.619,0.061
c0.888,0.213,1.652,0.741,2.166,1.464c0.041,0.06,0.082,0.121,0.119,0.184c0.057,0.091,0.105,0.188,0.155,0.285
c0.16,0.334,0.279,0.693,0.325,1.075c0.009,0.083,0.022,0.176,0.037,0.283l0.011,0.082l0.041,0.296
C12.417,19.539,10.763,21.181,8.728,21.181z M22.973,19.013c0,1.184-0.964,2.147-2.147,2.147c-1.186,0-2.148-0.963-2.148-2.147
c0-0.985,0.669-1.815,1.575-2.067c-2.174,0.109-4.353,0.113-6.529,0.169c-0.007,0-0.013,0-0.02,0
c-0.092,0-0.188-0.022-0.289-0.036c-0.032-0.402-0.111-0.788-0.238-1.156c-0.004-0.012-0.007-0.024-0.011-0.037
c-0.063-0.177-0.134-0.348-0.217-0.515c-0.076-0.163-0.161-0.318-0.255-0.469c-0.032-0.05-0.062-0.099-0.096-0.147
c-0.646-0.956-1.628-1.642-2.748-1.879c-0.362-0.089-0.734-0.149-1.122-0.149c-0.509,0-0.991,0.102-1.451,0.252
c-0.181-0.073-0.192-0.312-0.115-0.784c0.296-0.029,0.649-0.178,0.649-0.178V6.819c0,0,3.899,0,4.679,0
c0.943,0,1.316,0.888,1.316,0.888c0.72,2.081,1.269,3.432,1.52,4.126c0.097,0.264,0.303,0.39,0.378,0.392
c1.672,0.035,2.844,0.065,2.844,0.065c0-0.873,0-1.706,0-2.527c0.136-0.076,0.267-0.103,0.383-0.103
c0.265,0,0.453,0.138,0.453,0.138s-0.037,1.76-0.037,2.484c0,0.038,0.048,0.059,0.077,0.06c0.961,0.038,1.848,0.075,2.808,0.109
c0.646,0.025,0.813,0.18,0.758,0.839c-0.059,0.705-0.14,1.412-0.271,2.108c-0.269,1.444,0.042,1.395-1.562,1.496
C22.183,17.055,22.973,17.943,22.973,19.013z"/>
<path fill="#0B8C61" d="M19.57,19.013c0,0.693,0.564,1.257,1.256,1.257c0.692,0,1.256-0.564,1.256-1.257
c0-0.692-0.564-1.255-1.256-1.255C20.134,17.758,19.57,18.321,19.57,19.013z M21.832,19.013c0,0.555-0.451,1.007-1.006,1.007
c-0.555,0-1.006-0.452-1.006-1.007c0-0.554,0.451-1.005,1.006-1.005C21.381,18.008,21.832,18.459,21.832,19.013z"/>
<path fill="#0B8C61" d="M12.919,8.341L8.961,8.347l-0.004,0.97l-0.003,2.916c1.209-0.044,2.595-0.069,3.939-0.069
c0.452,0,0.9,0.003,1.334,0.009l-0.045-0.018L12.919,8.341z M12.893,11.663c-1.138,0-2.34,0.018-3.438,0.052l0.003-2.397
L9.46,8.846l3.098-0.005l0.935,2.824C13.294,11.664,13.094,11.663,12.893,11.663z"/>
<path fill="#0B8C61" d="M8.728,15.385c-1.142,0-2.07,0.929-2.07,2.07s0.928,2.069,2.07,2.069c1.141,0,2.069-0.928,2.069-2.069
S9.869,15.385,8.728,15.385z M8.728,19.023c-0.865,0-1.57-0.704-1.57-1.569c0-0.866,0.704-1.57,1.57-1.57
c0.865,0,1.569,0.704,1.569,1.57C10.297,18.32,9.593,19.023,8.728,19.023z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#C1122B" d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002
l-0.935-2.824L9.46,8.846z"/>
<circle fill="#C1122B" cx="8.728" cy="17.454" r="1.569"/>
<path fill="#C1122B" d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075
c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464
c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112
c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727
c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069
s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"/>
<circle fill="#C1122B" cx="20.826" cy="19.013" r="1.006"/>
<path fill="#C1122B" d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839
c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484
S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065
c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0
v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252
c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147
c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037
c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0
c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147
c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163
c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018
C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257
c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"/>
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013
c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98
c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018
c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455
c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679
c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572
c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23
c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073
c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208
c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1c7.44,0,13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
<path fill="#C1122B" d="M23.703,15.582c0.123-0.658,0.214-1.36,0.284-2.208c0.035-0.422,0.026-0.962-0.358-1.396
c-0.433-0.489-1.081-0.514-1.358-0.525c-0.659-0.024-1.281-0.048-1.916-0.073c0.011-0.745,0.028-1.56,0.028-1.56l0.011-0.52
l-0.419-0.307c-0.106-0.078-0.495-0.332-1.044-0.332c-0.306,0-0.599,0.077-0.872,0.23l-0.512,0.286v0.586v1.502
c-0.378-0.009-0.845-0.02-1.376-0.031c-0.062-0.164-0.135-0.355-0.217-0.572c-0.298-0.78-0.706-1.847-1.203-3.283l-0.011-0.03
l-0.013-0.03c-0.234-0.557-0.969-1.5-2.238-1.5H7.811h-1v1v4.407L6.3,11.276l-0.125,0.757c-0.061,0.373-0.13,0.911,0.148,1.375
C4.939,14.233,4,15.729,4,17.455c0,2.606,2.121,4.727,4.728,4.727c2.39,0,4.349-1.79,4.661-4.096
c0.107,0.016,0.212,0.03,0.315,0.03h0.018l0.037-0.001c0.706-0.018,1.421-0.031,2.137-0.043c0.639-0.011,1.288-0.023,1.94-0.039
c-0.103,0.311-0.158,0.641-0.158,0.98c0,1.735,1.412,3.147,3.148,3.147c1.736,0,3.147-1.412,3.147-3.147
c0-0.706-0.242-1.369-0.651-1.903c0.135-0.239,0.23-0.556,0.292-0.981C23.636,15.978,23.662,15.798,23.703,15.582z M8.728,21.181
C6.672,21.181,5,19.51,5,17.455c0-1.562,0.969-2.898,2.335-3.451c0.026,0.001,0.046,0.009,0.074,0.009
c0.197,0,0.409-0.034,0.685-0.112c0.289-0.081,0.586-0.122,0.881-0.122c0.21,0,0.417,0.021,0.619,0.061
c0.888,0.213,1.652,0.741,2.166,1.464c0.041,0.06,0.082,0.121,0.119,0.184c0.057,0.091,0.105,0.188,0.155,0.285
c0.16,0.334,0.279,0.693,0.325,1.075c0.009,0.083,0.022,0.176,0.037,0.283l0.011,0.082l0.041,0.296
C12.417,19.539,10.763,21.181,8.728,21.181z M22.973,19.013c0,1.184-0.964,2.147-2.147,2.147c-1.186,0-2.148-0.963-2.148-2.147
c0-0.985,0.669-1.815,1.575-2.067c-2.174,0.109-4.353,0.113-6.529,0.169c-0.007,0-0.013,0-0.02,0
c-0.092,0-0.188-0.022-0.289-0.036c-0.032-0.402-0.111-0.788-0.238-1.156c-0.004-0.012-0.007-0.024-0.011-0.037
c-0.063-0.177-0.134-0.348-0.217-0.515c-0.076-0.163-0.161-0.318-0.255-0.469c-0.032-0.05-0.062-0.099-0.096-0.147
c-0.646-0.956-1.628-1.642-2.748-1.879c-0.362-0.089-0.734-0.149-1.122-0.149c-0.509,0-0.991,0.102-1.451,0.252
c-0.181-0.073-0.192-0.312-0.115-0.784c0.296-0.029,0.649-0.178,0.649-0.178V6.819c0,0,3.899,0,4.679,0
c0.943,0,1.316,0.888,1.316,0.888c0.72,2.081,1.269,3.432,1.52,4.126c0.097,0.264,0.303,0.39,0.378,0.392
c1.672,0.035,2.844,0.065,2.844,0.065c0-0.873,0-1.706,0-2.527c0.136-0.076,0.267-0.103,0.383-0.103
c0.265,0,0.453,0.138,0.453,0.138s-0.037,1.76-0.037,2.484c0,0.038,0.048,0.059,0.077,0.06c0.961,0.038,1.848,0.075,2.808,0.109
c0.646,0.025,0.813,0.18,0.758,0.839c-0.059,0.705-0.14,1.412-0.271,2.108c-0.269,1.444,0.042,1.395-1.562,1.496
C22.183,17.055,22.973,17.943,22.973,19.013z"/>
<path fill="#C1122B" d="M19.57,19.013c0,0.693,0.564,1.257,1.256,1.257c0.692,0,1.256-0.564,1.256-1.257
c0-0.692-0.564-1.255-1.256-1.255C20.134,17.758,19.57,18.321,19.57,19.013z M21.832,19.013c0,0.555-0.451,1.007-1.006,1.007
c-0.555,0-1.006-0.452-1.006-1.007c0-0.554,0.451-1.005,1.006-1.005C21.381,18.008,21.832,18.459,21.832,19.013z"/>
<path fill="#C1122B" d="M12.919,8.341L8.961,8.347l-0.004,0.97l-0.003,2.916c1.209-0.044,2.595-0.069,3.939-0.069
c0.452,0,0.9,0.003,1.334,0.009l-0.045-0.018L12.919,8.341z M12.893,11.663c-1.138,0-2.34,0.018-3.438,0.052l0.003-2.397
L9.46,8.846l3.098-0.005l0.935,2.824C13.294,11.664,13.094,11.663,12.893,11.663z"/>
<path fill="#C1122B" d="M8.728,15.385c-1.142,0-2.07,0.929-2.07,2.07s0.928,2.069,2.07,2.069c1.141,0,2.069-0.928,2.069-2.069
S9.869,15.385,8.728,15.385z M8.728,19.023c-0.865,0-1.57-0.704-1.57-1.569c0-0.866,0.704-1.57,1.57-1.57
c0.865,0,1.569,0.704,1.569,1.57C10.297,18.32,9.593,19.023,8.728,19.023z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#C1122B" d="M13.999,8.546c-1.24,0-2.249,1.009-2.249,2.248c0,1.242,1.009,2.253,2.249,2.253
c1.241,0,2.251-1.01,2.251-2.253C16.25,9.555,15.24,8.546,13.999,8.546z"/>
<path fill="#C1122B" d="M14,6.348c-2.453,0-4.448,1.995-4.448,4.448c0,0.859,0.468,3.112,3.602,8.541l0.387,0.671l0.134,0.225
l0.09,0.15l0.043,0.072l0.085,0.144l0.108,0.178l0.104-0.172l0.036-0.061l0.088-0.149l0.032-0.054l0.19-0.319l0.395-0.685
c3.134-5.44,3.602-7.687,3.602-8.542C18.448,8.343,16.452,6.348,14,6.348z M13.999,13.797c-1.654,0-2.999-1.347-2.999-3.003
c0-1.655,1.346-2.998,2.999-2.998c1.655,0,3.001,1.345,3.001,2.998C17,12.451,15.654,13.797,13.999,13.797z"/>
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M19.336,22.021
c-0.002,1.728-2.686,2.632-5.337,2.632c-2.652,0-5.337-0.905-5.337-2.634c0-1.158,1.352-2.099,3.465-2.462
c-1.721-3.01-3.577-6.721-3.577-8.76c0-3.004,2.444-5.448,5.448-5.448s5.448,2.444,5.449,5.447c0,2.036-1.858,5.75-3.578,8.762
C17.984,19.92,19.336,20.86,19.336,22.021z"/>
<path fill="#C1122B" d="M15.175,20.763c-0.029,0.048-0.059,0.1-0.088,0.148c-0.04,0.068-0.084,0.142-0.121,0.204
c-0.111,0.184-0.206,0.339-0.293,0.483c-0.021,0.03-0.042,0.066-0.061,0.096c-0.081,0.133-0.142,0.231-0.194,0.313
c-0.015,0.025-0.032,0.054-0.045,0.073c-0.052,0.082-0.08,0.125-0.08,0.125l-0.295,0.463l-0.293-0.463
c0,0-0.031-0.048-0.085-0.134c-0.006-0.009-0.013-0.023-0.019-0.029c-0.053-0.086-0.123-0.198-0.212-0.345
c-0.025-0.038-0.052-0.086-0.079-0.127c-0.083-0.136-0.17-0.278-0.274-0.448c-0.042-0.072-0.089-0.15-0.134-0.225
c-0.026-0.044-0.053-0.09-0.078-0.132l-0.381,0.061c-1.729,0.277-2.477,0.925-2.477,1.195c0,0.172,0.269,0.481,0.859,0.754
c0.8,0.37,1.926,0.574,3.172,0.574c2.608,0,4.031-0.878,4.031-1.329c0-0.269-0.748-0.917-2.476-1.195L15.175,20.763z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1s13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
<path fill="#C1122B" d="M14,7.796c-1.654,0-3,1.344-3,2.998c0,1.656,1.346,3.003,3,3.003c1.655,0,3-1.347,3-3.003
C17,9.141,15.654,7.796,14,7.796z M14,13.047c-1.24,0-2.25-1.01-2.25-2.253c0-1.24,1.009-2.248,2.25-2.248
c1.241,0,2.25,1.009,2.25,2.248C16.25,12.037,15.24,13.047,14,13.047z"/>
<path fill="#C1122B" d="M14,5.348c-3.004,0-5.448,2.444-5.448,5.448c0,2.039,1.856,5.75,3.577,8.76
c-2.113,0.363-3.465,1.304-3.465,2.462c0,1.729,2.685,2.634,5.337,2.634c2.65,0,5.335-0.904,5.337-2.632
c0-1.16-1.352-2.1-3.465-2.464c1.719-3.012,3.578-6.725,3.578-8.762C19.448,7.792,17.003,5.348,14,5.348z M18.031,22.018
c0,0.451-1.423,1.329-4.031,1.329c-1.246,0-2.372-0.204-3.172-0.574c-0.591-0.273-0.859-0.582-0.859-0.754
c0-0.269,0.748-0.917,2.477-1.195l0.381-0.061c0.025,0.042,0.053,0.088,0.078,0.132c0.045,0.075,0.092,0.153,0.134,0.225
c0.104,0.17,0.191,0.313,0.274,0.448c0.027,0.042,0.054,0.089,0.079,0.127c0.089,0.147,0.159,0.258,0.212,0.345
c0.006,0.007,0.013,0.021,0.019,0.029c0.053,0.086,0.085,0.134,0.085,0.134l0.293,0.463l0.295-0.463c0,0,0.028-0.044,0.08-0.125
c0.012-0.019,0.029-0.048,0.045-0.073c0.052-0.082,0.113-0.18,0.194-0.313c0.019-0.029,0.04-0.066,0.061-0.096
c0.086-0.143,0.181-0.298,0.293-0.483c0.037-0.063,0.081-0.136,0.121-0.204c0.029-0.048,0.06-0.1,0.088-0.148l0.38,0.061
C17.283,21.101,18.031,21.749,18.031,22.018z M14.847,19.337l-0.396,0.688l-0.189,0.316l-0.032,0.054l-0.089,0.151l-0.036,0.06
l-0.104,0.172L13.892,20.6l-0.085-0.144l-0.043-0.072l-0.09-0.15l-0.135-0.227l-0.387-0.67c-3.134-5.43-3.602-7.682-3.602-8.541
c0-2.453,1.995-4.448,4.448-4.448c2.453,0,4.448,1.995,4.449,4.447C18.449,11.65,17.981,13.897,14.847,19.337z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<g>
<path fill="#C1122B" d="M21.552,10.282h-3.274l-1.683-2.709c-0.165-0.287-0.533-0.384-0.8-0.228
c-0.135,0.078-0.229,0.201-0.27,0.35c-0.041,0.153-0.019,0.315,0.062,0.457l1.359,2.129h-6.311l1.379-2.161
c0.066-0.114,0.087-0.271,0.046-0.421c-0.04-0.15-0.136-0.275-0.271-0.353c-0.266-0.156-0.64-0.053-0.787,0.202l-1.697,2.733
H6.448c-0.522,0-0.948,0.426-0.948,0.948v0.827c0,0.492,0.363,0.97,0.793,1.041l0.105,0.018h15.156l0.119-0.016
c0.44-0.058,0.827-0.545,0.827-1.043V11.23C22.5,10.708,22.074,10.282,21.552,10.282z"/>
<path fill="#C1122B" d="M8.057,20.02c0.007,0.222,0.122,0.337,0.263,0.337h11.365c0.142,0,0.257-0.115,0.257-0.256l0.007-0.1
l0.971-5.886H7.082L8.057,20.02z M17.116,16.074c0-0.298,0.22-0.539,0.518-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017
c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.518-0.241-0.518-0.539V16.074z M14.694,16.074c0-0.298,0.219-0.539,0.517-0.539
s0.517,0.241,0.517,0.539v2.017c0,0.298-0.219,0.539-0.517,0.539s-0.517-0.241-0.517-0.539V16.074z M12.272,16.074
c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.517,0.241,0.517,0.539v2.017c0,0.298-0.22,0.539-0.517,0.539
c-0.298,0-0.517-0.241-0.517-0.539V16.074z M9.85,16.074c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017
c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.517-0.241-0.517-0.539V16.074z"/>
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M23.5,12.057
c0,0.863-0.567,1.661-1.325,1.942l-1.025,5.889c-0.015,0.976-0.889,1.831-1.94,1.831H8.744c-1.052,0-1.925-0.855-1.947-1.906
l-1.024-5.828C5.036,13.691,4.5,12.91,4.5,12.057V11.23c0-1.074,0.874-1.948,1.948-1.948H8.75l1.396-2.247
c0.4-0.698,1.417-0.978,2.145-0.555c0.755,0.435,1.015,1.403,0.58,2.159l-0.41,0.642h2.662l-0.39-0.61
c-0.227-0.391-0.284-0.823-0.174-1.235c0.109-0.406,0.37-0.745,0.734-0.955c0.716-0.417,1.739-0.148,2.159,0.579l1.381,2.223
h2.718c1.074,0,1.948,0.874,1.948,1.948V12.057z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
C24.988,26.679,20.059,25,14,25z"/>
<g>
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1s13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
<g>
<g>
<path fill="#C1122B" d="M19.457,22.366H8.494c-1.074,0-1.965-0.873-1.988-1.946l-1.079-6.143
C4.661,13.986,4.1,13.177,4.1,12.295v-0.866c0-1.097,0.892-1.989,1.988-1.989h2.441l1.479-2.379
c0.408-0.709,1.438-0.99,2.177-0.563c0.37,0.214,0.635,0.559,0.747,0.973c0.11,0.413,0.054,0.846-0.16,1.216l-0.479,0.751h2.98
L14.813,8.72c-0.229-0.395-0.288-0.833-0.177-1.251c0.11-0.413,0.375-0.758,0.745-0.971c0.731-0.428,1.766-0.151,2.191,0.588
l1.463,2.354h2.877c1.096,0,1.988,0.892,1.988,1.989v0.866c0,0.894-0.594,1.719-1.382,1.996l-1.08,6.199
C21.423,21.492,20.532,22.366,19.457,22.366z M6.088,10.383c-0.576,0-1.045,0.47-1.045,1.046v0.866
c0,0.54,0.401,1.064,0.874,1.143l0.33,0.055l1.195,6.836c0.019,0.635,0.488,1.094,1.052,1.094h10.964
c0.565,0,1.034-0.459,1.045-1.023l1.199-6.915l0.344-0.045c0.494-0.064,0.912-0.588,0.912-1.145v-0.866
c0-0.576-0.469-1.046-1.045-1.046H18.51L16.762,7.57c-0.186-0.324-0.605-0.433-0.909-0.256
c-0.153,0.088-0.262,0.229-0.307,0.398c-0.046,0.175-0.021,0.358,0.072,0.518l1.373,2.152h-6.42l1.393-2.183
c0.077-0.134,0.1-0.313,0.055-0.483c-0.046-0.17-0.156-0.313-0.308-0.401c-0.304-0.179-0.729-0.061-0.895,0.23l-1.763,2.838
H6.088z"/>
</g>
<g>
<path fill="#C1122B" d="M19.956,21.986H8.049c-0.697,0-1.264-0.566-1.264-1.263l-1.207-7.266h16.845l-1.204,7.282
C21.22,21.419,20.653,21.986,19.956,21.986z M6.69,14.399l1.031,6.247c0.006,0.253,0.151,0.397,0.328,0.397h11.907
c0.177,0,0.321-0.144,0.321-0.32l0.006-0.097l1.029-6.226H6.69z"/>
</g>
<g>
<g>
<path fill="#C1122B" d="M17.807,19.181c0.311,0,0.541-0.253,0.541-0.565v-2.113c0-0.312-0.23-0.565-0.541-0.565
c-0.312,0-0.542,0.253-0.542,0.565v2.113C17.264,18.929,17.495,19.181,17.807,19.181z"/>
</g>
<g>
<path fill="#C1122B" d="M15.268,19.181c0.312,0,0.542-0.253,0.542-0.565v-2.113c0-0.312-0.23-0.565-0.542-0.565
s-0.542,0.253-0.542,0.565v2.113C14.727,18.929,14.957,19.181,15.268,19.181z"/>
</g>
<g>
<path fill="#C1122B" d="M12.731,19.181c0.311,0,0.542-0.253,0.542-0.565v-2.113c0-0.312-0.23-0.565-0.542-0.565
c-0.312,0-0.542,0.253-0.542,0.565v2.113C12.19,18.929,12.419,19.181,12.731,19.181z"/>
</g>
<g>
<path fill="#C1122B" d="M10.194,19.181c0.311,0,0.541-0.253,0.541-0.565v-2.113c0-0.312-0.23-0.565-0.541-0.565
c-0.312,0-0.542,0.253-0.542,0.565v2.113C9.652,18.929,9.882,19.181,10.194,19.181z"/>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@@ -22,5 +22,6 @@
//= require ./payment_methods/payment_methods
//= require ./products/products
//= require ./shipping_methods/shipping_methods
//= require ./users/users
//= require_tree .

View File

@@ -1,6 +1,7 @@
angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
"$scope", "$http", "dataFetcher", "blankOption", "pendingChanges", "VariantUnitManager", "OptionValueNamer",
($scope, $http, dataFetcher, blankOption, pendingChanges, VariantUnitManager, OptionValueNamer) ->
"$scope", "$http", "dataFetcher", "blankOption", "pendingChanges", "VariantUnitManager", "OptionValueNamer", "SpreeApiKey"
($scope, $http, dataFetcher, blankOption, pendingChanges, VariantUnitManager, OptionValueNamer, SpreeApiKey) ->
$scope.loading = true
$scope.initialiseVariables = ->
start = daysFromToday -7
@@ -32,14 +33,14 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [
quantity: { name: "Quantity", visible: true }
max: { name: "Max", visible: true }
$scope.initialise = (spree_api_key) ->
$scope.initialise = ->
$scope.initialiseVariables()
authorise_api_reponse = ""
dataFetcher("/api/users/authorise_api?token=" + spree_api_key).then (data) ->
dataFetcher("/api/users/authorise_api?token=" + SpreeApiKey).then (data) ->
authorise_api_reponse = data
$scope.spree_api_key_ok = data.hasOwnProperty("success") and data["success"] == "Use of API Authorised"
if $scope.spree_api_key_ok
$http.defaults.headers.common["X-Spree-Token"] = spree_api_key
$http.defaults.headers.common["X-Spree-Token"] = SpreeApiKey
dataFetcher("/api/enterprises/accessible?template=bulk_index&q[is_primary_producer_eq]=true").then (data) ->
$scope.suppliers = data
$scope.suppliers.unshift blankOption()

View File

@@ -1,6 +1,8 @@
angular.module("ofn.admin").controller "AdminProductEditCtrl", [
"$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", "producers", "Taxons",
($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager, producers, Taxons) ->
"$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", "producers", "Taxons", "SpreeApiKey",
($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager, producers, Taxons, SpreeApiKey) ->
$scope.loading = true
$scope.updateStatusMessage =
text: ""
style: {}
@@ -42,14 +44,13 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [
$scope.limit = 15
$scope.productsWithUnsavedVariants = []
$scope.initialise = (spree_api_key) ->
$scope.initialise = ->
authorise_api_reponse = ""
dataFetcher("/api/users/authorise_api?token=" + spree_api_key).then (data) ->
dataFetcher("/api/users/authorise_api?token=" + SpreeApiKey).then (data) ->
authorise_api_reponse = data
$scope.spree_api_key_ok = data.hasOwnProperty("success") and data["success"] == "Use of API Authorised"
if $scope.spree_api_key_ok
$http.defaults.headers.common["X-Spree-Token"] = spree_api_key
$http.defaults.headers.common["X-Spree-Token"] = SpreeApiKey
$scope.fetchProducts()
else if authorise_api_reponse.hasOwnProperty("error")
$scope.api_error_msg = authorise_api_reponse("error")

View File

@@ -1,9 +1,10 @@
angular.module("ofn.admin").controller "AdminEnterpriseRelationshipsCtrl", ($scope, EnterpriseRelationships, Enterprises) ->
$scope.EnterpriseRelationships = EnterpriseRelationships
$scope.Enterprises = Enterprises
$scope.permissions = {}
$scope.create = ->
$scope.EnterpriseRelationships.create($scope.parent_id, $scope.child_id)
$scope.EnterpriseRelationships.create($scope.parent_id, $scope.child_id, $scope.permissions)
$scope.delete = (enterprise_relationship) ->
if confirm("Are you sure?")

View File

@@ -0,0 +1,11 @@
angular.module("ofn.admin").controller "AdminEnterpriseRolesCtrl", ($scope, EnterpriseRoles, Users, Enterprises) ->
$scope.EnterpriseRoles = EnterpriseRoles
$scope.Users = Users
$scope.Enterprises = Enterprises
$scope.create = ->
$scope.EnterpriseRoles.create($scope.user_id, $scope.enterprise_id)
$scope.delete = (enterprise_role) ->
if confirm("Are you sure?")
$scope.EnterpriseRoles.delete enterprise_role

View File

@@ -0,0 +1,7 @@
angular.module("ofn.admin").controller "ProvidersCtrl", ($scope, paymentMethod) ->
if paymentMethod.type
$scope.include_html = "/admin/payment_methods/show_provider_preferences?" +
"provider_type=#{paymentMethod.type};" +
"pm_id=#{paymentMethod.id};"
else
$scope.include_html = ""

View File

@@ -0,0 +1,7 @@
angular.module("ofn.admin").directive "providerPrefsFor", ($http) ->
link: (scope, element, attrs) ->
element.on "change blur load", ->
scope.$apply ->
scope.include_html = "/admin/payment_methods/show_provider_preferences?" +
"provider_type=#{element.val()};" +
"pm_id=#{attrs.providerPrefsFor};"

View File

@@ -4,8 +4,8 @@ angular.module("admin.enterprises")
$scope.PaymentMethods = PaymentMethods.paymentMethods
$scope.ShippingMethods = ShippingMethods.shippingMethods
for PaymentMethod in $scope.PaymentMethods
PaymentMethod.selected = if PaymentMethod.id in $scope.Enterprise.payment_method_ids then true else false
for payment_method in $scope.PaymentMethods
payment_method.selected = payment_method.id in $scope.Enterprise.payment_method_ids
$scope.paymentMethodsColor = ->
if $scope.PaymentMethods.length > 0
@@ -14,13 +14,13 @@ angular.module("admin.enterprises")
"red"
$scope.selectedPaymentMethodsCount = ->
$scope.PaymentMethods.reduce (count, PaymentMethod) ->
count++ if PaymentMethod.selected
$scope.PaymentMethods.reduce (count, payment_method) ->
count++ if payment_method.selected
count
, 0
for ShippingMethod in $scope.ShippingMethods
ShippingMethod.selected = if ShippingMethod.id in $scope.Enterprise.shipping_method_ids then true else false
for shipping_method in $scope.ShippingMethods
shipping_method.selected = shipping_method.id in $scope.Enterprise.shipping_method_ids
$scope.shippingMethodsColor = ->
if $scope.ShippingMethods.length > 0
@@ -29,7 +29,7 @@ angular.module("admin.enterprises")
"red"
$scope.selectedShippingMethodsCount = ->
$scope.ShippingMethods.reduce (count, ShippingMethod) ->
count++ if ShippingMethod.selected
$scope.ShippingMethods.reduce (count, shipping_method) ->
count++ if shipping_method.selected
count
, 0

View File

@@ -1 +1 @@
angular.module("admin.enterprises", ["admin.payment_methods", "admin.shipping_methods"])
angular.module("admin.enterprises", ["admin.payment_methods", "admin.shipping_methods", "admin.users"])

View File

@@ -197,12 +197,13 @@ angular.module('order_cycle', ['ngResource'])
this.order_cycle.outgoing_exchanges.push({enterprise_id: new_distributor_id, incoming: false, active: true, variants: {}, enterprise_fees: []})
removeExchange: (exchange) ->
incoming_index = this.order_cycle.incoming_exchanges.indexOf exchange
this.order_cycle.incoming_exchanges.splice(incoming_index, 1) if incoming_index > -1
outgoing_index = this.order_cycle.outgoing_exchanges.indexOf exchange
this.order_cycle.outgoing_exchanges.splice(outgoing_index, 1) if outgoing_index > -1
this.removeDistributionOfVariant(variant_id) for variant_id, active of exchange.variants when active
if exchange.incoming
incoming_index = this.order_cycle.incoming_exchanges.indexOf exchange
this.order_cycle.incoming_exchanges.splice(incoming_index, 1)
this.removeDistributionOfVariant(variant_id) for variant_id, active of exchange.variants when active
else
outgoing_index = this.order_cycle.outgoing_exchanges.indexOf exchange
this.order_cycle.outgoing_exchanges.splice(outgoing_index, 1) if outgoing_index > -1
addCoordinatorFee: ->
this.order_cycle.coordinator_fees.push({})
@@ -330,7 +331,7 @@ angular.module('order_cycle', ['ngResource'])
}])
.factory('Enterprise', ['$resource', ($resource) ->
Enterprise = $resource('/admin/enterprises/:enterprise_id.json', {}, {'index': {method: 'GET', isArray: true}})
Enterprise = $resource('/admin/enterprises/for_order_cycle/:enterprise_id.json', {}, {'index': {method: 'GET', isArray: true}})
{
Enterprise: Enterprise

View File

@@ -1,12 +1,17 @@
angular.module("ofn.admin").factory 'EnterpriseRelationships', ($http, enterprise_relationships) ->
new class EnterpriseRelationships
create_errors: ""
all_permissions: [
'add_to_order_cycle'
'manage_products'
]
constructor: ->
@enterprise_relationships = enterprise_relationships
create: (parent_id, child_id) ->
$http.post('/admin/enterprise_relationships', {enterprise_relationship: {parent_id: parent_id, child_id: child_id}}).success (data, status) =>
create: (parent_id, child_id, permissions) ->
permissions = (name for name, enabled of permissions when enabled)
$http.post('/admin/enterprise_relationships', {enterprise_relationship: {parent_id: parent_id, child_id: child_id, permissions_list: permissions}}).success (data, status) =>
@enterprise_relationships.unshift(data)
@create_errors = ""
@@ -16,3 +21,8 @@ angular.module("ofn.admin").factory 'EnterpriseRelationships', ($http, enterpris
delete: (er) ->
$http.delete('/admin/enterprise_relationships/' + er.id).success (data) =>
@enterprise_relationships.splice @enterprise_relationships.indexOf(er), 1
permission_presentation: (permission) ->
switch permission
when "add_to_order_cycle" then "to add to order cycle"
when "manage_products" then "to manage products"

View File

@@ -0,0 +1,18 @@
angular.module("ofn.admin").factory 'EnterpriseRoles', ($http, enterpriseRoles) ->
new class EnterpriseRoles
create_errors: ""
constructor: ->
@enterprise_roles = enterpriseRoles
create: (user_id, enterprise_id) ->
$http.post('/admin/enterprise_roles', {enterprise_role: {user_id: user_id, enterprise_id: enterprise_id}}).success (data, status) =>
@enterprise_roles.unshift(data)
@create_errors = ""
.error (response, status) =>
@create_errors = response.errors
delete: (er) ->
$http.delete('/admin/enterprise_roles/' + er.id).success (data) =>
@enterprise_roles.splice @enterprise_roles.indexOf(er), 1

View File

@@ -0,0 +1,4 @@
angular.module("ofn.admin").factory 'Users', (users) ->
new class Users
constructor: ->
@users = users

View File

@@ -0,0 +1,18 @@
angular.module("admin.users").directive "ofnUserAutocomplete", ($http) ->
link: (scope,element,attrs) ->
setTimeout ->
element.select2
multiple: false
initSelection: (element, callback) ->
callback { id: element.val(), email: attrs.email }
ajax:
url: Spree.routes.user_search
datatype: 'json'
data:(term, page) ->
{ q: term }
results: (data, page) ->
{ results: data }
formatResult: (user) ->
user.email
formatSelection: (user) ->
user.email

View File

@@ -0,0 +1 @@
angular.module("admin.users", [])

View File

@@ -11,11 +11,12 @@
#= require lodash.underscore.js
#= require angular-scroll.min.js
#= require angular-google-maps.min.js
#= require angular-timer.min.js
#= require ../shared/mm-foundation-tpls-0.2.2.min.js
#= require ../shared/bindonce.min.js
#= require ../shared/ng-infinite-scroll.min.js
#= require ../shared/angular-local-storage.js
#= require angularjs-file-upload
#= require angular-rails-templates
#= require_tree ../templates

View File

@@ -1,4 +1,4 @@
Darkswarm.controller "SignupCtrl", ($scope, $http, $location, AuthenticationService) ->
Darkswarm.controller "SignupCtrl", ($scope, $http, $window, $location, Redirections, AuthenticationService) ->
$scope.path = "/signup"
$scope.errors =
email: null
@@ -6,6 +6,9 @@ Darkswarm.controller "SignupCtrl", ($scope, $http, $location, AuthenticationServ
$scope.submit = ->
$http.post("/user/spree_user", {spree_user: $scope.spree_user}).success (data)->
location.href = location.origin + location.pathname # Strips out hash fragments
if Redirections.after_login
$window.location.href = $window.location.origin + Redirections.after_login
else
$window.location.href = $window.location.origin + $window.location.pathname # Strips out hash fragments
.error (data) ->
$scope.errors = data

View File

@@ -1,7 +1,7 @@
Darkswarm.controller "AuthenticationCtrl", ($scope, AuthenticationService, SpreeUser)->
$scope.open = AuthenticationService.open
$scope.toggle = AuthenticationService.toggle
$scope.spree_user = SpreeUser.spree_user
$scope.active = AuthenticationService.active
$scope.select = AuthenticationService.select

View File

@@ -6,9 +6,9 @@ Darkswarm.controller "CheckoutCtrl", ($scope, storage, Checkout, CurrentUser, Cu
prefix = "order_#{Checkout.order.id}#{CurrentUser?.id}#{CurrentHub.hub.id}"
for field in $scope.fieldsToBind
storage.bind $scope, "Checkout.order.#{field}",
storage.bind $scope, "Checkout.order.#{field}",
storeName: "#{prefix}_#{field}"
storage.bind $scope, "Checkout.ship_address_same_as_billing",
storage.bind $scope, "Checkout.ship_address_same_as_billing",
storeName: "#{prefix}_sameasbilling"
defaultValue: true

View File

@@ -6,7 +6,7 @@ Darkswarm.controller "PaymentCtrl", ($scope, $timeout) ->
{key: "January", value: "1"},
{key: "February", value: "2"},
{key: "March", value: "3"},
{key: "April", value: "4"},
{key: "April", value: "4"},
{key: "May", value: "5"},
{key: "June", value: "6"},
{key: "July", value: "7"},
@@ -20,4 +20,4 @@ Darkswarm.controller "PaymentCtrl", ($scope, $timeout) ->
$scope.years = [moment().year()..(moment().year()+15)]
$scope.secrets.card_month = "1"
$scope.secrets.card_year = moment().year()
$timeout $scope.onTimeout
$timeout $scope.onTimeout

View File

@@ -0,0 +1,13 @@
angular.module('Darkswarm').controller "EnterpriseImageCtrl", ($scope, EnterpriseImageService) ->
$scope.imageStep = 'logo'
$scope.imageSteps = ['logo', 'promo']
$scope.imageUploader = EnterpriseImageService.imageUploader
$scope.imageSelect = (image_step) ->
EnterpriseImageService.imageSrc = null
$scope.imageStep = image_step
$scope.imageSrc = ->
EnterpriseImageService.imageSrc

View File

@@ -1,4 +1,4 @@
Darkswarm.controller "HubsCtrl", ($scope, Hubs, Search, $document, $rootScope, HashNavigation, FilterSelectorsService) ->
Darkswarm.controller "HubsCtrl", ($scope, Hubs, Search, $document, $rootScope, HashNavigation, FilterSelectorsService, MapModal) ->
$scope.Hubs = Hubs
$scope.hubs = Hubs.visible
$scope.totalActive = FilterSelectorsService.totalActive
@@ -6,6 +6,8 @@ Darkswarm.controller "HubsCtrl", ($scope, Hubs, Search, $document, $rootScope, H
$scope.filterText = FilterSelectorsService.filterText
$scope.FilterSelectorsService = FilterSelectorsService
$scope.query = Search.search()
$scope.show_profiles = false
$scope.openModal = MapModal.open
$scope.$watch "query", (query)->
Search.search query

View File

@@ -1,4 +1,4 @@
Darkswarm.controller "ProducersCtrl", ($scope, Producers, $filter, FilterSelectorsService, Search) ->
Darkswarm.controller "ProducersCtrl", ($scope, Producers, $filter, FilterSelectorsService, Search, MapModal) ->
$scope.Producers = Producers
$scope.totalActive = FilterSelectorsService.totalActive
$scope.clearAll = FilterSelectorsService.clearAll
@@ -7,6 +7,8 @@ Darkswarm.controller "ProducersCtrl", ($scope, Producers, $filter, FilterSelecto
$scope.filtersActive = false
$scope.activeTaxons = []
$scope.query = Search.search()
$scope.show_profiles = false
$scope.openModal = MapModal.open
$scope.$watch "query", (query)->
Search.search query

View File

@@ -0,0 +1,11 @@
Darkswarm.controller "RegistrationCtrl", ($scope, RegistrationService, EnterpriseRegistrationService, availableCountries) ->
$scope.currentStep = RegistrationService.currentStep
$scope.enterprise = EnterpriseRegistrationService.enterprise
$scope.select = RegistrationService.select
$scope.steps = ['details','address','contact','about','images','social']
$scope.countries = availableCountries
$scope.countryHasStates = ->
$scope.enterprise.country.states.length > 0

View File

@@ -0,0 +1,15 @@
Darkswarm.controller "RegistrationFormCtrl", ($scope, RegistrationService, EnterpriseRegistrationService) ->
$scope.submitted = false
$scope.valid = (form) ->
$scope.submitted = !form.$valid
form.$valid
$scope.create = (form) ->
EnterpriseRegistrationService.create() if $scope.valid(form)
$scope.update = (nextStep, form) ->
EnterpriseRegistrationService.update(nextStep) if $scope.valid(form)
$scope.selectIfValid = (nextStep, form) ->
RegistrationService.select(nextStep) if $scope.valid(form)

View File

@@ -1,19 +1,19 @@
window.Darkswarm = angular.module("Darkswarm", ["ngResource",
'mm.foundation',
'angularLocalStorage',
'pasvaz.bindonce',
'infinite-scroll',
'angular-flash.service',
window.Darkswarm = angular.module("Darkswarm", ["ngResource",
'mm.foundation',
'angularLocalStorage',
'pasvaz.bindonce',
'infinite-scroll',
'angular-flash.service',
'templates',
'timer',
'ngSanitize',
'ngAnimate',
'google-maps',
'duScroll',
'angularFileUpload',
]).config ($httpProvider, $tooltipProvider, $locationProvider, $anchorScrollProvider) ->
$httpProvider.defaults.headers.post['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content')
$httpProvider.defaults.headers.put['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content')
$httpProvider.defaults.headers['common']['X-Requested-With'] = 'XMLHttpRequest'
$httpProvider.defaults.headers.post['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content')
$httpProvider.defaults.headers.put['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content')
$httpProvider.defaults.headers['common']['X-Requested-With'] = 'XMLHttpRequest'
$httpProvider.defaults.headers.common.Accept = "application/json, text/javascript, */*"
# This allows us to trigger these two events on tooltips
@@ -21,4 +21,3 @@ window.Darkswarm = angular.module("Darkswarm", ["ngResource",
# We manually handle our scrolling
$anchorScrollProvider.disableAutoScrolling()

View File

@@ -0,0 +1,6 @@
Darkswarm.directive "ofnInlineFlash", ->
restrict: 'E'
controller: ($scope) ->
$scope.visible = true
$scope.closeFlash = ->
$scope.visible = false

View File

@@ -0,0 +1,13 @@
Darkswarm.directive "ofnRegistrationLimitModal", (Navigation, $modal, Loading) ->
restrict: 'A'
link: (scope, elem, attr)->
scope.modalInstance = $modal.open
templateUrl: 'registration/limit_reached.html'
windowClass: "login-modal large"
backdrop: 'static'
scope.modalInstance.result.then scope.close, scope.close
scope.close = ->
Loading.message = "Taking you back to the home page"
Navigation.go "/"

View File

@@ -0,0 +1,16 @@
# Convert number to string currency using injected currency configuration.
#
# @requires currencyConfig json - /app/serializers/api/currency_config_serializer.rb
# @return: string
Darkswarm.filter "localizeCurrency", (currencyConfig)->
(amount) ->
currency_code = if currencyConfig.display_currency then " " + currencyConfig.currency else ""
decimals = if currencyConfig.hide_cents == "true" then 0 else 2
# We need to use parseFloat before toFixed as the amount should be a passed in as a string.
amount_fixed = parseFloat(amount).toFixed(decimals)
# Build the final price string.
if currencyConfig.symbol_position == 'before'
currencyConfig.symbol + amount_fixed + currency_code
else
amount_fixed + " " + currencyConfig.symbol + currency_code

View File

@@ -0,0 +1,7 @@
Darkswarm.filter 'showProfiles', ()->
(enterprises, show_profiles) ->
enterprises ||= []
show_profiles ?= true
enterprises.filter (enterprise)=>
show_profiles or enterprise.has_shopfront

View File

@@ -1,7 +1,7 @@
window.FieldsetMixin = ($scope)->
$scope.next = (event = false)->
event.preventDefault() if event
$scope.show $scope.nextPanel
$scope.show $scope.nextPanel
$scope.onTimeout = ->
if $scope[$scope.name].$valid
@@ -36,7 +36,6 @@ window.FieldsetMixin = ($scope)->
when "number" then "must be number"
when "email" then "must be email address"
#server_errors = $scope.Order.errors[path.replace('order.', '')]
#errors.push server_errors if server_errors?
(errors.filter (error) -> error?).join ", "
#server_errors = $scope.Order.errors[path.replace('order.', '')]
#errors.push server_errors if server_errors?
(errors.filter (error) -> error?).join ", "

View File

@@ -4,12 +4,14 @@ Darkswarm.factory "AuthenticationService", (Navigation, $modal, $location, Redir
selectedPath: "/login"
constructor: ->
if $location.path() in ["/login", "/signup", "/forgot"]
@open()
if $location.path() in ["/login", "/signup", "/forgot"] && location.pathname isnt '/register/auth'
@open $location.path()
else if location.pathname is '/register/auth'
@open '/signup', 'registration_authentication.html'
open: (path = false)=>
open: (path = false, template = 'authentication.html') =>
@modalInstance = $modal.open
templateUrl: 'authentication.html'
templateUrl: template
windowClass: "login-modal medium"
@modalInstance.result.then @close, @close
@selectedPath = path || @selectedPath

View File

@@ -3,7 +3,7 @@ Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http)->
new class Cart
dirty: false
order: CurrentOrder.order
line_items: CurrentOrder.order?.line_items || []
line_items: CurrentOrder.order?.line_items || []
constructor: ->
for line_item in @line_items
line_item.variant.line_item = line_item
@@ -22,13 +22,13 @@ Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http)->
# TODO what shall we do here?
data: =>
variants = {}
variants = {}
for li in @line_items_present()
variants[li.variant.id] =
variants[li.variant.id] =
quantity: li.quantity
max_quantity: li.max_quantity
{variants: variants}
saved: =>
@dirty = false
@@ -48,15 +48,15 @@ Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http)->
total: =>
@line_items_present().map (li)->
li.variant.getPrice()
li.variant.totalPrice()
.reduce (t, price)->
t + price
, 0
register_variant: (variant)=>
exists = @line_items.some (li)-> li.variant == variant
@create_line_item(variant) unless exists
@create_line_item(variant) unless exists
create_line_item: (variant)->
variant.line_item =
variant: variant

View File

@@ -13,7 +13,7 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h
Loading.clear()
@errors = response.errors
RailsFlashLoader.loadFlash(response.flash)
# Rails wants our Spree::Address data to be provided with _attributes
preprocess: ->
munged_order = {}
@@ -25,13 +25,17 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h
munged_order["ship_address_attributes"] = value
when "payment_method_id"
munged_order["payments_attributes"] = [{payment_method_id: value}]
when "shipping_method_id", "payment_method_id", "email"
when "shipping_method_id", "payment_method_id", "email", "special_instructions"
munged_order[name] = value
else
# Ignore everything else
if @ship_address_same_as_billing
munged_order.ship_address_attributes = munged_order.bill_address_attributes
# If the order already has a ship and bill address (as with logged in users with
# past orders), and we don't remove id here, then this will set the wrong id for
# ship address, and Rails will error with a 404 for that address.
delete munged_order.ship_address_attributes.id
if @paymentMethod()?.method_type == 'gateway'
angular.extend munged_order.payments_attributes[0], {
@@ -54,7 +58,7 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h
shippingPrice: ->
@shippingMethod()?.price || 0.0
paymentMethod: ->
PaymentMethods.payment_methods_by_id[@order.payment_method_id]

View File

@@ -0,0 +1,12 @@
Darkswarm.factory "EnterpriseImageService", (FileUploader, spreeApiKey) ->
new class EnterpriseImageService
imageSrc: null
imageUploader: new FileUploader
headers:
'X-Spree-Token': spreeApiKey
autoUpload: true
configure: (enterprise) =>
@imageUploader.url = "/api/enterprises/#{enterprise.id}/update_image"
@imageUploader.onSuccessItem = (image, response) => @imageSrc = response

View File

@@ -0,0 +1,58 @@
Darkswarm.factory "EnterpriseRegistrationService", ($http, RegistrationService, EnterpriseImageService, CurrentUser, spreeApiKey, Loading, availableCountries, enterpriseAttributes) ->
new class EnterpriseRegistrationService
enterprise:
user_ids: [CurrentUser.id]
email: CurrentUser.email
address: {}
country: availableCountries[0]
constructor: ->
for key, value of enterpriseAttributes
@enterprise[key] = value
create: =>
Loading.message = "Creating " + @enterprise.name
$http(
method: "POST"
url: "/api/enterprises"
data:
enterprise: @prepare()
params:
token: spreeApiKey
).success((data) =>
Loading.clear()
@enterprise.id = data
EnterpriseImageService.configure(@enterprise)
RegistrationService.select('about')
).error((data) =>
Loading.clear()
alert('Failed to create your enterprise.\nPlease ensure all fields are completely filled out.')
)
# RegistrationService.select('about')
update: (step) =>
Loading.message = "Updating " + @enterprise.name
$http(
method: "PUT"
url: "/api/enterprises/#{@enterprise.id}"
data:
enterprise: @prepare()
params:
token: spreeApiKey
).success((data) ->
Loading.clear()
RegistrationService.select(step)
).error((data) ->
Loading.clear()
alert('Failed to update your enterprise.\nPlease ensure all fields are completely filled out.')
)
# RegistrationService.select(step)
prepare: =>
enterprise = {}
excluded = [ 'address', 'country', 'id' ]
for key, value of @enterprise when key not in excluded
enterprise[key] = value
enterprise.address_attributes = @enterprise.address if @enterprise.address?
enterprise.address_attributes.country_id = @enterprise.country.id if @enterprise.country?
enterprise

View File

@@ -2,7 +2,7 @@ Darkswarm.factory 'Hubs', ($filter, Enterprises, visibleFilter) ->
new class Hubs
constructor: ->
@hubs = @order Enterprises.enterprises.filter (hub)->
hub.is_distributor
hub.has_hub_listing
@visible = visibleFilter @hubs
order: (hubs)->

View File

@@ -48,3 +48,4 @@ Darkswarm.factory 'Products', ($resource, Enterprises, Dereferencer, Taxons, Car
product.primaryImage = product.images[0]?.small_url if product.images
product.primaryImageOrMissing = product.primaryImage || "/assets/noimage/small.png"
product.largeImage = product.images[0]?.large_url if product.images

View File

@@ -0,0 +1,23 @@
angular.module('Darkswarm').factory "RegistrationService", (Navigation, $modal, Loading)->
new class RegistrationService
constructor: ->
@open()
open: =>
@modalInstance = $modal.open
templateUrl: 'registration.html'
windowClass: "login-modal large"
backdrop: 'static'
@modalInstance.result.then @close, @close
@select 'introduction'
select: (step)=>
@current_step = step
currentStep: =>
@current_step
close: ->
Loading.message = "Taking you back to the home page"
Navigation.go "/"

View File

@@ -5,7 +5,7 @@ Darkswarm.factory 'Variants', ->
@variants[variant.id] ||= @extend variant
extend: (variant)->
variant.getPrice = ->
variant.price * variant.line_item.quantity
variant.basePricePercentage = Math.round(variant.base_price / variant.price * 100)
variant.totalPrice = ->
variant.price_with_fees * variant.line_item.quantity
variant.basePricePercentage = Math.round(variant.price / variant.price_with_fees * 100)
variant

View File

@@ -1,2 +1,2 @@
%a.close-reveal-modal.outside{"ng-click" => "$close()"}
%a.close-reveal-modal{"ng-click" => "$close()"}
%i.ofn-i_009-close

View File

@@ -1,4 +1,4 @@
%div{bindonce: true}
%div.contact-container{bindonce: true}
%div.modal-centered{"bo-if" => "enterprise.email || enterprise.website || enterprise.phone"}
%p.modal-header Contact
%p{"ng-if" => "enterprise.phone"}

View File

@@ -1,12 +1,13 @@
.highlight
.highlight-top
%p.right
{{ [enterprise.address.city, enterprise.address.state_name] | printArray}}
%h3{"ng-if" => "enterprise.is_distributor"}
%a{"bo-href" => "enterprise.path", "ofn-empties-cart" => "enterprise", bindonce: true}
%i.ofn-i_040-hub
{{ enterprise.name }}
%h3{"ng-if" => "!enterprise.is_distributor"}
%i.ofn-i_036-producers
{{ enterprise.name }}
%img.hero-img{"ng-src" => "{{enterprise.promo_image}}"}
.highlight{"ng-class" => "{'has_shopfront' : enterprise.has_shopfront}"}
.highlight-top.row
.small-12.medium-7.large-8.columns
%h3{"ng-if" => "enterprise.has_shopfront"}
%a{"bo-href" => "enterprise.path", "ofn-empties-cart" => "enterprise", bindonce: true}
%i{"ng-class" => "enterprise.icon_font"}
%span {{ enterprise.name }}
%h3{"ng-if" => "!enterprise.has_shopfront", "ng-class" => "{'is_producer' : enterprise.is_primary_producer}"}
%i{"ng-class" => "enterprise.icon_font"}
%span {{ enterprise.name }}
.small-12.medium-5.large-4.columns.text-right.small-only-text-left
%p {{ [enterprise.address.city, enterprise.address.state_name] | printArray}}
%img.hero-img{"ng-src" => "{{enterprise.promo_image}}"}

View File

@@ -1,16 +1,16 @@
.row.pad-top{bindonce: true, "ng-if" => "enterprise.hubs.length > 0"}
.row.pad-top{bindonce: true, "ng-if" => "enterprise.hubs.length > 0 && enterprise.has_shopfront"}
.cta-container.small-12.columns
%label
Shop for
%strong {{enterprise.name}}
products at:
%a.button.hub{"ng-repeat" => "hub in enterprise.hubs",
%a.cta-hub{"ng-repeat" => "hub in enterprise.hubs",
"bo-href" => "hub.path",
"bo-class" => "{primary: hub.active, secondary: !hub.active}",
"ofn-empties-cart" => "hub"}
%i.ofn-i_033-open-sign{"bo-if" => "hub.active"}
%i.ofn-i_032-closed-sign{"bo-if" => "!hub.active"}
{{hub.name}}
.hub-name {{hub.name}}
.button-address {{ hub.address.city }} , {{hub.address.state_name}}
%i.ofn-i_007-caret-right
/ %i.ofn-i_007-caret-right

View File

@@ -1,8 +1,8 @@
.row.pad-top{bindonce: true}
.row.pad-top{bindonce: true, ng: { if: 'enterprise.has_shopfront' } }
.cta-container.small-12.columns
.row
.small-4.columns
%label{"active-table-hub-link" => "enterprise", change: "Change hub to:", shop: "Shop now at:"}
%label{"active-table-hub-link" => "enterprise", change: "Change shop to:", shop: "Shop now at:"}
.small-8.columns.right
%label.right{"bo-if" => "enterprise.pickup || enterprise.delivery"}
Delivery options:
@@ -14,11 +14,11 @@
Delivery
.row
.columns.small-12
%a.button.hub.expand{"bo-href" => "enterprise.path",
%a.cta-hub{"bo-href" => "enterprise.path",
"ng-class" => "{primary: enterprise.active, secondary: !enterprise.active}",
"ofn-empties-cart" => "enterprise"}
%i.ofn-i_033-open-sign{"bo-if" => "enterprise.active"}
%i.ofn-i_032-closed-sign{"bo-if" => "!enterprise.active"}
{{enterprise.name}}
.hub-name {{enterprise.name}}
.button-address {{ enterprise.address.city }} , {{enterprise.address.state_name}}
%i.ofn-i_007-caret-right
/ %i.ofn-i_007-caret-right

View File

@@ -10,23 +10,26 @@
.expanded{"ng-show" => "expanded"}
%ul
%li.cost
.right {{ variant.base_price | currency }}
.right {{ variant.price | localizeCurrency }}
Item cost
%li{"bo-if" => "variant.fees.admin"}
.right {{ variant.fees.admin | currency }}
.right {{ variant.fees.admin | localizeCurrency }}
Admin fee
%li{"bo-if" => "variant.fees.sales"}
.right {{ variant.fees.sales | currency }}
.right {{ variant.fees.sales | localizeCurrency }}
Sales fee
%li{"bo-if" => "variant.fees.packing"}
.right {{ variant.fees.packing | currency }}
.right {{ variant.fees.packing | localizeCurrency }}
Packing fee
%li{"bo-if" => "variant.fees.transport"}
.right {{ variant.fees.transport | currency }}
.right {{ variant.fees.transport | localizeCurrency }}
Transport fee
%li{"bo-if" => "variant.fees.fundraising"}
.right {{ variant.fees.fundraising | localizeCurrency }}
Fundraising fee
%li
%strong
.right = {{ variant.price | currency }}
.right = {{ variant.price_with_fees | localizeCurrency }}
&nbsp;
%a{"ng-click" => "expanded = !expanded"}

View File

@@ -1,2 +1,2 @@
%button.graph-button{"ng-class" => "{open: tt_isOpen}"}
%i.ofn-i-058-graph
%i.ofn-i_058-graph

View File

@@ -1,6 +1,6 @@
.row
.columns.small-12.large-6
%img.product-img{"ng-src" => "{{product.primaryImage}}", "ng-if" => "product.primaryImage"}
%img.product-img{"ng-src" => "{{product.largeImage}}", "ng-if" => "product.largeImage"}
.columns.small-12.large-6.product-header
%h2
/ %render-svg{path: "{{product.primary_taxon.icon}}"}

View File

@@ -0,0 +1,10 @@
%div#registration-modal{"ng-controller" => "RegistrationCtrl"}
%div{ ng: { show: "currentStep() == 'introduction'" } }
%ng-include{ src: "'registration/introduction.html'" }
%div{ ng: { repeat: 'step in steps', show: "currentStep() == step" } }
%ng-include{ src: "'registration/'+ step + '.html'" }
%div{ ng: { show: "currentStep() == 'finished'" } }
%ng-include{ src: "'registration/finished.html'" }
%a.close-reveal-modal{"ng-click" => "$close()"}
%i.ofn-i_009-close

View File

@@ -0,0 +1,44 @@
.container#registration-about
.header
%h2 Nice one!
%h5
Now let's flesh out the details about
%span.brick{"ng-show" => "enterprise.is_distributor"}
{{ enterprise.name }}
%span.turquoise{"ng-show" => "!enterprise.is_distributor" }
{{ enterprise.name }}
%ng-include{ src: "'registration/steps.html'" }
%form{ name: 'about', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "update('images',about)" } }
.row
.small-12.columns
.alert-box.alert{"data-alert" => ""}
{{ enterprise.name }} won't be visible on the Open Food Network until you enter a long and short description.
%a.close{:href => "#"} &times;
.alert-box.info{"data-alert" => ""}
{{ enterprise.name }} has been created on the Open Food Network. If you leave at any point from here onwards, your enterprise will be saved, and you can always login to the admin section to update or continue filling out your enterprise details.
%a.close{:href => "#"} &times;
.small-12.large-8.columns
.row
.small-12.columns
%label{ for: 'enterprise_description' } Short Description:
%input.chunky.small-12.columns{ id: 'enterprise_description', placeholder: "A short sentence describing your enterprise", ng: { model: 'enterprise.description' } }
.row
.small-12.columns
%label{ for: 'enterprise_long_desc' } Long Description:
%textarea.chunky.small-12.columns{ id: 'enterprise_long_desc', rows: 6, placeholder: "This is your opportunity to tell the story of your enterprise - what makes you different and wonderful? We'd suggest keeping your description to under 600 characters or 150 words.", ng: { model: 'enterprise.long_description' } }
%small {{ enterprise.long_description.length }} characters / up to 600 recommended
.small-12.large-4.columns
.row
.small-12.columns
%label{ for: 'enterprise_abn' } ABN:
%input.chunky.small-12.columns{ id: 'enterprise_abn', placeholder: "eg. 99 123 456 789", ng: { model: 'enterprise.abn' } }
.row
.small-12.columns
%label{ for: 'enterprise_acn' } ACN:
%input.chunky.small-12.columns{ id: 'enterprise_acn', placeholder: "eg. 123 456 789", ng: { model: 'enterprise.acn' } }
.row.buttons.pad-top
.small-12.columns
%input.button.primary{ type: "submit", value: "Continue" }

View File

@@ -0,0 +1,60 @@
.container#registration-address
.header
%h2
Greetings
%span{ ng: { class: "{brick: enterprise.is_distributor, turquoise: !enterprise.is_distributor}" } }
{{ enterprise.name }}
%h5 Now we need to know where you are
%ng-include{ src: "'registration/steps.html'" }
%form{ name: 'address', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "selectIfValid('contact',address)" } }
.row.content
.small-12.medium-12.large-7.columns
.row
.small-12.columns.field
%label{ for: 'enterprise_address' } Address:
%input.chunky.small-12.columns{ id: 'enterprise_address', name: 'address1', required: true, placeholder: "eg. 123 Cranberry Drive", required: true, ng: { model: 'enterprise.address.address1' } }
%span.error.small-12.columns{ ng: { show: "address.address1.$error.required && submitted" } }
You need to enter an address.
.row
.small-12.large-8.columns.field
%label{ for: 'enterprise_city' } Suburb:
%input.chunky.small-12.columns{ id: 'enterprise_city', name: 'city', required: true, placeholder: "eg. Northcote", ng: { model: 'enterprise.address.city' } }
%span.error.small-12.columns{ ng: { show: "address.city.$error.required && submitted" } }
You need to enter a suburb.
.small-12.large-4.columns.field
%label{ for: 'enterprise_zipcode' } Postcode:
%input.chunky.small-12.columns{ id: 'enterprise_zipcode', name: 'zipcode', required: true, placeholder: "eg. 3070", ng: { model: 'enterprise.address.zipcode' } }
%span.error.small-12.columns{ ng: { show: "address.zipcode.$error.required && submitted" } }
You need to enter a postcode.
.row
.small-12.large-8.columns.field
%label{ for: 'enterprise_country' } Country:
%select.chunky.small-12.columns{ id: 'enterprise_country', name: 'country', required: true, ng: { model: 'enterprise.country', options: 'c as c.name for c in countries' } }
%span.error.small-12.columns{ ng: { show: "address.country.$error.required && submitted" } }
You need to enter a country.
.small-12.large-4.columns.field
%label{ for: 'enterprise_state' } State:
%select.chunky.small-12.columns{ id: 'enterprise_state', name: 'state', ng: { model: 'enterprise.address.state_id', options: 's.id as s.abbr for s in enterprise.country.states', show: 'countryHasStates()', required: 'countryHasStates()' } }
%span.error.small-12.columns{ ng: { show: "address.state.$error.required && submitted" } }
You need to enter a state.
.small-12.medium-12.large-5.hide-for-small-only
// This is the location area
/ %h6
/ Location display
/ %i.ofn-i_013-help.has-tip{ 'data-tooltip' => true, title: "Choose how you want to display your enterprise's address on the Open Food Network. By default, full location is shown everywhere including street name and number."}
/ .row
/ .small-12.columns
/ %label.indent-checkbox
/ %input{ type: 'checkbox', id: 'enterpise_suburb_only', ng: { model: 'enterprise.suburb_only' } }
/ Hide my street name and street number from the public (ie. only show the suburb)
/ .small-12.columns
/ %label.indent-checkbox
/ %input{ type: 'checkbox', id: 'enterprise_on_map', ng: { model: 'enterprise.on_map' } }
/ Blur my location on the map (show an approximate, not exact pin)
.row.buttons
.small-12.columns
%input.button.secondary{ type: "button", value: "Back", ng: { click: "select('details')" } }
&nbsp;
%input.button.primary{ type: "submit", value: "Continue" }

View File

@@ -0,0 +1,46 @@
.container#registration-contact
.header
%h2 Last step to create your enterprise!
%h5
Who is responsible for managing
%span{ ng: { class: "{brick: enterprise.is_distributor, turquoise: !enterprise.is_distributor}" } }
{{ enterprise.name }}?
%ng-include{ src: "'registration/steps.html'" }
%form{ name: 'contact', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "create(contact)" } }
.row.content
.small-12.medium-12.large-7.columns
.row
.small-12.columns.field
%label{ for: 'enterprise_contact' } Primary Contact:
%input.chunky.small-12.columns{ id: 'enterprise_contact', name: 'contact', required: true, placeholder: "Contact Name", ng: { model: 'enterprise.contact' } }
%span.error.small-12.columns{ ng: { show: "contact.contact.$error.required && submitted" } }
You need to enter a primary contact.
.row
.small-12.columns.field
%label{ for: 'enterprise_email' } Email address:
%input.chunky.small-12.columns{ id: 'enterprise_email', name: 'email', type: 'email', required: true, placeholder: "eg. charlie@thefarm.com", ng: { model: 'enterprise.email' } }
%span.error.small-12.columns{ ng: { show: "(contact.email.$error.email || contact.email.$error.required) && submitted" } }
You need to enter valid email address.
.row
.small-12.columns.field
%label{ for: 'enterprise_phone' } Phone number:
%input.chunky.small-12.columns{ id: 'enterprise_phone', name: 'phone', placeholder: "eg. (03) 1234 5678", ng: { model: 'enterprise.phone' } }
.small-12.medium-12.large-5.hide-for-small-only
/ %h6
/ Contact display
/ %i.ofn-i_013-help.has-tip{ 'data-tooltip' => true, title: "Choose how you want to display your contact details on the Open Food Network."}
/ .row
/ .small-12.columns
/ %label.indent-checkbox
/ %input{ type: 'checkbox', id: 'contact_name_profile', ng: { model: 'enterprise.name_in_profile' } } &nbsp; Display name in profile
/ .small-12.columns
/ %label.indent-checkbox
/ %input{ type: 'checkbox', id: 'contact_email_profile', ng: { model: 'enterprise.email_in_profile' } } &nbsp; Display email in profile
/ .small-12.columns
/ %label.indent-checkbox
/ %input{ type: 'checkbox', id: 'contact_phone_profile', ng: { model: 'enterprise.phone_in_profile' } } &nbsp; Display phone in profile
.row.buttons
.small-12.columns
%input.button.secondary{ type: "button", value: "Back", ng: { click: "select('address')" } }
&nbsp;
%input.button.primary{ type: "submit", value: "Continue" }

View File

@@ -0,0 +1,42 @@
.container#registration-details{bindonce: true}
.header
%h2 Let's Get Started
%h5{ bo: { if: "enterprise.type != 'single'" } } Woot! First we need to know what sort of enterprise you are:
%h5{ bo: { if: "enterprise.type == 'single'" } } Woot! First we need to know the name of your farm:
%ng-include{ src: "'registration/steps.html'" }
%form{ name: 'details', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "selectIfValid('address',details)" } }
.row
.small-12.columns.field
%label{ for: 'enterprise_name', bo: { if: "enterprise.type != 'single'" } } Enterprise Name:
%label{ for: 'enterprise_name', bo: { if: "enterprise.type == 'single'" } } Farm Name:
%input.chunky.small-12.columns{ id: 'enterprise_name', name: 'name', placeholder: "eg. Charlie's Awesome Farm", required: true, ng: { model: 'enterprise.name' } }
%span.error.small-12.columns{ ng: { show: "details.name.$error.required && submitted" } }
You need to enter a name for your enterprise!
.row#enterprise-types{ 'data-equalizer' => true, bo: { if: "enterprise.type != 'single'" } }
.small-12.columns.field
.row
.small-12.columns
%label Choose one:
.row
.small-12.medium-4.large-4.columns{ 'data-equalizer-watch' => true }
%a.panel#producer-panel{ href: "#", ng: { click: "enterprise.is_distributor = false; enterprise.is_primary_producer = true", class: "{selected: (!enterprise.is_distributor && enterprise.is_primary_producer)}" } }
.left
/ %render-svg{ path: "/assets/map-icon-producer.svg" }
%h4 I'm A Producer
%p Producers make yummy things to eat &amp;/or drink. You're a producer if you grow it, raise it, brew it, bake it, ferment it, milk it or mould it.
.small-12.medium-4.large-4.columns{ 'data-equalizer-watch' => true }
%a.panel#hub-panel{ href: "#", ng: { click: "enterprise.is_distributor = true; enterprise.is_primary_producer = false", class: "{selected: (enterprise.is_distributor && !enterprise.is_primary_producer)}" } }
.left
/ %render-svg{ path: "/assets/map-icon-hub.svg" }
%h4 I'm A Hub
%p Hubs connect the producer to the eater. Hubs can be co-ops, independent retailers, buying groups, wholesalers, CSA box schemes, farm-gate stalls, etc.
.small-12.medium-4.large-4.columns{ 'data-equalizer-watch' => true }
%a.panel#both-panel{ href: "#", ng: { click: "enterprise.is_distributor = true; enterprise.is_primary_producer = true", class: "{selected: (enterprise.is_distributor && enterprise.is_primary_producer)}" } }
.left
/ %render-svg{path: "/assets/map-icon-both.svg"}
%h4 I'm Both
%p Hey there, Jack-of-all-trades! Not only do you produce things to eat &amp;/or drink, you also want to sell your yummies through an Open Food Network shopfront.
.row.buttons
.small-12.columns
%input.button.primary.right{ type: "submit", value: "Continue" }

View File

@@ -0,0 +1,18 @@
.container#registration-finished
.header
%h2 Well done!
%h5
You have successfully completed the profile for
%span.brick{"ng-show" => "enterprise.is_distributor"}
{{ enterprise.name }}
%span.turquoise{"ng-show" => "!enterprise.is_distributor" }
{{ enterprise.name }}
.content{ style: 'text-align: center'}
%h3 Why not check it out on the Open Food Network?
%a.button.primary{ type: "button", href: "/map" } Go to Map Page &gt;
%br
%br
%h3 Next step - add some products:
%a.button.primary{ type: "button", href: "/admin/products/new" } Add a Product &gt;

View File

@@ -0,0 +1,20 @@
.container#registration-images{ 'nv-file-drop' => true, uploader: "imageUploader", options:"{ alias: imageStep }", ng: { controller: "EnterpriseImageCtrl" } }
.header
%h2 Thanks!
%h5 Let's upload some pretty pictures so your profile looks great! :)
%ng-include{ src: "'registration/steps.html'" }
%form{ name: 'images', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "select('social')" } }
.row{ ng: { repeat: 'image_step in imageSteps', show: "imageStep == image_step" } }
%ng-include{ src: "'registration/images/'+ image_step + '.html'" }
.row.buttons.pad-top{ ng: { if: "imageStep == 'logo'" } }
.small-12.columns
%input.button.primary{ type: "button", value: "Back", ng: { click: "select('about')" } }
&nbsp;
%input.button.primary{ type: "button", value: "Continue", ng: { click: "imageSelect('promo')" } }
.row.buttons.pad-top{ ng: { if: "imageStep == 'promo'" } }
.small-12.columns
%input.button.primary{ type: "button", value: "Back", ng: { click: "imageSelect('logo')" } }
&nbsp;
%input.button.primary{ type: "submit", value: "Continue" }

View File

@@ -0,0 +1,41 @@
.small-12.medium-12.large-6.columns
.row
.small-12.columns.center
.row
.small-12.columns.center
%h4
Step 1. Select Logo Image
.row
.small-12.columns.center
%span.small
Tip: Square images will work best, preferably at least 300&times;300px
.row.pad-top
.small-12.columns
.image-select.small-12.columns
%label.small-12.columns.button{ for: 'image-select' } Choose a logo image
%input#image-select{ type: 'file', hidden: true, 'nv-file-select' => true, uploader: "imageUploader", options: '{ alias: imageStep }' }
.row.show-for-large-up
.large-12.columns
%span#or.large-12.columns
OR
.row.show-for-large-up
.large-12.columns
#image-over{ 'nv-file-over' => true, uploader: "imageUploader" }
Drag and drop your logo here
.small-12.medium-12.large-6.columns
.row
.small-12.columns.center
.row
.small-12.columns.center
%h4
Step 2. Review Your Logo
.row
.small-12.columns.center
%span.small
Tip: for best results, your logo should fill the available space
.row.pad-top
.small-12.columns.center
#image-placeholder.logo
%img{ ng: { show: "imageSrc()", src: '{{ imageSrc() }}' } }
.message{ ng: { hide: "imageSrc()" } }
Your logo will appear here for review once uploaded

View File

@@ -0,0 +1,39 @@
.small-12.medium-12.large-12.columns
.row
.small-12.columns.center
%h4
Step 3. Select Promo Image
.row
.small-12.medium-12.large-5.columns.center
.row
.small-12.columns.center
%span.small
Tip: Shown as a banner, preferred size is 1200&times;260px
.row.pad-top
.small-12.columns
.image-select.small-12.columns
%label.small-12.columns.button{ for: 'image-select' } Choose a promo image
%input#image-select{ type: 'file', hidden: true, 'nv-file-select' => true, uploader: "imageUploader", options: '{ alias: imageStep }' }
.large-2.columns
%span#or.horizontal.large-12.columns
OR
.large-5.columns
#image-over{ 'nv-file-over' => true, uploader: "imageUploader" }
Drag and drop your promo here
.small-12.medium-12.large-12.columns.pad-top
.row
.small-12.columns.center
%h4
Step 4. Review Your Promo Banner
.row
.small-12.columns.center
.row
.small-12.columns.center
%span.small
Tip: for best results, your promo image should fill the available space
.row.pad-top
.small-12.columns.center
#image-placeholder.promo
%img{ ng: { show: "imageSrc()", src: '{{ imageSrc() }}' } }
.message{ ng: { hide: "imageSrc()" } }
Your logo will appear here for review once uploaded

View File

@@ -0,0 +1,39 @@
%div
.header
%h2 Hi there!
%h4 This wizard will step you through creating a profile
.row
.small-12.medium-3.large-2.columns.text-right.hide-for-small-only
%img{:src => "/assets/potatoes.png"}
.small-12.medium-9.large-10.columns
%p
Your profile gives you an online presence on the
%strong Open Food Network,
allowing you to easily connect with potential customers or partners. You can always choose to update your info later, as well as choose to upgrade your Profile to and Online Store, where you can sell products, track orders and receive payments. Creating a profile takes about 5-10 minutes.
.row{ 'data-equalizer' => true }
.small-12.medium-6.large-6.columns.pad-top{ 'data-equalizer-watch' => true }
%h5 You'll need the following:
%ul.check-list
%li
Your enterprise address and contact details
%li
Your logo image
%li
A pretty picture for your profile header
%li
Some 'About Us' text
.small-12.medium-6.large-6.columns{ 'data-equalizer-watch' => true}
.highlight-box
%h5 Your profile entitles you to:
%ul.small-block-grid-1
%li
%i.ofn-i_020-search
A searchable listing
%li
%i.ofn-i_040-hub
A pin on the OFN map
.row
.small-12.columns
%hr
%input.button.primary{ type: "button", value: "Let's get started!", ng: { click: "select('details')" } }

View File

@@ -0,0 +1,15 @@
%div
.header.center
%h2 Oh no!
%h4 You have reached the limit!
.row
.small-12.medium-3.large-2.columns.text-right.hide-for-small-only
%img{:src => "/assets/potatoes.png"}
.small-12.medium-9.large-10.columns
%p
You have reached the limit for the number of enterprises you are allowed to own on the
%strong Open Food Network.
.row
.small-12.columns
%hr
%input.button.primary{ type: "button", value: "Return to the homepage", ng: { click: "close()" } }

View File

@@ -0,0 +1,35 @@
.container#registration-social
.header
%h2 Last step!
%h5 How can people find {{ enterprise.name }} online?
%ng-include{ src: "'registration/steps.html'" }
%form{ name: 'social', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "update('finished',social)" } }
.row.content
.small-12.large-7.columns
.row
.small-12.columns
%label{ for: 'enterprise_website' } Website:
%input.chunky.small-12.columns{ id: 'enterprise_website', placeholder: "eg. openfoodnetwork.org.au", ng: { model: 'enterprise.website' } }
.row
.small-12.columns
%label{ for: 'enterprise_facebook' } Facebook:
%input.chunky.small-12.columns{ id: 'enterprise_facebook', placeholder: "eg. www.facebook.com/PageNameHere", ng: { model: 'enterprise.facebook' } }
.row
.small-12.columns
%label{ for: 'enterprise_linkedin' } LinkedIn:
%input.chunky.small-12.columns{ id: 'enterprise_linkedin', placeholder: "eg. www.linkedin.com/YourNameHere", ng: { model: 'enterprise.linkedin' } }
.small-12.large-5.columns
.row
.small-12.columns
%label{ for: 'enterprise_twitter' } Twitter:
%input.chunky.small-12.columns{ id: 'enterprise_twitter', placeholder: "eg. @twitter_handle", ng: { model: 'enterprise.twitter' } }
.row
.small-12.columns
%label{ for: 'enterprise_instagram' } Instagram:
%input.chunky.small-12.columns{ id: 'enterprise_instagram', placeholder: "eg. @instagram_handle", ng: { model: 'enterprise.instagram' } }
.row.buttons
.small-12.columns
%input.button.secondary{ type: "button", value: "Back", ng: { click: "select('images')" } }
&nbsp;
%input.button.primary{ type: "submit", value: "Continue" }

View File

@@ -0,0 +1,5 @@
.row#progress-bar
.small-12.medium-2.columns.item{ ng: { repeat: 'step in steps', class: "{active: (currentStep() == step),'show-for-medium-up': (currentStep() != step)}" } }
{{ $index+1 + ". " + step }}

View File

@@ -0,0 +1,17 @@
.container
.row.modal-centered
%h2 Welcome to the Open Food Network!
%h5 Start By Signing Up (or logging in):
%div{"ng-controller" => "AuthenticationCtrl"}
%tabset
%ng-include{src: "'signup.html'"}
%ng-include{src: "'login.html'"}
%ng-include{src: "'forgot.html'"}
%div{ ng: { show: "active('/signup')"} }
%hr
Already have an account?
%a{ href: "", ng: { click: "select('/login')"}}
Log in now.
%a.close-reveal-modal{"ng-click" => "$close()"}
%i.ofn-i_009-close

View File

@@ -48,7 +48,7 @@
.small-4.medium-2.large-2.columns.variant-price
.table-cell.price
%i.ofn-i_009-close
{{ variant.price | currency }}
{{ variant.price_with_fees | localizeCurrency }}
-# Now in a template in app/assets/javascripts/templates !
%price-breakdown{"price-breakdown" => "_", variant: "variant",
@@ -59,4 +59,4 @@
.small-12.medium-2.large-2.columns.total-price.text-right
.table-cell
%strong
{{ variant.getPrice() | currency }}
{{ variant.totalPrice() | localizeCurrency }}

View File

@@ -1,12 +1,12 @@
%tab#sign-up-content{"ng-controller" => "SignupCtrl",
heading: "Sign up",
%tab#sign-up-content{"ng-controller" => "SignupCtrl",
heading: "Sign up",
active: "active(path)",
select: "select(path)"}
%form{"ng-submit" => "submit()"}
.row
.large-12.columns
%label{for: "email"} Your email
%input.title.input-text{name: "email",
%input.title.input-text{name: "email",
type: "email",
id: "email",
tabindex: 1,
@@ -16,7 +16,7 @@
.row
.large-12.columns
%label{for: "password"} Choose a password
%input.title.input-text{name: "password",
%input.title.input-text{name: "password",
type: "password",
id: "password",
autocomplete: "off",
@@ -27,7 +27,7 @@
.row
.large-12.columns
%label{for: "password_confirmation"} Confirm password
%input.title.input-text{name: "password_confirmation",
%input.title.input-text{name: "password_confirmation",
type: "password",
id: "password_confirmation",
autocomplete: "off",
@@ -35,7 +35,7 @@
"ng-model" => "spree_user.password_confirmation"}
.row
.large-12.columns
%input.button.primary{name: "commit",
tabindex: "3",
type: "submit",
%input.button.primary{name: "commit",
tabindex: "3",
type: "submit",
value: "Sign up now"}

View File

@@ -7,7 +7,10 @@
background-color: #fff
table#enterprise-relationships
table#enterprise-relationships, table#enterprise-roles
ul
list-style-type: none
th.actions, td.actions
width: 16%
.errors

View File

@@ -84,13 +84,16 @@ button.graph-button
display: inline
background-color: rgba(255,255,255,0.5)
padding: 5px
@media all and (max-width: 768px)
display: none
// Hide for small
&:hover, &:active, &:focus
background-color: rgba(255,255,255,1)
i.ofn-i-058-graph
i.ofn-i_058-graph
color: $clr-brick-bright
i.ofn-i-058-graph
i.ofn-i_058-graph
color: #999
margin: 0
padding: 0
@@ -98,7 +101,7 @@ button.graph-button
@media all and (max-width: 640px)
padding: 3px
i.ofn-i-058-graph
i.ofn-i_058-graph
font-size: 0.75rem
button.graph-button.open
@@ -107,10 +110,10 @@ button.graph-button.open
&:hover, &:active, &:focus
background-color: rgba(255,255,255,1)
i.ofn-i-058-graph
i.ofn-i_058-graph
color: $clr-brick-bright
i.ofn-i-058-graph
i.ofn-i_058-graph
color: $clr-brick

View File

@@ -16,6 +16,7 @@
padding: 1rem 0
.active_table .active_table_node
margin-top: 0.25rem
display: block
border: 0
@@ -28,15 +29,22 @@
span
text-decoration: underline
span.margin-top
margin-top: 0.5rem
display: inline-block
// Generic text resize
@media all and (max-width: 640px)
font-size: 0.875rem
&, & *
font-size: 0.875rem
fat > div label
&, & *
font-size: 0.75rem
.active_table_row // Inherits from active_table
border: 1px solid transparent
@include border-radius(0.5em)
// Foundation overrides
margin-left: 0
@@ -56,19 +64,25 @@
border-right: 1px solid $disabled-bright
border-top: 0
border-bottom: 0
@include border-radius(0)
.active_table_row:first-child
border-top: 1px solid $disabled-bright
color: $dark-grey
@include border-radius-mixed(0.5em, 0.5em, 0, 0)
&:hover, &:active, &:focus
// color: $dark-grey
.active_table_row:last-child
border-bottom: 1px solid $disabled-bright
@include border-radius-mixed(0, 0, 0.5em, 0.5em)
//Open row sections
.fat > div
border-top: 1px solid $disabled-bright
border-top: 1px solid #aaa
@media all and (max-width: 640px)
margin-top: 1em
ul, ol
font-size: 0.875rem
@@ -81,7 +95,7 @@
font-size: 0.75rem
margin-top: 0.25rem
margin-bottom: 0.25rem
color: $disabled-dark
color: #777
p.trans-sentence
text-transform: capitalize
@@ -97,7 +111,6 @@
color: $dark-grey
&.open
.active_table_row:first-child
&, & *
color: $dark-grey

View File

@@ -9,7 +9,13 @@
margin-right: 0
.row.filter-box:first-child
// border-top: 1px solid $clr-brick
border: 1px solid $clr-blue-light
@include border-radius(0.25em)
margin-top: 2px
.row.filter-box:last-child
background: transparent
margin-top: 1em
products .filter-box
background: #f7f7f7
@@ -20,6 +26,8 @@ products .filter-box
.tdhead
padding: 0.25rem 0.5rem
margin-top: 0.9rem
color: $clr-blue
border-bottom: 1px solid $clr-blue-light
// OVERRIDES
[class*="block-grid-"]

View File

@@ -0,0 +1,3 @@
// https://docs.angularjs.org/api/ng/directive/ngCloak
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak
display: none !important

View File

@@ -9,8 +9,6 @@
@include avenir
@include csstrans
@include border-radius(0.5rem)
// transition: all 0.5s ease
background: rgba(255,255,255,0.1)
border: 2px solid $input
font-size: 2rem
@@ -21,6 +19,8 @@
margin-bottom: 0.5rem
box-shadow: none
color: $inputactv
@media all and (max-width: 640px)
font-size: 1.25rem
&:hover
@include box-shadow(0 1px 1px 0 rgba(255,255,255,0.25))

View File

@@ -1,17 +1,6 @@
// ORIGINAL
// $clr-brick: #8f301d
// $clr-brick-light: #f5e4e1
// $clr-brick-ultra-light: #f7f4ef
// $clr-brick-bright: #db583d
// $clr-brick-light-bright: #f4bbb0
// $clr-turquoise: #097563
// $clr-turquoise-light: #cef2ec
// $clr-turquoise-ultra-light: #e6faf7
// $clr-turquoise-bright: #1d8f7c
$clr-brick: #c1122b
$clr-brick-light: #f5e6e7
$clr-brick-light-trans: rgba(245, 230, 231, 0.9)
$clr-brick-ultra-light: #faf5f6
$clr-brick-bright: #eb4c46
$clr-brick-med-bright: #e5a2a0
@@ -22,6 +11,15 @@ $clr-turquoise-light: #ceefe4
$clr-turquoise-ultra-light: #e8f9f4
$clr-turquoise-bright: #23a877
$disabled-dark: #999
$clr-blue: #0096ad
$clr-blue-light: #85d9e5
$clr-blue-bright: #14b6cc
$disabled-light: #e5e5e5
$disabled-bright: #ccc
$dark-grey: #333
$disabled-med: #b3b3b3
$disabled-dark: #999
$disabled-v-dark: #808080
$med-grey: #666
$dark-grey: #333
$black: #000

View File

@@ -3,10 +3,19 @@
checkout
display: block
@media all and (max-width: 640px)
&.row .row
margin-left: 0
margin-right: 0
orderdetails
.button, table
width: 100%
@media all and (max-width: 640px)
form.edit_order
border: 1px solid $disabled-bright
margin-bottom: 2rem
#details, #billing, #shipping, #payment
border: 0

View File

@@ -7,24 +7,19 @@
background-color: black
background-image: url("/assets/home/ofn_bg_1.jpg")
@include fullbg
height: 500px
height: 400px
padding: 40px 0px
h1, h2, span, small, timer
h1, h2, p
color: white
p
color: $clr-brick-light
h1
margin-bottom: 3rem
margin-bottom: 1em
h2
font-size: 1.6875rem
max-width: 610px
margin: 0 auto
padding-bottom: 0.5rem
a
color: white
&:hover, &:active, &:focus
color: $clr-brick-light-bright
@include textsoftpress
a.button.primary
color: white

View File

@@ -10,103 +10,131 @@
overflow-x: hidden
overflow-y: visible
//Hub icon styline
i.ofn-i_040-hub
@include border-radius(99999rem)
font-size: 1.15rem
display: inline-block
padding: 0.2rem
margin-top: 0.1rem
margin-bottom: 0.1rem
background-color: transparent
@media all and (max-width: 768px)
font-size: 1rem
//Generic text link style
a:hover, a:active, a:focus
color: $clr-brick-bright
a, a *
color: $clr-brick
&:hover, &:active, &:focus
color: $clr-brick-bright
@media all and (max-width: 640px)
&.closed, &.open
//Hub and Producer icons
i.ofn-i_063-hub, i.ofn-i_064-hub-reversed, i.ofn-i_059-producer, i.ofn-i_060-producer-reversed
font-size: 2rem
display: inline-block
margin-right: 0.25rem
float: left
//Closed & Open column
.open_closed
i
font-size: 2rem
float: right
margin-left: 0.5rem
//Hub Name
span.hub-name-listing
font-weight: 700
//CLOSED row
&.closed
.active_table_row
border: 1px solid transparent
@media all and (max-width: 640px)
border-color: $clr-brick-light
&:hover, &:active, &:focus
border-color: $clr-brick-light-bright
//OPEN row
&.open
.active_table_row, .active_table_row:first-child, .active_table_row:last-child
border-color: $clr-brick-light-bright
&.open, &.closed
@media all and (max-width: 640px)
.active_table_row:first-child .skinny-head
background-color: $clr-brick-light
@include border-radius-mixed(0.5em, 0.5em, 0, 0)
margin-top: -1rem
margin-bottom: 1rem
padding-top: 1rem
padding-bottom: 1rem
&.inactive
&.closed, &.open
.active_table_row:first-child .skinny-head
background-color: white
//Inactive row
&.inactive, &.inactive strong
color: $disabled-dark
label
margin-top: 1rem
&, & *
color: $disabled-dark
a i.ofn-i_040-hub
color: $disabled-dark
&.current
&.closed, &.open
a, a strong, a span, a i
color: $disabled-dark
&:hover, &:focus, &:active
color: $disabled-dark
a i.ofn-i_040-hub
color: white
background-color: $disabled-dark
a:hover, a:focus, a:active
color: $disabled-dark
i.ofn-i_040-hub
background-color: $disabled-dark
&.closed
&:hover, &:active, &:focus
border: none
color: $disabled-dark
&.open
.active_table_row:first-child
color: $disabled-dark
strong
color: $disabled-dark
&:hover, &:active, &:focus
color: $disabled-dark
strong
color: $disabled-dark
.active_table_row:nth-child(2)
background-color: rgba(255, 255, 255, 0)
//Open row
//Padding second row
&.open
.active_table_row:nth-child(2)
padding-bottom: 0.75rem
//Current selected row
//CURRENT hub (shows selected hub)
&.current
//overwrites active_table
&.closed
a, a i, a span, a strong
color: $clr-brick
&.closed, &.open
a i.ofn-i_040-hub
color: white
background-color: $clr-brick
a, a *
color: $clr-brick
.active_table_row
border-color: $clr-brick
.active_table_row:first-child, .active_table_row:last-child
background-color: $clr-brick-light-trans
opacity: 1
&:hover, &:focus, &:active
opacity: 0.9
border-color: $clr-brick-bright
@media all and (max-width: 640px)
.active_table_row:first-child .skinny-head
background-color: rgba(255,255,255,0.85)
//INACTIVE - closed hub
&.inactive
&.closed, &.open
&, & *
color: $disabled-med
a, a *
color: $disabled-dark
&.closed
.active_table_row, .active_table_row:first-child, .active_table_row:last-child
&:hover, &:active, &:focus
border-color: $disabled-bright
&.open
.active_table_row, .active_table_row:first-child, .active_table_row:last-child
// border-color: $disabled-bright
&, &:hover, &:active, &:focus
border-color: $disabled-bright
&.closed, &.open
// & Current hub
&.current
.active_table_row, .active_table_row:first-child, .active_table_row:last-child
a, a *
color: $med-grey
border-color: $disabled-dark
background-color: rgba(220,220,220,0.5)
&:hover, &:focus, &:active
border-color: $disabled-dark
// Small devices
@media all and (max-width: 640px)
.active_table_row:first-child .skinny-head
background-color: $disabled-bright
// Small devices
@media all and (max-width: 640px)
.active_table_row, .active_table_row:first-child, .active_table_row:last-child
border-color: $disabled-bright
background-color: transparent
&:hover, &:focus, &:active
border-color: $disabled-bright
opacity: 0.85
.active_table_row:first-child .skinny-head
background-color: $disabled-light
a:hover, a:focus, a:active
strong, span
color: $clr-brick-bright
i.ofn-i_040-hub
background-color: $clr-brick-bright
//Is Profile - profile node
&.inactive.is_profile
&.closed, &.open
.active_table_row
&:hover, &:active, &:focus
border-color: transparent
cursor: auto
@media all and (max-width: 640px)
border-color: transparent

View File

@@ -11,12 +11,16 @@
@include box-shadow(0 1px 2px 1px rgba(0,0,0,0.25))
.hero-img
border-bottom: 1px solid $disabled-bright
outline: 1px solid $disabled-bright
border-color: transparent
@include box-shadow(none)
width: 100%
min-height: 56px
min-height: 80px
height: inherit
max-height: 260px
overflow: hidden
@media all and (max-width: 640px)
min-height: 68px
.hero-img-small
background-color: #333

View File

@@ -16,10 +16,28 @@
-webkit-box-shadow: $box-shadow
box-shadow: $box-shadow
@mixin elipse-shadow($elipse-shadow)
content: ""
position: absolute
z-index: -1
-webkit-box-shadow: $elipse-shadow
box-shadow: $elipse-shadow
bottom: -12%
left: 10%
right: 10%
width: 80%
height: 10%
-moz-border-radius: 100%
border-radius: 100%
@mixin border-radius($border-radius)
-webkit-border-radius: $border-radius
border-radius: $border-radius
@mixin border-radius-mixed($border-radius-TL, $border-radius-TR, $border-radius-BR, $border-radius-BL)
-webkit-border-radius: $border-radius-TL $border-radius-TR $border-radius-BR $border-radius-BL
border-radius: $border-radius-TL $border-radius-TR $border-radius-BR $border-radius-BL
@mixin transform-translate($translate)
-ms-transform: $translate
-webkit-transform: $translate

View File

@@ -2,25 +2,61 @@
@import mixins
// Generic styles for use
.modal-centered
text-align: center
p
margin-bottom: 0
.modal-header, p.modal-header
text-align: center
text-transform: uppercase
font-size: 1rem
font-weight: 400
color: $disabled-dark
border-bottom: 1px solid $disabled-dark
margin-top: 0.75rem
margin-bottom: 0.5rem
// Enterprise promo image and text
.highlight
position: relative
.highlight-top
padding: 0.75rem 0.9375rem
width: 100%
overflow: hidden
padding-top: 0.75rem
padding-bottom: 0.75rem
background-color: rgba(255,255,255,0.65)
position: absolute
bottom: 0
width: 100%
border: 0
outline: 0
@media only screen and (max-width: 640px)
padding-top: 0.5rem
padding-bottom: 0.35rem
h3, p
margin-top: 0
margin-bottom: 0
padding-bottom: 0
line-height: 1
h3 > i
color: $clr-brick
p
line-height: 2
line-height: 2.4
@media all and (max-width: 640px)
line-height: 1.4
h3 a:hover span
border-bottom: 1px solid $clr-brick-bright
.is_producer
&, & *
color: $clr-turquoise
// ABOUT Enterprise
@@ -41,11 +77,16 @@
max-width: 180px
max-height: 180px
// CONTACT Enterprise
.contact-container
a:hover
text-decoration: underline
// FOLLOW Enterprise
.follow-icons
text-align: center
// text-align: center
span
display: inline-block
margin: 0 0.25rem 0.75rem 0.25rem
@@ -66,7 +107,7 @@
label
text-transform: uppercase
font-size: 0.875rem
margin-bottom: 0
margin-bottom: 0.75rem
5rem
color: $dark-grey
@@ -74,51 +115,53 @@
color: $disabled-dark
span
text-transform: capitalize
.cta-hub
margin-right: 2rem
margin-top: 0rem
margin-bottom: 0.75rem
display: inline-block
.button.secondary
background-color: #999
.button.hub
margin-right: 1rem
margin-top: 0.25rem
margin-bottom: 1rem
padding-left: 1rem
padding-right: 1rem
font-weight: bold
&.secondary
color: $disabled-dark
&.primary
color: $clr-brick
i.ofn-i_033-open-sign, i.ofn-i_032-closed-sign
margin-right: 0.15rem
font-size: 1.25rem
i.ofn-i_007-caret-right
margin-left: 1rem
margin-right: 0.1rem
font-size: 2rem
padding: 0.15rem 0.25rem 0.35rem 0.25rem
float: left
.hub-name
margin-top: 0.75rem
margin-bottom: 0.2rem
font-weight: 400
display: inline-block
border-bottom: 1px solid transparent
.button-address
margin-top: 0.5rem
margin-bottom: 0.2rem
margin-left: 0.1rem
text-transform: uppercase
font-weight: 300
font-style: italic
font-size: 0.75rem
display: inline
display: inline-block
border-bottom: 1px solid transparent
@media all and (max-width: 640px)
display: none
.button.hub.expand
text-align: left
i.ofn-i_007-caret-right
float: right
i.ofn-i_033-open-sign, i.ofn-i_032-closed-sign
float: left
margin-right: 0.5rem
&:hover, &:focus, &:active
&.secondary
color: #666
.hub-name, .button-address
border-bottom: 1px solid #999
&.primary
color: $clr-brick-bright
.hub-name, .button-address
border-bottom: 1px solid $clr-brick-bright
// Generic styles for use
.modal-centered
text-align: center
p
margin-bottom: 0
.modal-header, p.modal-header
text-align: center
text-transform: uppercase
font-size: 1rem
font-weight: 400
color: $disabled-dark
border-bottom: 1px solid $disabled-dark
margin-top: 0.75rem
margin-bottom: 0.5rem

View File

@@ -1,6 +1,13 @@
// Styling for login modal to style tabs
.reveal-modal.login-modal
border-bottom-color: #efefef
.login-modal
background: #efefef
.tabs-content
background: #fff
background: #fff
padding-top: 10px

View File

@@ -4,66 +4,45 @@
dialog, .reveal-modal
border: none
outline: none
padding: 1rem
padding: 30px 20px 0 20px
border-bottom: 30px solid white
overflow-y: scroll
// Sets up max heights based on device height
@media all and (min-height: 1025px)
overflow-x: hidden
// Not working yet - want a nice gradient shadow when there is overflow - needs JS too
// &:after
// @include elipse-shadow(0 0 40px rgba(0, 0, 0, 0.8))
// Reveal.js break point:
// @media only screen and (max-width: 40.063em)
// Small - when modal IS full screen
@media only screen and (max-width: 640px)
max-height: initial
// This is needed to make the height not the height of whole content page
min-height: 100%
position: absolute !important
top: 0
left: 0
// Medium and up - when modal IS NOT full screen
@media only screen and (min-width: 641px)
top: 10%
max-height: 80%
@media all and (min-height: 700px) and (max-height: 1024px)
max-height: 70%
@media all and (min-height: 600px) and (max-height: 699px)
max-height: 60%
@media all and (min-height: 481px) and (max-height: 599px)
max-height: 60%
@media only screen and (max-height: 480px) and (min-width: 641px)
max-height: 60%
@media all and (max-height: 480px)
overflow-y: scroll
.reveal-modal-bg
background-color: rgba(0,0,0,0.65)
background-color: rgba(0,0,0,0.85)
dialog .close-reveal-modal, .reveal-modal .close-reveal-modal
right: 0.4rem
background-color: rgba(235,235,235,0.85)
right: 0.25rem
top: 0.25rem
background-color: rgba(205,205,205,0.65)
text-shadow: none
padding: 0.3rem
font-size: 2rem
padding: 0.45rem
color: #666
z-index: 9999999
@include border-radius(999999rem)
&:hover, &:active, &:focus
background-color: rgba(235,235,235,1)
background-color: rgba(205,205,205,1)
color: #333
// dialog .close-reveal-modal.outside, .reveal-modal .close-reveal-modal.outside
// top: -2.5rem
// right: -2.5rem
// font-size: 2rem
// color: white
// text-shadow: none
// padding: 0.25rem
// @include border-radius(999999)
// border: 1px solid transparent
// &:hover, &:active, &:focus
// text-shadow: 0 1px 3px #333
// border: 1px solid white
// @media all and (max-width: 640px)
// top: 0.5rem
// right: 0.5rem
// font-size: 2rem
// color: white
// text-shadow: none
// padding: 0.25rem
// background-color: rgba(150,150,150,0.85)
// @include border-radius(999999)
// border: 1px solid transparent
// &:hover, &:active, &:focus
// text-shadow: 0 1px 3px #333
// border: 1px solid white

View File

@@ -1,4 +1,5 @@
@import branding
@import mixins
.producers
.active_table .active_table_node
@@ -7,24 +8,73 @@
@media all and (max-width: 640px)
.skinny-head
background-color: $clr-turquoise-light
@include border-radius-mixed(0.5em, 0.5em, 0, 0)
margin-top: -1rem
margin-bottom: 1rem
padding-top: 1rem
padding-bottom: 1rem
.follow-icons
&, & *
font-size: 1.5rem
// Producer icons
i.ofn-i_059-producer, i.ofn-i_060-producer-reversed
font-size: 2rem
display: inline-block
margin-right: 0.25rem
float: left
color: $clr-turquoise
a
&:hover, &:active, &:focus
color: $clr-turquoise-bright
span
text-decoration: underline
&.has_shopfront, &.has_shopfront i.ofn-i_059-producer, &.has_shopfront i.ofn-i_060-producer-reversed
color: $clr-brick
&:hover, &:active, &:focus
color: $clr-brick-bright
a.cta-hub
&:hover, &:focus, &:active
&.secondary
color: #666
.hub-name, .button-address
border-bottom: 1px solid #999
&.primary
color: $clr-brick-bright
.hub-name, .button-address
border-bottom: 1px solid $clr-brick-bright
p.word-wrap
margin-bottom: 0
&:last-child
margin-bottom: 1rem
.fat-taxons
background-color: $clr-turquoise-light
.producer-name
color: $clr-turquoise
//Open row
&.open
.active_table_row
border-left: 1px solid $clr-turquoise-bright
border-right: 1px solid $clr-turquoise-bright
background-color: rgba(255,255,255,0.4)
background-color: rgba(206,239,228,0.4)
.cta-container
background: none
.columns img
padding: 1rem 0
max-height: 160px
width: auto
&.left
padding: 0.25rem 1rem 0.25rem 0
&.right
padding: 0.25rem 0.5rem 0.25rem 2rem
.active_table_row:first-child
border-top: 1px solid $clr-turquoise-bright
@@ -35,6 +85,12 @@
//Closed row
&.closed
&:hover, &:active, &:focus
.active_table_row.closed
border: 1px solid $clr-turquoise
.active_table_row.closed
border: 1px solid transparent
@media all and (max-width: 640px)
border-color: $clr-turquoise-light
&:hover, &:active, &:focus
border-color: $clr-turquoise

View File

@@ -0,0 +1,161 @@
@import branding
@import mixins
#registration-modal
.header
text-align: center
background-color: #efefef
padding-bottom: 1rem
.container
background-color: #ffffff
.content
// margin-bottom: 15px
i
font-size: 150%
.buttons
ofn-inline-flash
display: block
padding: 15px
position: relative
margin-bottom: 10px
&.brick
background-color: $clr-brick-light
border: 2px solid $clr-brick
color: $clr-brick
&.turquoise
background-color: $clr-turquoise-light
border: 2px solid $clr-turquoise
color: $clr-turquoise
.close-button
position: absolute
top: 0px
right: 0px
.field
margin-bottom: 15px
input.chunky
padding: 8px
font-size: 105%
label.indent-checkbox
display: block
padding-left: 20px
text-indent: -17px
input
margin: 0px
label
margin-bottom: 3px
ol, ul
// font-size: 80%
font-size: 0.875rem
padding: 0
margin: 0
ol
list-style-type: decimal
.highlight-box
background: white
padding: 1rem 1.2rem
@media all and (max-width: 640px)
margin-top: 1rem
#progress-bar
margin-bottom: 15px
.item
padding: 12px 0px
text-transform: uppercase
text-align: center
background-color: #333
border: 2px solid #333
color: #fff
.item.active
background-color: #cccccc
border: 2px solid #333
color: #333
@include box-shadow(inset 0 0 1px 0 #fff)
.image-select
label
font-size: 18px
padding: 21px 0px
#logo-select
display: none
#image-over
font-size: 18px
padding: 41px 0px
border: 3px dashed #494949
text-align: center
font-weight: bold
color: #494949
&.nv-file-over
background-color: #78cd91
#or
text-align: center
font-weight: bold
font-size: 18px
padding: 21px 0px
&.horizontal
padding: 41px 0px
#image-placeholder
font-size: 18px
font-weight: bold
color: #373737
background-color: #e1e1e1
text-align: center
border: 3px dashed #494949
margin-left: auto
margin-right: auto
&.logo
.message
padding-top: 6em
width: 306px
height: 306px
&.promo
.message
padding-top: 4em
width: 726px
height: 166px
#registration-details
#enterprise-types
a.panel
display: block
background-color: #efefef
color: black
@media all and (min-width: 768px)
min-height: 200px
&:hover
background-color: #fff
&#producer-panel:hover
&, & *
color: $clr-turquoise
&#hub-panel:hover, &#both-panel:hover
&, & *
color: $clr-brick
&.selected
&, & *
color: #fff
&#hub-panel, &#both-panel
background-color: $clr-brick-bright
&:hover
&, & *
color: white
&#producer-panel
background-color: $clr-turquoise-bright
&:hover
&, & *
color: white
p
clear: both
font-size: 0.875rem

View File

@@ -1,10 +1,10 @@
@font-face {
font-family: 'OFN';
src:url('/OFN.eot?-4w617y');
src:url('/OFN.eot?#iefix-4w617y') format('embedded-opentype'),
url('/OFN.woff?-4w617y') format('woff'),
url('/OFN.ttf?-4w617y') format('truetype'),
url('/OFN.svg?-4w617y#OFN') format('svg');
src:url('/OFN.eot?eslsji');
src:url('/OFN.eot?#iefixeslsji') format('embedded-opentype'),
url('/OFN.woff?eslsji') format('woff'),
url('/OFN.ttf?eslsji') format('truetype'),
url('/OFN.svg?eslsji#OFN') format('svg');
font-weight: normal;
font-style: normal;
}
@@ -194,6 +194,42 @@
.ofn-i_057-expand:before {
content: "\e638";
}
.ofn-i-058-graph:before {
.ofn-i_058-graph:before {
content: "\e639";
}
.ofn-i_059-producer:before {
content: "\e63a";
}
.ofn-i_060-producer-reversed:before {
content: "\e63b";
}
.ofn-i_061-producer-map:before {
content: "\e63c";
}
.ofn-i_062-producer-map-reversed:before {
content: "\e63d";
}
.ofn-i_063-hub:before {
content: "\e63e";
}
.ofn-i_064-hub-reversed:before {
content: "\e63f";
}
.ofn-i_065-hub-map:before {
content: "\e640";
}
.ofn-i_066-hub-map-reversed:before {
content: "\e641";
}
.ofn-i_067-shop:before {
content: "\e642";
}
.ofn-i_068-shop-reversed:before {
content: "\e643";
}
.ofn-i_069-shop-map:before {
content: "\e644";
}
.ofn-i_070-shop-map-reversed:before {
content: "\e645";
}

View File

@@ -48,6 +48,9 @@ small, .small
.turquoise
color: $clr-turquoise
.brick
color: $clr-brick
@mixin avenir
font-family: "AvenirBla_IE", "AvenirBla"
@@ -55,8 +58,8 @@ h1, h2, h3, h4, h5, h6, .avenir
@include avenir
padding: 0px
ul.bullet-list
margin: 0
ul.bullet-list, ul.check-list
margin: 0 0 0 1.25em !important
li
list-style: none
line-height: 1.5
@@ -64,12 +67,16 @@ ul.bullet-list
li:before
content: "\e609"
font-family: "OFN"
margin-left: -1.25em
display: inline-block
font-weight: normal
font-style: normal
font-variant: normal
text-transform: none
ul.check-list
li:before
content: "\e632"
.light-grey
color: #666666

View File

@@ -63,6 +63,20 @@ button.success, .button.success
.button.success:hover, .button.success:active, .button.success:focus, button.success:hover, button.success:active, button.success:focus
background: #14b6cc
.button.help-btn
@include border-radius(999999px)
&.tiny
padding: 0rem
margin: 0
float: right
i
font-size: 1.25rem
.profile-checkbox
display: inline-block
input[type="checkbox"] + label
margin: 0 0.2rem
// Responsive
@media screen and (min-width: 768px)
[role="main"]

Some files were not shown because too many files have changed in this diff Show More