Merge pull request #1769 from coreos-inc/fix-plans-tabs

Fix handling of tabs in the plans page
This commit is contained in:
josephschorr 2016-08-29 13:37:42 -04:00 committed by GitHub
commit 040886b781
4 changed files with 708 additions and 693 deletions

View file

@ -0,0 +1,59 @@
/**
* An element which displays the plans page content. Put into a directive for encapsulating the tab
* changing code.
*/
angular.module('quay').directive('plansDisplay', function () {
var directiveDefinitionObject = {
priority: 0,
templateUrl: '/static/directives/plans-display.html',
replace: false,
transclude: true,
restrict: 'C',
scope: {
},
controller: function($scope, $element, $routeParams, UserService, PlanService, UIService) {
// Monitor any user changes and place the current user into the scope.
UserService.updateUserIn($scope);
// Watch for tab changes.
UIService.initializeTabs($scope, $element);
$scope.signedIn = function() {
$('#signinModal').modal('hide');
PlanService.handleNotedPlan();
};
$scope.qeStartTrial = function(plan) {
$scope.currentQEPlan = plan;
$('#tectonicManagerDialog').modal('show');
};
$scope.buyNow = function(plan) {
PlanService.notePlan(plan);
if ($scope.user && !$scope.user.anonymous) {
PlanService.handleNotedPlan();
} else {
$('#signinModal').modal({});
}
};
// Load the list of plans.
PlanService.getPlans(function(plans) {
$scope.plans = plans;
for (var i = 0; i < $scope.plans.length; ++i) {
var plan = plans[i];
if (plan.privateRepos > 20 && !plan.plans_page_hidden) {
$scope.dropdownPlan = plan.stripeId;
break
}
}
if ($scope && $routeParams['trial-plan']) {
$scope.buyNow($routeParams['trial-plan']);
}
}, /* include the personal plan */ true);
}
};
return directiveDefinitionObject;
});

View file

@ -9,52 +9,5 @@
});
}]);
function PlansCtrl($scope, $location, UserService, PlanService, $routeParams) {
// Monitor any user changes and place the current user into the scope.
UserService.updateUserIn($scope);
$('.plan-tabs a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
$location.search({'tab': e.target.getAttribute('data-target').substr(1)});
});
$scope.signedIn = function() {
$('#signinModal').modal('hide');
PlanService.handleNotedPlan();
};
$scope.qeStartTrial = function(plan) {
$scope.currentQEPlan = plan;
$('#tectonicManagerDialog').modal('show');
};
$scope.buyNow = function(plan) {
PlanService.notePlan(plan);
if ($scope.user && !$scope.user.anonymous) {
PlanService.handleNotedPlan();
} else {
$('#signinModal').modal({});
}
};
// Load the list of plans.
PlanService.getPlans(function(plans) {
$scope.plans = plans;
for (var i = 0; i < $scope.plans.length; ++i) {
var plan = plans[i];
if (plan.privateRepos > 20 && !plan.plans_page_hidden) {
$scope.dropdownPlan = plan.stripeId;
break
}
}
if ($scope && $routeParams['trial-plan']) {
$scope.buyNow($routeParams['trial-plan']);
}
if ($scope && $routeParams['tab'] == 'enterprise') {
$('#enterpriseTab').tab('show')
}
}, /* include the personal plan */ true);
}
function PlansCtrl($scope) {}
})();