1 (function(){ |
1 (function(){ |
2 'use strict'; |
2 'use strict'; |
3 |
3 |
4 angular.module('ammicoBooks',['ngRoute', 'ui.sortable']) |
4 angular.module('ammicoBooks',['ngRoute', 'ui.sortable']) |
5 .controller('booksCtrl', function($scope, $location, $modal, ammicoApi){ |
5 .controller('booksCtrl', function($scope, $location, $modal, Book, Slide){ |
6 $scope.books = ammicoApi.listBooks.query({format:'json'}, function(data){ |
6 $scope.editable = true; |
7 data.sort(function (a, b) { |
7 |
8 return a.date < b.date; |
8 $scope.books = Book.query({format:'json'}, function(data){ |
9 }); |
9 data.sort(function (a, b) { |
|
10 return a.date < b.date; |
|
11 }); |
10 |
12 |
11 for (var i = 0; i < data.length; i++) { |
13 for (var i = 0; i < data.length; i++) { |
12 if (data[i].idArticle === null){ |
14 if (data[i].idArticle === null){ |
13 data[i].slides = ammicoApi.booksSlides.query({idBook:data[i].id, format:'json'}); |
15 data[i].slides = Slide.query({idBook:data[i].id, limit: 5, format:'json'}); |
14 } |
16 } |
15 } |
17 } |
16 }); |
18 }); |
17 |
19 |
18 $scope.toggleModal = function (index) { |
20 $scope.toggleModal = function (index) { |
19 |
21 |
20 var modalInstance = $modal.open({ |
22 var modalInstance = $modal.open({ |
21 templateUrl: 'books/add_book_modal.html', |
23 templateUrl: 'books/add_book_modal.html', |
22 controller: 'ModalAddBookCtrl', |
24 controller: 'ModalAddBookCtrl', |
23 size: 'sm' |
25 size: 'sm' |
24 }); |
26 }); |
25 |
27 |
26 modalInstance.result.then(function (idBook) { |
28 modalInstance.result.then(function (idBook) { |
27 var newSlide = { |
29 var newSlide = { |
28 book: idBook, |
30 book: idBook, |
29 idInventory: $scope.results.hits[index].metas_dict.inventorynumber |
31 idInventory: $scope.results.hits[index].metas_dict.inventorynumber |
30 }; |
32 }; |
31 ammicoApi.listSlides.save(newSlide); |
33 Slide.save(newSlide); |
32 }); |
34 }); |
33 }; |
|
34 |
|
35 $scope.searchSubmit = function(){ |
|
36 $location.path('/search/' + $scope.q); |
|
37 }; |
|
38 |
|
39 $scope.addBook = function (idParent) { |
|
40 $modal.open({ |
|
41 templateUrl: 'books/add_modal.html', |
|
42 controller: 'ModalAddBookCtrl' |
|
43 }).result.then(function (title) { |
|
44 ammicoApi.listBooks.save({idParent:idParent, title: title}, function(newBook){ |
|
45 $scope.books.push(newBook); |
|
46 }); |
|
47 }); |
|
48 }; |
|
49 $scope.deleteItem = function(book){ |
|
50 if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ |
|
51 ammicoApi.book.delete({idBook: book.id}, function(){ |
|
52 $scope.books.splice($scope.books.indexOf(book), 1); |
|
53 }, |
|
54 function(error) { |
|
55 if (error.status === 404){ |
|
56 $scope.books.splice($scope.books.indexOf(book), 1); |
|
57 } |
|
58 }); |
|
59 } |
|
60 }; |
|
61 }) |
|
62 |
|
63 .controller('bookCtrl', function($scope, $location, ammicoApi, $routeParams, $modal) { |
|
64 $scope.parentBook = ammicoApi.book.get({idBook:$routeParams.idBook, format:'json'}, function(data){ |
|
65 data.slides = ammicoApi.booksSlides.query({idBook: data.id, format:'json'}, function(data){ |
|
66 data.sort(function (a, b) { |
|
67 return a.orderIndex > b.orderIndex; |
|
68 }); |
|
69 }); |
|
70 }); |
|
71 |
|
72 $scope.toggleFavorite = function (index) { |
|
73 |
|
74 $scope.parentBook.slides[index].favorite = !$scope.parentBook.slides[index].favorite; |
|
75 $scope.parentBook.slides[index].$save({format:'json'}); |
|
76 //$scope.slide.$save({idSlide:$scope.slide.id, format:'json'}); |
|
77 }; |
35 }; |
78 |
36 |
79 $scope.toggleModal = function (index) { |
37 $scope.addBook = function (idParent) { |
|
38 $modal.open({ |
|
39 templateUrl: 'books/add_modal.html', |
|
40 controller: 'ModalAddBookCtrl' |
|
41 }).result.then(function (title) { |
|
42 Book.save({idParent:idParent, title: title}, function(newBook){ |
|
43 $scope.books.push(newBook); |
|
44 }); |
|
45 }); |
|
46 }; |
|
47 $scope.deleteItem = function(item){ |
|
48 if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ |
|
49 Slide.delete({idSlide: item.id}, function(){ |
|
50 $scope.book.slides.splice($scope.book.slides.indexOf(item), 1); |
|
51 }, |
|
52 function(error) { |
|
53 if (error.status === 404){ |
|
54 $scope.book.slides.splice($scope.book.indexOf(item), 1); |
|
55 } |
|
56 }); |
|
57 } |
|
58 }; |
|
59 $scope.deleteBook = function(book){ |
|
60 if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ |
|
61 Book.delete({idBook: book.id}, function(){ |
|
62 $scope.books.splice($scope.books.indexOf(book), 1); |
|
63 }, |
|
64 function(error) { |
|
65 if (error.status === 404){ |
|
66 $scope.books.splice($scope.books.indexOf(book), 1); |
|
67 } |
|
68 }); |
|
69 } |
|
70 }; |
|
71 }) |
80 |
72 |
81 var modalInstance = $modal.open({ |
73 .controller('bookCtrl', function($scope, $location, $routeParams, $modal, Book, Slide, Order) { |
82 templateUrl: 'books/add_book_modal.html', |
74 $scope.editable = true; |
83 controller: 'ModalAddBookCtrl', |
75 |
84 size: 'sm' |
76 $scope.book = Book.get({idBook:$routeParams.idBook, format:'json'}, function(data){ |
85 }); |
77 data.slides = Slide.query({idBook: data.id, format:'json'}, function(data){ |
|
78 data.sort(function (a, b) { |
|
79 return a.orderIndex > b.orderIndex; |
|
80 }); |
|
81 }); |
|
82 }); |
86 |
83 |
87 modalInstance.result.then(function (idBook) { |
84 $scope.toggleModal = function (index) { |
88 var newSlide = { |
|
89 book: idBook, |
|
90 idInventory: $scope.results.hits[index].metas_dict.inventorynumber |
|
91 }; |
|
92 ammicoApi.listSlides.save(newSlide); |
|
93 }); |
|
94 }; |
|
95 |
85 |
96 $scope.sortableOptions = { |
86 var modalInstance = $modal.open({ |
97 stop: function() { |
87 templateUrl: 'books/add_book_modal.html', |
98 var order = $scope.parentBook.slides.map(function(i){ |
88 controller: 'ModalAddBookCtrl', |
99 return i.id; |
89 size: 'sm' |
100 }); |
90 }); |
101 ammicoApi.order.save({idBook:$routeParams.idBook}, {order: order}); |
|
102 } |
|
103 }; |
|
104 |
91 |
105 $scope.deleteItem = function(i){ |
92 modalInstance.result.then(function (idBook) { |
106 if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ |
93 var newSlide = { |
107 $scope.parentBook.slides[i].$delete(); |
94 book: idBook, |
108 //if(0<=i && i<$scope.slides.length){ |
95 idInventory: $scope.results.hits[index].metas_dict.inventorynumber |
109 // ammicoApi.slide.delete({idSlide: $scope.slides[i].id}, function(){ |
96 }; |
110 // $scope.slides.splice(i, 1); |
97 Slide.save(newSlide); |
111 // }, |
98 }); |
112 // function(error) { |
99 }; |
113 // if (error.status === 404){ |
|
114 // $scope.slides.splice(i, 1); |
|
115 // } |
|
116 // }); |
|
117 // } |
|
118 } |
|
119 }; |
|
120 }) |
|
121 .controller('ModalAddBookCtrl', function ($scope, ammicoApi, $modalInstance) { |
|
122 |
100 |
123 $scope.add = function(){ |
101 $scope.sortableOptions = { |
124 $modalInstance.close($scope.title); |
102 stop: function() { |
125 // ammicoApi.listBooks.save({title: $scope.title}, function(newBook){ |
103 var order = $scope.book.slides.map(function(i){ |
126 // }); |
104 return i.id; |
127 }; |
105 }); |
128 $scope.cancel = function () { |
106 Order.save({idBook:$routeParams.idBook}, {order: order}); |
129 $modalInstance.dismiss('cancel'); |
107 } |
130 } |
108 }; |
131 ; |
109 |
132 $scope.books = ammicoApi.listBooks.query({format:'json'}); |
110 $scope.deleteItem = function(item){ |
133 |
111 if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){ |
134 $scope.addToBook = function(idBook){ |
112 Slide.delete({idSlide: item.id}, function(){ |
135 $modalInstance.close(idBook); |
113 $scope.book.slides.splice($scope.book.slides.indexOf(item), 1); |
136 }; |
114 }, |
|
115 function(error) { |
|
116 if (error.status === 404){ |
|
117 $scope.book.slides.splice($scope.book.indexOf(item), 1); |
|
118 } |
|
119 }); |
|
120 } |
|
121 }; |
|
122 }) |
|
123 .controller('ModalAddBookCtrl', function ($scope, Book, $modalInstance) { |
137 |
124 |
138 $scope.cancel = function () { |
125 $scope.add = function(){ |
139 $modalInstance.dismiss('cancel'); |
126 $modalInstance.close($scope.title); |
140 }; |
127 }; |
141 }); |
128 $scope.cancel = function () { |
|
129 $modalInstance.dismiss('cancel'); |
|
130 } |
|
131 ; |
|
132 $scope.books = Book.query({format:'json'}); |
|
133 |
|
134 $scope.addToBook = function(idBook){ |
|
135 $modalInstance.close(idBook); |
|
136 }; |
|
137 |
|
138 $scope.cancel = function () { |
|
139 $modalInstance.dismiss('cancel'); |
|
140 }; |
|
141 }); |
142 })(); |
142 })(); |