directivesModule.directive('custNgBilete',function(browserInfoService,$http){ var directiveTmplBaseUrl = browserInfoService.getTemplateBaseUrl('directives'); return { scope : { columnsConfig : "=", ajaxUrl : "@", nrSerieTitle : "@", dataIntrareTitle : "@" }, restrict : 'E', templateUrl : directiveTmplBaseUrl + 'custNgSPABilete.html', link : function($scope,element,attrs){ var QueryEntity = function(column,value,opInLink,opType){ this.column = column; this.value = value; this.opInLink = opInLink; this.opType = opType; this.lads = []; }; $scope.nrSerieDefault = "Selectati nr serie"; var dataIntrareDefault = "TOATE"; $scope.filterModel = {}; $scope.table = { isEmpty : true }; $scope.pageGroup = null; $scope.pageNum = null; var filterFct = function(context){ $scope.context = context; var constructFilterParams = function(){ var filterParams = { queryEntity : null, pageNum : null, pageGroup : null, addit : null }; $scope.columnFiltersExist = false; if(context == "onChangeNrSerie"){ filterParams.queryEntity = new QueryEntity("nrSerie",$scope.nrSerie,null,2); } if(context == "onChangeDataIntrare"){ filterParams.queryEntity = new QueryEntity("nrSerie",$scope.nrSerie,null,2); if($scope.dataIntrare != dataIntrareDefault){ filterParams.queryEntity.lads.push(new QueryEntity("dataIntrare",$scope.dataIntrare,"and",1)); } } if(context == "onChangePageGroup" || context == "onChangePageNum" || context == "onEnterKeyPressed"){ filterParams.queryEntity = new QueryEntity("nrSerie",$scope.nrSerie,null,2); if($scope.dataIntrare != dataIntrareDefault){ filterParams.queryEntity.lads.push(new QueryEntity("dataIntrare",$scope.dataIntrare,"and",1)); } console.log($scope.pageGroup); filterParams.pageNum = $scope.pageNum; filterParams.pageGroup = $scope.pageGroup; angular.forEach($scope.filterModel,function(value,key){ if(value.length > 0){ $scope.columnFiltersExist = true; filterParams.queryEntity.lads.push(new QueryEntity(key,value,"and",1)); } }); } return filterParams; }; $('#loaderDiv').show(); $http.get($scope.ajaxUrl + "&" + $.param({ resource : "bilete", context : context, filter : angular.toJson(constructFilterParams()) })) .success(function(serverResponse){ $scope.dateIntrare = serverResponse.additInfo.dateIntrare; $scope.dateIntrare[0] = dataIntrareDefault; $scope.table = {}; $scope.table.groupSelectOptions = serverResponse.groupSelectOptions; $scope.table.pageSelectOptions = serverResponse.pageSelectOptions; $scope.table.totalPageNum = serverResponse.totalPageNum; $scope.table.items = serverResponse.items; $scope.table.isEmpty = serverResponse.isEmpty; $scope.table.totalItemsCount = serverResponse.totalItemsCount; $scope.table.filteredItemsCount = serverResponse.filteredItemsCount; $scope.pageNum = serverResponse.crtPageNum; $scope.pageGroup = serverResponse.crtPageGroup; if(context == "onChangeNrSerie"){ $scope.filterModel = {}; $scope.dataIntrare = dataIntrareDefault; } else if(context == "onChangeDataIntrare"){ $scope.filterModel = {}; } $('#loaderDiv').hide(); }); }; var getNrSeriiFct = function(){ var params = { resource : "nrSerii" }; $http.get($scope.ajaxUrl + "&" + $.param(params)) .success(function(serverResponse){ $scope.nrSerii = serverResponse; $scope.nrSerie = $scope.nrSerii[0] = $scope.nrSerieDefault; }); }; $scope.onChangeNrSerie = function(){ if($scope.nrSerii[0] == $scope.nrSerieDefault) $scope.nrSerii.splice(0,1); filterFct("onChangeNrSerie"); }; $scope.onChangeDataIntrare = function(){ filterFct("onChangeDataIntrare"); }; $scope.onChangePageNum = function(){ filterFct("onChangePageNum"); }; $scope.onChangePageGroup = function(){ console.log($scope.pageGroup); filterFct("onChangePageGroup"); }; $scope.onEnterKeyPressed = function(event){ if(event.which == 13) { filterFct("onEnterKeyPressed"); } }; var initFunctions = [getNrSeriiFct]; angular.forEach(initFunctions,function(fct){ fct(); }); } }; });