Files
old-wiaas-legacy/api-wiaas/client/js/components/bids/bids-view.directive.js
2018-06-11 11:09:35 +02:00

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';
}
}
})();