repo for angularjs testing training
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

60 lines
1.6 KiB

(function(angular) {
AddBookController.$inject = ['$state', 'BooksService', 'ValidateDateService'];
function AddBookController($state, BooksService, ValidateDateService) {
var vm = this;
vm.book = {};
vm.showPublicationDateError = false;
vm.showFieldsRequiredError = false;
vm.hasSubmittedForm = false;
function returnToBookList() {
$state.go('books');
}
function validateInput() {
var valid = true;
vm.showPublicationDateError = false;
vm.showFieldsRequiredError = false;
if (!ValidateDateService.isValidDate(vm.book.publicationDate) ) {
valid = false;
vm.showPublicationDateError = true;
}
if (!vm.book.title
|| !vm.book.author
|| !vm.book.publisher
|| !vm.book.publicationDate
|| !vm.book.publicationDate
|| !vm.book.description) {
valid = false;
vm.showFieldsRequiredError = true;
}
return valid;
}
vm.saveBook = function() {
vm.hasSubmittedForm = true;
if (validateInput()) {
BooksService.createBook(vm.book)
.then(function(success) {
if (success) returnToBookList();
});
}
};
vm.cancelSave = function() {
returnToBookList();
};
}
angular.module('book-inventory-app.add')
.controller('AddBookController', AddBookController);
})(angular);