--- 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');
+ }
+ });
+ }
+ }
});
})();