Advertisement
Guest User

Untitled

a guest
Nov 28th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. function attachEvents() {
  2. const key = "kid_BJ_Ke8hZg";
  3. const baseUrl= "https://baas.kinvey.com/";
  4. const username = "guest";
  5. const password = "pass";
  6. const base64auth = btoa(username + ":" + password);
  7. const authHeader = {"Authorization" : "Basic " + base64auth};
  8. const contentType = "application/json";
  9.  
  10. $('#getVenues').on('click', loadVenues);
  11.  
  12. let venuesInfo = $('#venue-info');
  13.  
  14. function loadVenues() {
  15. let venueDate = $('#venueDate').val();
  16.  
  17. let requestUrl = baseUrl + "rpc/" + key + "/custom/calendar?query="+ venueDate;
  18.  
  19. let postRequest = {
  20. method: "POST",
  21. url: requestUrl,
  22. headers: authHeader
  23. };
  24.  
  25. $.ajax(postRequest).then(getVenues).catch(displayError);
  26. }
  27.  
  28. function getVenues(venueIds) {
  29. for (let venueId of venueIds) {
  30. let getRequest = {
  31. method: "GET",
  32. url: baseUrl + "appdata/" + key + "/venues/" + venueId,
  33. headers: authHeader
  34. };
  35.  
  36. $.ajax(getRequest).then(displayVenue).catch(displayError);
  37. }
  38. }
  39. function displayVenue(data) {
  40. $('#venue-info')
  41. .append($('<div>').addClass("venue").attr('id', data._id)
  42. .append($('<span>').addClass("venue-name").text(data.name)
  43. .append($('<input>').addClass("info").attr("type", "button").val("More info").click(showInfo)))
  44. .append($('<div>').addClass("venue-details").css("display", "none")
  45. .append($('<table>')
  46. .append($('<tr>')
  47. .append($('<th>').text("Ticket Price"))
  48. .append($('<th>').text("Quantity"))
  49. .append($('<th>')))
  50. .append($('<tr>')
  51. .append($('<td>').addClass("venue-price").text(`${data.price} lv`))
  52. .append($('<td>')
  53. .append($('<select>').addClass("quantity")
  54. .append($('<option>').val("1").text("1"))
  55. .append($('<option>').val("2").text("2"))
  56. .append($('<option>').val("3").text("3"))
  57. .append($('<option>').val("4").text("4"))
  58. .append($('<option>').val("5").text("5"))))
  59. .append($('<td>')
  60. .append($('<input>').addClass("purchase").attr("type", "button").val("Purchase").click(purchase)))))
  61. .append($('<span>').addClass("head").text("Venue description:"))
  62. .append($('<p>').addClass("description").text(data.description))
  63. .append($('<p>').addClass("description").text(`Starting time: ${data.startingHour}`))
  64. )
  65. );
  66. }
  67.  
  68. function showInfo() {
  69. $('.venue-details').hide();
  70. $(this).parent().parent().find('.venue-details').show();
  71. }
  72.  
  73. function purchase() {
  74. let id = $(this).parent().parent().parent().parent().parent().attr('id');
  75. let name = $(this).parent().parent().parent().parent().parent().find(".venue-name").text();
  76. let qty = Number($(this).parent().parent().find(".quantity").val());
  77. let price = Number($(this).parent().parent().find(".venue-price").text().substring(0, $(this).parent().parent().find(".venue-price").text().length-2));
  78.  
  79. $('#venue-info').html(
  80. `<span class="head">Confirm purchase</span>
  81. <div class="purchase-info">
  82. <span>${name}</span>
  83. <span>${qty} x ${price}</span>
  84. <span>Total: ${qty * price} lv</span>
  85. <input type="button" value="Confirm">
  86. </div>`);
  87.  
  88. $('#venue-info input').click(function () {
  89. let postRequest = {
  90. method: "POST",
  91. url: baseUrl + "rpc/" + key + "/custom/purchase?venue=" + id + "&qty=" + qty,
  92. headers: {
  93. "Authorization": "Basic " + base64auth
  94. }
  95. };
  96.  
  97. $.ajax(postRequest).then(function (data) {
  98. $('#venue-info').html("You may print this page as your ticket" + data.html);
  99. })
  100. })
  101. }
  102.  
  103. function displayError(error) {
  104. console.log(error);
  105. }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement