Skip to content

Commit

Permalink
Release 1.1.1 (#2117)
Browse files Browse the repository at this point in the history
* Show Sidebar shipping in checkout

* Set actionView after payment checkout step

* Hide sidebar on entry to profile page

* Using publish-counts to record count of orders in order tabs

* Add alert and checkout message when item quantities have been adjusted

* Code cleanup

* Add 'Show More' button for pagination (to be refined)

* Update errors to include when cart is already full

* Removing unnecessary subscription.ready from composer function

* Modify orders cursor to use state instead; identify filter from 'show more' button

* Actually deny when out of stock

* Fix 'Show More' button functionality

* Add more descriptive error messages

* Using publish-counts to record count of orders in order tabs

* Code cleanup

* Add 'Show More' button for pagination (to be refined)

* Removing unnecessary subscription.ready from composer function

* Modify orders cursor to use state instead; identify filter from 'show more' button

* Fix 'Show More' button functionality

* Fix console error on Quantity

* Fix PR arising issue on quantity

* Using reactiveDict to store order limits

* Using camelcase for naming

* Passing filter to PaginatedOrders subscription for query builder in publish

* Publishing order counts using Mongo aggregate pipeline

* Clean up a few edge cases

* Add i18n translations

* Remove file changes different from development

* Turns out I don't need this publication; it doesn't work well anyway because it doesn't return a Mongo cursor

* Remove all references to addressbook.js

* Set custom layout to override based on priority field (#2023)

* Set Custom layout to override based on priority field

* Update existing priority field to use new default

* Migrate existing priority fields

* Fix audience schema to be array of Strings

* Check before updating during migration

* Add down migration and refactor

* Add reaction packages with layouts to migrate

* Method to aggregate order counts

* fix createDefaultAdminUser behavior with users in the system

* Resolve cart addition issue (#2048)

* Calling aggregate function in React container

* Rewriting aggregate method to use wrapAsync

* Returning Toplevel products as per scroll limit for non admin users fixes #2029 (#2063)

* Refactor calling aggregate function in React container

* Removing unnecessary order subscriptions in order template

* Removing unnecessary order Counts.publish from Orders publication

* [WIP] Broken Formatting for Non-USD currencies (#2062)

* fix nonUSD currencies formatting error

* add proper formatting for tax, discount and shipping fields

* Set order count to 0 if there are no orders in the database

* Remove unnecessary parameter to order/count

* Changes to order template:
Increasing order limit variables and increment value: using order count to render 'Show More' button

* Using publish-counts to display order counts

* Removing unnecessary orders/count method

* Adding i18n on Show More button

* Adding optional check on filter in PaginatedOrders publication

* Sending subscription limit as props to React component

* Don't subscribe to all media (#2073)

* Don't subscribe to all media

- Publish brand assets globally in media publication
- Publish product media in the `Products` and `Product` publications
- Limit media to only published products

* De-duplicate fetch product media functionality

Ensure permissions and workflows are checked when fetching the media.

* Update logic of if / else inclusion / exclusion by workflow

* Fix endless spinner issue

* Add requirements to readme

Adds link to requirements docs above installation instructions

* Move requirements below installation

* Remove isHidden check from core startup b/c blocking safari - fixes #2088

* Request versions (reaction -v) output in issue template (#2087)

* Fetch all Shippo carriers (#2078)

* Init second request on after next url returned

* Refactor to fetch carriers recursively from api

* Fix transliteration package to 1.5.2 which doesn’t leak ES6 into bundle

* Fix issue #2026 changed price not displayed for prod on grid page (#2064)

* Fix issue #2016 changed price not displayed for prod on grid page

* Add getVariantQuantity function to ProductRevision

* Convert text field to select field for countries (#2082)

* [WIP] #2070 Fix PDP Url Path For Grid Settings (#2094)

* fix pdp url path for grid settings

* remove commented code

* Remove legacy PDP (#2097)

* Remove revision conditional

* Remove templates

* Set total quantity as actual sum of quantity

* Don't break out order items

* set cartItemId to just _id since they are the same now

* Fix unrelated error with missing import

* Create shipping record

* Don't use cartItemId

* Group lineItems by _id rather than cartItemId

* Use _id rather than cartItemId. Use sum of quantities rather than length

* Restore check for empty items array to fix test

* Change cartItemId to _id

* 2067 Improper Product Title Wrap (#2108)

* fix improper word wrap in product grid

* fix improper product title wrap in firefox

* Fix Avalara document id (#2114)

* Don't pass in a cartID, pass in orderId for SalesInvoice

* Don't try to parse lines unless we know we have it. No lines, no tax.

* Use order.items to display line items

* Update core.js

Changed "admin" to "owner", which is the default user we're really checking for.

* Meteor 1.4.4.1

* Release 1.1.1

* If cartItemId exists from legacy orders, then use those

* Don't create default admin user when running in app test mode

* Fix "Set Custom Value" on Avalara Usage Type (#2107)

* Get correct id value

* Prevent autoform from removing old values

* Roll back. Autoform still resetting to old values

* Prevent autoform from overriding custom val

* show input field for custom; pre-fill with existing custom val

* Adjust comment

* Adjust comment

* Update form reset

* Refactor subscription

* Fixes #2116 failure to send email (#2118)

* Fix parens that were out of place in wrapAsync of Email.verifyConfig

* Revert the wrapAsync function - I didn’t understand how it worked and it wasn’t the core issue

* Don’t set secure to true for port 587

http://stackoverflow.com/a/22468122/1179341 pointed me in the right direction

* Fix async tests (#2128)

* Take some newer versions of packages from `meteor update`

* Fix test with mixed sync and async

* When calling a method with a callback, but the expectations in that callback

* Docker base v1.3.0 (#2129)

* Fix missing import

* Add import, adjust Proptypes

* Update read only Quantity in top variant #1919 (#2065)

* Update quantity if child variants exist

* Change method not to add inentory Quantity when undefined

* Add default value for inventoryQuantinty

* Fixing non-reactivity of updating quantity field

* missing word added to Readme

* Fix linting error (#2140)

* 1994 Console Dropzone Warnings (#2138)

* upgrade react-dropzone to latest version

* upgrade react-dropzone to latest version

* Add npm-shrinkwrap.json

Pinned react, node mailer, griddle
  • Loading branch information
Aaron Judd authored Apr 19, 2017
1 parent 395df41 commit 96074a4
Show file tree
Hide file tree
Showing 60 changed files with 7,375 additions and 1,524 deletions.
3 changes: 3 additions & 0 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ to our [Gitter](https://gitter.im/reactioncommerce/reaction) channel instead.

### Steps to Reproduce the Behavior

### Versions
(run `reaction -v` from your reaction directory)

For enhancements or other issues, please describe in as much detail as
possible how the app should be changed and how this would benefit
users/developers
14 changes: 7 additions & 7 deletions .meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ [email protected] # Packages every Meteor app needs to have
[email protected] # Packages for a great mobile UX
[email protected] # Compile .html files into Meteor Blaze views
[email protected] # ECMAScript 5 compatibility for older browsers.
ecmascript@0.6.3 # Enable ECMAScript2015+ syntax in app code
ecmascript@0.7.2 # Enable ECMAScript2015+ syntax in app code
[email protected] # ensure meteor method argument validation
[email protected] # security-related policies enforced by newer browsers
juliancwirko:postcss # CSS post-processing plugin (replaces standard-minifier-css)
Expand All @@ -36,10 +36,10 @@ mdg:validated-method
[email protected]

# Meteor Auth Packages
[email protected].15
[email protected].4
[email protected].16
[email protected].5
[email protected]
[email protected].1
[email protected].2
[email protected]
[email protected]
# accounts-github
Expand Down Expand Up @@ -96,6 +96,6 @@ johanbrook:publication-collector
# meteorhacks:sikka # additional ddp, login security

# Custom Packages
facebook-config-ui
google-config-ui
twitter-config-ui
facebook-config-ui@1.0.0
google-config-ui@1.0.0
twitter-config-ui@1.0.0
2 changes: 1 addition & 1 deletion .meteor/release
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[email protected].3.2
[email protected].4.1
28 changes: 14 additions & 14 deletions .meteor/versions
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
abernix:[email protected]
abernix:[email protected]
[email protected].15
[email protected].16
[email protected]
[email protected].1
[email protected].2
[email protected]
[email protected].4
[email protected].5
[email protected]
alanning:[email protected]
aldeed:[email protected]
Expand All @@ -19,7 +19,7 @@ [email protected]
[email protected]
[email protected]
[email protected]
babel-compiler@6.14.1
babel-compiler@6.18.2
[email protected]
[email protected]
[email protected]
Expand Down Expand Up @@ -59,26 +59,26 @@ chuangbo:[email protected]
[email protected]_4
dburles:[email protected]
[email protected]
[email protected].3
[email protected].4
[email protected]
[email protected]
[email protected].13
[email protected].14
[email protected]
[email protected]
dispatch:mocha@0.2.0
dispatch:mocha@0.3.0
dispatch:[email protected]
ecmascript@0.6.3
ecmascript@0.7.3
[email protected]
[email protected]
email@1.1.18
email@1.2.0
[email protected]
[email protected]
[email protected]
[email protected]
gadicc:[email protected]
[email protected]
[email protected]
[email protected].0
[email protected].3
[email protected]
[email protected]
[email protected]
Expand Down Expand Up @@ -116,8 +116,8 @@ [email protected]
[email protected]
[email protected]
[email protected]
modules@0.7.9
[email protected].9
modules@0.8.2
[email protected].10
momentjs:[email protected]
[email protected]
[email protected]
Expand All @@ -141,7 +141,7 @@ [email protected]
raix:[email protected]
raix:[email protected]
[email protected]
[email protected].7
[email protected].8
[email protected]
[email protected]
[email protected]
Expand Down Expand Up @@ -169,5 +169,5 @@ [email protected]
[email protected]
[email protected]
vsivsi:[email protected]
[email protected].14
[email protected].15
[email protected]
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM reactioncommerce/base:v1.2.2
FROM reactioncommerce/base:v1.3.0

# Default environment variables
ENV ROOT_URL "http://localhost"
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ cd reaction
reaction
```

_Reaction requires Meteor, Git, MongoDB, OS Specific Build Tools, and (optionally) ImageMagick. See our [Requirements Docs](https://docs.reactioncommerce.com/reaction-docs/master/requirements) for requirements installation information._

For more information on setup and configuration, check out the [installation](https://docs.reactioncommerce.com/reaction-docs/development/installation) and [configuration](https://docs.reactioncommerce.com/reaction-docs/development/configuration) docs.

## Participation
Expand Down Expand Up @@ -70,7 +72,7 @@ Docker images are pushed when Reaction sucessfully builds and passes all tests o

### Contributing

Want to contribute? That's great! [Here's you can get started](https://guides.github.com/activities/contributing-to-open-source/#contributing).
Want to contribute? That's great! [Here's how you can get started](https://guides.github.com/activities/contributing-to-open-source/#contributing).

Check out our Issues page, and if you find something you want to work on, let us know in the comments. If you're interested in a particular [project](https://github.com/reactioncommerce/reaction/projects) and you aren’t sure where to begin, feel free to ask. Start small!

Expand Down
2 changes: 2 additions & 0 deletions client/modules/accounts/templates/members/member.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ const getPermissionMap = (permissions) => {
*/
Template.member.events({
"click [data-event-action=showMemberSettings]": function () {
$(".customerUsageType input").val(""); // form reset
$(".customerUsageType").addClass("hide"); // form reset
Reaction.setActionViewDetail({
label: "Permissions",
i18nKeyLabel: "admin.settings.permissionsSettingsLabel",
Expand Down
21 changes: 1 addition & 20 deletions client/modules/core/startup.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,6 @@ import { Meteor } from "meteor/meteor";
import { Tracker } from "meteor/tracker";
import Reaction from "./main";

// @see https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
let hidden;
// let visibilityState; // keep this for a some case
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
// visibilityState = "visibilityState";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
// visibilityState = "mozVisibilityState";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
// visibilityState = "msVisibilityState";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
// visibilityState = "webkitVisibilityState";
}

/**
* Startup Reaction
* Init Reaction client
Expand All @@ -30,16 +13,14 @@ Meteor.startup(function () {
return Tracker.autorun(function () {
const userId = Meteor.userId();
// TODO: maybe `visibilityState` will be better here
let isHidden;
let loggingIn;
let sessionId;
Tracker.nonreactive(function () {
isHidden = document[hidden];
loggingIn = Accounts.loggingIn();
sessionId = amplify.store("Reaction.session");
});
if (!userId) {
if (!isHidden && !loggingIn || typeof sessionId !== "string") {
if (!loggingIn || typeof sessionId !== "string") {
Accounts.loginWithAnonymous();
}
}
Expand Down
4 changes: 3 additions & 1 deletion client/modules/router/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,9 @@ export function ReactionLayout(options = {}) {
if (Reaction.Subscriptions.Shops.ready()) {
const shop = Shops.findOne(Reaction.getShopId());
if (shop) {
const newLayout = shop.layout.find((x) => selectLayout(x, layout, workflow));
const sortedLayout = shop.layout.sort((prev, next) => prev.priority - next.priority);
const newLayout = sortedLayout.find((x) => selectLayout(x, layout, workflow));

// oops this layout wasn't found. render notFound
if (!newLayout) {
BlazeLayout.render("notFound");
Expand Down
1 change: 1 addition & 0 deletions client/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
<meta name="fragment" content="!">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<noscript><div style="padding: 40px; font-size: 200%; text-align: center;">This site requires JavaScript. Please enable it in your browser settings.</div></noscript>
<script type="text/javascript">window.prerenderReady = false;</script>
</head>
5 changes: 0 additions & 5 deletions imports/plugins/core/checkout/register.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,39 +42,34 @@ Reaction.registerPackage({
workflow: "coreCartWorkflow",
container: "checkout-steps-main",
audience: ["guest", "anonymous"],
priority: 1,
position: "1"
}, {
template: "checkoutAddressBook",
label: "Shipping Billing",
workflow: "coreCartWorkflow",
container: "checkout-steps-main",
audience: ["guest", "anonymous"],
priority: 2,
position: "2"
}, {
template: "coreCheckoutShipping",
label: "Shipping Options",
workflow: "coreCartWorkflow",
container: "checkout-steps-main",
audience: ["guest", "anonymous"],
priority: 3,
position: "3"
}, {
template: "checkoutReview",
label: "Review Payment",
workflow: "coreCartWorkflow",
container: "checkout-steps-side",
audience: ["guest", "anonymous"],
priority: 4,
position: "4"
}, {
template: "checkoutPayment",
label: "Complete",
workflow: "coreCartWorkflow",
container: "checkout-steps-side",
audience: ["guest", "anonymous"],
priority: 5,
position: "5"
}]
});
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
import React, { Component, PropTypes } from "react";
import moment from "moment";
import { Icon } from "/imports/plugins/core/ui/client/components";
import { i18next } from "/client/api";

class EmailTableColumn extends Component {
static propTypes = {
data: PropTypes.object,
data: PropTypes.oneOfType([
PropTypes.string,
PropTypes.instanceOf(Date)
]),
metadata: PropTypes.object,
rowData: PropTypes.object
}
Expand Down
33 changes: 16 additions & 17 deletions imports/plugins/core/orders/client/components/lineItems.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class LineItems extends Component {
<div className="order-items">
<div
className="invoice order-item form-group order-summary-form-group"
onClick={() => handleClick(uniqueItem.cartItemId)}
onClick={() => handleClick(uniqueItem._id)}
style={{ height: 70 }}
>

Expand All @@ -42,7 +42,7 @@ class LineItems extends Component {
</div>

<div className="order-detail-quantity">
{quantity || 1}
{quantity || uniqueItem.quantity}
</div>

<div className="order-detail-price">
Expand All @@ -56,7 +56,7 @@ class LineItems extends Component {
);
}

renderLineItemInvoice(uniqueItem, shippingRate, quantity) {
renderLineItemInvoice(uniqueItem) {
return (
<div>
<div className="order-summary-form-group">
Expand All @@ -69,14 +69,14 @@ class LineItems extends Component {
<div className="order-summary-form-group">
<strong><Translation defaultValue="Shipping" i18nKey="cartSubTotals.shipping"/></strong>
<div className="invoice-details">
{formatPriceString(shippingRate)}
{formatPriceString(uniqueItem.shipping.rate)}
</div>
</div>

<div className="order-summary-form-group">
<strong>Item tax</strong>
<div className="invoice-details">
{uniqueItem.taxDetail ? formatPriceString(uniqueItem.taxDetail.tax / quantity) : formatPriceString(0)}
{uniqueItem.taxDetail ? formatPriceString(uniqueItem.taxDetail.tax / uniqueItem.quantity) : formatPriceString(0)}
</div>
</div>

Expand All @@ -92,10 +92,10 @@ class LineItems extends Component {
<div className="invoice-details">
{uniqueItem.taxDetail ?
<strong>
{this.calculateTotal(uniqueItem.variants.price, shippingRate, uniqueItem.taxDetail.tax)}
{this.calculateTotal(uniqueItem.variants.price, uniqueItem.shipping.rate, uniqueItem.taxDetail.tax)}
</strong> :
<strong>
{this.calculateTotal(uniqueItem.variants.price, shippingRate, 0)}
{this.calculateTotal(uniqueItem.variants.price, uniqueItem.shipping.rate, 0)}
</strong>
}
</div>
Expand All @@ -107,22 +107,21 @@ class LineItems extends Component {

render() {
const { uniqueItems, isExpanded, onClose } = this.props;

return (
<div>
{uniqueItems.map((uniqueItem) => {
if (!isExpanded(uniqueItem.cartItemId)) {
if (!isExpanded(uniqueItem._id)) {
return (
<div key={uniqueItem.cartItemId}> { this.renderLineItem(uniqueItem.items[0], uniqueItem.items.length) } </div>
<div key={uniqueItem._id}> { this.renderLineItem(uniqueItem) } </div>
);
}

return (
<div className="roll-up-invoice-list" key={uniqueItem.cartItemId}>
<div className="roll-up-invoice-list" key={uniqueItem._id}>
<div className="roll-up-content">

<div style={{ float: "right" }}>
<button className="rui btn btn-default flat icon-only" onClick={() => onClose(uniqueItem.cartItemId)}>
<button className="rui btn btn-default flat icon-only" onClick={() => onClose(uniqueItem._id)}>
<i
className="rui font-icon fa-lg fa fa-times"
/>
Expand All @@ -131,12 +130,12 @@ class LineItems extends Component {

<br/><br/>

{uniqueItem.items.map((item) => (
<div key={item._id}>
{ this.renderLineItem(item) }
{ this.renderLineItemInvoice(item, uniqueItem.shippingRate, uniqueItem.items.length) }
{[...Array(uniqueItem.quantity)].map((v, i) =>
<div key={i}>
{ this.renderLineItem(uniqueItem, 1) }
{ this.renderLineItemInvoice(uniqueItem) }
</div>
))}
)}

</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ class LineItemsContainer extends Component {

render() {
const { invoice, uniqueItems } = this.props;

return (
<TranslationProvider>
<LineItems
Expand Down
Loading

0 comments on commit 96074a4

Please sign in to comment.