76 lines
1.8 KiB
JavaScript
Executable File
76 lines
1.8 KiB
JavaScript
Executable File
'use strict';
|
|
/**
|
|
* controller for Wizard Form example
|
|
*/
|
|
app.controller('WizardCtrl', ['$scope', 'toaster',
|
|
function ($scope, toaster) {
|
|
$scope.currentStep = 1;
|
|
|
|
// Initial Value
|
|
$scope.form = {
|
|
|
|
next: function (form) {
|
|
|
|
$scope.toTheTop();
|
|
|
|
if (form.$valid) {
|
|
nextStep();
|
|
} else {
|
|
var field = null, firstError = null;
|
|
for (field in form) {
|
|
if (field[0] != '$') {
|
|
if (firstError === null && !form[field].$valid) {
|
|
firstError = form[field].$name;
|
|
}
|
|
|
|
if (form[field].$pristine) {
|
|
form[field].$dirty = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
angular.element('.ng-invalid[name=' + firstError + ']').focus();
|
|
errorMessage();
|
|
}
|
|
},
|
|
prev: function (form) {
|
|
$scope.toTheTop();
|
|
prevStep();
|
|
},
|
|
goTo: function (form, i) {
|
|
if (parseInt($scope.currentStep) > parseInt(i)) {
|
|
$scope.toTheTop();
|
|
goToStep(i);
|
|
|
|
} else {
|
|
if (form.$valid) {
|
|
$scope.toTheTop();
|
|
goToStep(i);
|
|
|
|
} else
|
|
errorMessage();
|
|
}
|
|
},
|
|
submit: function () {
|
|
|
|
},
|
|
reset: function () {
|
|
|
|
}
|
|
};
|
|
|
|
|
|
var nextStep = function () {
|
|
$scope.currentStep++;
|
|
};
|
|
var prevStep = function () {
|
|
$scope.currentStep--;
|
|
};
|
|
var goToStep = function (i) {
|
|
$scope.currentStep = i;
|
|
};
|
|
var errorMessage = function (i) {
|
|
toaster.pop('error', 'Error', 'please complete the form in this step before proceeding');
|
|
};
|
|
}]);
|