client/app/slideshow/slideshow_controller.js
changeset 2 36ccc573af9a
parent 1 74bbdd739878
child 4 28208a0ad8b9
--- a/client/app/slideshow/slideshow_controller.js	Thu Oct 02 13:24:57 2014 +0200
+++ b/client/app/slideshow/slideshow_controller.js	Fri Oct 03 10:38:50 2014 +0200
@@ -10,24 +10,45 @@
         });
     })
     .service('slideshowApi', function($resource, context) {
-      console.log('5',this);
+      console.log('slideshow 5',this);
       this.slideshow = $resource(context.urls.slideshowUrl);
     })
     .service('slideshowModel', function(slideshowApi, context) {
-      console.log('6',this);
+      console.log('slideshow 6',this);
       if(typeof context.slideshow === 'undefined') {
-          console.log('6-1');
+          console.log('slideshow 6-1');
           this.slideshow = slideshowApi.slideshow.get();
       }
       else {
-          console.log('6-2');
+          console.log('slideshow 6-2');
           this.slideshow = new slideshowApi.slideshow(context.slideshow);
       }
     })
-    .controller('slideshowCtrl', function($scope, $location, $routeParams, slideshowModel){
-      console.log('7',$scope, $location, slideshowModel);
+    .controller('slideshowCtrl', function($scope, $filter, $location, $routeParams, $timeout, searchApi, slideshowModel){
+      console.log('slideshow 7', $filter, $routeParams, searchApi, slideshowModel);
       $scope.slideshow = slideshowModel.slideshow;
       $scope.iSlide = parseInt($routeParams.iSlide) || 0;
+      if(typeof $routeParams.searched !== 'undefined'){
+          var a = $routeParams.searched.split(',');
+          var q = a[0], i = parseInt(a[1]);
+          if(a.length===2 && !isNaN(i)){
+              searchApi.searchResource({q:q, of: 'json', synthesis: 'false', nresults:'50', callback: 'JSON_CALLBACK'}).$promise.then(
+                  //success
+                  function( data ){
+                      var hit = data.hits[i];
+                      $scope.slideshow.images.push({url: $filter('meta')(hit.metas, 'url'), 
+                                                    title: $filter('meta')(hit.metas, 'name'), 
+                                                    description: $filter('meta')(hit.metas, 'description'), tags: [], user_title:'', user_description:''});
+                      // timeout because
+                      $timeout(function(){$scope.slideshow.images[$scope.slideshow.images.length-1].active = true;}, 200);
+                  },
+                  //error
+                  function( error ){
+                      alert('Erreur avec la requĂȘte (dans slideshow)', error);
+                  }
+              );
+          }
+      }
 
       $scope.save = function(){
           console.log('8 call save POST',$scope.slideshow);
@@ -43,7 +64,6 @@
           );
       };
     })
-    //.directive('slideEditor', function(context) {
     .directive('slideEditor', function() {
       return {
           restrict: 'AE',