Skip to content

Commit

Permalink
Factories implemented :)
Browse files Browse the repository at this point in the history
  • Loading branch information
Gabe Rogan committed Feb 6, 2017
1 parent 874e6c7 commit 5fa1614
Show file tree
Hide file tree
Showing 8 changed files with 117 additions and 79 deletions.
20 changes: 19 additions & 1 deletion app/app.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
var app = angular.module('app', ['ngRoute']);
var app = angular.module('app', ['ngRoute', 'ngResource']);

// Root controllers in /root/ folder
// Page controllers in /pages/[your-page] folder

// Factories
app.factory('Foods', function($resource) {
return $resource('assets/json/foods.json');
});

// Just does a PUT request when u call Food.update
app.factory('Food', function ($resource) {
// {food: '@id'} means replace :food with $scope.foodCRUD.id
var data = $resource('http://foodbank.develop.digitalmediauconn.org/api/food/:food', {food: '@id'}, {
update:{ method:'PUT' }
});
return data;
});

app.factory('Categories', function($resource) {
return $resource('assets/json/categories.json');
});
18 changes: 3 additions & 15 deletions app/app.route.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,9 @@ app.config( function ($routeProvider, $locationProvider) {
})

// Sandbox Demo
.when('/news', {
templateUrl: 'app/sandbox/news.html',
controller: 'NewsCtrl'
})

// Sandbox Demo
.when('/competitions', {
templateUrl: 'app/sandbox/competition.html',
controller: 'CompetitionCtrl'
})

// Sandbox Demo
.when('/todo', {
templateUrl: 'app/sandbox/todo.html',
controller: 'TodoCtrl'
.when('/rest', {
templateUrl: 'app/sandbox/rest.html',
controller: 'RestCtrl'
})

// 404 Not Found
Expand Down
31 changes: 12 additions & 19 deletions app/pages/food/ctrl.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
app.controller('FoodCtrl', ['$scope', '$http', 'Foods', 'Food', 'Categories', function ($scope, $http, Foods, Food, Categories) {
$scope.page.title = 'Food';
$scope.page.id = 'food';

Expand All @@ -14,6 +14,8 @@ app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.categorySelection = { "all": true };
$scope.searchTerm = "";



// Initialize CRUD modes
$scope.editMode = false;
$scope.createMode = false;
Expand All @@ -22,44 +24,42 @@ app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.foodCRUD = {};

// GET foods
$http.get("assets/json/foods.json")
.then(function(response) {
$scope.foods = response.data.data;
Foods.get({}, function (data) {
$scope.foods = data.data;
});

// GET list of categories
$http.get("assets/json/categories.json")
.then(function(response) {
var categories = response.data.data;
Categories.get({}, function (data) {
var categories = data.data;
categories.forEach(function(cat){
$scope.categories[cat.id] = cat;
});
$scope.categories.forEach(function(c){
$scope.categorySelection[c.id] = false;
});

// Preset category filters
$scope.resetCategorySelection();
});



// Set category filters to false
$scope.resetCategorySelection = function () {
$scope.categories.forEach(function(c){
$scope.categorySelection[c.id] = false;
});

}

// Category filter function
$scope.categoryFilter = function (food) {
return ( $scope.categorySelection[food.category_id] | $scope.categorySelection["all"] );
}

// Rank filter function
$scope.rankFilter = function (food) {
return ( $scope.rankSelection[food.rank_id] );
}



// CRUD: edit food
$scope.edit = function (foodToEdit) {
$scope.editMode = true;
Expand All @@ -86,14 +86,7 @@ app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
// CRUD: POST
$scope.submit = function () {
$scope.cancel(); // hide modal

$http.post('request-url', $scope.foodCRUD)
.success(function (data) {
// console.log(data);
})
.error(function (data) {
// console.log(data);
});
Food.update($scope.foodCRUD);
};


Expand Down
1 change: 1 addition & 0 deletions app/root/_header.kit
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<!-- Angular & jQuery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-resource.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.min.js"></script>
<!-- Materialize
https://cdn.rawgit.com/Dogfalo/materialize/master/dist/js/materialize.min.js
Expand Down
17 changes: 17 additions & 0 deletions app/sandbox/ctrl.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
app.controller('RestCtrl', ['$scope', 'Foods', function ($scope, Foods) {
$scope.page.title = 'REST';
$scope.page.id = 'rest';
$scope.page.blackNav = false;

Foods.get({}, function (data) {
$scope.foods = data.data;
});
}]);








app.controller('NewsCtrl', ['$scope', function ($scope) {
$scope.page.title = 'News';
$scope.page.id = 'news';
Expand Down
4 changes: 4 additions & 0 deletions app/sandbox/rest.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<!-- REST Template -->
<div ng-repeat="(key, value) in foods">
{{key}} : {{value}}
</div>
104 changes: 60 additions & 44 deletions assets/js/bundle.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,26 @@
var app = angular.module('app', ['ngRoute']);
var app = angular.module('app', ['ngRoute', 'ngResource']);

// Root controllers in /root/ folder
// Page controllers in /pages/[your-page] folder

// Factories
app.factory('Foods', function($resource) {
return $resource('assets/json/foods.json');
});

// Just does a PUT request when u call Food.update
app.factory('Food', function ($resource) {
// {food: '@id'} means replace :food with $scope.foodCRUD.id
var data = $resource('http://foodbank.develop.digitalmediauconn.org/api/food/:food', {food: '@id'}, {
update:{ method:'PUT' }
});
return data;
});

app.factory('Categories', function($resource) {
return $resource('assets/json/categories.json');
});

app.config( function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
Expand All @@ -26,21 +44,9 @@ app.config( function ($routeProvider, $locationProvider) {
})

// Sandbox Demo
.when('/news', {
templateUrl: 'app/sandbox/news.html',
controller: 'NewsCtrl'
})

// Sandbox Demo
.when('/competitions', {
templateUrl: 'app/sandbox/competition.html',
controller: 'CompetitionCtrl'
})

// Sandbox Demo
.when('/todo', {
templateUrl: 'app/sandbox/todo.html',
controller: 'TodoCtrl'
.when('/rest', {
templateUrl: 'app/sandbox/rest.html',
controller: 'RestCtrl'
})

// 404 Not Found
Expand Down Expand Up @@ -71,6 +77,23 @@ app.controller('root', ['$scope', '$location', function ($scope, $location) {
};
}]);

app.controller('RestCtrl', ['$scope', 'Foods', function ($scope, Foods) {
$scope.page.title = 'REST';
$scope.page.id = 'rest';
$scope.page.blackNav = false;

Foods.get({}, function (data) {
$scope.foods = data.data;
});
}]);








app.controller('NewsCtrl', ['$scope', function ($scope) {
$scope.page.title = 'News';
$scope.page.id = 'news';
Expand Down Expand Up @@ -99,15 +122,6 @@ app.controller('EmailController', ['$scope', function ($scope) {
$scope.email = "rogangabe@gmail.com";
}]);


app.controller('CategoryCtrl', ['$scope', function ($scope) {
$scope.page.title = 'Categories';
$scope.page.id = 'cat';
$scope.page.yourVar = "globalStuff";

$scope.var2 = "localStuff";
}]);

app.controller('404Ctrl', ['$scope', function ($scope) {
$scope.page.title = '404';
$scope.page.id = '404';
Expand All @@ -116,7 +130,7 @@ app.controller('404Ctrl', ['$scope', function ($scope) {
$scope.var2 = "localStuff";
}]);

app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
app.controller('FoodCtrl', ['$scope', '$http', 'Foods', 'Food', 'Categories', function ($scope, $http, Foods, Food, Categories) {
$scope.page.title = 'Food';
$scope.page.id = 'food';

Expand All @@ -132,6 +146,8 @@ app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.categorySelection = { "all": true };
$scope.searchTerm = "";



// Initialize CRUD modes
$scope.editMode = false;
$scope.createMode = false;
Expand All @@ -140,44 +156,42 @@ app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.foodCRUD = {};

// GET foods
$http.get("assets/json/foods.json")
.then(function(response) {
$scope.foods = response.data.data;
Foods.get({}, function (data) {
$scope.foods = data.data;
});

// GET list of categories
$http.get("assets/json/categories.json")
.then(function(response) {
var categories = response.data.data;
Categories.get({}, function (data) {
var categories = data.data;
categories.forEach(function(cat){
$scope.categories[cat.id] = cat;
});
$scope.categories.forEach(function(c){
$scope.categorySelection[c.id] = false;
});

// Preset category filters
$scope.resetCategorySelection();
});



// Set category filters to false
$scope.resetCategorySelection = function () {
$scope.categories.forEach(function(c){
$scope.categorySelection[c.id] = false;
});

}

// Category filter function
$scope.categoryFilter = function (food) {
return ( $scope.categorySelection[food.category_id] | $scope.categorySelection["all"] );
}

// Rank filter function
$scope.rankFilter = function (food) {
return ( $scope.rankSelection[food.rank_id] );
}



// CRUD: edit food
$scope.edit = function (foodToEdit) {
$scope.editMode = true;
Expand All @@ -204,20 +218,22 @@ app.controller('FoodCtrl', ['$scope', '$http', function ($scope, $http) {
// CRUD: POST
$scope.submit = function () {
$scope.cancel(); // hide modal

$http.post('request-url', $scope.foodCRUD)
.success(function (data) {
// console.log(data);
})
.error(function (data) {
// console.log(data);
});
Food.update($scope.foodCRUD);
};


}]);


app.controller('CategoryCtrl', ['$scope', function ($scope) {
$scope.page.title = 'Categories';
$scope.page.id = 'cat';
$scope.page.yourVar = "globalStuff";

$scope.var2 = "localStuff";
}]);


app.controller('LoginCtrl', ['$scope', 'loginService', function ($scope, loginService) {
$scope.page.title = 'Login';
$scope.page.id = 'login';
Expand Down
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<!-- Angular & jQuery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-resource.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.min.js"></script>
<!-- Materialize
https://cdn.rawgit.com/Dogfalo/materialize/master/dist/js/materialize.min.js
Expand Down

0 comments on commit 5fa1614

Please sign in to comment.