Advertisement
YavorGrancharov

Venue_Master

Apr 3rd, 2018
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function venu() {
  2.     const URL = 'https://baas.kinvey.com';
  3.     const USERNAME = "guest";
  4.     const PASSWORD = "pass";
  5.     const BASE_64 = btoa(USERNAME + ':' + PASSWORD);
  6.     const AUTH = {'Authorization': 'Basic ' + BASE_64, 'Content-type': 'application/json'};
  7.     const BTN_GET_VENUES = $('#getVenues');
  8.     const VENUE_DATE = $('#venueDate');
  9.     const INFO = $('#venue-info');
  10.  
  11.     $(BTN_GET_VENUES).on('click', getVenues);
  12.  
  13.     function getVenues() {
  14.         $(INFO).empty();
  15.         $.ajax({
  16.             type: "POST",
  17.             url: URL + `/rpc/kid_BJ_Ke8hZg/custom/calendar?query=${VENUE_DATE.val()}`,
  18.             headers: AUTH
  19.         }).then(function (res) {
  20.             res.forEach(venues => {
  21.                 $.ajax({
  22.                     type: "GET",
  23.                     url: URL + `/appdata/kid_BJ_Ke8hZg/venues/${venues}`,
  24.                     headers: AUTH
  25.                 }).then(function (venue) {
  26.                     generate(venue._id, venue.name, venue.description, venue.startingHour, venue.price);
  27.                 }).catch(error)
  28.             })
  29.         }).catch(error)
  30.     }
  31.  
  32.     function generate(id, name, description, startingHour, price) {
  33.         let self;
  34.         const VENUE = $(`<div class="venue" id="${id}">`)
  35.             .append($('<span class="venue-name">')
  36.                 .append($(`<input class="info" type="button" value="More info">${name}</span>`)
  37.                     .on('click', function (event) {
  38.                         event.preventDefault();
  39.                         $(this).parent().next().toggle();
  40.                     })))
  41.             .append($('<div class="venue-details" style="display: none;">')
  42.                 .append($('<table>')
  43.                     .append($('<tr><th>Ticket Price</th><th>Quantity</th><th></th></tr>'))
  44.                     .append($('<tr>')
  45.                         .append($(`<td class="venue-price">${price} lv</td>`))
  46.                         .append($('<td>')
  47.                             .append($('<select class="quantity">')
  48.                                 .append($('<option value="1">1</option>'))
  49.                                 .append($('<option value="2">2</option>'))
  50.                                 .append($('<option value="3">3</option>'))
  51.                                 .append($('<option value="4">4</option>'))
  52.                                 .append($('<option value="5">5</option>'))))
  53.                         .append($('<td>')
  54.                             .append($('<input class="purchase" type="button" value="Purchase">')
  55.                                 .on('click', function (event) {
  56.                                     event.preventDefault();
  57.                                     let qty = $('.quantity option:selected').val();
  58.                                     const CONFIRM = $('<span class="head">Confirm purchase</span>');
  59.                                     const DIV = $('<div class="purchase-info"></div>')
  60.                                         .append($(`<span>${name}</span>`))
  61.                                         .append($(`<span>${qty} x ${price}</span>`))
  62.                                         .append($(`<span>Total: ${Number(qty) * Number(price)} lv</span>`))
  63.                                         .append($('<input type="button" value="Confirm">')
  64.                                             .on('click', function (event) {
  65.                                                 event.preventDefault();
  66.                                                 $.ajax({
  67.                                                     type: "POST",
  68.                                                     url: URL + `/rpc/kid_BJ_Ke8hZg/custom/purchase?venue=${id}&qty=${qty}`,
  69.                                                     headers: AUTH
  70.                                                 }).then(function (res) {
  71.                                                     $(VENUE).html(res.html)
  72.                                                 }).catch(error)
  73.                                             }));
  74.                                     $(VENUE).html(CONFIRM);
  75.                                     $(VENUE).append(DIV)
  76.                                 })))))
  77.                 .append($('<span class="head">Venue description:</span>'))
  78.                 .append($(`<p class="description">${description}</p>`))
  79.                 .append($(`<p class="description">Starting time: ${startingHour}</p>`)));
  80.  
  81.         $(INFO).append(VENUE)
  82.     }
  83.  
  84.     function error(err) {
  85.         console.log(err.status + ' ' + err.statusText);
  86.     }
  87. }
  88.  
  89. //valid dates
  90. //23-11, 24-11, 25-11, 26-11, 27-11
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement