Skip to content

Commit

Permalink
rule / category CRUD update
Browse files Browse the repository at this point in the history
  • Loading branch information
Timothy Morris committed Feb 13, 2017
1 parent 040d636 commit 19bc894
Show file tree
Hide file tree
Showing 5 changed files with 149 additions and 20 deletions.
57 changes: 55 additions & 2 deletions app/pages/categories/ctrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,14 @@ function GetNutrients() {

function GetOperations() {
return [{name: 'lt', symbol: 'Less Than'},
{name: 'ltoe', symbol: 'Less Than or Equal'},
{name: 'lte', symbol: 'Less Than or Equal'},
{name: 'gt', symbol: 'Greater Than'},
{name: 'gtoe', symbol: 'Greater Than or Equal'}];
{name: 'gte', symbol: 'Greater Than or Equal'},
{name: 'e', symbol: 'Equal To'}];
}

function SaveData(categories) {
console.log('save');
}

app.controller('CategoryCtrl', ['$scope', function ($scope) {
Expand All @@ -62,4 +67,52 @@ app.controller('CategoryCtrl', ['$scope', function ($scope) {
$scope.ranks = GetRanks();
$scope.nutrients = GetNutrients();
$scope.operations = GetOperations();

$scope.getCategoryIndexFromName = function(categoryName) {
for(var i = 0; i < $scope.categories.length; i++) {
if($scope.categories[i].name == categoryName) {
return i;
}
}
return -1;
};

$scope.addRule = function(categoryName) {
var categoryIndex = $scope.getCategoryIndexFromName(categoryName);
if(categoryIndex != -1) {
$scope.categories[categoryIndex].rules.push({ nutrient: 'sugar',
rule_id: '0',
ranks: [ { name: 'green', operation: 'lt', value: 5 },
{ name: 'yellow', operation: 'gt', value: 2 } ] });
}

};

$scope.removeRule = function(category, rule) {
for(var i = 0; i < category.rules.length; i++) {
if(category.rules[i] == rule) {
category.rules.splice(i, 1);
}
}
};

$scope.addCategory = function() {
$scope.categories.push({name: 'New Category', rules: []})
};

$scope.renameCategory = function(category, name) {
console.log(name);
};

$scope.removeCategory = function(category) {
for(var i = 0; i < $scope.categories.length; i++) {
if($scope.categories[i] == category) {
$scope.categories.splice(i, 1);
}
}
};

$scope.saveData = function() {
SaveData($scope.categories);
};
}]);
4 changes: 4 additions & 0 deletions app/pages/categories/style.styl
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@
.collapsible-header {
text-transform:capitalize;
}

select {
display:block!important;
}
30 changes: 23 additions & 7 deletions app/pages/categories/view.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,43 +6,55 @@
<div class="collapsible-header">{{ category.name }}</div>
<div class="collapsible-body">
<div class="row">
<div class="col s12">
<div class="input-field col s6">
<input placeholder="Placeholder" id="first_name" type="text" class="validate" ng-model="category.name">
<label for="first_name">Category Name</label>
</div>
<button class="btn grey lighten-2" style="float:right" ng-click="removeCategory(category)">Delete Category</button>
</div>
<div class="col s12">
<table>
<table class="categoryTable">
<thead>
<tr>
<th>Nutrient</th>
<th ng-repeat="rank in ranks">{{rank}} condition</th>
<th></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rule in category.rules">
<td>
<div class="input-field col s12">
<select name="{{category.name}}-rule-{{rule.rule_id}}-nutrient" id="{{category.name}}-rule-{{rule.rule_id}}-nutrient">
<select>
<option ng-repeat="nutrient in nutrients" value="{{nutrient}}" ng-selected="nutrient==rule.nutrient">{{nutrient}}</option>
</select>
</div>
</td>
<td ng-repeat="rank in rule.ranks">
<div class="input-field col s6">
<select name="{{category.name}}-rule-{{rule.rule_id}}-rank-{{rank.name}}">
<select>
<option ng-repeat="operation in operations" value="{{operation.name}}" ng-selected="operation.name==rank.operation">{{operation.symbol}}</option>
</select>
</div>
<div class="input-field col s6">
<input type="number" name="{{category.name}}-rule-{{rule.rule_id}}-value" value="{{rank.value}}">
<input type="number" value="{{rank.value | number}}">
</div>
</td>
<td><button class="btn red" ng-click="removeRule(category, rule)"><i class="material-icons">delete</i></button></td>
</tr>
</tbody>
</table>
<button ng-click="addRule(category.name)" class="btn">Add Rule</button>
</div>
</div>
</div>
</li>
</ul>
<button class="btn blue" ng-click="addCategory()" onclick="UpdateTextFields()">Add Category</button>
<button class="btn" ng-click="saveData()">Save</button>
</div>
<div class="col s12 m3">
<!--<div class="col s12 m3">
<div class="card grey darken-3">
<div class="card-content white-text">
<span class="card-title">Filter</span>
Expand All @@ -59,14 +71,18 @@
</div>
</div>
</div>
</div>
</div>-->
</div>
</div>

<script>
function UpdateTextFields() {
setTimeout(function() {
Materialize.updateTextFields();
}, 100);
}
$(document).ready(function(){
$('.collapsible').collapsible();
$('select').material_select();
Materialize.updateTextFields();
});
</script>
3 changes: 3 additions & 0 deletions assets/css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ ul.tabs .tab a:hover {
.collapsible-header {
text-transform: capitalize;
}
select {
display: block !important;
}
.food-search {
padding-top: 0.5em;
}
Expand Down
75 changes: 64 additions & 11 deletions assets/js/bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,15 +108,6 @@ app.controller('404Ctrl', ['$scope', function ($scope) {
}]);


app.controller('FoodCtrl', ['$scope', function ($scope) {
$scope.page.title = 'Food';
$scope.page.id = 'food';
$scope.page.yourVar = "globalStuff";

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



function GetCategories() {
return [
Expand Down Expand Up @@ -167,9 +158,14 @@ function GetNutrients() {

function GetOperations() {
return [{name: 'lt', symbol: 'Less Than'},
{name: 'ltoe', symbol: 'Less Than or Equal'},
{name: 'lte', symbol: 'Less Than or Equal'},
{name: 'gt', symbol: 'Greater Than'},
{name: 'gtoe', symbol: 'Greater Than or Equal'}];
{name: 'gte', symbol: 'Greater Than or Equal'},
{name: 'e', symbol: 'Equal To'}];
}

function SaveData(categories) {
console.log('save');
}

app.controller('CategoryCtrl', ['$scope', function ($scope) {
Expand All @@ -181,6 +177,63 @@ app.controller('CategoryCtrl', ['$scope', function ($scope) {
$scope.ranks = GetRanks();
$scope.nutrients = GetNutrients();
$scope.operations = GetOperations();

$scope.getCategoryIndexFromName = function(categoryName) {
for(var i = 0; i < $scope.categories.length; i++) {
if($scope.categories[i].name == categoryName) {
return i;
}
}
return -1;
};

$scope.addRule = function(categoryName) {
var categoryIndex = $scope.getCategoryIndexFromName(categoryName);
if(categoryIndex != -1) {
$scope.categories[categoryIndex].rules.push({ nutrient: 'sugar',
rule_id: '0',
ranks: [ { name: 'green', operation: 'lt', value: 5 },
{ name: 'yellow', operation: 'gt', value: 2 } ] });
}

};

$scope.removeRule = function(category, rule) {
for(var i = 0; i < category.rules.length; i++) {
if(category.rules[i] == rule) {
category.rules.splice(i, 1);
}
}
};

$scope.addCategory = function() {
$scope.categories.push({name: 'New Category', rules: []})
};

$scope.renameCategory = function(category, name) {
console.log(name);
};

$scope.removeCategory = function(category) {
for(var i = 0; i < $scope.categories.length; i++) {
if($scope.categories[i] == category) {
$scope.categories.splice(i, 1);
}
}
};

$scope.saveData = function() {
SaveData($scope.categories);
};
}]);


app.controller('FoodCtrl', ['$scope', function ($scope) {
$scope.page.title = 'Food';
$scope.page.id = 'food';
$scope.page.yourVar = "globalStuff";

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


Expand Down

0 comments on commit 19bc894

Please sign in to comment.