Advertisement
Guest User

Untitled

a guest
Oct 19th, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. router.get('/browse', function (req) {
  2.   var vm = new Vue({
  3.     el: 'body',
  4.     data: {
  5.       races: utils.inlineData
  6.     },
  7.     methods: {
  8.       refresh: function () {
  9.         $('.refresh-effect').fadeOut(180);
  10.         utils.xhr.get('/api/races').done(function (data) {
  11.           vm.$data.races = data;
  12.           Vue.nextTick(vm.initDOMPlugins);
  13.         }).always(function (argument) {
  14.           $('.refresh-effect').fadeIn(180);
  15.         });
  16.       },
  17.       initDOMPlugins: function () {
  18.         $('[data-toggle="tooltip"]').tooltip();
  19.         $('[data-toggle="popover"]').popover({
  20.           html: true
  21.         });
  22.         console.log('updated tooltips');
  23.       }
  24.     },
  25.     components: {
  26.       serverBrowser: {
  27.         computed: {
  28.           fullCarList: function () {
  29.             return _.map(this.race.cars, function (car) {
  30.               return car.manufacturer + " " + car.namePretty;
  31.             }).join(", ");
  32.           },
  33.           carCount: function () {
  34.             var count = this.race.cars.length;
  35.             if (count > 1) return count + ' cars';
  36.             return count + ' car';
  37.           },
  38.           slotCount: function () {
  39.             var count = this.race.drivers.length;
  40.             var maxSlots = (this.race.chosenTrack) ? '/' + this.race.chosenTrack.slots : '';
  41.             return count + maxSlots;
  42.           },
  43.           trackName: function () {
  44.             return (this.race.chosenTrack) ? this.race.chosenTrack.namePretty : this.race.track;
  45.           },
  46.           popoverContent: function() {
  47.             var carOptions = [];
  48.             _.map(this.race.cars, function (car) {
  49.               var carMakeModel = '<option value="' + car.id + '">' + car.manufacturer + ' ' + car.namePretty + '</option>';
  50.               carOptions.push(carMakeModel);
  51.             });
  52.             var popoverContent = "<form action='/race/" + this.race.raceID + "/join' method='post'><div class='form-group'><label for='carID'>Select car</label><select class='form-control' name='carID'>" + carOptions.join('') + "</select></div><div class='form-group'><button class='btn btn-primary btn-block' type='submit'>Join Queue</button></div></form>";
  53.             return popoverContent;
  54.           }
  55.         }
  56.       }
  57.     }
  58.   });
  59.  
  60.   var io = window.io.connect(utils.conf.host);
  61.  
  62.   io.on('race_update', function (race) {
  63.     console.log(race.name);
  64.     debugger;
  65.     // check if this race matches a displayed race
  66.     var item = _.find(vm.$data.races, {'id': race.id});
  67.     var isMatch = !_.isUndefined(item);
  68.  
  69.     if (race.status != 'BOOKING' || race.status != 'INSESSION') {
  70.       // if it matches, remove it
  71.       if (isMatch) _.remove(vm.$data.races, item);
  72.     } else {
  73.       // it matches, update it
  74.       utils.xhr.get('/api/race/' + race.id + '/withAssociations').done(function (race) {
  75.         console.log('race_update ' + race);
  76.         item = race;
  77.       });
  78.     }
  79.  
  80.     // vm.$data.instance.race.status = race.status;
  81.   });
  82. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement