/**
* This object will handle the patient list table
* @class lexisnexis.component.PatientList
*/
/**
* @author <a href="mailto:balaji.ranjan@lexisnexis.com">Balaji Ranjan</a>
*/
/**
* @extends lexisnexis.component.Table
*/
//jQuery.namespace('lexisnexis.component');
lexisnexis.component.EpisodeSummary = lexisnexis.component.Table
.extend({
data : {
defaultOrder : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ],
resetInfo : 'The table preferences have been reset. The page will reload in 5 seconds to update the table',
resetTitle : 'Information',
saveInfo : 'The table preferences have been saved.',
saveTitle : 'Information',
AJAX_URL : "#",
dataSetId : '#dataSet',
tableId : '#ln_episode_summary_list',
saveId : '#episodeSummaryTable_save',
resetId : '#episodeSummaryTable_reset',
USER_PREF_URL : '<c:url value="/updateUserPref" />',
defaultSortColumn : "Patient Name",
secondarySortColumn : "Episode Description",
defaultSortOrder : "desc",
secondarySortOrder : "asc"
},
/**
* initialize the table and register for functionality
* @method ready
*/
ready : function() {
var cs = this;
try {
cs.setDefaultColumnsPref();
// sets the order of the columns according to database
cs.setTableColumnOrder();
LN.debug("cs.data.tableOrder=" + cs.data.tableOrder);
cs.data.url=cs.getURL();
cs.initializeTable(cs.getURL());
cs.resetColReorder();
cs.fixColumns();
cs.displayLengthChange();
// Register for the dataset change event
LN.getPage().registerEvent(EVENT_TYPES.ON_DATASET_CHANGE,
cs, cs.onDataSetChange);
$(cs.data.tableId).DataTable();
$("#searchbox").on('keyup',function () {
LN.debug(this.value);
$(cs.data.tableId).DataTable()
.column(1)
.search('"'+this.value+'"')
.draw();
});
} catch (err) {
LN.debug("error "+err);
}
$(cs.data.saveId).click(function(e) {
cs.saveColumnOrdering();
});
},
fixColumns: function() {
var cs=this;
LN.debug("Fix columns called");
var table = $(cs.data.tableId).DataTable();
/*var fc = new $.fn.dataTable.FixedColumns(table, {
leftColumns: 4
});
fc.fnUpdate();*/
var columns = table.columns('.ln-firstHeaderRow-table:not(.ln-display-none)');
var headers = columns.header();
var i = 0;
for (;i<headers.length;i++) {
$(headers[i]).css('padding-right','0em');
}
$(headers[i-1]).css('padding-right','3.5em');
$('.DTFC_LeftHeadWrapper').css('top','4px');
$('.DTFC_LeftHeadWrapper table').css('margin-top','-88px');
$('.dataTables_scrollHeadInner table').css('margin-top','-88px');
$('#ln_episode_summary_list').dataTable().fnAdjustColumnSizing();
},
displayLengthChange:function(){
$('#tenResults').click( function () {
currentTable.iDisplayStart = 10;
currentTable.fnDraw();
});
$('#thirtyResults').click( function () {
currentTable.iDisplayStart = 30;
currentTable.fnDraw();
});
$('#fiftyResults').click( function () {
currentTable.iDisplayStart = 50;
currentTable.fnDraw();
});
$('#hunderedResults').click( function () {
currentTable.iDisplayStart = 100;
currentTable.fnDraw();
});
},
/**
* initializes the table
* @method initializeTable
*/
initializeTable : function() {
var cs = this;
LN.debug("initializeTable called ");
LN.debug(cs.data.url);
var prevColumnNamesArray=cs.getCurrentColumnNamesArray();
$(cs.data.tableId).dataTable().fnDestroy();
var currentTable = $(cs.data.tableId).dataTable(
{
"dom" : 'Rlfrt',
"scrollY" : "100px",
"sScrollX" : "100%",
"sScrollXInner" : "150%",
//Dataset change makes scrollY disappear
"bScrollCollapse" : false,
"bFilter" : false,
"iTotalRecords" : "dataTableModel.iTotalRecords",
"iDisplayLength" : 10,
"processing" : false,
"serverSide" : false,
"bAutoWidth" : false,
"bLengthChange" : false,
/*"ajax" : {
"cache": false,
"url" :cs.data.url.replace(/\?id=[^\?]*&$/,''),
"type" : "POST",
"dataType" : "json",
"data" : function(d) {
var columnNamesArray=cs.getCurrentColumnNamesArray();
LN.debug("data called");
return $
.extend(
{},
d,
{
"columnNames":columnNamesArray.length>0?columnNamesArray:prevColumnNamesArray
});
},
'beforeSend': function(xhr) {
xhr.setRequestHeader('X-TransactionID', LN.TRANSACTION_ID);
cs.handleBeforeAjax(cs);
},
'complete' : function() {
$.fn.DataTable.ext.pager.numbers_length = 5;
cs.handleAfterComplete(cs);
cs.addGotoPageComponent("providerDetailsTableId","providerDetailsTable_gotobtn","providerDetailsTableId_gototxt");
// Fix for DE940-Start
cs.data.table.fnAdjustColumnSizing(false);
// Fix for DE940-End
},
"dataFilter" : function(json,type){
var obj = jQuery.parseJSON(json);
return json;
}
},*/
"aoColumns":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],
"bDeferRender" : true,
"oColReorder": {
//Exclude first column from colreorder
"iFixedColumns": 4,
"order" :cs.data.tableOrder,
"fnReorderCallback" : function() {
var table = $(cs.data.tableId).DataTable();
var columns = table.columns('.ln-firstHeaderRow-table:not(.ln-display-none)');
var headers = columns.header();
var i = 0;
for (;i<headers.length;i++) {
$(headers[i]).css('padding-right','0em');
}
$(headers[i-1]).css('padding-right','3.5em');
}
},
"order" : [
[
cs
.getIndex(cs.data.defaultSortColumn),
"desc" ],
[
cs
.getIndex(cs.data.secondarySortColumn),
"asc" ] ],
"columnDefs" : [
{
"targets" : [3, 4, 5, 6],
"sClass":'text-center'
},
{
// The `data` parameter refers
// to the data for the cell
// (defined by the
// `data` option, which defaults
// to the column being worked
// with,
"mRender" : function(data, type,
row) {
return data;
},
"targets" : [ 7, 8],
"sClass":'text-center'
},
{
"mRender" : function(data, type,
row) {
return data;
},
"targets" : [9],
"sClass":'text-center'
},
{
"targets" : [ 1 ],
"searchable" : true,
"sortable": true,
"mRender" : function(data,type,row) {
return data;
}
},
{
"render": function ( data, type, row ) {
return '<input type="checkbox" class="activeChkBox"' + ' value=' + data +'>';
},
"targets": [0],
"sortable": false
},
{
"fnCreatedCell": function (td, sData, oData, iRow, iCol) {
},
"sClass":'text-center'
}
]
}
);
var fc = new $.fn.dataTable.FixedColumns( currentTable,{
leftColumns : 4
} );
$('#ln_episode_summary_list').dataTable().fnAdjustColumnSizing();
}
});
escapeStr = function(str) {
str = escape(str);
return str;
};