Setup and Dashboard/Settings use TimezoneLocaleComposer.
This commit is contained in:
@@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace CachetHQ\Cachet\Composers;
|
||||||
|
|
||||||
|
use CachetHQ\Cachet\Models\Component;
|
||||||
|
use CachetHQ\Cachet\Models\Incident;
|
||||||
|
use DateTime;
|
||||||
|
use DateTimeZone;
|
||||||
|
use Illuminate\Support\Facades\View;
|
||||||
|
|
||||||
|
class TimezoneLocaleComposer
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Timezones and Locales composer.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\View\View $view
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function compose(\Illuminate\View\View $view)
|
||||||
|
{
|
||||||
|
$langs = array_map(function ($lang) {
|
||||||
|
$locale = basename($lang);
|
||||||
|
|
||||||
|
return [$locale => ucwords(locale_get_display_name($locale, $locale))];
|
||||||
|
}, glob(app_path('lang').'/*'));
|
||||||
|
|
||||||
|
$langs = call_user_func_array('array_merge', $langs);
|
||||||
|
|
||||||
|
$regions = [
|
||||||
|
'Africa' => DateTimeZone::AFRICA,
|
||||||
|
'America' => DateTimeZone::AMERICA,
|
||||||
|
'Antarctica' => DateTimeZone::ANTARCTICA,
|
||||||
|
'Asia' => DateTimeZone::ASIA,
|
||||||
|
'Atlantic' => DateTimeZone::ATLANTIC,
|
||||||
|
'Australia' => DateTimeZone::AUSTRALIA,
|
||||||
|
'Europe' => DateTimeZone::EUROPE,
|
||||||
|
'Indian' => DateTimeZone::INDIAN,
|
||||||
|
'Pacific' => DateTimeZone::PACIFIC,
|
||||||
|
];
|
||||||
|
|
||||||
|
$timezones = [];
|
||||||
|
|
||||||
|
foreach ($regions as $name => $mask) {
|
||||||
|
$zones = DateTimeZone::listIdentifiers($mask);
|
||||||
|
|
||||||
|
foreach ($zones as $timezone) {
|
||||||
|
// Lets sample the time there right now
|
||||||
|
$time = new DateTime(null, new DateTimeZone($timezone));
|
||||||
|
|
||||||
|
// Us dumb Americans can't handle millitary time
|
||||||
|
$ampm = $time->format('H') > 12 ? ' ('.$time->format('g:i a').')' : '';
|
||||||
|
|
||||||
|
// Remove region name and add a sample time
|
||||||
|
$timezones[$name][$timezone] = substr($timezone, strlen($name) + 1).' - '.$time->format('H:i').$ampm;
|
||||||
|
|
||||||
|
$timezones[$name] = str_replace('_', ' ', $timezones[$name]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$view->with([
|
||||||
|
'timezones' => $timezones,
|
||||||
|
'langs' => $langs,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,8 +3,6 @@
|
|||||||
namespace CachetHQ\Cachet\Http\Controllers;
|
namespace CachetHQ\Cachet\Http\Controllers;
|
||||||
|
|
||||||
use CachetHQ\Cachet\Models\Setting;
|
use CachetHQ\Cachet\Models\Setting;
|
||||||
use DateTime;
|
|
||||||
use DateTimeZone;
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use GrahamCampbell\Binput\Facades\Binput;
|
use GrahamCampbell\Binput\Facades\Binput;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
@@ -57,51 +55,11 @@ class DashSettingsController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function showSetupView()
|
public function showSetupView()
|
||||||
{
|
{
|
||||||
$langs = [
|
|
||||||
'de' => 'Deutsch',
|
|
||||||
'en' => 'English',
|
|
||||||
'fr' => 'Français',
|
|
||||||
'pt-BR' => 'Portuguese, Brazilian',
|
|
||||||
];
|
|
||||||
|
|
||||||
$regions = [
|
|
||||||
'Africa' => DateTimeZone::AFRICA,
|
|
||||||
'America' => DateTimeZone::AMERICA,
|
|
||||||
'Antarctica' => DateTimeZone::ANTARCTICA,
|
|
||||||
'Asia' => DateTimeZone::ASIA,
|
|
||||||
'Atlantic' => DateTimeZone::ATLANTIC,
|
|
||||||
'Australia' => DateTimeZone::AUSTRALIA,
|
|
||||||
'Europe' => DateTimeZone::EUROPE,
|
|
||||||
'Indian' => DateTimeZone::INDIAN,
|
|
||||||
'Pacific' => DateTimeZone::PACIFIC,
|
|
||||||
];
|
|
||||||
|
|
||||||
$timezones = [];
|
|
||||||
|
|
||||||
foreach ($regions as $name => $mask) {
|
|
||||||
$zones = DateTimeZone::listIdentifiers($mask);
|
|
||||||
|
|
||||||
foreach ($zones as $timezone) {
|
|
||||||
// Lets sample the time there right now
|
|
||||||
$time = new DateTime(null, new DateTimeZone($timezone));
|
|
||||||
|
|
||||||
// Us dumb Americans can't handle millitary time
|
|
||||||
$ampm = $time->format('H') > 12 ? ' ('.$time->format('g:i a').')' : '';
|
|
||||||
|
|
||||||
// Remove region name and add a sample time
|
|
||||||
$timezones[$name][$timezone] = substr($timezone, strlen($name) + 1).' - '.$time->format('H:i').$ampm;
|
|
||||||
|
|
||||||
$timezones[$name] = str_replace('_', ' ', $timezones[$name]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->subMenu['setup']['active'] = true;
|
$this->subMenu['setup']['active'] = true;
|
||||||
|
|
||||||
return View::make('dashboard.settings.app-setup')->with([
|
return View::make('dashboard.settings.app-setup')->with([
|
||||||
'pageTitle' => 'Application Setup - Dashboard',
|
'pageTitle' => 'Application Setup - Dashboard',
|
||||||
'subMenu' => $this->subMenu,
|
'subMenu' => $this->subMenu,
|
||||||
'timezones' => $timezones,
|
|
||||||
'langs' => $langs,
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ namespace CachetHQ\Cachet\Http\Controllers;
|
|||||||
|
|
||||||
use CachetHQ\Cachet\Models\Setting;
|
use CachetHQ\Cachet\Models\Setting;
|
||||||
use CachetHQ\Cachet\Models\User;
|
use CachetHQ\Cachet\Models\User;
|
||||||
use DateTime;
|
|
||||||
use DateTimeZone;
|
|
||||||
use GrahamCampbell\Binput\Facades\Binput;
|
use GrahamCampbell\Binput\Facades\Binput;
|
||||||
use Illuminate\Routing\Controller;
|
use Illuminate\Routing\Controller;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
@@ -34,49 +32,8 @@ class SetupController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function getIndex()
|
public function getIndex()
|
||||||
{
|
{
|
||||||
$langs = array_map(function ($lang) {
|
return View::make('setup')->with([
|
||||||
$locale = basename($lang);
|
|
||||||
|
|
||||||
return [$locale => ucwords(locale_get_display_name($locale, $locale))];
|
|
||||||
}, glob(app_path('lang').'/*'));
|
|
||||||
|
|
||||||
$langs = call_user_func_array('array_merge', $langs);
|
|
||||||
|
|
||||||
$regions = [
|
|
||||||
'Africa' => DateTimeZone::AFRICA,
|
|
||||||
'America' => DateTimeZone::AMERICA,
|
|
||||||
'Antarctica' => DateTimeZone::ANTARCTICA,
|
|
||||||
'Asia' => DateTimeZone::ASIA,
|
|
||||||
'Atlantic' => DateTimeZone::ATLANTIC,
|
|
||||||
'Australia' => DateTimeZone::AUSTRALIA,
|
|
||||||
'Europe' => DateTimeZone::EUROPE,
|
|
||||||
'Indian' => DateTimeZone::INDIAN,
|
|
||||||
'Pacific' => DateTimeZone::PACIFIC,
|
|
||||||
];
|
|
||||||
|
|
||||||
$timezones = [];
|
|
||||||
|
|
||||||
foreach ($regions as $name => $mask) {
|
|
||||||
$zones = DateTimeZone::listIdentifiers($mask);
|
|
||||||
|
|
||||||
foreach ($zones as $timezone) {
|
|
||||||
// Lets sample the time there right now
|
|
||||||
$time = new DateTime(null, new DateTimeZone($timezone));
|
|
||||||
|
|
||||||
// Us dumb Americans can't handle millitary time
|
|
||||||
$ampm = $time->format('H') > 12 ? ' ('.$time->format('g:i a').')' : '';
|
|
||||||
|
|
||||||
// Remove region name and add a sample time
|
|
||||||
$timezones[$name][$timezone] = substr($timezone, strlen($name) + 1).' - '.$time->format('H:i').$ampm;
|
|
||||||
|
|
||||||
$timezones[$name] = str_replace('_', ' ', $timezones[$name]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return View::make('setup')->with([
|
|
||||||
'pageTitle' => trans('setup.setup'),
|
'pageTitle' => trans('setup.setup'),
|
||||||
'timezones' => $timezones,
|
|
||||||
'langs' => $langs,
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,5 +24,9 @@ class ViewComposerServiceProvider extends ServiceProvider
|
|||||||
public function register()
|
public function register()
|
||||||
{
|
{
|
||||||
$this->app->view->composer('index', 'CachetHQ\Cachet\Composers\IndexComposer');
|
$this->app->view->composer('index', 'CachetHQ\Cachet\Composers\IndexComposer');
|
||||||
|
$this->app->view->composer([
|
||||||
|
'setup',
|
||||||
|
'dashboard.settings.app-setup',
|
||||||
|
], 'CachetHQ\Cachet\Composers\TimezoneLocaleComposer');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user