/**
* This object will handle all the Manage Peer Group functionalities
*
* @class lexisnexis.component.ManagePeerGroup
*/
jQuery.namespace('lexisnexis.component');
lexisnexis.component.managepeergroup = lexisnexis.component.Table.extend({
/**
* initialize the table and register for functionality
*
* @method ready
*/
data :{
searchText : "",
searchFieldId : '#ln_manage_peergroup_search',
previousVal: '',
createdBySearchText : "",
specialtySearchText : "",
columnsArray : ["pgm_name","pgm_specialty","pgm_providerCount","pgm_subClient","pgm_DateCreated","pgm_CreatedBy"],
delay : (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})()
},
ready : function() {
var cs = this;
cs.InitAvailPeerGroupTable();
cs.registerPeerGroupSearch();
cs.populatePeerGroupSpcialty();
cs.populatePeerGroupCreatedBy();
cs.registerCreatedBySearch();
cs.registerSpecialtySearch();
cs.registerCreatePeerGroupBtn();
//cs.adjustTableBodyHeight();
$("#copy_peer_group").on('show.bs.modal',function(e) {
$('#peerGroupSave').prop("disabled",false);
});
$("#ln_manage_peergroup_search").val('');
},
registerCreatedBySearch : function() {
var cs = this;
$("#ln_topmenu_ln_createdBy").on("click","li a", function() {
$("#ln_peerGrpCreatedBy").html($(this).text());
$("#ln_peerGrpCreatedBy").attr("data-key", $(this).attr("data-key"));
cs.data.createdBySearchText = $(this).attr("data-key");
if ((cs.data.createdBySearchText == '#CURRENTUSER#') && ($(this).text() == 'MY PEER GROUPS')) {
cs.data.createdBySearchText = $('#current_user_val').val();
}
$('#availablepgtable').DataTable().ajax.reload();
});
},
registerSpecialtySearch : function() {
var cs = this;
$("#ln_topmenu_ln_Specialty").on("click","li a", function() {
$("#ln_peerGrpSpecialty").html($(this).text());
$("#ln_peerGrpSpecialty").attr("data-key",
$(this).attr("data-key"));
cs.data.specialtySearchText = $(this).attr("data-key");
if(cs.data.specialtySearchText =="-1"){
cs.data.specialtySearchText = "";
}
if(cs.data.specialtySearchText =="NO SPECIALTY"){
cs.data.specialtySearchText = "NO SPECIALTY";
}
$('#availablepgtable').DataTable().ajax.reload();
});
},
populatePeerGroupCreatedBy : function(){
var cs=this;
$.ajax({
'url' : LN.getContextPath() + '/getPeerGroupCreatedBy',
'dataType' : 'json',
'method' : 'POST',
'data' : {
"selDataSet":$('#ln_topmenu_dataset').attr('datasetkey'),
'selBenchMark' : $('#ln_benchid').attr("data-key")
},
'beforeSend' : function(xhr) {
xhr.setRequestHeader('X-TransactionID', LN.getPage().getTransactionID());
},
'success' : function(data, textStatus, jqXHR) {
$('#ln_topmenu_ln_createdBy').empty();
var object = JSON.stringify(data);
$.each($.parseJSON(object), function(idx, obj) {
var createdBy = obj.split("@")[0];
var newliOption = "<li><a href='#' data-key='"+idx+"'>"+createdBy+"</a>";
$('#ln_topmenu_ln_createdBy').append(newliOption);
});
},
'complete' : function(data, textStatus, jqXHR) {
}
});
},
populatePeerGroupSpcialty : function(){
var cs=this;
$.ajax({
'url' : LN.getContextPath() + '/getPeerGroupSpecialty',
'dataType' : 'json',
'method' : 'POST',
'data' : {
"selDataSet":$('#ln_topmenu_dataset').attr('datasetkey'),
'selBenchMark' : $('#ln_benchid').attr("data-key")
},
'beforeSend' : function(xhr) {
xhr.setRequestHeader('X-TransactionID', LN.getPage().getTransactionID());
},
'success' : function(data, textStatus, jqXHR) {
$('#ln_topmenu_ln_Specialty').empty();
var object = JSON.stringify(data);
$.each($.parseJSON(object), function(idx, obj) {
var specialty = obj;
var newliOption = "<li><a href='#' data-key='"+specialty.specialty+"'>"+specialty.specialtyDesc+"</a>";
$('#ln_topmenu_ln_Specialty').append(newliOption);
});
},
'complete' : function(data, textStatus, jqXHR) {
}
});
},
registerPeerGroupDetail : function(){
$('.peerGroupDetail').bind('click', function(e){
if($(this).attr('peerGroupKey')){
cs.data.peerGroupKey = $(this).attr('peerGroupKey');
}
if($(this).attr('peerGroupKey')){
cs.data.showIcons = $(this).attr('showIcons');
}
$('#error').css("display", "none");
e.preventDefault();
$.ajax({
url : LN.getContextPath()+'/updatepeergroupkey',
data : {
"peerGroupKey" : cs.data.peerGroupKey,
"showIcons" : cs.data.showIcons
},
type : "POST",
success : function(data) {
location.href=LN.getContextPath()+'/managepeergroupdetail';
}
});
});
},
registerCopyPeerGroup : function(){
var cs= this;
$('.copyPeerGroup').on("click" ,function(e){
$('#peerGroupSave').unbind('click');
var peerGroupName = $(this).attr('peerGroupName');
var peergroupKey = $(this).attr('peergroupkey');
$('#ln-errorMsgSavePeer').html("");
$('#peerGroupSaveName').val(peerGroupName);
cs.data.delay(function(){
$('#peerGroupSaveName').on('keyup',function (e) {
var peerName= $('#peerGroupSaveName').val().trim();
if(LN.containsSpecialCharacters(peerName)){
$('#ln-errorMsgSavePeer').html("You are only allowed to use the following special characters: . (Space) _ , - $");
}else{
$('#ln-errorMsgSavePeer').html("");
$('#peerGroupSave').prop("disabled",false);
}
});
}, 1000 );
$('#copy_peer_group').modal({
backdrop : 'static',
keyboard: 'false'
});
cs.savePeerGroup(peergroupKey, peerGroupName);
});
},
registerCreatePeerGroupBtn : function(){
var cs= this;
$('.createPeerGroup').on("click" ,function(e){
sessionStorage.CreatePeerGroupFlag="true";
sessionStorage.CPCreatePeerGroupFlag="false";
sessionStorage.EditPeerGroupName="";
sessionStorage.EditPeerGroupKey=0;
btnQuickSubmit('createpeergroup');
});
},
registerEditPeerGroupBtn : function(){
var cs= this;
$('.editPeerGroup').on("click" ,function(e){
var peerGroupName = $(this).attr('peerGroupName');
var peerGroupKey = $(this).attr('peerGroupKey');
sessionStorage.CreatePeerGroupFlag="false";
sessionStorage.EditPeerGroupKey=peerGroupKey;
sessionStorage.EditPeerGroupName=peerGroupName;
if(LN.containsSpecialCharacters(peerGroupName)){
$('#ln-errorMsgSavePeer').html("You are only allowed to use the following special characters: . (Space) _ , - $");
}else{
$('#ln-errorMsgSavePeer').html("");
btnQuickSubmit('createpeergroup');
}
});
},
savePeerGroup : function(peergroupKey, peerGroupName){
var cs = this;
$('#peerGroupSave').on("click", function(e){
this.disabled = true;
var newPeerGroupName ="";
var token = $(window.location).attr('search');
var ajaxUrl =LN.getContextPath()+'/savePeerGroup';
newPeerGroupName = $('#peerGroupSaveName').val().trim();
if(LN.containsSpecialCharacters(newPeerGroupName)){
return ;
}
var checkLowerName = newPeerGroupName.toLowerCase();
if (checkLowerName == 'unassigned')
{
$( "#ln-errorMsgSavePeer" ).html("Invalid Peer Group Name - System Peer Group Name is not allowed.");
return;
}
if (newPeerGroupName.length > 0) {
if (newPeerGroupName.length <= 32) {
$.ajax({
url : ajaxUrl + token,
type : "POST",
data : {
'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"),
'peergroupName' : peerGroupName,
'peergroupKey' : peergroupKey,
'newPeerGroupName' : newPeerGroupName
},
success : function(data){
$('#ln-errorMsgSavePeer').html("");
if(data == 1){
$('#ln-errorMsgSavePeer').html("Peer group name already exists.");
}
else{
$('#peerGroupSave').prop("disabled",false);
$('#copy_peer_group').modal('hide');
$('#availablepgtable').DataTable().ajax.reload();
}
}
});
} else {
$('#ln-errorMsgSavePeer').html("Please enter a peer group name not to exceed 32 characters.");
}
} else {
$('#ln-errorMsgSavePeer').html("Please enter a Peer group name.");
}
});
},
registerDeletePeerGroup : function(){
var cs= this;
$('.deletePeerGroup').on("click" ,function(e){
$('#delpeerGroupOK').unbind('click');
var peerGroupName = $(this).attr('peerGroupName');
var peerGroupId = $(this).attr('peerGroupKey');
$('#del_PeerGroupName').html(peerGroupName);
$('#del_peer_group').modal({
backdrop : 'static',
keyboard: 'false'
});
cs.deletePeerGroup(peerGroupId);
});
},
deletePeerGroup : function(peerGroupId){
$('#delpeerGroupOK').on("click",function(e){
$.ajax({
url: "ppmDeletePeerGroup",
type : "POST",
data: {
"peerGroupKey" : peerGroupId
},
success: function(data){
$("div#del_peer_group").modal("hide");
if(data==0) {
$('#availablepgtable').DataTable().ajax.reload();
} else {
$.growl({
title : "",
message : "Error Occured! Template Not Deleted"
});
}
},
error: function(data){
$.growl({
title : "",
message : "Error Occured! Template Not Deleted"
});
}
});
});
},
registerPeerGroupSearch: function() {
var cs=this;
$(cs.data.searchFieldId).on('keyup',function (e) {
var isValidSearch=true;
if (!isValidateSearch(e,cs.data.searchFieldId,false)) {
isValidSearch= false;
cs.data.previousVal = $(cs.data.searchFieldId).val();
}
var searchText = $("#ln_manage_peergroup_search").val().toUpperCase();
cs.data.searchText = searchText;
cs.data.delay(function(){
if(isValidSearch && isValidTextLength(cs,$(cs.data.searchFieldId).val(),3)){
$('#availablepgtable').DataTable().ajax.reload();
}
}, 1000 );
});
},
adjustTableBodyHeight: function(tableID){
var cs=this;
var heightOffset=2;
if(!cs.isIE()){
heightOffset = 0.5;
}
var tableBody=$(tableID+"_wrapper "+".dataTables_scrollBody");
var divheight;
//var foo = tableBody.css("width");
if(tableBody.css("height")){
divheight=parseInt(tableBody.css("height").split("px")[0]);
}
if(divheight && divheight<300){
var newdivheight = divheight+heightOffset+"px";
tableBody.css("min-height",newdivheight);
if (divheight < 50) {
divheight = divheight + 10;
var newdivheight = divheight+heightOffset+"px";
tableBody.css("min-height",newdivheight);
// $(tableID+"_wrapper table").css("border-bottom","none");
}
}
},
InitAvailPeerGroupTable: function() {
var contextPath=LN.getContextPath();
var cs=this;
$('#availablepgtable').dataTable().fnDestroy();
var table = $('#availablepgtable')
.dataTable({
"dom": 'rt<"bottom"ilp>',
"scrollY" : "310px",
"sScrollX" : "100%",
"scrollXInner": "100%",
"scrollCollapse": true,
"bFilter" : false,
"pageLength": 10,
"processing" : false,
"serverSide" : true,
"iTotalRecords" : "dataTableModel.iTotalRecords",
"iDisplayLength" : 100,
"searching": false,
"paging": true,
"pagingType": "simple_numbers",
//"bResponsive" :false,
"bDeferRender" : true,
//"autoWidth": false,
"language": {
"emptyTable": "No Peer Group Exists"
},
"ajax" : {
"cache": false,
"url" : 'getManagePeerGroupPopulation',
"type" : "POST",
"dataType" : "json",
"data" : function ( d ) {
return $.extend( {}, d, {
"columnNames":cs.data.columnsArray,
'searchPeerGrpName':cs.data.searchText,
'createdBySearchText' : cs.data.createdBySearchText,
'specialtySearchText' : cs.data.specialtySearchText,
"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")
} ); },
'beforeSend': function(xhr) {
cs.handleBeforeAjaxLoad("#availablepgtable");
cs.data.defaultStartingRowPatients = -1;
xhr.setRequestHeader('X-TransactionID', LN.TRANSACTION_ID);
},
'complete' : function() {
cs.handleAfterAjaxLoad("#availablepgtable");
setTimeout(function(){
table.fnAdjustColumnSizing(false);
},200);
},
"dataFilter" : function(json,type){
var obj = jQuery.parseJSON(json);
return json;
}
},
"order" : [
[0,"asc" ]
],
"columnDefs": [
{ "targets": [0, 1, 5],
"sClass": 'text-left text-nowrap'
},
{
"targets": [2, 3, 4, 6, 7, 8],
"sClass": 'text-center'
},
{
"render": function (data, type, row) {
var cmp = row[6];
var currUser = $('#current_user_val').val();
if(cmp == currUser){
return '<a href="javascript:void(0);" class ="peerGroupDetail" showIcons ="block" peerGroupKey=' + row[0] +'>' + row[1] + '</a>';
}else{
return '<a href="javascript:void(0);" class ="peerGroupDetail" showIcons ="none" peerGroupKey=' + row[0] +'>' + row[1] + '</a>';
}
}, "targets": [0],
"searchable": true
},
{
"targets": [1],
"render": function (data, type, row) {
return row[2] ;
}
},
{
"render": function (data, type, row) {
return row[3] ;
},
"targets": [2]
},
{
"render": function (data, type, row) {
return row[4] ;
},
"targets": [3]
},
{
"render": function (data, type, row) {
return row[5] ;
},
"targets": [4]
},
{
"render": function (data, type, row) {
return row[6].split("@")[0];
}, "targets": [5]
},
{
"render": function (data, type, row) {
return '<a href="javascript:void(0);" class="copyPeerGroup" peerGroupName="'+ row[1]+'" peerGroupKey=' + row[0] +'><img src="'+contextPath+'/resources/default/images/copy.png" width="20" /></a>';
}, "targets": [6],
"sortable":false
},
{
"render": function (data, type, row) {
var cmp = row[6];
var curr_User = $('#current_user_val').val();
if(cmp == curr_User){
return '<a href="javascript:void(0);" class="editPeerGroup" peerGroupName="'+ row[1]+'" peerGroupKey=' + row[0] +'><img src="'+contextPath+'/resources/default/images/edit.png" width="15" /></a>';
}else{
return '<a href="javascript:void(0);"></a>';
}
}, "targets": [7],
"sortable":false
},
{
"render": function (data, type, row) {
var cmp = row[6];
var currUser = $('#current_user_val').val();
if(cmp == currUser){
return '<a href="javascript:void(0);" class="deletePeerGroup" peerGroupName="'+ row[1]+'" peerGroupKey=' + row[0] +'><img src="'+contextPath+'/resources/default/images/delete.png" width="16" /></a>';
}else{
return '<a href="javascript:void(0);"></a>';
}
}, "targets": [8],
"sortable":false
}
],
'fnDrawCallback' : function(oSettings ) {
cs.addGotoPageComponentPPM("availablepgtable","availablepgtable_gotobtn","availablepgtable_gototxt","availablepgtable_gotoerror");
cs.registerCopyPeerGroup();
cs.registerDeletePeerGroup();
cs.registerPeerGroupDetail();
cs.registerEditPeerGroupBtn();
cs.adjustTableBodyHeight("#availablepgtable");
},
"fnPreDrawCallback" : function(oSettings) {
if (oSettings.aaSorting[0] && oSettings.aaSorting[0][0] !== 1 ) {
cs.data.manualsort = true;
}
return true;
}
});
}
});