zoneminder/web/skins/classic/views/js/export.js

128 lines
3.8 KiB
JavaScript
Raw Normal View History

2019-03-21 02:29:05 +08:00
var exportTimer = null;
function configureExportButton(element) {
2017-05-19 01:50:56 +08:00
var form = element.form;
var eventCount = 0;
2019-12-18 23:40:51 +08:00
document.querySelectorAll('input[name="eids[]"]').forEach(function(el) {
if ( el.checked ) {
eventCount ++;
}
});
form.elements['exportButton'].disabled = (
eventCount &&
(
form.elements['exportDetail'].checked ||
form.elements['exportFrames'].checked ||
form.elements['exportImages'].checked ||
form.elements['exportVideo'].checked ||
form.elements['exportMisc'].checked
2020-09-04 22:02:43 +08:00
) &&
( form.elements['exportFormat'][0].checked || form.elements['exportFormat'][1].checked ) &&
( form.elements['exportCompress'][0].checked || form.elements['exportCompress'][1].checked )
);
}
2019-03-21 02:29:05 +08:00
function startDownload(file) {
console.log('Starting download of ' + file);
2019-03-21 02:29:05 +08:00
window.location.replace(file);
}
2017-05-19 01:50:56 +08:00
function exportProgress() {
2019-03-21 02:29:05 +08:00
if ( exportTimer ) {
2020-12-03 00:53:55 +08:00
var tickerText = $j('#exportProgressTicker').text();
2019-03-21 02:29:05 +08:00
if ( tickerText.length < 1 || tickerText.length > 4 ) {
2020-12-03 00:53:55 +08:00
$j('#exportProgressTicker').text('.');
2019-03-21 02:29:05 +08:00
} else {
2020-12-03 00:53:55 +08:00
$j('#exportProgressTicker').append('.');
2019-03-21 02:29:05 +08:00
}
}
}
2019-03-21 02:29:05 +08:00
function exportResponse(respObj, respText) {
clearInterval(exportTimer);
2019-03-21 02:29:05 +08:00
if ( respObj.result != 'Ok' ) {
2020-12-03 00:53:55 +08:00
$j('#exportProgressTicker').text(respObj.message);
2019-03-21 02:29:05 +08:00
} else {
2020-12-03 00:53:55 +08:00
$j('#exportProgressTicker').text(exportSucceededString);
startDownload.pass(decodeURIComponent(respObj.exportFile)).delay(1500);
2019-03-21 02:29:05 +08:00
}
return;
if ( 0 ) {
2019-03-28 21:43:31 +08:00
var eids = new Array();
for (var i = 0, len=form.elements.length; i < len; i++) {
if ( form.elements[i].name == 'eids[]' ) {
eids[eids.length] = 'eids[]='+form.elements[i].value;
}
}
}
2019-03-21 02:29:05 +08:00
form.submit();
//window.location.replace( thisUrl+'?view='+currentView+'&'+eids.join('&')+'&exportFile='+respObj.exportFile+'&generated='+((respObj.result=='Ok')?1:0) );
}
2020-04-04 23:53:07 +08:00
function exportEvents( ) {
2019-03-21 02:29:05 +08:00
var parms = 'view=event&request=event&action=export';
parms += '&'+$('contentForm').toQueryString();
var query = new Request.JSON( {
url: thisUrl,
method: 'post',
data: parms,
onSuccess: exportResponse
} );
2017-05-19 01:50:56 +08:00
query.send();
$('exportProgress').removeClass('hidden');
$('exportProgress').setProperty('class', 'warnText');
$('exportProgressText').set('text', exportProgressString);
//exportProgress();
2017-05-19 01:50:56 +08:00
exportTimer = exportProgress.periodical( 500 );
}
function getEventDetailModal(eid) {
$j.getJSON(thisUrl + '?request=modal&modal=eventdetail&eids[]=' + eid)
2020-09-16 20:57:44 +08:00
.done(function(data) {
2020-10-15 04:58:39 +08:00
insertModalHtml('eventDetailModal', data.html);
2020-09-16 20:57:44 +08:00
$j('#eventDetailModal').modal('show');
// Manage the Save button
$j('#eventDetailSaveBtn').click(function(evt) {
evt.preventDefault();
$j('#eventDetailForm').submit();
});
})
.fail(logAjaxFail);
}
2017-05-19 01:50:56 +08:00
function initPage() {
configureExportButton( $('exportButton') );
if ( exportReady ) {
startDownload.pass(exportFile).delay(1500);
2017-05-19 01:50:56 +08:00
}
2020-04-04 23:53:07 +08:00
document.getElementById('exportButton').addEventListener('click', exportEvents);
// Manage the eventdetail link in the export list
$j(".eDetailLink").click(function(evt) {
evt.preventDefault();
var eid = $j(this).data('eid');
getEventDetailModal(eid);
});
// Manage the BACK button
document.getElementById("backBtn").addEventListener("click", function onBackClick(evt) {
evt.preventDefault();
window.history.back();
});
// Don't enable the back button if there is no previous zm page to go back to
$j('#backBtn').prop('disabled', !document.referrer.length);
// Manage the REFRESH Button
document.getElementById("refreshBtn").addEventListener("click", function onRefreshClick(evt) {
evt.preventDefault();
window.location.reload(true);
});
}
2019-03-21 02:29:05 +08:00
window.addEventListener('DOMContentLoaded', initPage);