-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Check if billing address exists #1386
Conversation
Prevents exception if there is no billing address
Thanks @priezz! I definitely agree that we need more useful debugging data in the logs, but I'm not sure that particular formatting of the logger arguments is ideal. I think we probably need to standardize that kind of stuff so that when we make use of the bunyan log output in the future (for things like Loggly, Logstash, etc.), the JSON is outputs always has the same format. Right now, there's not really much consistency with that. Probably even better for a case like this would be implementing a child logger (which was on the "some day" roadmap already) so that every log in that method/hook/whatever gets consistent output. For example, see how I did it in Launchdock. Every So I'm not saying it needs to look exactly like that. Just saying I think it'd be useful for us to start discussing and enforcing some logging standards. Maybe we could even add some wrapper that does arg checks on the Logger methods. We obviously don't need to have this completely sorted out to accomplish your PR, but I'd definitely like to at least discuss log formatting with @aaronjudd first. And thanks for the contribution! |
Hi, Jeremy! Thank you for your feedback. Actually, this PR is more about the What I don't like to do - is copy/pasting, even if it is just 5 lines. What about the wrapper around
So, for event handlers it would be |
@aaronjudd Doesn't the existing code already check for a payment method? He is just adding a check whether the billing address exists before checking for a property on it so it doesn't throw an |
exactly |
👍 |
* Added babelrc and stage-2 preset (#1329) * Meteor 1.4.1.1 (#1331) * [email protected] - [email protected] - updated Meteor packages, collections2 * version 0.15.2 * move plugin loader from startup to reaction-cli (#1332) * preserve custom profile fields in Accounts.onCreateUser (#1335) * copy deprecated cfs:gridfs to local and update npm deps (#1336) * rounding of total to negate fractions of cents * updated version - release 0.15.3 * Josh acceptance test setup user permissions (#1315) * First round setting up acceptance test capabilities * webdriver working * adding meteor ignore file structure * create tests directory * adding png to gitignore * element maps * More progress on functional test setup * fixed assert * using dot notation * adding chai to dev packages * Begin adding acceptance testing instructions to readme * Simple login test complete * Adding to readme about failed tests screenshots * adding stuff * Core permissions acceptance test * more fixes * went off the deep end. added some low hanging fruit tests * enabling all passing tests for now * fixed userAddress call * removing docs from main readme * linting for config fixed * more cleanup * additional cleanup * using chrome instead of firefox now since ff is borked * adding refund test * a couple more refund tests w/ a couple fixes Will add more assertions later for these tests. * adding new tests to runner * argh * remove screenshot * remove ignore of all .png * updated package.json * updated reaction.json.example * finishing up PR * lint cleanup * temp workaround for missing product in store * A couple locator changes - commented out broken stripe tests * persistent profile language (#1338) * allow multiple languages in Translations - allow array to pass multiple languages in addition to shopLanguage. * updated i18next and Translation load order * remove session handling from i18n - remove “language” session - rely on Meteor.user updates (stored lang in profile) - update i18nchooser helpers to insert user profile lang into selected element class * retain language on anonymous user registration * check admin before setting lang — don’t set lang on initial admin * updated accounts.js - cleanup checks * Josh test speed increase #1347 (#1355) * turning verbosity off when running tests by default * Removing sleeps/pauses when I can * flaky test fix * #1347 cut runtime down by nearly 50% This is still just running synchronously. As tests grows we will need to look into running tests in parallel, however this might require some infrastructure in place, i.e. a hosted QA environment. An environment that can handle the load of 5-10 tests hitting it at a time. * only build Docker image on master/development (#1359) * only build Docker image on master/development * chmod +x * fix CI script typos * load default user from env (#1369) resolves #1368 * remove duplicate translation * remove duplicate translations * Shipping 1320 (#1357) * disabled ranges - TODO ranges are not functional yet. * update shipping form methods * remove settings from registry * update swal version - updated sweetAlert2 version * export Import, Fixture - export Fixture independently of Import - refactor Import.shipping to use a modified key - refactor load-data to use Fixture * updated Shipping schema * updated shipping method names - breaking change: shipping method names updated to follow convention of Reaction `updateShippingMethods` becomes `shipping/methods/update`. - adds `shipping/provider/remove` method * add missing import * convert info logging to debug * updated form methods - update form methods - add SWAL2 confirmations * add handling to cart rates - if `handling` has data add `handling` to `rate`. * updated cartTransforms - updated to use own methods and parse float to ensure consistent results. * move shipping from included to core like taxes, the core will include flat rates and the ui handling for additional shipping methods, which will be added to included - in the form of `shipping-shippo` etc. * remove card cursor:pointer (#1384) Resolves #1309 * Product Search (#1350) * Mock Search Files * Mock Search Files * Remove addProduct method * Remove Fixtures to remove mystery Shop * Super limited, even for a fake search * Don't overwrite the descriptions on first run * Larger data set for testing * Don't log unless we are actually adding Search Products * A simple weighted product search * Split out plug ins into "search" and "searchEngine" plugs. * Improve product title search, add search settings panel * Add in variant search * Add more options for weighting. Make the settings panel better. * Add tags to results and search on description * Rename plugin to be consistent with others * Add example config file * New test data with "show store" model with tags * Simple product subscription that returns products and facets (tags) for a searchterm * Only return ids and names of tags (we will eventually only return ids, but names for readability for now) * Filter by tags * We only need one plugin since our decoupling is provided by the use of a publication * Rename plugin * Using Mongo full-text search rather than regex search * Using Mongo full-text search rather than regex search * alphabetize base-style imports * Add in hooks to keep PS collection updated * Move build/rebuild functions into module * New settings for fields and weights * New settings for fields and weights * add in hooks * New settings for fields and weights * Build PS collection dynamically based on configuration * Add in vendor to list of possible fields * initial push of search UI * Move collections to lib so that clients can subscribe * Add shopId to required fields * Move collections to global collections * Use ProductSearch collection on the client side * Filter tags by hashtags in ProductSearch results * Populate template with search results * Product search results sorted by score in Ascending order * Move (re)building search collections to job queue * Handle form with a method so that we can rebuild collection or index when settings change * Queue job to rebuild indexes when weights have changed * Don't run search hooks when ProductSearch collection has not been defined * Add Order search * Namespace product settings * Don't run hooks when under test * Add missing "shopId" field * More fixes to make OrderSearch collection configurable. * Ensure index when inserting product records * testing larger datasets * Make function names less ridiculously long * Pass results without relying on the product already existing in the subscription * Don't add a bunch of products for testing by default * style cleanup * style cleanup * style cleanup * Add handle to product search collection * Clarify log statement * Ensure but don't drop collections when creating an OrderSearch record * No longer build productResults on the client * Cleanup and add `maxResults` * Cleanup settings form * Don't queue search collection jobs when under test * Search result tests * Add price to results. Make results different based upon logged-in status * Add tests for non-published products not showing up for anonymous users * Add tests for non-published products not showing up for anonymous users * Add account search, jobs, etc. * Change account search to not use text search * ui initial push * conflict temporary fix * move style into less * i18n for search * added delay on fadeout to feign smoother transition * sped up tag color transitions * componentize search results content * componentize search results grid * style updates for search modal * get media to show in searchGrid * updated id date for searchGridIcons * Use hashtags not hastags * Change order search to use a regular query plus tests * removed console.log * fixed typo * switched content order * commit of admin buttons (currently not functional) * Add support for text indexes in other supported languages * Make order search results case-insensitive * close button classes * removed outline from nav * removed additional media from search We only need to show one picture in search, for now at least * updated text * added search clear * style updates * Delete all existing records when rebuilding account search * Remove startup test files * Also remove test data files * Make logging less chatty * Allow for transformations outside of the ProductSearch method * convert tags to flexbox * style updates * adding scroll tag container * clean-up of development comments * LESS cleanup * style cleanup * style updates * 96% width input & tags formerly 80% * move some styling from search.less to navbar.less * cleanup & i18n * remove errant button * changed tag active color to ban-active * Add documentation around "supported language" as suggested by CR * added i18n to search * changed search tags to use btn classes * disable currently unused admin controls * rtl support * rtl style adjustments * Exclude anonymous users from accounts publication (#1390) * Exclude anonymous users from accounts publication when logged in as admin * NPM imports first * update deprecated _.pluck - Patch _.pluck = _.map in lodash 4.x - resolves issue introduced in #1390 * metafields -> details for client visibility (#1397) * metafields -> details for client visibility * metafields -> details * Search UI updates (#1410) * add margin-bottom to hovered product for better visibility on last product * removed font-size from .btn.flat * created react flatButton created a new react button component so we aren’t just if/elseing our way through a different type of button to get what we need. * adjustment for #1402 - added overflow toggle on body * removed font size from btn-round * allow ESC to exit modal even when not focused on input * Release 0.16.0 (#1413) * updated README.md * update to v0.16.0 * conflict fixes * updated versions * Better email (#1367) * convert email sending to use Nodemailer * add getShopSettings and getPackageSettings helpers * replace all Meteor accounts-password email methods * remove old email api * rewrite mail config methods to use nodemailer-wellknown * create emails collection for longer term log storage * add mail service to shop mail settings schema * refactor email sending job to use new API * add Meteor methods for email API * add email publication for logs page * build new email dashboard UI plugin for using new API * remove old Blaze email settings * fix alerts arg checks when callback is missing * add new FieldGroup and Loading React components * default theme cleanup * fix variables import order in default theme * dependencies updates * clean up job queue workers * update eslint config for more React details * fix custom email config * fix type handling for email config port * remove email dashboard nav tabs component until needed * add saving state and better error handling to email settings * change email status route name * remove deprecated mail config hook * add unblock to email config verify method * add host/port to conditions for custom email config check * move email methods to base of methods dir * package updates * fix comment typo * update dockerignore to reflect new location * default vals for mail host/port not needed in registry entry * fix optional email save when settings are invalid * fix email settings save button state after errors * don’t run email settings verify method if settings are missing * add log when new email settings are saved * npm updates * fix text overflow in email config panel * fix type checking on email port setting * fix syntax * i18n-ify all new email components * fix sweetalert promise * fix 118n prop * remove password from logs * force immediate retry of email job * add new column in email log table for action buttons * remove unnecessary braces * fix missing email port in UI * package updates * restore searching for email templates from the database * clean up imports method * Check if billing address exists (#1386) Prevents exception if there is no billing address * Hide user menu (#1387) Hide user menu after clicking on any link, including "add product" * Make close button work on tag nav bar in mobile mode (#1393) * Prevent no image being found if no image has priority 0. `"metadata.priority": 0` filter will fail to find an image if none has priority 0, so sort is used instead. (#1392) * Try to prevent inline alert pile (#1391) * updated pull approve to version 2 See: http://docs.pullapprove.com/ and https://blog.pullapprove.com/pullapprove-github-code-review-43761a64ea9a #.enx67rp3f * updated .pullapprove.yml * updated negative reject value * updated reset_on_push * updated pullapprove.yml * update pullapprove.yml -ARRGHHH! * package.json update for nodemailer * Install binary non-npm version of phantomjs. #1325 (#1419) * add timeout to taxes tests (#1421)
* Added babelrc and stage-2 preset (#1329) * Meteor 1.4.1.1 (#1331) * [email protected] - [email protected] - updated Meteor packages, collections2 * version 0.15.2 * move plugin loader from startup to reaction-cli (#1332) * preserve custom profile fields in Accounts.onCreateUser (#1335) * copy deprecated cfs:gridfs to local and update npm deps (#1336) * rounding of total to negate fractions of cents * updated version - release 0.15.3 * Josh acceptance test setup user permissions (#1315) * First round setting up acceptance test capabilities * webdriver working * adding meteor ignore file structure * create tests directory * adding png to gitignore * element maps * More progress on functional test setup * fixed assert * using dot notation * adding chai to dev packages * Begin adding acceptance testing instructions to readme * Simple login test complete * Adding to readme about failed tests screenshots * adding stuff * Core permissions acceptance test * more fixes * went off the deep end. added some low hanging fruit tests * enabling all passing tests for now * fixed userAddress call * removing docs from main readme * linting for config fixed * more cleanup * additional cleanup * using chrome instead of firefox now since ff is borked * adding refund test * a couple more refund tests w/ a couple fixes Will add more assertions later for these tests. * adding new tests to runner * argh * remove screenshot * remove ignore of all .png * updated package.json * updated reaction.json.example * finishing up PR * lint cleanup * temp workaround for missing product in store * A couple locator changes - commented out broken stripe tests * persistent profile language (#1338) * allow multiple languages in Translations - allow array to pass multiple languages in addition to shopLanguage. * updated i18next and Translation load order * remove session handling from i18n - remove “language” session - rely on Meteor.user updates (stored lang in profile) - update i18nchooser helpers to insert user profile lang into selected element class * retain language on anonymous user registration * check admin before setting lang — don’t set lang on initial admin * updated accounts.js - cleanup checks * Josh test speed increase #1347 (#1355) * turning verbosity off when running tests by default * Removing sleeps/pauses when I can * flaky test fix * #1347 cut runtime down by nearly 50% This is still just running synchronously. As tests grows we will need to look into running tests in parallel, however this might require some infrastructure in place, i.e. a hosted QA environment. An environment that can handle the load of 5-10 tests hitting it at a time. * only build Docker image on master/development (#1359) * only build Docker image on master/development * chmod +x * fix CI script typos * load default user from env (#1369) resolves #1368 * remove duplicate translation * remove duplicate translations * Shipping 1320 (#1357) * disabled ranges - TODO ranges are not functional yet. * update shipping form methods * remove settings from registry * update swal version - updated sweetAlert2 version * export Import, Fixture - export Fixture independently of Import - refactor Import.shipping to use a modified key - refactor load-data to use Fixture * updated Shipping schema * updated shipping method names - breaking change: shipping method names updated to follow convention of Reaction `updateShippingMethods` becomes `shipping/methods/update`. - adds `shipping/provider/remove` method * add missing import * convert info logging to debug * updated form methods - update form methods - add SWAL2 confirmations * add handling to cart rates - if `handling` has data add `handling` to `rate`. * updated cartTransforms - updated to use own methods and parse float to ensure consistent results. * move shipping from included to core like taxes, the core will include flat rates and the ui handling for additional shipping methods, which will be added to included - in the form of `shipping-shippo` etc. * remove card cursor:pointer (#1384) Resolves #1309 * Product Search (#1350) * Mock Search Files * Mock Search Files * Remove addProduct method * Remove Fixtures to remove mystery Shop * Super limited, even for a fake search * Don't overwrite the descriptions on first run * Larger data set for testing * Don't log unless we are actually adding Search Products * A simple weighted product search * Split out plug ins into "search" and "searchEngine" plugs. * Improve product title search, add search settings panel * Add in variant search * Add more options for weighting. Make the settings panel better. * Add tags to results and search on description * Rename plugin to be consistent with others * Add example config file * New test data with "show store" model with tags * Simple product subscription that returns products and facets (tags) for a searchterm * Only return ids and names of tags (we will eventually only return ids, but names for readability for now) * Filter by tags * We only need one plugin since our decoupling is provided by the use of a publication * Rename plugin * Using Mongo full-text search rather than regex search * Using Mongo full-text search rather than regex search * alphabetize base-style imports * Add in hooks to keep PS collection updated * Move build/rebuild functions into module * New settings for fields and weights * New settings for fields and weights * add in hooks * New settings for fields and weights * Build PS collection dynamically based on configuration * Add in vendor to list of possible fields * initial push of search UI * Move collections to lib so that clients can subscribe * Add shopId to required fields * Move collections to global collections * Use ProductSearch collection on the client side * Filter tags by hashtags in ProductSearch results * Populate template with search results * Product search results sorted by score in Ascending order * Move (re)building search collections to job queue * Handle form with a method so that we can rebuild collection or index when settings change * Queue job to rebuild indexes when weights have changed * Don't run search hooks when ProductSearch collection has not been defined * Add Order search * Namespace product settings * Don't run hooks when under test * Add missing "shopId" field * More fixes to make OrderSearch collection configurable. * Ensure index when inserting product records * testing larger datasets * Make function names less ridiculously long * Pass results without relying on the product already existing in the subscription * Don't add a bunch of products for testing by default * style cleanup * style cleanup * style cleanup * Add handle to product search collection * Clarify log statement * Ensure but don't drop collections when creating an OrderSearch record * No longer build productResults on the client * Cleanup and add `maxResults` * Cleanup settings form * Don't queue search collection jobs when under test * Search result tests * Add price to results. Make results different based upon logged-in status * Add tests for non-published products not showing up for anonymous users * Add tests for non-published products not showing up for anonymous users * Add account search, jobs, etc. * Change account search to not use text search * ui initial push * conflict temporary fix * move style into less * i18n for search * added delay on fadeout to feign smoother transition * sped up tag color transitions * componentize search results content * componentize search results grid * style updates for search modal * get media to show in searchGrid * updated id date for searchGridIcons * Use hashtags not hastags * Change order search to use a regular query plus tests * removed console.log * fixed typo * switched content order * commit of admin buttons (currently not functional) * Add support for text indexes in other supported languages * Make order search results case-insensitive * close button classes * removed outline from nav * removed additional media from search We only need to show one picture in search, for now at least * updated text * added search clear * style updates * Delete all existing records when rebuilding account search * Remove startup test files * Also remove test data files * Make logging less chatty * Allow for transformations outside of the ProductSearch method * convert tags to flexbox * style updates * adding scroll tag container * clean-up of development comments * LESS cleanup * style cleanup * style updates * 96% width input & tags formerly 80% * move some styling from search.less to navbar.less * cleanup & i18n * remove errant button * changed tag active color to ban-active * Add documentation around "supported language" as suggested by CR * added i18n to search * changed search tags to use btn classes * disable currently unused admin controls * rtl support * rtl style adjustments * Exclude anonymous users from accounts publication (#1390) * Exclude anonymous users from accounts publication when logged in as admin * NPM imports first * update deprecated _.pluck - Patch _.pluck = _.map in lodash 4.x - resolves issue introduced in #1390 * metafields -> details for client visibility (#1397) * metafields -> details for client visibility * metafields -> details * Search UI updates (#1410) * add margin-bottom to hovered product for better visibility on last product * removed font-size from .btn.flat * created react flatButton created a new react button component so we aren’t just if/elseing our way through a different type of button to get what we need. * adjustment for #1402 - added overflow toggle on body * removed font size from btn-round * allow ESC to exit modal even when not focused on input * Release 0.16.0 (#1413) * updated README.md * update to v0.16.0 * conflict fixes * updated versions * Better email (#1367) * convert email sending to use Nodemailer * add getShopSettings and getPackageSettings helpers * replace all Meteor accounts-password email methods * remove old email api * rewrite mail config methods to use nodemailer-wellknown * create emails collection for longer term log storage * add mail service to shop mail settings schema * refactor email sending job to use new API * add Meteor methods for email API * add email publication for logs page * build new email dashboard UI plugin for using new API * remove old Blaze email settings * fix alerts arg checks when callback is missing * add new FieldGroup and Loading React components * default theme cleanup * fix variables import order in default theme * dependencies updates * clean up job queue workers * update eslint config for more React details * fix custom email config * fix type handling for email config port * remove email dashboard nav tabs component until needed * add saving state and better error handling to email settings * change email status route name * remove deprecated mail config hook * add unblock to email config verify method * add host/port to conditions for custom email config check * move email methods to base of methods dir * package updates * fix comment typo * update dockerignore to reflect new location * default vals for mail host/port not needed in registry entry * fix optional email save when settings are invalid * fix email settings save button state after errors * don’t run email settings verify method if settings are missing * add log when new email settings are saved * npm updates * fix text overflow in email config panel * fix type checking on email port setting * fix syntax * i18n-ify all new email components * fix sweetalert promise * fix 118n prop * remove password from logs * force immediate retry of email job * add new column in email log table for action buttons * remove unnecessary braces * fix missing email port in UI * package updates * restore searching for email templates from the database * clean up imports method * Check if billing address exists (#1386) Prevents exception if there is no billing address * Hide user menu (#1387) Hide user menu after clicking on any link, including "add product" * Make close button work on tag nav bar in mobile mode (#1393) * Prevent no image being found if no image has priority 0. `"metadata.priority": 0` filter will fail to find an image if none has priority 0, so sort is used instead. (#1392) * Try to prevent inline alert pile (#1391) * updated pull approve to version 2 See: http://docs.pullapprove.com/ and https://blog.pullapprove.com/pullapprove-github-code-review-43761a64ea9a #.enx67rp3f * updated .pullapprove.yml * updated negative reject value * updated reset_on_push * updated pullapprove.yml * update pullapprove.yml -ARRGHHH! * package.json update for nodemailer * Install binary non-npm version of phantomjs. #1325 (#1419) * add timeout to taxes tests (#1421) * Renamed field_group to fieldGroup to be consistent with other files (#1417) * Fixes #1337 (#1449) * ro-translation (#1441) * publish authorize-net on npm under @reactioncommerce org (#1451) * Issue/1452 (#1453) * Fixes #1337 * Fixes #1452 * Prevent error in `cartPayerName` helper if buyer name contains non-latin characters. The latter are not accepted by payment gateways, resulting the error in the payment form. (#1432) * PDP Revisions and Revised (#1356) * Initial start for handling product revisions Changes to products / variants are diverted to a draft in the "Revisions" collection. Calling publish updates original products with revision data. * Product visibility and draft reactivity restored Allow products publication to be notified of updates if a revision changes. Expand product visibility to variants. Allow product visibility toggle to be toggled for revisions. * Cleanups and added ability to mark products as deleted * Publishing and diffs Added diffs. Added diff UI. Added publish component. Added translations for react components. * Added ability to publish multiple top level products Draft and publishing now woks from the product grid for one or many products. Clean up. * Fix show diffs toggle * tag create / remove are now properly directed to a revision. * Fixed bug preventing metadata from revision updating Fixed bug that prevented revision updating all together. * Added some tests for product handle and revisions fixed issue causing tests to not run at all. * updated lodash dependencies - should resolve failing test * updating tests for product revisions * Updated more product tests. Updated some catalog implementations to work with revision control. * Fixing more tests * Fixing even more product tests. Adding tests for revisions along with fixing broken tests. * Removing some test expects as they have no chance of every being true * PDP react start of an overhaul of PDP page to fix many outlying bugs and upgrade it to better support revision control and display of revision content. * Variant and edit component updates Added variant list container. Added variant component, updated variant list to use component. Added EditContainer component which provides an edit button based on passed in props to child component. * added child variants to variant list * Added tooltips, cart button and revision object handling * React product detail page updates Metadata for product detail page. Cleaning up react tag components. Cleaning up old react components to be used on new product detail page. * Added tags component to PDP * Updated CSS classes for react PDP media gallery * UI updates for varaints Added visibility buttons to variants and child variants Added currency helpers. Added inventory alerts to varaints * Cleanup of price formatting Price formatting was moved to currency.js. Removing functionality from the helpers file. Fixed only implementation on formatMoney with module. * Provide translation updated to product detail container * React based social component * Added pinterest button Removed generic social button. Other cleanup. * Edit buttons for everything Added edit buttons to all fields, tags, and metadata. Added component for product field. Edit buttons can now display status based on edited field. * product detail editing improvements Auto hide edit button for product fields that remain unchanged. Fixed editing behavior for multiline textfield. * removed template tag * product admin form react Add a new product admin form for managing the react version of the product detail page. * metadata management and style updates Add and remove metadata now works. Updated styles for metafields. * Adding WIP react tag list editor * React product detail page is now primary other various cleanup of PropTypes, and console logs * Remove git ignored config file * Updated textfield className handling * Add ability to define multiple fields on edit button for diffs * Product social container how handles change notifications properly * Selectable variant and child variant Added ability to prevent default action for edit container edit button click. Added functionality to show action view for editing a variant. * Cleanup product detail tags and metadata. Edit buttons for both product tags and metadata now open the ProductAdmin view in the side panel. * React based inline alert components and containers * React based drag and drop. Top variants are now draggable and sortable. Tags are now draggable and sortable. Added DragDropProvider to create a reusable dnd-core instance for react components. Added container container component for sortable items. * Create, update and remove tag functionality added. * Update style of customer facing metadata component Style of the non-editable, customer-facing metadata component now appears like a table, similar in style to the editable counterpart. * Move media gallery to core ui components * removed unused component * Media gallery upload and remove * Media gallery drag and drop sortable * Updated registry entries and media gallery Added registry entries for new product detail page. Disable registry entries for old product detail page. Fixed bug causing crash with Media Gallery and undefined variables. * Fixed erroneous display of edit buttons with permissions * Switch media gallery for ul to div * Fixed exception caused by undefined data * Add publish controls to product admin * Updated publishing workflow. Publishing a product revision now properly sets it as "published" and will allow a new draft revision to be made for any new edits after that point. This allows a history of published changes to be stored. * Updated package.json with react-dnd and react-dropzone dependencies. * Tag updates - Fixes issues related to creating new tags - Fixes issues related to updating existing tags - Fixes issue where duplicated tags are added - Adds ability to exculde tags from suggestions - Adds new midifier for hashtags in product revision update hook - Updated styling of editable tags. Edidatbe tags in admin view are now full width - Removed dead code from revision hooks * Updated some references to lodash isArray to use built in Array.isArray * Fixed broken multi-file uploads for media gallery. Cleanup of unused code. * Added add button to add images using the file picker. * Fixed missing card titled for product admin * Renamed classname to match file name. * Added card group component. * Updated product admin with card group component * Updated product admin fields to be multiline * Updated metadata component Removed local state from metadata component. Parent container should handle all updates to state. Other various cleanup. * Fix broken tag test Skip publish test, revisit its usefulness later * Re-Enabled and updated product publication tests. updated publication collector package. * clean up product publication tests * Fixed slowdown caused by social buttons. Added helper to create settings for social buttons. * Fix tag submit on enter key * Updated tags Fixed issues with drag and drop re-ordering. Fixed drag handle; now only the handle is draggable instead of the entire tag. Sortable item no longer auto wraps elements, instead passes helpers functions to composed component. * Updated drag-n-drop for variants Drag and drop now only allowed if user has edit permissions. cleanup. * Updated media drag-n-drop Drag and drop is now enabled only if the media item is editable. Drag preview now shows up properly. * Update meta field styles and RTL styles * Add metadata (details) placeholders with translations * Load and display child variant media. * Fixed issues causing suggestions to change on arrow key input * Add placeholder for tag input * Updated media gallery uploader placeholder display In edit mode, media gallery now only placeholder item in the first slot, until a media item is uploaded. * space-out social buttons * add link type button * Add basic ability to change product handle manually * Added button toggle text, and fixed translation issues * Product delete callback * ensure product handle is always slug-ified * Removed duplicated delete function Replaced native confirm with a custom alert. * removed console.log * Fix for incorrect product handle being applied to grid items * Props and PropType fixes * Translation component updates. Added i18nKeys for visibility status * Add settings panel for revision control settings * Allow disable of revision control system. Disables collection hooks and product / products publications. * Cleanup and removed unused props. Added parentTag to other callbacks in tags component * Tooltip plugin cleanup * Added ability to disable new product detail page alongside revision control * More css selector specificity * Enable / disable publish controls * Publish revision control enabled status to users. This will allow the old / new PDP pages to be visible non admin users if revision control is enabled / disabled. * Fix legacy PDP media gallery styles. Moved new media gallery styles to a more appropriate place. * Added media gallery hover When enabled, hovering over images in the media gallery will replace the first image with the hovered media item. This effect is most visible on the new product detail page. * Fix safari flex box bug with icon button. Cleanup. * Add max width to PDP container. * Force add icon index file * removed console log in sortableItem * moved revision logging level to debug * Fixed bug that caused any change to a variant to toggle visibility Removed special handling of visibility from the collection hook. Added missing visibility toggle to edit container. * Load media for social buttons * Removed logging statement * Added badge for deleted variants * Fix weird variant selection behavior * Fix for undefined FB reference and cleanup * Fix for broken tests due to revision control on / off state * Updated react-autosuggest to 6.0.4 Updated instances of react-autosuggest to use new API * Fixed typo on visibility button tooltip Fixed issue with button tooltips not being translated if passed as a string. * Clicking a variant while action view is open will now focus it for editing. * Fixed typo in CSS classname * Fixed classname typo * Fix errors caused by change event attached to file upload input * Added ability to restore product variants from trash Top variants, and child variants can now be undeleted, while still in an unpublished draft. Fixed issue with variantForm not being reactively updated when variant was changed. * Don't delete media when variant is deleted. Changed because products are not deleted, only sent to trash. Leaving the media reference is important if you ever want to restore that item from the trash. * Adds ability to restore a deleted product for current draft * Updated alert confirm to SWAL * Fixed issues causing incorrect revision to be displayed for top variant * remove security group from pull approve - we will add back later… * update for 0.17.0 * Don't try to add user to OrderSearch when user doesn't exist (#1460) * Skip adding emails when user doesn't exist * Remove README that's no longer relevant * Set submitting state to handle error case correctly (#1461) * Docker build improvements (#1468) * clean up unused or unnecessary build deps * install all npm deps in first Meteor build step * create new base Docker image for better build caching * install MongoDB in container and use it if no external MONGO_URL is found * move deps versions to Dockerfile only for easier maintenance * fix custom package file script * add build script for full Docker build of base and app * fix lodash/camelcase import that was breaking the production build * npm updates * update CircleCI scripts to use new Docker build * Updated publish controls UX and fixing issues (#1473) * Updated publish controls UX and fixing issues - Fix bug causing error in console when publishing nothing. - Disabled the publish button if there is nothing to publish. - Added alert toasts for successful and unsuccessful publish. - Publish controls now properly finds relevant revisions. * Fixed typo * Fixed typo in comment * Fixed controlled component issue with input (#1469) * Loading 1455 (#1471) * Updated loader component to be consistent with other spinners Added loader for PDP container. Added a basic circular progress component. Removed domkit package. Replaced loader with already available spinner component through CSS. * Renamed loading.jsx to loading.js. JSX extension is unnecessary. * [email protected] * Added placeholders product fields (#1472) * Fixed bug that caused visibility button to not save a change. (#1477) * Fixed bug that caused visibility button to not save a change. * Address issue where visibility icon button could only be used once per draft revision * Fix product grid visibility button toggle inconsistencies. * Added comment for legacy publish functionality * Fix visibility toggle for product grid item * Removed tooltip from visibility button (#1479) * browserstack example (#1409) * beginning of getting browserstack working * More configs for browserstack * runner has been moved * creating test suite helper * fixes and moving some stuff around * More fixes. Allow the user to pick and choose what test suites to run. This will make it easier for the user if they are switching test runners frequently. I didn’t like adding all the tests in one array per configuration. This fixes that. Also allows the user to pick and choose what test suites apply to them. * lint fix * Adding reporter for tests, changed admin email, adding npm scripts for running tests * Allow Allure reporting to be optional * Primer for switching login/checkout tests to register/checkout * Login tests, are now register tests This also removes the dependency to having to create a user prior to running * Adding reporting to browserstack conf Also, added npm script for opening report. Another thing I noticed, browserstack tunnel sometimes hangs. So added process killer. * Updating test descriptions * lint fix * updating npm package * Addresses login test with hardcoded user assertion * This allows the user to use dynamic ids in tests * updated login test to pass local * updated test packages * updated from development - use REACTION_USER/AUTH if available. * updated versions * updated user data * Select products not flagged as deleted (#1489) * Selected products not flagged as deleted * Select all products not flagged as deleted * Add nul to second selector * fix order context in orderListSummary (#1493) * Publish 1490 (#1499) * Added a publish alert to the PDP page Updated alert component to support child components * Added toolbar for publish controls * Updated publish controls and product toolbar Added ability to change visibility of product from toolbar. Added better controls for switching view context. Added dropdown component. Updated menu components. Various other fixes. * Added ability to discard draft changes * Cleanup * Added ability to disable menu items * Cleanup * added ability to discard changes added ability to trigger a delete for relevant documents * Removed delete and visibility buttons from product detail form * Hide edit buttons when view as query param is "customer" * clean up * Cleanup * Renamed Product Settings to Product Details Removed commented code in registry entry for product-variant * Hide toolbar for non admin users. Cleanup eslint issues. * Ensure view "as" query param is preserved on route change * Added icons to menu items * Hide tooltip when button is disabled * Fixed type in callback * add ability to pass in original documents as a default * Added styles for disabled menu items Improved spacing divider in menu * add react-addons-create-fragment * fixed typo * Account & Order Search (#1494) * Change `userIsInRole` to `hasPermission` * initial commit * initial commit * i18n updates * breaking templates into smaller files * breaking LESS into smaller files * importing new templates * push for collaboration * i18n updates * file organization * helper functions for orders and accounts * focus input when changing search type * Make email search case-insensitive * push for visibility * update account & order results to tables * removed old accountGrid * Build account search using required fields and transformations * testing "fixed-data-table" * Merge branch 'development' into ek-search-accounts-orders # Conflicts: # imports/plugins/core/ui/client/components/index.js * Make order build dynamic as well (unfinished) * Use transformations for orders and accounts * Add exact search by _id, regex search by name, and match by "cleaned" phone * Refactor to eliminate duplicated code * Merge branch 'development' into ek-search-accounts-orders # Conflicts: # package.json * update table to react-component * updated fields for account resutls * field name correction * updated admin search permissions * renamed LESS files * Search for lastname/firstname in profile subfield * Fix error when profile is null * fixed propTypes error * added new fields to order results * i18n Updates * new search results * style updates * i18n updates * updates to account search * new permissions for search types * file cleanup * file cleanup * file cleanup * add order date to results * added style for shipping status * removed billing status from results display * Handle results when profile is null * add click to orderID shippingStatus panel orderID now goes to the order status / shippingInfo panel on click * fixes for PR comments * Wildcard search on emails in accounts/orders * Don't log so much * Add phone to Account Search * Simple migrations * Configure migrations not to log * Change subdir name to versions so we don't have stuff in migrations/migrations * Integrate migration logging with Reaction logging * Move files into core * Cleanup packages a little * Add a down method * Rename directory * Rename subdirectory * Correct import * fixed hardcoded shop urlSlug * remove unneeded props * accountSearch with user management * Re-namespace Migrations as Versions * killed unused prop * Re-re-structure migrations * Add README with warning about changing API * update migration nstantiation - Run before, not on startup, so that options take affect before Collections are declared. * remove unused lodash * update import order * New Email Template for Order Confirmation (#1501) * confirmation email for orders 95% ready. pushing for access on another machine. * updated media / image code * fix discounts data * localizing social images * update image handling * fixed store logo * update import order * removed un-needed dataForOrderEmail key * added babel-plugin-lodash * fixed single quotes * remove old "new.html" file * [WIP] Updated Translations (#1495) * LingoHub Update 🚀 Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * LingoHub Update 🚀 Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * Remove _README.md - remove out of date _README * restore missing rtl * add default en ltr - add default to see if lingo populates through other files. * disable non active default languages - disable languages that are without translators * updated en.json Fix Grammar * cleanup merge - remove deprecated files * remove duplicate key * review cleanup (#1509) * review cleanup - add i18n phrase for Tag in Use - add i18next to tag Alerts - fix typo in edItContainers - updated import order for styleguide adherance - comment WIP debug code for visibility button * add email, revisions dashboard phrases
* Added babelrc and stage-2 preset (#1329) * Meteor 1.4.1.1 (#1331) * [email protected] - [email protected] - updated Meteor packages, collections2 * version 0.15.2 * move plugin loader from startup to reaction-cli (#1332) * preserve custom profile fields in Accounts.onCreateUser (#1335) * copy deprecated cfs:gridfs to local and update npm deps (#1336) * rounding of total to negate fractions of cents * updated version - release 0.15.3 * Josh acceptance test setup user permissions (#1315) * First round setting up acceptance test capabilities * webdriver working * adding meteor ignore file structure * create tests directory * adding png to gitignore * element maps * More progress on functional test setup * fixed assert * using dot notation * adding chai to dev packages * Begin adding acceptance testing instructions to readme * Simple login test complete * Adding to readme about failed tests screenshots * adding stuff * Core permissions acceptance test * more fixes * went off the deep end. added some low hanging fruit tests * enabling all passing tests for now * fixed userAddress call * removing docs from main readme * linting for config fixed * more cleanup * additional cleanup * using chrome instead of firefox now since ff is borked * adding refund test * a couple more refund tests w/ a couple fixes Will add more assertions later for these tests. * adding new tests to runner * argh * remove screenshot * remove ignore of all .png * updated package.json * updated reaction.json.example * finishing up PR * lint cleanup * temp workaround for missing product in store * A couple locator changes - commented out broken stripe tests * persistent profile language (#1338) * allow multiple languages in Translations - allow array to pass multiple languages in addition to shopLanguage. * updated i18next and Translation load order * remove session handling from i18n - remove “language” session - rely on Meteor.user updates (stored lang in profile) - update i18nchooser helpers to insert user profile lang into selected element class * retain language on anonymous user registration * check admin before setting lang — don’t set lang on initial admin * updated accounts.js - cleanup checks * Josh test speed increase #1347 (#1355) * turning verbosity off when running tests by default * Removing sleeps/pauses when I can * flaky test fix * #1347 cut runtime down by nearly 50% This is still just running synchronously. As tests grows we will need to look into running tests in parallel, however this might require some infrastructure in place, i.e. a hosted QA environment. An environment that can handle the load of 5-10 tests hitting it at a time. * only build Docker image on master/development (#1359) * only build Docker image on master/development * chmod +x * fix CI script typos * load default user from env (#1369) resolves #1368 * remove duplicate translation * remove duplicate translations * Shipping 1320 (#1357) * disabled ranges - TODO ranges are not functional yet. * update shipping form methods * remove settings from registry * update swal version - updated sweetAlert2 version * export Import, Fixture - export Fixture independently of Import - refactor Import.shipping to use a modified key - refactor load-data to use Fixture * updated Shipping schema * updated shipping method names - breaking change: shipping method names updated to follow convention of Reaction `updateShippingMethods` becomes `shipping/methods/update`. - adds `shipping/provider/remove` method * add missing import * convert info logging to debug * updated form methods - update form methods - add SWAL2 confirmations * add handling to cart rates - if `handling` has data add `handling` to `rate`. * updated cartTransforms - updated to use own methods and parse float to ensure consistent results. * move shipping from included to core like taxes, the core will include flat rates and the ui handling for additional shipping methods, which will be added to included - in the form of `shipping-shippo` etc. * remove card cursor:pointer (#1384) Resolves #1309 * Product Search (#1350) * Mock Search Files * Mock Search Files * Remove addProduct method * Remove Fixtures to remove mystery Shop * Super limited, even for a fake search * Don't overwrite the descriptions on first run * Larger data set for testing * Don't log unless we are actually adding Search Products * A simple weighted product search * Split out plug ins into "search" and "searchEngine" plugs. * Improve product title search, add search settings panel * Add in variant search * Add more options for weighting. Make the settings panel better. * Add tags to results and search on description * Rename plugin to be consistent with others * Add example config file * New test data with "show store" model with tags * Simple product subscription that returns products and facets (tags) for a searchterm * Only return ids and names of tags (we will eventually only return ids, but names for readability for now) * Filter by tags * We only need one plugin since our decoupling is provided by the use of a publication * Rename plugin * Using Mongo full-text search rather than regex search * Using Mongo full-text search rather than regex search * alphabetize base-style imports * Add in hooks to keep PS collection updated * Move build/rebuild functions into module * New settings for fields and weights * New settings for fields and weights * add in hooks * New settings for fields and weights * Build PS collection dynamically based on configuration * Add in vendor to list of possible fields * initial push of search UI * Move collections to lib so that clients can subscribe * Add shopId to required fields * Move collections to global collections * Use ProductSearch collection on the client side * Filter tags by hashtags in ProductSearch results * Populate template with search results * Product search results sorted by score in Ascending order * Move (re)building search collections to job queue * Handle form with a method so that we can rebuild collection or index when settings change * Queue job to rebuild indexes when weights have changed * Don't run search hooks when ProductSearch collection has not been defined * Add Order search * Namespace product settings * Don't run hooks when under test * Add missing "shopId" field * More fixes to make OrderSearch collection configurable. * Ensure index when inserting product records * testing larger datasets * Make function names less ridiculously long * Pass results without relying on the product already existing in the subscription * Don't add a bunch of products for testing by default * style cleanup * style cleanup * style cleanup * Add handle to product search collection * Clarify log statement * Ensure but don't drop collections when creating an OrderSearch record * No longer build productResults on the client * Cleanup and add `maxResults` * Cleanup settings form * Don't queue search collection jobs when under test * Search result tests * Add price to results. Make results different based upon logged-in status * Add tests for non-published products not showing up for anonymous users * Add tests for non-published products not showing up for anonymous users * Add account search, jobs, etc. * Change account search to not use text search * ui initial push * conflict temporary fix * move style into less * i18n for search * added delay on fadeout to feign smoother transition * sped up tag color transitions * componentize search results content * componentize search results grid * style updates for search modal * get media to show in searchGrid * updated id date for searchGridIcons * Use hashtags not hastags * Change order search to use a regular query plus tests * removed console.log * fixed typo * switched content order * commit of admin buttons (currently not functional) * Add support for text indexes in other supported languages * Make order search results case-insensitive * close button classes * removed outline from nav * removed additional media from search We only need to show one picture in search, for now at least * updated text * added search clear * style updates * Delete all existing records when rebuilding account search * Remove startup test files * Also remove test data files * Make logging less chatty * Allow for transformations outside of the ProductSearch method * convert tags to flexbox * style updates * adding scroll tag container * clean-up of development comments * LESS cleanup * style cleanup * style updates * 96% width input & tags formerly 80% * move some styling from search.less to navbar.less * cleanup & i18n * remove errant button * changed tag active color to ban-active * Add documentation around "supported language" as suggested by CR * added i18n to search * changed search tags to use btn classes * disable currently unused admin controls * rtl support * rtl style adjustments * Exclude anonymous users from accounts publication (#1390) * Exclude anonymous users from accounts publication when logged in as admin * NPM imports first * update deprecated _.pluck - Patch _.pluck = _.map in lodash 4.x - resolves issue introduced in #1390 * metafields -> details for client visibility (#1397) * metafields -> details for client visibility * metafields -> details * Search UI updates (#1410) * add margin-bottom to hovered product for better visibility on last product * removed font-size from .btn.flat * created react flatButton created a new react button component so we aren’t just if/elseing our way through a different type of button to get what we need. * adjustment for #1402 - added overflow toggle on body * removed font size from btn-round * allow ESC to exit modal even when not focused on input * Release 0.16.0 (#1413) * updated README.md * update to v0.16.0 * conflict fixes * updated versions * Better email (#1367) * convert email sending to use Nodemailer * add getShopSettings and getPackageSettings helpers * replace all Meteor accounts-password email methods * remove old email api * rewrite mail config methods to use nodemailer-wellknown * create emails collection for longer term log storage * add mail service to shop mail settings schema * refactor email sending job to use new API * add Meteor methods for email API * add email publication for logs page * build new email dashboard UI plugin for using new API * remove old Blaze email settings * fix alerts arg checks when callback is missing * add new FieldGroup and Loading React components * default theme cleanup * fix variables import order in default theme * dependencies updates * clean up job queue workers * update eslint config for more React details * fix custom email config * fix type handling for email config port * remove email dashboard nav tabs component until needed * add saving state and better error handling to email settings * change email status route name * remove deprecated mail config hook * add unblock to email config verify method * add host/port to conditions for custom email config check * move email methods to base of methods dir * package updates * fix comment typo * update dockerignore to reflect new location * default vals for mail host/port not needed in registry entry * fix optional email save when settings are invalid * fix email settings save button state after errors * don’t run email settings verify method if settings are missing * add log when new email settings are saved * npm updates * fix text overflow in email config panel * fix type checking on email port setting * fix syntax * i18n-ify all new email components * fix sweetalert promise * fix 118n prop * remove password from logs * force immediate retry of email job * add new column in email log table for action buttons * remove unnecessary braces * fix missing email port in UI * package updates * restore searching for email templates from the database * clean up imports method * Check if billing address exists (#1386) Prevents exception if there is no billing address * Hide user menu (#1387) Hide user menu after clicking on any link, including "add product" * Make close button work on tag nav bar in mobile mode (#1393) * Prevent no image being found if no image has priority 0. `"metadata.priority": 0` filter will fail to find an image if none has priority 0, so sort is used instead. (#1392) * Try to prevent inline alert pile (#1391) * updated pull approve to version 2 See: http://docs.pullapprove.com/ and https://blog.pullapprove.com/pullapprove-github-code-review-43761a64ea9a #.enx67rp3f * updated .pullapprove.yml * updated negative reject value * updated reset_on_push * updated pullapprove.yml * update pullapprove.yml -ARRGHHH! * package.json update for nodemailer * Install binary non-npm version of phantomjs. #1325 (#1419) * add timeout to taxes tests (#1421) * Renamed field_group to fieldGroup to be consistent with other files (#1417) * Fixes #1337 (#1449) * ro-translation (#1441) * publish authorize-net on npm under @reactioncommerce org (#1451) * Issue/1452 (#1453) * Fixes #1337 * Fixes #1452 * Prevent error in `cartPayerName` helper if buyer name contains non-latin characters. The latter are not accepted by payment gateways, resulting the error in the payment form. (#1432) * PDP Revisions and Revised (#1356) * Initial start for handling product revisions Changes to products / variants are diverted to a draft in the "Revisions" collection. Calling publish updates original products with revision data. * Product visibility and draft reactivity restored Allow products publication to be notified of updates if a revision changes. Expand product visibility to variants. Allow product visibility toggle to be toggled for revisions. * Cleanups and added ability to mark products as deleted * Publishing and diffs Added diffs. Added diff UI. Added publish component. Added translations for react components. * Added ability to publish multiple top level products Draft and publishing now woks from the product grid for one or many products. Clean up. * Fix show diffs toggle * tag create / remove are now properly directed to a revision. * Fixed bug preventing metadata from revision updating Fixed bug that prevented revision updating all together. * Added some tests for product handle and revisions fixed issue causing tests to not run at all. * updated lodash dependencies - should resolve failing test * updating tests for product revisions * Updated more product tests. Updated some catalog implementations to work with revision control. * Fixing more tests * Fixing even more product tests. Adding tests for revisions along with fixing broken tests. * Removing some test expects as they have no chance of every being true * PDP react start of an overhaul of PDP page to fix many outlying bugs and upgrade it to better support revision control and display of revision content. * Variant and edit component updates Added variant list container. Added variant component, updated variant list to use component. Added EditContainer component which provides an edit button based on passed in props to child component. * added child variants to variant list * Added tooltips, cart button and revision object handling * React product detail page updates Metadata for product detail page. Cleaning up react tag components. Cleaning up old react components to be used on new product detail page. * Added tags component to PDP * Updated CSS classes for react PDP media gallery * UI updates for varaints Added visibility buttons to variants and child variants Added currency helpers. Added inventory alerts to varaints * Cleanup of price formatting Price formatting was moved to currency.js. Removing functionality from the helpers file. Fixed only implementation on formatMoney with module. * Provide translation updated to product detail container * React based social component * Added pinterest button Removed generic social button. Other cleanup. * Edit buttons for everything Added edit buttons to all fields, tags, and metadata. Added component for product field. Edit buttons can now display status based on edited field. * product detail editing improvements Auto hide edit button for product fields that remain unchanged. Fixed editing behavior for multiline textfield. * removed template tag * product admin form react Add a new product admin form for managing the react version of the product detail page. * metadata management and style updates Add and remove metadata now works. Updated styles for metafields. * Adding WIP react tag list editor * React product detail page is now primary other various cleanup of PropTypes, and console logs * Remove git ignored config file * Updated textfield className handling * Add ability to define multiple fields on edit button for diffs * Product social container how handles change notifications properly * Selectable variant and child variant Added ability to prevent default action for edit container edit button click. Added functionality to show action view for editing a variant. * Cleanup product detail tags and metadata. Edit buttons for both product tags and metadata now open the ProductAdmin view in the side panel. * React based inline alert components and containers * React based drag and drop. Top variants are now draggable and sortable. Tags are now draggable and sortable. Added DragDropProvider to create a reusable dnd-core instance for react components. Added container container component for sortable items. * Create, update and remove tag functionality added. * Update style of customer facing metadata component Style of the non-editable, customer-facing metadata component now appears like a table, similar in style to the editable counterpart. * Move media gallery to core ui components * removed unused component * Media gallery upload and remove * Media gallery drag and drop sortable * Updated registry entries and media gallery Added registry entries for new product detail page. Disable registry entries for old product detail page. Fixed bug causing crash with Media Gallery and undefined variables. * Fixed erroneous display of edit buttons with permissions * Switch media gallery for ul to div * Fixed exception caused by undefined data * Add publish controls to product admin * Updated publishing workflow. Publishing a product revision now properly sets it as "published" and will allow a new draft revision to be made for any new edits after that point. This allows a history of published changes to be stored. * Updated package.json with react-dnd and react-dropzone dependencies. * Tag updates - Fixes issues related to creating new tags - Fixes issues related to updating existing tags - Fixes issue where duplicated tags are added - Adds ability to exculde tags from suggestions - Adds new midifier for hashtags in product revision update hook - Updated styling of editable tags. Edidatbe tags in admin view are now full width - Removed dead code from revision hooks * Updated some references to lodash isArray to use built in Array.isArray * Fixed broken multi-file uploads for media gallery. Cleanup of unused code. * Added add button to add images using the file picker. * Fixed missing card titled for product admin * Renamed classname to match file name. * Added card group component. * Updated product admin with card group component * Updated product admin fields to be multiline * Updated metadata component Removed local state from metadata component. Parent container should handle all updates to state. Other various cleanup. * Fix broken tag test Skip publish test, revisit its usefulness later * Re-Enabled and updated product publication tests. updated publication collector package. * clean up product publication tests * Fixed slowdown caused by social buttons. Added helper to create settings for social buttons. * Fix tag submit on enter key * Updated tags Fixed issues with drag and drop re-ordering. Fixed drag handle; now only the handle is draggable instead of the entire tag. Sortable item no longer auto wraps elements, instead passes helpers functions to composed component. * Updated drag-n-drop for variants Drag and drop now only allowed if user has edit permissions. cleanup. * Updated media drag-n-drop Drag and drop is now enabled only if the media item is editable. Drag preview now shows up properly. * Update meta field styles and RTL styles * Add metadata (details) placeholders with translations * Load and display child variant media. * Fixed issues causing suggestions to change on arrow key input * Add placeholder for tag input * Updated media gallery uploader placeholder display In edit mode, media gallery now only placeholder item in the first slot, until a media item is uploaded. * space-out social buttons * add link type button * Add basic ability to change product handle manually * Added button toggle text, and fixed translation issues * Product delete callback * ensure product handle is always slug-ified * Removed duplicated delete function Replaced native confirm with a custom alert. * removed console.log * Fix for incorrect product handle being applied to grid items * Props and PropType fixes * Translation component updates. Added i18nKeys for visibility status * Add settings panel for revision control settings * Allow disable of revision control system. Disables collection hooks and product / products publications. * Cleanup and removed unused props. Added parentTag to other callbacks in tags component * Tooltip plugin cleanup * Added ability to disable new product detail page alongside revision control * More css selector specificity * Enable / disable publish controls * Publish revision control enabled status to users. This will allow the old / new PDP pages to be visible non admin users if revision control is enabled / disabled. * Fix legacy PDP media gallery styles. Moved new media gallery styles to a more appropriate place. * Added media gallery hover When enabled, hovering over images in the media gallery will replace the first image with the hovered media item. This effect is most visible on the new product detail page. * Fix safari flex box bug with icon button. Cleanup. * Add max width to PDP container. * Force add icon index file * removed console log in sortableItem * moved revision logging level to debug * Fixed bug that caused any change to a variant to toggle visibility Removed special handling of visibility from the collection hook. Added missing visibility toggle to edit container. * Load media for social buttons * Removed logging statement * Added badge for deleted variants * Fix weird variant selection behavior * Fix for undefined FB reference and cleanup * Fix for broken tests due to revision control on / off state * Updated react-autosuggest to 6.0.4 Updated instances of react-autosuggest to use new API * Fixed typo on visibility button tooltip Fixed issue with button tooltips not being translated if passed as a string. * Clicking a variant while action view is open will now focus it for editing. * Fixed typo in CSS classname * Fixed classname typo * Fix errors caused by change event attached to file upload input * Added ability to restore product variants from trash Top variants, and child variants can now be undeleted, while still in an unpublished draft. Fixed issue with variantForm not being reactively updated when variant was changed. * Don't delete media when variant is deleted. Changed because products are not deleted, only sent to trash. Leaving the media reference is important if you ever want to restore that item from the trash. * Adds ability to restore a deleted product for current draft * Updated alert confirm to SWAL * Fixed issues causing incorrect revision to be displayed for top variant * remove security group from pull approve - we will add back later… * update for 0.17.0 * Don't try to add user to OrderSearch when user doesn't exist (#1460) * Skip adding emails when user doesn't exist * Remove README that's no longer relevant * Set submitting state to handle error case correctly (#1461) * Docker build improvements (#1468) * clean up unused or unnecessary build deps * install all npm deps in first Meteor build step * create new base Docker image for better build caching * install MongoDB in container and use it if no external MONGO_URL is found * move deps versions to Dockerfile only for easier maintenance * fix custom package file script * add build script for full Docker build of base and app * fix lodash/camelcase import that was breaking the production build * npm updates * update CircleCI scripts to use new Docker build * Updated publish controls UX and fixing issues (#1473) * Updated publish controls UX and fixing issues - Fix bug causing error in console when publishing nothing. - Disabled the publish button if there is nothing to publish. - Added alert toasts for successful and unsuccessful publish. - Publish controls now properly finds relevant revisions. * Fixed typo * Fixed typo in comment * Fixed controlled component issue with input (#1469) * Loading 1455 (#1471) * Updated loader component to be consistent with other spinners Added loader for PDP container. Added a basic circular progress component. Removed domkit package. Replaced loader with already available spinner component through CSS. * Renamed loading.jsx to loading.js. JSX extension is unnecessary. * [email protected] * Added placeholders product fields (#1472) * Fixed bug that caused visibility button to not save a change. (#1477) * Fixed bug that caused visibility button to not save a change. * Address issue where visibility icon button could only be used once per draft revision * Fix product grid visibility button toggle inconsistencies. * Added comment for legacy publish functionality * Fix visibility toggle for product grid item * Removed tooltip from visibility button (#1479) * browserstack example (#1409) * beginning of getting browserstack working * More configs for browserstack * runner has been moved * creating test suite helper * fixes and moving some stuff around * More fixes. Allow the user to pick and choose what test suites to run. This will make it easier for the user if they are switching test runners frequently. I didn’t like adding all the tests in one array per configuration. This fixes that. Also allows the user to pick and choose what test suites apply to them. * lint fix * Adding reporter for tests, changed admin email, adding npm scripts for running tests * Allow Allure reporting to be optional * Primer for switching login/checkout tests to register/checkout * Login tests, are now register tests This also removes the dependency to having to create a user prior to running * Adding reporting to browserstack conf Also, added npm script for opening report. Another thing I noticed, browserstack tunnel sometimes hangs. So added process killer. * Updating test descriptions * lint fix * updating npm package * Addresses login test with hardcoded user assertion * This allows the user to use dynamic ids in tests * updated login test to pass local * updated test packages * updated from development - use REACTION_USER/AUTH if available. * updated versions * updated user data * Select products not flagged as deleted (#1489) * Selected products not flagged as deleted * Select all products not flagged as deleted * Add nul to second selector * fix order context in orderListSummary (#1493) * Publish 1490 (#1499) * Added a publish alert to the PDP page Updated alert component to support child components * Added toolbar for publish controls * Updated publish controls and product toolbar Added ability to change visibility of product from toolbar. Added better controls for switching view context. Added dropdown component. Updated menu components. Various other fixes. * Added ability to discard draft changes * Cleanup * Added ability to disable menu items * Cleanup * added ability to discard changes added ability to trigger a delete for relevant documents * Removed delete and visibility buttons from product detail form * Hide edit buttons when view as query param is "customer" * clean up * Cleanup * Renamed Product Settings to Product Details Removed commented code in registry entry for product-variant * Hide toolbar for non admin users. Cleanup eslint issues. * Ensure view "as" query param is preserved on route change * Added icons to menu items * Hide tooltip when button is disabled * Fixed type in callback * add ability to pass in original documents as a default * Added styles for disabled menu items Improved spacing divider in menu * add react-addons-create-fragment * fixed typo * Account & Order Search (#1494) * Change `userIsInRole` to `hasPermission` * initial commit * initial commit * i18n updates * breaking templates into smaller files * breaking LESS into smaller files * importing new templates * push for collaboration * i18n updates * file organization * helper functions for orders and accounts * focus input when changing search type * Make email search case-insensitive * push for visibility * update account & order results to tables * removed old accountGrid * Build account search using required fields and transformations * testing "fixed-data-table" * Merge branch 'development' into ek-search-accounts-orders # Conflicts: # imports/plugins/core/ui/client/components/index.js * Make order build dynamic as well (unfinished) * Use transformations for orders and accounts * Add exact search by _id, regex search by name, and match by "cleaned" phone * Refactor to eliminate duplicated code * Merge branch 'development' into ek-search-accounts-orders # Conflicts: # package.json * update table to react-component * updated fields for account resutls * field name correction * updated admin search permissions * renamed LESS files * Search for lastname/firstname in profile subfield * Fix error when profile is null * fixed propTypes error * added new fields to order results * i18n Updates * new search results * style updates * i18n updates * updates to account search * new permissions for search types * file cleanup * file cleanup * file cleanup * add order date to results * added style for shipping status * removed billing status from results display * Handle results when profile is null * add click to orderID shippingStatus panel orderID now goes to the order status / shippingInfo panel on click * fixes for PR comments * Wildcard search on emails in accounts/orders * Don't log so much * Add phone to Account Search * Simple migrations * Configure migrations not to log * Change subdir name to versions so we don't have stuff in migrations/migrations * Integrate migration logging with Reaction logging * Move files into core * Cleanup packages a little * Add a down method * Rename directory * Rename subdirectory * Correct import * fixed hardcoded shop urlSlug * remove unneeded props * accountSearch with user management * Re-namespace Migrations as Versions * killed unused prop * Re-re-structure migrations * Add README with warning about changing API * update migration nstantiation - Run before, not on startup, so that options take affect before Collections are declared. * remove unused lodash * update import order * New Email Template for Order Confirmation (#1501) * confirmation email for orders 95% ready. pushing for access on another machine. * updated media / image code * fix discounts data * localizing social images * update image handling * fixed store logo * update import order * removed un-needed dataForOrderEmail key * added babel-plugin-lodash * fixed single quotes * remove old "new.html" file * [WIP] Updated Translations (#1495) * LingoHub Update 🚀 Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * LingoHub Update 🚀 Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * Remove _README.md - remove out of date _README * restore missing rtl * add default en ltr - add default to see if lingo populates through other files. * disable non active default languages - disable languages that are without translators * updated en.json Fix Grammar * cleanup merge - remove deprecated files * remove duplicate key * review cleanup (#1509) * review cleanup - add i18n phrase for Tag in Use - add i18next to tag Alerts - fix typo in edItContainers - updated import order for styleguide adherance - comment WIP debug code for visibility button * add email, revisions dashboard phrases * make circleci target repo configurable using env var (#1517) - use DOCKER_NAMESPACE env var to identify target repo defaults to reactioncommerce if not set. example: when no env var set target-repo = reactioncommerce/base:latest when DOCKER_NAMESPACE set to frankg target-repo = frankg/base:latest * v0.17.1 - [email protected] updated - sweetalert2 - react-taco-table - react-autosuggest - country-data * fix typo (#1511) - last review cleanup item * Change "Delete" to "Archive" in PDP (#1513) * Change dropdown value * Change labels and value * Add archive translations * Use archive translations * Use archive action * Change badge title * Change confirmation dialog * Add archived messages * Remove deleteThisProduct key * Change to Archive for variants as well * I18n translations (#1514) * LingoHub Update 🚀 Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * LingoHub Update 🚀 Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * use i18next.dir to determine language direction - Resolves #1510 - Use `i18next.dir()` to determine language direction. * deprecate languageDirection * Fixes #1524 - Type Error thrown by empty addressBook (#1525) * Fixes #1524 Error was caused by `fieldData.addressBook` existing as an empty array, this checks to make sure that `addressBook[0]` exists before looking for the `fullName` prop. * fix camelcase typo that was breaking tests. * Actually fix typo in addressBook. Previous commit is what happens when you have two editor windows open with similar files open. * only register routes for enabled packages (#1526) * [email protected] * do not use revisions if the package is disabled (#1527) * When building an accountsearch collection, actually build it. (#1532) * Docker security updates (#1541) * Node 4.6.1 * fix custom package file script * refactor Docker build to run app as a non-root user * add a delay option to the Docker entrypoint * cleanup the cleanup scripts, remove app source after build is done * don’t install mongos if mongo install happens in container * update container port in docker-compose example file * remove unused script from CI * LingoHub Update 🚀 (#1547) Manual push by LingoHub User: Aaron Judd. Project: reaction Made with ❤️ by https://lingohub.com * Fixes #1537 - Alerts throwing error (#1538) * Fixes #1537 - Alerts throwing error * catch errors thrown with lodash noop See sweetalert2/sweetalert2#177 * Don't blind catch sweet alert errors. * Placeholders + i18n for variant form fields (#1542) * Fix Public / Private update when discarding changes (#1543) * Switch to observe, instead of observe changes Fixes issue with some PDP UI elements not updating after changes have been discarded. * Remove debug comments * Move revision settings to catalog (#1544) * Move revision settings to catalog Added a package in core for catalog. Added settings panel for catalog. Updated registry entries for revisions to appear in catalog settings panel. Updated UI for registry settings card. * added key for i18n * fix port in CircleCI docker-compose test (#1549) * add missing labels (#1550) - emailSettingsLabel - catalogSettingsLabel will get moved to packages in 0.18
Prevents exception if there is no billing address in the
cart/submitPayment
after-hook.