Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 14 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,24 @@ COPY . /app

RUN --mount=type=secret,id=GITHUB_PERSONAL_TOKEN export GITHUB_PERSONAL_TOKEN=$(cat /run/secrets/GITHUB_PERSONAL_TOKEN) && git config --global url."https://[email protected]/".insteadOf ssh://[email protected]

RUN (\
npm ci; \
RUN npm ci

RUN \
--mount=type=secret,id=GOOGLE_RECAPTCHA_SITE_KEY \
--mount=type=secret,id=GOOGLE_ANALYTICS_ID \
--mount=type=secret,id=GOOGLE_TAGS_CONTAINER_ID \
--mount=type=secret,id=GOOGLE_TAGS_PARAMS \
sh -c ' \
if test $AIDA_URL; then \
curl -o /app/node_modules/asktravis/dist/aida.js $AIDA_URL; \
curl -o /app/node_modules/asktravis/dist/aida.js.map $AIDA_URL.map || true; \
fi; \
ember build --environment=production; \
)
export GOOGLE_RECAPTCHA_SITE_KEY=$(cat /run/secrets/GOOGLE_RECAPTCHA_SITE_KEY) && \
export GOOGLE_ANALYTICS_ID=$(cat /run/secrets/GOOGLE_ANALYTICS_ID) && \
export GOOGLE_TAGS_CONTAINER_ID=$(cat /run/secrets/GOOGLE_TAGS_CONTAINER_ID) && \
export GOOGLE_TAGS_PARAMS=$(cat /run/secrets/GOOGLE_TAGS_PARAMS) && \
ember build --environment=production'


RUN cp -a public/* dist/

Expand Down
18 changes: 17 additions & 1 deletion app/components/billing/first-plan.js
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,23 @@ export default Component.extend({
},
togglePlanDetails() {
this.set('planDetailsVisible', !this.planDetailsVisible);
}
},
validateBillingEmails(billingEmailField) {
if (!billingEmailField) {
return true;
}

const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
const emails = billingEmailField.split(',').map(email => email.trim());

const invalidEmails = emails.filter(email => !emailRegex.test(email));

if (invalidEmails.length > 0) {
const invalidEmailsList = invalidEmails.join(', ');
return `The following email addresses are not valid: ${invalidEmailsList}`;
}

return true;
},
}
});
17 changes: 17 additions & 0 deletions app/components/billing/payment-details-tab.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,23 @@ export default Component.extend({
onCaptchaResolved(reCaptchaResponse) {
this.updatePaymentDetails.perform(reCaptchaResponse);
},
validateBillingEmails(billingEmailField) {
if (!billingEmailField) {
return true;
}

const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
const emails = billingEmailField.split(',').map(email => email.trim());

const invalidEmails = emails.filter(email => !emailRegex.test(email));

if (invalidEmails.length > 0) {
const invalidEmailsList = invalidEmails.join(', ');
return `The following email addresses are not valid: ${invalidEmailsList}`;
}

return true;
},
submit() {
if (!this.enableSubmit || this.disableForm) return;
window.grecaptcha.execute();
Expand Down
3 changes: 1 addition & 2 deletions app/templates/account-activation.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@

<layout.activation-section
@isHeader={{false}}
>
>
<Billing::FirstPlan @user={{this.user}}/>
<
</layout.activation-section>
</TravisLayout>
2 changes: 1 addition & 1 deletion app/templates/components/billing/first-plan.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
<div class='full-width form-elem'>

<form.field @label="Billing e-mail address" @value={{this.billingEmail}} @onChange={{action (mut
this.billingEmail)}} @required={{true}} @validator={{form-validator form.validators.email}}
this.billingEmail)}} @required={{true}} @validator={{action "validateBillingEmails"}}
@showRequiredMark={{true}} as |field|>
<field.input @type="text" />
</form.field>
Expand Down
1 change: 1 addition & 0 deletions app/templates/components/billing/payment-details-tab.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
@disabled={{this.disableForm}}
@showValidationStatusIcons={{false}}
@onChange={{action (mut this.billingInfo.billingEmail)}}
@validator={{action "validateBillingEmails"}}
as |Field|
>
<Field.input @name='billing_email_address'/>
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/components/billing/payment-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ module('Integration | Component | billing-payment', function (hooks) {
firstName: '',
lastName: '',
companyName: '',
billingEmail: '',
billingEmail: '[email protected]',
street: '',
billingSuite: '',
billingCity: '',
Expand Down