client/app/search/search_controller.js
author cavaliet
Thu, 02 Oct 2014 13:24:57 +0200
changeset 1 74bbdd739878
child 2 36ccc573af9a
permissions -rw-r--r--
views, path, search...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     1
(function(){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     2
  'use strict';
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     3
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     4
  angular.module('ammicoSearch',['ngResource', 'ngRoute'])
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     5
    .config(function ($routeProvider) {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     6
      $routeProvider
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     7
        .when('/', {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     8
          templateUrl: 'search/search.html',
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
     9
          controller: 'searchCtrl'
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    10
        });
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    11
    })
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    12
    .service('searchApi', function($resource, context) {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    13
        console.log('search 4',$resource, context);
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    14
        this.searchResource = function(params){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    15
            return $resource(context.urls.searchUrl,  
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    16
                {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    17
                    callback: 'JSON_CALLBACK'
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    18
                },
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    19
                {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    20
                    getJsonp: {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    21
                        method: 'JSONP',
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    22
                        params: params,
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    23
                        isArray: false
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    24
                    }
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    25
                });
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    26
        };
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    27
        
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    28
    })
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    29
    .service('searchModel', function(searchApi) {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    30
        console.log('search 5');
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    31
        this.searchResults = function(params){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    32
            return searchApi.searchResource(params).getJsonp();
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    33
        };
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    34
    })
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    35
    .controller('searchCtrl', function($scope, $location, $routeParams, searchModel){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    36
      console.log('search 6',$scope, $location, $routeParams);
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    37
      $scope.q = $routeParams.q || '';
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    38
      searchModel.searchResults({q:$scope.q, of: 'json', synthesis: 'false', callback: 'JSON_CALLBACK'}).$promise.then(
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    39
          //success
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    40
          function( data ){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    41
              console.log('SUCCESS !', data);
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    42
              $scope.results = data;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    43
          },
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    44
          //error
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    45
          function( error ){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    46
              console.log('ERROR !', error);
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    47
          }
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    48
      );
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    49
      //window.myres = res;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    50
      //$scope.results = res;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    51
      //console.log('search 6-blabla', res);
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    52
      console.log('search 7', $scope.q);
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    53
      
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    54
      //$scope.search = searchModel.search;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    55
      // query = ?q=violon&of=json&synthesis=false
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    56
    })
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    57
    .filter('meta', function() {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    58
        return function(input, metaName) {
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    59
            var nb = input.length, i = 0, found = false;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    60
            while(found===false && i<nb){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    61
                if(input[i].name===metaName){
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    62
                    found = true;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    63
                    return input[i].value;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    64
                }
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    65
                i++;
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    66
            }
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    67
        };
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    68
    });
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    69
74bbdd739878 views, path, search...
cavaliet
parents:
diff changeset
    70
})();