New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.20.0 (Working Branch) #1893

Merged
merged 34 commits into from Mar 13, 2017

Conversation

@kieckhafer
Member

kieckhafer commented Feb 23, 2017

Release 0.20.0 will focus on bug fixes and polish.

https://waffle.io/reactioncommerce/reaction?milestone=v0.20.0

Major Features

  • Added UI to allow switching between templates on the Product Detail Page ( #1909 )
  • Avalara Tax integration ( #1870 )

Other Features

  • New meta key in registry ( #1865 )
    -- Allow package registry to override default meta title ( #1865 )
    -- Allow packages to determine the size of their actionView panel
  • Better organization of localization options ( #1947 )

Other Changes / Fixes

  • Convert various dashboard panels to React ( #1848 , #1854 , #1947 )
  • Add switch component to list item in dashboard ( #1936 )
  • Various Lint fixes ( #1937 )
  • Add feedback / loading spinner when waiting on refund data ( #1926 )
  • Update product handle when title changes ( #1898 )
  • Fix Sold Out / Low Inventory warning always showing on products in search view ( #1904 )
  • Add context to actionView / sidebar throughout checkout process ( #1932 , #1956 )
  • Remove inventory subscription that is not in use ( #1951 )
  • Get package data by shopId, in addition to package name ( #1949 )
  • Localization of currency in order emails ( #1957 )

Breaking Changes

  • #1914 - We have removed react-bootstrap from our npm packages. If you need react-bootstrap, you can re-add it to your dependencies.

Contributors

@reactioncommerce/core
@reactioncommerce/engineering
@lcampanis
@hrath2015

kieckhafer and others added some commits Feb 23, 2017

Rewrite example payment settings pane to react #1817 (#1848)
* Have base to be release20

* Nitpick change on index
Convert social settings to React with new cards (#1854)
* Convert social settings to React with new cards

* Save card open state

* Add new SettingsCard component

 - SettingsCard component wraps many components necessary for a
dashboard settings card.
- Added method for updating user preferences

* Added a custom React semi-auto Form component

To help standardize all settings cards a new `Form` component has been
added that can use `SimpleSchema` to generate a basic, single level
form with validation.

* Update social settings and form component

- Add success message on submit
- Remove unused code
- Fix glitch with auto form and error messages

* Added prop type for switchName

@kieckhafer kieckhafer added this to the v0.20.0 milestone Feb 28, 2017

mikemurray and others added some commits Mar 1, 2017

1907 PDP template switcher (#1909)
* Add the ability to switch PDP template

Adds a select box to the PDP Admin view which allows a user to switch
between different registered templates.

* Add a templateFor array for tagging templates for specific views

* Removed console log

* Update select with i18n
Added switch component to list item (#1936)
* Added switch component to list item

* Remove unused prop
Remove broken check for bulk write support (#1929)
* Remove broken check for bulk write support

* Check that batch is not empty before trying to execute it
State feedback capture payment 1243 (#1926)
* Add a spinner to capture payment button

* Add conditional display of spinner

* Add loading state onto capture payment button

* Add loading state for refunds

* Disable the buttons when spinner is displayed/ when loading

* Remove unnecessary import

* Add loading state while waiting for refunds
remove react-bootstrap (#1914)
* remove unused email setting dashboard tab

* camelCase filenames

* pull

* remove unused templates

* remove unneeded limit function (griddle includes this)

* remove no longer needed functionality

* update email publication

* remove react-bootstrap

* i18n updates

* add new sizes to actionView via registry

* customize griddle columns for data display

* remove react-bootstrap

* switch TextField to Reaction version

* pass correct props to select field

* move i18n into package

* ALL CAPS

* remove FieldGroup component

* remove fieldGroup component

* remove fieldGroup component

* remove react-bootstrap
Update product handle when title changes (#1898)
* Update product handle when title changes

Ensure the handle is always set to the slugified product title, custom
input from user, the product id.

* Remove log statement

* Redirect on handle change

* Fix product grid link to use published product handle, not revision

* Better handling for validation errors

- Catch collection error
- Force update component with validation error so blank fields like
product title, will get the original title put back to keep it from
being blank

* Update logic for product handle update
Fix search isSoldOut issue (#1904)
* allow denormalization of certain fields outside of revision control

* allow denormalization of certain fields outside of revision control
Fix Sidebar Context (#1932)
* Show Sidebar shipping in checkout

* Set actionView after payment checkout step

* Hide sidebar on entry to profile page
Updated i18n settings panel (#1947)
* Updated i18n settings panel

- added new package for i18n settings
- converted to react
- added currency list
- added ability to save open state to SettingsCard to user preferences
- added ability to pluck fields in form component to enable concise
forms

* Update currency lists in admin

- Only show enabled currencies in dropdown
- Do not sure updatedAt field

* Added ability to toggle all on or all off for languages and currencies

* Removed unused code

* Updated colors for card toolbar

* fix props to show correct attribute

* fixes z-index issue on select container

* fix language props

* fix prop to show enabled languages only
Avalara Tax Compliance (#1870)
* Save company object from Avalara API

* Load `appVersion` from package,json at startup. Create global `getAppVersion`

* create avaGet function to pass in extra header info. Add getTaxCodes function

* Extend plugin to also provide tax codes

* Add Test connection option in Avalara admin dashboard

* Send taxCode along with cart/orders

* Capture full tax detail in "taxes" field

* Update Test Credentials to use companyCode API

* Add input field for shipping tax code

* Add provides: taxCodes API to taxcloud

* add itemCode to cart/order payload

* use item id as line number. Pass in correct productId

* Pass in shipping as additional non-taxable (based on taxcode) item

* allow avaPost/avaGet to be used asynchronously

* Add setting to turn off tax calculation separately from disabling the module

* Add the rest of the fields to the form (except validation countries)

* Use correct UID and correct URL for getTaxCode

* Add setup for address validation by country

* Don't commit documents when commit is turned off. Eliminate unneeded functions

* Eliminate async versions of avaGet/avaPost. These should never be called by external module

* Add defaults for new configuration settings. Make shippingTaxCode required

* Make get/post methods use timeout, do some logging.

* Don't do address validation when package is disabled, even when addressvalidation is enabled

* Enable addressValidation by default

* Enable addressValidation by default

* Fix date parameter

* Merge. Fix conflicts.

* Modify auth arg for test credentials setup

* Extend timeout during test credentials call

* Limit address validation country options to US and CA

* Fix returned object for non-validated addresses

* Log Avalara details to custom Avalogger

* Set new defaults

* Add tax settings to account profile page

* Update account find for taxsettings to subscribe

* Only log if logging is enabled

* Write out Avalara requests to Logs collection via Bunyan logger

* Add log retention duration setting

* Add jobs to cleanup logs older than configured setting

* Add logs subscription that totally doesn't work

* Add logs publication

* Get logs and pass into Template

* Add Log-specific wrapper for Griddle

* Show individual log records in detail form

* Refine grid and detail results

* Populate entity codes and plug into taxCalc

* Use new field names confirmed by AvaTax

* Add taxSettings to recordOrder

* Update entity code field key

* removed excess panel wrapper around griddle table

* Add translations

* Show tax settings only if avalara enabled

* Fix import order.

* Setup error handling on Avalara methods

* Add dimensions/tax code to PDP (#1931)

* Edit product's schema file to include product dimensions

* Add product dimensions in variant form

* Edit product's schema and product admin form to include country of origin

* Edit product's schema and product admin form to include tax description

* Edit product's schema and product variant form to include origin country (yet to pre-populate from product's origin country)

* Edit variant form to include list of tax codes

* Refactor listTaxCodes method

* Refactor listTaxCodes method to use template state instead of sessions

* Refactor listTaxCodes method to use template state instead of sessions - template state now works

* Edit taxCodes schema to include more descriptive fields

* Include server method to save tax codes to TaxCodes collection

* (First attempt) saving taxcodes to database

* Successfully fetching taxcodes from database

* Add error block in fetching from db method

* change value of taxcode being saved in product details

* Adding select2 package

* Using select2 to display tax codes in nicer looking select box

* Correcting import order

* Editing required fields in product schema

* Using plain select field to display tax codes

* Remove tax code label; add select2 call in onRendered function instead of onCreated

* Displaying default tax code as selected in select box

* Removing unused meteor package; correcting import order

* Throwing more descriptive meteor error on insertTaxCodes method

* Display simple input box if tax provider is not enabled

* Correct the way we test for validation on address2

* Remove extra panel divs

* Add account ID to account management screen

* Adjust log details for when there is no document type

* Rename files to match style guide

* Use individual taxSettings form each account

* Add check to prevent populating duplicates

* Fix reference to accountschema

* Fix form update to corresponding accounts

* Add unique tax setting by customer to Avalara payload

* Fix exception error on geoCoder call

* Only pass in regions when it's a "country with regions"

* Revert "Only pass in regions when it's a "country with regions""

This reverts commit b809085.

* Create a refundReference which is cartId + date

* Ignore line items are not marked taxable

* Move taxDescription down to the variant level and pass if exists

* Move tax settings form into manage sidebar

* Fix tax settings saving bug

* Renamed files to fit style guide

* Don't allow a wide-open Account publication

* Remove unnecessary subscription

* Don't call API if entity codes is already populated

* Simplify logic for returning no results

* Don't select a tax rate but a tax code

* Rename function

* Properly set Avalara countryList defaultValues

* Eliminate extra slash

* Eliminate all extra slashes

* Check to ensure data is returned from API

* Also log errors in Avalogger. Correctly filter for taxable items.

* Require shopId

* linting fixes

* Add label to plain select. Rename method

* JSDoc linting

* Remove unused import

* Remove unused import

* Linting

* Check configuration and throw meaningful errors if not configured properly

* Add level to log so we can filter for errors

* Tweak HTML and styling in settings panel

* Fix i18n and timeout on testCredential

* Log error with error log level

* Moving select2 under community packages

* Adding error checks to taxcodes method

* Skip config check when testing credentials

* Trigger form validation before testcredentials

* Use native methods for assign and each

* Handle error on populating Avalara entity codes

* Add i18n for custom label

* Move i18n entry to appropriate module

* Move exemption settings into avalara module

* Implement i18n for missing fields in PDP

* Fix CircleCI failed tests

* Fix CircleCI failed tests

* Revert "Fix CircleCI failed tests"

This reverts commit 3b238a8.

* Revert "Fix CircleCI failed tests"

This reverts commit 66f0f78.

* Removing empty selector per CR

* Use import rather than fs to get package.json

* Change per CR

* Restructure Class syntax per CR

* Put back "Custom Packages" header

* Add TODO

* Changing default timeout to 3000 ms

* Correct error name and make error message more specific

* - updated Accounts publication name

- Update Accounts.single to UserAccount
Fix: Dashboard panel keeps re-opening during checkout (#1956)
* Show sidebar only if shipping is not configured

* Refactor: Show sidebar only if shipping is not configured

* Fix to show sidebar only if payment is not configured
localize prices in emails (#1957)
* add GetShopCurrency helper

* update cart currency when user changes currency

* update schema to include currency in cart / order

* add userCurrency and exchangeRate to carts orders

* update email templates to display formatted price

* update user emails to use user currency
@aaronjudd

This comment has been minimized.

Show comment
Hide comment
@aaronjudd

aaronjudd Mar 11, 2017

Contributor

On PDP Tax UI, Origin Country should use the countries collection / provide a dropdown for the product origination. I very much doubt people will want to type in Country every time, and also doubt they'd type the right country value every time.

Contributor

aaronjudd commented Mar 11, 2017

On PDP Tax UI, Origin Country should use the countries collection / provide a dropdown for the product origination. I very much doubt people will want to type in Country every time, and also doubt they'd type the right country value every time.

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

I have reaction reset a couple of times and I see the 404 every time when I try to edit the variant on a newly created product.

Steps to reproduce

  1. reaction reset -n
  2. Select "Add Product" from the dropdown
  3. Enter data for Title, Subtitle, Description, and Vendor.
  4. Click on the pencil icon next to variant where it says "Label"
  5. Observe the "Ooops! This is not the product you were looking for" message.
Member

zenweasel commented Mar 11, 2017

I have reaction reset a couple of times and I see the 404 every time when I try to edit the variant on a newly created product.

Steps to reproduce

  1. reaction reset -n
  2. Select "Add Product" from the dropdown
  3. Enter data for Title, Subtitle, Description, and Vendor.
  4. Click on the pencil icon next to variant where it says "Label"
  5. Observe the "Ooops! This is not the product you were looking for" message.
@aaronjudd

This comment has been minimized.

Show comment
Hide comment
@aaronjudd

aaronjudd Mar 11, 2017

Contributor

@zenweasel re: product variant, ok now it's reproduceable. the url that it's going to is http://localhost:3000/reaction/product/<new product title>/id. I think that in this case title has not yet been published as the handle.

Contributor

aaronjudd commented Mar 11, 2017

@zenweasel re: product variant, ok now it's reproduceable. the url that it's going to is http://localhost:3000/reaction/product/<new product title>/id. I think that in this case title has not yet been published as the handle.

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

Not a blocker or a big deal, but I think currencies should be sorted in the currency enable/disable panel. Just because they appear mostly sorted so it's confusing.

Member

zenweasel commented Mar 11, 2017

Not a blocker or a big deal, but I think currencies should be sorted in the currency enable/disable panel. Just because they appear mostly sorted so it's confusing.

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

Visual corruption when clicking on the "Base Currency" dropdown in the localization panel
dumb-product

Member

zenweasel commented Mar 11, 2017

Visual corruption when clicking on the "Base Currency" dropdown in the localization panel
dumb-product

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

Same for Unit of Measure
dumb-product

Member

zenweasel commented Mar 11, 2017

Same for Unit of Measure
dumb-product

@aaronjudd

This comment has been minimized.

Show comment
Hide comment
@aaronjudd

aaronjudd Mar 11, 2017

Contributor

re: avalara errors. The error level doesn't feel correct at FATAL, our logging docs imply that these should likely be WARN, because in the case of adding to the PDP data, it's not likely to cause any specific PDP error. More generally the fact that that Avalara is enabled, but not configured might warrant an ERROR, and a client warning somewhere, just not sure that the PDP is the place for it.

Contributor

aaronjudd commented Mar 11, 2017

re: avalara errors. The error level doesn't feel correct at FATAL, our logging docs imply that these should likely be WARN, because in the case of adding to the PDP data, it's not likely to cause any specific PDP error. More generally the fact that that Avalara is enabled, but not configured might warrant an ERROR, and a client warning somewhere, just not sure that the PDP is the place for it.

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

@aaronjudd re: avalara Understood. I had hoped that we could utilize the Logs collection to somehow surface global errors to admin. Making logging some sort of configuration-error shows a global warning in the dashboard. Next

I do think the PDP is one place where they should be notified that Avalara is not configured correctly, because they will not be able to assign the correct Tax Code. I will work on making that messaging more clear and context-appropriate.

Member

zenweasel commented Mar 11, 2017

@aaronjudd re: avalara Understood. I had hoped that we could utilize the Logs collection to somehow surface global errors to admin. Making logging some sort of configuration-error shows a global warning in the dashboard. Next

I do think the PDP is one place where they should be notified that Avalara is not configured correctly, because they will not be able to assign the correct Tax Code. I will work on making that messaging more clear and context-appropriate.

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

The "Email logs" panel collapses every time there is a new update e.g. a new email is sent.

Member

zenweasel commented Mar 11, 2017

The "Email logs" panel collapses every time there is a new update e.g. a new email is sent.

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 11, 2017

Member

If I go into the SMS settings panel and save settings. I get the "Saved Successfully" message, but the button never goes back to "Save" so I can't save any more changes.

basic_reaction_product

Member

zenweasel commented Mar 11, 2017

If I go into the SMS settings panel and save settings. I get the "Saved Successfully" message, but the button never goes back to "Save" so I can't save any more changes.

basic_reaction_product

@zenweasel

There's a couple of blockers in the comments (including a couple of mine)

Show outdated Hide outdated client/modules/accounts/templates/profile/profile.js Outdated
Show outdated Hide outdated client/modules/core/main.js Outdated
Show outdated Hide outdated client/modules/i18n/templates/currency/currency.js Outdated
Show outdated Hide outdated imports/plugins/core/email/client/components/emailLogs.js Outdated
}
}
EmailLogs.propTypes = {

This comment has been minimized.

@zenweasel

zenweasel Mar 11, 2017

Member

Eslint is giving me an error here saying the 'data' is missing in props validation

@zenweasel

zenweasel Mar 11, 2017

Member

Eslint is giving me an error here saying the 'data' is missing in props validation

Show outdated Hide outdated imports/plugins/included/product-detail-simple/lib/layout/twoColumn.js Outdated
@@ -203,10 +206,22 @@ export default {
return settings.settings || {};
},
getShopCurrency() {

This comment has been minimized.

@zenweasel

zenweasel Mar 11, 2017

Member

Did you intend to add this function twice? If so, see my comment on other instance.

@zenweasel

zenweasel Mar 11, 2017

Member

Did you intend to add this function twice? If so, see my comment on other instance.

This comment has been minimized.

@kieckhafer

kieckhafer Mar 13, 2017

Member

Yeah, one for server, one for client.

@kieckhafer

kieckhafer Mar 13, 2017

Member

Yeah, one for server, one for client.

This comment has been minimized.

@zenweasel

zenweasel Mar 13, 2017

Member

Got it. Makes sense.

@zenweasel

zenweasel Mar 13, 2017

Member

Got it. Makes sense.

This comment has been minimized.

@kieckhafer

kieckhafer Mar 13, 2017

Member

Fixed in PR #1973

@kieckhafer

kieckhafer Mar 13, 2017

Member

Fixed in PR #1973

Show outdated Hide outdated server/methods/core/cart.js Outdated
Show outdated Hide outdated server/methods/core/cart.js Outdated
Show outdated Hide outdated server/methods/core/cart.js Outdated

@zenweasel zenweasel self-requested a review Mar 12, 2017

@zenweasel

This comment has been minimized.

Show comment
Hide comment
@zenweasel

zenweasel Mar 12, 2017

Member

Changed "Origin Country" from text to select in PR: #1967

Member

zenweasel commented Mar 12, 2017

Changed "Origin Country" from text to select in PR: #1967

@zenweasel zenweasel removed their request for review Mar 12, 2017

@mikemurray

This comment has been minimized.

Show comment
Hide comment
@mikemurray

mikemurray Mar 13, 2017

Member

@zenweasel fixed the issue with the variant 404 with new product handle: #1893 (comment)

Member

mikemurray commented Mar 13, 2017

@zenweasel fixed the issue with the variant 404 with new product handle: #1893 (comment)

@mikemurray

This comment has been minimized.

Show comment
Hide comment
@mikemurray

mikemurray Mar 13, 2017

Member

Sorta fixed. #1893 (comment)

While the dropdown will no longer overlap one another, the arrow for the panel will still be above the dropdown in some cases.

I removed the z-index that @kieckhafer and I added to fix this, as it causes more issues than it resolves.

Member

mikemurray commented Mar 13, 2017

Sorta fixed. #1893 (comment)

While the dropdown will no longer overlap one another, the arrow for the panel will still be above the dropdown in some cases.

I removed the z-index that @kieckhafer and I added to fix this, as it causes more issues than it resolves.

mikemurray and others added some commits Mar 13, 2017

linting and minor error fixes (#1973)
* remove extra unneeded check for userId

This was causing the Logger error we were seeing

* update import order

* change way of calling userId

* fixed Shops.findOne

* updated variable name

* removed html error code from meteor error

* cart.billing should now be defined to include currency

* setting default currency if shop.currency is unavailable

* update client to match server

* lint fixes
Avalara error handling (#1968)
* Taxcloud doesn't really support getTaxCodes yet

* Ok, calm down

* Taxcloud doesn't really provide taxCodes yet

* Log Tax code errors to Logs collection rather than throwing a Meteor.Error

* Add missing import

* Use name from namespaced provides rather than name

* Pulling tax codes from TaxCloud

* Configure saving taxcloud taxes to db and displaying them
@aaronjudd

Approved for merge into development.

@kieckhafer kieckhafer merged commit 30c0e64 into development Mar 13, 2017

3 checks passed

ci/circleci Your tests passed on CircleCI!
Details
licence/cla Contributor License Agreement is signed.
Details
security/snyk No new vulnerabilities
Details

@kieckhafer kieckhafer removed the review label Mar 13, 2017

@kieckhafer kieckhafer deleted the wip-release-0.20.0 branch May 10, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment