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
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);
|