diff --git a/app/Foundation/Providers/ComposerServiceProvider.php b/app/Foundation/Providers/ComposerServiceProvider.php index d30e6d13..6d6fb313 100644 --- a/app/Foundation/Providers/ComposerServiceProvider.php +++ b/app/Foundation/Providers/ComposerServiceProvider.php @@ -34,7 +34,7 @@ class ComposerServiceProvider extends ServiceProvider $factory->composer('*', CurrentUserComposer::class); $factory->composer(['index'], MetricsComposer::class); $factory->composer(['index', 'incident', 'subscribe', 'signup'], StatusPageComposer::class); - $factory->composer(['index', 'incident', 'subscribe', 'signup', 'dashboard.settings.theme'], ThemeComposer::class); + $factory->composer(['index', 'incident', 'subscribe.*', 'signup', 'dashboard.settings.theme'], ThemeComposer::class); $factory->composer('dashboard.*', DashboardComposer::class); $factory->composer(['setup', 'dashboard.settings.localization'], TimezoneLocaleComposer::class); } diff --git a/app/Http/Controllers/SubscribeController.php b/app/Http/Controllers/SubscribeController.php index 3e417cf1..5fcb0659 100644 --- a/app/Http/Controllers/SubscribeController.php +++ b/app/Http/Controllers/SubscribeController.php @@ -42,7 +42,7 @@ class SubscribeController extends Controller */ public function showSubscribe() { - return View::make('subscribe') + return View::make('subscribe.subscribe') ->withAboutApp(Markdown::convertToHtml(Config::get('setting.app_about'))); } @@ -127,4 +127,24 @@ class SubscribeController extends Controller return Redirect::route('status-page') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.unsubscribed'))); } + + /** + * Shows the subscription manager page. + * + * @return \Illuminate\View\View + */ + public function showManage() + { + if (!($code = Binput::get('subscriber'))) { + throw new NotFoundHttpException(); + } + + $subscriber = Subscriber::where('verify_code', '=', $code)->first(); + + if (!$subscriber || !$subscriber->is_verified) { + throw new BadRequestHttpException(); + } + + return View::make('subscribe.manage')->withSubscriber($subscriber); + } } diff --git a/app/Http/Routes/SubscribeRoutes.php b/app/Http/Routes/SubscribeRoutes.php index 75384ebd..b7a373c4 100644 --- a/app/Http/Routes/SubscribeRoutes.php +++ b/app/Http/Routes/SubscribeRoutes.php @@ -29,17 +29,20 @@ class SubscribeRoutes */ public function map(Registrar $router) { - $router->group(['middleware' => ['web', 'ready', 'localize'], 'as' => 'subscribe.'], function ($router) { - $router->group(['middleware' => ['subscribers']], function ($router) { - $router->get('subscribe', [ - 'as' => 'subscribe', - 'uses' => 'SubscribeController@showSubscribe', - ]); + $router->group(['middleware' => ['web', 'ready', 'localize', 'subscribers'], 'as' => 'subscribe.'], function ($router) { + $router->get('subscribe', [ + 'as' => 'subscribe', + 'uses' => 'SubscribeController@showSubscribe', + ]); - $router->post('subscribe', [ - 'uses' => 'SubscribeController@postSubscribe', - ]); - }); + $router->post('subscribe', [ + 'uses' => 'SubscribeController@postSubscribe', + ]); + + $router->get('subscribe/manage', [ + 'as' => 'subscribe.manage', + 'uses' => 'SubscribeController@showManage', + ]); $router->get('subscribe/verify/{code}', [ 'as' => 'verify', diff --git a/resources/lang/en/cachet.php b/resources/lang/en/cachet.php index e5138db1..50b6f17f 100755 --- a/resources/lang/en/cachet.php +++ b/resources/lang/en/cachet.php @@ -63,6 +63,10 @@ return [ 'subscriber' => [ 'subscribe' => 'Subscribe to get the most recent updates', 'button' => 'Subscribe', + 'manage' => [ + 'no_subscriptions' => 'You\'re currently subscribed to all updates.', + 'my_subscriptions' => 'You\'re currently subscribed to the following updates.', + ], 'email' => [ 'subscribe' => 'Subscribe to email updates.', 'subscribed' => 'You\'ve been subscribed to email notifications, please check your email to confirm your subscription.', diff --git a/resources/views/signup.blade.php b/resources/views/signup.blade.php deleted file mode 100644 index cd9c3a92..00000000 --- a/resources/views/signup.blade.php +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layout.master') - -@section('content') -
-

-
- -
- - @if($app_banner) -
-
- @if($app_domain) - - @else - - @endif -
-
- @endif - - @include('dashboard.partials.errors') - -
-
- {{ trans('cachet.signup.title') }} -
-
-
- -
- - -
-
- - -
-
- - -
- -
-
-
-@stop diff --git a/resources/views/subscribe.blade.php b/resources/views/subscribe.blade.php deleted file mode 100644 index c5370708..00000000 --- a/resources/views/subscribe.blade.php +++ /dev/null @@ -1,26 +0,0 @@ -@extends('layout.master') - -@section('content') -
-

-
- -
- - @include('dashboard.partials.errors') - -
-
- {{ trans('cachet.subscriber.subscribe') }} -
-
-
- -
- -
- -
-
-
-@stop diff --git a/resources/views/subscribe/manage.blade.php b/resources/views/subscribe/manage.blade.php new file mode 100644 index 00000000..d5dc89f8 --- /dev/null +++ b/resources/views/subscribe/manage.blade.php @@ -0,0 +1,29 @@ +@extends('layout.master') + +@section('content') +
+

+
+ +
+ +@include('dashboard.partials.errors') + +
+
{{ $subscriber->email }}
+ @if($subscriber->subscriptions->count() > 0) +
+

{{ trans('cachet.subscriber.manage.my_subscriptions') }}

+
+
+ @foreach($subscriber->subscriptions as $subscription) +
{{ $subscription->component->name }}
+ @endforeach +
+ @else +
+

{{ trans('cachet.subscriber.manage.no_subscriptions') }}

+
+ @endif +
+@stop diff --git a/resources/views/subscribe/signup.blade.php b/resources/views/subscribe/signup.blade.php new file mode 100644 index 00000000..76abcb7e --- /dev/null +++ b/resources/views/subscribe/signup.blade.php @@ -0,0 +1,47 @@ +@extends('layout.master') + +@section('content') +
+

+
+ +
+ +@if($app_banner) +
+
+ @if($app_domain) + + @else + + @endif +
+
+@endif + +@include('dashboard.partials.errors') + +
+
+ {{ trans('cachet.signup.title') }} +
+
+
+ +
+ + +
+
+ + +
+
+ + +
+ +
+
+
+@stop diff --git a/resources/views/subscribe/subscribe.blade.php b/resources/views/subscribe/subscribe.blade.php new file mode 100644 index 00000000..19221192 --- /dev/null +++ b/resources/views/subscribe/subscribe.blade.php @@ -0,0 +1,26 @@ +@extends('layout.master') + +@section('content') +
+

+
+ +
+ +@include('dashboard.partials.errors') + +
+
+ {{ trans('cachet.subscriber.subscribe') }} +
+
+
+ +
+ +
+ +
+
+
+@stop