Guest User

Untitled

a guest
May 21st, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.85 KB | None | 0 0
  1. var jsonData;
  2. var data = [];
  3. var returnData;
  4. var clickCountLeft = 0;
  5. var clickCountRight = 0;
  6.  
  7. $("#arrow-left").on("click", function() {
  8.  
  9. clickCountLeft++;
  10. console.log(clickCountLeft);
  11. //Clear();
  12.  
  13. $("#panel-1").toggleClass('side-panel__hidden');
  14. $("#arrow-left").toggleClass('arrow-left__hidden');
  15. $("#panel-2").toggleClass("main-pannel__to-side");
  16. $('#panel-2').toggleClass("shadow-right");
  17. $('#field-main').toggleClass("field-main__to-side");
  18. $("path").toggleClass("graph-wide");
  19.  
  20. if (clickCountLeft % 2 == 0) {
  21. Clear();
  22. $("svg").attr("width","700");
  23. Draw();
  24. } else {
  25. Clear();
  26. $("svg").attr("width","900");
  27. drawWide();
  28. }
  29.  
  30. if ((clickCountLeft % 2 != 0) && (clickCountRight % 2 != 0) && (clickCountRight > 0) && (("#panel-2:has(main-pannel__wide)")) ) {
  31. Clear();
  32. $("svg").attr("width","1100");
  33. drawFull();
  34. }
  35.  
  36.  
  37.  
  38. if ($('#panel-3').hasClass("side-panel__hidden")) {
  39.  
  40. $('#panel-2').toggleClass("main-pannel__wide");
  41. $('#panel-2').removeClass("main-pannel__to-side");
  42. $("#field-main").toggleClass("field-main__wide");
  43. $("#field-main").removeClass("field-main__to-side");
  44.  
  45. }
  46.  
  47. // if ((clickCountLeft % 2 != 0) && (clickCountRight % 2 != 0)) {
  48. //
  49. // $('#panel-2').addClass("main-pannel__wide");
  50. // $("#field-main").addClass("field-main__wide");
  51. //
  52. // }
  53.  
  54.  
  55.  
  56.  
  57.  
  58. })
  59.  
  60. $("#arrow-right").on("click", function() {
  61.  
  62. clickCountRight++;
  63. console.log(clickCountRight)
  64.  
  65. $("#panel-3").toggleClass('side-panel__hidden');
  66. $("#arrow-right").toggleClass('arrow-right__hidden');
  67. $("#panel-2").toggleClass("main-pannel__to-side");
  68. $('#panel-2').toggleClass("shadow-left");
  69. $('#field-main').toggleClass("field-main__to-side");
  70. $("path").toggleClass("graph-wide");
  71. $("svg").attr("width","900");
  72.  
  73. if (clickCountRight % 2 == 0) {
  74. Clear();
  75. $("svg").attr("width","700");
  76. Draw();
  77. } else {
  78. Clear();
  79. $("svg").attr("width","900");
  80. drawWide();
  81. }
  82.  
  83. if ($('#panel-1').hasClass("side-panel__hidden")) {
  84.  
  85. $('#panel-2').toggleClass("main-pannel__wide");
  86. $('#panel-2').removeClass("main-pannel__to-side");
  87. $("#field-main").toggleClass("field-main__wide");
  88. $("#field-main").removeClass("field-main__to-side");
  89.  
  90. }
  91.  
  92. if ((clickCountLeft % 2 != 0) && (clickCountRight % 2 != 0) && (clickCountLeft > 0) && (("#panel-2:has(main-pannel__wide)")) ) {
  93. Clear();
  94. $("svg").attr("width","1100");
  95. drawFull();
  96. }
  97.  
  98. // if ((clickCountLeft % 2 != 0) && (clickCountRight % 2 != 0)) {
  99. // $('#panel-2').removeClass("main-pannel__wide");
  100. // $('#panel-2').toggleClass("main-pannel__to-side");
  101. // $("#field-main").removeClass("field-main__wide");
  102. // $("#field-main").toggleClass("field-main__to-side");
  103. // $("#panel-3").toggleClass('side-panel__hidden');
  104. // }
  105.  
  106. })
  107.  
  108.  
  109. var input = document.getElementById('input');
  110. var values = document.querySelector('.values-field');
  111.  
  112. $('input').keyup(function(e){
  113. if (e.keyCode === 13) {
  114.  
  115. var newValue = document.createElement("div"),
  116. removeButton = document.createElement("div"),
  117. time = new Date(),
  118. dateString = ' ',
  119. valueNumber = Number(input.value);
  120.  
  121. dateString += time.getMinutes() +':';
  122. dateString += time.getSeconds() +':';
  123. dateString += time.getMilliseconds();
  124.  
  125. data.push({"date": dateString, "value" : valueNumber });
  126.  
  127. removeButton.className = "remove-button";
  128. removeButton.setAttribute("data-index",data.length - 1);
  129. removeButton.innerHTML = "Remove";
  130.  
  131. newValue.className = "new-value";
  132. newValue.innerHTML = dateString + "<b>" + input.value + "</b>";
  133. newValue.appendChild(removeButton);
  134. values.appendChild(newValue);
  135.  
  136. getData();
  137.  
  138. }
  139. })
  140.  
  141. $('.values-field').on('click',".remove-button", function(){
  142. var arrIndex = $(this).attr("data-index");
  143. data.splice(arrIndex,1);
  144. newData.splice(arrIndex,1);
  145. length--;
  146. $(this).parent().remove();
  147. $(".dots:eq(arrIndex)").remove();
  148. $(".dots-value:eq(arrIndex)").remove();
  149. Clear();
  150. Draw();
  151. });
  152.  
  153. $("#input").on('focus', function() {
  154. $(".change-input").addClass("change-input--visible");
  155. })
  156.  
  157. $(".inc").on('click', function() {
  158. input.value++;
  159. })
  160.  
  161. $(".dec").on('click', function() {
  162. input.value--;
  163. })
  164.  
  165. var margin = {top: 30, right: 20, bottom: 30, left: 50},
  166. width = 600 - margin.left - margin.right,
  167. height = 600 - margin.top - margin.bottom;
  168.  
  169. var parseDate = d3.time.format(" %M:%S:%L").parse,
  170. x = d3.time.scale().range([0, width]),
  171. y = d3.scale.linear().range([height, 0]);
  172.  
  173. x.range([0, 500]);
  174.  
  175. var newData = [];
  176.  
  177. formatDate = d3.time.format("%M:%S:%L")
  178.  
  179. function getData() {
  180.  
  181. Clear();
  182.  
  183. data[length].date = parseDate(data[length].date);
  184. data[length].value = +data[length].value;
  185. length++;
  186.  
  187. x.domain(d3.extent(data, function(data) { return data.date; }));
  188. y.domain([0, d3.max(data, function(data) { return data.value; })]);
  189.  
  190. for (var i=0;i<data.length;i++)
  191. {
  192. newData[i] = {};
  193. newData[i]['value'] = data[i]['value'];
  194. newData[i]['date'] = data[i]['date'];
  195. }
  196. //положим элементы массива в localStorage
  197. jsonData = JSON.stringify(data);
  198. localStorage.setItem("jsonData",jsonData);
  199. returnData = JSON.parse(localStorage.getItem("jsonData"));
  200.  
  201. Draw();
  202.  
  203. }
  204.  
  205. var field = document.getElementById("field-main");
  206.  
  207. var svg = d3.select(field)
  208. .append("svg")
  209. .attr("width", "700")
  210. .attr("height", height + margin.top + margin.bottom)
  211. .append("g")
  212. .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
  213.  
  214. function Draw() {
  215.  
  216. var valueline = d3.svg.line()
  217.  
  218. .x(function(data) { return x(data.date); })
  219. .y(function(data) { return y(data.value); });
  220.  
  221. svg.append("path")
  222. .attr("class", "line")
  223. .attr("d", valueline(newData));
  224.  
  225. svg.selectAll("dot")
  226. .data(data)
  227. .enter()
  228. .append("circle")
  229. .attr("class","dots")
  230. .attr("r", 0)
  231. .attr("cx", function(data) { return x(data.date); })
  232. .attr("cy", function(data) { return y(data.value); });
  233.  
  234. svg.selectAll("dot")
  235. .data(data)
  236. .enter()
  237. .append("text")
  238. .attr("font-size","15px")
  239. .attr("class","dots-value")
  240. .attr("dx", function(data) { return x(data.date); })
  241. .attr("dy", function(data) { return y(data.value); })
  242. .text(function(data) { return data.value });
  243. // localStorage.setItem("svg", JSON.stringify(svg));
  244. }
  245.  
  246. function drawWide() {
  247. var valueline = d3.svg.line()
  248.  
  249. .x(function(data) { return x(data.date)*1.5; })
  250. .y(function(data) { return y(data.value); });
  251.  
  252. svg.append("path")
  253. .attr("class", "line")
  254. .attr("d", valueline(newData));
  255.  
  256. svg.selectAll("dot")
  257. .data(data)
  258. .enter()
  259. .append("circle")
  260. .attr("class","dots")
  261. .attr("r", 0)
  262. .attr("cx", function(data) { return x(data.date)*1.5; })
  263. .attr("cy", function(data) { return y(data.value); });
  264.  
  265. svg.selectAll("dot")
  266. .data(data)
  267. .enter()
  268. .append("text")
  269. .attr("font-size","15px")
  270. .attr("class","dots-value")
  271. .attr("dx", function(data) { return x(data.date)*1.5; })
  272. .attr("dy", function(data) { return y(data.value); })
  273. .text(function(data) { return data.value });
  274. }
  275.  
  276. function drawFull() {
  277. var valueline = d3.svg.line()
  278.  
  279. .x(function(data) { return x(data.date)*2; })
  280. .y(function(data) { return y(data.value); });
  281.  
  282. svg.append("path")
  283. .attr("class", "line")
  284. .attr("d", valueline(newData));
  285.  
  286. svg.selectAll("dot")
  287. .data(data)
  288. .enter()
  289. .append("circle")
  290. .attr("class","dots")
  291. .attr("r", 0)
  292. .attr("cx", function(data) { return x(data.date)*2; })
  293. .attr("cy", function(data) { return y(data.value); });
  294.  
  295. svg.selectAll("dot")
  296. .data(data)
  297. .enter()
  298. .append("text")
  299. .attr("font-size","15px")
  300. .attr("class","dots-value")
  301. .attr("dx", function(data) { return x(data.date)*2; })
  302. .attr("dy", function(data) { return y(data.value); })
  303. .text(function(data) { return data.value });
  304. }
  305.  
  306. function Clear() {
  307. d3.selectAll("g > *").remove();
  308. }
  309.  
  310. //localStorage.setItem("data", JSON.stringify(data));
  311. // localStorage.newData = JSON.stringify(newData);
Add Comment
Please, Sign In to add comment