-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
122 lines (111 loc) · 3.98 KB
/
Copy pathapp.js
File metadata and controls
122 lines (111 loc) · 3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
(function(){
'use strict';
var app = angular.module('NarrowItDownApp', []);
app.controller('NarrowItDownController',NarrowItDownController);
app.service('MenuSearchService',MenuSearchService);
app.constant('baseurl', "https://davids-restaurant.herokuapp.com/menu_items.json");
app.directive('foundItems',FoundItems);
function FoundItems(){
var ddo = {
templateUrl: 'listitems.html',
restrict : 'AE',
scope:{
list:'<list',
onRemove : '&'
}
};
return ddo;
}
NarrowItDownController.$inject = ['MenuSearchService','$scope'];
function NarrowItDownController(MenuSearchService,$scope){
var list = this;
list.getItem = function(){
var item = $scope.itemToSearch;
return item;
};
list.searchItem = function(){
var searchTerm = list.getItem();
if(searchTerm == null || searchTerm == undefined )
{
$scope.message = "Nothing found";
}
else
{
if(searchTerm.length > 0)
{
var promise = MenuSearchService.getItems( );
promise
.then(function (response){
var foundItems = Object.values(response.data);
list.found = MenuSearchService.getMatchedMenuItems(foundItems,searchTerm);
if (list.found == null)
{
$scope.message = "Nothing found";
searchTerm = undefined ;
}
else
{
$scope.message = null;
searchTerm = undefined ;
}
})
.catch (function (error){
$scope.message = "Nothing found";
})
}
else
{
$scope.message = "Nothing found";
list.found = null;
}
}
};
list.removeItem = function(itemIndex){
MenuSearchService.removeItem(itemIndex);
};
}
MenuSearchService.$inject = ['$http','baseurl'];
function MenuSearchService($http,baseurl){
var service = this;
var found =[];
service.getMatchedMenuItems= function(arrayItems,searchTerm){
if(found.length > 0)
{
found.length = 0;
}
for (var j = 0; j < arrayItems[0].length;++j )
{
var arrObj = arrayItems[0][j];
//console.log(arrObj);
if(arrObj["description"].toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1)
{
var newObj = {
name: arrObj["name"],
short_name :arrObj["short_name"],
description: arrObj["description"]
};
// console.log(newObj);
found.push(newObj);
}
}
if(found.length > 0)
{
return found;
}
else
{
return null;
}
};
service.getItems=function(){
var responseJson = $http({
method: "GET",
url: baseurl
});
return responseJson;
};
service.removeItem = function (itemIndex) {
found.splice(itemIndex, 1);
};
}
})();