refactor the ammicoApi service and put it into a specific module (ammicoCommon). Use factory to serve the resources
--- 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');
+ };
+ });
})();
--- a/client/app/components/app_service.js Wed May 27 19:01:25 2015 +0200
+++ b/client/app/components/app_service.js Wed May 27 19:02:43 2015 +0200
@@ -2,15 +2,106 @@
(function(){
'use strict';
- angular.module('ammicoModels', ['ngRoute'])
+ angular.module('ammicoCommon', ['ngRoute'])
.factory('Book', function($resource, context) {
- var books = $resource(context.urls.ammicoUrl+'/books/:idBook', {idBook:'@id'});
- //return $resource('/api/posts/:id');
+ var books = $resource(context.urls.ammicoUrl+'/books/:idBook', {idBook:'@id'}, {update: { method: 'PUT'}});
return books;
})
.factory('Slide', function($resource, context) {
- return $resource(context.urls.ammicoUrl+'/slides/:idSlide', {idSlide:'@id'});
- //return $resource('/api/posts/:id');
+ var slides = $resource(context.urls.ammicoUrl+'/slides/:idSlide', {idSlide:'@id'}, {update: { method: 'PUT'}});
+
+ angular.extend(slides.prototype, {
+
+ toggleFavorite: function () {
+ this.favorite = !this.favorite;
+ this.$update();
+ },
+ remove: function (array) {
+ var _this = this;
+ if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){
+ this.$delete(function(){
+ if (array){
+ array.splice(array.indexOf(_this), 1);
+ }
+ },
+ function(error) {
+ if (error.status === 404 && array){
+ array.splice(array.indexOf(_this), 1);
+ }
+ });
+ }
+ }
+ });
+
+ return slides;
+ })
+ .factory('Order', function($resource, context) {
+ return $resource(context.urls.ammicoUrl+'/books/:idBook/order', {idBook:'@id'});
+ })
+ .service('Utils', function($resource, context, $sce) {
+ this.sanitizeUrls = function(data){
+ data.details.audio = $sce.trustAsResourceUrl(data.details.audio);
+ data.details.video = $sce.trustAsResourceUrl(data.details.video);
+ data.audio = $sce.trustAsResourceUrl(data.audio);
+ data.video = $sce.trustAsResourceUrl(data.video);
+ console.log(data);
+ return data;
+ };
+ })
+ .service('authApi', function($resource, context) {
+ this.login = $resource(context.urls.ammicoUrl+'/auth/api-token-auth');
+ this.logout = $resource(context.urls.ammicoUrl+'/auth/logout');
+ this.user = $resource(context.urls.ammicoUrl+'/auth/user');
+ this.test = $resource(context.urls.ammicoUrl+'/auth/auth');
+ })
+ .service('searchApi', function($resource, context) {
+ this.searchResource = function(params){
+ return $resource(context.urls.searchUrl,
+ {
+ callback: 'JSON_CALLBACK'
+ },
+ {
+ getJsonp: {
+ method: 'JSONP',
+ params: params,
+ isArray: false,
+ transformResponse: function(data){
+ // Transform meta list into meta dict
+ var nb = data.hits.length;
+ for(var i=0;i<nb;i++){
+ var nb_metas = data.hits[i].metas.length;
+ data.hits[i].metas_dict = {};
+ for(var j=0;j<nb_metas;j++){
+ if(typeof data.hits[i].metas[j].images==='undefined'){
+ data.hits[i].metas_dict[data.hits[i].metas[j].name] = data.hits[i].metas[j].value;
+ }
+ else{
+ data.hits[i].metas_dict.images = data.hits[i].metas[j].images[0].value;
+ }
+ }
+ }
+ return data;
+ }
+ }
+ });
+ };
+ })
+ .directive('myCustomer', function(){
+ return {
+ link: function(scope, elem, attr) {
+ elem.bind('error', function() {
+ elem.parents('li.item').addClass('no-img');
+ elem.remove();
+ });
+ elem.on('load', function() {
+ var w = $(this).width(),
+ h = $(this).height();
+ if (w > h){
+ $(this).addClass('img-landscape');
+ }
+ });
+ }
+ }
});
})();
--- a/client/app/my_visit/my_visit_controller.js Wed May 27 19:01:25 2015 +0200
+++ b/client/app/my_visit/my_visit_controller.js Wed May 27 19:02:43 2015 +0200
@@ -1,67 +1,45 @@
(function(){
- 'use strict';
-
- angular.module('ammicoMyvisit',['ngRoute', 'ui.sortable'])
- .controller('my_visitCtrl', function($scope, $location, $modal, ammicoApi){
+ 'use strict';
- //get list book
- $scope.books = ammicoApi.listBooks.query({format:'json'}, function(data){
- data.sort(function (a, b) {
- return a.date < b.date;
- });
+ angular.module('ammicoMyvisit',['ngRoute', 'ui.sortable'])
+ .controller('my_visitCtrl', function($scope, $location, $modal, Book, Slide){
- for (var i = 0; i < data.length; i++) {
- if (data[i].idArticle){
- data[i].slides = ammicoApi.booksSlides.query({idBook:data[i].id, format:'json'});
- }
- }
- });
+ //get list book
+ $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: 'my_visit/add_modal_my_visit.html',
- controller: 'ModalAddMyvisitCtrl'
- }).result.then(function (title) {
- //add book with the title written in the modal
- ammicoApi.listBooks.save({idParent:idParent, title: title}, function(newBook){
- $scope.books.push(newBook);
- });
- });
- };
-
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].idArticle){
+ data[i].slides = Slide.query({idBook:data[i].id, format:'json'});
+ }
+ }
+ });
- $scope.share = function (idParent) {
- $modal.open({
- templateUrl: 'my_visit/share_modal_my_visit.html',
- controller: 'ModalAddMyvisitCtrl'
- }).result.then(function (title) {
- //add book with the title written in the modal
- ammicoApi.slidesBook.query({idParent:idParent, title: title}, function(newBook){
- $scope.books(newBook);
- });
- });
- };
-
-
- })
-
- .controller('ModalAddMyvisitCtrl', function ($scope, ammicoApi, $modalInstance) {
+ $scope.addBook = function (idParent) {
+ $modal.open({
+ templateUrl: 'my_visit/add_modal_my_visit.html',
+ controller: 'ModalAddMyvisitCtrl'
+ }).result.then(function (title) {
+ //add book with the title written in the modal
+ Book.save({idParent:idParent, title: title}, function(newBook){
+ $scope.books.push(newBook);
+ });
+ });
+ };
+ })
+ .controller('ModalAddMyvisitCtrl', function ($scope, $modalInstance) {
- $scope.add = function(){
- $modalInstance.close($scope.title);
-// ammicoApi.listBooks.save({title: $scope.title}, function(newBook){
-// });
- };
- $scope.cancel = function () {
- $modalInstance.dismiss('cancel');
- };
- $scope.share = function () {
- $modalInstance($scope.book);
- };
- });
-
-
-
-
+ $scope.add = function(){
+ $modalInstance.close($scope.title);
+ };
+ $scope.cancel = function () {
+ $modalInstance.dismiss('cancel');
+ };
+ $scope.share = function () {
+ $modalInstance($scope.book);
+ };
+ });
})();
--- a/client/app/slides/slides_controller.js Wed May 27 19:01:25 2015 +0200
+++ b/client/app/slides/slides_controller.js Wed May 27 19:02:43 2015 +0200
@@ -1,36 +1,36 @@
(function(){
- 'use strict';
+ 'use strict';
- angular.module('ammicoSlides',['ngResource', 'ngRoute'])
- .controller('slidesCtrl', function($scope, $routeParams, ammicoApi){
-
- $scope.slide = ammicoApi.slide.get({idSlide:$routeParams.idSlide, format:'json'}, function(data){
- data = ammicoApi.sanitizeUrls(data);
- });
+ angular.module('ammicoSlides',['ngResource', 'ngRoute'])
+ .controller('slidesCtrl', function($scope, $routeParams, Slide, Utils){
+
+ $scope.slide = Slide.get({idSlide:$routeParams.idSlide, format:'json'}, function(data){
+ data = Utils.sanitizeUrls(data);
+ });
- })
- .directive('slideEditor', function() {
- return {
- restrict: 'AE',
- replace: true,
- scope: false,
- templateUrl: 'slides/data_editor.html',
- controller: function($scope){
- $scope.slidesave = function(){
- if(typeof $scope.slide.tags === 'string'){
- $scope.slide.tags = $scope.slide.tags.split(',');
- for (var i = $scope.slide.tags.length - 1; i >= 0; i--) {
- $scope.slide.tags[i] = $scope.slide.tags[i].trim();
- }
- }
- $scope.slide.editMode = false;
- $scope.slide.$save({idSlide:$scope.slide.id, format:'json'});
- };
- $scope.doubleClick = function(){
- $scope.slide.editMode = true;
- };
- }
- };
- });
+ })
+ .directive('slideEditor', function() {
+ return {
+ restrict: 'AE',
+ replace: true,
+ scope: false,
+ templateUrl: 'slides/data_editor.html',
+ controller: function($scope){
+ $scope.slidesave = function(){
+ if(typeof $scope.slide.tags === 'string'){
+ $scope.slide.tags = $scope.slide.tags.split(',');
+ for (var i = $scope.slide.tags.length - 1; i >= 0; i--) {
+ $scope.slide.tags[i] = $scope.slide.tags[i].trim();
+ }
+ }
+ $scope.slide.editMode = false;
+ $scope.slide.$update({format:'json'});
+ };
+ $scope.doubleClick = function(){
+ $scope.slide.editMode = true;
+ };
+ }
+ };
+ });
})();
--- a/client/app/slideshow/slideshow_controller.js Wed May 27 19:01:25 2015 +0200
+++ b/client/app/slideshow/slideshow_controller.js Wed May 27 19:02:43 2015 +0200
@@ -1,11 +1,13 @@
(function(){
- 'use strict';
+ 'use strict';
- angular.module('ammicoSlideshow',['ngResource', 'ngRoute', 'ui.bootstrap'])
- .controller('slideshowCtrl', function($scope, ammicoApi, $routeParams){
- $scope.slideshow = ammicoApi.booksSlides.query({idBook:$routeParams.iSlide, format:'json'}, function(data){
- data = ammicoApi.sanitizeUrls(data);
- });
- $scope.book = ammicoApi.book.get({idBook:$routeParams.iSlide, format:'json'});
- });
+ angular.module('ammicoSlideshow',['ngResource', 'ngRoute', 'ui.bootstrap'])
+ .controller('slideshowCtrl', function($scope, $routeParams, Slide, Book, Utils){
+ $scope.slideshow = Slide.query({idBook:$routeParams.iSlide, format:'json'}, function(data){
+ data.forEach(function(slide){
+ slide = Utils.sanitizeUrls(slide);
+ });
+ });
+ $scope.book = Book.get({idBook:$routeParams.iSlide, format:'json'});
+ });
})();
--- a/client/app/visites/visites_controller.js Wed May 27 19:01:25 2015 +0200
+++ b/client/app/visites/visites_controller.js Wed May 27 19:02:43 2015 +0200
@@ -1,146 +1,101 @@
(function(){
- 'use strict';
-
- angular.module('ammicoVisites',['ngRoute', 'ui.sortable'])
- .controller('visitesCtrl', function($scope, $location, $modal, ammicoApi){
+ 'use strict';
- //get list book
- $scope.books = ammicoApi.listBooks.query({format:'json'}, function(data){
- data.sort(function (a, b) {
- return a.date < b.date;
- });
+ angular.module('ammicoVisites',['ngRoute', 'ui.sortable'])
+ .controller('visitesCtrl', function($scope, $location, $modal, Book, Slide){
- for (var i = 0; i < data.length; i++) {
- if (data[i].idArticle){
- data[i].slides = ammicoApi.booksSlides.query({idBook:data[i].id, format:'json'});
- }
- }
- });
-
- $scope.toggleModal = function (index) {
-
- var modalInstance = $modal.open({
- templateUrl: 'visites/add_book_modal.html',
- controller: 'ModalAddVisitesCtrl',
- size: 'sm'
- });
+ //get list book
+ $scope.books = Book.query({format:'json'}, function(data){
+ data.sort(function (a, b) {
+ return a.date < b.date;
+ });
- modalInstance.result.then(function (idBook) {
- var newSlide = {
- book: idBook,
- idInventory: $scope.results.hits[index].metas_dict.inventorynumber
- };
- ammicoApi.listSlides.save(newSlide);
- });
- };
+ for (var i = 0; i < data.length; i++) {
+ if (data[i].idArticle){
+ data[i].slides = Slide.query({idBook:data[i].id, limit: 5, format:'json'});
+ }
+ }
+ });
+ $scope.toggleModal = function (index) {
- $scope.addBook = function (idParent) {
- $modal.open({
- templateUrl: 'visites/add_modal_visites.html',
- controller: 'ModalAddVisitesCtrl'
- }).result.then(function (title) {
- //add book with the title written in the modal
- ammicoApi.listBooks.save({idParent:idParent, title: title}, function(newBook){
- $scope.books.push(newBook);
- });
- });
- };
-
- })
+ var modalInstance = $modal.open({
+ templateUrl: 'visites/add_book_modal.html',
+ controller: 'ModalAddVisitesCtrl',
+ size: 'sm'
+ });
-
- .controller('visiteCtrl', function($scope, ammicoApi, $routeParams, $modal) {
- //get the slides of a book
- $scope.slides = ammicoApi.booksSlides.query({idBook:$routeParams.idVisit, format:'json'}, function(data){
- data.sort(function (a, b) {
- return a.orderIndex > b.orderIndex;
- });
-
- });
+ 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: 'visites/add_book_modal.html',
- controller: 'ModalAddVisitesCtrl',
- size: 'sm'
- });
-
- modalInstance.result.then(function (idBook) {
- var newSlide = {
- book: idBook,
- idInventory: $scope.results.hits[index].metas_dict.inventorynumber
- };
- ammicoApi.listSlides.save(newSlide);
- });
- };
-
- $scope.addBook = function (idParent) {
- $modal.open({
- templateUrl: 'visites/add_modal_visites.html',
- controller: 'ModalAddVisitesCtrl'
- }).result.then(function (title) {
- //add book with the title written in the modal
- ammicoApi.listBooks.save({idParent:idParent, title: title}, function(newBook){
- $scope.books.push(newBook);
- });
- });
- };
-
- $scope.sortableOptions = {
- stop: function() {
- var order = $scope.slides.map(function(i){
- return i.id;
- });
- ammicoApi.order.save({idBook:$routeParams.idVisit}, {order: order});
- }
- };
-
+ $scope.addBook = function (idParent) {
+ $modal.open({
+ templateUrl: 'visites/add_modal_visites.html',
+ controller: 'ModalAddVisitesCtrl'
+ }).result.then(function (title) {
+ //add book with the title written in the modal
+ Book.save({idParent:idParent, title: title}, function(newBook){
+ $scope.books.push(newBook);
+ });
+ });
+ };
+
+ })
- $scope.deleteItem = function(i){
- if(0<=i && i<$scope.slides.length){
- if(window.confirm('Êtes-vous sûr(e) de vouloir effacer cet élément ? Cette action est irrémédiable.')){
- //delete a slide
- 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('visiteCtrl', function($scope, $routeParams, $modal, Book, Slide) {
+ //get the slides of a book
+
+ $scope.visit = Book.get({idBook:$routeParams.idVisit, 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.addBook = function (idParent) {
+ $modal.open({
+ templateUrl: 'visites/add_modal_visites.html',
+ controller: 'ModalAddVisitesCtrl'
+ }).result.then(function (title) {
+ //add book with the title written in the modal
+ Book.save({idParent:idParent, title: title}, function(newBook){
+ $scope.books.push(newBook);
+ });
+ });
+ };
+ })
- .controller('ModalAddVisitesCtrl', function($scope, ammicoApi, $modalInstance) {
+ .controller('ModalAddVisitesCtrl', function($scope, $modalInstance, Book) {
- $scope.add = function(){
- $modalInstance.close($scope.title);
-// ammicoApi.listBooks.save({title: $scope.title}, function(newBook){
-// });
- };
- $scope.cancel = function () {
- $modalInstance.dismiss('cancel');
- };
+ $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.books = Book.query({format:'json'});
+
+ $scope.addToBook = function(idBook){
+ $modalInstance.close(idBook);
+ };
- $scope.cancel = function () {
- $modalInstance.dismiss('cancel');
- };
+ $scope.cancel = function () {
+ $modalInstance.dismiss('cancel');
+ };
-
- });
+
+ });
})();