Added input shorthands for date fields to increase/decrease the date by 1 month/year (closes #405)

This commit is contained in:
Bernd Bestel 2019-10-02 16:06:44 +02:00
parent 420e4b933f
commit 5d98140843
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300
3 changed files with 44 additions and 13 deletions

View File

@ -65,8 +65,10 @@ The following shorthands are available:
- `YYYYMMe` or `YYYYMM+` gets expanded to the end of the given month in the given year in proper notation
- Example: `201807e` will be converted to `2018-07-31`
- `x` gets expanded to `2999-12-31` (which I use for products which never expire)
- Down/up arrow keys will increase/decrease the date by one day
- Down/up arrow keys will increase/decrease the date by 1 day
- Right/left arrow keys will increase/decrease the date by 1 week
- Shift + down/up arrow keys will increase/decrease the date by 1 month
- Shift + right/left arrow keys will increase/decrease the date by 1 year
### Keyboard shorthands for buttons
Wherever a button contains a bold highlighted letter, this is a shortcut key.

View File

@ -3,3 +3,6 @@
### Recipe fixes
- Fixed that recipes were displayed without ingredients if the total recipe count was > 100
### General & other improvements
- New Input shorthands for date fields to increase/decrease the date by 1 month/year (shift + arrow keys, see the full list [here](https://github.com/grocy/grocy#input-shorthands-for-date-fields))

View File

@ -170,6 +170,31 @@ Grocy.Components.DateTimePicker.GetInputElement().on('keyup', function(e)
var dateObj = moment(value, format, true);
if (dateObj.isValid())
{
if (e.shiftKey)
{
// WITH shift modifier key
if (e.keyCode === 38) // Up
{
Grocy.Components.DateTimePicker.SetValue(dateObj.add(-1, 'months').format(format));
}
else if (e.keyCode === 40) // Down
{
Grocy.Components.DateTimePicker.SetValue(dateObj.add(1, 'months').format(format));
}
else if (e.keyCode === 37) // Left
{
Grocy.Components.DateTimePicker.SetValue(dateObj.add(-1, 'years').format(format));
}
else if (e.keyCode === 39) // Right
{
Grocy.Components.DateTimePicker.SetValue(dateObj.add(1, 'years').format(format));
}
}
else
{
// WITHOUT shift modifier key
if (e.keyCode === 38) // Up
{
Grocy.Components.DateTimePicker.SetValue(dateObj.add(-1, 'days').format(format));
@ -188,6 +213,7 @@ Grocy.Components.DateTimePicker.GetInputElement().on('keyup', function(e)
}
}
}
}
//Custom validation
value = Grocy.Components.DateTimePicker.GetValue();