diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index 291dcebea0..3cd48800ed 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -6,12 +6,12 @@ use Config;
use FireflyIII\Models\Tag;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Input;
+use Log;
use Preferences;
use Route;
use Session;
use Steam;
-use Log;
/**
* Class HomeController
*
@@ -84,6 +84,7 @@ class HomeController extends Controller
$frontPage = Preferences::get('frontPageAccounts', []);
$start = Session::get('start', Carbon::now()->startOfMonth());
$end = Session::get('end', Carbon::now()->endOfMonth());
+ $showTour = Preferences::get('tour', true)->data;
$accounts = $repository->getFrontpageAccounts($frontPage);
$savings = $repository->getSavingsAccounts();
@@ -114,7 +115,9 @@ class HomeController extends Controller
}
}
- return view('index', compact('count', 'title', 'savings', 'subTitle', 'mainTitleIcon', 'transactions', 'savingsTotal', 'piggyBankAccounts'));
+ return view(
+ 'index', compact('count', 'showTour', 'title', 'savings', 'subTitle', 'mainTitleIcon', 'transactions', 'savingsTotal', 'piggyBankAccounts')
+ );
}
/**
diff --git a/app/Http/Controllers/JsonController.php b/app/Http/Controllers/JsonController.php
index a582f534c9..17a010123f 100644
--- a/app/Http/Controllers/JsonController.php
+++ b/app/Http/Controllers/JsonController.php
@@ -12,6 +12,7 @@ use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use FireflyIII\Support\CacheProperties;
use Illuminate\Support\Collection;
+use Preferences;
use Response;
use Session;
use Steam;
@@ -24,21 +25,23 @@ use Steam;
class JsonController extends Controller
{
+ public function endTour()
+ {
+ Preferences::set('tour', false);
+
+ return Response::json(true);
+ }
+
/**
*
*/
public function tour()
{
- $headers = [
- 'main-content',
- 'sidebar-toggle',
- 'account-menu',
- 'budget-menu',
- 'report-menu',
- 'transaction-menu',
- 'option-menu',
- 'main-content-end'
- ];
+ $pref = Preferences::get('tour', true);
+ if (!$pref) {
+ abort(404);
+ }
+ $headers = ['main-content', 'sidebar-toggle', 'account-menu', 'budget-menu', 'report-menu', 'transaction-menu', 'option-menu', 'main-content-end'];
$steps = [];
foreach ($headers as $header) {
$steps[] = [
@@ -59,20 +62,21 @@ class JsonController extends Controller
$steps[7]['orphan'] = true;
$steps[7]['backdrop'] = true;
- $template ='
+ $template
+ = '
-
-
+
+
+ data-resume-text="Resume">' . trans('firefly.pause') . '
-
+
';
diff --git a/app/Http/routes.php b/app/Http/routes.php
index 094f0fae46..aa6d5d0daa 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -297,6 +297,8 @@ Route::group(
Route::get('/json/categories', ['uses' => 'JsonController@categories', 'as' => 'json.categories']);
Route::get('/json/tags', ['uses' => 'JsonController@tags', 'as' => 'json.tags']);
Route::get('/json/tour', ['uses' => 'JsonController@tour', 'as' => 'json.tour']);
+ Route::post('/json/end-tour', ['uses' => 'JsonController@endTour']);
+
Route::get('/json/box/in', ['uses' => 'JsonController@boxIn', 'as' => 'json.box.in']);
Route::get('/json/box/out', ['uses' => 'JsonController@boxOut', 'as' => 'json.box.out']);
Route::get('/json/box/bills-unpaid', ['uses' => 'JsonController@boxBillsUnpaid', 'as' => 'json.box.paid']);
diff --git a/public/js/index.js b/public/js/index.js
index f4294be31c..a7542a40ca 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -1,4 +1,4 @@
-/* globals $, columnChart, google, lineChart, pieChart, stackedColumnChart, areaChart */
+/* globals $, columnChart,showTour, Tour, google, lineChart, pieChart, stackedColumnChart, areaChart */
$(function () {
"use strict";
@@ -9,18 +9,32 @@ $(function () {
// do chart JS stuff.
drawChart();
}
-
- $.getJSON('json/tour').success(function (data) {
- var tour = new Tour({steps: data.steps, template: data.template});
- // Initialize the tour
- tour.init();
- // Start the tour
- tour.start();
- });
+ if (showTour) {
+ $.getJSON('json/tour').success(function (data) {
+ var tour = new Tour(
+ {
+ steps: data.steps,
+ template: data.template,
+ onEnd: endTheTour
+ });
+ // Initialize the tour
+ tour.init();
+ // Start the tour
+ tour.start();
+ }).fail(function () {
+ console.log('Already had tour.');
+ });
+ }
});
+function endTheTour() {
+ "use strict";
+ $.post('json/end-tour', {_token: token});
+
+}
+
function drawChart() {
"use strict";
areaChart('chart/account/frontpage', 'accounts-chart');
diff --git a/resources/twig/index.twig b/resources/twig/index.twig
index 5328ae6f18..c0808e413f 100644
--- a/resources/twig/index.twig
+++ b/resources/twig/index.twig
@@ -241,6 +241,16 @@
{% endblock %}
{% block scripts %}
+
+
+
+
{% if Config.get('firefly.chart') == 'google' %}