$(function()
{
if(table)
{
$('.dataview-' + table).addClass('active');
var $tree = $('#modules').tree({name:'tree-group'});
var tree = $tree.data('zui.tree');
tree.expand($('.dataview-' + table).parents('li'));
}
$(document).on('click','.query-view', function()
{
var url = createLink('dataview', 'query', 'id=' + table);
var result = true;
if(dataview.used) result = confirm(warningDesign);
if(result) $.apps.open(url, 'bi');
});
initPager(pageID, recPerPage, recTotal, fieldCount);
$('.first-page,.left-page,.last-page,.right-page').click(function()
{
pageID = $(this).data('page');
queryTableData();
});
$('.dropup li a').click(function()
{
pageID = 1;
recPerPage = $(this).data('size');
queryTableData();
})
});
/**
* Locate page.
*
* @param string module
* @param string method
* @param string params
* @access public
* @return void
*/
function locate(module, method, params)
{
var link = createLink(module, method, params);
window.location.href = link;
}
/**
* Query table data.
*
* @return void
*/
function queryTableData()
{
var params = {};
params.pageID = pageID;
params.recPerPage = recPerPage;
params.recTotal = recTotal;
params.table = table;
params.type = type;
$.post(createLink('dataview', 'ajaxGetTableData'), params,function(resp)
{
resp = JSON.parse(resp);
buildTable(resp);
recTotal = resp.recTotal;
fieldCount = resp.fieldCount;
initPager(pageID, recPerPage, recTotal, fieldCount);
});
}
/**
* Build dataview data table.
*
* @param object resp
* @return void
*/
function buildTable(resp)
{
var dataview = resp.dataview;
var clientLang = resp.clientLang;
var minWidth = resp.fieldCount * 100 + 'px';
var html = "
";
html += "";
for(var field in resp.fields)
{
var fieldName = field;
if(typeof(dataview) != 'undefined' && typeof(dataview.fieldSettings) != 'undefined' && typeof(dataview.fieldSettings[field]) != 'undefined' && typeof(dataview.fieldSettings[field].name) != 'undefined') fieldName = dataview.fieldSettings[field].name ? dataview.fieldSettings[field].name : field;
if(typeof(dataview.langs) != 'undefined')
{
var langs = JSON.parse(dataview.langs);
if(langs && typeof(langs[field]) != 'undefined' && typeof(langs[field][clientLang]) != 'undefined') fieldName = langs[field][clientLang] ? langs[field][clientLang] : fieldName;
}
html += "| " + fieldName + " | ";
}
html += "
";
html += "";
for(var index in resp.datas)
{
var data = resp.datas[index];
html += '';
for(var field in resp.fields)
{
var tdValue = (typeof(data[field]) != 'undefined' && data[field]) ? data[field] : 'null';
html += "| " + tdValue + " | ";
}
html += '
';
}
html += '';
html += '
';
$('#datas').empty();
$('#datas').append(html);
}
/**
* Init pager.
*
* @param int pageID
* @param int recPerPage
* @param int recTotal
* @access public
* @return void
*/
function initPager(pageID, recPerPage, recTotal, fieldCount)
{
var pageID = parseInt(pageID);
var recPerPage = parseInt(recPerPage);
var recTotal = parseInt(recTotal);
var pageTotal = parseInt(Math.ceil(recTotal / recPerPage));
$('.recTotal').html(recTotalTip.replace('%s', recTotal));
$('.recPerPage').html(recPerPageTip.replace('%s', recPerPage));
$('.dropup li').removeClass('active');
$('.dropup li a').each(function()
{
if($(this).data('size') == recPerPage)
{
$(this).parent().addClass('active');
return;
}
});
$('.page-number').html('' + pageID + '/' + pageTotal + '');
$('.first-page').data('page', 1);
$('.left-page').data('page', pageID - 1);
$('.right-page').data('page', pageID + 1);
$('.last-page').data('page', pageTotal);
$('.first-page,.left-page,.last-page,.right-page').removeClass('disabled');
if(pageID == 1) $('.first-page,.left-page').addClass('disabled');
if(pageID == pageTotal) $('.last-page,.right-page').addClass('disabled');
$('#queryResult').html(viewResult.replace('%s', recTotal).replace('%s', fieldCount));
}
/**
* Set export show or hidden.
*
* @param string stat show|hide
* @access public
* @return void
*/
function setExport(stat)
{
if(stat == 'show') $('.dataview-export').removeClass('hidden');
else $('.dataview-export').addClass('hidden');
}