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')