Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Request versions (reaction -v) output in issue template (#2087) * Fetch all Shippo carriers (#2078) * Init second request on after next url returned * Refactor to fetch carriers recursively from api * Fix transliteration package to 1.5.2 which doesn’t leak ES6 into bundle * Fix issue #2026 changed price not displayed for prod on grid page (#2064) * Fix issue #2016 changed price not displayed for prod on grid page * Add getVariantQuantity function to ProductRevision * Convert text field to select field for countries (#2082) * [WIP] #2070 Fix PDP Url Path For Grid Settings (#2094) * fix pdp url path for grid settings * remove commented code * Remove legacy PDP (#2097) * Remove revision conditional * Remove templates * Set total quantity as actual sum of quantity * Don't break out order items * set cartItemId to just _id since they are the same now * Fix unrelated error with missing import * Create shipping record * Don't use cartItemId * Group lineItems by _id rather than cartItemId * Use _id rather than cartItemId. Use sum of quantities rather than length * Restore check for empty items array to fix test * Change cartItemId to _id * 2067 Improper Product Title Wrap (#2108) * fix improper word wrap in product grid * fix improper product title wrap in firefox * Fix Avalara document id (#2114) * Don't pass in a cartID, pass in orderId for SalesInvoice * Don't try to parse lines unless we know we have it. No lines, no tax. * Use order.items to display line items * Update core.js Changed "admin" to "owner", which is the default user we're really checking for. * If cartItemId exists from legacy orders, then use those * Don't create default admin user when running in app test mode * Fix "Set Custom Value" on Avalara Usage Type (#2107) * Get correct id value * Prevent autoform from removing old values * Roll back. Autoform still resetting to old values * Prevent autoform from overriding custom val * show input field for custom; pre-fill with existing custom val * Adjust comment * Adjust comment * Update form reset * Refactor subscription * Fixes #2116 failure to send email (#2118) * Fix parens that were out of place in wrapAsync of Email.verifyConfig * Revert the wrapAsync function - I didn’t understand how it worked and it wasn’t the core issue * Don’t set secure to true for port 587 http://stackoverflow.com/a/22468122/1179341 pointed me in the right direction * Allow customer to move past validation after one pass * Silencing needless warning * Add missing imports * When we get a "GetTax" error, revert to addressbook * Capture and parse errors * Fix missing import * Add import, adjust Proptypes * Update read only Quantity in top variant #1919 (#2065) * Update quantity if child variants exist * Change method not to add inentory Quantity when undefined * Add default value for inventoryQuantinty * Fixing non-reactivity of updating quantity field * 1994 Console Dropzone Warnings (#2138) * upgrade react-dropzone to latest version * upgrade react-dropzone to latest version * Update Summary Card for Order (#2105) * order summary in react * Add data to container for order details * Get badge onto display and container * Remove unused code clean up UI * Rearrange fields to match design * Change id to order id * Remove gap at the top * Add printableLabels * Add address 2 if exists to ordersummary * Remove all template code move everything into container * Fix weird capture spinning state * Creating a "review and fix" address review screen * Add to Cart Alert Behavior (#2076) * typo fix * Fix Cart Alert Behavior implement re-appearance of alert when add-to-cart is clicked rapidly Resolves 1445 * migrate cartSubtotals template to react * remove unused imports * remove commented code * migrate cartPanel template to react * fix linting issue * migrate cartItems template to React * finish migrating cartDrawer and checkout popup to React * remove debugging code * fix linting issues * add spinner to checkout alert * fix linting issues * update quantity in text on rapid clicks * refactor cartItem component * remove unused props * remove jsx code from container * implement changes from review * refactor container method * fix error in checkout and weird shipping display in cartDrawer * fix cartItem title * fadeOut remove-from-cart icon before product is removed from cart * increase spinner size * fix spacing and swiper issue * escape single quote * replace single quote with HTML entity * Show highlited diff. Copy over values on click. * Removing "debug" HTML * Add "review address" translation * Basic "review address" flow working * Remove console.log * [WIP] 2137 Specify Shippo Version (#2146) * specify shippo api version in request header * specify shippo api version in request header * fix currency formatting in invoice (#2147) * language dropdown updates (#2148) * rework allOn / allOff language toggle kill the ability to “turn off” default language * files no longer used new files inside the header folder * add check to hide languages when less than 2 enabled * update settings panel to never allow default currency to be disabled * add check to only show dropdown if more than 1 currency is enabled * Fix missing import * Fix import error * Return to edit and refresh address when you cancel out of review * Make edit behave the same as add * Tweak styling * fix dark-gray background on notification hover state (#2163) * Cancel Order (#2022) * Add presentational aspect for invoice * Add presentational view for invoice * Add state to the invoice view * Detail on invoices captured * Add roll over list capability * Add single invoice render * Add roll down list not quantity based * Add presentational aspect for invoice * Add presentational view for invoice * Add state to the invoice view * Detail on invoices captured * Add roll over list capability * Add single invoice render * Add roll down list not quantity based * Display unique items only * Add quantities to line items * Remove unnecessary parts of the view * Seperate components for roll up lists and line items * Add cancel capability * Clean up UI * Add item functions * Fix Sidebar Context (#1932) * Show Sidebar shipping in checkout * Set actionView after payment checkout step * Hide sidebar on entry to profile page * Remove Inventory subscription that is not in use (#1951) * Get package data by shopId as well as package name (#1949) * Add capture payments capability * Add refunds fields * Seperate concerns in invoice component * Clean up invoice code * Refactorline items * 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 b8090857183ecf1ee9a8ea01159c4e445c47609f. * 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 3b238a81dd3e1345d83050b82726a2547c8d2214. * Revert "Fix CircleCI failed tests" This reverts commit 66f0f787cdbf0563f14e2121cf35d7f99c525d0a. * 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 * Use select box of countries rather than text field for "Origin Country" (#1967) * Fix 404 when adding handle and then editing a variant before publishing. * Fixed misspelling in comment * Remove z-index from dropdown as it creates more issues than it solves * Moved ColumnData component to its own file. (#1972) * Prevent hiding of nested tags on mobile (#1971) * Show Sidebar shipping in checkout * Set actionView after payment checkout step * Add presentational aspect for invoice * Add presentational aspect for invoice * Add presentational view for invoice * Add presentational view for invoice * Add state to the invoice view * Add state to the invoice view * Detail on invoices captured * Detail on invoices captured * Add roll over list capability * Add roll over list capability * Add single invoice render * Add single invoice render * Add roll down list not quantity based * Display unique items only * Add quantities to line items * Remove unnecessary parts of the view * Seperate components for roll up lists and line items * Add cancel capability * Clean up UI * Add item functions * Add capture payments capability * Add refunds fields * Seperate concerns in invoice component * Clean up invoice code * Refactorline items * Add data into individual line items * 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 * Move around UI components * Move around UI components * Add total price of line items * Format pricing to have dollar signs * Finalize on tax data * add cancel meteor method for orders * Iterate on design * Review tax display * finish up allowing an admin cancel an order * add cancel order workflow * add test for orders * add test for start and complete cancel order methods * finish up on cancel order * remove swal from shippingInvoice file * solve linting issues * fix linting issues in orders test * fix template issues in shippingInvoice html * create multi-action button * refactor code based on reviews * update shippingInvoice.js * remove unwanted newlines in changed files * fix eslint errors * fix multi-action button * refactor code based on reviews * refactor buttonSelect * fix test * fix indentation issues * fix indentation issues * update code based on review * update code based on reviews * fix cancel order test * fix bugs * add i18nKeyLabel to multi-function button * turn multi-function dropdown item to button * refactor button props fr multi-function button * fix paypal express refund method * add payment provider payment methods * fix payment provider refund issues * complete test for cancel order methods * remove inline style from translation * add error handling for failing refunds * remove unneccessary lines of code * add error handling * fix issue based on reviews * remove shipment panel when order has been canceled * remove newline * Adds Reaction method for adding roles to a default role set. Makes it trivial to create and add roles needed by a plugin to default visitor set Usage looks like this: ``` import { Reaction, Hooks } from "/server/api"; Hooks.Events.add("afterCoreInit", () => { Reaction.addRolesToDefaultRoleSet({ allShops: true, roleSets: ["defaultRoles", "defaultVisitorRole", "defaultSellerRoles"], roles: ["stripe-connect-redirect", "test-role33"] }); }); ``` * Tests for adding default roles * One more test * Run all tests instead of just `addDefaultRoles` tests * Fix for Account Meteor Method tests that relied on Shops not being reset * [WIP] 2115 Inconsistent Product Image of Cart Item (#2171) * fix inconsistent cartItem image and productField console error * fix fetching too many records from media * fix fetching archived images to client * fix display variant/product image for item without image * Order methods test (#2159) * Add presentational aspect for invoice * Add presentational view for invoice * Add state to the invoice view * Detail on invoices captured * Add roll over list capability * Add single invoice render * Add roll down list not quantity based * Add presentational aspect for invoice * Add presentational view for invoice * Add state to the invoice view * Detail on invoices captured * Add roll over list capability * Add single invoice render * Add roll down list not quantity based * Display unique items only * Add quantities to line items * Remove unnecessary parts of the view * Seperate components for roll up lists and line items * Add cancel capability * Clean up UI * Add item functions * Fix Sidebar Context (#1932) * Show Sidebar shipping in checkout * Set actionView after payment checkout step * Hide sidebar on entry to profile page * Remove Inventory subscription that is not in use (#1951) * Get package data by shopId as well as package name (#1949) * Add capture payments capability * Add refunds fields * Seperate concerns in invoice component * Clean up invoice code * Refactorline items * 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 b8090857183ecf1ee9a8ea01159c4e445c47609f. * 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 3b238a81dd3e1345d83050b82726a2547c8d2214. * Revert "Fix CircleCI failed tests" This reverts commit 66f0f787cdbf0563f14e2121cf35d7f99c525d0a. * 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 * Use select box of countries rather than text field for "Origin Country" (#1967) * Fix 404 when adding handle and then editing a variant before publishing. * Fixed misspelling in comment * Remove z-index from dropdown as it creates more issues than it solves * Moved ColumnData component to its own file. (#1972) * Prevent hiding of nested tags on mobile (#1971) * Show Sidebar shipping in checkout * Set actionView after payment checkout step * Add presentational aspect for invoice * Add presentational aspect for invoice * Add presentational view for invoice * Add presentational view for invoice * Add state to the invoice view * Add state to the invoice view * Detail on invoices captured * Detail on invoices captured * Add roll over list capability * Add roll over list capability * Add single invoice render * Add single invoice render * Add roll down list not quantity based * Display unique items only * Add quantities to line items * Remove unnecessary parts of the view * Seperate components for roll up lists and line items * Add cancel capability * Clean up UI * Add item functions * Add capture payments capability * Add refunds fields * Seperate concerns in invoice component * Clean up invoice code * Refactorline items * Add data into individual line items * 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 * Move around UI components * Move around UI components * Add total price of line items * Format pricing to have dollar signs * Finalize on tax data * add cancel meteor method for orders * Iterate on design * Review tax display * finish up allowing an admin cancel an order * add cancel order workflow * add test for orders * add test for start and complete cancel order methods * finish up on cancel order * remove swal from shippingInvoice file * solve linting issues * fix linting issues in orders test * fix template issues in shippingInvoice html * create multi-action button * refactor code based on reviews * update shippingInvoice.js * remove unwanted newlines in changed files * fix eslint errors * fix multi-action button * refactor code based on reviews * refactor buttonSelect * fix test * fix indentation issues * fix indentation issues * update code based on review * update code based on reviews * fix cancel order test * fix bugs * add i18nKeyLabel to multi-function button * turn multi-function dropdown item to button * refactor button props fr multi-function button * test order methods * fix paypal express refund method * add payment provider payment methods * fix payment provider refund issues * complete test for cancel order methods * remove inline style from translation * add error handling for failing refunds * remove unneccessary lines of code * integration test for orders/approvePayment * test for orders/shipmentDelivered * add error handling * write test for sendNotifications * write more test * finish writing test for order methods * update changes based on reviews * fix typo * PDP Cleanup - Basic Details Card, Tax Card & Inventory Card (#2086) * Rewrite product variantForm to render React component * React component/container for product variantForm * Adding checkboxes, divider, and changing i18n * Refine PDP variant form UI to be up to standard * Using Switch component instead of native checkbox * Use settings card to wrap taxable and inventory tracking sections * Displaying data via props(to be refined) * Rendering tax code field depenging on enabled tax code provider * Populating taxCode dropdown with data from db * Populating taxCode collection with taxCodes on successful test credentials * Remove unnecessary Meteor method * Rename 'selectedVariant' to 'variant' * Disabling fields based on child variants * Passing variant object down from Template.currentData * Activate restore/remove and clone variant buttons (to be refined) * Subscribing to TaxCodes publication for display * Removing alternate Blaze function * Handle select and textfield input edit * Handle switch toggle * Updating state of select box * onChange for regular input fields * Removing alternate Blaze function * Removing alternate Blaze functions * Render archive label if variant is deleted * Partly implement update quantity based on child variants * Remove unnecessary input callback methods * Make restore button change reactively to discard when isDeleted is false * Make discard button change reactively to restore when isDeleted is true * Remove unnecessary expandCard methods * Fix uncontrolled input warning being thrown in browser console from React * Make tax code field editable when no tax provider is enabled * Revert taxable and inventory tracking back to defaulting to true * Fix open/close of cards (to be refined) * Attempting validation * Adding style and disabled to textfield component * Fixing opening of side panel when variant is clicked * Fix accidental toggle of allow backorder switch * update the way address data is provided (#2208) * update the way address data is provided * update const * Change `profile` variable name to `profileAddress` to be more descriptive * And `profileShippingAddress` is even better * METEOR 1.4.4.2 (#2206) * METEOR 1.4.4.2 * update Docker base to v1.3.1 * Jobs patch As found by @jshimko * Remove unneeded jobs import * Added Kuwait, Saudi Arabia and Qatar currencies (#2204) * added kuweit, saudi arabia and qatar currencies * typos * fix email log panel closing when email is sent (#2205) * add order id to completed screen (#2202) * Fix Email Notification During Order Refund (#2200) * fix email notification when issuing a refund more than the total * fix refunding loading * add i18n * 1638 Completed Order Logged Out State (#2201) * add signIn page for completed order url when user user is logged out * remove commented out code * fix display notFound for orders that doesn't belong to user * fix style nitpick * implement review * fix flashing `notFound` page before order completed * Add in missing line break * fix create product should flip into edit mode (#2221) * Toggle Variant Visibility when Ancestor Product Visibility is Toggled (#2222) * fix issue * add fix to product grid settings * Fix missing shop (#2224) * make sure default shop fixture data is loaded before anything else happens * fix inconsistent logging of whether register.json was found * fix error logger syntax * fix a few more logger syntax instances * Add mute for known package dependencies - Holding on a full React update - Latest transliteration doesn’t load correctly - nodemailer, griddle have upgrade blockers * Add mute for known package dependencies Missed a react dependency. * swap unicode with missing semi-colon for regular apostrophe (#2223) * swap unicode with missing semi-colon for regular apostrophe * updated to use <Translation> instead of i18n-data Also updated to spit out better / valid HTML. - Changed tag from <h1> (“Empty Cart” shouldn’t be H1) to <p>, and also removed the embedded <p> from inside the H1. * made social share buttons on PDP ADA compliant (#2196) * Fix permissions for items shown in admin dashboard (#2145) * Initial test of filtering pkgs * Filter showing packages by permissions * Resolve issue with hasAccess check on registry items * Comment * Comment edit * Call packages coll without filter * Move audience addition to ReactionApps * Better comment * Check not needed again.Apps come based on access level * space fix * Test: Permissions on toolbar component * hasProduct access on toolbar * Fix data * Use createProduct as filter * Refactor toolbar permission check * Improve Comment * Add missing perms in pub * remove comment * Add comment on filter line * Pin vsivsi:job-collection meteor package to 1.4.0 (#2228) * React Router (#2123) * Initial push for React Router conversion * Implement more global router functions - Added `Router.getQueryParam` - Added `Router.isActiveClassName` - Added shop prefix for routes - Added blaze event for brand link to use `Router.go` - Added `query-parse` nom module to parse query strings - Added route to currentRoute on route change * Route rendering - Router initialize - Rewrite reaction layout to better handle layout generation - Add `App` component as router base component - Add Router.replace function for push state replace * Move rest of router from client dir, into router package * Use Router.go for tagLink * Fixes issue with browserRouter router initializing before router core is ready. * Fixed route resolution for to exact matches * Updated dependencies and shrink-wrap * Not found and unauthorized routes and redirects * Rename admin template to coreLayout - use layout name to get proper layout * Fix broken import * Fix redirect url for PayPal pay flow express Double slash in url causes no route to be matched for react router. Added new helper method that wraps Meteor.absoluteUrl() and fetches the shop prefix without a leading slash. * Enable onEnter and legacy enter hooks * Added exit hooks and improved hook handling logic Re-implement metadata hook * Show package settings shortcuts only if requested * Added Router.watchPathChange() * Remove unused function * Added router go for grid item click event * Fix eslint issues * Added router go for cart items * Fix router context for hooks * Added special handling for print layout * Scrolling for content area as admin * Fix router reload when auth state changes * Fix lint issues * Fix lint issues * Fix blank pdf view * Prevent route change when previous and next routes match. -Remove reactivity from `Router.current()` to better align with flow router api. - Add reactive dependencies query and url param functions. * Fixed reference for getShopName() * Fixing broken blaze layout - Extend the react-in-blaze component, and rename conflicting `template` prop to `blazeTemplate` to avoid a naming collision with our layouts. - Added check for foundLayout, verify its defined before trying to access - Added support for blaze based layouts, if a react layout cannot be found * Removed unused packages * Adjust width of container to alleviate some scrolling issues * Higher zindex for cart slide out * Fix getSlug reference * Fixes issue with incorrectly displaying unauthorized template * LingoHub based on development (#2218) * LingoHub Update :rocket: Manual push by LingoHub User: Aaron Judd. Project: reaction Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Aaron Judd. Project: reaction Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Aaron Judd. Project: reaction Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Aaron Judd. Project: reaction Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Brent Hoover. Project: reaction Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Brent Hoover. Project: reaction Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Brent Hoover. Project: reaction Made with :heart: by https://lingohub.com * 2217 Add Product Name To Invoice (#2226) * add product name to invoice * add Product name to title * Permissions Fix: Use passed in "audience" param in ReactionApps (#2235) * wip * Use passed in audience for ReactionApps * Remove debug * fix display of unpublished option images (#2236) * Restore helper to limit dropdown icons * 1987 Panel Expander Arrow Overlapping on Dropdown (#2211) * fix dropdown z-index * use z-index variable * reduce zindex-select variable value * override `react-select` select menu z-index * remove commented out style * fix improper variable value alignment * move import to main.less * Fixes #2243 Paypal Express requiring login for guest accounts (#2255) Adds `reaction-paypal/paypalDone` and `reaction-paypal/paypalCancel` roles to the defaultRoles and defaultVisitorRoles set * Updated README.md * Update version * readme.md updates * Removed unused code * fix 2278 Router tables not initializing (#2279) * fix notification dropdown links (#2280) * update Router to adjust when shop URL is in provided data * update notification onClick to open dashboard panel when needed * re-add markOneAsRead * style / small updates for release 1.2 (#2283) * update import of Reaction * readme updates * import fixes * add meteor import * import order fix * comment fixes * add meteor import * removed flow router import * import order * import fix * update i18n key * update translations * wrap full app in translation provider * fix multiple refunds for stripe (#2260) * Simplify core layout component (#2257) * Simplify core layout component - Remove unnecessary wrappers in favor of the `Blaze` component, as to not hide the fact that Blaze is still used. - Add the footer template region * Import Template * 2203 Long Strings Handling in Product Option Title (#2266) * fix long strings overflow in variant options * fix overflow of option title * change shipping / payment error messages in checkout (#2271) Removed “Configure now” link in checkout payments / shipping methods when not logged in as an admin. * Add the Vietnamese Dong as a supported currency (#2248) * Add the Vietnamese Dong as a supported currency * Refine and add an entry for the main store currency * Re-introduce icon toolbar as shortcutBar (#2261) * Re-introduce icon toolbar as shortcutBar * Fix reference to PropTypes * Hide toolbar on mobile * Update shortcut bar and simplify tooltips Show dashboard button on mobile. * Fix responsive issues Resolves some of the issues related to UI on the right hand side of the screen being cut off at certain mobile breakpoints. * fix issue (#2276) * allow loader to show when one is passed in and defined BUGFIX (#2303) * Change customer notification message when order is processed. (#2290) * change notification newOrder message to you just mad an order * change phrasing for newOrder notification message * i18n translation updates (#2302) * closing tag spacing * update i18n key * shop settings - move translations into local package * shop settings - move translations into local package * social - move translations into local package * i18n - move translations into local package * revisions - move translations into local package * email - move translations into local package * new i18n label * move i18n into local packages * loginServices - i18n Updates * core analytics - translations * new translations * Fix Lint / remove unused packages. * LingoHub Update :rocket: Manual push by LingoHub User: Aaron Judd. Project: reaction Made with :heart: by https://lingohub.com * CircleCI 2.0 and docker base update (#2334) * convert CI config to use CircleCI 2.0 * update Docker base to v1.4.0 * improve Meteor check logic * remove ununsed cache path * cache node_modules * improve cache saving order * fix cache restore order * improve overall ordering of CI config * add better labels * cache the Meteor dev_bundle after running tests * install reaction-cli with yarn instead (way faster) * More and more style changes * Add Verification Url to Welcome Email (#2216) * add verification to welcome email * fix eslint error * send invite email unless user is invited * update bothe users and accounts colllection * fix email verfication * fix permission issue with verification route * fix import order * refactor accounts methods * make changes based on review * make use of reaction addRolesToDefaultRoleSet function to add new roles to the shop * finish up email verification for invited user * fix issue(refunds not showing) (#2317) * fix conditional in Circle deploy script (#2338) * don’t load any other fixtures until the default shop is loaded (#2329) * allow a MAIL_URL string without auth (#2330) * add loading component to fix error (#2340) * Use proper color variables * Create proper behaviors * Fix bad evaluation * Fix import order * Add i18n * color updates for styleguide (#2339) * update brand-info-color * color updates * remove old color variables * comments * gray cleanup * variable name change * typo fix * revert rgba from variables * fix dem buttons * Updated text colors * Don't throwback a step if tax fails * fix testing issue #2348 (#2349) * Make this more of an "exception" flag * Better handling for unique routes for React Router (#2327) * Better handling for unique routes for React Router routes * Added TODO comments * Update router.js * Fix git tagging on CircleCI 2.0 (#2362) * handle git tag parsing now that Circle doesn’t * clean up syntax * Updated colors * React unit testing example (#2170) * component snapshot * babel additions * remove dependancies not used * Use mocks to mock input props for component * Change stored snapshot to match new look after merge with development * replace babel-latest with babel-es2015 * Take care of warning * babelrc to es2015 * Add back in missing babel package * no more globals! * Declare variable before assigning * Declare variable before assigning * Declare variable before assigning. Remove unused variables * Remove unused variable, check * Declare variable before using it * Declare variable before using it * Can't use `this` in an arrow function * Correct function declarations * Eliminate implied global `Alerts` + no undeclared * Remove commented out code * Declare explicit globals * move default userCurrency deeper in the object (#2259) This should fix the tests brought upon by strict mode * Use Collection explicit functions * Don't log doing nothing * Make Alert a global because it's a mess * Ok actually, don't do that * Don't allow implicit globals * Bug fixes * Fixing lack of declaration * Pass error to logger * Fix import order * Fix changed reference * Add jest testing to Circle CI * Update NPM packages * Added npm test command * Use an NPM script rather than global Jest * Make changes to new CI config * Change to proper step configuration * For clarity, `test-react` `npm run test-react` to run jest tests. * Revert "For clarity, `test-react`" This reverts commit fc38b243eedb8f7a861495cae71651e6c2e4853e. * Update Jest to current version * Just testing to see if this fixes it * Remove npm install of desperation * Remove node cache * Fix typo in inventory test description (#2364) * fix testing issue #2348 * fix typo in test desc * CollectionFS cfs:tempstore and cfs:worker to fix concurrency issues with GridFS uploads (#2096) * added cfs tempstore and worker to fix concurrency issues * linting * Correct the way we record tax overrides * [WIP] Meteor 1.5 (#2371) * Meteor 1.5 - include Buffer polyfill - replaces abernix:standard-minifier-js with standard-minifier-js - properly pins job-collections to 1.4.0 * Updated to 1.5.0 base image * Pin react-meteor-data to 0.2.9 * Remove unused vars Cherry pick https://github.com/reactioncommerce/reaction/pull/2306/commits/b36709c19 e47b25049f90643739df4bcf5210d64 * update to reactioncommerce/base:v2.0.0 * transliteration 1.6.2 (#2389) - Related to #2090 and #2091 - Reduces minified footprint by315k - updates client import * Meteor1.5 and docker updates (#2390) * fix error handling in CI deploy script * fix CI build script * add docker-compose.yml for CircleCI * install Docker Compose in CI * set docker/docker-compose versions in CI env * fix missing curl issue in CI test * Updated 1.5 packages * Declare variable (#2401) * Implement missing router functions (#2393) * Implement missing router functions - Implement `Router.setQueryParam()` - Fix `Router.getRouteName()` * Fix function name for `setQueryParams` * Fixes and tests - Added jest config to package.json - Added some jest unit tests for Router - Added mocks for some dependencies - Fixed route matching in Router.isActiveClassName method * fix package.json to run tests (#2396) * Removed comment * Remove duplicated setQueryParams function Fixed variable * 2332 Fix Improper Cart Merge (#2387) * add test suite to replicate #2332 * fix improper cart merge when user cart has items in anonymous cart already * update anonymous cart `variants._id` to equal user cart `variants_id` * fix console error when merging into newly logged in user cart * implement review * Change line width to match GH PR review width (#2407) * Orders updates (#2400) * add expandable header to summary * i18n - move keys into local package * new npm package * new Badge component * i18n updates * badge style updates * add Badge and clicktocopy to components * clickToCopy component * badge component * i18n updates * badge and ClicktoCopy components * add card to summary section of orders * Merge branch 'ek-orders' into ek-orders-summaryPanel # Conflicts: # package.json * update orderSummary fields * fix imports * ordersList react-ivize * fix prop validation * validation fixes for Badge component * remove no longer used files * comment out old blaze templates leaving them here for a bit just to make sure no errors occur * remove blaze templates * orders panel LESS * update workflow loop to remove extra headers * removed errant test text * fix translations * update shrinkwrap * tests * simpleschema * comment killing * New test for <ClickToCopy /> * lint fixes * fix * add more props to Badge test * refund button coming in phase2 * fix import / console error * Update random.js * lint fixes * use route permissions in register.js files (#2388) * Milestone 54 / Convert Navbar to React (#2306) * Navbar dropdowns conversion to React (#2230) * Implement currencies using Dropdown Menu Component * Add active prop on list item in Dropdown menu * Resolve reactivity for currency drop down * Add language dropdown implementation * Add select on current selected language * Remove extra code * Have language icon div be larger * Fix pop over arrangement * Fix spacing, add caret on language dropdown * Deal with display when switches are pff * Fix overflow issues on dropdown-menu * Fix linting * Close dropdown on menu item click * Add import for Match * Convert login views to React (#2250) * Initial component/container setup for sign in page * Replicate look of sign in form * Replicate look of sign up form * Use composeWithTracker in signInContainer * Replicate look of forgot password form * Create parent login container to hold general login for views * Add switching between views logic * Set up sign in form submission * Set up sign up form submission * Set up forgot password form submission * Handle sign in action and error message display * Remove template methods * Remove template methods and alert message template * Rewrite renderPasswordErrors method * Render social buttons on login * Add social login functionality * Remove unnecessary blaze templates * Move functions to React * Implement sign up functionality * Merge signin and signup containers * Put back helper methods needed by other templates * Abstract loginFormMessaged into react container * Add forgot password functionality (part1) * Remove unnecessary component in helper * Remove forgot password template * Clean up folder structure * Solve invariant violation browser error * updatepasswordOverlay react component/container * completed updayePasswordOverlay functionality * Remove stopPropagation function * Capitalize social login name * Show loading spinner while processing button clicks * Solve onClick not working by removing 'event.stopPropagation()' on parent template * Remove JQuery and use lodash * Using 'event' instead of 'e' to reference event handlers * Add validation for no email input on forgot password * Add error message on social login * Move capitalize function to helper file * Move capitalize function to helper file * [WIP]Main navbar container conversion to React (#2277) Main navbar container conversion to React * Convert to react: Tag navigation (#2251) * Test tagnav component * Use existing tag component * Update component setup * Use existing tagsList container * Remove debugging * Edit button * Use tagItem loop to match styles instead of existing * Base tagTree init * Fix structure * Fix dropdown mouseover event * Edit conditional * Base tag editatble * Button switch fix * On edit fix * Selectable button icon * Enable drop of tagtree by icon * Init edit mode for tagTree * Tagtree second level new tag * Typo fix * Fix top level width and classes * Show Base tagList * Lint clean up * Remove commented code * Style fix and show new tag on edit * i18n * Init saving top level tags * Saving tags - cont * New tag save fix * Switching to Taglist custom * Saving top level * Enable new tag option * Move class names to base comp * Style on create new tag item * Fix Hover back * Move file * Tag select prop * Rename files * Fix save and delete * Reorder element wrapper * Init passing the functions down * Init editing new tag item on tree * Separate the two new tagItems * Adding new tags on tree + refactor 🎉 * Fix delete on subtags * Reset form after save and prevent saving empty tags * Prevent close of tree after save * Restructure tree state to fix input * Init refactor on tagTree * Props setup after refactor * Reposition button * Autocompletion fixing * Add componentWillReceiveProps to fix re-render and reset * Refactor into container comp * Remove debugs * Use composewithTracker * Remove props with spread * Update props list * Fix logic breaking new tag style * Tag sort order after drag * Clean un-used vars * Add react tagNav to main navbar container * Fix lint issue * Init toggle visibility * Close tags with overlay * Remove JQuery references(part 1) * Add router.go for tag click * Mobile fixes and remove blaze files * Fix click on mobile * Remove jquery * Remove jquery .closest * UI tagnav classes update * Fixes * Fix undefined refs after merge with development * Remove unused vars * Editing should turn off on toggle * Use Translation component over data-i18n * Fix Brand name glitch * Prefer standalone PropTypes import over React.PropTypes * Inport i18next and Reaction in same line * Space at end of self-closing tag * One-lining imports * Place ' ' inside span for less random-looking code * Add comment about style * Use Divider component as separator * import order * remove duplicate babel preset packages * Updated yarn.lock and removed npm-shrinkwrap.json I’ll try to add back in the release branch, but something funky is going on with shrink-wrap * Admin should be able to invite a user with the same name (#2386) * turn the user name to lowercase * turn the user name to a lowercase string with a random number e.g michael-alade49 * add custom name field to users and accounts schema * create new env var for setting default admin’s name * publish new name field for users * remove unnecessary typeof check for Reaction var * switch priority for user’s displayName source * remove redundant email update and only add user’s name if exists * Update version * switch to Reaction’s new fork of Nodemailer (#2427) * Added module aliases (#2436) * Added module aliases - Added module alias for `core/ui` - Added module alias for `core/router` * Revert jest module name mapper * fix tests - Fixed duplicated mocks warning - added some new mocks - fix translaton component test * LingoHub Update :rocket: (#2420) Manual push by LingoHub User: Aaron Judd. Project: reaction Made with :heart: by https://lingohub.com * Add css style to differentiate read from unread notifications (#2442) * Remove acceptance tests (#2430) * Remove non-working tests * Remove unneeded dependencies * Fixed console error when dragging product images (#2443) * Add closeOnClick option to DropDownMenu component (#2418) * Add closeOnClick option to DropDownMenu component * Fix lint issue - move handleDropdownToggle after componentWillReceiveProps * add missing "orders not found" text (#2424) * Updated chai package - tested with reaction test, tests seemed to work normal * Bunyan and Loggly updates (#2425) * switch to official Loggly lib for Node and write new Bunyan connector for it * update bunyan to 2.0.0 * add REACTION_LOG_FORMAT config option * add extra comments about log formatting options * refactor default admin user creation (#2453) * update memory usage in CircleCI build (#2462) * Navbar hover issue (#2451) * added default hover style for languages and currencies class #2444 * added accounts css class to div in mainDropdownContainer #2444 * added hover styles for account class #2444 * added hover style for notification class #2444 * set css property overflow on horizontal to hidden (#2458) * [WIP] 2452 fix on UI icon toolbar (#2460) 2452 fix on UI icon toolbar * [WIP] 2356 fix on tag menu-sidebar glitch (#2472) Fix on tag menu-sidebar glitch * update media gallery new / deleted image indicators (#2469) * add new status for mediaGalleryIndicator * i18n translations for tooltips * status-badge styles for media gallery * update media gallery image new / deleted indicator * style updates * lint fix * Remove random regex checks on names. Fixes #2461 (#2471) * remove older Blaze based launchdock plugin (#2467) * 2459 router range error fix (#2476) * simple fix * fix typo & linting * fix linting issues * 2422 Fix on email invite link leading to blank screen (#2437) * imported LoginFormValidation to forgotContainer * imported LoginFormValidation to passwordOverlayContainer * added setTimeout function to delay rendering * wrap component in translations (#2434) * removed setTimeouts from updatePassword.js * added spinner before mounting the component * replaced setTimeout with life-cycle hook(componentWillRecieveProps) #2422 * imported LoginFormValidation to prevent console error * Update current user's name on Navbar and profile page when address is added. (#2455) * Update current user's name and profile when address is added * Update user's name when address is updated * Get correct admin user's name from env variables * Updated dependencies (#2463) * Move babelrc into package.json * Updated dependencies * Define missing options variable * Revert minifier to abernix fork (#2486) * Use abernix:standard-minifier-js Replace standard-minifier-js with abernix:[email protected] This should be compatible with current 1.5 tools, and is what we were using before 1.5, because of the faster compilation and reduced memory footprint. Restoring in an attempt to diagnose build issues related to memory. * updated meteor package versions * Fix error when inviting already invited user (#2433) * Refactor invite function to send invites only to non invited members * Refactor error message to show status code * Change the error message to use inline Alert * Clear input fields when there is error * Use Reaction's blaze inlineAlerts for error message * Eliminate console error on inviteShopMember call * Updated timeout time. (#2492) * Updated timeout time. * don't autohide This should not autohide, the error should display until a user resubmits with a new email address. If the error is hidden, they might not see it right away and miss it. This is a blocking error for this field so it should stay until resolved. * Fixed product images not displaying on order completed page (#2490) * Fix hard refresh on clicking tag link on product detail page (#2489) * Provide tag component with missing click function * Remove hard refresh on PDP link in Grid settings * Remove redundant risul:moment-timezone (#2491) * Fix ESLint4 errors correct eslint config errors (#2450) * Properly nest ecmafeatures * Fix indentation errors * Change Proptype * Use react-create-class until Erik finishes upgrading Griddle * Add back in missing PropType imports * More missing PropType imports * Replcae `reaction-create-class` with `create-react-class` * Add rule for un-undef * Add missing `PropTypes` imports that ESLint is finally finding * Add missing imports * Ignore missing imports for Mocha * Add missing imports * Add missing imports * …
- Loading branch information