mirror of
https://github.com/CachetHQ/Cachet.git
synced 2025-02-13 03:45:26 +01:00
commit
bee4055228
@ -29,7 +29,7 @@ class ComponentController extends Controller
|
||||
$this->subMenu = [
|
||||
'components' => [
|
||||
'title' => trans('dashboard.components.components'),
|
||||
'url' => route('dashboard.components'),
|
||||
'url' => route('dashboard.components.index'),
|
||||
'icon' => 'ion-outlet',
|
||||
'active' => false,
|
||||
],
|
||||
|
@ -44,13 +44,13 @@ class IncidentController extends Controller
|
||||
$this->subMenu = [
|
||||
'incidents' => [
|
||||
'title' => trans('dashboard.incidents.incidents'),
|
||||
'url' => route('dashboard.incidents'),
|
||||
'url' => route('dashboard.incidents.index'),
|
||||
'icon' => 'ion-android-checkmark-circle',
|
||||
'active' => true,
|
||||
],
|
||||
'schedule' => [
|
||||
'title' => trans('dashboard.schedule.schedule'),
|
||||
'url' => route('dashboard.schedule'),
|
||||
'url' => route('dashboard.schedule.index'),
|
||||
'icon' => 'ion-android-calendar',
|
||||
'active' => false,
|
||||
],
|
||||
|
@ -50,7 +50,7 @@ class AuthController extends Controller
|
||||
// Temporarily store the user.
|
||||
Session::put('2fa_id', Auth::user()->id);
|
||||
|
||||
return Redirect::route('two-factor');
|
||||
return Redirect::route('auth.two-factor');
|
||||
}
|
||||
|
||||
// We probably want to add support for "Remember me" here.
|
||||
@ -98,11 +98,11 @@ class AuthController extends Controller
|
||||
// Failed login, log back out.
|
||||
Auth::logout();
|
||||
|
||||
return Redirect::route('login')->withError(trans('forms.login.invalid-token'));
|
||||
return Redirect::route('auth.login')->withError(trans('forms.login.invalid-token'));
|
||||
}
|
||||
}
|
||||
|
||||
return Redirect::route('login')->withError(trans('forms.login.invalid-token'));
|
||||
return Redirect::route('auth.login')->withError(trans('forms.login.invalid-token'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the api routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class ApiRoutes
|
||||
{
|
||||
/**
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the auth routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class AuthRoutes
|
||||
{
|
||||
/**
|
||||
@ -22,36 +27,39 @@ class AuthRoutes
|
||||
*/
|
||||
public function map(Registrar $router)
|
||||
{
|
||||
$router->group(['prefix' => 'auth'], function ($router) {
|
||||
$router->group(['middleware' => 'app.hasSetting', 'setting' => 'app_name'], function ($router) {
|
||||
// Login routes
|
||||
$router->get('login', [
|
||||
'middleware' => 'guest',
|
||||
'as' => 'login',
|
||||
'uses' => 'AuthController@showLogin',
|
||||
]);
|
||||
$router->group([
|
||||
'as' => 'auth.',
|
||||
'middleware' => 'app.hasSetting',
|
||||
'prefix' => 'auth',
|
||||
'setting' => 'app_name',
|
||||
], function ($router) {
|
||||
$router->get('login', [
|
||||
'middleware' => 'guest',
|
||||
'as' => 'login',
|
||||
'uses' => 'AuthController@showLogin',
|
||||
]);
|
||||
|
||||
$router->post('login', [
|
||||
'middleware' => ['guest', 'csrf', 'throttling:10,10'],
|
||||
'as' => 'login',
|
||||
'uses' => 'AuthController@postLogin',
|
||||
]);
|
||||
$router->post('login', [
|
||||
'middleware' => ['guest', 'csrf', 'throttling:10,10'],
|
||||
'uses' => 'AuthController@postLogin',
|
||||
]);
|
||||
|
||||
// Two factor authorization
|
||||
$router->get('2fa', [
|
||||
'as' => 'two-factor',
|
||||
'uses' => 'AuthController@showTwoFactorAuth',
|
||||
]);
|
||||
// Two factor authorization
|
||||
$router->get('2fa', [
|
||||
'as' => 'two-factor',
|
||||
'uses' => 'AuthController@showTwoFactorAuth',
|
||||
]);
|
||||
|
||||
$router->post('2fa', 'AuthController@postTwoFactor');
|
||||
});
|
||||
$router->post('2fa', [
|
||||
'middleware' => ['csrf', 'throttling:10,10'],
|
||||
'uses' => 'AuthController@postTwoFactor',
|
||||
]);
|
||||
|
||||
$router->group(['middleware' => 'auth'], function ($router) {
|
||||
$router->get('logout', [
|
||||
'as' => 'logout',
|
||||
'uses' => 'AuthController@logoutAction',
|
||||
]);
|
||||
});
|
||||
$router->get('logout', [
|
||||
'as' => 'logout',
|
||||
'uses' => 'AuthController@logoutAction',
|
||||
'middleware' => 'auth',
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the dashboard routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class DashboardRoutes
|
||||
{
|
||||
/**
|
||||
@ -26,152 +31,172 @@ class DashboardRoutes
|
||||
'middleware' => 'auth',
|
||||
'prefix' => 'dashboard',
|
||||
'namespace' => 'Admin',
|
||||
'as' => 'dashboard.',
|
||||
], function ($router) {
|
||||
// Dashboard
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard',
|
||||
'as' => 'index',
|
||||
'uses' => 'DashboardController@showDashboard',
|
||||
]);
|
||||
|
||||
// Components
|
||||
$router->group(['prefix' => 'components'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'components.',
|
||||
'prefix' => 'components',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.components',
|
||||
'as' => 'index',
|
||||
'uses' => 'ComponentController@showComponents',
|
||||
]);
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.components.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'ComponentController@showAddComponent',
|
||||
]);
|
||||
$router->post('add', 'ComponentController@createComponentAction');
|
||||
$router->get('groups', [
|
||||
'as' => 'dashboard.components.groups',
|
||||
'as' => 'groups',
|
||||
'uses' => 'ComponentController@showComponentGroups',
|
||||
]);
|
||||
$router->get('groups/add', [
|
||||
'as' => 'dashboard.components.groups.add',
|
||||
'as' => 'groups.add',
|
||||
'uses' => 'ComponentController@showAddComponentGroup',
|
||||
]);
|
||||
$router->get('groups/edit/{component_group}', [
|
||||
'as' => 'dashboard.components.groups.edit',
|
||||
'as' => 'groups.edit',
|
||||
'uses' => 'ComponentController@showEditComponentGroup',
|
||||
]);
|
||||
$router->post('groups/edit/{component_group}', 'ComponentController@updateComponentGroupAction');
|
||||
|
||||
$router->delete('groups/{component_group}/delete', 'ComponentController@deleteComponentGroupAction');
|
||||
$router->post('groups/add', 'ComponentController@postAddComponentGroup');
|
||||
$router->get('{component}/edit', [
|
||||
'as' => 'edit',
|
||||
'uses' => 'ComponentController@showEditComponent',
|
||||
]);
|
||||
$router->delete('{component}/delete', 'ComponentController@deleteComponentAction');
|
||||
$router->get('{component}/edit', 'ComponentController@showEditComponent');
|
||||
$router->post('{component}/edit', 'ComponentController@updateComponentAction');
|
||||
});
|
||||
|
||||
// Incidents
|
||||
$router->group(['prefix' => 'incidents'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'incidents.',
|
||||
'prefix' => 'incidents',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.incidents',
|
||||
'as' => 'index',
|
||||
'uses' => 'IncidentController@showIncidents',
|
||||
]);
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.incidents.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'IncidentController@showAddIncident',
|
||||
]);
|
||||
$router->post('add', 'IncidentController@createIncidentAction');
|
||||
$router->delete('{incident}/delete', 'IncidentController@deleteIncidentAction');
|
||||
$router->get('{incident}/edit', 'IncidentController@showEditIncidentAction');
|
||||
$router->get('{incident}/edit', [
|
||||
'as' => 'edit',
|
||||
'uses' => 'IncidentController@showEditIncidentAction',
|
||||
]);
|
||||
$router->post('{incident}/edit', 'IncidentController@editIncidentAction');
|
||||
});
|
||||
|
||||
// Scheduled Maintenance
|
||||
$router->group(['prefix' => 'schedule'], function ($router) {
|
||||
$router->get('/', ['as' => 'dashboard.schedule', 'uses' => 'ScheduleController@showIndex']);
|
||||
|
||||
$router->group([
|
||||
'as' => 'schedule.',
|
||||
'prefix' => 'schedule',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'index',
|
||||
'uses' => 'ScheduleController@showIndex',
|
||||
]);
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.schedule.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'ScheduleController@showAddSchedule',
|
||||
]);
|
||||
$router->post('add', 'ScheduleController@addScheduleAction');
|
||||
|
||||
$router->get('{incident}/edit', [
|
||||
'as' => 'dashboard.schedule.edit',
|
||||
'as' => 'edit',
|
||||
'uses' => 'ScheduleController@showEditSchedule',
|
||||
]);
|
||||
$router->post('{incident}/edit', 'ScheduleController@editScheduleAction');
|
||||
|
||||
$router->delete('{incident}/delete', [
|
||||
'as' => 'dashboard.schedule.delete',
|
||||
'as' => 'delete',
|
||||
'uses' => 'ScheduleController@deleteScheduleAction',
|
||||
]);
|
||||
});
|
||||
|
||||
// Incident Templates
|
||||
$router->group(['prefix' => 'templates'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'templates.',
|
||||
'prefix' => 'templates',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.templates',
|
||||
'as' => 'index',
|
||||
'uses' => 'IncidentController@showTemplates',
|
||||
]);
|
||||
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.templates.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'IncidentController@showAddIncidentTemplate',
|
||||
]);
|
||||
$router->post('add', 'IncidentController@createIncidentTemplateAction');
|
||||
|
||||
$router->get('{incident_template}/edit', 'IncidentController@showEditTemplateAction');
|
||||
$router->get('{incident_template}/edit', [
|
||||
'as' => 'edit',
|
||||
'uses' => 'IncidentController@showEditTemplateAction',
|
||||
]);
|
||||
$router->post('{incident_template}/edit', 'IncidentController@editTemplateAction');
|
||||
$router->delete('{incident_template}/delete', 'IncidentController@deleteTemplateAction');
|
||||
});
|
||||
|
||||
// Subscribers
|
||||
$router->group(['prefix' => 'subscribers'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'subscribers.',
|
||||
'prefix' => 'subscribers',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.subscribers',
|
||||
'as' => 'index',
|
||||
'uses' => 'SubscriberController@showSubscribers',
|
||||
]);
|
||||
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.subscribers.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'SubscriberController@showAddSubscriber',
|
||||
]);
|
||||
$router->post('add', 'SubscriberController@createSubscriberAction');
|
||||
|
||||
$router->delete('{subscriber}/delete', 'SubscriberController@deleteSubscriberAction');
|
||||
});
|
||||
|
||||
// Metrics
|
||||
$router->group(['prefix' => 'metrics'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'metrics.',
|
||||
'prefix' => 'metrics',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.metrics',
|
||||
'as' => 'index',
|
||||
'uses' => 'MetricController@showMetrics',
|
||||
]);
|
||||
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.metrics.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'MetricController@showAddMetric',
|
||||
]);
|
||||
$router->post('add', 'MetricController@createMetricAction');
|
||||
$router->delete('{metric}/delete', 'MetricController@deleteMetricAction');
|
||||
$router->get('{metric}/edit', 'MetricController@showEditMetricAction');
|
||||
$router->get('{metric}/edit', [
|
||||
'as' => 'edit',
|
||||
'uses' => 'MetricController@showEditMetricAction',
|
||||
]);
|
||||
$router->post('{metric}/edit', 'MetricController@editMetricAction');
|
||||
});
|
||||
|
||||
// Notifications
|
||||
$router->group(['prefix' => 'notifications'], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.notifications',
|
||||
'uses' => 'DashboardController@showNotifications',
|
||||
]);
|
||||
});
|
||||
|
||||
// Team Members
|
||||
$router->group(['prefix' => 'team'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'team.',
|
||||
'prefix' => 'team',
|
||||
], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.team',
|
||||
'as' => 'index',
|
||||
'uses' => 'TeamController@showTeamView',
|
||||
]);
|
||||
|
||||
$router->group(['middleware' => 'admin'], function ($router) {
|
||||
$router->get('add', [
|
||||
'as' => 'dashboard.team.add',
|
||||
'as' => 'add',
|
||||
'uses' => 'TeamController@showAddTeamMemberView',
|
||||
]);
|
||||
$router->get('{user}', 'TeamController@showTeamMemberView');
|
||||
@ -182,21 +207,24 @@ class DashboardRoutes
|
||||
});
|
||||
|
||||
// Settings
|
||||
$router->group(['prefix' => 'settings'], function ($router) {
|
||||
$router->group([
|
||||
'as' => 'settings.',
|
||||
'prefix' => 'settings',
|
||||
], function ($router) {
|
||||
$router->get('setup', [
|
||||
'as' => 'dashboard.settings.setup',
|
||||
'as' => 'setup',
|
||||
'uses' => 'SettingsController@showSetupView',
|
||||
]);
|
||||
$router->get('security', [
|
||||
'as' => 'dashboard.settings.security',
|
||||
'as' => 'security',
|
||||
'uses' => 'SettingsController@showSecurityView',
|
||||
]);
|
||||
$router->get('theme', [
|
||||
'as' => 'dashboard.settings.theme',
|
||||
'as' => 'theme',
|
||||
'uses' => 'SettingsController@showThemeView',
|
||||
]);
|
||||
$router->get('stylesheet', [
|
||||
'as' => 'dashboard.settings.stylesheet',
|
||||
'as' => 'stylesheet',
|
||||
'uses' => 'SettingsController@showStylesheetView',
|
||||
]);
|
||||
$router->post('/', 'SettingsController@postSettings');
|
||||
@ -205,15 +233,17 @@ class DashboardRoutes
|
||||
// User Settings
|
||||
$router->group(['prefix' => 'user'], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'dashboard.user',
|
||||
'as' => 'user',
|
||||
'uses' => 'UserController@showUser',
|
||||
]);
|
||||
$router->post('/', 'UserController@postUser');
|
||||
$router->get('{user}/api/regen', 'UserController@regenerateApiKey');
|
||||
});
|
||||
|
||||
// Internal API.
|
||||
// This should only be used for making requests within the dashboard.
|
||||
/*
|
||||
* Internal API.
|
||||
* This should only be used for making requests within the dashboard.
|
||||
*/
|
||||
$router->group(['prefix' => 'api'], function ($router) {
|
||||
$router->get('incidents/templates', 'ApiController@getIncidentTemplate');
|
||||
$router->post('components/groups/order', 'ApiController@postUpdateComponentGroupOrder');
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the feed routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class FeedRoutes
|
||||
{
|
||||
/**
|
||||
@ -24,8 +29,14 @@ class FeedRoutes
|
||||
{
|
||||
// Prevent access until the app is setup.
|
||||
$router->group(['middleware' => 'app.hasSetting', 'setting' => 'app_name'], function ($router) {
|
||||
$router->get('/atom/{component_group?}', 'AtomController@feedAction');
|
||||
$router->get('/rss/{component_group?}', 'RssController@feedAction');
|
||||
$router->get('/atom/{component_group?}', [
|
||||
'as' => 'feed.atom',
|
||||
'uses' => 'AtomController@feedAction',
|
||||
]);
|
||||
$router->get('/rss/{component_group?}', [
|
||||
'as' => 'feed.rss',
|
||||
'uses' => 'RssController@feedAction',
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the setup routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class SetupRoutes
|
||||
{
|
||||
/**
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the status page routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class StatusPageRoutes
|
||||
{
|
||||
/**
|
||||
@ -22,12 +27,11 @@ class StatusPageRoutes
|
||||
*/
|
||||
public function map(Registrar $router)
|
||||
{
|
||||
// Prevent access until the app is setup.
|
||||
$router->group(['middleware' => 'app.hasSetting', 'setting' => 'app_name'], function ($router) {
|
||||
$router->get('/', [
|
||||
'as' => 'status-page',
|
||||
'uses' => 'HomeController@showIndex',
|
||||
]);
|
||||
});
|
||||
$router->get('/', [
|
||||
'middleware' => 'app.hasSetting',
|
||||
'setting' => 'app_name',
|
||||
'as' => 'status-page',
|
||||
'uses' => 'HomeController@showIndex',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,11 @@ namespace CachetHQ\Cachet\Http\Routes;
|
||||
|
||||
use Illuminate\Contracts\Routing\Registrar;
|
||||
|
||||
/**
|
||||
* This is the subscriber routes class.
|
||||
*
|
||||
* @author James Brooks <james@alt-three.com>
|
||||
*/
|
||||
class SubscribeRoutes
|
||||
{
|
||||
/**
|
||||
@ -22,7 +27,10 @@ class SubscribeRoutes
|
||||
*/
|
||||
public function map(Registrar $router)
|
||||
{
|
||||
$router->group(['middleware' => 'app.hasSetting', 'setting' => 'app_name'], function ($router) {
|
||||
$router->group([
|
||||
'middleware' => 'app.hasSetting',
|
||||
'setting' => 'app_name',
|
||||
], function ($router) {
|
||||
$router->group(['middleware' => 'app.subscribers'], function ($router) {
|
||||
$router->get('subscribe', [
|
||||
'as' => 'subscribe-page',
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
<br>
|
||||
|
||||
<form method="POST" action="{{ route('login', [], false) }}" accept-charset="UTF-8" autocomplete="off" name="{{ str_random(10) }}">
|
||||
<form method="POST" action="{{ route('auth.login', [], false) }}" accept-charset="UTF-8" autocomplete="off" name="{{ str_random(10) }}">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
|
||||
@if(Session::has('error'))
|
||||
|
@ -21,6 +21,8 @@
|
||||
</div>
|
||||
|
||||
<form method="POST" action="/auth/2fa" accept-charset="UTF-8">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
|
||||
<fieldset>
|
||||
<p>{{ trans('dashboard.login.two-factor') }}</p>
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
<a role="menuitem" tabindex="-1" href="{{ url('dashboard/user') }}">{{ trans('dashboard.team.profile') }}</a>
|
||||
</li>
|
||||
<li role="presentation">
|
||||
<a role="menuitem" tabindex="-1" href="{{ route('logout') }}">{{ trans('dashboard.logout') }}</a>
|
||||
<a role="menuitem" tabindex="-1" href="{{ route('auth.logout') }}">{{ trans('dashboard.logout') }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -26,45 +26,45 @@
|
||||
</div>
|
||||
<ul>
|
||||
<li {!! set_active('dashboard') !!}>
|
||||
<a href="{{ route('dashboard') }}">
|
||||
<a href="{{ route('dashboard.index') }}">
|
||||
<i class="icon ion-speedometer"></i>
|
||||
<span>{{ trans('dashboard.dashboard') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/incidents*') !!} {!! set_active('dashboard/schedule*') !!}>
|
||||
<a href="{{ route('dashboard.incidents') }}">
|
||||
<a href="{{ route('dashboard.incidents.index') }}">
|
||||
<i class="icon ion-android-alert"></i>
|
||||
<span>{{ trans('dashboard.incidents.incidents') }}</span>
|
||||
<span class="label label-info">{{ $incident_count }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/templates*') !!}>
|
||||
<a href="{{ route('dashboard.templates') }}">
|
||||
<a href="{{ route('dashboard.templates.index') }}">
|
||||
<i class="icons ion-document-text"></i>
|
||||
<span>{{ trans('dashboard.incidents.incident-templates') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/components*') !!}>
|
||||
<a href="{{ route('dashboard.components') }}">
|
||||
<a href="{{ route('dashboard.components.index') }}">
|
||||
<i class="icons ion-outlet"></i>
|
||||
<span>{{ trans('dashboard.components.components') }}</span>
|
||||
<span class="label label-info">{{ $component_count }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/team*') !!}>
|
||||
<a href="{{ route('dashboard.team') }}">
|
||||
<a href="{{ route('dashboard.team.index') }}">
|
||||
<i class="icons ion-ios-people"></i>
|
||||
<span>{{ trans('dashboard.team.team') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/metrics*') !!}>
|
||||
<a href="{{ route('dashboard.metrics') }}">
|
||||
<a href="{{ route('dashboard.metrics.index') }}">
|
||||
<i class="icon ion-stats-bars"></i>
|
||||
<span>{{ trans('dashboard.metrics.metrics') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/subscribers*') !!}>
|
||||
<a href="{{ route('dashboard.subscribers') }}">
|
||||
<a href="{{ route('dashboard.subscribers.index') }}">
|
||||
<i class="icons ion-email"></i>
|
||||
<span>{{ trans('dashboard.subscribers.subscribers') }}</span>
|
||||
</a>
|
||||
@ -87,7 +87,7 @@
|
||||
<a href="{{ route('status-page') }}"><i class="icon ion-monitor"></i></a>
|
||||
</li>
|
||||
<li data-toggle="tooltip" data-placement="top" title="{{ trans('dashboard.logout') }}">
|
||||
<a href="{{ route('logout') }}"><i class="icon ion-log-out"></i></a>
|
||||
<a href="{{ route('auth.logout') }}"><i class="icon ion-log-out"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -14,8 +14,8 @@
|
||||
@if($current_user)
|
||||
<a href="/auth/logout" class="icon-link"><i class="ion-android-exit"></i> {{ trans('dashboard.logout') }}</a>
|
||||
@endif
|
||||
<a href="/rss" class="icon-link rss"><i class="ion-social-rss"></i> {{ trans('cachet.rss-feed') }}</a>
|
||||
<a href="/atom" class="icon-link rss"><i class="ion-social-rss"></i> {{ trans('cachet.atom-feed') }}</a>
|
||||
<a href="{{ route('feed.rss') }}" class="icon-link rss"><i class="ion-social-rss"></i> {{ trans('cachet.rss-feed') }}</a>
|
||||
<a href="{{ route('feed.atom') }}" class="icon-link rss"><i class="ion-social-rss"></i> {{ trans('cachet.atom-feed') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
x
Reference in New Issue
Block a user