daily pastebin goal
51%
SHARE
TWEET

Untitled

a guest Dec 6th, 2016 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. var app = angular.module("myApp", ["ngRoute"]);
  8.  
  9. app.factory("loginContainer", function () {
  10.     var factory = {};
  11.  
  12.     var resultType = 0;
  13.     var username = null;
  14.     var id = null;
  15.     var email = null;
  16.     var realname = null;
  17.     var phone = null;
  18.  
  19.     factory.setResultType = function (data) {
  20.         resultType = data;
  21.     };
  22.  
  23.     factory.setUsername = function (data) {
  24.         username = data;
  25.     };
  26.  
  27.     factory.setId = function (data) {
  28.         id = data;
  29.     };
  30.  
  31.     factory.setEmail = function (data) {
  32.         email = data;
  33.     },
  34.             factory.setRealname = function (data) {
  35.                 realname = data;
  36.             };
  37.  
  38.     factory.setPhone = function (data) {
  39.         phone = data;
  40.     };
  41.  
  42.     factory.getResultType = function () {
  43.         return resultType;
  44.     };
  45.  
  46.     factory.getUsername = function () {
  47.         return username;
  48.     };
  49.  
  50.     factory.getId = function () {
  51.         return id;
  52.     };
  53.  
  54.     factory.getEmail = function () {
  55.         return email;
  56.     };
  57.  
  58.     factory.getRealname = function () {
  59.         return realname;
  60.     };
  61.  
  62.     factory.getPhone = function () {
  63.         return phone;
  64.     };
  65.  
  66.     return factory;
  67. });
  68.  
  69. app.factory("dataContainer", function () {
  70.     var factory = {};
  71.  
  72.     var myresults = null;
  73.     var flightnum = null;
  74.     var flightid = null;
  75.     var passengerQty = null;
  76.     var src = null;
  77.  
  78.     factory.setSrc = function (data) {
  79.         src = data;
  80.     };
  81.  
  82.     factory.getSrc = function () {
  83.         return src;
  84.     };
  85.  
  86.     factory.setQty = function (data) {
  87.         passengerQty = data;
  88.     };
  89.  
  90.     factory.getQty = function () {
  91.         return passengerQty;
  92.     };
  93.  
  94.     factory.set = function (data) {
  95.         myresults = data;
  96.     };
  97.  
  98.     factory.setfn = function (data) {
  99.         flightnum = data;
  100.     };
  101.  
  102.     factory.getfn = function () {
  103.         return flightnum;
  104.     };
  105.  
  106.     factory.getfid = function () {
  107.         return flightid;
  108.     };
  109.  
  110.     factory.setfid = function (data) {
  111.         flightid = data;
  112.     };
  113.  
  114.     factory.get = function () {
  115.         return myresults;
  116.     };
  117.  
  118.     return factory;
  119. });
  120.  
  121. app.config(function ($routeProvider) {
  122.     $routeProvider.
  123.             when("/search", {
  124.                 templateUrl: "search_refactor.html",
  125.                 controller: "searchCtrl"
  126.             }).when("/results", {
  127.         templateUrl: "results_refactor.html",
  128.         controller: "searchCtrl"
  129.     }).when("/reserve", {
  130.         templateUrl: "reserveflight.html",
  131.         controller: "searchCtrl"
  132.     }).when("/login", {
  133.         templateUrl: "login.html",
  134.         controller: "loginCtrl"
  135.     }).when("/userpage", {
  136.         templateUrl: "userpage.html",
  137.         controller: "searchCtrl"
  138.     }).otherwise({
  139.         redirectTo: "/search"
  140.     });
  141. });
  142.  
  143. app.controller("searchCtrl", ["$scope", "$http", "dataContainer", "loginContainer", "$location", function ($scope, $http, dataContainer, loginContainer, $location) {
  144.         $scope.results = dataContainer.get();
  145.         $scope.GOTRESPONSE = false;
  146.  
  147.         $scope.isLoggedIn = function () {
  148.             if (loginContainer.getId() == null) {
  149.                 return false;
  150.             } else {
  151.                 return true;
  152.             }
  153.         }
  154.  
  155.         function getUndefined() {
  156.             return;
  157.         }
  158.  
  159.         clearFields = function () {
  160.             $scope.fromIATA = getUndefined();
  161.             $scope.toIATA = getUndefined();
  162.             $scope.startDate = getUndefined();
  163.             $scope.passengerCount = getUndefined();
  164.         };
  165.  
  166.         $scope.gotoReserve = function (fid, fn, src) {
  167.             dataContainer.setfid(fid);
  168.             dataContainer.setfn(fn);
  169.             dataContainer.setSrc(src);
  170.             console.log("Reserving with source: " + dataContainer.getSrc());
  171.             // alert("something");
  172.         };
  173.  
  174.  
  175.  
  176.         $scope.doReserve = function () {
  177.             var req = {
  178.                 flightID: dataContainer.getfid(),
  179.                 numberOfSeats: parseInt(dataContainer.getQty()),
  180.                 reserveeName: loginContainer.getRealname(),
  181.                 reservePhone: loginContainer.getPhone(),
  182.                 reserveeEmail: loginContainer.getEmail(),
  183.                 passengers: []
  184.             };
  185.  
  186.             for (var i = 0; i != dataContainer.getQty(); i++) {
  187.                 var tmp = {"firstName": $scope.passengers[i].firstName, "lastName": $scope.passengers[i].lastName};
  188.                 req.passengers.push(tmp);
  189.             }
  190.  
  191.             var setupReservation = {url: dataContainer.getSrc(), body: req, userid: loginContainer.getId()};
  192.             //console.log(req);
  193.  
  194.             $http({
  195.                 method: "POST",
  196.                 url: "api/wrapreservation/" + $scope.fid,
  197.                 data: setupReservation
  198.             }).then(function success(response) {
  199.                 $scope.gotResponse = true;
  200.  
  201.                 $scope.responseDate = response.data.date;
  202.                 $scope.responseDestination = response.data.destination;
  203.                 $scope.responseFlightNumber = response.data.flightNumber;
  204.                 $scope.responseFlightTime = response.data.flightTime;
  205.                 $scope.responseNumberOfSeats = response.data.numberOfSeats;
  206.                 $scope.responseOrigin = response.data.origin;
  207.                 $scope.responsePassengers = response.data.passengers;
  208.                 $scope.responseReserveeName = response.data.reserveeName;
  209.                 console.log(response.data);
  210.             });
  211.         };
  212.  
  213.         $scope.fn = dataContainer.getfn();
  214.         $scope.fid = dataContainer.getfid();
  215.         $scope.maxPassengers = dataContainer.getQty();
  216.  
  217.         $scope.USERREALNAME = loginContainer.getRealname();
  218.  
  219.         $scope.searchFunc = function () {
  220.  
  221.  
  222.             if ($scope.fromIATA === undefined) {
  223.                 alert("Fill in a from airport");
  224.                 clearFields();
  225.                 return;
  226.             }
  227.  
  228.             if ($scope.startDate === undefined) {
  229.                 alert("Fill in a date");
  230.                 clearFields();
  231.                 return;
  232.             }
  233.  
  234.  
  235.             $scope.onDate = $scope.startDate;
  236.             var month = ($scope.onDate).substring(0, 2);
  237.             var day = ($scope.onDate).substring(3, 5);
  238.             var year = ($scope.onDate).substring(6, 10);
  239.  
  240.             $scope.onDate = year + "-" + month + "-" + day;
  241.  
  242.             if ($scope.passengerCount === undefined) {
  243.                 alert("Fill in passenger count");
  244.                 clearFields();
  245.                 return;
  246.             }
  247.  
  248.             var passengers = ($scope.passengerCount).substring(0, 1);
  249.             dataContainer.setQty(passengers);
  250.  
  251.             if ($scope.toIATA === undefined) {
  252.                 //console.log("To was not set, so just get from");
  253.  
  254.                 $http({
  255.                     method: "GET",
  256.                     url: "api/allflights/" + $scope.fromIATA + "/" + $scope.onDate + "T00:00:00.000Z" + "/" + passengers
  257.                 }).then(function callback(response) {
  258.  
  259.                     dataContainer.set(response.data);
  260.                     $scope.results = dataContainer.get();
  261.                     $location.path("/results");
  262.  
  263.                 });
  264.  
  265.             } else {
  266.                 //console.log("To: " + $scope.toIATA);
  267.                 $http({
  268.                     method: "GET",
  269.                     url: "api/allflights/" + $scope.fromIATA + "/" + $scope.toIATA + "/" + $scope.onDate + "T00:00:00.000Z" + "/" + passengers
  270.                 }).then(function callback(response) {
  271.  
  272.                     dataContainer.set(response.data);
  273.                     $scope.results = dataContainer.get();
  274.                     $location.path("/results");
  275.  
  276.                 });
  277.             }
  278.         };
  279.     }]);
  280.  
  281. app.controller("loginCtrl", ["$scope", "$http", "loginContainer", function ($scope, $http, loginContainer) {
  282.         $scope.resultType = loginContainer.getResultType();
  283.  
  284.         $scope.loginButtonFunc = function () {
  285.  
  286.             var req = {username: $scope.loginFieldUsername, password: $scope.loginFieldPassword};
  287.  
  288.             $http({
  289.                 method: "POST",
  290.                 url: "api/login",
  291.                 data: req
  292.             }).success(function (data) {
  293.                 console.log("It worked!");
  294.  
  295.                 loginContainer.setUsername(req.username);
  296.                 loginContainer.setId(data.id);
  297.                 loginContainer.setEmail(data.email);
  298.                 loginContainer.setRealname(data.realname);
  299.                 loginContainer.setPhone(data.phone);
  300.  
  301.                 console.log(data);
  302.                 console.log(loginContainer.getId());
  303.                 console.log(loginContainer);
  304.  
  305.                 $scope.resultMsg = "Success: You logged in as " + loginContainer.getUsername() + " (" + loginContainer.getRealname() + ")";
  306.             }).error(function (error, status) {
  307.                 if (status == 500) {
  308.                     console.log("User " + req.username + " doesn't exist");
  309.                     $scope.resultMsg = "The user doesnt exist";
  310.                 }
  311.                 ;
  312.                 if (status == 400) {
  313.                     console.log("User" + req.username + " isnt " + req.password);
  314.                     $scope.resultMsg = "The password is wrong";
  315.                 }
  316.                 ;
  317.             });
  318.         };
  319.     }]);
  320.  
  321. app.directive('datepicker', function () {
  322.     return {
  323.         link: function (scope, el, attr) {
  324.             $(el).datepicker({
  325.                 onSelect: function (dateText) {
  326.                     console.log(dateText);
  327.                     var expression = attr.ngModel + " = " + "'" + dateText + "'";
  328.                     scope.$apply(expression);
  329.                     console.log(scope.startDate);
  330.                 }
  331.             });
  332.         }
  333.     };
  334. });
  335.  
  336.  
  337.  
  338. app.filter("niceIATA", function () {
  339.     return function (x) {
  340.         var tmp = x.toLowerCase();
  341.         // js has no hshmap ..
  342.         if (tmp == "cph")
  343.             return "Copenhagen";
  344.         if (tmp == "sxf")
  345.             return "Berlin";
  346.         if (tmp == "stn")
  347.             return "London";
  348.         if (tmp == "cdg")
  349.             return "Paris";
  350.         if (tmp == "bcn")
  351.             return "Barcelona";
  352.         return x;
  353.     };
  354. });
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top