/
global.js
105 lines (90 loc) · 2.17 KB
/
global.js
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
var myApp = angular.module("myApp", []);
myApp.factory("Workout", function($rootScope) {
var Workout = {};
if (typeof window.localStorage != "undefined") {
Workout.exercises = JSON.parse(localStorage.getItem("workout-stats"));
}
if (Workout.exercises === null || Workout.exercises === undefined) {
Workout.exercises = [
{
name: "Press",
amount: 130
},
{
name: "Upright Row",
amount: 105
},
{
name: "Curl",
amount: 80,
bar: 20
},
{
name: "Bench Press",
amount: 190
},
{
name: "Flyes",
amount: 80
},
{
name: "Incline Bench Press",
amount: 125
},
{
name: "Deadlift",
amount: 200
},
{
name: "Squat",
amount: 200
}
];
}
return Workout;
});
var plateDenominations = [45, 35, 25, 10, 5, 2.5];
function WorkoutCtrl(Workout) {
var workoutCtrl = this;
workoutCtrl.workout = Workout;
workoutCtrl.subtractTenPercent = function(exercise) {
exercise.amount = 5 * Math.round(exercise.amount * .9 / 5);
workoutCtrl.change();
};
workoutCtrl.addFive = function(exercise) {
exercise.amount = 5 * Math.round((exercise.amount + 5) / 5);
workoutCtrl.change();
};
workoutCtrl.calculatePlates = function(exercise) {
var plates = [],
bar = exercise.bar === undefined ? 45 : exercise.bar,
amount = (exercise.amount - bar) / 2; // how much weight do we put on one side
if (bar > 0) {
plateDenominations.forEach(function(denomination) {
while (amount >= denomination) {
plates.push(denomination);
amount -= denomination;
}
});
} else {
plates.push(amount);
}
return plates.join(" + ");
};
workoutCtrl.change = function() {
if (typeof window.localStorage != "undefined") {
localStorage.setItem("workout-stats", JSON.stringify(workoutCtrl.workout.exercises));
}
};
workoutCtrl.remove = function(exercise) {
workoutCtrl.workout.exercises = workoutCtrl.workout.exercises.filter(function(obj) {
return obj.name !== exercise.name;
});
workoutCtrl.change();
};
workoutCtrl.addNew = function() {
workoutCtrl.workout.exercises.push({name: "", amount: 0});
workoutCtrl.change();
};
};
myApp.controller("WorkoutCtrl", WorkoutCtrl);