rest.static.js.querySubmission.js Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor
* license agreements. See the NOTICE file distributed with this work for additional
* information regarding copyright ownership. The ASF licenses this file to
* You under the Apache License, Version 2.0 (the "License"); you may not use
* this file except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
* by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
* OF ANY KIND, either express or implied. See the License for the specific
* language governing permissions and limitations under the License.
*/
var userName = null;
//Elements for Timer in LoadingModal
var elapsedTime = 0;
var delay = 1000; //msec
var timeTracker = null; //Handle for stopping watch
var userName = null;
//Show cancellation status
function popupAndWait() {
elapsedTime=0; //Init
$("#queryLoadingModal").modal("show");
var stopWatchElem = $('#stopWatch'); //Get handle on time progress elem within Modal
//Timer updating
timeTracker = setInterval(function() {
elapsedTime = elapsedTime + delay/1000;
let time = elapsedTime;
let minutes = Math.floor(time / 60);
let seconds = time - minutes * 60;
let prettyTime = ("0" + minutes).slice(-2)+':'+ ("0" + seconds).slice(-2);
stopWatchElem.text('Elapsed Time : ' + prettyTime);
}, delay);
}
//Close the cancellation status popup
function closePopup() {
clearInterval(timeTracker);
$("#queryLoadingModal").modal("hide");
}
// Wrap & Submit Query (invoked if impersonation is enabled to check for username)
function doSubmitQueryWithUserName() {
userName = document.getElementById("userName").value;
if (!userName.trim()) {
populateAndShowAlert('userNameMissing', null);
$("#userName").focus();
return;
}
//Wrap and Submit query
doSubmitQueryWithAutoLimit();
}
//Perform autoLimit check before submitting (invoked directly if impersonation is not enabled)
function doSubmitQueryWithAutoLimit() {
let origQueryText = $('#query').attr('value');
if (origQueryText == null || origQueryText.trim().length == 0) {
populateAndShowAlert("queryMissing", null);
$("#query").focus();
return;
}
//Wrap if required
let mustWrapWithLimit = $('input[name="forceLimit"]:checked').length > 0;
//Clear field when submitting if not mustWrapWithLimit
if (!mustWrapWithLimit) {
//Wipe out any numeric entry in the field before
$('#autoLimit').attr('value', '');
} else {
let autoLimitValue=document.getElementById('autoLimit').value;
let positiveIntRegex = new RegExp("^[1-9]\\d*$");
let isValidRowCount = positiveIntRegex.test(autoLimitValue.trim());
if (!isValidRowCount) {
let alertValues = {'_autoLimitValue_': autoLimitValue.trim() };
populateAndShowAlert("invalidRowCount", alertValues);
$('#autoLimit').focus();
return;
}
}
//Submit query
submitQuery();
}
//Submit Query
function submitQuery() {
popupAndWait();
$("#queryForm").submit();
$(window).bind("pageshow", function(event) { closePopup();});
}
//Reset Query
function resetQuery() {
var editor = ace.edit("query-editor-format");
editor.getSession().setValue("");
editor.focus();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy