diff -r e165f7647ae3 -r c7c424e9eed5 client/app/books/books_controller.js --- a/client/app/books/books_controller.js Wed May 27 19:01:25 2015 +0200 +++ b/client/app/books/books_controller.js Wed May 27 19:02:43 2015 +0200 @@ -1,142 +1,142 @@ (function(){ - 'use strict'; - - angular.module('ammicoBooks',['ngRoute', 'ui.sortable']) - .controller('booksCtrl', function($scope, $location, $modal, ammicoApi){ - $scope.books = ammicoApi.listBooks.query({format:'json'}, function(data){ - data.sort(function (a, b) { - return a.date < b.date; - }); - - for (var i = 0; i < data.length; i++) { - if (data[i].idArticle === null){ - data[i].slides = ammicoApi.booksSlides.query({idBook:data[i].id, format:'json'}); - } - } - }); - - $scope.toggleModal = function (index) { + 'use strict'; - var modalInstance = $modal.open({ - templateUrl: 'books/add_book_modal.html', - controller: 'ModalAddBookCtrl', - size: 'sm' - }); - - modalInstance.result.then(function (idBook) { - var newSlide = { - book: idBook, - idInventory: $scope.results.hits[index].metas_dict.inventorynumber - }; - ammicoApi.listSlides.save(newSlide); - }); - }; - - $scope.searchSubmit = function(){ - $location.path('/search/' + $scope.q); - }; + angular.module('ammicoBooks',['ngRoute', 'ui.sortable']) + .controller('booksCtrl', function($scope, $location, $modal, Book, Slide){ + $scope.editable = true; + + $scope.books = Book.query({format:'json'}, function(data){ + data.sort(function (a, b) { + return a.date < b.date; + }); - $scope.addBook = function (idParent) { - $modal.open({ - templateUrl: 'books/add_modal.html', - controller: 'ModalAddBookCtrl' - }).result.then(function (title) { - ammicoApi.listBooks.save({idParent:idParent, title: title}, function(newBook){ - $scope.books.push(newBook); - }); - }); - }; - $scope.deleteItem = function(book){ - if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ - ammicoApi.book.delete({idBook: book.id}, function(){ - $scope.books.splice($scope.books.indexOf(book), 1); - }, - function(error) { - if (error.status === 404){ - $scope.books.splice($scope.books.indexOf(book), 1); - } - }); - } - }; - }) + for (var i = 0; i < data.length; i++) { + if (data[i].idArticle === null){ + data[i].slides = Slide.query({idBook:data[i].id, limit: 5, format:'json'}); + } + } + }); + + $scope.toggleModal = function (index) { - .controller('bookCtrl', function($scope, $location, ammicoApi, $routeParams, $modal) { - $scope.parentBook = ammicoApi.book.get({idBook:$routeParams.idBook, format:'json'}, function(data){ - data.slides = ammicoApi.booksSlides.query({idBook: data.id, format:'json'}, function(data){ - data.sort(function (a, b) { - return a.orderIndex > b.orderIndex; - }); - }); - }); - - $scope.toggleFavorite = function (index) { + var modalInstance = $modal.open({ + templateUrl: 'books/add_book_modal.html', + controller: 'ModalAddBookCtrl', + size: 'sm' + }); - $scope.parentBook.slides[index].favorite = !$scope.parentBook.slides[index].favorite; - $scope.parentBook.slides[index].$save({format:'json'}); - //$scope.slide.$save({idSlide:$scope.slide.id, format:'json'}); + modalInstance.result.then(function (idBook) { + var newSlide = { + book: idBook, + idInventory: $scope.results.hits[index].metas_dict.inventorynumber + }; + Slide.save(newSlide); + }); }; - $scope.toggleModal = function (index) { - - var modalInstance = $modal.open({ - templateUrl: 'books/add_book_modal.html', - controller: 'ModalAddBookCtrl', - size: 'sm' - }); + $scope.addBook = function (idParent) { + $modal.open({ + templateUrl: 'books/add_modal.html', + controller: 'ModalAddBookCtrl' + }).result.then(function (title) { + Book.save({idParent:idParent, title: title}, function(newBook){ + $scope.books.push(newBook); + }); + }); + }; + $scope.deleteItem = function(item){ + if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ + Slide.delete({idSlide: item.id}, function(){ + $scope.book.slides.splice($scope.book.slides.indexOf(item), 1); + }, + function(error) { + if (error.status === 404){ + $scope.book.slides.splice($scope.book.indexOf(item), 1); + } + }); + } + }; + $scope.deleteBook = function(book){ + if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ + Book.delete({idBook: book.id}, function(){ + $scope.books.splice($scope.books.indexOf(book), 1); + }, + function(error) { + if (error.status === 404){ + $scope.books.splice($scope.books.indexOf(book), 1); + } + }); + } + }; + }) - modalInstance.result.then(function (idBook) { - var newSlide = { - book: idBook, - idInventory: $scope.results.hits[index].metas_dict.inventorynumber - }; - ammicoApi.listSlides.save(newSlide); - }); - }; + .controller('bookCtrl', function($scope, $location, $routeParams, $modal, Book, Slide, Order) { + $scope.editable = true; + + $scope.book = Book.get({idBook:$routeParams.idBook, format:'json'}, function(data){ + data.slides = Slide.query({idBook: data.id, format:'json'}, function(data){ + data.sort(function (a, b) { + return a.orderIndex > b.orderIndex; + }); + }); + }); - $scope.sortableOptions = { - stop: function() { - var order = $scope.parentBook.slides.map(function(i){ - return i.id; - }); - ammicoApi.order.save({idBook:$routeParams.idBook}, {order: order}); - } - }; + $scope.toggleModal = function (index) { - $scope.deleteItem = function(i){ - if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ - $scope.parentBook.slides[i].$delete(); - //if(0<=i && i<$scope.slides.length){ -// ammicoApi.slide.delete({idSlide: $scope.slides[i].id}, function(){ -// $scope.slides.splice(i, 1); -// }, -// function(error) { -// if (error.status === 404){ -// $scope.slides.splice(i, 1); -// } -// }); -// } - } - }; - }) - .controller('ModalAddBookCtrl', function ($scope, ammicoApi, $modalInstance) { + var modalInstance = $modal.open({ + templateUrl: 'books/add_book_modal.html', + controller: 'ModalAddBookCtrl', + size: 'sm' + }); + + modalInstance.result.then(function (idBook) { + var newSlide = { + book: idBook, + idInventory: $scope.results.hits[index].metas_dict.inventorynumber + }; + Slide.save(newSlide); + }); + }; - $scope.add = function(){ - $modalInstance.close($scope.title); -// ammicoApi.listBooks.save({title: $scope.title}, function(newBook){ -// }); - }; - $scope.cancel = function () { - $modalInstance.dismiss('cancel'); - } - ; - $scope.books = ammicoApi.listBooks.query({format:'json'}); - - $scope.addToBook = function(idBook){ - $modalInstance.close(idBook); - }; + $scope.sortableOptions = { + stop: function() { + var order = $scope.book.slides.map(function(i){ + return i.id; + }); + Order.save({idBook:$routeParams.idBook}, {order: order}); + } + }; + + $scope.deleteItem = function(item){ + if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ + Slide.delete({idSlide: item.id}, function(){ + $scope.book.slides.splice($scope.book.slides.indexOf(item), 1); + }, + function(error) { + if (error.status === 404){ + $scope.book.slides.splice($scope.book.indexOf(item), 1); + } + }); + } + }; + }) + .controller('ModalAddBookCtrl', function ($scope, Book, $modalInstance) { - $scope.cancel = function () { - $modalInstance.dismiss('cancel'); - }; - }); + $scope.add = function(){ + $modalInstance.close($scope.title); + }; + $scope.cancel = function () { + $modalInstance.dismiss('cancel'); + } + ; + $scope.books = Book.query({format:'json'}); + + $scope.addToBook = function(idBook){ + $modalInstance.close(idBook); + }; + + $scope.cancel = function () { + $modalInstance.dismiss('cancel'); + }; + }); })();