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