client/app/books/books_controller.js
changeset 99 c7c424e9eed5
parent 91 f7a844a9079e
child 146 c6fa8ee3f562
--- 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');
+        };
+    });
 })();