Skip to content
Snippets Groups Projects
Commit 15e9732a authored by Matthew Westphall's avatar Matthew Westphall
Browse files

added option to set request size limit

parent 8968892a
No related branches found
No related tags found
No related merge requests found
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
var towerMet; var towerMet;
var buoyMet; var buoyMet;
var multilevel_streams = new Object(); var multilevel_streams = new Object();
var MAX_DATA = 15000;
var show_multistream_panel = function(streams){ var show_multistream_panel = function(streams){
var curr_selected = $('#multi_streams').val(); var curr_selected = $('#multi_streams').val();
$('#multi_streams').empty(); $('#multi_streams').empty();
...@@ -152,16 +154,22 @@ var getTimeRange = function(){ ...@@ -152,16 +154,22 @@ var getTimeRange = function(){
//Check that both a time is selected and that it matches a valid date //Check that both a time is selected and that it matches a valid date
var time_query = false; var time_query = false;
var error = false; var error = false;
var time_span = 0;
if($("#last_x_days").is(":checked")){ if($("#last_x_days").is(":checked")){
if(/^[0-9]+$/.test(val_or_place('#x_days'))) if(/^[0-9]+$/.test(val_or_place('#x_days'))){
time_query = '&begin=-'+24*Number(val_or_place('#x_days'))+':00:00'; time_query = '&begin=-'+24*Number(val_or_place('#x_days'))+':00:00';
time_span =60*60*24*Number(val_or_place('#x_days'));
}
}else if ($("#date_range").is(":checked")){ }else if ($("#date_range").is(":checked")){
time_query = make_date_range_query(); time_query = make_date_range_query();
if(time_query){
time_span = -(moment($('#Start-date-picker').val())-moment($('#End-date-picker').val()))/1000;
}
} }
if(!time_query) if(!time_query)
error = "#time_err"; error = "#time_err";
return {error:error,query:time_query}; return {error:error,query:time_query,time_span:time_span};
}; };
...@@ -175,7 +183,7 @@ var buildRequestUrl = function(format,interval,epoch,sep,order,time,streams){ ...@@ -175,7 +183,7 @@ var buildRequestUrl = function(format,interval,epoch,sep,order,time,streams){
request_url+='&symbols='+streams; request_url+='&symbols='+streams;
return request_url; return request_url;
} }
function findFormErrors(){ function findFormErrors(checkNPoints){
$(".err_msg").hide(); $(".err_msg").hide();
$("select").removeClass("alert-danger"); $("select").removeClass("alert-danger");
var errors = []; var errors = [];
...@@ -204,6 +212,21 @@ function findFormErrors(){ ...@@ -204,6 +212,21 @@ function findFormErrors(){
if(timeRangeInfo.error) if(timeRangeInfo.error)
errors.push(timeRangeInfo.error); errors.push(timeRangeInfo.error);
else if(checkNPoints){
var span = timeRangeInfo.time_span;
var nStreams = getSelectedStreams().split(':').length;
var interval = $('#interval').val();
interval = {'m':60,'h':60*60,'d':60*60*24}[_.last(interval)]*
Number(_.initial(interval).join(''));
var npoints = span*nStreams/interval;
console.log(span,nStreams,interval,npoints);
if(npoints>MAX_DATA){
errors.push('#interval_err');
$('#max_points').html(MAX_DATA);
$('#too_many_points').html(npoints);
}
}
if(errors.length >0){ if(errors.length >0){
_.each(errors,function(error){ _.each(errors,function(error){
...@@ -220,7 +243,7 @@ function findFormErrors(){ ...@@ -220,7 +243,7 @@ function findFormErrors(){
* Read the values of the various inputs on the page and formulate an API request * Read the values of the various inputs on the page and formulate an API request
*/ */
var submitForm = function(){ var submitForm = function(){
if(!findFormErrors()){ if(!findFormErrors(true)){
var format = $('#format').val().toLowerCase(); var format = $('#format').val().toLowerCase();
var time_query = getTimeRange().query; var time_query = getTimeRange().query;
var streams=getSelectedStreams(); var streams=getSelectedStreams();
... ...
......
...@@ -59,11 +59,14 @@ ...@@ -59,11 +59,14 @@
<div class="col-sm-4"> <div class="col-sm-4">
<h4>Interval</h4> <h4>Interval</h4>
</div> </div>
<div id="interval_err" class="col-xs-8 text-right err_msg" style="margin-top:10px;display: none;"> <div class="col-xs-8">
<span class="alert alert-danger" style="padding:0 1em">&#9888; Too many data points requested. Use a larger interval. <div id="interval_err" class="text-right err_msg" style="margin-top:10px;display: none;">
<span class="alert alert-danger" style="padding:0 1em">&#9888; Too many data points requested.
(Max:<span id='max_points'></span>, Requested: <span id='too_many_points'></span>)
</span> </span>
</div> </div>
</div> </div>
</div>
<div class="row" style='padding: 0 1em;'> <div class="row" style='padding: 0 1em;'>
<div class="col-xs-12"> <div class="col-xs-12">
<div class="form-group"> <div class="form-group">
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment