all atb changes
This commit is contained in:
47
app/plugins/members/views/admin/memberships/list.html
Normal file
47
app/plugins/members/views/admin/memberships/list.html
Normal file
@ -0,0 +1,47 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Memberships</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/products/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 25%">Name</th>
|
||||
<th style="width: 20%">status</th>
|
||||
<th style="width: 20%">Price</th>
|
||||
<th style="width: 10%">Start</th>
|
||||
<th style="width: 10%">End</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.f" value="F_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{name}</td>
|
||||
<td>{status}</td>
|
||||
<td>{prettyPrice}</td>
|
||||
<td>{DTC}{current_period_start}{/DTC}</td>
|
||||
<td>{DTC}{current_period_end}{/DTC}</td>
|
||||
<td><a href="{ROOT_URL}admin/records/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/records/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="MP_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
76
app/plugins/members/views/admin/memberships/view.html
Normal file
76
app/plugins/members/views/admin/memberships/view.html
Normal file
@ -0,0 +1,76 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{name}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Details -->
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">User</th>
|
||||
<td>{name}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Status</th>
|
||||
<td>{status}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Billing Frequency</th>
|
||||
<td>{billing_frequency}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Started:</th>
|
||||
<td>{DTC}{current_period_end}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Ended:</th>
|
||||
<td>{DTC}{current_period_start}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Stripe Customer</th>
|
||||
<td class="input-group mb-3">
|
||||
<input type="text" value="{stripe_customer}" name="input" class="form-control" id="stripeCustomer{ID}">
|
||||
<button class="btn btn-secondary" onclick="copyElementText('stripeCustomer{ID}')">Copy</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Stripe Subscription</th>
|
||||
<td class="input-group mb-3">
|
||||
<input type="text" value="{stripe_subscription}" name="input" class="form-control" id="stripeSubscription{ID}">
|
||||
<button class="btn btn-secondary" onclick="copyElementText('stripeSubscription{ID}')">Copy</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Stripe Subscription Price</th>
|
||||
<td class="input-group mb-3">
|
||||
<input type="text" value="{subscription_price_id}" name="input" class="form-control" id="stripeSubscriptionPrice{ID}">
|
||||
<button class="btn btn-secondary" onclick="copyElementText('stripeSubscriptionPrice{ID}')">Copy</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<form action="{ROOT_URL}admin/feedback/delete" method="post">
|
||||
<input type="hidden" name="F_" value="{ID}">
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
35
app/plugins/members/views/admin/orphans.html
Normal file
35
app/plugins/members/views/admin/orphans.html
Normal file
@ -0,0 +1,35 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Stripe Webhook Generation</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<p>Orphans are stripe prices that have unique lookup_keys used by the membership system, but have no products currently saved.</p>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%">price id</th>
|
||||
<th style="width: 10%">amount</th>
|
||||
<th style="width: 50%">lookup key</th>
|
||||
<th style="width: 10%">url</th>
|
||||
<th style="width: 10%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{price_id}</td>
|
||||
<td>{amount}</td>
|
||||
<td>{lookup_key}</td>
|
||||
<td><a href="{ROOT_URL}admin/members/orphans/adopt/{price_id}" class="btn btn-sm btn-success"><i class="fa fa-fw fa-download"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/members/orphans/abandon/{price_id}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td class="text-center" colspan="5">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
51
app/plugins/members/views/admin/products/create.html
Normal file
51
app/plugins/members/views/admin/products/create.html
Normal file
@ -0,0 +1,51 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Create Membership Product</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="" method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-lg-3 col-form-label text-end">Name:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" class="form-control" name="name" id="name">
|
||||
</div>
|
||||
</div>
|
||||
<!-- Monthly Price -->
|
||||
<div class="mb-3 row">
|
||||
<label for="monthly_price" class="col-lg-3 col-form-label text-end">Monthly Price:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" class="form-control" name="monthly_price" id="monthly_price">
|
||||
<small class="form-text text-muted">Integer required: $4.99 : 499</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Yearly Price -->
|
||||
<div class="mb-3 row">
|
||||
<label for="yearly_price" class="col-lg-3 col-form-label text-end">Yearly Price:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" class="form-control" name="yearly_price" id="yearly_price">
|
||||
<small class="form-text text-muted">Integer required: $4.99 : 499</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Description -->
|
||||
<div class="mb-3 row">
|
||||
<label for="description" class="col-lg-3 col-form-label text-end">Description:</label>
|
||||
<div class="col-lg-6">
|
||||
<textarea class="form-control" name="description" id="description" rows="6" maxlength="2000" required></textarea>
|
||||
<small class="form-text text-muted">Max: 2000 characters</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
</fieldset>
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg center-block">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
51
app/plugins/members/views/admin/products/edit.html
Normal file
51
app/plugins/members/views/admin/products/edit.html
Normal file
@ -0,0 +1,51 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Create Membership Product</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="" method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-lg-3 col-form-label text-end">Name:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" class="form-control" name="name" id="name" value="{name}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- Monthly Price -->
|
||||
<div class="mb-3 row">
|
||||
<label for="monthly_price" class="col-lg-3 col-form-label text-end">Monthly Price:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" class="form-control" name="monthly_price" id="monthly_price" value="{monthly_price}">
|
||||
<small class="form-text text-muted">Integer required: $4.99 : 499</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Yearly Price -->
|
||||
<div class="mb-3 row">
|
||||
<label for="yearly_price" class="col-lg-3 col-form-label text-end">Yearly Price:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="number" class="form-control" name="yearly_price" id="yearly_price" value="{yearly_price}">
|
||||
<small class="form-text text-muted">Integer required: $4.99 : 499</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Description -->
|
||||
<div class="mb-3 row">
|
||||
<label for="description" class="col-lg-3 col-form-label text-end">Description:</label>
|
||||
<div class="col-lg-6">
|
||||
<textarea class="form-control" name="description" id="description" rows="6" maxlength="2000" required>{description}</textarea>
|
||||
<small class="form-text text-muted">Max: 2000 characters</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
</fieldset>
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg center-block">Send</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
46
app/plugins/members/views/admin/products/list.html
Normal file
46
app/plugins/members/views/admin/products/list.html
Normal file
@ -0,0 +1,46 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Membership Products</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/products/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%">Name</th>
|
||||
<th style="width: 25%">Monthly Price</th>
|
||||
<th style="width: 50%">Yearly Price</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.f" value="F_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{name}</td>
|
||||
<td>{monthly_price}</td>
|
||||
<td>{yearly_price}</td>
|
||||
<td><a href="{ROOT_URL}admin/products/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/products/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/products/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="MP_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="{ROOT_URL}admin/products/create" class="btn btn-sm btn-primary">Create</a>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
72
app/plugins/members/views/admin/products/view.html
Normal file
72
app/plugins/members/views/admin/products/view.html
Normal file
@ -0,0 +1,72 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{name}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">Name</th>
|
||||
<td>{name}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Monthly Price</th>
|
||||
<td>{monthly_price}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Yearly Price</th>
|
||||
<td>{yearly_price}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Stripe Product</th>
|
||||
<td class="input-group mb-3">
|
||||
<input type="text" value="{stripe_product}" name="input" class="form-control" id="stripeProduct{ID}">
|
||||
<button class="btn btn-secondary" onclick="copyElementText('stripeProduct{ID}')" aria-describedby="stripeProduct{ID}">Copy</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Stripe Price Yearly</th>
|
||||
<td class="input-group mb-3">
|
||||
<input type="text" value="{stripe_price_yearly}" name="input" class="form-control" id="stripeYearly{ID}">
|
||||
<button class="btn btn-secondary" onclick="copyElementText('stripeYearly{ID}')">Copy</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Stripe Price Monthly</th>
|
||||
<td class="input-group mb-3">
|
||||
<input type="text" value="{stripe_price_monthly}" name="input" class="form-control" id="stripeMonthly{ID}">
|
||||
<button class="btn btn-secondary" onclick="copyElementText('stripeMonthly{ID}')">Copy</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Description</th>
|
||||
<td>{description}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<form action="{ROOT_URL}admin/feedback/delete" method="post">
|
||||
<input type="hidden" name="F_" value="{ID}">
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
13
app/plugins/members/views/admin/scripts.html
Normal file
13
app/plugins/members/views/admin/scripts.html
Normal file
@ -0,0 +1,13 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Membership Scripts</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<a href="{ROOT_URL}admin/members/webhooks">Webhook Generation</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{ROOT_URL}admin/members/orphans">Orphan Products</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
43
app/plugins/members/views/admin/webhooks.html
Normal file
43
app/plugins/members/views/admin/webhooks.html
Normal file
@ -0,0 +1,43 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Stripe Webhook Generation</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 10%">id</th>
|
||||
<th style="width: 10%">status</th>
|
||||
<th style="width: 50%">enabled_events</th>
|
||||
<th style="width: 10%">url</th>
|
||||
<th style="width: 10%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{id}</td>
|
||||
<td>{status}</td>
|
||||
<td>{enabled_events}</td>
|
||||
<td>{url}</td>
|
||||
<td><a href="{ROOT_URL}admin/members/webhooks/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td class="text-center" colspan="5">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="text-center">
|
||||
<h5>WARNING: Regenerating existing webhooks makes joey sad, don't do iit!</h5>
|
||||
<p>The new webhooks will be generated using the base url: <strong>{urltouse}</strong></p>
|
||||
<form action="" method="post" class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-danger">re-generate</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
20
app/plugins/members/views/cancel.html
Normal file
20
app/plugins/members/views/cancel.html
Normal file
@ -0,0 +1,20 @@
|
||||
<div class="container py-4 context-main-bg my-4">
|
||||
<h2 class="text-center">Are You Sure You Want to Cancel?</h2>
|
||||
<hr>
|
||||
<div class="text-center">
|
||||
<p class="lead">
|
||||
Cancelling your subscription means you'll miss out on exclusive features, updates, and benefits.
|
||||
</p>
|
||||
<p>
|
||||
Consider staying to continue enjoying the full experience of our service.
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-md-3 offset-3">
|
||||
<a href="{ROOT_URL}member/cancelconfirm/{cancelid}" class="btn btn-lg btn-outline-danger btn-block">Cancel Subscription</a>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<a href="{ROOT_URL}member/manage" class="btn btn-lg btn-primary btn-block atb-green-bg">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
130
app/plugins/members/views/join.html
Normal file
130
app/plugins/members/views/join.html
Normal file
@ -0,0 +1,130 @@
|
||||
<!-- Compare plans -->
|
||||
<div class="table-responsive pricing-container container pb-4" id="compare">
|
||||
<h1 class="display-6 text-center my-4">Compare plans</h1>
|
||||
<table class="table text-center context-main border-white">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 34%;"></th>
|
||||
<th style="width: 22%;">Free</th>
|
||||
<th style="width: 22%;">Monthly</th>
|
||||
<th style="width: 22%;">Yearly</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Add and Manage Bookmarks</th>
|
||||
<td><i class="fa fa-fw fa-check"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Extensions for all major browsers</th>
|
||||
<td><i class="fa fa-fw fa-check"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Access from any device</th>
|
||||
<td><i class="fa fa-fw fa-check"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Share bookmarks and folders</th>
|
||||
<td><i class="fa fa-fw fa-check"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Import/Export Features</th>
|
||||
<td></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Customizable Dashboards / Pages</th>
|
||||
<td></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Request/Influence Development</th>
|
||||
<td></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Early Access</th>
|
||||
<td></td>
|
||||
<td><i class="fa fa-fw fa-check atb-green"></i></td>
|
||||
<td><i class="fa-solid fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="text-start">Cheaper</th>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><i class="fa-solid fa-check atb-green"></i></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="b-example-divider"></div>
|
||||
|
||||
<!-- Plan Choices -->
|
||||
<div class="d-flex justify-content-center" id="pricing">
|
||||
<div class="pricing-container container row row-cols-1 row-cols-md-3 my-5 text-center">
|
||||
<div class="col">
|
||||
<div class="card mb-4 rounded-3 shadow-sm h-100 context-main-bg">
|
||||
<div class="card-header py-3">
|
||||
<h4 class="my-0 fw-normal">Free</h4>
|
||||
</div>
|
||||
<div class="card-body d-flex flex-column">
|
||||
<h1 class="card-title pricing-card-title">$0<small class="text-muted fw-light">/mo</small></h1>
|
||||
<ul class="list-unstyled mt-3 mb-4">
|
||||
<li>Add / Manage your bookmarks</li>
|
||||
<li>Extensions for all major browsers</li>
|
||||
<li>Access from any device</li>
|
||||
<li>Share access with anyone</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card mb-4 rounded-3 shadow-sm h-100 context-main-bg">
|
||||
<div class="card-header py-3">
|
||||
<h4 class="my-0 fw-normal">Monthly</h4>
|
||||
</div>
|
||||
<div class="card-body d-flex flex-column">
|
||||
<h1 class="card-title pricing-card-title">{prettyPriceMonthly}<small class="text-muted fw-light">/month</small></h1>
|
||||
<ul class="list-unstyled mt-3 mb-4">
|
||||
<li>Import/Export Features</li>
|
||||
<li>Integration with TempusTools App (WIP)</li>
|
||||
<li>Customizable Dashboards / Pages</li>
|
||||
<li>Direct control of Feature Development</li>
|
||||
<li>Early Access to new features</li>
|
||||
</ul>
|
||||
<a href="/member/checkout/monthly" class="mt-auto w-100 btn btn-lg atb-green-bg">
|
||||
Get started
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="card mb-4 rounded-3 shadow-sm atb-green-outline-only h-100 context-main-bg">
|
||||
<div class="card-header py-3 atb-green-bg">
|
||||
<h4 class="my-0 fw-normal">Yearly</h4>
|
||||
</div>
|
||||
<div class="card-body d-flex flex-column">
|
||||
<h1 class="card-title pricing-card-title">{prettyPriceYearly}<small class="text-muted fw-light">/year</small></h1>
|
||||
<ul class="list-unstyled mt-3 mb-4">
|
||||
<li>Its cheaper if you like the product</li>
|
||||
</ul>
|
||||
<a href="/member/checkout/yearly" class="mt-auto w-100 btn btn-lg atb-green-bg">
|
||||
Get started
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
52
app/plugins/members/views/manage.html
Normal file
52
app/plugins/members/views/manage.html
Normal file
@ -0,0 +1,52 @@
|
||||
<div class="container py-4 context-main-bg my-4">
|
||||
<h3 class="mb-4 text-center">Manage Memberships</h3>
|
||||
<hr>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<table class="table text-center context-main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 25%">Name</th>
|
||||
<th style="width: 20%">Status</th>
|
||||
<th style="width: 20%">Price</th>
|
||||
<th style="width: 10%">Start</th>
|
||||
<th style="width: 10%">End</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{productName}</td>
|
||||
<td>{status}</td>
|
||||
<td>{prettyPrice}</td>
|
||||
<td>{DTC=date}{current_period_start}{/DTC}</td>
|
||||
<td>{DTC=date}{current_period_end}{/DTC}</td>
|
||||
<td>
|
||||
<a href="{ROOT_URL}member/pause/{ID}" class="btn btn-sm btn-outline-warning">
|
||||
<i class="fa fa-fw fa-pause"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{ROOT_URL}member/cancel/{ID}" class="btn btn-sm btn-outline-danger">
|
||||
<i class="fa fa-fw fa-ban"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td colspan="7" class="text-center">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="{ROOT_URL}member/managepayment" class="btn btn-sm btn-primary atb-green-bg">
|
||||
Manage Payment Method
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
18
app/plugins/members/views/members.html
Normal file
18
app/plugins/members/views/members.html
Normal file
@ -0,0 +1,18 @@
|
||||
<div class="col-8 mx-auto p-4 rounded shadow-sm context-main-bg my-4">
|
||||
<h2 class="text-center atb-green mb-4">Membership Benefits</h2>
|
||||
<p class="lead">
|
||||
First, let me say thank you for choosing to become a member! There are several great benefits exclusively for members.
|
||||
</p>
|
||||
<p>
|
||||
In addition to extra features for bookmark management like <a class="text-decoration-none atb-green" href="{ROOT_URL}bookmarks/dashboards">dashboards</a> and <a class="text-decoration-none atb-green" href="{ROOT_URL}bookmarks/import">import</a>/<a class="text-decoration-none atb-green" href="{ROOT_URL}bookmarks/export">export</a>, you gain access to influence development. <a class="text-decoration-none atb-green" href="{ROOT_URL}suggestions">Suggestions</a> gives users a direct way to make suggestions to me personally. By default, suggestions are not public, but I can comment on them to let you know what I think.
|
||||
All respectful and reasonable suggestions go up for the entire community to see and comment on. There iis going to be a loyalty points system in the future to allow you to accrue points and use the points to vote for suggestions and features they like. But that's for another time.
|
||||
</p>
|
||||
<p class="text-muted">
|
||||
Right now, this entire system was built and managed by myself. I have used my own version of this for years, but translating it to a publicly available product is not a 1-to-1 job. There may be bugs or issues encountered while you use the product. I can't guarantee a fix for every need in every case immediately, but I do actively keep track of bugs and work hard to ensure everyone has a great experience using the app.
|
||||
</p>
|
||||
<div class="text-center mt-4 pb-4">
|
||||
{loggedin}<a href="/bugreport" class="btn btn-outline-secondary btn-lg px-5 ms-3 atb-green-outline">Report a Bug</a>{/loggedin}
|
||||
<a href="/member/manage" class="btn btn-outline-secondary btn-lg px-5 ms-3 atb-green-bg">Manage Membership</a>
|
||||
<a href="/contact" class="btn btn-outline-secondary btn-lg px-5 ms-3 atb-green-outline">Contact Us</a>
|
||||
</div>
|
||||
</div>
|
20
app/plugins/members/views/pause.html
Normal file
20
app/plugins/members/views/pause.html
Normal file
@ -0,0 +1,20 @@
|
||||
<div class="container py-4 context-main-bg my-4">
|
||||
<h2 class="text-center">Are You Sure You Want to Pause?</h2>
|
||||
<hr>
|
||||
<div class="text-center">
|
||||
<p class="lead">
|
||||
Pausing your subscription means you'll miss out on exclusive features, updates, and benefits.
|
||||
</p>
|
||||
<p>
|
||||
Consider staying to continue enjoying the full experience of our service.
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-md-3 offset-3">
|
||||
<a href="{ROOT_URL}member/pauseconfirm/{pauseid}" class="btn btn-lg btn-outline-danger btn-block">Pause Subscription</a>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<a href="{ROOT_URL}member/manage" class="btn btn-lg btn-primary btn-block atb-green-bg">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
14
app/plugins/members/views/paymentcanceled.html
Normal file
14
app/plugins/members/views/paymentcanceled.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div class="col-8 mx-auto p-4 rounded shadow-sm context-main-bg my-4">
|
||||
<h2 class="text-center atb-green mb-4">Almost there!</h2>
|
||||
<p class="lead">
|
||||
Take your time, its not a sprint, its a marathon.
|
||||
Nno-one wants to checkout too fast, its embarrassing.
|
||||
</p>
|
||||
<p class="text-muted">
|
||||
If you think this is a tool that you could really use and can't afford it, use the contact form below and tell me why you need it.
|
||||
</p>
|
||||
<div class="text-center mt-4 pb-4">
|
||||
{loggedin}<a href="/bugreport" class="btn btn-primary btn-lg px-5 atb-green-bg">Report a Bug</a>{/loggedin}
|
||||
<a href="/contact" class="btn btn-outline-secondary btn-lg px-5 ms-3 atb-green-outline">Contact Us</a>
|
||||
</div>
|
||||
</div>
|
14
app/plugins/members/views/paymentcomplete.html
Normal file
14
app/plugins/members/views/paymentcomplete.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div class="col-8 mx-auto p-4 rounded shadow-sm context-main-bg my-4">
|
||||
<h2 class="text-center atb-green mb-4">Thanks for joining!</h2>
|
||||
<p class="lead">
|
||||
Its people like you who keep the pixels on around here.
|
||||
Its people like me who tell people like you that unfortunately, it could take up to an hour for your membership to activate.
|
||||
</p>
|
||||
<p class="text-muted">
|
||||
With that said, its usually instant, and if its taking too long, just reach out to us via the contact form.
|
||||
</p>
|
||||
<div class="text-center mt-4 pb-4">
|
||||
{loggedin}<a href="/bugreport" class="btn btn-primary btn-lg px-5 atb-green-bg">Report a Bug</a>{/loggedin}
|
||||
<a href="/contact" class="btn btn-outline-secondary btn-lg px-5 ms-3 atb-green-outline">Contact Us</a>
|
||||
</div>
|
||||
</div>
|
69
app/plugins/members/views/register.html
Normal file
69
app/plugins/members/views/register.html
Normal file
@ -0,0 +1,69 @@
|
||||
<form action="" method="post" class="container py-4">
|
||||
<h2 class="text-center mb-4">Create an Account</h2>
|
||||
<p class="text-center">After registration is complete, you will be redirected to Stripe to handle payment.</p>
|
||||
<p class="text-center">
|
||||
You have selected the <strong>{planName}</strong> plan at <em>{prettyPrice}</em>.
|
||||
</p>
|
||||
<fieldset>
|
||||
<!-- Username -->
|
||||
<div class="mb-3 row">
|
||||
<label for="username" class="col-lg-6 col-form-label text-end">Username:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="username" id="username" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Email -->
|
||||
<div class="mb-3 row">
|
||||
<label for="email" class="col-lg-6 col-form-label text-end">Email:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="email" class="form-control" name="email" id="email" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Re-enter Email -->
|
||||
<div class="mb-3 row">
|
||||
<label for="email2" class="col-lg-6 col-form-label text-end">Re-Enter Email:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="email" class="form-control" name="email2" id="email2" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mb-3 row">
|
||||
<label for="password" class="col-lg-6 col-form-label text-end">Password:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="password" class="form-control" name="password" id="password" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Re-enter Password -->
|
||||
<div class="mb-3 row">
|
||||
<label for="password2" class="col-lg-6 col-form-label text-end">Re-Enter Password:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="password" class="form-control" name="password2" id="password2" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Terms of Service -->
|
||||
<div class="mb-3 text-center">
|
||||
<div class="">
|
||||
<input type="checkbox" class="form-check-input" name="terms" id="terms" value="1" required>
|
||||
<label for="terms" class="form-check-label">
|
||||
I have read and agree to the <a href="/home/terms" class="text-primary">Terms of Service</a>
|
||||
</label>
|
||||
</div>
|
||||
<div class="terms mt-2 mx-auto">
|
||||
{TERMS}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Sign up</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
24
app/plugins/members/views/upgrade.html
Normal file
24
app/plugins/members/views/upgrade.html
Normal file
@ -0,0 +1,24 @@
|
||||
<div class="col-8 mx-auto p-4 rounded shadow-sm mb-5 context-main-bg mt-4 text-center">
|
||||
<div class="row">
|
||||
<h2 class="mb-4 atb-green">Upgrade to a Yearly Plan</h2>
|
||||
<p class="lead">
|
||||
Save more and enjoy uninterrupted access to all features with our yearly plan!
|
||||
</p>
|
||||
<p>
|
||||
Upgrading now means you'll save <strong> nearly $40 a year</strong> compared to the monthly plan.
|
||||
Stay committed and make the most of our service.
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<a href="/member/checkout/upgrade" class="btn btn-lg btn-block atb-green-bg">
|
||||
Upgrade to Yearly
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a href="/member" class="btn btn-lg btn-block atb-green-outline">
|
||||
Stay on Monthly
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
13
app/plugins/members/views/upgradeCompleted.html
Normal file
13
app/plugins/members/views/upgradeCompleted.html
Normal file
@ -0,0 +1,13 @@
|
||||
<div class="col-8 mx-auto p-4 rounded shadow-sm context-main-bg my-4">
|
||||
<h2 class="text-center atb-green mb-4">Thanks for the vote of confidence!</h2>
|
||||
<p class="lead">
|
||||
While you were more profitable as a monthly user, I do appreciate the vote of confidence it takes to commit to 4x the cost at once.
|
||||
</p>
|
||||
<p class="text-muted">
|
||||
There really is no more benefit than you saving money, so enjoy the features you have already come to know and enjoy.
|
||||
</p>
|
||||
<div class="text-center mt-4 pb-4">
|
||||
{loggedin}<a href="/bugreport" class="btn btn-primary btn-lg px-5 atb-green-bg">Report a Bug</a>{/loggedin}
|
||||
<a href="/contact" class="btn btn-outline-secondary btn-lg px-5 ms-3 atb-green-outline">Contact Us</a>
|
||||
</div>
|
||||
</div>
|
Reference in New Issue
Block a user