From 732204a0622f0eb71ad2a05a4de8af1f406b3ddf Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Thu, 18 Nov 2021 13:19:38 +0100 Subject: [PATCH] refs #19 widget title is now configurable Signed-off-by: Julien Veyssier --- appinfo/info.xml | 2 +- lib/Dashboard/WelcomeWidget.php | 30 ++++++++++++++++++++++-------- lib/Settings/Admin.php | 18 +++++++----------- src/components/AdminSettings.vue | 19 ++++++++++++++++--- 4 files changed, 46 insertions(+), 23 deletions(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index 50ce405..fe463a5 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -31,7 +31,7 @@ https://github.com/eneiluj/welcome/issues https://github.com/eneiluj/welcome/raw/master/img/screenshot1.jpg - + OCA\Welcome\Settings\Admin diff --git a/lib/Dashboard/WelcomeWidget.php b/lib/Dashboard/WelcomeWidget.php index 0df038a..3b2a750 100644 --- a/lib/Dashboard/WelcomeWidget.php +++ b/lib/Dashboard/WelcomeWidget.php @@ -24,7 +24,10 @@ namespace OCA\Welcome\Dashboard; use OCP\Dashboard\IWidget; +use OCP\IConfig; use OCP\IL10N; +use OCP\IURLGenerator; +use OCP\Util; use OCA\Welcome\AppInfo\Application; @@ -32,11 +35,21 @@ class WelcomeWidget implements IWidget { /** @var IL10N */ private $l10n; + /** + * @var IConfig + */ + private $config; + /** + * @var IURLGenerator + */ + private $url; - public function __construct( - IL10N $l10n - ) { + public function __construct(IL10N $l10n, + IURLGenerator $url, + IConfig $config) { $this->l10n = $l10n; + $this->config = $config; + $this->url = $url; } /** @@ -50,8 +63,9 @@ public function getId(): string { * @inheritDoc */ public function getTitle(): string { - return $this->l10n->t('Welcome'); - } + $widgetTitle = $this->config->getAppValue(Application::APP_ID, 'widgetTitle', $this->l10n->t('Welcome')); + return $widgetTitle ?: $this->l10n->t('Welcome'); + } /** * @inheritDoc @@ -71,14 +85,14 @@ public function getIconClass(): string { * @inheritDoc */ public function getUrl(): ?string { - return \OC::$server->getURLGenerator()->linkToRoute('settings.AdminSettings.index', ['section' => 'theming']); + return $this->url->linkToRoute('settings.AdminSettings.index', ['section' => 'theming']); } /** * @inheritDoc */ public function load(): void { - \OC_Util::addScript(Application::APP_ID, Application::APP_ID . '-dashboard'); - \OC_Util::addStyle(Application::APP_ID, 'dashboard'); + Util::addScript(Application::APP_ID, Application::APP_ID . '-dashboard'); + Util::addStyle(Application::APP_ID, 'dashboard'); } } diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 9e6fa82..c0e1cca 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -6,31 +6,25 @@ use OCP\IL10N; use OCP\IConfig; use OCP\Settings\ISettings; -use OCP\Util; use OCP\IURLGenerator; -use OCP\IInitialStateService; +use OCP\AppFramework\Services\IInitialState; use OCA\Welcome\AppInfo\Application; class Admin implements ISettings { - private $request; - private $config; - private $dataDirPath; - private $urlGenerator; - private $l; public function __construct(string $appName, - IL10N $l, + IL10N $l10n, IRequest $request, IConfig $config, IURLGenerator $urlGenerator, - IInitialStateService $initialStateService, + IInitialState $initialStateService, $userId) { $this->appName = $appName; $this->urlGenerator = $urlGenerator; $this->request = $request; - $this->l = $l; + $this->l10n = $l10n; $this->config = $config; $this->initialStateService = $initialStateService; $this->userId = $userId; @@ -46,6 +40,7 @@ public function getForm(): TemplateResponse { $supportUserId = $this->config->getAppValue(Application::APP_ID, 'supportUserId', ''); $supportUserName = $this->config->getAppValue(Application::APP_ID, 'supportUserName', ''); $supportText = $this->config->getAppValue(Application::APP_ID, 'supportText', ''); + $widgetTitle = $this->config->getAppValue(Application::APP_ID, 'widgetTitle', ''); $adminConfig = [ 'filePath' => $filePath, @@ -54,8 +49,9 @@ public function getForm(): TemplateResponse { 'supportUserId' => $supportUserId, 'supportUserName' => $supportUserName, 'supportText' => $supportText, + 'widgetTitle' => $widgetTitle, ]; - $this->initialStateService->provideInitialState($this->appName, 'admin-config', $adminConfig); + $this->initialStateService->provideInitialState('admin-config', $adminConfig); return new TemplateResponse(Application::APP_ID, 'adminSettings'); } diff --git a/src/components/AdminSettings.vue b/src/components/AdminSettings.vue index e14bfa5..f795563 100644 --- a/src/components/AdminSettings.vue +++ b/src/components/AdminSettings.vue @@ -32,6 +32,16 @@
+ +