diff --git a/app/Http/Controllers/Admin/TelemetryController.php b/app/Http/Controllers/Admin/TelemetryController.php new file mode 100644 index 0000000000..0456883e67 --- /dev/null +++ b/app/Http/Controllers/Admin/TelemetryController.php @@ -0,0 +1,78 @@ +. + */ + +namespace FireflyIII\Http\Controllers\Admin; + + +use FireflyIII\Http\Controllers\Controller; + +/** + * Class TelemetryController + */ +class TelemetryController extends Controller +{ + public function __construct() + { + parent::__construct(); + + $this->middleware( + static function ($request, $next) { + app('view')->share('title', (string)trans('firefly.administration')); + app('view')->share('mainTitleIcon', 'fa-hand-spock-o'); + + return $next($request); + } + ); + } + + /** + * @return string + */ + public function delete() + { + session()->flash('info', 'No telemetry to delete. Does not work yet.'); + + return redirect(route('admin.telemetry.index')); + } + + /** + * + */ + public function index() + { + app('view')->share('subTitleIcon', 'fa-eye'); + app('view')->share('subTitle', (string)trans('firefly.telemetry_admin_index')); + $version = config('firefly.version'); + $enabled = config('firefly.telemetry', false); + $count = 1; + + return view('admin.telemetry.index', compact('version', 'enabled', 'count')); + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function view() + { + return view('admin.telemetry.view'); + } + +} \ No newline at end of file diff --git a/config/firefly.php b/config/firefly.php index 76dabbd83c..1de4bac523 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -134,6 +134,7 @@ return [ ], 'feature_flags' => [ 'export' => true, + 'telemetry' => false, ], 'encryption' => null === env('USE_ENCRYPTION') || true === env('USE_ENCRYPTION'), @@ -160,6 +161,7 @@ return [ 'login_provider' => envNonEmpty('LOGIN_PROVIDER', 'eloquent'), 'cer_provider' => envNonEmpty('CER_PROVIDER', 'fixer'), 'update_endpoint' => 'https://version.firefly-iii.org/index.json', + 'send_telemetry' => env('SEND_TELEMETRY', false), 'update_minimum_age' => 6, 'default_location' => [ 'longitude' => env('MAP_DEFAULT_LONG', '5.916667'), diff --git a/resources/lang/en_US/breadcrumbs.php b/resources/lang/en_US/breadcrumbs.php index c44a23ae7e..c694dc1db1 100644 --- a/resources/lang/en_US/breadcrumbs.php +++ b/resources/lang/en_US/breadcrumbs.php @@ -57,4 +57,6 @@ return [ 'edit_tag' => 'Edit tag ":tag"', 'delete_tag' => 'Delete tag ":tag"', 'delete_journal_link' => 'Delete link between transactions', + 'telemetry_index' => 'Telemetry', + 'telemetry_view' => 'View telemetry', ]; diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 9ab0cbd603..33994bd589 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -1566,4 +1566,20 @@ return [ 'box_net_worth_in_currency' => 'Net worth (:currency)', 'box_spend_per_day' => 'Left to spend per day: :amount', + // telemetry + 'telemetry_admin_index' => 'Telemetry', + 'telemetry_intro' => 'Firefly III supports the collection and sending of usage telemetry. This means that Firefly III will try to collect info on how you use Firefly III, and send it to the developer of Firefly III. This is always opt-in, and is disabled by default. Firefly III will never collect or send financial information. Firefly III will also never collect or send financial meta-information, like sums or calculations. The collected data will never be made publicly accessible.', + 'telemetry_what_collected' => 'What Firefly III collects and sends exactly is different for each version. You are running version :version. What Firefly III collects in version :version is something you can read in the help pages. Click the (?)-icon in the top-right corner or visit the help page directly on GitHub.', + 'telemetry_is_enabled_yes_no' => 'Is Firefly III telemetry enabled?', + 'telemetry_disabled_no' => 'Telemetry is NOT enabled', + 'telemetry_disabled_yes' => 'Telemetry is enabled', + 'telemetry_enabled_now_what' => 'You can disable telemetry the same way you enabled it: in your .env file or in your Docker configuration.', + 'telemetry_disabled_now_what' => 'If you want to, you can enable telemetry in your .env file or in your Docker configuration.', + 'telemetry_collected_info' => 'Collected information', + 'no_telemetry_present' => 'Firefly III has collected zero telemetry records.', + 'records_telemetry_present' => 'Firefly III has collected :count telemetry record(s).', + 'telemetry_button_view' => 'View telemetry', + 'telemetry_button_delete' => 'Delete telemetry', + 'telemetry_admin_overview' => 'Telemetry overview', + 'telemetry_back_to_index' => 'Back to telemetry' ]; diff --git a/resources/views/v1/admin/index.twig b/resources/views/v1/admin/index.twig index 0f1274cb2d..efbfb7f9da 100644 --- a/resources/views/v1/admin/index.twig +++ b/resources/views/v1/admin/index.twig @@ -14,8 +14,11 @@
+ {{ 'telemetry_intro'|_ }} +
++ {{ trans('firefly.telemetry_what_collected', {version: version})|raw }} +
++ {{ 'telemetry_is_enabled_yes_no'|_ }} + {% if enabled %} + {{ 'telemetry_disabled_yes'|_ }} + {% else %} + {{ 'telemetry_disabled_no'|_ }} + {% endif %} +
+ {% if enabled %} ++ {{ 'telemetry_enabled_now_what'|_ }} +
+ {% else %} ++ {{ 'telemetry_disabled_now_what'|_ }} +
+ {% endif %} ++ {{ 'no_telemetry_present'|_ }} +
+ {% else %} ++ {{ trans('firefly.records_telemetry_present', {count: count}) }} +
+ + {% endif %} ++ (this version does not yet support telemetry) +
+