mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import * as helpers from "./helpers";
 | 
						|
 | 
						|
export const initialize = () => {
 | 
						|
    helpers.set_tab("upgrade");
 | 
						|
 | 
						|
    const add_card_handler = StripeCheckout.configure({
 | 
						|
        key: $("#autopay-form").data("key"),
 | 
						|
        image: "/static/images/logo/zulip-icon-128x128.png",
 | 
						|
        locale: "auto",
 | 
						|
        token(stripe_token) {
 | 
						|
            helpers.create_ajax_request("/json/billing/upgrade", "autopay", stripe_token, [
 | 
						|
                "licenses",
 | 
						|
            ]);
 | 
						|
        },
 | 
						|
    });
 | 
						|
 | 
						|
    $("#add-card-button").on("click", (e) => {
 | 
						|
        const license_management = $("input[type=radio][name=license_management]:checked").val();
 | 
						|
        if (
 | 
						|
            helpers.is_valid_input($(`#${CSS.escape(license_management)}_license_count`)) === false
 | 
						|
        ) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        add_card_handler.open({
 | 
						|
            name: "Zulip",
 | 
						|
            zipCode: true,
 | 
						|
            billingAddress: true,
 | 
						|
            panelLabel: "Make payment",
 | 
						|
            email: $("#autopay-form").data("email"),
 | 
						|
            label: "Add card",
 | 
						|
            allowRememberMe: false,
 | 
						|
            description: "Zulip Cloud Standard",
 | 
						|
        });
 | 
						|
        e.preventDefault();
 | 
						|
    });
 | 
						|
 | 
						|
    $("#invoice-button").on("click", (e) => {
 | 
						|
        if (helpers.is_valid_input($("#invoiced_licenses")) === false) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        e.preventDefault();
 | 
						|
        helpers.create_ajax_request("/json/billing/upgrade", "invoice", undefined, ["licenses"]);
 | 
						|
    });
 | 
						|
 | 
						|
    $("#sponsorship-button").on("click", (e) => {
 | 
						|
        if (!helpers.is_valid_input($("#sponsorship-form"))) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        e.preventDefault();
 | 
						|
        helpers.create_ajax_request(
 | 
						|
            "/json/billing/sponsorship",
 | 
						|
            "sponsorship",
 | 
						|
            undefined,
 | 
						|
            undefined,
 | 
						|
            "/",
 | 
						|
        );
 | 
						|
    });
 | 
						|
 | 
						|
    const prices = {};
 | 
						|
    prices.annual = page_params.annual_price * (1 - page_params.percent_off / 100);
 | 
						|
    prices.monthly = page_params.monthly_price * (1 - page_params.percent_off / 100);
 | 
						|
 | 
						|
    $("input[type=radio][name=license_management]").on("change", function () {
 | 
						|
        helpers.show_license_section(this.value);
 | 
						|
    });
 | 
						|
 | 
						|
    $("input[type=radio][name=schedule]").on("change", function () {
 | 
						|
        helpers.update_charged_amount(prices, this.value);
 | 
						|
    });
 | 
						|
 | 
						|
    $("select[name=organization-type]").on("change", function () {
 | 
						|
        helpers.update_discount_details(this.value);
 | 
						|
    });
 | 
						|
 | 
						|
    $("#autopay_annual_price").text(helpers.format_money(prices.annual));
 | 
						|
    $("#autopay_annual_price_per_month").text(helpers.format_money(prices.annual / 12));
 | 
						|
    $("#autopay_monthly_price").text(helpers.format_money(prices.monthly));
 | 
						|
    $("#invoice_annual_price").text(helpers.format_money(prices.annual));
 | 
						|
    $("#invoice_annual_price_per_month").text(helpers.format_money(prices.annual / 12));
 | 
						|
 | 
						|
    helpers.show_license_section($("input[type=radio][name=license_management]:checked").val());
 | 
						|
    helpers.update_charged_amount(prices, $("input[type=radio][name=schedule]:checked").val());
 | 
						|
};
 | 
						|
 | 
						|
$(() => {
 | 
						|
    initialize();
 | 
						|
});
 |