mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 09:39:57 +00:00
93 lines
2.2 KiB
JavaScript
93 lines
2.2 KiB
JavaScript
$(function()
|
|
{
|
|
$('.datepicker').datepicker(
|
|
{
|
|
format: 'yyyy-mm-dd',
|
|
startDate: '+0d',
|
|
todayHighlight: true,
|
|
autoclose: true,
|
|
calendarWeeks: true,
|
|
orientation: 'bottom auto',
|
|
weekStart: 1,
|
|
showOnFocus: false,
|
|
language: L('bootstrap_datepicker_locale')
|
|
});
|
|
$('.datepicker').trigger('change');
|
|
|
|
EmptyElementWhenMatches('#datepicker-timeago', L('timeago_nan'));
|
|
});
|
|
|
|
$('.datepicker').on('keydown', function(e)
|
|
{
|
|
if (e.keyCode === 13) //Enter
|
|
{
|
|
$('.datepicker').trigger('change');
|
|
}
|
|
});
|
|
|
|
$('.datepicker').on('keypress', function(e)
|
|
{
|
|
var element = $(e.target);
|
|
var value = element.val();
|
|
var dateObj = moment(element.val(), 'YYYY-MM-DD', true);
|
|
|
|
$('.datepicker').datepicker('hide');
|
|
|
|
//If input is empty and any arrow key is pressed, set date to today
|
|
if (value.length === 0 && (e.keyCode === 38 || e.keyCode === 40 || e.keyCode === 37 || e.keyCode === 39))
|
|
{
|
|
dateObj = moment(new Date(), 'YYYY-MM-DD', true);
|
|
}
|
|
|
|
if (dateObj.isValid())
|
|
{
|
|
if (e.keyCode === 38) //Up
|
|
{
|
|
element.val(dateObj.add(-1, 'days').format('YYYY-MM-DD'));
|
|
}
|
|
else if (e.keyCode === 40) //Down
|
|
{
|
|
element.val(dateObj.add(1, 'days').format('YYYY-MM-DD'));
|
|
}
|
|
else if (e.keyCode === 37) //Left
|
|
{
|
|
element.val(dateObj.add(-1, 'weeks').format('YYYY-MM-DD'));
|
|
}
|
|
else if (e.keyCode === 39) //Right
|
|
{
|
|
element.val(dateObj.add(1, 'weeks').format('YYYY-MM-DD'));
|
|
}
|
|
}
|
|
});
|
|
|
|
$('.datepicker').on('change', function(e)
|
|
{
|
|
var value = $('.datepicker').val();
|
|
var now = new Date();
|
|
var centuryStart = Number.parseInt(now.getFullYear().toString().substring(0, 2) + '00');
|
|
var centuryEnd = Number.parseInt(now.getFullYear().toString().substring(0, 2) + '99');
|
|
|
|
if (value === 'x' || value === 'X') {
|
|
value = '29991231';
|
|
}
|
|
|
|
if (value.length === 4 && !(Number.parseInt(value) > centuryStart && Number.parseInt(value) < centuryEnd))
|
|
{
|
|
value = (new Date()).getFullYear().toString() + value;
|
|
}
|
|
|
|
if (value.length === 8 && $.isNumeric(value))
|
|
{
|
|
value = value.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3');
|
|
$('.datepicker').val(value);
|
|
}
|
|
|
|
$('#datepicker-timeago').text($.timeago($('.datepicker').val()));
|
|
EmptyElementWhenMatches('#datepicker-timeago', L('timeago_nan'));
|
|
});
|
|
|
|
$('#datepicker-button').on('click', function(e)
|
|
{
|
|
$('.datepicker').datepicker('show');
|
|
});
|