113 lines
3.9 KiB
JavaScript
113 lines
3.9 KiB
JavaScript
(function () {
|
|
global.dashModule
|
|
.controller('bidsViewCtrl', ['$scope', '$http', '$', '$translate', 'utilsService', bidsViewController])
|
|
.directive('bidsView', [bidsViewDirective]);
|
|
|
|
function bidsViewDirective() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'bids/html/bidsViewTemplate'
|
|
};
|
|
}
|
|
|
|
function bidsViewController($scope, $http, $, $translate, utilsService) {
|
|
$scope.getBids = getBids;
|
|
$scope.showBidMarginDialog = showBidMarginDialog;
|
|
$scope.closeBidMarginDialog = closeBidMarginDialog;
|
|
$scope.showBidRemoveDialog = showBidRemoveDialog;
|
|
$scope.closeRemoveDialog = closeRemoveDialog;
|
|
$scope.isCommercialLead = isCommercialLead;
|
|
$scope.filterBids = filterBids;
|
|
$scope.isUsedText = isUsedText;
|
|
$scope.filteredBids = [];
|
|
$scope.bidType = 'all';
|
|
let bids = [];
|
|
$scope.isMarginsDialogVisible = {};
|
|
$scope.isRemoveDialogVisible = {};
|
|
$scope.HEADER_COL = 'bid-header col-lg-4 col-md-5 col-sm-6 col-xs-6';
|
|
$scope.LABEL_COL = 'col-lg-8 col-md-7 col-sm-6 col-xs-6';
|
|
let userType = '';
|
|
|
|
function getBids() {
|
|
$http({
|
|
method: 'POST',
|
|
url: 'bids/api/getBids',
|
|
data: $.param({
|
|
filter: {}
|
|
})
|
|
}).then(setBids, utilsService.onHttpError);
|
|
}
|
|
|
|
function setBids(response) {
|
|
if (response.data && response.data.bids) {
|
|
bids = response.data.bids;
|
|
$scope.filteredBids = bids;
|
|
userType = response.data.userType;
|
|
}
|
|
}
|
|
|
|
function isCommercialLead() {
|
|
return userType === 'commercial_lead';
|
|
}
|
|
|
|
function showBidMarginDialog(idBid) {
|
|
$scope.$evalAsync(() => {
|
|
$scope.isMarginsDialogVisible[idBid] = !$scope.isMarginsDialogVisible[idBid];
|
|
});
|
|
}
|
|
|
|
function closeBidMarginDialog() {
|
|
$scope.$evalAsync(() => {
|
|
$scope.isMarginsDialogVisible = {};
|
|
});
|
|
}
|
|
|
|
function showBidRemoveDialog(idBid) {
|
|
$scope.$evalAsync(() => {
|
|
$scope.isRemoveDialogVisible[idBid] = !$scope.isRemoveDialogVisible[idBid];
|
|
});
|
|
}
|
|
|
|
function closeRemoveDialog() {
|
|
$scope.$evalAsync(() => {
|
|
$scope.isRemoveDialogVisible = {};
|
|
});
|
|
}
|
|
|
|
function isSearchedValue(bid, searchText){
|
|
const regExpresion = new RegExp(searchText, 'i');
|
|
return regExpresion.test(String(bid.bidNumber)) ||
|
|
regExpresion.test(bid.packageName) ||
|
|
regExpresion.test(bid.customer) ||
|
|
regExpresion.test(bid.commercialLead);
|
|
}
|
|
|
|
function filterBids(filterType) {
|
|
if (filterType === 'all') {
|
|
$scope.filteredBids = bids;
|
|
$scope.searchText = '';
|
|
}else if (filterType === 'available') {
|
|
$scope.filteredBids = bids.filter((bid) => {
|
|
return bid.status === 'available' && isSearchedValue(bid, $scope.searchText);
|
|
});
|
|
}else if (filterType === 'used') {
|
|
$scope.filteredBids = bids.filter((bid) => {
|
|
return bid.isUsed === 1 && isSearchedValue(bid, $scope.searchText);
|
|
});
|
|
}else if (filterType === 'expired') {
|
|
$scope.filteredBids = bids.filter((bid) => {
|
|
return bid.status === 'expired' && isSearchedValue(bid, $scope.searchText);
|
|
});
|
|
}else{
|
|
$scope.filteredBids = bids.filter((bid) => {
|
|
return isSearchedValue(bid, $scope.searchText);
|
|
});
|
|
}
|
|
}
|
|
|
|
function isUsedText(bid){
|
|
return bid.isUsed === 1 ? 'Yes' : 'No';
|
|
}
|
|
}
|
|
})();
|