Commit 8f7dbe97c18e4c9337c65471520874a44d99f3c4

Authored by Swarn Singh
1 parent 2263bfe7c9
Exists in master

fuel order complete, fixed bugs on ramp fee manager

app/css/custom.css
... ... @@ -705,4 +705,20 @@ font-size: 10px !important;
705 705 }
706 706 .recordCountSelect{
707 707 background-color: #fff;
  708 +}
  709 +.exportBtn{
  710 + margin-top: 20px;
  711 +}
  712 +.select2-container .select2-choice{
  713 + height: 34px !important;
  714 + padding: 6px 12px !important;
  715 + border: 1px solid #ccc !important;
  716 + background-image: none !important;
  717 +}
  718 +.select2-container .select2-choice .select2-arrow{
  719 + border-left: none !important;
  720 + background: transparent !important;
  721 +}
  722 +.select2-container .select2-choice{
  723 + padding: 2px 12px !important;
708 724 }
709 725 \ No newline at end of file
... ...
... ... @@ -42,6 +42,8 @@
42 42 <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/smoothness/jquery-ui.min.css" rel="stylesheet" type="text/css" />
43 43  
44 44 <link rel="stylesheet" type="text/css" href="css/ngTable.css">
  45 + <link rel="stylesheet" href="bower_components/select2/select2.css">
  46 +
45 47 <!-- <link rel="stylesheet"; href="https://unpkg.com/ng-table@2.0.2/bundles/ng-table.min.css"> -->
46 48  
47 49 </head>
... ... @@ -78,6 +80,8 @@
78 80 <script src="bower_components/jqGrid/js/jquery.jqGrid.min.js"></script>
79 81 <script src="bower_components/angular-xeditable/dist/js/xeditable.js"></script>
80 82 <script src="bower_components/angular-bootstrap-toggle/dist/angular-bootstrap-toggle.min.js"></script>
  83 + <script src="bower_components/select2/select2.js"></script>
  84 + <script src="bower_components/angular-ui-select2/src/select2.js"></script>
81 85  
82 86 <!-- <script src="https://unpkg.com/ng-table@2.0.2/bundles/ng-table.min.js"></script> -->
83 87  
... ... @@ -139,6 +143,7 @@
139 143 <script src="partials/viewFuelVendor/viewFuelVendor.controller.js"></script>
140 144 <script src="partials/accountSetting/accountSetting.Controller.js"></script>
141 145 <script src="partials/viewVendorContact/viewVendorContact.Controller.js"></script>
  146 + <script src="partials/enterFuelOrder/enterFuelOrder.controller.js"></script>
142 147  
143 148 <script src="partials/main/main.controller.js"></script>
144 149 <div ui-view></div>
... ... @@ -175,6 +180,7 @@
175 180 <script src="partials/viewFuelVendor/viewFuelVendor.service.js"></script>
176 181 <script src="partials/accountSetting/accountSetting.Service.js"></script>
177 182 <script src="partials/viewVendorContact/viewVendorContact.Service.js"></script>
  183 + <script src="partials/enterFuelOrder/enterFuelOrder.service.js"></script>
178 184  
179 185 <script src="partials/main/main.service.js"></script>
180 186  
... ...
app/js/app.constant.js
... ... @@ -5,7 +5,7 @@
5 5  
6 6 .constant('BASE_URL', {
7 7 url: 'http://54.149.169.33:8080/ws'
8   - //url: 'http://192.168.1.175:8080/ws'
  8 + //url: 'http://192.168.2.178:8080/ws'
9 9 //url: 'http://192.168.1.8:8080/ws'
10 10  
11 11 })
... ...
1 1 'use strict';
2 2  
3 3  
4   - angular.module('acufuel', ['ngCookies', 'ngResource', 'ui.router', 'ngAnimate', 'ui.bootstrap', 'xeditable', 'ui.toggle', 'ngTable'])
  4 + angular.module('acufuel', ['ngCookies', 'ngResource', 'ui.router', 'ngAnimate', 'ui.bootstrap', 'xeditable', 'ui.toggle', 'ngTable', 'ui.select2'])
5 5  
6 6 .config(['$httpProvider', function($httpProvider) {
7 7 $httpProvider.defaults.withCredentials = true;
... ... @@ -240,6 +240,12 @@
240 240 controller: "viewVendorContactController"
241 241 })
242 242  
  243 + .state("app.enterFuelOrder", {
  244 + url: "/enterFuelOrder",
  245 + templateUrl: "partials/enterFuelOrder/enterFuelOrder.html",
  246 + controller: "enterFuelOrderController"
  247 + })
  248 +
243 249 }
244 250 ])
245 251  
... ...
app/partials/ContactView/ContactView.html
... ... @@ -61,6 +61,8 @@
61 61 </td>
62 62 </tr>
63 63 </table>
  64 +
  65 + <button type="button" class="btn btn-warning exportBtn">Export Customers</button>
64 66  
65 67 <!-- <table class="table table-striped">
66 68 <thead>
... ...
app/partials/FuelVendors/FuelVendors.html
... ... @@ -128,7 +128,7 @@
128 128 </tr>
129 129 </table>
130 130  
131   -
  131 + <button type="button" class="btn btn-warning exportBtn">Export Customers</button>
132 132  
133 133 <!-- <table class="table table-striped">
134 134 <thead>
... ...
app/partials/customers/customers.html
... ... @@ -133,6 +133,8 @@
133 133 </tr>
134 134 </table>
135 135  
  136 + <button type="button" class="btn btn-warning exportBtn">Export Customers</button>
  137 +
136 138 <!--
137 139 <table class="table table-striped">
138 140 <thead>
... ...
app/partials/enterFuelOrder/enterFuelOrder.controller.js
... ... @@ -0,0 +1,70 @@
  1 +'use strict';
  2 +
  3 +angular.module('acufuel')
  4 +
  5 +.controller('enterFuelOrderController', ['$scope', '$rootScope', '$uibModal', '$filter', '$http', 'enterFuelOrderService', enterFuelOrderController]);
  6 +
  7 +function enterFuelOrderController($scope, $rootScope, $uibModal, $filter, $http, enterFuelOrderService) {
  8 + $scope.showLoader = true;
  9 +
  10 + $scope.companyList = {};
  11 +
  12 + enterFuelOrderService.getAllCompanies().then(function(result) {
  13 + $scope.showLoader = false;
  14 + $scope.companyList = result;
  15 + })
  16 +
  17 + $scope.order = {};
  18 + $scope.order.upliftDate = '';
  19 + $scope.order.departingDate = '';
  20 + $scope.selectedCompanyName = '';
  21 + $scope.selectedCompanyId = '';
  22 + $scope.marginId = '';
  23 +
  24 + enterFuelOrderService.getFuelPricingNew().then(function(margins) {
  25 + $scope.marginList = margins;
  26 + //console.log('$scope.marginList', $scope.marginList);
  27 + })
  28 +
  29 + $scope.getAircraft = function(company){
  30 + $scope.selectedCompanyName = company;
  31 + $scope.showLoader = true;
  32 + for (var i = 0; i < $scope.companyList.length; i++) {
  33 + if ($scope.companyList[i].companyName == company) {
  34 + $scope.selectedCompanyId = $scope.companyList[i].id;
  35 + $scope.marginId = $scope.companyList[i].margin.id;
  36 + if ($scope.selectedCompanyId != '') {
  37 + enterFuelOrderService.getAircraft($scope.selectedCompanyId).then(function(aircraft) {
  38 + $scope.aircraftList = aircraft;
  39 + })
  40 + }
  41 + if ($scope.marginId != '') {
  42 + enterFuelOrderService.getJetTiers($scope.marginId).then(function(tiers) {
  43 + $scope.tierList = tiers;
  44 + $scope.showLoader = false;
  45 + })
  46 + }else{
  47 + $scope.showLoader = false;
  48 + }
  49 + }
  50 + }
  51 +
  52 + }
  53 +
  54 + $scope.dispatchFuel = function(){
  55 + console.log('$scope.order', $scope.order);
  56 + $scope.order.companyId = $scope.selectedCompanyId;
  57 + if ($scope.order.upliftDate != '') {
  58 + $scope.order.upliftDate = new Date($scope.order.upliftDate);
  59 + $scope.order.upliftDate = $scope.order.upliftDate.getTime();
  60 + }
  61 + if ($scope.order.departingDate != '') {
  62 + $scope.order.departingDate = new Date($scope.order.departingDate);
  63 + $scope.order.departingDate = $scope.order.departingDate.getTime();
  64 + }
  65 + enterFuelOrderService.dispathFuelOrder($scope.order).then(function(result) {
  66 + console.log('result', result);
  67 + })
  68 + }
  69 +
  70 +}
0 71 \ No newline at end of file
... ...
app/partials/enterFuelOrder/enterFuelOrder.html
... ... @@ -0,0 +1,117 @@
  1 +<style type="text/css">
  2 + .subnavbar .mainnav > li:nth-child(2) > a{
  3 + color: #ff9900;
  4 + }
  5 + .customInputWrap{
  6 + margin-top: 15px;
  7 + }
  8 + .customInputWrap label{
  9 + font-weight: normal;
  10 + margin-bottom: 0;
  11 + }
  12 +</style>
  13 +<div class="myLoader" ng-show="showLoader">
  14 + <img src="../img/hourglass.gif" width="50px;">
  15 +</div>
  16 +
  17 +<div class="container">
  18 + <div class="row">
  19 + <div class="col-md-5">
  20 + <div class="widget stacked">
  21 + <div class="widget-header">
  22 + <i class="fa fa-search" aria-hidden="true"></i>
  23 + <h3>Search and Dispatch Fuel</h3>
  24 + </div>
  25 + <div class="widget-content new-widget-content">
  26 + <form>
  27 +
  28 + <div class="customInputWrap">
  29 + <div class="col-md-3 text-right">
  30 + <label>Company</label>
  31 + </div>
  32 + <div class="col-md-9">
  33 + <select ui-select2 ng-model="order.companyName" ng-change="getAircraft(order.companyName)" style="width: 100%;">
  34 + <option value="" selected disabled>Select Company</option>
  35 + <option ng-repeat="list in companyList">{{list.companyName}}</option>
  36 + </select>
  37 + </div>
  38 + <div class="clearfix"></div>
  39 + </div>
  40 +
  41 + <div class="customInputWrap">
  42 + <div class="col-md-3 text-right">
  43 + <label>Aircraft</label>
  44 + </div>
  45 + <div class="col-md-3">
  46 + <select class="form-control" ng-model="order.aircraftName">
  47 + <option selected disabled value="">Select Aircraft</option>
  48 + <option ng-repeat="list in aircraftList" value="{{list.tail}}">{{list.tail}}</option>
  49 + </select>
  50 + </div>
  51 + <div class="col-md-3 text-right">
  52 + <label>Requested Volume</label>
  53 + </div>
  54 + <div class="col-md-3">
  55 + <input type="text" ng-model="order.volume" class="form-control">
  56 + </div>
  57 + <div class="clearfix"></div>
  58 + </div>
  59 +
  60 + <div class="customInputWrap">
  61 + <div class="col-md-3 text-right">
  62 + <label>Price Quote</label>
  63 + </div>
  64 + <div class="col-md-8 col-md-offset-1">
  65 + <select class="form-control" ng-model="order.priceQuote">
  66 + <option value="" selected disabled>Select Price Quote</option>
  67 + <option ng-repeat="margin in marginList" value="{{margin.fuelPricing.papTotal}}">${{margin.fuelPricing.papTotal}} {{margin.name}}</option>
  68 + </select>
  69 + </div>
  70 + <div class="clearfix"></div>
  71 + </div>
  72 +
  73 + <div class="customInputWrap">
  74 + <div class="col-md-3 text-right">
  75 + <label>Tier Break</label>
  76 + </div>
  77 + <div class="col-md-8 col-md-offset-1">
  78 + <select class="form-control" ng-model="order.tierBreak">
  79 + <option value="" selected disabled>Select Price Quote</option>
  80 + <option ng-repeat="list in tierList" value="{{list.minTierBreak}}-{{list.maxTierBreak}}">
  81 + {{list.minTierBreak | number: 2}}-{{list.maxTierBreak | number: 2}} = ${{list.marginTotal | number: 2}} {{list.marginTemplate.marginName}}
  82 + </option>
  83 + </select>
  84 + </div>
  85 + <div class="clearfix"></div>
  86 + </div>
  87 +
  88 + <div class="customInputWrap">
  89 + <div class="col-md-3 text-right">
  90 + <label>Uplift Date</label>
  91 + </div>
  92 + <div class="col-md-3">
  93 + <input type="text" ng-model="order.upliftDate" datepicker class="form-control">
  94 + </div>
  95 + <div class="col-md-3 text-right">
  96 + <label>Departing FBO</label>
  97 + </div>
  98 + <div class="col-md-3">
  99 + <input type="text" ng-model="order.departingDate" datepicker class="form-control">
  100 + </div>
  101 + <div class="clearfix"></div>
  102 + </div>
  103 +
  104 + <div class="customInputWrap text-right">
  105 + <div class="col-xs-12">
  106 + <input type="cancel" value="Cancel" class="btn btn-default" style="margin-right: 15px; width: 100px;">
  107 + <input type="submit" value="Dispatch" ng-click="dispatchFuel()" class="btn btn-primary">
  108 + </div>
  109 + <div class="clearfix"></div>
  110 + </div>
  111 +
  112 + </form>
  113 + </div>
  114 + </div>
  115 + </div>
  116 + </div>
  117 +</div>
0 118 \ No newline at end of file
... ...
app/partials/enterFuelOrder/enterFuelOrder.service.js
... ... @@ -0,0 +1,86 @@
  1 +(function(){
  2 + 'use strict';
  3 + angular.module('acufuel')
  4 + .service('enterFuelOrderService', ['$q', '$http', 'BASE_URL', enterFuelOrderService]);
  5 +
  6 + function enterFuelOrderService($q, $http, BASE_URL) {
  7 +
  8 + this.getAllCompanies = function() {
  9 + var deferred = $q.defer();
  10 + $http({
  11 + method : 'GET',
  12 + url : BASE_URL.url +'/user/allCompanies',
  13 + headers : {'Content-Type': 'application/json'},
  14 + })
  15 + .then(function (result){
  16 + deferred.resolve(result.data);
  17 + },function (result){
  18 + deferred.resolve(result.data);
  19 + })
  20 + return deferred.promise;
  21 + }
  22 +
  23 + this.getAircraft = function(id) {
  24 + var deferred = $q.defer();
  25 + $http({
  26 + method : 'GET',
  27 + url : BASE_URL.url +'/company/aircrafts/'+id,
  28 + headers : {'Content-Type': 'application/json'},
  29 + })
  30 + .then(function (result){
  31 + deferred.resolve(result.data);
  32 + },function (result){
  33 + deferred.resolve(result.data);
  34 + })
  35 + return deferred.promise;
  36 + }
  37 +
  38 + this.getJetTiers = function(id) {
  39 + var deferred = $q.defer();
  40 + $http({
  41 + method : 'GET',
  42 + url : BASE_URL.url +'/margin/getCustomMargins/'+id,
  43 + headers : {'Content-Type': 'application/json'},
  44 + })
  45 + .then(function (result){
  46 + deferred.resolve(result.data);
  47 + },function (result){
  48 + deferred.resolve(result.data);
  49 + })
  50 + return deferred.promise;
  51 + }
  52 +
  53 + this.getFuelPricingNew = function() {
  54 + var deferred = $q.defer();
  55 + $http({
  56 + method : 'GET',
  57 + url : BASE_URL.url +'/user/products',
  58 + headers : {'Content-Type': 'application/json'},
  59 + })
  60 + .then(function (result){
  61 + deferred.resolve(result.data);
  62 + },function (result){
  63 + deferred.resolve(result.data);
  64 + })
  65 + return deferred.promise;
  66 + }
  67 +
  68 + this.dispathFuelOrder = function(data) {
  69 + var deferred = $q.defer();
  70 + $http({
  71 + method : 'POST',
  72 + url : BASE_URL.url +'/fuelOrder',
  73 + headers : {'Content-Type': 'application/json'},
  74 + data: data
  75 + })
  76 + .then(function (result){
  77 + deferred.resolve(result.data);
  78 + },function (result){
  79 + deferred.resolve(result.data);
  80 + })
  81 + return deferred.promise;
  82 + }
  83 +
  84 + }
  85 +
  86 +})();
0 87 \ No newline at end of file
... ...
app/partials/fuelManager/fuelManager.controller.js
... ... @@ -9,6 +9,22 @@
9 9  
10 10 function fuelManagerController($scope, $rootScope, $uibModal, $filter, $http, fuelManagerService) {
11 11  
  12 + var todayDate = new Date();
  13 + var ddn = todayDate.getDate();
  14 + var mmn = todayDate.getMonth()+1; //January is 0!
  15 + var yyyyn = todayDate.getFullYear();
  16 +
  17 + if(ddn<10) {
  18 + ddn ='0'+ddn
  19 + }
  20 +
  21 + if(mmn<10) {
  22 + mmn ='0'+mmn
  23 + }
  24 +
  25 + $scope.todayDateNew = mmn+'/'+ddn+'/'+yyyyn;
  26 + $scope.currentUserName = JSON.parse(window.localStorage.getItem("currentUserName"));
  27 +
12 28 $scope.currentUserData = JSON.parse(localStorage.getItem('userProfileId'));
13 29 $scope.showLoader = true;
14 30  
... ... @@ -54,9 +70,9 @@
54 70 'avoidance' : $scope.newJetList[i].aircraftsSize[j].rampFeesAndAvoidance.avoidance,
55 71 'applicable' : $scope.newJetList[i].aircraftsSize[j].rampFeesAndAvoidance.applicable,
56 72 'expirationDate' : $scope.newJetList[i].aircraftsSize[j].rampFeesAndAvoidance.expirationDate,
57   - 'notes' : $scope.newJetList[i].aircraftsSize[j].rampFeesAndAvoidance.notes
  73 + 'notes' : $scope.newJetList[i].aircraftsSize[j].rampFeesAndAvoidance.notes,
  74 + 'reportedBy': $scope.currentUserName
58 75 });
59   -
60 76 }
61 77 }
62 78 }
... ...
app/partials/fuelManager/fuelManager.html
... ... @@ -43,10 +43,7 @@
43 43 </div>
44 44 <div class="new-tab-body" id="parentTogglebody{{$index}}" style="display: none;">
45 45 <div class="new-tab-body-th">
46   - <div class="col-md-4" ng-if="list.type != 'CUSTOM'">
47   - Aircraft Size
48   - </div>
49   - <div class="col-md-3" ng-if="list.type == 'CUSTOM'">
  46 + <div class="col-md-4">
50 47 Aircraft Size
51 48 </div>
52 49 <div class="col-md-2">
... ... @@ -55,7 +52,7 @@
55 52 <div class="col-md-2">
56 53 Avoidance
57 54 </div>
58   - <div class="col-md-2">
  55 + <div class="col-md-2" ng-if="list.type != 'CUSTOM'">
59 56 Expiration Date
60 57 </div>
61 58 <div class="col-md-2">
... ... @@ -68,11 +65,7 @@
68 65 </div>
69 66 <div class="new-tab-body-td" ng-repeat="jets in list.aircraftsSize">
70 67 <div>
71   - <div class="col-md-4" ng-if="list.type != 'CUSTOM'">
72   - <i class="fa fa-plus-circle {{jets.id}}" ng-click="toggleChild(jets.id)" aria-hidden="true"></i>
73   - <span style="margin-left: 5px;">{{jets.size}}</span>
74   - </div>
75   - <div class="col-md-3" ng-if="list.type == 'CUSTOM'">
  68 + <div class="col-md-4">
76 69 <i class="fa fa-plus-circle {{jets.id}}" ng-click="toggleChild(jets.id)" aria-hidden="true"></i>
77 70 <span style="margin-left: 5px;">{{jets.size}}</span>
78 71 </div>
... ... @@ -82,11 +75,11 @@
82 75 <div class="col-md-2">
83 76 <input type="text" ng-disabled="jets.rampFeesAndAvoidance.applicable == false || jets.rampFeesAndAvoidance.applicable == null" ng-model="jets.rampFeesAndAvoidance.avoidance" style="padding: 5px 5px;">
84 77 </div>
85   - <div class="col-md-2">
  78 + <div class="col-md-2" ng-if="list.type != 'CUSTOM'">
86 79 <!-- <input type="date" ng-disabled="jets.rampFeesAndAvoidance.applicable == false || jets.rampFeesAndAvoidance.applicable == null" name="" ng-model="jets.rampFeesAndAvoidance.expirationDate"> -->
87 80  
88 81  
89   - <input type="text" datepicker ng-disabled="jets.rampFeesAndAvoidance.applicable == false || jets.rampFeesAndAvoidance.applicable == null" ng-model="jets.rampFeesAndAvoidance.expirationDate" style="width: 90px; padding: 5px 5px;" />
  82 + <input type="text" ng-if="list.type != 'CUSTOM'" datepicker ng-disabled="jets.rampFeesAndAvoidance.applicable == false || jets.rampFeesAndAvoidance.applicable == null" ng-model="jets.rampFeesAndAvoidance.expirationDate" style="width: 90px; padding: 5px 5px;" />
90 83  
91 84 </div>
92 85 <div class="col-md-2">
... ... @@ -135,7 +128,8 @@
135 128 Reported On:
136 129 </td>
137 130 <td width="50%">
138   - {{jets.rampFeesAndAvoidance.reportedOn}}
  131 + <!-- {{jets.rampFeesAndAvoidance.reportedOn}} -->
  132 + {{todayDateNew}}
139 133 </td>
140 134 </tr>
141 135 <tr>
... ...
app/partials/login/login.service.js
... ... @@ -89,10 +89,12 @@
89 89 authService.getUser = function () {
90 90 return JSON.parse(window.localStorage.getItem("currentUser"));
91 91 }
92   -
  92 +
93 93 authService.setUser = function (authData) {
  94 + console.log('authdata', authData);
94 95 window.localStorage.setItem("currentUser", JSON.stringify(authData.userProfile.userType));
95 96 window.localStorage.setItem("userProfileId", JSON.stringify(authData.userProfile.id));
  97 + window.localStorage.setItem('currentUserName', JSON.stringify(authData.userProfile.firstName +' '+ authData.userProfile.lastName));
96 98 if(authData.userProfile.userType.type == 'ADMIN' || authData.userProfile.userType.type == 'FBO'){
97 99 role = USER_ROLES.admin;
98 100 $rootScope.isAuthenticated = true;
... ...
app/partials/main/main.html
... ... @@ -55,6 +55,9 @@
55 55 </a>
56 56 <ul class="dropdown-menu">
57 57 <li><a ui-sref="app.updateFuelManager" href="#/updateFuelManager">Update Fuel Manager</a></li>
  58 + <li>
  59 + <a ui-sref="app.enterFuelOrder">Enter Fuel Order</a>
  60 + </li>
58 61 <li><a ui-sref="app.fuelManager" href="#/fuelManager">Ramp Free Manager</a></li>
59 62 <li class="dropdown-submenu">
60 63 <a tabindex="-1" href="#">Tax Manager</a>
... ...
app/partials/viewcontact/viewcontact.controller.js
... ... @@ -63,7 +63,8 @@
63 63 $scope.cancelToogle = function(){
64 64 $('#toogleMail').css('display', 'none');
65 65 }
66   -
  66 + $scope.disableNext = true;
  67 + $scope.disablePrev = true;
67 68 setInterval(function(){
68 69 var checkMaxLength = $scope.contactIdList.length - one;
69 70 if (index === checkMaxLength) {
... ... @@ -76,7 +77,7 @@
76 77 }else{
77 78 $scope.disablePrev = false;
78 79 }
79   - }, 3);
  80 + }, 1);
80 81  
81 82 $scope.editName = true;
82 83 $scope.editCompany = true;
... ...
app/partials/viewcontact/viewcontact.html
  1 +<style type="text/css">
  2 + .toggle.btn{
  3 + width: 140px !important;
  4 + }
  5 +</style>
  6 +
1 7 <div class="myLoader" ng-show="showLoader">
2 8 <img src="../img/hourglass.gif" width="50px;">
3 9 </div>
... ... @@ -30,7 +36,7 @@
30 36 <h3 style="margin-right: 0px;">Contact Detail</h3>
31 37 <i class="fa fa-trash-o deleteTierIcon" ng-click="deleteContact(contactDetail.id)" style="color: white;" aria-hidden="true"></i>
32 38 <div class="pull-right" style="margin-top: 5px; margin-right: 10px;">
33   - <toggle ng-model="contactDetail.priceEmail" ng-change="changePriceEmail(contactDetail.id)" size="customToogle" on="PRICE EMAIL ON" off="PRICE EMAIL OFF"></toggle>
  39 + <toggle ng-model="contactDetail.priceEmail" style="width: 140px;" ng-change="changePriceEmail(contactDetail.id)" size="customToogle" on="PRICE EMAIL ON" off="PRICE EMAIL OFF"></toggle>
34 40 </div>
35 41  
36 42 </div>
... ...
... ... @@ -33,6 +33,7 @@
33 33 "angular-cookies": "~1.6.4",
34 34 "angular-resource": "~1.6.4",
35 35 "angular-xeditable": "~0.7.1",
36   - "angular-bootstrap-toggle": "~0.1.2"
  36 + "angular-bootstrap-toggle": "~0.1.2",
  37 + "angular-ui-select2": "^0.0.5"
37 38 }
38 39 }
... ...