Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Avalara Tax Compliance #1870

Merged
merged 125 commits into from
Mar 10, 2017
Merged
Show file tree
Hide file tree
Changes from 107 commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
9f76387
Save company object from Avalara API
impactmass Feb 16, 2017
c354446
Load `appVersion` from package,json at startup. Create global `getApp…
brent-hoover Feb 17, 2017
e5c16fa
create avaGet function to pass in extra header info. Add getTaxCodes …
brent-hoover Feb 17, 2017
c9e7e84
Extend plugin to also provide tax codes
brent-hoover Feb 17, 2017
6638741
Add Test connection option in Avalara admin dashboard
impactmass Feb 16, 2017
91af920
Send taxCode along with cart/orders
brent-hoover Feb 17, 2017
67e2fd8
Capture full tax detail in "taxes" field
brent-hoover Feb 17, 2017
0533278
Update Test Credentials to use companyCode API
impactmass Feb 20, 2017
4b11f1c
Add input field for shipping tax code
brent-hoover Feb 19, 2017
10ad786
Add provides: taxCodes API to taxcloud
brent-hoover Feb 19, 2017
4a3dfe1
add itemCode to cart/order payload
brent-hoover Feb 19, 2017
f59a3d9
use item id as line number. Pass in correct productId
brent-hoover Feb 20, 2017
74fa576
Pass in shipping as additional non-taxable (based on taxcode) item
brent-hoover Feb 20, 2017
6c4ed39
allow avaPost/avaGet to be used asynchronously
brent-hoover Feb 20, 2017
1ee2c86
Add setting to turn off tax calculation separately from disabling the…
brent-hoover Feb 20, 2017
eeb68b8
Add the rest of the fields to the form (except validation countries)
brent-hoover Feb 20, 2017
0203559
Use correct UID and correct URL for getTaxCode
brent-hoover Feb 20, 2017
10b402e
Add setup for address validation by country
impactmass Feb 20, 2017
71fe8c6
Don't commit documents when commit is turned off. Eliminate unneeded …
brent-hoover Feb 20, 2017
66120a6
Eliminate async versions of avaGet/avaPost. These should never be cal…
brent-hoover Feb 21, 2017
9f0753e
Add defaults for new configuration settings. Make shippingTaxCode req…
brent-hoover Feb 21, 2017
10f0a7d
Make get/post methods use timeout, do some logging.
brent-hoover Feb 21, 2017
2fdb4cb
Don't do address validation when package is disabled, even when addre…
brent-hoover Feb 21, 2017
99b1d97
Enable addressValidation by default
brent-hoover Feb 21, 2017
73908fc
Enable addressValidation by default
brent-hoover Feb 21, 2017
19bcfd5
Fix date parameter
brent-hoover Feb 21, 2017
20019eb
Merge. Fix conflicts.
brent-hoover Feb 21, 2017
b035266
Modify auth arg for test credentials setup
impactmass Feb 21, 2017
e859297
Extend timeout during test credentials call
impactmass Feb 21, 2017
48a562b
Limit address validation country options to US and CA
impactmass Feb 21, 2017
f5cd7a4
Fix returned object for non-validated addresses
impactmass Feb 21, 2017
f953893
Log Avalara details to custom Avalogger
brent-hoover Feb 21, 2017
45a7bc5
Set new defaults
brent-hoover Feb 22, 2017
b0269ca
Add tax settings to account profile page
impactmass Feb 22, 2017
b866095
Update account find for taxsettings to subscribe
impactmass Feb 22, 2017
ce2f853
Only log if logging is enabled
brent-hoover Feb 22, 2017
60c8400
Write out Avalara requests to Logs collection via Bunyan logger
brent-hoover Feb 23, 2017
071edbc
Add log retention duration setting
brent-hoover Feb 23, 2017
df23bb7
Merge branch 'release-0.20.0' into brent-seun-avalara-taxcompliance-1793
brent-hoover Feb 23, 2017
cd55f91
Add jobs to cleanup logs older than configured setting
brent-hoover Feb 23, 2017
64366fd
Add logs subscription that totally doesn't work
brent-hoover Feb 23, 2017
1c8aeaf
Add logs publication
brent-hoover Feb 23, 2017
c098fce
Get logs and pass into Template
brent-hoover Feb 23, 2017
6c23f51
Add Log-specific wrapper for Griddle
brent-hoover Feb 24, 2017
3a16c98
Show individual log records in detail form
brent-hoover Feb 24, 2017
9d5b21b
Refine grid and detail results
brent-hoover Feb 24, 2017
26ba803
Populate entity codes and plug into taxCalc
impactmass Feb 24, 2017
b87a412
Use new field names confirmed by AvaTax
impactmass Feb 24, 2017
b9be7b0
Add taxSettings to recordOrder
impactmass Feb 24, 2017
8e974c6
Update entity code field key
impactmass Feb 24, 2017
855c880
removed excess panel wrapper around griddle table
kieckhafer Feb 25, 2017
d48a62e
Merge branch 'wip-release-0.20.0' into brent-seun-avalara-taxcomplian…
brent-hoover Feb 26, 2017
27f825d
Add translations
brent-hoover Feb 27, 2017
0ef2817
Show tax settings only if avalara enabled
impactmass Feb 27, 2017
f130c12
Fix import order.
brent-hoover Feb 28, 2017
f9cabb3
Setup error handling on Avalara methods
impactmass Feb 28, 2017
4567608
Add dimensions/tax code to PDP (#1931)
Mar 3, 2017
d7e458a
Correct the way we test for validation on address2
brent-hoover Mar 3, 2017
646f3e2
Remove extra panel divs
brent-hoover Mar 3, 2017
cae3d1e
Add account ID to account management screen
brent-hoover Mar 3, 2017
b7f9c7d
Adjust log details for when there is no document type
brent-hoover Mar 3, 2017
b68265d
Rename files to match style guide
brent-hoover Mar 3, 2017
5d3fded
Use individual taxSettings form each account
impactmass Mar 3, 2017
3905c45
Add check to prevent populating duplicates
impactmass Mar 3, 2017
8278baf
Fix reference to accountschema
impactmass Mar 3, 2017
9b14db9
Fix form update to corresponding accounts
impactmass Mar 3, 2017
d8b0527
Add unique tax setting by customer to Avalara payload
impactmass Mar 3, 2017
dfec5ba
Fix exception error on geoCoder call
impactmass Mar 3, 2017
b809085
Only pass in regions when it's a "country with regions"
brent-hoover Mar 6, 2017
064aa3a
Revert "Only pass in regions when it's a "country with regions""
brent-hoover Mar 6, 2017
1663ccc
Create a refundReference which is cartId + date
brent-hoover Mar 6, 2017
114f913
Ignore line items are not marked taxable
brent-hoover Mar 6, 2017
bd8e03c
Move taxDescription down to the variant level and pass if exists
brent-hoover Mar 6, 2017
c97de61
Move tax settings form into manage sidebar
impactmass Mar 6, 2017
6c389a5
Fix tax settings saving bug
impactmass Mar 6, 2017
92ce4e5
Merge branch 'wip-release-0.20.0' into brent-seun-avalara-taxcomplian…
brent-hoover Mar 6, 2017
9b407ee
Renamed files to fit style guide
brent-hoover Mar 7, 2017
54defcf
Don't allow a wide-open Account publication
brent-hoover Mar 7, 2017
b5ff3ca
Remove unnecessary subscription
brent-hoover Mar 7, 2017
6a4f25f
Don't call API if entity codes is already populated
brent-hoover Mar 7, 2017
970d82b
Simplify logic for returning no results
brent-hoover Mar 7, 2017
fdb9a31
Don't select a tax rate but a tax code
brent-hoover Mar 7, 2017
dca26d7
Rename function
brent-hoover Mar 7, 2017
d420e1c
Properly set Avalara countryList defaultValues
impactmass Mar 7, 2017
eea4cb9
Eliminate extra slash
brent-hoover Mar 7, 2017
764ef90
Eliminate all extra slashes
brent-hoover Mar 7, 2017
26dc92a
Check to ensure data is returned from API
impactmass Mar 7, 2017
3ff33c9
Also log errors in Avalogger. Correctly filter for taxable items.
brent-hoover Mar 8, 2017
9bda0d2
Require shopId
brent-hoover Mar 8, 2017
e3ebcc8
linting fixes
kieckhafer Mar 8, 2017
fe64d50
Add label to plain select. Rename method
brent-hoover Mar 8, 2017
b949d4a
JSDoc linting
brent-hoover Mar 8, 2017
376d26d
Remove unused import
brent-hoover Mar 8, 2017
e75a813
Remove unused import
brent-hoover Mar 8, 2017
562d8ad
Linting
brent-hoover Mar 8, 2017
10d53fb
Check configuration and throw meaningful errors if not configured pro…
brent-hoover Mar 9, 2017
7cfb019
Add level to log so we can filter for errors
brent-hoover Mar 9, 2017
2f084d1
Tweak HTML and styling in settings panel
brent-hoover Mar 9, 2017
97a26a1
Fix i18n and timeout on testCredential
impactmass Mar 9, 2017
1374710
Log error with error log level
brent-hoover Mar 9, 2017
29f472f
Moving select2 under community packages
Mar 9, 2017
5e0569b
Adding error checks to taxcodes method
Mar 9, 2017
1c25409
Merge branch 'brent-seun-avalara-taxcompliance-1793' of https://githu…
Mar 9, 2017
28f6b29
Skip config check when testing credentials
impactmass Mar 9, 2017
de9caa8
Trigger form validation before testcredentials
impactmass Mar 9, 2017
eca3f7f
Use native methods for assign and each
impactmass Mar 9, 2017
c7397cb
Handle error on populating Avalara entity codes
impactmass Mar 9, 2017
6e234e0
Add i18n for custom label
impactmass Mar 9, 2017
1cac94a
Move i18n entry to appropriate module
impactmass Mar 9, 2017
2450b12
Move exemption settings into avalara module
impactmass Mar 9, 2017
116656b
Implement i18n for missing fields in PDP
Mar 9, 2017
4d94de1
Merge branch 'brent-seun-avalara-taxcompliance-1793' of https://githu…
Mar 9, 2017
66f0f78
Fix CircleCI failed tests
Mar 9, 2017
3b238a8
Fix CircleCI failed tests
Mar 9, 2017
505a0de
Revert "Fix CircleCI failed tests"
Mar 9, 2017
9336e00
Revert "Fix CircleCI failed tests"
Mar 9, 2017
e4173c9
Removing empty selector per CR
brent-hoover Mar 9, 2017
a32b2a7
Use import rather than fs to get package.json
brent-hoover Mar 10, 2017
38d1f31
Change per CR
brent-hoover Mar 10, 2017
4804e82
Restructure Class syntax per CR
brent-hoover Mar 10, 2017
b2b1fa3
Put back "Custom Packages" header
brent-hoover Mar 10, 2017
f96aeba
Add TODO
brent-hoover Mar 10, 2017
632b9d5
Changing default timeout to 3000 ms
brent-hoover Mar 10, 2017
7c01c46
Correct error name and make error message more specific
brent-hoover Mar 10, 2017
2629c6c
- updated Accounts publication name
Mar 10, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .meteor/packages
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ kadira:flow-router-ssr
matb33:collection-hooks
meteorhacks:ssr
meteorhacks:subs-manager
natestrauser:select2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should be avoiding introducing new atmosphere packages. Can't this be used as an npm import?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aaronjudd there's an NPM package for this (select2), but under its usage is a bunch of CDNs to source from, and alternative integrations, hence the use of the meteor package.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We've talked about this a couple of times and the feeling was that this package was coming out as soon as the variant stuff was converted to React anyway

ongoworks:security
raix:ui-dropped-event
risul:moment-timezone
Expand All @@ -93,6 +94,3 @@ johanbrook:publication-collector
# meteorhacks:kadira-profiler # cpu profiling
# spiderable # adds phantomjs SEO rendering, use ongoworks:spiderable with Docker
# meteorhacks:sikka # additional ddp, login security


# Custom Packages
1 change: 1 addition & 0 deletions .meteor/versions
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ [email protected]
[email protected]
[email protected]
mrt:[email protected]
natestrauser:[email protected]
[email protected]
[email protected]_1
[email protected]
Expand Down
1 change: 1 addition & 0 deletions client/collections/index.js
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export * from "./countries";
export * from "./taxEntitycodes";
6 changes: 6 additions & 0 deletions client/collections/taxEntitycodes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { Mongo } from "meteor/mongo";

/**
* Client side collections
*/
export const TaxEntityCodes = new Mongo.Collection(null);
1 change: 0 additions & 1 deletion client/modules/accounts/templates/dashboard/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ <h3 class="panel-title">
{{/each}}
</ul>
</div>

</div>
{{/if}}
</template>
Expand Down
5 changes: 3 additions & 2 deletions client/modules/accounts/templates/dashboard/dashboard.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import _ from "lodash";
import { Meteor } from "meteor/meteor";
import { Template } from "meteor/templating";
import { Reaction, i18next } from "/client/api";
import { ServiceConfigHelper } from "../../helpers/util";
import { Template } from "meteor/templating";

/**
* Accounts helpers
Expand All @@ -16,6 +16,7 @@ Template.accountsDashboard.onCreated(function () {
Template.accountsDashboard.helpers({
/**
* isShopMember
* @param {Object} member member object
* @return {Boolean} True if the memnber is an administrator
*/
isShopMember() {
Expand All @@ -24,12 +25,12 @@ Template.accountsDashboard.helpers({

/**
* isShopGuest
* @param {Object} member member object
* @return {Boolean} True if the member is a guest
*/
isShopGuest() {
return !_.includes(["dashboard", "admin", "owner"], this.role);
},

/**
* members
* @return {Boolean} True array of adminsitrative members
Expand Down
8 changes: 7 additions & 1 deletion client/modules/accounts/templates/members/member.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
{{displayName this}}
<span>&nbsp;({{this.email}})</span>
</div>
<div class="member-list-item-profile">
<span>Customer Id: {{userId}}</span>
</div>

<div class="member-list-item-controls">
<button class="btn btn-default" data-event-action="showMemberSettings" data-i18n="accountsUI.manage">Manage</button>
</div>
Expand All @@ -27,7 +31,9 @@

</div>


{{#if showAvalaraTaxSettings }}
{{> taxSettingsPanel member=this }}
{{/if}}

{{#each groupsForUser}}
{{#if permissionGroups}}
Expand Down
16 changes: 16 additions & 0 deletions client/modules/accounts/templates/members/member.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import _ from "lodash";
import { Reaction } from "/client/api";
import { Packages, Shops } from "/lib/collections";
import { Meteor } from "meteor/meteor";
Expand Down Expand Up @@ -36,6 +37,9 @@ Template.memberSettings.helpers({
}
}
},
userId: function () {
return Meteor.userId();
},
hasPermissionChecked: function (permission, userId) {
if (userId && Roles.userIsInRole(userId, permission, this.shopId || Roles.userIsInRole(userId, permission,
Roles.GLOBAL_GROUP))) {
Expand Down Expand Up @@ -110,6 +114,18 @@ Template.memberSettings.helpers({

hasManyPermissions: function (permissions) {
return Boolean(permissions.length);
},
/**
* showAvalaraTaxSettings
* @return {Boolean} True if avalara is enabled. Defaults to false if not found
*/
showAvalaraTaxSettings() {
const avalara = Packages.findOne({
name: "taxes-avalara",
shopId: Reaction.getShopId()
});

return _.get(avalara, "settings.avalara.enabled", false);
}
});

Expand Down
21 changes: 21 additions & 0 deletions client/modules/accounts/templates/tax-settings/taxSettings.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<template name="taxSettingsPanel">
<div class="row">
<div class="col-md-10 col-md-offset-1 panel panel-default panel-tax-settings">
<h4 data-i18n="accounts.taxSettings">Tax Exempt Settings</h4>
<div>
{{#autoForm collection=Collections.Accounts schema=accountsSchema doc=account id=makeUniqueId type="update" }}
{{>afQuickField name='taxSettings.exemptionNo' class='form-control'}}
{{> afQuickField data-event-action="customType" name="taxSettings.customerUsageType" type="select" options=entityCodes }}
<p>Current Saved Entity Code: {{ account.taxSettings.customerUsageType }}</p>
<div class="panel-body customerUsageType hide">
<label for="customerUsageType">Custom value</label>
<input id="customerUsageType" type="text" name="custom-customerUsageType" class="form-control">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
{{/autoForm}}
</div>
</div>
</div>
</template>
89 changes: 89 additions & 0 deletions client/modules/accounts/templates/tax-settings/taxSettings.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import _ from "lodash";
import { Meteor } from "meteor/meteor";
import { Template } from "meteor/templating";
import { Reaction } from "/client/api";
import { Packages, Accounts } from "/lib/collections";
import { Accounts as AccountsSchema } from "/lib/collections/schemas/accounts";
import { TaxEntityCodes } from "/client/collections";

Template.taxSettingsPanel.helpers({
account() {
const sub = Meteor.subscribe("Accounts.single", this.member.userId);
if (sub.ready()) {
return Accounts.findOne({ _id: this.member.userId });
}
return null;
},
makeUniqueId() {
return `tax-settings-form-${this.member.userId}`;
},
accountsSchema() {
return AccountsSchema;
},
entityCodes() {
const customOption = [{
label: "SET CUSTOM VALUE",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is i81n implemented for "SET CUSTOM VALUE"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Fixed now.

value: "CUSTOM USER INPUT"
}];

const entityCodes = TaxEntityCodes.find().map((entityCode) => {
return Object.assign({}, entityCode, {
label: entityCode.name,
value: entityCode.code
});
});

return (entityCodes || []).concat(customOption);
}
});

Template.taxSettingsPanel.events({
"change [data-event-action=customType]": function (event) {
event.stopPropagation();

if (isCustomValue()) {
return $(".customerUsageType").toggleClass("hide");
}
$(".customerUsageType").addClass("hide");
}
});

Template.taxSettingsPanel.onCreated(function () {
const avalaraPackage = Packages.findOne({
name: "taxes-avalara",
shopId: Reaction.getShopId()
});
const isAvalaraEnabled = _.get(avalaraPackage, "settings.avalara.enabled", false);
const currentCodes = TaxEntityCodes.find().fetch();

if (isAvalaraEnabled && !currentCodes.length) {
Meteor.call("avalara/getEntityCodes", (error, entityCodes) => {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@impactmass We are neither checking for an error nor checking the entityCodes is a valid value before trying to insert them info the db.

if (error) {
return Alerts.toast(
`${i18next.t("settings.apiError")} ${error.message}`, "error"
);
}
(entityCodes || []).forEach((entityCode) => TaxEntityCodes.insert(entityCode));
});
}
});

AutoForm.hooks({
"tax-settings-form": {
before: {
update: function (doc) {
if (isCustomValue()) {
const value = $(".customerUsageType input").val();
doc.$set["taxSettings.customerUsageType"] = value;
}
return doc;
}
}
}
});

function isCustomValue() {
const formData = AutoForm.getFormValues("tax-settings-form");
const value = _.get(formData, "insertDoc.taxSettings.customerUsageType");
return value === "CUSTOM USER INPUT";
}
2 changes: 1 addition & 1 deletion imports/plugins/core/email/client/actions/logs.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Router, i18next } from "/client/api";
import { i18next } from "/client/api";

export default {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class EmailSettings extends Component {

handleSelect(e) {
const { settings } = this.state;
settings["service"] = e;
settings.service = e;
this.setState({ settings });
}

Expand Down
7 changes: 7 additions & 0 deletions imports/plugins/core/logging/register.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Reaction } from "/server/api";

Reaction.registerPackage({
label: "Logging",
name: "reaction-logging",
autoEnable: true
});
1 change: 1 addition & 0 deletions imports/plugins/core/logging/server/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import "./publications";
28 changes: 28 additions & 0 deletions imports/plugins/core/logging/server/publications.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { Meteor } from "meteor/meteor";
import { check, Match } from "meteor/check";
import { Roles } from "meteor/alanning:roles";
import { Counts } from "meteor/tmeasday:publish-counts";
import { Logs } from "/lib/collections";
import { Reaction } from "/server/api";


/**
* Publish logs
* Poor admins get swamped with a ton of data so let's just only subscribe to one
* logType at a time
*/
Meteor.publish("Logs", function (query, options) {
check(query, Match.OneOf(undefined, Object));
check(options, Match.OneOf(undefined, Object));

const shopId = Reaction.getShopId();
if (!query || !query.logType || !shopId) {
return this.ready();
}

const logType = query.logType;
if (Roles.userIsInRole(this.userId, ["admin", "owner"])) {
Counts.publish(this, "logs-count", Logs.find({ shopId, logType }));
return Logs.find({ shopId, logType }, { sort: { date: 1 } });
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class PublishContainer extends Component {
Alerts.toast(message, "success");

if (this.props.onPublishSuccess) {
this.props.onPublishSuccess(result)
this.props.onPublishSuccess(result);
}
} else {
const message = i18next.t("revisions.noChangesPublished", {
Expand Down
13 changes: 11 additions & 2 deletions imports/plugins/core/taxes/lib/collections/schemas/taxcodes.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,21 @@ export const TaxCodes = new SimpleSchema({
unique: true
},
shopId: {
type: String
},
taxCode: {
type: String,
optional: true
label: "Tax Code"
},
taxCodeProvider: {
type: String,
label: "Tax Code Provider"
},
ssuta: {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assuming this is correct, but just want to make sure ssuta is what this should say

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't new code, is there a reason we think it's incorrect?

type: Boolean,
label: "Streamlined Sales Tax"
label: "Streamlined Sales Tax",
optional: true,
defaultValue: false
},
title: {
type: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
margin-bottom: 0px;
}
.lowInventoryWarningThreshold {

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary? Should we just delete this selector?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted

}
}
.select2-container {
width: 370px;
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const fieldNames = [
"subtitle",
"vendor",
"description",
"origincountry",
"facebookMsg",
"twitterMsg",
"pinterestMsg",
Expand Down Expand Up @@ -306,6 +307,17 @@ class ProductAdmin extends Component {
ref="descriptionInput"
value={this.product.description}
/>
<TextField
i18nKeyLabel="productDetailEdit.originCountry"
i18nKeyPlaceholder="productDetailEdit.originCountry"
label="Origin Country"
name="originCountry"
onBlur={this.handleFieldBlur}
onChange={this.handleFieldChange}
placeholder="Country of Origin"
ref="countryOfOriginInput"
value={this.product.originCountry}
/>
</CardBody>
</Card>
<Card
Expand Down
Loading