From 5298ad241a2b3d9f6771b36e12322c88c78da090 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Mon, 11 Jul 2016 21:33:07 +0100 Subject: [PATCH] Show the timezone in the footer. --- app/Composers/AppComposer.php | 22 +++++++++++++++++++ app/Dates/DateFactory.php | 13 +++++++++++ config/setting.php | 10 +++++++++ resources/lang/en/cachet.php | 1 + resources/lang/en/forms.php | 3 ++- .../dashboard/settings/app-setup.blade.php | 11 ++++++++++ resources/views/partials/footer.blade.php | 7 +++++- 7 files changed, 65 insertions(+), 2 deletions(-) diff --git a/app/Composers/AppComposer.php b/app/Composers/AppComposer.php index 0d97bd3a..cc3a83e0 100644 --- a/app/Composers/AppComposer.php +++ b/app/Composers/AppComposer.php @@ -11,12 +11,32 @@ namespace CachetHQ\Cachet\Composers; +use CachetHQ\Cachet\Dates\DateFactory; use GrahamCampbell\Markdown\Facades\Markdown; use Illuminate\Contracts\View\View; use Illuminate\Support\Facades\Config; class AppComposer { + /** + * The date factory instance. + * + * @var \CachetHQ\Cachet\Dates\DateFactory + */ + protected $dates; + + /** + * Create a new app composer instance. + * + * @param \CachetHQ\Cachet\Dates\DateFactory $dates + * + * @return void + */ + public function __construct(DateFactory $dates) + { + $this->dates = $dates; + } + /** * Index page view composer. * @@ -45,6 +65,8 @@ class AppComposer $view->withShowSupport(Config::get('setting.show_support')); $view->withAutomaticLocalization(Config::get('setting.automatic_localization')); $view->withEnableExternalDependencies(Config::get('setting.enable_external_dependencies')); + $view->withShowTimezone(Config::get('setting.show_timezone')); + $view->withTimezone($this->dates->getTimezone()); $view->withSiteTitle(Config::get('setting.app_name')); $view->withFontSubset(Config::get('langs.'.Config::get('app.locale').'.subset', 'latin')); } diff --git a/app/Dates/DateFactory.php b/app/Dates/DateFactory.php index d2e0ca45..e3144170 100644 --- a/app/Dates/DateFactory.php +++ b/app/Dates/DateFactory.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Dates; +use DateTimeZone; use Jenssegers\Date\Date; class DateFactory @@ -88,4 +89,16 @@ class DateFactory { return (new Date($time))->setTimezone($this->cachetTimezone); } + + /** + * Return the abbreviated timezone. + * + * @return string + */ + public function getTimezone() + { + $dateTime = new Date(); + $dateTime->setTimeZone(new DateTimeZone($this->cachetTimezone)); + return $dateTime->format('T'); + } } diff --git a/config/setting.php b/config/setting.php index 9cda36f7..55fd970e 100644 --- a/config/setting.php +++ b/config/setting.php @@ -67,4 +67,14 @@ return [ 'enable_external_dependencies' => true, + /* + |-------------------------------------------------------------------------- + | Show the timezone + |-------------------------------------------------------------------------- + | + | Whether to show the status page timezone in the footer. + | + */ + + 'show_timezone' => false, ]; diff --git a/resources/lang/en/cachet.php b/resources/lang/en/cachet.php index 3cb3070f..0eab0495 100644 --- a/resources/lang/en/cachet.php +++ b/resources/lang/en/cachet.php @@ -136,6 +136,7 @@ return [ 'home' => 'Home', 'description' => 'Stay up to date with the latest service updates from :app.', 'powered_by' => 'Powered by Cachet.', + 'timezone' => 'Times are shown in :timezone.', 'about_this_site' => 'About This Site', 'rss-feed' => 'RSS', 'atom-feed' => 'Atom', diff --git a/resources/lang/en/forms.php b/resources/lang/en/forms.php index de0d7fe1..77c2afd8 100644 --- a/resources/lang/en/forms.php +++ b/resources/lang/en/forms.php @@ -99,7 +99,7 @@ return [ // Settings 'settings' => [ - /// Application setup + // Application setup 'app-setup' => [ 'site-name' => 'Site Name', 'site-url' => 'Site URL', @@ -111,6 +111,7 @@ return [ 'subscribers' => 'Allow people to signup to email notifications?', 'automatic_localization' => 'Automatically localise your status page to your visitor\'s language?', 'enable_external_dependencies' => 'Enable Third Party Dependencies (Google Fonts, Trackers, etc...)', + 'show_timezone' => 'Show the timezone the status page is running in.', ], 'analytics' => [ 'analytics_google' => 'Google Analytics code', diff --git a/resources/views/dashboard/settings/app-setup.blade.php b/resources/views/dashboard/settings/app-setup.blade.php index 3cb62d60..7c9d4fb1 100644 --- a/resources/views/dashboard/settings/app-setup.blade.php +++ b/resources/views/dashboard/settings/app-setup.blade.php @@ -95,6 +95,17 @@ +
+
+
+ +
+
+
diff --git a/resources/views/partials/footer.blade.php b/resources/views/partials/footer.blade.php index 617a9e94..8b5454fa 100644 --- a/resources/views/partials/footer.blade.php +++ b/resources/views/partials/footer.blade.php @@ -6,7 +6,12 @@
@if($show_support) -

{!! trans('cachet.powered_by') !!}

+

+ {!! trans('cachet.powered_by') !!} + @if($show_timezone) + {{ trans('cachet.timezone', ['timezone' => $timezone]) }} + @endif +

@endif