summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/ui/site/EditSubscriptionModal.js20
-rwxr-xr-xpublic/assets/stylesheets/app.css14
-rw-r--r--server/index.js2
-rw-r--r--server/lib/api/subscription.js4
-rw-r--r--views/partials/edit-subscription.ejs2
5 files changed, 35 insertions, 7 deletions
diff --git a/public/assets/javascripts/ui/site/EditSubscriptionModal.js b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
index e7e1fa5..1637e18 100644
--- a/public/assets/javascripts/ui/site/EditSubscriptionModal.js
+++ b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
@@ -2,6 +2,7 @@
var EditSubscriptionModal = ModalFormView.extend({
el: ".mediaDrawer.editSubscription",
action: "/api/subscription",
+ syncAction: "/api/subscription/sync",
updateAction: "/api/subscription",
destroyAction: "/api/subscription/destroy",
@@ -11,6 +12,7 @@ var EditSubscriptionModal = ModalFormView.extend({
events: {
"click [data-role='upgradeSubscription']": 'upgradeSubscription',
"click [data-role='cancelSubscription']": 'cancelSubscription',
+ "click .gear": 'sync',
},
initialize: function(){
@@ -41,6 +43,7 @@ var EditSubscriptionModal = ModalFormView.extend({
this.$upgradeSubscription = this.$("[data-role=upgradeSubscription]")
this.$cancelSubscription = this.$("[data-role=cancelSubscription]")
+ this.$gear = this.$(".gear")
},
plan_levels: {
@@ -48,10 +51,6 @@ var EditSubscriptionModal = ModalFormView.extend({
basic: 1,
pro: 2,
},
-
- sync: function(){
- $.put(this.syncAction, this.didLoad.bind(this))
- },
loaded: false,
load: function(){
@@ -74,6 +73,7 @@ var EditSubscriptionModal = ModalFormView.extend({
show: function(){
+ this.$gear.removeClass("turning")
if (! this.subscriber) {
this.$freePlan.show()
this.$paidPlan.hide()
@@ -88,7 +88,7 @@ var EditSubscriptionModal = ModalFormView.extend({
this.$paidPlan.show()
this.updateTotals()
-
+
this.__super__.show.call(this)
},
@@ -127,6 +127,16 @@ var EditSubscriptionModal = ModalFormView.extend({
this.$planTotal.toDollars ( totals.plan_total )
},
+ sync: function(){
+ this.$gear.addClass("turning")
+ $.ajax({
+ url: this.syncAction,
+ type: "put",
+ data: { _csrf: $("[name=_csrf]").val() },
+ success: this.didLoad.bind(this)
+ })
+ },
+
update: function(){
$.ajax({
url: this.updateAction,
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index 8184032..981869b 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -979,6 +979,20 @@ iframe.embed {
.about_custom a {
border-bottom: 1px solid;
}
+.editSubscription .gear {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ opacity: 0.1;
+ cursor: pointer;
+ transition: all 0.3s;
+}
+.editSubscription .gear.turning {
+ opacity: 0.3;
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+}
+
/* LAYOUTS MODAL */
diff --git a/server/index.js b/server/index.js
index fa7044b..5c14d9d 100644
--- a/server/index.js
+++ b/server/index.js
@@ -151,9 +151,9 @@ site.route = function () {
app.post('/api/media/upload', middleware.ensureAuthenticated, api.media.upload)
app.delete('/api/media/destroy', middleware.ensureAuthenticated, api.media.destroy)
- app.get('/api/subscription/sync', middleware.ensureAuthenticated, api.subscription.middleware.ensureSubscription, api.subscription.sync)
app.get('/api/subscription', middleware.ensureAuthenticated, api.subscription.middleware.ensurePlans, api.subscription.middleware.ensureSubscription, api.subscription.show)
app.put('/api/subscription', middleware.ensureAuthenticated, api.subscription.middleware.ensureSubscription, api.subscription.update)
+ app.put('/api/subscription/sync', middleware.ensureAuthenticated, api.subscription.middleware.ensureSubscription, api.subscription.sync)
app.delete('/api/subscription', middleware.ensureAuthenticated, api.subscription.middleware.ensureSubscription, api.subscription.destroy)
app.get('/partials/plans', views.partials.plans)
diff --git a/server/lib/api/subscription.js b/server/lib/api/subscription.js
index 9c77dfc..4ec7709 100644
--- a/server/lib/api/subscription.js
+++ b/server/lib/api/subscription.js
@@ -8,7 +8,9 @@ var _ = require('lodash'),
Project = require('../schemas/Project'),
Layout = require('../schemas/Layout'),
Plan = require('../schemas/Plan');
- Subscription = require('../schemas/Subscription');
+ Subscription = require('../schemas/Subscription'),
+ Recurly = require('node-recurly'),
+ recurly = new Recurly(require('../webhook/recurly-config'));
var plan_levels = {
free: 0,
diff --git a/views/partials/edit-subscription.ejs b/views/partials/edit-subscription.ejs
index cc296f6..cfd5728 100644
--- a/views/partials/edit-subscription.ejs
+++ b/views/partials/edit-subscription.ejs
@@ -12,6 +12,7 @@
consider upgrading to a paid plan.
<br><br>
<div class="planList"></div>
+ <br><br><br>
</li>
<li class="paidPlan">
Your current plan level is <span data-role="planName"></span>
@@ -43,6 +44,7 @@
<button data-role="upgradeSubscription">Upgrade your subscription</button>
<button data-role="cancelSubscription">Cancel your subscription</button>
</li>
+ <div class="gear"><span class="ion-gear-a"></span></div>
</ul>
</form>
</div>