gerd
11/7/2016 - 6:06 PM

addPeerGroupModal.js

jQuery.namespace('lexisnexis.component');
lexisnexis.component.addpeerGroupModal = lexisnexis.component.Table
        .extend({
        	data : {
        		addPeerGroupTable : "#availableaddpeergrouptable" , 
        		peerGroupTableId :"#addPeerGrp",
        		searchFieldId : '#ln_addpeerGrp_grid_search',
        	    isValidChar : false,
        	    searchText : "",
        	    selectedID : "",
                
            	  delay : (function(){
	    			  var timer = 0;
	    			  return function(callback, ms){
	    				  clearTimeout (timer);
	    				  timer = setTimeout(callback, ms);
	    			  };
	    			})()        		        
            },
        	    ready : function() {
        	        var cs = this;
        	       $("#addpeerGrpModalCloseIcon").click(function(e) {
				    	cs.checkDisplayPeerGrpConfirmation();
				    });
        	      
				    $("button#addpeerGrpsModalCancelBtn").click(function(e) {
				    	cs.checkDisplayPeerGrpConfirmation();
				    });
				  
				    
				    $("#add_peerGroup, #ln_addpeergroupbtn").click(function(e) { //alert("test")
				    	var selectedProvCount= $("#selectedProviderCount").attr('value');
				    	if(this.id=="add_peerGroup"){
				    		if(parseInt(selectedProvCount, 10) < 2){
	            			 return;
	            		 }
				    	}
				    	
				    	$('#ln_addpeerGroupModal').modal("show"); // add this code
				    	$("#messageText").hide();
				    	$("#maxProvidersAllowed").hide();
				    					    	
				    	$( "#ln_clearExcPatientsBtn" ).prop( "disabled", true );
				    	$(cs.data.addPeerGroupTable +' input.activeChkBox').prop('checked', false); 
					    $('#ln_addpeerGrp_grid_search').val('');
					    $('#ln_addpeerGrp_grid_search').placeholder();
					    cs.data.searchText = '';
					    if(this.id === "add_peerGroup"){
                        if(parseInt(selectedProvCount, 10) > 250){
				    		$("#messageText").show();
				    	}else{
				    	cs.initAvailPeerGroupTable();
				        }
					    }else if(this.id === "ln_addpeergroupbtn"){
                              cs.initAvailPeerGroupTable();
					    } 				    	
				    });
				    
				    cs.registerSelectPeerGroupBtnAction();
				    //validateSearch(cs, cs.data.searchFieldId);
				    cs.registerPeerGrpSearch();
        	    },
        	   
        	   performRadioAction : function(cs){
        	    	var $unique = $(cs.data.addPeerGroupTable +' input.activeChkBox');
        	    	var providerId =  $('#ln_provider_profile_provider_id').val();
        	    	$unique.click(function() { 
        	    	    $unique.filter(':checked').not(this).removeAttr('checked');
					    if ($(this).prop("checked") == true) {
        	    	    	$( "#ln_clearExcPatientsBtn" ).prop( "disabled", false );
        	    	    	var existingProvCount = $($(this).closest('tr').find('td')[4]).text();
        			    	var selectedProvCount= $("#selectedProviderCount").attr('value');
        			    	var totalCountBool= parseInt(selectedProvCount, 10)+ parseInt(existingProvCount, 10) > 250;
        			    	if(providerId){
        			    		totalCountBool= parseInt(selectedProvCount, 10)+ parseInt(existingProvCount, 10) >= 250;
        			    	}
        			    	 if(totalCountBool){
        				    		$("#messageText").show();
        				    		$("#maxProvidersAllowed").hide();
        				    		$( "#ln_clearExcPatientsBtn" ).prop( "disabled", true );
        				      } else{
        				    	 cs.validateSelectedProviders(); 
        				      }
					    } else if ($(this).prop("checked") == false) {
					    	$( "#ln_clearExcPatientsBtn" ).prop( "disabled", true );
					    	$("#messageText").hide();
					    	$("#maxProvidersAllowed").hide();
					}
        	    	    
        	    	});
        	     },
        	     
        	     validateSelectedProviders: function(){
        	    	 var cs = this;
        	    	 var providerPeerGroupUrl='getPeerGroupProviderInfo';
        	    	 var providerId= $('#ln_provider_profile_provider_id').val();
        	    	 var peerGroupkey = $(cs.data.addPeerGroupTable +' input.activeChkBox:checked').val();
        	    	 var jsonProviders =  sessionStorage.getItem("addPeerGroupProviders");
        	    	 var fromScreen ;
        	    	 if(providerId){
        	    		 fromScreen = 'providerProfileScreen';
        	    	 }
        	    	 $.support.cors = true;
             		$.ajax({
   		              url: providerPeerGroupUrl,
   		              dataType: 'json',
   		              method: 'post',
   		              'beforeSend': function(xhr) {
   		                 // xhr.setRequestHeader('X-TransactionID', LN.TRANSACTION_ID);
   		                },
   		              'data': {
   		                'peerGroupKey': peerGroupkey,
   		                'selProviders' : jsonProviders ,
   		                'fromScreen' : fromScreen
   		              },
   		              'success': function(data, textStatus, jqXHR) {
   		            	  if(data=='1'){
   		            		$( "#ln_clearExcPatientsBtn" ).prop( "disabled", true );
   		            		$("#maxProvidersAllowed").show();
   		            		//$("#messageText").hide();
   		            	 }else{
   		            		$("#maxProvidersAllowed").hide(); 
   		            		//$("#messageText").hide();
   		            	 }
   		              },
   		              'complete': function(jqXHR, textStatus) {
   		            	    $("#messageText").hide();
   		                }
   		              });
        	     },
        	     
        	     checkDisplayPeerGrpConfirmation: function()
        	     {
        	    		var cs = this;
        	    		cs.data.selectedID = "";
        	    		$('#ln_addpeerGroupModal').modal("hide");	
        	    		$('#ln_addpeerGroupModal').removeData();

        	    		
        	     },
        	     /////////// Search Functions //////////////////////////

        	     registerPeerGrpSearch: function() {
                 	var cs=this;
                 	$(cs.data.searchFieldId).on('keyup',function (e) {
                		var isValidSearch=true;
                		if (!isValidateSearch(e,cs.data.searchFieldId, false)) {
                			isValidSearch= false;
            			}
                 		
             			var searchText = this.value.trim().toUpperCase();
             			cs.data.delay(function(){
	             				if(isValidSearch){
		     	                  	if((searchText.trim().length>2) || (searchText.trim().length==0)){
		     	                  		cs.data.searchText = searchText;
		     	                  	 $('#availableaddpeergrouptable').DataTable().ajax.reload(function(data){
		     	                  		 cs.noDataCleanup(data.iTotalDisplayRecords);
		     	                  	 });
	     	                  	}
             				}
            		 	}, 1000 );
                 	});   
                 },
                 
                registerSelectPeerGroupBtnAction : function() {
                	var cs = this;
                	$( "#ln_clearExcPatientsBtn").on('click',function(e){
                		var newPeerGroupKey = $(cs.data.addPeerGroupTable +' input.activeChkBox:checked').val();
                		var providerId=  $('#ln_provider_profile_provider_id').val();
                		var saveAddPeerGroupUrl= 'saveAddPeerGroup';
                		var jsonProviders =  sessionStorage.getItem("addPeerGroupProviders");
                		var fromScreen ;
                		if(providerId){
                			fromScreen = 'providerProfileScreen';
                		}
                		var newPeerGroupSpecialty =   $($(cs.data.addPeerGroupTable +' input.activeChkBox:checked').closest('tr').find('td')[3]).text();
                 		var selDataSet =  $('#ln_topmenu_dataset').attr('datasetkey');
                 		var selDataSetRangeBegin = $('#ln_topmenu_dataset_range_id').attr("beginDateKey");
                 		var selDataSetRangeEnd = $('#ln_topmenu_dataset_range_id').attr("endDateKey");
                 		var newPeerGroupDescription = $($(cs.data.addPeerGroupTable +' input.activeChkBox:checked').closest('tr').find('td')[2]).text();
                 		var selDataSetRangeRiskColumnName = $('#ln_topmenu_dataset_range_id').attr("riskColumnName");
                 		
                		$.ajax({
      		              url: saveAddPeerGroupUrl,
      		              type : "POST",
                          dataType : "json",
      		              'beforeSend': function(xhr) {
      		                //  xhr.setRequestHeader('X-TransactionID', LN.TRANSACTION_ID);
      		            	$( "#ln_clearExcPatientsBtn" ).prop( "disabled", true );
      		                },
      		              data: {"selDataSet" : selDataSet,
                              "selDataSetRangeBegin":  selDataSetRangeBegin,
               				"selDataSetRangeEnd":  selDataSetRangeEnd,
               				"selDataSetRangeRiskColumnName":  selDataSetRangeRiskColumnName,
              				"newPeerGroupKey" : newPeerGroupKey,
              				"peerGroupSpecialty" : newPeerGroupSpecialty,
              				"peerGroupDescription" : newPeerGroupDescription,
      						"selectedProviders" : jsonProviders , 
      						"fromScreen" : fromScreen
                          	},
      		              'success': function(data, textStatus, jqXHR) {
      		              },
      		              'complete': function(jqXHR, textStatus) {
      		            	$('#ln_addpeerGroupModal').modal("hide");
      		                }
      		              });
                	});
                },
                
                setCheckBoxes: function(tableId) {
               		var cs = this;
               		var table = $(tableId).DataTable();
               		table.rows(function(idx,data,node) {
               			var rowNode = $(tableId).find('tbody tr:eq(' + idx +')').get(0);
               			var checkbox = $(rowNode).find('input[type="checkbox"]');
               			var checkboxVal = $(checkbox).val();
               			var i = 0;
               		
               			if (cs.data.selectedID == checkboxVal) {
               					$(tableId).find('tbody tr:eq(' + idx +')').find('input[type="checkbox"]').prop('checked',true);
                   				$(checkbox).prop('checked',true);
               			}
               			
               		});
               	},
               	
        	    initAvailPeerGroupTable: function() {  
        	    	var cs=this;
        	    	$(cs.data.addPeerGroupTable).dataTable().fnDestroy();
        	        var table = $('#availableaddpeergrouptable')
        	        		.dataTable({
        	        			"dom": 'R<"top"f>rt<"bottom"ilp><"clear">',
                            	scrollY: "300px",
                                scrollX: "true",
                                scrollCollapse: true,
                                "bFilter" : false,
                                "iTotalRecords" : "dataTableModel.iTotalRecords",
                                "iDisplayLength" : 10,
                                "processing" : false,
                                "serverSide" : true,
                                "bAutoWidth" : true,
                                "bLengthChange" : true,
                                "bResponsive" :true,
                                "ordering" : true, 
                                "paging": true,
                                "pagingType": "simple_numbers",                                  
                                "bDeferRender" : true,
                                "language": {
        	                        "emptyTable":     "No Peer Group Exists"
        	                    },
        	                    "ajax" : {
                                    "cache": false,
                                    "url" : 'getPeerGroupPopulationsForCurrentUser',
                                    "type" : "POST",
                                    "dataType" : "json",
                                    "data" : function ( d ) {
                                        return $.extend( {}, d, {
                                        	"columnNames":cs.getCurrentSummaryColumnNamesArray(cs.data.peerGroupTableId),
                             				'searchPeerGrpName':cs.data.searchText,
                             				"selDataSet":$('#ln_topmenu_dataset').attr('datasetkey'),
                                            'selDataSetRangeBegin':  $('#ln_topmenu_dataset_range_id').attr("beginDateKey"),
                            				'selDataSetRangeEnd':  $('#ln_topmenu_dataset_range_id').attr("endDateKey"),
                            				'selSubClientIds' : $('#ln_subClient_id').attr("data-key"),
                            				'selBenchMark' : $('#ln_benchid').attr("data-key"),
                            				'selDataSetRangeRiskColumnName':  $('#ln_topmenu_dataset_range_id').attr("riskColumnName"),
                            				'currentUserVal':$('#current_user_val').val()
                                        } ); },
                                    
                                    'beforeSend': function(xhr) {
                                        //LN.debug("beforeSend Patient");
    					                cs.data.defaultStartingRowPatients = -1;                                    
                                    	xhr.setRequestHeader('X-TransactionID', LN.TRANSACTION_ID);
                                        cs.handleBeforeAjaxLoad(cs.data.addPeerGroupTable);
                                    },
                                    'complete' : function() {
                                        //LN.debug("Get Patient Exclusion complete");
                                        cs.handleAfterAjaxLoad(cs.data.addPeerGroupTable);
                                        setTimeout(function(){
                                        table.fnAdjustColumnSizing(false);
                                        	
                                        },200);
                                        $("input.activeChkBox").click(function() {
                                        	if (!this.checked) {
                                        		cs.data.selectedID = "";
            	                    		} else  {
            	                    			cs.data.selectedID = $(this).val();
            	                    			
            	                    		}
            	                    	});
                                       
                                    },
                                    "dataFilter" : function(json,type){
                                    	var obj = jQuery.parseJSON(json);
                                    	return json;
                                    }                                       
                                },
                        "order" : [
                                           [1,"asc" ]
                                           ],       
        	    		"columnDefs": [
        				               		{
        				               			"width": "3%",
        				               			"render" : function(data,type,row) {
        				               				if(row[8]=="true"){
        				               					$( "#ln_clearExcPatientsBtn" ).prop( "disabled", false );
               				               			 	return '<input type="checkbox" checked id="activeChkBox" class="activeChkBox"' + ' value=' + data +'>';	        				               					
        				               				}else{
        				               					return '<input type="checkbox" id="activeChkBox" class="activeChkBox"' + ' value=' + data +'>';
        				               				}
        				               			 
        				               			},
        				               			"targets": [0],
        				               			"sortable":false
        				               		},
        	                           { 
        				               			"targets": [1], 
        				               			"sClass": 'text-left ln-wrap' ,
        				               			"width": "15%",
        				               			"searchable": true
        				               	},
        				               	{
         	                               "targets": [2],
         	                               "width": "25%",
         	                               "sClass": 'text-left ln-wrap'
         	                           },
        	                           {
        	                               "targets": [3],
        	                               "width": "10%",
        	                               "sClass": 'text-left ln-wrap'
        	                           },
        	                           {
        	                               "targets": [ 4, 5, 7],
        	                               "width": "12%",
        	                               "sClass": 'text-left ln-wrap'
        	                           },
        	                           {
        	                               "targets": [6],
        	                               "width": "10%",
        	                               "sClass": 'text-left ln-nowrap'
        	                           },
        	                           {
        	                               "render": function (data, type, row) {
        	                                   return  data ;
        	                               }, "targets": [1]
        	                           }
        	                        
        	                          
        	                       ],
        	        'fnDrawCallback' : function(oSettings ) {
        	        	cs.addGotoPageComponentPPM("availableaddpeergrouptable","availableaddpeergrouptable_gotobtn","availableaddpeergrouptable_gototxt","availableaddpeergrouptable_gotoerror");
        	        	cs.performRadioAction(cs);
        	        	cs.setCheckBoxes(cs.data.addPeerGroupTable);
        	        	//oSettings._iDisplayLength = 10;
        	         },
        	         "fnPreDrawCallback" : function(oSettings) {
        	        	if (oSettings.aaSorting[0] && oSettings.aaSorting[0][0] !== 1 ) {
                     		cs.data.manualsort = true;
                     		}
                        	return true;
                        },
                      "fnInitComplete": function(oSettings, json) {
                       	 cs.noDataCleanup(json.iTotalDisplayRecords);  
                        }
        	         });
        	        $("#availableaddpeergrouptable")
                    .on( 'order.dt',  function () { setTimeout(function(){
                        table.fnAdjustColumnSizing(false);
                        	
                    },0);} );
              	 }
        	});