You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

534 lines
22 KiB

{% extends "base.html" %}
{% load compress static hc_extras %}
{% block title %}Account Settings - {% site_name %}{% endblock %}
{% block content %}
<div class="row">
<div class="col-sm-12">
<h1 class="settings-title">Settings</h1>
</div>
</div>
<div class="row">
<div class="col-sm-3">
<ul class="nav nav-pills nav-stacked">
<li><a href="{% url 'hc-profile' %}">Account</a></li>
<li class="active"><a href="{% url 'hc-billing' %}">Billing</a></li>
<li><a href="{% url 'hc-notifications' %}">Email Reports</a></li>
<li><a href="{% url 'hc-badges' %}">Badges</a></li>
</ul>
</div>
<div class="col-sm-9 col-md-9">
{% if messages %}
<div class="alert alert-danger">
<p>
<strong>We're sorry!</strong> There was a problem setting
up the subscription. Response from payment gateway:</p>
{% for message in messages %}
<p class="error-message">{{ message }}</p>
{% endfor %}
</div>
{% endif %}
<div class="row">
<div class="col-sm-6">
<div class="panel panel-{{ set_plan_status }}">
<div class="panel-body settings-block">
<h2>Billing Plan</h2>
<table class="table">
<tr>
<td>Current Plan</td>
<td>{{ sub.plan_name|default:"Hobbyist" }}</td>
</tr>
{% if sub.plan_id %}
<tr>
<td>Next Payment</td>
<td id="next-billing-date">
<span class="loading">loading…</span>
</td>
</tr>
{% endif %}
<tr>
<td>Checks Used</td>
<td {% if num_checks >= profile.check_limit %} class="at-limit" {% endif %}>
<span>{{ num_checks }} of {{ profile.check_limit }}</span>
</td>
</tr>
<tr>
<td>Team Size</td>
<td {% if team_size >= profile.team_limit %} class="at-limit" {% endif %}>
<span>
{{ team_size }} of
{% if profile.team_limit == 500 %}
unlimited
{% else %}
{{ team_max }}
{% endif %}
</span>
</td>
</tr>
</table>
<button
data-toggle="modal"
data-target="#change-billing-plan-modal"
class="btn btn-default pull-right">
Change Billing Plan
</button>
</div>
{% if set_plan_status == "success" %}
<div class="panel-footer">
Your billing plan has been updated!
</div>
{% endif %}
</div>
<div class="panel panel-{{ payment_method_status }}">
<div class="panel-body settings-block">
<h2>Payment Method</h2>
{% if sub.payment_method_token %}
<p id="payment-method">
<span class="loading">loading…</span>
</p>
{% else %}
<p id="payment-method-missing" class="billing-empty">Not set</p>
{% endif %}
<button
id="update-payment-method"
class="btn btn-default pull-right">
Change Payment Method</button>
</div>
{% if payment_method_status == "success" %}
<div class="panel-footer">
Your payment method has been updated!
</div>
{% endif %}
</div>
</div>
<div class="col-sm-6">
<div class="panel panel-{{ address_status }}">
<div class="panel-body settings-block">
<h2>Billing Details</h2>
{% if sub.address_id %}
<div id="billing-address">
<span class="loading">loading…</span>
</div>
{% else %}
<p id="billing-address-missing" class="billing-empty">
Not set
</p>
{% endif %}
<button
data-toggle="modal"
data-target="#billing-address-modal"
class="btn btn-default pull-right">
Change Billing Details
</button>
</div>
{% if address_status == "success" %}
<div class="panel-footer">
Your billing details have been updated!
</div>
{% endif %}
</div>
</div>
</div>
<div class="panel panel-{{ send_invoices_status }}">
<div class="panel-body settings-block">
<h2>Invoices to Email</h2>
<p id="invoice-emailing-status">
{% if sub.send_invoices %}
Send the invoice to
{{ sub.invoice_email|default:request.user.email }}
each time my payment method is successfully charged.
{% else %}
Do not email invoices to me.
{% endif %}
</p>
<button
data-toggle="modal"
data-target="#invoice-emailing-modal"
class="btn btn-default pull-right">
Change Preference
</button>
</div>
{% if send_invoices_status == "success" %}
<div class="panel-footer">
Your preferences have been updated!
</div>
{% endif %}
</div>
<div class="panel panel-default">
<div class="panel-body settings-block">
<h2>Billing History</h2>
<div id="billing-history">
<span class="loading">loading…</span>
</div>
</div>
</div>
</div>
</div>
<div id="change-billing-plan-modal" class="modal">
<div class="modal-dialog">
{% if sub.payment_method_token and sub.address_id %}
<form method="post" class="form-horizontal" autocomplete="off" action="{% url 'hc-set-plan' %}">
{% csrf_token %}
<input type="hidden" id="old-plan-id" value="{{ sub.plan_id }}">
<input type="hidden" id="plan-id" name="plan_id" value="{{ sub.plan_id }}">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="remove-check-title">Change Billing Plan</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-4">
<div id="plan-hobbyist" class="panel plan {% if sub.plan_id == "" %}selected{% endif %}">
<div class="marker">Selected Plan</div>
<h2>Hobbyist</h2>
<ul>
<li>Checks: 20</li>
<li>Team members: 3</li>
<li>Log entries: 100</li>
</ul>
<h3>Free</h3>
</div>
</div>
<div class="col-sm-4">
<div id="plan-business" class="panel plan {% if sub.plan_id == "P20" or sub.plan_id == "Y192" %}selected{% endif %}">
<div class="marker">Selected Plan</div>
<h2>Business</h2>
<ul>
<li>Checks: 100</li>
<li>Team members: 10</li>
<li>Log entries: 1000</li>
</ul>
<h3>
<span id="business-price"></span>
<small>/ month</small>
</h3>
</div>
</div>
<div class="col-sm-4">
<div id="plan-business-plus" class="panel plan {% if sub.plan_id == "P80" or sub.plan_id == "Y768" %}selected{% endif %}">
<div class="marker">Selected Plan</div>
<h2>Business Plus</h2>
<ul>
<li>Checks: 1000</li>
<li>Team members: Unlimited</li>
<li>Log entries: 1000</li>
</ul>
<h3>
<span id="business-plus-price"></span>
<small>/ month</small>
</h3>
</div>
</div>
</div>
<div class="row">
<div id="billing-periods" class="col-sm-6">
<p>Billing Period</p>
<label class="radio-container">
<input
id="billing-monthly"
type="radio"
name="billing_period"
value="monthly"
{% if sub.plan_id == "Y192" or sub.plan_id == "Y768" %}{% else %}checked{% endif %}>
<span class="radiomark"></span>
Monthly
</label>
<label class="radio-container">
<input
id="billing-annual"
type="radio"
name="billing_period"
value="annual"
{% if sub.plan_id == "Y192" or sub.plan_id == "Y768" %} checked {% endif %}>
<span class="radiomark"></span>
Annual, 20% off
</label>
</div>
</div>
<div class="text-warning">
<strong>No proration.</strong> We currently do not
support proration when changing billing plans.
Changing the plan starts a new billing cycle
and charges your payment method.
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button id="change-plan-btn" type="submit" class="btn btn-primary" disabled="disabled">
Change Billing Plan
</button>
</div>
</div>
</form>
{% else %}
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4>Some details are missing…</h4>
</div>
<div class="modal-body">
{% if not sub.payment_method_token %}
<div id="no-payment-method">
<h4>No payment method.</h4>
<p>Please add a payment method before changing the billing
plan.
</p>
</div>
{% endif %}
{% if not sub.address_id %}
<div id="no-billing-address">
<h4>Country not specified.</h4>
<p>For tax accounting purposes, please specify
your <strong>Country</strong> in the "Billing Details"
section.
</p>
<p>
Optionally, add your
<strong>company name</strong>, <strong>address</strong>
and <strong>VAT ID</strong>
to have them displayed on invoices.
</p>
</div>
{% endif %}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">OK</button>
</div>
</div>
{% endif %}
</div>
</div>
<div id="payment-method-modal" class="modal pm-modal">
<div class="modal-dialog">
<form id="payment-form" method="post" action="{% url 'hc-payment-method' %}">
{% csrf_token %}
<input id="pmm-nonce" type="hidden" name="payment_method_nonce" />
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4>Payment Method</h4>
</div>
<div class="modal-body">
<div id="dropin"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
Cancel
</button>
<button id="payment-form-submit" type="button" class="btn btn-primary" disabled>
Confirm Payment Method
</button>
</div>
</div>
</form>
</div>
</div>
<div id="billing-address-modal" class="modal">
<div class="modal-dialog">
<form action="{% url 'hc-billing-address' %}" method="post">
{% csrf_token %}
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4>Billing Details</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-sm-8">
<div class="form-group">
<label for="company">
Company
</label>
<input
id="company"
name="company"
type="text"
class="form-control" />
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label for="extended_address">
VAT ID
</label>
<input
id="extended_address"
name="extended_address"
type="text"
class="form-control" />
</div>
</div>
<div class="col-sm-12">
<div class="form-group">
<label for="company">Street Address</label>
<input
id="street_address"
name="street_address"
type="text"
class="form-control" />
</div>
</div>
<div class="col-sm-6">
<label for="locality">
City
</label>
<div class="form-group">
<input
id="locality"
name="locality"
type="text"
class="form-control" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="region">
State / Region
</label>
<input
id="region"
name="region"
type="text"
class="form-control" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="postal_Code">
Postal Code
</label>
<input
id="postal_code"
name="postal_code"
type="text"
class="form-control" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label for="country_code_alpha2">
Country
</label>
<select id="country_code_alpha2" class="form-control" name="country_code_alpha2">
{% include "payments/countries.html" %}
</select>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
</form>
</div>
</div>
<div id="invoice-emailing-modal" class="modal pm-modal">
<div class="modal-dialog">
<form method="post">
{% csrf_token %}
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4>Invoices to Email</h4>
</div>
<div class="modal-body">
<label class="radio-container">
<input
type="radio"
name="send_invoices"
value="0"
{% if not sub.send_invoices %} checked {% endif %}>
<span class="radiomark"></span>
Do not email invoices to me
</label>
<label class="radio-container">
<input
type="radio"
name="send_invoices"
value="1"
{% if sub.send_invoices and not sub.invoice_email %} checked {% endif %}>
<span class="radiomark"></span>
Send invoices to {{ profile.user.email }}
</label>
<label class="radio-container">
<input
type="radio"
name="send_invoices"
value="2"
{% if sub.send_invoices and sub.invoice_email %} checked {% endif %}>
<span class="radiomark"></span>
Send invoices to this email address:
</label>
<input
id="invoice-email"
name="invoice_email"
placeholder="[email protected]"
value="{{ sub.invoice_email }}"
type="email"
class="form-control" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
Cancel
</button>
<button type="submit" class="btn btn-primary">
Save Changes
</button>
</div>
</div>
</form>
</div>
</div>
{% endblock %}
{% block scripts %}
<script src="https://js.braintreegateway.com/web/dropin/1.8.0/js/dropin.min.js"></script>
{% compress js %}
<script src="{% static 'js/jquery-2.1.4.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
<script src="{% static 'js/billing.js' %}"></script>
{% endcompress %}
{% endblock %}