mirror of https://github.com/zulip/zulip.git
185 lines
11 KiB
HTML
185 lines
11 KiB
HTML
{% extends "zerver/portico.html" %}
|
|
{% set entrypoint = "upgrade" %}
|
|
|
|
{% block title %}
|
|
<title>{{ _("Upgrade") }} | Zulip</title>
|
|
{% endblock %}
|
|
|
|
{% block portico_content %}
|
|
<div id="upgrade-page" class="register-account flex full-page">
|
|
<div class="center-block new-style">
|
|
<div class="pitch">
|
|
<h1>Upgrade {{ realm.name }} to
|
|
{% if free_trial_days %}
|
|
Zulip Cloud Standard free trial
|
|
{% else %}
|
|
{{ plan }}
|
|
{% endif %}
|
|
</h1>
|
|
</div>
|
|
<div class="white-box">
|
|
<div id="upgrade-page-details">
|
|
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" />
|
|
<form id="autopay-form">
|
|
<input type="hidden" name="seat_count" value="{{ seat_count }}" />
|
|
<input type="hidden" name="signed_seat_count" value="{{ signed_seat_count }}" />
|
|
<input type="hidden" name="salt" value="{{ salt }}" />
|
|
<input type="hidden" name="billing_modality" value="charge_automatically" />
|
|
|
|
<div id="free-trial-top-banner" class="input-box upgrade-page-field">
|
|
{% if free_trial_days %}
|
|
<div id="free-trial-alert-message" class="alert alert-info">
|
|
Upgrade now to start your {{ free_trial_days }} day free trial
|
|
of Zulip Cloud Standard!
|
|
</div>
|
|
<div class="not-editable-realm-field">
|
|
You won't be charged during the free trial. You can also downgrade to
|
|
Zulip Cloud Free, our forever free plan, at any time.
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if is_demo_organization %}
|
|
<div class="demo-organization-warning">
|
|
Demo organizations cannot be directly upgraded to a paid plan. Please start by
|
|
<a href="/help/demo-organizations#convert-a-demo-organization-to-a-permanent-organization">
|
|
converting your demo organization
|
|
</a>
|
|
to a permanent organization.
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="input-box upgrade-page-field no-validation">
|
|
<select name="schedule" id="payment-schedule-select">
|
|
<option value="monthly" id="autopay_monthly_price"></option>
|
|
<option value="annual" id="autopay_annual_price_per_month"></option>
|
|
</select>
|
|
<label for="payment-schedule-select">Payment schedule</label>
|
|
</div>
|
|
|
|
{% if manual_license_management %}
|
|
<div class="input-box upgrade-page-field">
|
|
<label for="licenses" class="inline-block label-title">Number of licenses {% if not exempt_from_license_number_check %}(minimum {{ seat_count }}){% endif %}</label>
|
|
<input type="number" name="licenses" autocomplete="off" {% if not exempt_from_license_number_check %}min="{{ seat_count }}" value="{{ seat_count }}"{% endif %} autocomplete="off" id="manual_license_count" required/>
|
|
<div id="upgrade-licenses-change-error" class="alert alert-danger upgrade-page-error"></div>
|
|
</div>
|
|
<input type="hidden" name="license_management" value="manual" />
|
|
{% else %}
|
|
<input type="hidden" name="license_management" value="automatic" />
|
|
{% endif %}
|
|
|
|
<div class="input-box upgrade-page-field no-validation">
|
|
<label for="due-today" class="inline-block label-title">Due
|
|
{% if free_trial_days %}
|
|
after free trial
|
|
{% else %}
|
|
today
|
|
{% endif %}
|
|
</label>
|
|
<div id="due-today" class="not-editable-realm-field">
|
|
$<span class="due-today-unit-price"></span> x
|
|
{% if not manual_license_management %}
|
|
{{ seat_count }}
|
|
{% else %}
|
|
<span class="due-today-license-count">{{ seat_count }}</span>
|
|
{% endif %}
|
|
<span class="due-today-license-count-user-plural">
|
|
{{ 'user' if seat_count == 1 else 'users' }}
|
|
</span> x
|
|
<span class="due-today-duration"></span>
|
|
<h1>$<span class="due-today-price"></span></h1>
|
|
</div>
|
|
</div>
|
|
|
|
{% if not manual_license_management %}
|
|
<div id="license-automatic-section" class="input-box upgrade-page-field license-management-section">
|
|
<p class="not-editable-realm-field">
|
|
{% if free_trial_days %}
|
|
After the Free Trial, you’ll be charged
|
|
<b>$<span class="due-today-price"></span></b> for <b>{{ seat_count }}</b>
|
|
users (or more if you later add more users).<br />
|
|
|
|
We'll automatically charge you for additional licenses as users
|
|
are added, and remove licenses not in use at the end of each billing
|
|
period.
|
|
{% else %}
|
|
Your subscription will renew automatically. Your bill will vary based on the number
|
|
of active users in your organization. You can also
|
|
<a href="/upgrade/?manual_license_management=true">purchase a fixed number of licenses</a> instead. See
|
|
<a target="_blank" href="https://zulip.com/help/zulip-cloud-billing">here</a> for details.
|
|
{% endif %}
|
|
</p>
|
|
<input type="hidden" name="licenses" id="automatic_license_count" value="{{ seat_count }}" />
|
|
</div>
|
|
{% else %}
|
|
<div id="license-manual-section" class="input-box upgrade-page-field">
|
|
<p class="not-editable-realm-field">
|
|
{% if free_trial_days %}
|
|
Enter the number of users you would like to pay for after the Free Trial.<br />
|
|
You'll need to manually add licenses to add or invite
|
|
additional users.
|
|
{% else %}
|
|
Your subscription will renew automatically. You will be able to manage the number of licenses on
|
|
your organization's billing page. You can also
|
|
<a href="/upgrade/">choose automatic license management</a> instead. See
|
|
<a href="https://zulip.com/help/zulip-cloud-billing">here</a> for details.
|
|
{% endif %}
|
|
</p>
|
|
</div>
|
|
{% endif %}
|
|
{% if not is_demo_organization %}
|
|
<div {% if payment_method %} id="upgrade-payment-info"{% endif %}>
|
|
{% if payment_method %}
|
|
<div class="input-box upgrade-page-field no-validation" id="upgrade-payment-menthod-wrapper">
|
|
<label for="customer-payment-method-for-upgrade" class="inline-block label-title">Payment method</label>
|
|
<div id="customer-payment-method-for-upgrade" class="not-editable-realm-field">
|
|
{{ payment_method }}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
<div class="upgrade-add-card-container input-box upgrade-page-field">
|
|
<button id="upgrade-add-card-button" {% if payment_method %}class="update-card-button"{% endif %}>
|
|
<span id="upgrade-add-card-button-text">
|
|
{% if payment_method %}
|
|
Update card
|
|
{% else %}
|
|
Add card
|
|
{% endif %}
|
|
</span>
|
|
<object class="loader upgrade-button-loader" type="image/svg+xml" data="{{ static('images/loading/loader-white.svg') }}"></object>
|
|
</button>
|
|
</div>
|
|
<div id="upgrade-cardchange-error" class="alert alert-danger upgrade-page-error"></div>
|
|
</div>
|
|
{% endif %}
|
|
<!-- Disabled buttons do not fire any events, so we need a container div that isn't disabled for tippyjs to work -->
|
|
<div class="upgrade-button-container input-box upgrade-page-field" {% if is_demo_organization %}data-tippy-content="{% trans %}Convert demo organization before upgrading.{% endtrans %}"{% endif %}>
|
|
<button id="org-upgrade-button{% if is_demo_organization %} permanent-disabled{% endif %}" {% if not payment_method %}disabled{% endif %}>
|
|
<span id="org-upgrade-button-text">
|
|
{% if free_trial_days %}
|
|
Start {{ free_trial_days }} day free trial
|
|
{% else %}
|
|
Purchase Zulip Cloud Standard
|
|
{% endif %}
|
|
</span>
|
|
<object class="loader upgrade-button-loader" type="image/svg+xml" data="{{ static('images/loading/loader-white.svg') }}"></object>
|
|
</button>
|
|
<div id="autopay-error" class="alert alert-danger upgrade-page-error hide"></div>
|
|
</div>
|
|
</form>
|
|
{% if manual_license_management %}
|
|
<form id="upgrade-cardchange-form">
|
|
<input type="hidden" name="manual_license_management" value="true" />
|
|
</form>
|
|
{% endif %}
|
|
<div class="input-box upgrade-page-field">
|
|
<div class="support-link not-editable-realm-field">
|
|
To pay by invoice or for any other questions, contact <a href="mailto:sales@zulip.com">sales@zulip.com</a>.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|