From edf85dc9b9b86cced82e4f05418e13338f8368f8 Mon Sep 17 00:00:00 2001 From: Spencer Norman Date: Mon, 24 Jul 2017 19:00:31 -0600 Subject: [PATCH] Release 1.4.1 (#2583) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 instead of i18n-data Also updated to spit out better / valid HTML. - Changed tag from

(“Empty Cart” shouldn’t be H1) to

, and also removed the embedded

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 * 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:standard-minifier-js@2.1.0-beta.0 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 * remove import * add in missing imports * add in missing imports * enforce react/jsx-indent linting * Adding missing imports * Missing Gravatar imports * Remove unused helper * Add in mocks to fix React tests * Missing import * Fix missing domain variable * Change comment to reflect new version * Adding local versions of `loadMoreProducts` * Replacing Meteor package with npm package * Correct use of amplify-store * Remove call to missing function setCurrentProduct * Ignoring these last few globals * Fix missing lodash import * Remove duplicate import * Remove jsx indent rule that's causing files to fail incorrectly * New SortableTable component to replace MeteorGriddle (#2416) * rename TacoTable to Legacy * upgrade griddle NPM * rename MeteorGriddle to SortableTable * break up sortable table from sortabletablelegacy (TacoTable) * merge * change object key names to use with react-table instead of griddle * kill griddle, add react-table * remove useGriddleStyles prop * remove testData * sortableTable updates * sortableTable Styles * remove old ui-grid, move into components sortableTable * update size of Templates dashboard for better usability * ridding the wrapper of old Griddle info * more props passed to wrapper * fixes for email table * update Email table to use ReactTable * email table convert to ReactTable * custom pagination component for React-Table * update Avalara to use ReactTable * add spacing below tables * remove leftover console.logs * lint fixes * lint fix * query prop validation * pagination updates * componetize pagination * move emailconfig css to LESS file * style updates for sortableTable * update translations * custom full-table filter for ReactTable * custom full table filter * new match-sorter package for custom filter * add translations for default table text * translations * kill translations for the moment, something is acting up * add catch for error when no data is available * various fixes * fix shippo status * Shippo table update * lint fixes * lint fixes * remove log * lint fix * Fix linting problems introduced in new SortableTable (#2505) * Show proper error messages when Stripe payments fail (#2499) * Don't display random error messages to client * Debugging upstream message flow * Normalize/sanitize error so you can just show the error from the server to the client * Remove logger statement * Handle Match failures * removing extra logging * Fix tests * Fix missing reference (#2507) * Default to using shop country code or GeoIP result for new addresses (#2515) * For new address default to using shop’s country code if it exists. * use GeoIP to determine user’s country and set it in address form * Add Tunisian Dinar currency (#2517) * Add Tunisian Dinar currency * Add entry in second shop (TND) * Fix issue dragging images in PDP when settings drawer is open (#2506) * Fix condition that enables images to be displayed to product grid * Fix main image upload handler to upload main product image * Fix send sms method to read settings of shop and buyer userId (#2508) * Fix Errors importing exported product data (#2513) * remove _id fields from documents to be imported * Use _id to look up product before updating * Refactor product import callback * Refactor import method to avoid single-line if statement * Convert product grid to React: Milestone 57 (#2402) * Add search input field * React component boilerplate * Render products with pdpPath * Add class names to li * Render visible class name and overlay * Render media * React alerts/content component boilerplate * Remove unnecesarry div wrapper in prodict grid component * Grid content * Grid notices * Grid controls (part 1) * Grid controls (part 2) * Remove grid control templates * Add in functionality for modal * Init product grid * Products sub setup * Use product object as props from productGrid component * Refactor grid layout * handleSelectProductItem handler on grid container * Remove item and content templates * Include itemSelectHandler in grid controls * Add some more functions * Handle product double click * Handle product click of non-admins * Init drag drop * Add index to drag; and udpate call * Update state indexes after drag release * make method call after drag state change * Fix css issue * Enable drag based on permission * Handle product click of admins(part 1) * Use standalone PropTypes import over React.PropTypes * Add componentDidMount and componentWillUnmount conditions to item container * Subscription working right * Handle product click of admins(part 2) * Save products in state * Add product grid to search grid * Fix product display/click in search modal * Handle product click of admins(part 3) * Add order and account tables onto search * Fix broken product drag & drop * Display accounts and order tables using React * Remove tag results when order/account search * Add onRowClick for orders and accounts * Change folder structure and add unMount * Remove logs * Replace unmountComponentAtNode with prop change * Close modal working well * Add proptypes * Display products * Fix import order * Handle load more products * Add permissions to search tabs * Fix setState error * Fix hover-over-preview on search, add it to default product-grid * render loadMoreProducts button * Fix search result onClick close modal * Add active classes on tags * Remove unused code * Remove import on index * Move react components/containers out of client folder into lib folder * Move react components/containers out of lib folder * Remove jquery * Remove product hover over in grid * Product search click of non-admins * Use Translation component over data-i18n * Fix error o searchorders * Fix broken loadMoreProducts button * Remove product hover over in grid: less file * Remove infinite scroll on product grid * Tweek orders search * Remove logs * Fix Bithound issues * update state with new data when available * update table to use SortableTableLegacy * Fix switch of accounts on search * Remove bnd * Add on rowclick function to sortTableLegacy * Fix bitHound failing file issue * Add esc functionality on search * Persist searchQuery on search re-open * Set initialLoad state to false to avoid reload of all the product grid data on loadMoreProducts click (yet to fix setState error) * Set initialLoad state to false on loadMoreProducts button click; fixes setState error on console * Fix scroll in Search Modal when products go longer than the page * Remove unnecessary function usage * Fix import order * Use Array.isArray over lodash * Import $ from meteor/jquery * Remove unnecessary variables * Refactor repeated code into common function * Correct error throwing * update import alias * use import alias * use import alias * use import alias * use import alias * update import order * update import order * import order * Fix for no scrollbar in Dashboard (#2511) * Add ability to scroll on dashbord * Add scrolling to vertical toolbar only * Hide horizontal scrollbar * Fix for issue #1993 (#2518) * Fix for #1993 * Fix linter errors. * Cleanup. * Fix unable to open fulfill order action view (#2530) * Fix hard refresh when clicking View All notifications * Fix click action for rendering orders on dashboard * Add click handler to render action panel * Fix Exception in delivering result of invoking 'email/verifySettings' (#2512) * Only verify email settings when saving settings * Move server method call to container component * Fix import order * update Docker base to v2.0.2 (#2537) * Fix order action button reverting status to processing (#2541) * correct order action workflow change * always update selected order * Update eslint to v4 (#2542) * Update Eslint * Auto-fix eslint errors * fix 2547: vertically-center navbar link using @navbar-height height variable instead of percentage height (#2551) * Fix issue 2535. Transliteration in Safari/IE (#2553) * Use official Reaction fork * Go back to standard import * Provide sort parameter to Products subscription and remove duplicate sorting of products (#2552) * Fix LoadMoreProducts button not working as it should (#2554) * Apply limit to products publication selector for admin users * Get correct top level products from publications * Set correct scroll check to load more products * Version 1.3.1 * Meteor 1.5.1 * Fix You may not observe cursor with fields _id: 0 (#2555) Fixes console error ``` Error: You may not observe a cursor with {fields: {_id: 0}} ``` Not really sure when it got introduced, perhaps in Meteor `1.5.1rc5`? @erik and I had both seen this issue intermittently * Version 1.4.0 - Release 1.3.1 renamed to 1.4.0 as there as some potential breaking changes in the new React components (PDP Grid, ReactTables replacement of Griddle). * Rename emailTableColumn -> shippoTableColumn (#2564) * LingoHub based on development (#2566) * 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: Spencer Norman. Project: reaction Made with :heart: by https://lingohub.com * Longer timeout for circleci to run build.sh (#2565) * longer timeout for circleci to run build.sh * update no_output_timeout with unit of time * Adds inline validation to variant & child variant form (#2531) * Adds inline validation to form variant form * remove commented code * Save data only if form is valid * move validation to a seperate plugin * Simplify passing validation object into components Adds ability to pass an entire validation status object into TextField component, and with a provided name, get the validation messages if available. * fixed card open / close states * Add validation to child variant form * Fixed variable name typo * Fixed typos on comment * Fixed broken checkbox update handler * Fixed top variant card closing on edit of some fields * Fix issues with validation and other fields - Changed variant form and child variant forms are now validaded on initial render. - Changed flash top varient field red if error, green if valid - Added `fields` object to validationStatus with field validation status and value - Added helper function to validation status to test field validity * Remove unused import * Remove launchdock-connect files (#2570) * Instagram Login/Registration (#2562) * Add instagram login/registration * Add browser policy * Fix user name not showing on navbar * Add styling to instagram button * browser policy for instagram images * add instagram translation * sign in formatting * Display user's profile name * revert padding, was applying to incorrect location * update browser policy * Update MultiSelect prop type value (#2576) Fix prop type value of MultiSelect to match values expected by underlying component. * Remove native bcrypt (#2571) Resolves #2333 Apparently the failing bcrypt / fallback installation was causing ..module not found errors. — need to evaluate for performance issues (see warning) — need to update docs to warn about the warning.. — todo find better solution! * Don't add a prefix when there is a single shop (#2563) * Updated packages * Update to release 1.4.1 * Fix Setting product visibility is not reflected in the Product Grid reactively (#2561) * Reactively display only visible products for both admin and non-admin * Admin can see all products, non-admins can see only visible ones * Reactively publish new products * improve query to fix failing tests * Remove unnecessary react lifecycle method * Clean up products selector * LingoHub Update :rocket: Manual push by LingoHub User: Spencer Norman. Project: reaction Made with :heart: by https://lingohub.com * remove launchdock from git including i18n stuff --- .meteor/packages | 3 ++- .meteor/versions | 7 ++--- .../accounts/components/auth/loginButtons.js | 1 + .../dropdown/mainDropdownContainer.js | 7 +++-- client/modules/accounts/helpers/util.js | 10 ++++++- .../accounts/templates/profile/profile.js | 26 +++++++++++++++++++ .../components/multiselect/multiselect.js | 2 +- .../launchdock-connect/server/i18n/ar.json | 18 ------------- .../launchdock-connect/server/i18n/bg.json | 18 ------------- .../launchdock-connect/server/i18n/cs.json | 18 ------------- .../launchdock-connect/server/i18n/de.json | 18 ------------- .../launchdock-connect/server/i18n/el.json | 18 ------------- .../launchdock-connect/server/i18n/en.json | 18 ------------- .../launchdock-connect/server/i18n/es.json | 18 ------------- .../launchdock-connect/server/i18n/fr.json | 18 ------------- .../launchdock-connect/server/i18n/he.json | 5 ---- .../launchdock-connect/server/i18n/hr.json | 18 ------------- .../launchdock-connect/server/i18n/hu.json | 18 ------------- .../launchdock-connect/server/i18n/it.json | 18 ------------- .../launchdock-connect/server/i18n/my.json | 18 ------------- .../launchdock-connect/server/i18n/nb.json | 5 ---- .../launchdock-connect/server/i18n/nl.json | 18 ------------- .../launchdock-connect/server/i18n/pl.json | 18 ------------- .../launchdock-connect/server/i18n/pt.json | 18 ------------- .../launchdock-connect/server/i18n/ro.json | 18 ------------- .../launchdock-connect/server/i18n/ru.json | 18 ------------- .../launchdock-connect/server/i18n/sl.json | 18 ------------- .../launchdock-connect/server/i18n/sv.json | 18 ------------- .../launchdock-connect/server/i18n/tr.json | 18 ------------- .../launchdock-connect/server/i18n/vi.json | 18 ------------- .../launchdock-connect/server/i18n/zh.json | 18 ------------- .../payments-paypal/lib/api/express.js | 4 +-- lib/api/helpers.js | 10 ++++++- package.json | 3 +-- private/data/i18n/ar.json | 1 + private/data/i18n/bg.json | 1 + private/data/i18n/cs.json | 1 + private/data/i18n/de.json | 1 + private/data/i18n/el.json | 1 + private/data/i18n/en.json | 1 + private/data/i18n/es.json | 1 + private/data/i18n/fr.json | 1 + private/data/i18n/hr.json | 1 + private/data/i18n/hu.json | 1 + private/data/i18n/it.json | 1 + private/data/i18n/my.json | 1 + private/data/i18n/nl.json | 1 + private/data/i18n/pl.json | 1 + private/data/i18n/pt.json | 1 + private/data/i18n/ro.json | 1 + private/data/i18n/ru.json | 1 + private/data/i18n/sl.json | 1 + private/data/i18n/sv.json | 1 + private/data/i18n/tr.json | 1 + private/data/i18n/vi.json | 1 + private/data/i18n/zh.json | 1 + server/security/policy.js | 1 + 57 files changed, 83 insertions(+), 419 deletions(-) delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/ar.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/bg.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/cs.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/de.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/el.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/en.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/es.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/fr.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/he.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/hr.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/hu.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/it.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/my.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/nb.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/nl.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/pl.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/pt.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/ro.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/ru.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/sl.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/sv.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/tr.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/vi.json delete mode 100644 imports/plugins/included/launchdock-connect/server/i18n/zh.json diff --git a/.meteor/packages b/.meteor/packages index 2092e377446..f2f5af3d6e2 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -47,11 +47,13 @@ twitter-config-ui@1.0.0 # Community Packages +abernix:standard-minifier-js alanning:roles aldeed:autoform aldeed:collection2 aldeed:schema-index aldeed:template-extension +bozhao:accounts-instagram cfs:filesystem cfs:graphicsmagick cfs:gridfs @@ -92,4 +94,3 @@ johanbrook:publication-collector # meteorhacks:sikka # additional ddp, login security # Custom Packages -abernix:standard-minifier-js@2.1.0-beta.0 diff --git a/.meteor/versions b/.meteor/versions index d553be9aec3..c8de1930cb1 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -26,6 +26,7 @@ blaze@2.3.2 blaze-html-templates@1.1.2 blaze-tools@1.0.10 boilerplate-generator@1.1.1 +bozhao:accounts-instagram@0.2.2 browser-policy@1.1.0 browser-policy-common@1.0.11 browser-policy-content@1.1.0 @@ -85,7 +86,7 @@ html-tools@1.0.11 htmljs@1.0.11 http@1.2.12 id-map@1.0.9 -johanbrook:publication-collector@1.0.9 +johanbrook:publication-collector@1.0.10 jparker:crypto-core@0.1.0 jparker:crypto-md5@0.1.1 jparker:gravatar@0.5.1 @@ -113,13 +114,13 @@ mobile-status-bar@1.0.14 modules@0.9.2 modules-runtime@0.8.0 momentjs:moment@2.18.1 -mongo@1.1.19 +mongo@1.1.22 mongo-id@1.0.6 mongo-livedata@1.0.12 mrt:later@1.6.1 natestrauser:select2@4.0.3 npm-bcrypt@0.9.3 -npm-mongo@2.2.24 +npm-mongo@2.2.30 oauth@1.1.13 oauth-encryption@1.2.1 oauth1@1.1.11 diff --git a/client/modules/accounts/components/auth/loginButtons.js b/client/modules/accounts/components/auth/loginButtons.js index a349cb76b67..f7800833f7d 100644 --- a/client/modules/accounts/components/auth/loginButtons.js +++ b/client/modules/accounts/components/auth/loginButtons.js @@ -33,6 +33,7 @@ class LoginButtons extends Component { {this.props.currentView === "loginFormSignInView" && +   } diff --git a/client/modules/accounts/containers/dropdown/mainDropdownContainer.js b/client/modules/accounts/containers/dropdown/mainDropdownContainer.js index 258f0e79837..2865225a81c 100644 --- a/client/modules/accounts/containers/dropdown/mainDropdownContainer.js +++ b/client/modules/accounts/containers/dropdown/mainDropdownContainer.js @@ -70,18 +70,21 @@ class MainDropdownContainer extends Component { function getCurrentUser() { const shopId = Reaction.getShopId(); - const user = Accounts.user(); + const user = Accounts.user() || {}; if (!shopId || typeof user !== "object") { return null; } + // shoppers should always be guests const isGuest = Roles.userIsInRole(user, "guest", shopId); // but if a user has never logged in then they are anonymous const isAnonymous = Roles.userIsInRole(user, "anonymous", shopId); - return isGuest && !isAnonymous ? user : null; + const account = Collections.Accounts.findOne(user._id); + + return isGuest && !isAnonymous ? account : null; } function getUserGravatar(currentUser, size) { diff --git a/client/modules/accounts/helpers/util.js b/client/modules/accounts/helpers/util.js index fb47aab4fa5..3e2bcc7cffc 100644 --- a/client/modules/accounts/helpers/util.js +++ b/client/modules/accounts/helpers/util.js @@ -10,7 +10,8 @@ function capitalize(str) { const providers = { Facebook: {}, Google: {}, - Twitter: {} + Twitter: {}, + Instagram: {} }; providers.Facebook.fields = function () { @@ -34,6 +35,13 @@ providers.Twitter.fields = function () { ]; }; +providers.Instagram.fields = function () { + return [ + { property: "clientId", label: "Client ID" }, + { property: "secret", label: "Client secret" } + ]; +}; + export class ServiceConfigHelper { availableServices() { const services = Package["accounts-oauth"] ? Accounts.oauth.serviceNames() : []; diff --git a/client/modules/accounts/templates/profile/profile.js b/client/modules/accounts/templates/profile/profile.js index 5d053c646d6..b408b02b487 100644 --- a/client/modules/accounts/templates/profile/profile.js +++ b/client/modules/accounts/templates/profile/profile.js @@ -1,7 +1,9 @@ import { Meteor } from "meteor/meteor"; import { Template } from "meteor/templating"; +import { Roles } from "meteor/alanning:roles"; import { ReactiveVar } from "meteor/reactive-var"; import { Reaction } from "/client/api"; +import { i18next } from "/client/api"; import * as Collections from "/lib/collections"; /** @@ -58,6 +60,30 @@ Template.accountProfile.helpers({ return Collections.Accounts.findOne(); }, + /** + * User's display name + * @return {String} display name + */ + displayName() { + const userId = Meteor.userId() || {}; + const user = Collections.Accounts.findOne(userId); + + if (user) { + if (user.name) { + return user.name; + } else if (user.username) { + return user.username; + } else if (user.profile && user.profile.name) { + return user.profile.name; + } + } + + if (Roles.userIsInRole(user._id || user.userId, "account/profile", + Reaction.getShopId())) { + return i18next.t("accountsUI.guest", { defaultValue: "Guest" }); + } + }, + /** * Returns the address book default view * @return {String} "addressBookGrid" || "addressBookAdd" diff --git a/imports/plugins/core/ui/client/components/multiselect/multiselect.js b/imports/plugins/core/ui/client/components/multiselect/multiselect.js index 54d3f0352fc..42276a36d80 100644 --- a/imports/plugins/core/ui/client/components/multiselect/multiselect.js +++ b/imports/plugins/core/ui/client/components/multiselect/multiselect.js @@ -19,7 +19,7 @@ class MultiSelect extends Component { onChange: PropTypes.func, options: PropTypes.array, placeholder: PropTypes.string, - value: PropTypes.oneOfType([PropTypes.array, PropTypes.string]) + value: PropTypes.any } renderLabel() { diff --git a/imports/plugins/included/launchdock-connect/server/i18n/ar.json b/imports/plugins/included/launchdock-connect/server/i18n/ar.json deleted file mode 100644 index 4a8133343e6..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/ar.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "ar", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "الاتصال", - "connectTitle": "الاتصال", - "connectDescription": "تواصل ردود الفعل كخدمة نشر" - }, - "settings": { - "reactionConnectLabel": "رد فعل الاتصال" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/bg.json b/imports/plugins/included/launchdock-connect/server/i18n/bg.json deleted file mode 100644 index 1d9181c832b..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/bg.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "bg", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Свържете", - "connectTitle": "Свържете", - "connectDescription": "Свържете Реакция като разгърнати услуга" - }, - "settings": { - "reactionConnectLabel": "реакция Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/cs.json b/imports/plugins/included/launchdock-connect/server/i18n/cs.json deleted file mode 100644 index 47e23fbb43f..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/cs.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "cs", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Připojit", - "connectTitle": "Připojit", - "connectDescription": "Připojit reakce jako rozvinuté služby" - }, - "settings": { - "reactionConnectLabel": "reakce Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/de.json b/imports/plugins/included/launchdock-connect/server/i18n/de.json deleted file mode 100644 index cf07d857577..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/de.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "de", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Verbinden", - "connectTitle": "Verbinden", - "connectDescription": "Verbinden Reaktion als bereitgestellten Dienst" - }, - "settings": { - "reactionConnectLabel": "Die Reaktion Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/el.json b/imports/plugins/included/launchdock-connect/server/i18n/el.json deleted file mode 100644 index f05db90c402..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/el.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "el", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Συνδέω", - "connectTitle": "Συνδέω", - "connectDescription": "Συνδέστε Αντίδραση ως αναπτυχθεί υπηρεσία" - }, - "settings": { - "reactionConnectLabel": "αντίδραση Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/en.json b/imports/plugins/included/launchdock-connect/server/i18n/en.json deleted file mode 100644 index a0c25c447d6..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/en.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "en", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Connect", - "connectTitle": "Connect", - "connectDescription": "Connect Reaction as a deployed service" - }, - "settings": { - "reactionConnectLabel": "Reaction Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/es.json b/imports/plugins/included/launchdock-connect/server/i18n/es.json deleted file mode 100644 index a465cc93ac0..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/es.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "es", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Conectar", - "connectTitle": "Conectar", - "connectDescription": "Conectar reacción como un servicio desplegado" - }, - "settings": { - "reactionConnectLabel": "reacción Conectar" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/fr.json b/imports/plugins/included/launchdock-connect/server/i18n/fr.json deleted file mode 100644 index ad8b73737c7..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/fr.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "fr", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Relier", - "connectTitle": "Relier", - "connectDescription": "Connectez réaction en tant que service déployé" - }, - "settings": { - "reactionConnectLabel": "réaction Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/he.json b/imports/plugins/included/launchdock-connect/server/i18n/he.json deleted file mode 100644 index 506cc4b7719..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/he.json +++ /dev/null @@ -1,5 +0,0 @@ -[{ - "i18n": "he", - "ns": "reaction-connect", - "translation": { } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/hr.json b/imports/plugins/included/launchdock-connect/server/i18n/hr.json deleted file mode 100644 index 5bcca8fc630..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/hr.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "hr", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Spojiti", - "connectTitle": "Spojiti", - "connectDescription": "Povezivanje reakcija kao razmještene usluge" - }, - "settings": { - "reactionConnectLabel": "reakcija Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/hu.json b/imports/plugins/included/launchdock-connect/server/i18n/hu.json deleted file mode 100644 index 348f0ea2969..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/hu.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "hu", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Csatlakozás", - "connectTitle": "Csatlakozás", - "connectDescription": "Csatlakozás Reakció a telepített szolgáltatás" - }, - "settings": { - "reactionConnectLabel": "reakció Csatlakozás" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/it.json b/imports/plugins/included/launchdock-connect/server/i18n/it.json deleted file mode 100644 index 2d70e7cbef4..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/it.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "it", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Collegare", - "connectTitle": "Collegare", - "connectDescription": "Collegare reazione come un servizio distribuito" - }, - "settings": { - "reactionConnectLabel": "reazione Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/my.json b/imports/plugins/included/launchdock-connect/server/i18n/my.json deleted file mode 100644 index 3c882fb8d61..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/my.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "my", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "ဆက်", - "connectTitle": "ဆက်", - "connectDescription": "တစ်တပ်ဖြန့်ဝန်ဆောင်မှုအဖြစ်တုံ့ပြန်မှုချိတ်ဆက်ပါ" - }, - "settings": { - "reactionConnectLabel": "တုံ့ပြန်မှု Connect ကို" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/nb.json b/imports/plugins/included/launchdock-connect/server/i18n/nb.json deleted file mode 100644 index 21ef5f82ef7..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/nb.json +++ /dev/null @@ -1,5 +0,0 @@ -[{ - "i18n": "nb", - "ns": "reaction-connect", - "translation": { } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/nl.json b/imports/plugins/included/launchdock-connect/server/i18n/nl.json deleted file mode 100644 index b53a0000fff..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/nl.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "nl", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Aansluiten", - "connectTitle": "Aansluiten", - "connectDescription": "Sluit Reaction als ingezet dienst" - }, - "settings": { - "reactionConnectLabel": "reactie Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/pl.json b/imports/plugins/included/launchdock-connect/server/i18n/pl.json deleted file mode 100644 index d62f78b5f50..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/pl.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "pl", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Połączyć", - "connectTitle": "Połączyć", - "connectDescription": "Podłączyć reakcyjnej w postaci wdrożonej usługi" - }, - "settings": { - "reactionConnectLabel": "reakcja Połącz" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/pt.json b/imports/plugins/included/launchdock-connect/server/i18n/pt.json deleted file mode 100644 index 9d43ec1def5..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/pt.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "pt", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Conectar", - "connectTitle": "Conectar", - "connectDescription": "Ligue Reaction como um serviço implantado" - }, - "settings": { - "reactionConnectLabel": "reação Ligar" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/ro.json b/imports/plugins/included/launchdock-connect/server/i18n/ro.json deleted file mode 100644 index b5df4b89dd9..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/ro.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "ro", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Conectați", - "connectTitle": "Conectați", - "connectDescription": "Reacția a conecta ca un serviciu implementat" - }, - "settings": { - "reactionConnectLabel": "reacție Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/ru.json b/imports/plugins/included/launchdock-connect/server/i18n/ru.json deleted file mode 100644 index 3c022308793..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/ru.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "ru", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Подключать", - "connectTitle": "Подключать", - "connectDescription": "Подключение реакции в качестве развернутой службы" - }, - "settings": { - "reactionConnectLabel": "Реакция Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/sl.json b/imports/plugins/included/launchdock-connect/server/i18n/sl.json deleted file mode 100644 index c56f3e420e2..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/sl.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "sl", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Poveži", - "connectTitle": "Poveži", - "connectDescription": "Povežite Reakcija kot razporejeno storitev" - }, - "settings": { - "reactionConnectLabel": "reakcija Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/sv.json b/imports/plugins/included/launchdock-connect/server/i18n/sv.json deleted file mode 100644 index 226d33d7959..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/sv.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "sv", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Ansluta", - "connectTitle": "Ansluta", - "connectDescription": "Anslut reaktion som en utvecklad tjänst" - }, - "settings": { - "reactionConnectLabel": "reaktions~~POS=TRUNC Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/tr.json b/imports/plugins/included/launchdock-connect/server/i18n/tr.json deleted file mode 100644 index 1ebc549bdb7..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/tr.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "tr", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Bağlamak", - "connectTitle": "Bağlamak", - "connectDescription": "Açılmış bir hizmet olarak Tepki bağlayın" - }, - "settings": { - "reactionConnectLabel": "reaksiyon Bağlan" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/vi.json b/imports/plugins/included/launchdock-connect/server/i18n/vi.json deleted file mode 100644 index 815b1da038c..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/vi.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "vi", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "Kết nối", - "connectTitle": "Kết nối", - "connectDescription": "Kết nối phản ứng như một dịch vụ triển khai" - }, - "settings": { - "reactionConnectLabel": "phản ứng Connect" - } - } - } - } -}] diff --git a/imports/plugins/included/launchdock-connect/server/i18n/zh.json b/imports/plugins/included/launchdock-connect/server/i18n/zh.json deleted file mode 100644 index e41bdad5347..00000000000 --- a/imports/plugins/included/launchdock-connect/server/i18n/zh.json +++ /dev/null @@ -1,18 +0,0 @@ -[{ - "i18n": "zh", - "ns": "reaction-connect", - "translation": { - "reaction-connect": { - "admin": { - "dashboard": { - "connectLabel": "接", - "connectTitle": "接", - "connectDescription": "连接反应作为部署的服务" - }, - "settings": { - "reactionConnectLabel": "反应连接" - } - } - } - } -}] diff --git a/imports/plugins/included/payments-paypal/lib/api/express.js b/imports/plugins/included/payments-paypal/lib/api/express.js index 2334660ff28..beade5c69a3 100644 --- a/imports/plugins/included/payments-paypal/lib/api/express.js +++ b/imports/plugins/included/payments-paypal/lib/api/express.js @@ -40,8 +40,8 @@ export const Express = { password: getSettings(settings, ref, "password"), signature: getSettings(settings, ref, "signature"), merchantId: getSettings(settings, ref, "merchantId"), - return_url: Reaction.getAbsoluteUrl("/paypal/done"), - cancel_url: Reaction.getAbsoluteUrl("/paypal/cancel") + return_url: Reaction.getAbsoluteUrl("paypal/done"), + cancel_url: Reaction.getAbsoluteUrl("paypal/cancel") }; if (options.mode === "sandbox") { options.url = "https://api-3t.sandbox.paypal.com/nvp"; diff --git a/lib/api/helpers.js b/lib/api/helpers.js index 8421ccac532..8eb37b09a43 100644 --- a/lib/api/helpers.js +++ b/lib/api/helpers.js @@ -39,6 +39,9 @@ export function getShopName() { * @return {String} returns shop url prefix */ export function getShopPrefix(leading = "/") { + if (Shops.find({}).count() === 1) { + return ""; + } return leading + getSlug(getShopName().toLowerCase()); } @@ -49,7 +52,12 @@ export function getShopPrefix(leading = "/") { */ export function getAbsoluteUrl(path) { const prefix = getShopPrefix(""); - return Meteor.absoluteUrl(`${prefix}${path}`); + if (prefix) { + const absUrl = Meteor.absoluteUrl(`${prefix}/${path}`); + return absUrl; + } + const absUrl = Meteor.absoluteUrl(`${path}`); + return absUrl; } /** diff --git a/package.json b/package.json index 4b7e29d53eb..45aae1b92d4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "reaction", "description": "Reaction is a modern reactive, real-time event driven ecommerce platform.", - "version": "1.4.0", + "version": "1.4.1", "main": "main.js", "directories": { "test": "tests" @@ -26,7 +26,6 @@ "autoprefixer": "^7.1.1", "autosize": "^3.0.20", "babel-runtime": "^6.23.0", - "bcrypt": "^1.0.2", "bootstrap": "^3.3.7", "braintree": "^2.0.2", "bunyan": "^2.0.0", diff --git a/private/data/i18n/ar.json b/private/data/i18n/ar.json index eb63398ddab..015958ca887 100644 --- a/private/data/i18n/ar.json +++ b/private/data/i18n/ar.json @@ -546,6 +546,7 @@ "facebook": "فيسبوك", "google": "جوجل", "github": "جيثب", + "instagram": "إنستاجرام", "meetup": "ميتوب", "ok": "حسناً", "twitter": "تويتر", diff --git a/private/data/i18n/bg.json b/private/data/i18n/bg.json index 96aaec0f50a..4c7b44a6bbe 100644 --- a/private/data/i18n/bg.json +++ b/private/data/i18n/bg.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Добре", "twitter": "Twitter", diff --git a/private/data/i18n/cs.json b/private/data/i18n/cs.json index 9965b8ac6f4..8e35e054947 100644 --- a/private/data/i18n/cs.json +++ b/private/data/i18n/cs.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Dobře", "twitter": "Twitter", diff --git a/private/data/i18n/de.json b/private/data/i18n/de.json index 22ba2100af8..f47ecefcf70 100644 --- a/private/data/i18n/de.json +++ b/private/data/i18n/de.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "OK", "twitter": "Twitter", diff --git a/private/data/i18n/el.json b/private/data/i18n/el.json index ba86cd30e06..e12f5b24b95 100644 --- a/private/data/i18n/el.json +++ b/private/data/i18n/el.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Εντάξει", "twitter": "Twitter", diff --git a/private/data/i18n/en.json b/private/data/i18n/en.json index 06c8f6127a2..9edb15d8a58 100644 --- a/private/data/i18n/en.json +++ b/private/data/i18n/en.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Ok", "twitter": "Twitter", diff --git a/private/data/i18n/es.json b/private/data/i18n/es.json index 3df99ed2087..67af8382671 100644 --- a/private/data/i18n/es.json +++ b/private/data/i18n/es.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "OK", "twitter": "Twitter", diff --git a/private/data/i18n/fr.json b/private/data/i18n/fr.json index 9e7c9a78c40..ff6b8d2894e 100644 --- a/private/data/i18n/fr.json +++ b/private/data/i18n/fr.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Ok", "twitter": "Twitter", diff --git a/private/data/i18n/hr.json b/private/data/i18n/hr.json index cdda01d223f..ec279050fcd 100644 --- a/private/data/i18n/hr.json +++ b/private/data/i18n/hr.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "U redu", "twitter": "Twitter", diff --git a/private/data/i18n/hu.json b/private/data/i18n/hu.json index ab7195b267f..eaf7fc2a586 100644 --- a/private/data/i18n/hu.json +++ b/private/data/i18n/hu.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Rendben", "twitter": "Twitter", diff --git a/private/data/i18n/it.json b/private/data/i18n/it.json index cdc8610490b..74ee00de1ce 100644 --- a/private/data/i18n/it.json +++ b/private/data/i18n/it.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Ok", "twitter": "Twitter", diff --git a/private/data/i18n/my.json b/private/data/i18n/my.json index 08ad6be813c..0acee802c1f 100644 --- a/private/data/i18n/my.json +++ b/private/data/i18n/my.json @@ -546,6 +546,7 @@ "facebook": "Facebook က", "google": "Google က", "github": "GitHub", + "instagram": "Instagram ကို", "meetup": "Meetup", "ok": "အိုကေ", "twitter": "တွစ်တာ", diff --git a/private/data/i18n/nl.json b/private/data/i18n/nl.json index 4e855e56080..73b3d6012e0 100644 --- a/private/data/i18n/nl.json +++ b/private/data/i18n/nl.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "OK", "twitter": "Twitter", diff --git a/private/data/i18n/pl.json b/private/data/i18n/pl.json index 8f3b8642122..9058c98754b 100644 --- a/private/data/i18n/pl.json +++ b/private/data/i18n/pl.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Ok", "twitter": "Twitter", diff --git a/private/data/i18n/pt.json b/private/data/i18n/pt.json index ab500875d2e..e9bd0b6e338 100644 --- a/private/data/i18n/pt.json +++ b/private/data/i18n/pt.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Ok", "twitter": "Twitter", diff --git a/private/data/i18n/ro.json b/private/data/i18n/ro.json index 31122cdb198..aef6aa580c6 100644 --- a/private/data/i18n/ro.json +++ b/private/data/i18n/ro.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "O.K.", "twitter": "Twitter", diff --git a/private/data/i18n/ru.json b/private/data/i18n/ru.json index 1f6d306a7b8..b1ec5fb78fa 100644 --- a/private/data/i18n/ru.json +++ b/private/data/i18n/ru.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Одноклассники", "twitter": "Twitter", diff --git a/private/data/i18n/sl.json b/private/data/i18n/sl.json index 6cdf5381f02..ac304faafae 100644 --- a/private/data/i18n/sl.json +++ b/private/data/i18n/sl.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "V redu", "twitter": "Twitter", diff --git a/private/data/i18n/sv.json b/private/data/i18n/sv.json index 247e5bdcf7f..a9bf89b06e4 100644 --- a/private/data/i18n/sv.json +++ b/private/data/i18n/sv.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Ok", "twitter": "Twitter", diff --git a/private/data/i18n/tr.json b/private/data/i18n/tr.json index 7b49ebf74b7..1b9dadfd753 100644 --- a/private/data/i18n/tr.json +++ b/private/data/i18n/tr.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Tamam", "twitter": "Twitter", diff --git a/private/data/i18n/vi.json b/private/data/i18n/vi.json index fe4f3de8f1d..097fa931002 100644 --- a/private/data/i18n/vi.json +++ b/private/data/i18n/vi.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram", "meetup": "Meetup", "ok": "Được", "twitter": "Twitter", diff --git a/private/data/i18n/zh.json b/private/data/i18n/zh.json index 5f73009e837..06ebcd8e1d1 100644 --- a/private/data/i18n/zh.json +++ b/private/data/i18n/zh.json @@ -546,6 +546,7 @@ "facebook": "Facebook", "google": "Google", "github": "GitHub", + "instagram": "Instagram的", "meetup": "Meetup", "ok": "确定", "twitter": "Twitter", diff --git a/server/security/policy.js b/server/security/policy.js index 4d122a29533..edad2494053 100644 --- a/server/security/policy.js +++ b/server/security/policy.js @@ -37,6 +37,7 @@ BrowserPolicy.content.allowOriginForAll("*.facebook.com"); BrowserPolicy.content.allowOriginForAll("*.fbcdn.net"); BrowserPolicy.content.allowOriginForAll("connect.facebook.net"); BrowserPolicy.content.allowOriginForAll("*.googleusercontent.com"); +BrowserPolicy.content.allowOriginForAll("*.cdninstagram.com"); BrowserPolicy.content.allowImageOrigin("fbcdn-profile-a.akamaihd.net"); BrowserPolicy.content.allowImageOrigin("secure.gravatar.com");