Skip to content

Commit

Permalink
v0.5.3 - Guest Checkout, RTL
Browse files Browse the repository at this point in the history
Thanks to contributions from @danielgindi `right to left internationalization` is now supported.

Take a look at the Russian or Hebrew languages to see RTL in action.

 - Resolves #176

Also contributions from  @firstred and @epson121 added Dutch and Croatian translations.

Thanks to contributions from @lovetostrike, the initial `reactioncommerce:reaction-social` package has been published, which gives basic social sharing functionality.

 - Resolves #61
 - Resolves #281

- if there is neither a sessionCart nor a userCart, create a sessionCart
  * add sessionId to cart.sessions
  * auto insert/update userId if authenticated
  * observers to ensure cart always exists (ie after deletion)
- if sessionCart is a not a userCart return sessionCart
- if sessionCart just authenticated, add userId
- only return a user cart when authenticated
  * copy existing userCart(s) into sessionCart and remove userCart(s)
- if userCart just logged out, remove sessionId from userCart and create new sessionCart
- allow multiple sessionId per cart when userCart

TODO:

- realistically this may not be very solid way to handle sessions.
- Session handling will need a **close review in the future**.
- potential edge cases where multiple session/auth/merge actions to a cart may destroy the cart
- cart really should have mirrored client and server methods and be tested offline

Issue updates:

- Remove packages introduced in reactioncommerce/reaction-core#76
- Resolves #271
- Resolves #339
- Resolves #326
- Resolves #183
- Strategic updates for issue #16
- Strategic updates for issue #318
- Strategic updates for issue #76

   * dashboard enable/disable **guest checkout**
   * change default step to **guest checkout** or create/sign-in
   * store email for order - **after order completion if guest**
   * not visible after destroyed session (ie: refresh)
   * updated checkout and progress bar to use
     cart value instead of session

TODO:

- validation on email guest entry
- add account creation instructions to an order completion email
- potentially add third prompt for account creation after email (or promos,etc)
- order emails!
- use workflow states to control checkout ui flow.

Thanks to initial contributions from @prinzdezibel!

- use new Accounts collection (previously referred to as customers)
- create account on user create, or use a session specific account
- implement Template.dynamic handling of AddressBook edit/add/grid
- changes to checkout address handling, fix accounts context
- update addressBook forms to autoform-v0.5.0 compatible (autoform not upgraded)
- change accounts/shop `email` from string to `emails` array
  - `emails: {'address': options.email, 'verified': true}`
- changed Shops, Accounts email to an array `emails`
- userAccountsDropdown icon for orders, profile
- user view of order history

TODO:

- merge session accounts to user account upon email confirmation (and email saved on cart)
- reduce / cleanup garbage sessions  (merge will help)
- session / accounts/ cart garbage collector
- account profile / settings
- on account creation / login  with password
    - if confirmed account creation email
      - create a account collection record with this userId
      - update all orders with matching email to match this userId
      - copy all order addresses into Accounts.profile.addressBook
      - copy all social / email info to Accounts.
      - users collection locked down, nothing exposed to client, used for authentication only
    - else
      - if there are more orders with this email
      - display on order view "Add order"

* moves user orders from cart/checkout folder to dashboard/orders
* add message for confirmation of email
* authenticated user can see all orders where userId in list view
* admin can see all in list view
* userAccountsDropdown icon for orders
* add cartId to Orders (instead of using cartId as orderId)

TODO:

- integrate the admin view of list into dashboard admin flow
- this is possibly a breaking change to the orders dashboard.
- remove sessionId from orders on logout

* updates to handling settings from registry (public, private)
* rename and move settingGeneral to shop/settings
* rename and move settingsAccounts to shop/accounts

**Multi-shop/vendor**

* shop account updates to prep multi-shop dashboard
* shopId added to cart.items (variants)

Issue updates:

- Strategic updates for issue #236
- Strategic updates for issue #327

* added settings.public to publish public settings to ReactionCore.xxx

Thanks to contributions and docs from @spencern

- Test coverage for product methods
- Fix, add coverage for core methods

* Upgrade to Meteor 1.0.4.2
* Implements `check` and `audit-argument-checks`
* Implements `browser-policy`
* Fixed footer layout pages loading.
* Updates CFS, removes FileStorage collection.
* **Contributions from @aldeed @prinzdezibel @spencern @boboci9 @evliu @ceh @gouthamve @KEFIRCHIK @epson21 @firstred
**
  • Loading branch information
aaronjudd committed Mar 24, 2015
2 parents 47ffe37 + 7638f31 commit a7c90af
Show file tree
Hide file tree
Showing 17 changed files with 63 additions and 203 deletions.
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ npm-debug.log

*.sublime-project
*.sublime-workspace

reaction-dev.sh
packages/*
packages/*

.meteor/versions
4 changes: 3 additions & 1 deletion .meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ less
# Optional Meteor Packages
accounts-facebook
spiderable
force-ssl
audit-argument-checks

# Community Packages
nemo64:bootstrap
Expand All @@ -28,3 +28,5 @@ reactioncommerce:reaction-google-analytics
reactioncommerce:reaction-paypal
reactioncommerce:reaction-braintree
reactioncommerce:reaction-stripe
reactioncommerce:reaction-auth-net
reactioncommerce:reaction-social
2 changes: 1 addition & 1 deletion .meteor/release
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[email protected].3.1
[email protected].4.2
132 changes: 0 additions & 132 deletions .meteor/versions

This file was deleted.

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ RUN apt-get -qq update && apt-get install -qq -y curl python gcc make \
libfreetype6-dev libssl-dev libfontconfig1 imagemagick

# install node
RUN mkdir /nodejs && curl http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz | tar xvzf - -C /nodejs --strip-components=1
RUN mkdir /nodejs && curl http://nodejs.org/dist/v0.10.36/node-v0.10.36-linux-x64.tar.gz | tar xvzf - -C /nodejs --strip-components=1
ENV PATH $PATH:/nodejs/bin

# Install forever & phantomjs
Expand Down
9 changes: 3 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#Reaction Commerce
A commerce platform developed with Meteor, Node.js, MongoDB, CoffeeScript following a reactive design pattern that puts usability and conversions first.
A commerce platform developed with Meteor, Node.js, MongoDB, CoffeeScript with a reactive,real-time design that puts usability and conversions first.

##Installation
Node.js + NPM is required. Install from http://nodejs.org/

To install Meteor + Reaction, and start the latest release:

Expand All @@ -11,7 +12,6 @@ curl -L http://getrxn.io/installreaction | /bin/sh

This terminal command executes [this file](https://github.com/reactioncommerce/reaction/blob/development/bin/install). Additional installation options are in the [developer documentation](https://github.com/reactioncommerce/reaction-core/blob/development/docs/installation.md).

Installed Node.js + NPM is required. Install from http://nodejs.org/

##Demonstration

Expand All @@ -23,7 +23,7 @@ Test shops help us gather feedback for Reaction development, as well as testing


##Status
**Current status: Alpha Preview v0.4.1**
**Current status: Alpha Preview v0.5.0**

**Functional but unstable, with HEAVY ongoing development!**

Expand Down Expand Up @@ -74,9 +74,6 @@ Join us on our Gitter chat room, discuss, get help.

[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/reactioncommerce/reaction?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

###Google Group
Google group at https://groups.google.com/forum/#!forum/reaction-talk

#Developer Documentation

[Getting started guide](http://thoughts.reactioncommerce.com/how-to-get-involved-with-reaction-commerce/)
Expand Down
3 changes: 3 additions & 0 deletions bin/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,9 @@ if [ -n "${REPO}" ]; then
cd ${METEOR_DIR}/..

# Bundle the Meteor app
if [ -z "${METEOR_SSL}" ]; then
meteor remove force-ssl
fi
mkdir -p ${APP_DIR}
set +e # Allow the next command to fail
meteor build --directory ${APP_DIR}
Expand Down
9 changes: 8 additions & 1 deletion client/templates/layout/footer/footer.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,11 @@
# This footer replaces the "layoutFooter" template defined in the reactioncommerce:core package.
# https://github.com/reactioncommerce/reaction-core/blob/master/client/templates/layout/footer/footer.html
###
Template.footer.replaces "layoutFooter"
Template.layoutFooter.helpers
customSocialSettings: ->
placement: 'footer'
faClass: 'square'
faSize: 'fa-3x'
appsOrder: ['facebook', 'twitter', 'pinterest', 'googleplus']

Template.footer.replaces "layoutFooter"
13 changes: 6 additions & 7 deletions client/templates/layout/footer/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,13 @@
</ul>
</div>

<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
<ul class="list-unstyled">
<li><a href="" class="fa fa-twitter-square fa-2x pull-right" data-event-category="link" data-event-action="link-click" data-event-label="external link click" data-event-value="twitter"></a></li>
<li><a href="" class="fa fa-facebook-square fa-2x pull-right" data-event-category="link" data-event-action="link-click" data-event-label="external link click" data-event-value="facebook"></a></li>
<li><a href="" class="fa fa-instagram fa-2x pull-right" data-event-category="link" data-event-action="link-click" data-event-label="external link click" data-event-value="instagram"></a></li>
<li><a href="" class="fa fa-pinterest-square fa-2x pull-right" data-event-category="link" data-event-action="link-click" data-event-label="external link click" data-event-value="pinterest"></a></li>
<div class="col-xs-5 col-xs-offset-1 col-sm-6 col-sm-offset-0 col-md-5">
<ul class="list-unstyled pull-right">
{{#each reactionApps provides="social" name="reaction-social"}}
{{> Template.dynamic template=template data=customSocialSettings }}
{{/each}}
</ul>
</div>
</div>
</nav>
</template>
</template>
8 changes: 4 additions & 4 deletions common/routing.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
# yields based on the logic in this file
# individual reaction packages have their own routing
#
# The reaction-core controller is extended here so you can
# The reaction-core controller can be extended here so you can
# modify here if needed.
# *****************************************************
ReactionController = ShopController.extend
# ReactionController = ShopController.extend

# *****************************************************
# generic static pages
Expand Down Expand Up @@ -47,9 +47,9 @@ Router.map ->
# generic static pages
for page in staticPages
@route page,
controller: ReactionController
controller: ShopController
name: page

# custom 404 Page
@route "notFound",
path: "/(.*)"
path: "/(.*)"
4 changes: 2 additions & 2 deletions docs/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
* Published or hidden status
* Additional product details in key/value list
* Uses social media handles for product urls for best SEO+social media
* Integrated custom product social media messaging (FB,Twitter,Pinterest,Instagram)
* Integrated custom product social media messaging (FB,Twitter,Pinterest,Google+)


## Images / Video
Expand All @@ -38,7 +38,7 @@
* Facebook
* Twitter
* Google
* Instagram
* Google+
* LinkedIn
* Vkontakte
* Yahoo
Expand Down
6 changes: 0 additions & 6 deletions packages/.gitignore

This file was deleted.

1 change: 1 addition & 0 deletions private/settings/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.json
6 changes: 6 additions & 0 deletions server/fixtures.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
###
# Start up fixtures
###
Meteor.startup ->
# update for reaction package/app settings from private/settings/reaction.json
try Fixtures.loadSettings Assets.getText "settings/reaction.json"
15 changes: 15 additions & 0 deletions server/policy.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
###
# set browser policies
###

# allow google fonts (required for core-theme)
BrowserPolicy.content.allowFontDataUrl()
BrowserPolicy.content.allowOriginForAll("fonts.googleapis.com")
BrowserPolicy.content.allowOriginForAll("fonts.gstatic.com")

# allow velocity testing (optional for velocity)
if process.env.NODE_ENV is 'development'
BrowserPolicy.content.allowOriginForAll 'localhost:*'
BrowserPolicy.content.allowConnectOrigin 'ws://localhost:5000'
BrowserPolicy.content.allowConnectOrigin 'http://localhost:5000'
BrowserPolicy.framing.allowAll()
25 changes: 7 additions & 18 deletions settings/dev.sample.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
{
"isDebug": "info",
"baseUrl": "http://localhost:3000",
"googleAnalyticsProperty": "",
"facebook": {
"secret": ""
},
"ROOT_URL": "",
"MONGO_URL": "",
"MAIL_URL": "",
"reaction": {
"METEOR_USER": "Administrator",
"METEOR_AUTH": "admin",
"METEOR_EMAIL": "root@localhost"
},
"paypal": {
"client_id": "",
"client_secret": ""
"METEOR_USER": "",
"METEOR_AUTH": "",
"METEOR_EMAIL": ""
},
"public": {
"facebook": {
"appId": ""
}
}
"isDebug": "info"
}
22 changes: 0 additions & 22 deletions settings/prod.sample.json

This file was deleted.

0 comments on commit a7c90af

Please sign in to comment.