diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 0d6056761f..cfd2f0ad70 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -8,7 +8,7 @@ use Preferences; use Redirect; use Session; use URL; - +use Input; /** * Class HomeController * @@ -24,6 +24,14 @@ class HomeController extends Controller { } + public function dateRange() { + $start = new Carbon(Input::get('start')); + $end = new Carbon(Input::get('end')); + + Session::put('start',$start); + Session::put('end',$end); + } + /** * @return \Illuminate\Http\RedirectResponse */ @@ -76,49 +84,5 @@ class HomeController extends Controller return view('index', compact('count', 'title', 'subTitle', 'mainTitleIcon', 'transactions')); } - /** - * @param string $range - * - * @return mixed - */ - public function rangeJump($range) - { - - $valid = ['1D', '1W', '1M', '3M', '6M', '1Y',]; - - if (in_array($range, $valid)) { - Preferences::set('viewRange', $range); - Session::forget('range'); - } - - return Redirect::to(URL::previous()); - } - - /** - * @return \Illuminate\Http\RedirectResponse - */ - public function sessionNext() - { - $range = Session::get('range'); - $start = Session::get('start'); - - Session::put('start', Navigation::jumpToNext($range, clone $start)); - - return Redirect::to(URL::previous()); - - } - - /** - * @return \Illuminate\Http\RedirectResponse - */ - public function sessionPrev() - { - $range = Session::get('range'); - $start = Session::get('start'); - - Session::put('start', Navigation::jumpToPrevious($range, clone $start)); - - return Redirect::to(URL::previous()); - } } diff --git a/app/Http/Middleware/Range.php b/app/Http/Middleware/Range.php index 49c3708b93..7ec8a5265e 100644 --- a/app/Http/Middleware/Range.php +++ b/app/Http/Middleware/Range.php @@ -6,9 +6,9 @@ namespace FireflyIII\Http\Middleware; use Carbon\Carbon; use Closure; use Illuminate\Contracts\Auth\Guard; -use Navigation; use Preferences; use Session; +use Navigation; /** * Class SessionFilter @@ -46,25 +46,20 @@ class Range public function handle($request, Closure $theNext) { if ($this->auth->check()) { - // user's view range comes from preferences, gets set in session: - /** @var \FireflyIII\Models\Preference $viewRange */ - $viewRange = Preferences::get('viewRange', '1M'); + // ignore preference. set the range to be the current month: + if (!Session::has('start') && !Session::has('end')) { - // the start and end date are checked and stored: - $start = Session::has('start') ? Session::get('start') : new Carbon; - $start = Navigation::updateStartDate($viewRange->data, $start); - $end = Navigation::updateEndDate($viewRange->data, $start); - $period = Navigation::periodName($viewRange->data, $start); - $prev = Navigation::jumpToPrevious($viewRange->data, clone $start); - $next = Navigation::jumpToNext($viewRange->data, clone $start); + /** @var \FireflyIII\Models\Preference $viewRange */ + $viewRange = Preferences::get('viewRange', '1M'); + $start = Session::has('start') ? Session::get('start') : new Carbon; + $start = Navigation::updateStartDate($viewRange->data, $start); + $end = Navigation::updateEndDate($viewRange->data, $start); + + Session::put('start', $start); + Session::put('end', $end); + } - Session::put('range', $viewRange->data); - Session::put('start', $start); - Session::put('end', $end); - Session::put('period', $period); - Session::put('prev', Navigation::periodName($viewRange->data, $prev)); - Session::put('next', Navigation::periodName($viewRange->data, $next)); } diff --git a/app/Http/routes.php b/app/Http/routes.php index f05ad4625e..c7e9478a67 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -148,9 +148,7 @@ Route::group( ['middleware' => ['auth', 'range']], function () { Route::get('/', ['uses' => 'HomeController@index', 'as' => 'index']); Route::get('/home', ['uses' => 'HomeController@index', 'as' => 'home']); - Route::get('/prev', ['uses' => 'HomeController@sessionPrev', 'as' => 'sessionPrev']); - Route::get('/next', ['uses' => 'HomeController@sessionNext', 'as' => 'sessionNext']); - Route::get('/jump/{range}', ['uses' => 'HomeController@rangeJump', 'as' => 'rangeJump']); + Route::post('/daterange',['uses' => 'HomeController@dateRange','as' => 'daterange']); Route::get('/flush', ['uses' => 'HomeController@flush', 'as' => 'flush']); /** * Account Controller diff --git a/public/css/firefly.css b/public/css/firefly.css new file mode 100644 index 0000000000..07544b7a03 --- /dev/null +++ b/public/css/firefly.css @@ -0,0 +1 @@ +#daterange {cursor:pointer;} \ No newline at end of file diff --git a/public/js/firefly.js b/public/js/firefly.js index 871eb221b4..958897974f 100644 --- a/public/js/firefly.js +++ b/public/js/firefly.js @@ -1,6 +1,38 @@ $(function () { - $('.currencySelect').click(currencySelect) + $('.currencySelect').click(currencySelect); + + $('#daterange').daterangepicker( + { + ranges: { + 'This Month': [moment().startOf('month'), moment().endOf('month')], + 'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')], + 'Next Month': [moment().add('month', 1).startOf('month'), moment().add('month', 1).endOf('month')] + }, + opens: 'left', + + format: 'DD-MM-YYYY', + startDate: start, + endDate: end + }, + function(start, end, label) { + + // send post. + $.post(dateRangeURL, { + start: start.format('YYYY-MM-DD'), + end: end.format('YYYY-MM-DD'), + _token: token + }).success(function() { + window.location.reload(true); + }).fail(function() { + alert('Could not change date range'); + + }); + + //alert('A date range was chosen: ' + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD')); + } + + ); }); @@ -21,4 +53,5 @@ function currencySelect(e) { return false; -} \ No newline at end of file +} + diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 8a5c78308e..53b51f95da 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -16,15 +16,17 @@ - - - - - + + + + + + + @yield('styles') - - - - - - - - - + + + + + + + @yield('scripts') diff --git a/resources/views/partials/date_nav.blade.php b/resources/views/partials/date_nav.blade.php index 71046d2a48..feeab074ea 100644 --- a/resources/views/partials/date_nav.blade.php +++ b/resources/views/partials/date_nav.blade.php @@ -1,3 +1,5 @@ +{{-- +
@@ -26,3 +28,4 @@
+--}} \ No newline at end of file diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 6f5dd21a44..cbd0d0a1dd 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -36,7 +36,7 @@ - +