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

parent 79f1e755
......@@ -7,15 +7,29 @@ $(document).ready(function(){
// Выбор дат для Stat http://t1m0n.name/air-datepicker/docs/index-ru.html
var
nowDate = new Date(),
isChangePeriod = false,
datepicker1 = $('#date-value-1').datepicker({
dateFormat: "yyyy-mm-dd",
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'),
datepicker2 = $('#date-value-2').datepicker({
dateFormat: "yyyy-mm-dd",
autoClose: true,
maxDate: nowDate
maxDate: nowDate,
onSelect: function(fd, d, picker) {
if (!isChangePeriod) {
setPeriodSelectEmpty();
requestDataPeriod();
}
},
}).data('datepicker'),
$chartStat = $('#chart-graph-stat'),
$chartTable = $('#table-stat'),
......@@ -48,53 +62,66 @@ $(document).ready(function(){
renderHourTable();
// Смена периода:
$('.form-control.stat-period').on('change', function(){
var period = $(this).val();
var $periodSelect = $('.form-control.stat-period');
$periodSelect.on('change', function(){
var
period = $(this).val(),
fromDay,
toDay;
// Установка значений периода в дате:
switch(period) {
case 'today':
datepicker1.selectDate(nowDate);
datepicker2.selectDate(nowDate);
fromDay = nowDate;
toDay = nowDate;
toDay;
break;
case 'yesterday':
var yesterdayDate = new Date();
yesterdayDate.setDate(yesterdayDate.getDate()-1);
datepicker1.selectDate(yesterdayDate);
datepicker2.selectDate(yesterdayDate);
fromDay = yesterdayDate;
toDay = yesterdayDate;
break;
case '7days':
var prev7day = new Date();
prev7day.setDate(prev7day.getDate()-7);
datepicker1.selectDate(prev7day);
datepicker2.selectDate(nowDate);
fromDay = prev7day;
toDay = nowDate;
break;
case '30days':
var prev30day = new Date();
prev30day.setDate(prev30day.getDate()-30);
datepicker1.selectDate(prev30day);
datepicker2.selectDate(nowDate);
fromDay = prev30day;
toDay = nowDate;
break;
case 'current_month':
var firstDay = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);
datepicker1.selectDate(firstDay);
datepicker2.selectDate(nowDate);
fromDay = firstDay;
toDay = nowDate;
break;
case 'prev_month':
var firstDay = new Date(nowDate.getFullYear(), nowDate.getMonth()-1, 1);
var lastDay = new Date(nowDate.getFullYear(), nowDate.getMonth(), 0);
datepicker1.selectDate(firstDay);
datepicker2.selectDate(lastDay);
fromDay = firstDay;
toDay = lastDay;
break;
case 'year':
var firstDay = new Date(nowDate.getFullYear(), 0, 1);
datepicker1.selectDate(firstDay);
datepicker2.selectDate(nowDate);
fromDay = firstDay;
toDay = nowDate;
break;
default:
datepicker1.clear();
datepicker2.clear();
//datepicker1.clear();
//datepicker2.clear();
break;
}
isChangePeriod = true;
datepicker1.selectDate(fromDay);
datepicker2.selectDate(toDay);
isChangePeriod = false;
requestDataPeriod();
});
// Сортировка по колонкам внутри таблицы:
......@@ -112,7 +139,8 @@ $(document).ready(function(){
});
// Клик на 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();
});
......@@ -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