152 lines
5.2 KiB
Plaintext
152 lines
5.2 KiB
Plaintext
import { Input } from "@ember/component";
|
|
import { LinkTo } from "@ember/routing";
|
|
import RouteTemplate from "ember-route-template";
|
|
import DButton from "discourse/components/d-button";
|
|
import htmlSafe from "discourse/helpers/html-safe";
|
|
import loadingSpinner from "discourse/helpers/loading-spinner";
|
|
import { i18n } from "discourse-i18n";
|
|
import LoginRequired from "../../components/login-required";
|
|
import PaymentOptions from "../../components/payment-options";
|
|
import SubscribeCaProvinceSelect from "../../components/subscribe-ca-province-select";
|
|
import SubscribeCard from "../../components/subscribe-card";
|
|
import SubscribeCountrySelect from "../../components/subscribe-country-select";
|
|
import SubscribeUsStateSelect from "../../components/subscribe-us-state-select";
|
|
|
|
export default RouteTemplate(
|
|
<template>
|
|
<div class="discourse-subscriptions-section-columns">
|
|
<div class="section-column discourse-subscriptions-confirmation-billing">
|
|
<h2>
|
|
{{@controller.model.product.name}}
|
|
</h2>
|
|
|
|
<hr />
|
|
|
|
<p>
|
|
{{htmlSafe @controller.model.product.description}}
|
|
</p>
|
|
</div>
|
|
|
|
<div class="section-column">
|
|
{{#if @controller.canPurchase}}
|
|
<h2>
|
|
{{i18n "discourse_subscriptions.subscribe.card.title"}}
|
|
</h2>
|
|
|
|
<hr />
|
|
|
|
<PaymentOptions
|
|
@plans={{@controller.model.plans}}
|
|
@selectedPlan={{@controller.selectedPlan}}
|
|
/>
|
|
|
|
<hr />
|
|
|
|
<SubscribeCard @cardElement={{@controller.cardElement}} />
|
|
|
|
{{#if @controller.loading}}
|
|
{{loadingSpinner}}
|
|
{{else if @controller.isAnonymous}}
|
|
<LoginRequired />
|
|
{{else}}
|
|
<Input
|
|
@type="text"
|
|
name="cardholder_name"
|
|
placeholder={{i18n
|
|
"discourse_subscriptions.subscribe.cardholder_name"
|
|
}}
|
|
@value={{@controller.cardholderName}}
|
|
class="subscribe-name"
|
|
/>
|
|
<div class="address-fields">
|
|
<SubscribeCountrySelect
|
|
@value={{@controller.cardholderAddress.country}}
|
|
@onChange={{@controller.changeCountry}}
|
|
/>
|
|
<Input
|
|
@type="text"
|
|
name="cardholder_postal_code"
|
|
placeholder={{i18n
|
|
"discourse_subscriptions.subscribe.cardholder_address.postal_code"
|
|
}}
|
|
@value={{@controller.cardholderAddress.postalCode}}
|
|
class="subscribe-address-postal-code"
|
|
/>
|
|
</div>
|
|
<Input
|
|
@type="text"
|
|
name="cardholder_line1"
|
|
placeholder={{i18n
|
|
"discourse_subscriptions.subscribe.cardholder_address.line1"
|
|
}}
|
|
@value={{@controller.cardholderAddress.line1}}
|
|
class="subscribe-address-line1"
|
|
/>
|
|
<div class="address-fields">
|
|
<Input
|
|
@type="text"
|
|
name="cardholder_city"
|
|
placeholder={{i18n
|
|
"discourse_subscriptions.subscribe.cardholder_address.city"
|
|
}}
|
|
@value={{@controller.cardholderAddress.city}}
|
|
class="subscribe-address-city"
|
|
/>
|
|
{{#if @controller.isCountryUS}}
|
|
<SubscribeUsStateSelect
|
|
@value={{@controller.cardholderAddress.state}}
|
|
@onChange={{@controller.changeState}}
|
|
/>
|
|
{{else if @controller.isCountryCA}}
|
|
<SubscribeCaProvinceSelect
|
|
@value={{@controller.cardholderAddress.state}}
|
|
@onChange={{@controller.changeState}}
|
|
/>
|
|
{{else}}
|
|
<Input
|
|
@type="text"
|
|
name="cardholder_state"
|
|
placeholder={{i18n
|
|
"discourse_subscriptions.subscribe.cardholder_address.state"
|
|
}}
|
|
@value={{@controller.cardholderAddress.state}}
|
|
class="subscribe-address-state"
|
|
/>
|
|
{{/if}}
|
|
</div>
|
|
|
|
<Input
|
|
@type="text"
|
|
name="promo_code"
|
|
placeholder={{i18n
|
|
"discourse_subscriptions.subscribe.promo_code"
|
|
}}
|
|
@value={{@controller.promoCode}}
|
|
class="subscribe-promo-code"
|
|
/>
|
|
|
|
<DButton
|
|
@disabled={{@controller.loading}}
|
|
@action={{@controller.stripePaymentHandler}}
|
|
class="btn btn-primary btn-payment"
|
|
@label="discourse_subscriptions.plans.payment_button"
|
|
/>
|
|
{{/if}}
|
|
{{else}}
|
|
<h2>{{i18n
|
|
"discourse_subscriptions.subscribe.already_purchased"
|
|
}}</h2>
|
|
|
|
<LinkTo
|
|
@route="user.billing.subscriptions"
|
|
@model={{@controller.currentUser.username}}
|
|
class="btn btn-primary"
|
|
>
|
|
{{i18n "discourse_subscriptions.subscribe.go_to_billing"}}
|
|
</LinkTo>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
);
|