From 2ca0db6598aef7a28d44b5b182e583da010db471 Mon Sep 17 00:00:00 2001
From: Koen Wouters <koen.wouters@maxserv.com>
Date: Wed, 19 Feb 2020 19:07:36 +0100
Subject: [PATCH] [FEATURE] Dashboard widget: documentation TSconfig Reference

A TSconfig Reference documentation widget is added.

Resolves: #90438
Releases: master
Change-Id: I8f2a23df420f14c933bf72d82a93356656b7df8d
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63324
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Daniel Siepmann <coding@daniel-siepmann.de>
Tested-by: Richard Haeser <richard@maxserv.com>
Reviewed-by: Daniel Siepmann <coding@daniel-siepmann.de>
Reviewed-by: Richard Haeser <richard@maxserv.com>
---
 .../master/Feature-90333-Dashboard.rst        |  1 +
 .../DocumentationTSconfigReferenceWidget.php  | 30 +++++++++++++++++++
 .../dashboard/Configuration/Services.yaml     |  7 +++++
 .../Resources/Private/Language/locallang.xlf  | 13 ++++++++
 4 files changed, 51 insertions(+)
 create mode 100644 typo3/sysext/dashboard/Classes/Widgets/DocumentationTSconfigReferenceWidget.php

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-90333-Dashboard.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-90333-Dashboard.rst
index 4a90d43fc2e4..d3b5f708b77f 100644
--- a/typo3/sysext/core/Documentation/Changelog/master/Feature-90333-Dashboard.rst
+++ b/typo3/sysext/core/Documentation/Changelog/master/Feature-90333-Dashboard.rst
@@ -33,6 +33,7 @@ The following widgets are shipped by core extensions now:
 * TYPO3 news: A widget showing the latest 5 news items from typo3.org (EXT:dashboard)
 * TYPO3: This widget will show you some background information about TYPO3 and shows the current version of TYPO3 installed (EXT:dashboard)
 * Getting started with TYPO3: This widget will provide a link to the Getting Started Tutorial (EXT:dashboard)
+* TSconfig Reference: This widget will provide a link to the TSconfig Reference (EXT:dashboard)
 
 Creating your own widget
 ^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/typo3/sysext/dashboard/Classes/Widgets/DocumentationTSconfigReferenceWidget.php b/typo3/sysext/dashboard/Classes/Widgets/DocumentationTSconfigReferenceWidget.php
new file mode 100644
index 000000000000..1c4111dac37d
--- /dev/null
+++ b/typo3/sysext/dashboard/Classes/Widgets/DocumentationTSconfigReferenceWidget.php
@@ -0,0 +1,30 @@
+<?php
+declare(strict_types = 1);
+namespace TYPO3\CMS\Dashboard\Widgets;
+
+/*
+ * This file is part of the TYPO3 CMS project.
+ *
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
+ *
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
+ *
+ * The TYPO3 project - inspiring people to share!
+ */
+
+/**
+ * This widget will show a link to the documentation of TYPO3 to make it easier for people
+ * to find the right documentation
+ */
+class DocumentationTSconfigReferenceWidget extends AbstractCtaButtonWidget
+{
+    protected $title = 'LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.documentation.TSconfigReference.title';
+    protected $text = 'LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.documentation.TSconfigReference.text';
+    protected $description = 'LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.documentation.TSconfigReference.description';
+    protected $label = 'LLL:EXT:dashboard/Resources/Private/Language/locallang.xlf:widgets.documentation.TSconfigReference.content.label';
+    protected $link = 'https://docs.typo3.org/m/typo3/reference-tsconfig/master/en-us/Index.html';
+    protected $iconIdentifier = 'dashboard-documentation';
+}
diff --git a/typo3/sysext/dashboard/Configuration/Services.yaml b/typo3/sysext/dashboard/Configuration/Services.yaml
index 0afc0a41cd1b..c4f91955addf 100644
--- a/typo3/sysext/dashboard/Configuration/Services.yaml
+++ b/typo3/sysext/dashboard/Configuration/Services.yaml
@@ -23,6 +23,13 @@ services:
         identifier: docGettingStarted
         widgetGroups: 'typo3'
 
+  TYPO3\CMS\Dashboard\Widgets\DocumentationTSconfigReferenceWidget:
+    arguments: ['docTSconfig']
+    tags:
+      - name: dashboard.widget
+        identifier: docTSconfig
+        widgetGroups: 'typo3'
+
   TYPO3\CMS\Dashboard\Widgets\T3GeneralInformation:
     arguments: ['t3information']
     tags:
diff --git a/typo3/sysext/dashboard/Resources/Private/Language/locallang.xlf b/typo3/sysext/dashboard/Resources/Private/Language/locallang.xlf
index b211faa6cddf..46cdb348b642 100644
--- a/typo3/sysext/dashboard/Resources/Private/Language/locallang.xlf
+++ b/typo3/sysext/dashboard/Resources/Private/Language/locallang.xlf
@@ -92,6 +92,19 @@
 				<source>Getting Started Tutorial</source>
  			</trans-unit>
 
+			<trans-unit id="widgets.documentation.TSconfigReference.title" xml:space="preserve">
+				<source>TSconfig Reference</source>
+ 			</trans-unit>
+			<trans-unit id="widgets.documentation.TSconfigReference.description" xml:space="preserve">
+				<source>Add a shortcut to the TYPO3 TSconfig Reference.</source>
+ 			</trans-unit>
+			<trans-unit id="widgets.documentation.TSconfigReference.text" xml:space="preserve">
+				<source>This document describes TSconfig and its options.</source>
+ 			</trans-unit>
+			<trans-unit id="widgets.documentation.TSconfigReference.content.label" xml:space="preserve">
+				<source>TSconfig Reference</source>
+ 			</trans-unit>
+
 			<trans-unit id="widgets.t3news.title" xml:space="preserve">
 				<source>TYPO3 news</source>
 			</trans-unit>
-- 
GitLab