Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1. //function constructor for the Donut Shops
  2. var DonutShop = function(location, minimum, maximum, average){
  3. this.locations = location;
  4. this.minimum = minimum;
  5. this.maximum = maximum;
  6. this.average = average;
  7. this.donutsHourlyTotal = [];
  8. this.donutsDailyTotal = [];
  9. this.randomCust = function(minimum, maximum){
  10. return Math.floor(Math.random() * (this.maximum - this.minimum) + this.minimum);
  11. };
  12.  
  13. //calculates donuts per hour
  14. this.donutsHourly = function(){
  15. for(var i = 0; i < 11; i++){
  16. var hourly = Math.round(this.average * this.randomCust());
  17. this.donutsHourlyTotal.push(hourly);
  18. };
  19. };
  20. this.donutsHourly();
  21.  
  22. //Use reduce to get daily totals
  23. this.donutsDaily = function(){
  24. var total = this.donutsHourlyTotal.reduce(function(total, number){
  25. return total + number;
  26. });
  27. this.donutsDailyTotal.push(total);
  28. //old way
  29. //var total = 0;
  30. //for(var i = 0; i < this.donutsHourlyTotal.length; i++)
  31. //total += this.donutsHourlyTotal[i];
  32. //this.donutsDailyTotal.push(total);
  33. };
  34. this.donutsDaily();
  35. };
  36.  
  37. //renders each shop to the page.
  38. DonutShop.prototype.render = function(){
  39. var tr = document.createElement('tr');
  40. tr.id = this.locations;
  41. var tbody = document.getElementById('tBody');
  42.  
  43. //function to render location to page
  44. function locations(location){
  45. var td = document.createElement('td');
  46. td.innerHTML = location;
  47. // console.log(location);
  48. tr.appendChild(td);
  49. };
  50. locations(this.locations);
  51.  
  52. //function to render donuts per hour
  53. function hourlyDonuts(donutsHourlyTotal){
  54. for(var i = 0; i < donutsHourlyTotal.length; i++){
  55. var td = document.createElement('td');
  56. td.innerHTML = donutsHourlyTotal[i];
  57. tr.appendChild(td);
  58. }
  59. };
  60. hourlyDonuts(this.donutsHourlyTotal);
  61.  
  62. //function to render daily totals
  63. function dailyDonuts(donutsDailyTotal){
  64. var td = document.createElement('td');
  65. td.innerHTML = donutsDailyTotal;
  66. tr.appendChild(td);
  67. tbody.appendChild(tr);
  68.  
  69. };
  70. dailyDonuts(this.donutsDailyTotal);
  71.  
  72. };
  73.  
  74. // DonutShop.prototype.update = function(){
  75. // var update = document.getElementById(donutShopArr[i].locations);
  76. // for(var i = 0; )
  77. // }
  78.  
  79. //use objects to store shop data.
  80. var downtown = new DonutShop('Downtown', 8, 43, 4.5);
  81. var ballard = new DonutShop('Ballard', 8, 58, 3.75);
  82. var capitolHill = new DonutShop('Capitol Hill', 4, 37, 2);
  83. var wedgewood = new DonutShop('Wedgewood', 2, 28, 1.25);
  84. var southLakeUnion = new DonutShop('South Lake Union', 9, 23, 6.33);
  85. //an array to hold the donut shops.
  86. var donutShopArr = [];
  87. donutShopArr.push(downtown);
  88. donutShopArr.push(ballard);
  89. donutShopArr.push(capitolHill);
  90. donutShopArr.push(wedgewood);
  91. donutShopArr.push(southLakeUnion);
  92. console.log(donutShopArr);
  93.  
  94. downtown.render();
  95. ballard.render();
  96. capitolHill.render();
  97. wedgewood.render();
  98. southLakeUnion.render();
  99.  
  100. //popuate a dropdown list
  101. function selectLocation(){
  102. var select = document.getElementById('update');
  103. for(var i = 0; i < donutShopArr.length; i++){
  104. var opt = donutShopArr[i].locations;
  105. var el = document.createElement('option');
  106. el.textContent = opt;
  107. el.value = opt;
  108. select.appendChild(el);
  109. }
  110. };
  111. selectLocation();
  112.  
  113. function addOrUpdateLocation(event){
  114. event.preventDefault();
  115. //variables to store input from the submit form
  116. var shop = document.getElementById('shop').value;
  117. var minC = document.getElementById('minCPH').value;
  118. var maxC = document.getElementById('maxCPH').value;
  119. var avrg = document.getElementById('avrg').value;
  120.  
  121. var update = document.getElementById('update').value;
  122. console.log(update);
  123.  
  124. if (update !== 'blank') {
  125. for (var i = 0; i < donutShopArr.length; i++) {
  126. var updateTable = document.getElementById(donutShopArr[i].locations);
  127. console.log(updateTable);
  128. if(updateTable.hasChildNodes) {
  129. var children = updateTable.childNodes;
  130. for (var i = 1; i < 11; i++) {
  131. //children[i].value = this.donutsHourlyTotal[i];
  132. this.donutsHourly;
  133. this.donutsDaily;
  134. donutShopArr[i].minimum = minC;
  135. donutShopArr[i].maximum = maxC;
  136. donutShopArr[i].average = avrg;
  137. console.log(children[i]);
  138. console.log(this.donutsHourlyTotal);
  139. }
  140. children[12].value = this.donutsDailyTotal[i];
  141. }
  142. if (update === donutShopArr[i].locations) {
  143. //console.log(donutShopArr[0]);
  144. }
  145. //console.log(donutShopArr[i].maximum);
  146. }
  147. }
  148. else {
  149. var newShop = new DonutShop(shop, Number(minC), Number(maxC), Number(avrg));
  150. //console.log(avrg);
  151. donutShopArr.push(newShop);
  152.  
  153. //renders a new shop to the page
  154. //newShop.donutsHourly();
  155. //newShop.donutsDaily();
  156. newShop.render();
  157. //renderChart();
  158. }
  159.  
  160. //resets the input fields
  161. var newForm = document.getElementById('newForm');
  162. newForm.reset();
  163. };
  164.  
  165. //event to submit a new location to the table
  166. var submitBtn = document.getElementById('submitButton');
  167. submitBtn.addEventListener('click', addOrUpdateLocation);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement