znt/module/dataview/js/query.js

60 lines
1.8 KiB
JavaScript

$(function()
{
var fileName = dataview != '' ? dataview.name : '';
var exportModal = new $.zui.ModalTrigger({url: createLink('dataview', 'export', 'type=query&table=&fileName=' + fileName, '', true), type: 'iframe', width: 900});
if(document.getElementById('exportDataview'))
{
document.getElementById('exportDataview').addEventListener('click', function(e)
{
tryQuery(e);
showModel(exportModal);
});
}
if(rawMethod !== 'create') return;
var createModal = new $.zui.ModalTrigger({url: createLink('dataview', 'create', 'step=create', '', true), type: 'iframe', width: 480});
document.getElementById('saveButton').addEventListener('click', function(e)
{
tryQuery(e);
showModel(createModal);
});
});
function tryQuery(e)
{
$.ajaxSettings.async = false;
query();
$.ajaxSettings.async = true;
e.preventDefault();
}
function showModel(objModel)
{
if($('#dataform .error').length == $('#dataform .error.hidden').length)
{
var params = $('#dataform').serializeArray();
getFieldSettings();
/* Fix bug #26716. */
var fieldSettings = DataStorage.clone('fieldSettings');
for(let index in fieldSettings)
{
if(!Object.keys(DataStorage.fields).includes(index)) delete fieldSettings[index];
}
DataStorage.fieldSettings = fieldSettings;
sessionStorage.setItem('dataviewSql', JSON.stringify(params));
sessionStorage.setItem('fieldSettings', JSON.stringify(fieldSettings));
sessionStorage.setItem('langs', JSON.stringify(DataStorage.langs));
objModel.show();
}
}
function locate(method, params)
{
var link = createLink('dataview', method, params);
window.location.href = link;
}