UI fixes for all the new trigger stuff

This commit is contained in:
Joseph Schorr 2015-04-30 15:33:19 -04:00
parent de29a441c8
commit b7317f894b
25 changed files with 260 additions and 149 deletions

View file

@ -16,26 +16,38 @@ angular.module('quay').directive('stepView', function ($compile) {
'stepsCompleted': '&stepsCompleted'
},
controller: function($scope, $element, $rootScope) {
this.currentStepIndex = -1;
this.steps = [];
this.watcher = null;
var currentStepIndex = -1;
var steps = [];
var watcher = null;
this.getCurrentStep = function() {
return this.steps[this.currentStepIndex];
// Members on 'this' are accessed by the individual steps.
this.register = function(scope, element) {
element.hide();
steps.push({
'scope': scope,
'element': element
});
nextStep();
};
this.reset = function() {
this.currentStepIndex = -1;
for (var i = 0; i < this.steps.length; ++i) {
this.steps[i].element.hide();
var getCurrentStep = function() {
return steps[currentStepIndex];
};
var reset = function() {
currentStepIndex = -1;
for (var i = 0; i < steps.length; ++i) {
steps[i].element.hide();
}
$scope.currentStepValid = false;
};
this.next = function() {
if (this.currentStepIndex >= 0) {
var currentStep = this.getCurrentStep();
var next = function() {
if (currentStepIndex >= 0) {
var currentStep = getCurrentStep();
if (!currentStep || !currentStep.scope) { return; }
if (!currentStep.scope.completeCondition) {
@ -44,20 +56,20 @@ angular.module('quay').directive('stepView', function ($compile) {
currentStep.element.hide();
if (this.unwatch) {
this.unwatch();
this.unwatch = null;
if (unwatch) {
unwatch();
unwatch = null;
}
}
this.currentStepIndex++;
currentStepIndex++;
if (this.currentStepIndex < this.steps.length) {
var currentStep = this.getCurrentStep();
if (currentStepIndex < steps.length) {
var currentStep = getCurrentStep();
currentStep.element.show();
currentStep.scope.load()
this.unwatch = currentStep.scope.$watch('completeCondition', function(cc) {
unwatch = currentStep.scope.$watch('completeCondition', function(cc) {
$scope.currentStepValid = !!cc;
});
} else {
@ -65,23 +77,17 @@ angular.module('quay').directive('stepView', function ($compile) {
}
};
this.register = function(scope, element) {
element.hide();
var nextStep = function() {
if (!steps || !steps.length) { return; }
this.steps.push({
'scope': scope,
'element': element
});
if ($scope.nextStepCounter >= 0) {
next();
} else {
reset();
}
};
var that = this;
$scope.$watch('nextStepCounter', function(nsc) {
if (nsc >= 0) {
that.next();
} else {
that.reset();
}
});
$scope.$watch('nextStepCounter', nextStep);
}
};
return directiveDefinitionObject;