diff --git a/public/viewjs/components/datepicker.js b/public/viewjs/components/datepicker.js new file mode 100644 index 00000000..0b62cf66 --- /dev/null +++ b/public/viewjs/components/datepicker.js @@ -0,0 +1,91 @@ +$(function() +{ + $('.datepicker').datepicker( + { + format: 'yyyy-mm-dd', + startDate: '+0d', + todayHighlight: true, + autoclose: true, + calendarWeeks: true, + orientation: 'bottom auto', + weekStart: 1, + showOnFocus: false + }); + $('.datepicker').trigger('change'); + + EmptyElementWhenMatches('#datepicker-timeago', 'NaN years ago'); +}); + +$('.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', 'NaN years ago'); +}); + +$('#datepicker-button').on('click', function(e) +{ + $('.datepicker').datepicker('show'); +}); diff --git a/public/viewjs/components/datetimepicker.js b/public/viewjs/components/datetimepicker.js new file mode 100644 index 00000000..303dc964 --- /dev/null +++ b/public/viewjs/components/datetimepicker.js @@ -0,0 +1,10 @@ +$(function() +{ + $('.datetimepicker').datetimepicker( + { + format: 'YYYY-MM-DD HH:mm:ss', + showTodayButton: true, + calendarWeeks: true, + maxDate: moment() + }); +}); diff --git a/public/viewjs/habittracking.js b/public/viewjs/habittracking.js index 2e44208f..696314eb 100644 --- a/public/viewjs/habittracking.js +++ b/public/viewjs/habittracking.js @@ -7,7 +7,7 @@ Grocy.FetchJson('/api/habits/get-habit-details/' + jsonForm.habit_id, function (habitDetails) { - Grocy.FetchJson('/api/habits/track-habit-exeuction/' + jsonForm.habit_id + '?tracked_time=' + $('#tracked_time').val(), + Grocy.FetchJson('/api/habits/track-habit-execution/' + jsonForm.habit_id + '?tracked_time=' + $('#tracked_time').val(), function(result) { toastr.success('Tracked execution of habit ' + habitDetails.habit.name + ' on ' + $('#tracked_time').val()); @@ -46,14 +46,6 @@ $('#habit_id').on('change', function(e) $(function() { - $('.datetimepicker').datetimepicker( - { - format: 'YYYY-MM-DD HH:mm:ss', - showTodayButton: true, - calendarWeeks: true, - maxDate: moment() - }); - $('#tracked_time').val(moment().format('YYYY-MM-DD HH:mm:ss')); $('#tracked_time').trigger('change'); @@ -90,63 +82,7 @@ $(function() }); }); -$('#tracked_time').on('change', function(e) -{ - var value = $('#tracked_time').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'); - $('#tracked_time').val(value); - $('#habittracking-form').validator('validate'); - } -}); - $('#tracked_time').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')); - } - } - $('#habittracking-form').validator('validate'); }); diff --git a/public/viewjs/inventory.js b/public/viewjs/inventory.js index d0e47fbc..5c9782b9 100644 --- a/public/viewjs/inventory.js +++ b/public/viewjs/inventory.js @@ -89,19 +89,6 @@ $('#product_id').on('change', function(e) $(function() { - $('.datepicker').datepicker( - { - format: 'yyyy-mm-dd', - startDate: '+0d', - todayHighlight: true, - autoclose: true, - calendarWeeks: true, - orientation: 'bottom auto', - weekStart: 1, - showOnFocus: false - }); - $('.datepicker').trigger('change'); - $('.combobox').combobox({ appendId: '_text_input' }); @@ -263,11 +250,6 @@ $(function() } }); -$('#best_before_date-datepicker-button').on('click', function(e) -{ - $('.datepicker').datepicker('show'); -}); - $('#new_amount').on('keypress', function(e) { $('#new_amount').trigger('change'); @@ -275,63 +257,11 @@ $('#new_amount').on('keypress', function(e) $('#best_before_date').on('change', function(e) { - var value = $('#best_before_date').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'); - $('#best_before_date').val(value); - $('#inventory-form').validator('validate'); - } + $('#inventory-form').validator('validate'); }); $('#best_before_date').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')); - } - } - $('#inventory-form').validator('validate'); }); diff --git a/public/viewjs/purchase.js b/public/viewjs/purchase.js index 6d78ef75..cfd9c418 100644 --- a/public/viewjs/purchase.js +++ b/public/viewjs/purchase.js @@ -98,19 +98,6 @@ $('#product_id').on('change', function(e) $(function() { - $('.datepicker').datepicker( - { - format: 'yyyy-mm-dd', - startDate: '+0d', - todayHighlight: true, - autoclose: true, - calendarWeeks: true, - orientation: 'bottom auto', - weekStart: 1, - showOnFocus: false - }); - $('.datepicker').trigger('change'); - $('.combobox').combobox({ appendId: '_text_input' }); @@ -271,83 +258,14 @@ $(function() $('#flow-info-addbarcodetoselection').removeClass('hide'); $('#barcode-lookup-disabled-hint').removeClass('hide'); } - - EmptyElementWhenMatches('#best-before-timeago', 'NaN years ago'); -}); - -$('#best_before_date-datepicker-button').on('click', function(e) -{ - $('.datepicker').datepicker('show'); }); $('#best_before_date').on('change', function(e) { - var value = $('#best_before_date').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'); - $('#best_before_date').val(value); - $('#purchase-form').validator('validate'); - } - - $('#best-before-timeago').text($.timeago($('#best_before_date').val())); - EmptyElementWhenMatches('#best-before-timeago', 'NaN years ago'); + $('#purchase-form').validator('validate'); }); -$('#best_before_date').on('keydown', function(e) -{ - if (e.keyCode === 13) //Enter - { - $('#best_before_date').trigger('change'); - } -}); - $('#best_before_date').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')); - } - } - $('#purchase-form').validator('validate'); }); diff --git a/views/components/batterycard.blade.php b/views/components/batterycard.blade.php index 4a0c7275..37aa345d 100644 --- a/views/components/batterycard.blade.php +++ b/views/components/batterycard.blade.php @@ -1,8 +1,7 @@ -@extends('layout.basecomponent') +@push('componentScripts') + +@endpush -@section('componentJsName', 'batterycard') - -@section('componentContent')

Battery overview

@@ -13,4 +12,3 @@

-@stop diff --git a/views/components/datepicker.blade.php b/views/components/datepicker.blade.php new file mode 100644 index 00000000..c973b547 --- /dev/null +++ b/views/components/datepicker.blade.php @@ -0,0 +1,14 @@ +@push('componentScripts') + +@endpush + +
+ +
+ +
+ +
+
+
+
diff --git a/views/components/datetimepicker.blade.php b/views/components/datetimepicker.blade.php new file mode 100644 index 00000000..8dbc5b59 --- /dev/null +++ b/views/components/datetimepicker.blade.php @@ -0,0 +1,14 @@ +@push('componentScripts') + +@endpush + +
+ +
+ + + + +
+
+
diff --git a/views/components/habitcard.blade.php b/views/components/habitcard.blade.php index 113d9707..9a650d87 100644 --- a/views/components/habitcard.blade.php +++ b/views/components/habitcard.blade.php @@ -1,8 +1,7 @@ -@extends('layout.basecomponent') +@push('componentScripts') + +@endpush -@section('componentJsName', 'habitcard') - -@section('componentContent')

Habit overview

@@ -13,4 +12,3 @@

-@stop diff --git a/views/components/productcard.blade.php b/views/components/productcard.blade.php index 6cd2f0d2..752fa67c 100644 --- a/views/components/productcard.blade.php +++ b/views/components/productcard.blade.php @@ -1,8 +1,7 @@ -@extends('layout.basecomponent') +@push('componentScripts') + +@endpush -@section('componentJsName', 'productcard') - -@section('componentContent')

Product overview

@@ -15,4 +14,3 @@

-@stop diff --git a/views/habittracking.blade.php b/views/habittracking.blade.php index e036e3ea..923409e0 100644 --- a/views/habittracking.blade.php +++ b/views/habittracking.blade.php @@ -22,16 +22,10 @@
-
- -
- - - - -
-
-
+ @include('components.datetimepicker', array( + 'id' => 'tracked_time', + 'label' => 'Tracked time' + )) diff --git a/views/inventory.blade.php b/views/inventory.blade.php index 3564ab6d..9a60fde0 100644 --- a/views/inventory.blade.php +++ b/views/inventory.blade.php @@ -30,16 +30,10 @@
-
- -
- -
- -
-
-
-
+ @include('components.datepicker', array( + 'id' => 'best_before_date', + 'label' => 'Best before  This will apply to added products' + )) diff --git a/views/layout/basecomponent.blade.php b/views/layout/basecomponent.blade.php deleted file mode 100644 index 89fe8013..00000000 --- a/views/layout/basecomponent.blade.php +++ /dev/null @@ -1,6 +0,0 @@ -@section('componentContent') -@show - -@push('componentScripts') - -@endpush diff --git a/views/layout/default.blade.php b/views/layout/default.blade.php index b41398ce..0502b084 100644 --- a/views/layout/default.blade.php +++ b/views/layout/default.blade.php @@ -206,8 +206,7 @@ - @section('content') - @show + @yield('content') diff --git a/views/purchase.blade.php b/views/purchase.blade.php index 9e64d4a6..436bff61 100644 --- a/views/purchase.blade.php +++ b/views/purchase.blade.php @@ -23,16 +23,10 @@
will be added to the list of barcodes for the selected product on submit.
-
- -
- -
- -
-
-
-
+ @include('components.datepicker', array( + 'id' => 'best_before_date', + 'label' => 'Best before' + ))