mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 18:54:58 +00:00 
			
		
		
		
	New code for new date range thing.
This commit is contained in:
		| @@ -8,7 +8,7 @@ use Preferences; | |||||||
| use Redirect; | use Redirect; | ||||||
| use Session; | use Session; | ||||||
| use URL; | use URL; | ||||||
|  | use Input; | ||||||
| /** | /** | ||||||
|  * Class HomeController |  * 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 |      * @return \Illuminate\Http\RedirectResponse | ||||||
|      */ |      */ | ||||||
| @@ -76,49 +84,5 @@ class HomeController extends Controller | |||||||
|         return view('index', compact('count', 'title', 'subTitle', 'mainTitleIcon', 'transactions')); |         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()); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -6,9 +6,9 @@ namespace FireflyIII\Http\Middleware; | |||||||
| use Carbon\Carbon; | use Carbon\Carbon; | ||||||
| use Closure; | use Closure; | ||||||
| use Illuminate\Contracts\Auth\Guard; | use Illuminate\Contracts\Auth\Guard; | ||||||
| use Navigation; |  | ||||||
| use Preferences; | use Preferences; | ||||||
| use Session; | use Session; | ||||||
|  | use Navigation; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Class SessionFilter |  * Class SessionFilter | ||||||
| @@ -46,25 +46,20 @@ class Range | |||||||
|     public function handle($request, Closure $theNext) |     public function handle($request, Closure $theNext) | ||||||
|     { |     { | ||||||
|         if ($this->auth->check()) { |         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: |                 /** @var \FireflyIII\Models\Preference $viewRange */ | ||||||
|             $start  = Session::has('start') ? Session::get('start') : new Carbon; |                 $viewRange = Preferences::get('viewRange', '1M'); | ||||||
|             $start  = Navigation::updateStartDate($viewRange->data, $start); |                 $start     = Session::has('start') ? Session::get('start') : new Carbon; | ||||||
|             $end    = Navigation::updateEndDate($viewRange->data, $start); |                 $start     = Navigation::updateStartDate($viewRange->data, $start); | ||||||
|             $period = Navigation::periodName($viewRange->data, $start); |                 $end       = Navigation::updateEndDate($viewRange->data, $start); | ||||||
|             $prev   = Navigation::jumpToPrevious($viewRange->data, clone $start); |  | ||||||
|             $next   = Navigation::jumpToNext($viewRange->data, clone $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)); |  | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -148,9 +148,7 @@ Route::group( | |||||||
|     ['middleware' => ['auth', 'range']], function () { |     ['middleware' => ['auth', 'range']], function () { | ||||||
|     Route::get('/', ['uses' => 'HomeController@index', 'as' => 'index']); |     Route::get('/', ['uses' => 'HomeController@index', 'as' => 'index']); | ||||||
|     Route::get('/home', ['uses' => 'HomeController@index', 'as' => 'home']); |     Route::get('/home', ['uses' => 'HomeController@index', 'as' => 'home']); | ||||||
|     Route::get('/prev', ['uses' => 'HomeController@sessionPrev', 'as' => 'sessionPrev']); |     Route::post('/daterange',['uses' => 'HomeController@dateRange','as' => 'daterange']); | ||||||
|     Route::get('/next', ['uses' => 'HomeController@sessionNext', 'as' => 'sessionNext']); |  | ||||||
|     Route::get('/jump/{range}', ['uses' => 'HomeController@rangeJump', 'as' => 'rangeJump']); |  | ||||||
|     Route::get('/flush', ['uses' => 'HomeController@flush', 'as' => 'flush']); |     Route::get('/flush', ['uses' => 'HomeController@flush', 'as' => 'flush']); | ||||||
|     /** |     /** | ||||||
|      * Account Controller |      * Account Controller | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								public/css/firefly.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								public/css/firefly.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | #daterange {cursor:pointer;} | ||||||
| @@ -1,6 +1,38 @@ | |||||||
| $(function () { | $(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; |     return false; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -16,15 +16,17 @@ | |||||||
|     </title> |     </title> | ||||||
|  |  | ||||||
|     <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" media="all" /> |     <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" media="all" /> | ||||||
|     <!-- <link rel="stylesheet" href="css/metisMenu.min.css" type="text/css" media="all" /> --> |  | ||||||
|     <!-- new css for SB admin --> |  | ||||||
|     <link rel="stylesheet" href="css/metisMenu.min.css" type="text/css" media="all" /> |     <link rel="stylesheet" href="css/metisMenu.min.css" type="text/css" media="all" /> | ||||||
|     <link rel="stylesheet" href="css/sb-admin-2.css" type="text/css" media="all" /> |     <link rel="stylesheet" href="css/sb-admin-2.css" type="text/css" media="all" /> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css" media="all" /> |     <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css" media="all" /> | ||||||
|     <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto2" type="text/css" media="all" /> |     <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto2" type="text/css" media="all" /> | ||||||
|  |  | ||||||
|  |     <!-- date range --> | ||||||
|  |     <link rel="stylesheet" href="css/daterangepicker-bs3.css" type="text/css" media="all" /> | ||||||
|  |  | ||||||
|  |     <link rel="stylesheet" href="css/firefly.css" type="text/css" media="all" /> | ||||||
|  |  | ||||||
|  |  | ||||||
|     @yield('styles') |     @yield('styles') | ||||||
|  |  | ||||||
|     <!--[if lt IE 9]> |     <!--[if lt IE 9]> | ||||||
| @@ -112,19 +114,23 @@ | |||||||
|  |  | ||||||
| <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script> | <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script> | ||||||
| <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script> | <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script> | ||||||
| <!-- <script type="text/javascript" src="js/jquery.metisMenu.min.js"></script> --> |  | ||||||
| <!-- <script type="text/javascript" src="js/sb-admin-2.js"></script>--> |  | ||||||
|  |  | ||||||
| <!-- new js for sb admin --> |  | ||||||
|  |  | ||||||
| <script type="text/javascript" src="js/metisMenu.min.js"></script> | <script type="text/javascript" src="js/metisMenu.min.js"></script> | ||||||
| <script type="text/javascript" src="js/sb-admin-2.js"></script> | <script type="text/javascript" src="js/sb-admin-2.js"></script> | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <script type="text/javascript" src="js/help.js"></script> | <script type="text/javascript" src="js/help.js"></script> | ||||||
|  |  | ||||||
|  | <!-- date range stuff --> | ||||||
|  | <script type="text/javascript" src="js/moment.min.js"></script> | ||||||
|  | <script type="text/javascript" src="js/daterangepicker.js"></script> | ||||||
|  |  | ||||||
|  | <script type="text/javascript"> | ||||||
|  |     var start = "{{Session::get('start')->format('d-m-Y')}}"; | ||||||
|  |     var end = "{{Session::get('end')->format('d-m-Y')}}"; | ||||||
|  |     var titleString = "{{Session::get('start')->format('j M Y')}} - {{Session::get('end')->format('j M Y')}}"; | ||||||
|  |     var dateRangeURL = "{{route('daterange')}}"; | ||||||
|  |     var token = "{{csrf_token()}}"; | ||||||
|  |     $('#daterange span').text(titleString); | ||||||
|  | </script> | ||||||
|  |  | ||||||
| <script type="text/javascript" src="js/firefly.js"></script> | <script type="text/javascript" src="js/firefly.js"></script> | ||||||
| @yield('scripts') | @yield('scripts') | ||||||
| </body> | </body> | ||||||
|   | |||||||
| @@ -1,3 +1,5 @@ | |||||||
|  | {{-- | ||||||
|  |  | ||||||
| <div class="panel panel-default"> | <div class="panel panel-default"> | ||||||
|     <div class="panel-heading"> |     <div class="panel-heading"> | ||||||
|         <i class="fa fa-clock-o fa-fw"></i> |         <i class="fa fa-clock-o fa-fw"></i> | ||||||
| @@ -26,3 +28,4 @@ | |||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
| </div> | </div> | ||||||
|  | --}} | ||||||
| @@ -36,7 +36,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|     </ul> |     </ul> | ||||||
|  |     <p class="navbar-text navbar-right" id="daterange"><span> </span> <b class="caret"></b> </p> | ||||||
|  |  | ||||||
|  |  | ||||||
|     <!-- /.navbar-top-links --> |     <!-- /.navbar-top-links --> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user