Логика смены периода и интервала дат

parent 79f1e755
...@@ -7,15 +7,29 @@ $(document).ready(function(){ ...@@ -7,15 +7,29 @@ $(document).ready(function(){
// Выбор дат для Stat http://t1m0n.name/air-datepicker/docs/index-ru.html // Выбор дат для Stat http://t1m0n.name/air-datepicker/docs/index-ru.html
var var
nowDate = new Date(), nowDate = new Date(),
isChangePeriod = false,
datepicker1 = $('#date-value-1').datepicker({ datepicker1 = $('#date-value-1').datepicker({
dateFormat: "yyyy-mm-dd", dateFormat: "yyyy-mm-dd",
autoClose: true, autoClose: true,
maxDate: nowDate maxDate: nowDate,
onSelect: function(fd, d, picker) {
//console.log('AAA onSelect 1 ', fd, d, picker);
if (!isChangePeriod) {
setPeriodSelectEmpty();
requestDataPeriod();
}
},
}).data('datepicker'), }).data('datepicker'),
datepicker2 = $('#date-value-2').datepicker({ datepicker2 = $('#date-value-2').datepicker({
dateFormat: "yyyy-mm-dd", dateFormat: "yyyy-mm-dd",
autoClose: true, autoClose: true,
maxDate: nowDate maxDate: nowDate,
onSelect: function(fd, d, picker) {
if (!isChangePeriod) {
setPeriodSelectEmpty();
requestDataPeriod();
}
},
}).data('datepicker'), }).data('datepicker'),
$chartStat = $('#chart-graph-stat'), $chartStat = $('#chart-graph-stat'),
$chartTable = $('#table-stat'), $chartTable = $('#table-stat'),
...@@ -48,53 +62,66 @@ $(document).ready(function(){ ...@@ -48,53 +62,66 @@ $(document).ready(function(){
renderHourTable(); renderHourTable();
// Смена периода: // Смена периода:
$('.form-control.stat-period').on('change', function(){ var $periodSelect = $('.form-control.stat-period');
var period = $(this).val(); $periodSelect.on('change', function(){
var
period = $(this).val(),
fromDay,
toDay;
// Установка значений периода в дате: // Установка значений периода в дате:
switch(period) { switch(period) {
case 'today': case 'today':
datepicker1.selectDate(nowDate); fromDay = nowDate;
datepicker2.selectDate(nowDate); toDay = nowDate;
toDay;
break; break;
case 'yesterday': case 'yesterday':
var yesterdayDate = new Date(); var yesterdayDate = new Date();
yesterdayDate.setDate(yesterdayDate.getDate()-1); yesterdayDate.setDate(yesterdayDate.getDate()-1);
datepicker1.selectDate(yesterdayDate); fromDay = yesterdayDate;
datepicker2.selectDate(yesterdayDate); toDay = yesterdayDate;
break; break;
case '7days': case '7days':
var prev7day = new Date(); var prev7day = new Date();
prev7day.setDate(prev7day.getDate()-7); prev7day.setDate(prev7day.getDate()-7);
datepicker1.selectDate(prev7day); fromDay = prev7day;
datepicker2.selectDate(nowDate); toDay = nowDate;
break; break;
case '30days': case '30days':
var prev30day = new Date(); var prev30day = new Date();
prev30day.setDate(prev30day.getDate()-30); prev30day.setDate(prev30day.getDate()-30);
datepicker1.selectDate(prev30day); fromDay = prev30day;
datepicker2.selectDate(nowDate); toDay = nowDate;
break; break;
case 'current_month': case 'current_month':
var firstDay = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1); var firstDay = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);
datepicker1.selectDate(firstDay); fromDay = firstDay;
datepicker2.selectDate(nowDate); toDay = nowDate;
break; break;
case 'prev_month': case 'prev_month':
var firstDay = new Date(nowDate.getFullYear(), nowDate.getMonth()-1, 1); var firstDay = new Date(nowDate.getFullYear(), nowDate.getMonth()-1, 1);
var lastDay = new Date(nowDate.getFullYear(), nowDate.getMonth(), 0); var lastDay = new Date(nowDate.getFullYear(), nowDate.getMonth(), 0);
datepicker1.selectDate(firstDay); fromDay = firstDay;
datepicker2.selectDate(lastDay); toDay = lastDay;
break; break;
case 'year': case 'year':
var firstDay = new Date(nowDate.getFullYear(), 0, 1); var firstDay = new Date(nowDate.getFullYear(), 0, 1);
datepicker1.selectDate(firstDay); fromDay = firstDay;
datepicker2.selectDate(nowDate); toDay = nowDate;
break; break;
default: default:
datepicker1.clear(); //datepicker1.clear();
datepicker2.clear(); //datepicker2.clear();
break; break;
} }
isChangePeriod = true;
datepicker1.selectDate(fromDay);
datepicker2.selectDate(toDay);
isChangePeriod = false;
requestDataPeriod();
}); });
// Сортировка по колонкам внутри таблицы: // Сортировка по колонкам внутри таблицы:
...@@ -112,7 +139,8 @@ $(document).ready(function(){ ...@@ -112,7 +139,8 @@ $(document).ready(function(){
}); });
// Клик на checkbox в названии поля таблицы: // Клик на checkbox в названии поля таблицы:
$('#table-line').on('change', 'thead.metric.sortable th input[type="checkbox"]', function(){ var $tableHeadColsChecks = $('#table-line thead.metric.sortable th input[type="checkbox"]');
$tableHeadColsChecks.on('change', 'thead.metric.sortable th input[type="checkbox"]', function(){
renderLineChart(); renderLineChart();
}); });
...@@ -136,5 +164,15 @@ $(document).ready(function(){ ...@@ -136,5 +164,15 @@ $(document).ready(function(){
} }
} }
// Запрос данных за временной период:
function requestDataPeriod()
{
console.log('AAA requestDataPeriod');
}
function setPeriodSelectEmpty()
{
$periodSelect.val('');
}
}); });
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment