* Dataview query page can export data.
This commit is contained in:
+40
-23
@@ -2,35 +2,52 @@ $(function()
|
||||
{
|
||||
if(rawMethod !== 'create') return;
|
||||
var createModal = new $.zui.ModalTrigger({url: createLink('dataview', 'create', 'step=create', '', true), type: 'iframe', width: 480});
|
||||
var exportModal = new $.zui.ModalTrigger({url: createLink('dataview', 'export', 'type=query', '', true), type: 'iframe', width: 900});
|
||||
document.getElementById('saveButton').addEventListener('click', function(e)
|
||||
{
|
||||
$.ajaxSettings.async = false;
|
||||
query();
|
||||
$.ajaxSettings.async = true;
|
||||
e.preventDefault();
|
||||
if($('#dataform .error').length == $('#dataform .error.hidden').length)
|
||||
{
|
||||
var params = $('#dataform').serializeArray();
|
||||
tryQuery(e);
|
||||
showModel(createModal);
|
||||
});
|
||||
|
||||
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));
|
||||
|
||||
createModal.show();
|
||||
}
|
||||
document.getElementById('export').addEventListener('click', function(e)
|
||||
{
|
||||
tryQuery(e);
|
||||
showModel(exportModal);
|
||||
});
|
||||
});
|
||||
|
||||
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);
|
||||
|
||||
@@ -40,6 +40,7 @@ function query(callback) {
|
||||
$('#querying').addClass('hidden');
|
||||
if(resp.result !== 'success')
|
||||
{
|
||||
$('#export').addClass('hidden');
|
||||
var message = resp.message.errorInfo ? resp.message.errorInfo[2] : resp.message;
|
||||
$('.error').removeClass('hidden');
|
||||
$('.error td').html(message);
|
||||
@@ -47,6 +48,7 @@ function query(callback) {
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#export').removeClass('hidden');
|
||||
DataStorage.fields = resp.fields;
|
||||
DataStorage.columns = resp.columns;
|
||||
DataStorage.rows = resp.rows;
|
||||
|
||||
@@ -31,7 +31,7 @@ window.DataStorage = initStorage(
|
||||
</div>
|
||||
</div>
|
||||
<div class="create-action pull-right">
|
||||
<?php $iframe = $app->rawMethod == 'create' ? 'iframe' : ''?>
|
||||
<?php if(common::hasPriv('dataview', 'export')) echo html::a('#', "<i class='icon icon-export'></i> {$lang->dataview->export}", '', "id='export' class='hidden btn btn-link'");?>
|
||||
<?php if($app->rawMethod == 'create') echo html::a($saveLink, '<i class="icon icon-save"></i> ' . $lang->save, '', "class='btn btn-primary' id='saveButton'");?>
|
||||
<?php if($app->rawMethod != 'create') echo '<button type="button" class="btn btn-primary" id="save"><i class="icon icon-save"></i> ' . $lang->save. '</button>';?>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user