Skip to content

Commit f61d969

Browse files
committed
Add flash messages
1 parent 0dc025a commit f61d969

File tree

6 files changed

+63
-12
lines changed

6 files changed

+63
-12
lines changed

app/Http/Controllers/ContactsController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public function store()
6464
])
6565
);
6666

67-
return Redirect::route('contacts');
67+
return Redirect::route('contacts')->with('success', 'Contact created.');
6868
}
6969

7070
public function edit(Contact $contact)
@@ -111,20 +111,20 @@ public function update(Contact $contact)
111111
])
112112
);
113113

114-
return Redirect::route('contacts.edit', $contact);
114+
return Redirect::route('contacts.edit', $contact)->with('success', 'Contact updated.');
115115
}
116116

117117
public function destroy(Contact $contact)
118118
{
119119
$contact->delete();
120120

121-
return Redirect::route('contacts.edit', $contact);
121+
return Redirect::route('contacts.edit', $contact)->with('success', 'Contact deleted.');
122122
}
123123

124124
public function restore(Contact $contact)
125125
{
126126
$contact->restore();
127127

128-
return Redirect::route('contacts.edit', $contact);
128+
return Redirect::route('contacts.edit', $contact)->with('success', 'Contact restored.');
129129
}
130130
}

app/Http/Controllers/OrganizationsController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function store()
4242
])
4343
);
4444

45-
return Redirect::route('organizations');
45+
return Redirect::route('organizations')->with('success', 'Organization created.');
4646
}
4747

4848
public function edit(Organization $organization)
@@ -79,20 +79,20 @@ public function update(Organization $organization)
7979
])
8080
);
8181

82-
return Redirect::route('organizations.edit', $organization);
82+
return Redirect::route('organizations.edit', $organization)->with('success', 'Organization updated.');
8383
}
8484

8585
public function destroy(Organization $organization)
8686
{
8787
$organization->delete();
8888

89-
return Redirect::route('organizations.edit', $organization);
89+
return Redirect::route('organizations.edit', $organization)->with('success', 'Organization deleted.');
9090
}
9191

9292
public function restore(Organization $organization)
9393
{
9494
$organization->restore();
9595

96-
return Redirect::route('organizations.edit', $organization);
96+
return Redirect::route('organizations.edit', $organization)->with('success', 'Organization restored.');
9797
}
9898
}

app/Http/Controllers/UsersController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function store()
4848
])
4949
);
5050

51-
return Redirect::route('users');
51+
return Redirect::route('users')->with('success', 'User created.');
5252
}
5353

5454
public function edit(User $user)
@@ -81,20 +81,20 @@ public function update(User $user)
8181
$user->update(['password' => Request::get('password')]);
8282
}
8383

84-
return Redirect::route('users.edit', $user);
84+
return Redirect::route('users.edit', $user)->with('success', 'User updated.');
8585
}
8686

8787
public function destroy(User $user)
8888
{
8989
$user->delete();
9090

91-
return Redirect::route('users.edit', $user);
91+
return Redirect::route('users.edit', $user)->with('success', 'User deleted.');
9292
}
9393

9494
public function restore(User $user)
9595
{
9696
$user->restore();
9797

98-
return Redirect::route('users.edit', $user);
98+
return Redirect::route('users.edit', $user)->with('success', 'User restored.');
9999
}
100100
}

app/Providers/AppServiceProvider.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ public function register()
2929
return md5_file(public_path('mix-manifest.json'));
3030
});
3131
Inertia::share('app.name', Config::get('app.name'));
32+
Inertia::share('flash', function () {
33+
return [
34+
'success' => Session::get('success'),
35+
];
36+
});
3237
Inertia::share('errors', function () {
3338
return Session::get('errors') ? Session::get('errors')->getBag('default')->getMessages() : (object) [];
3439
});

resources/js/Shared/FlashMessages.vue

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<template>
2+
<div>
3+
<div v-if="$page.flash.success && show" class="mb-8 flex items-center justify-between bg-green rounded max-w-lg">
4+
<div class="flex items-center">
5+
<svg class="ml-4 mr-2 flex-no-shrink w-4 h-4 fill-white" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><polygon points="0 11 2 9 7 14 18 3 20 5 7 18" /></svg>
6+
<div class="py-4 text-white text-sm font-medium">{{ $page.flash.success }}</div>
7+
</div>
8+
<button type="button" class="group mr-2 p-2" @click="show = false">
9+
<svg class="block w-2 h-2 fill-green-dark group-hover:fill-green-darker" xmlns="http://www.w3.org/2000/svg" width="235.908" height="235.908" viewBox="278.046 126.846 235.908 235.908"><path d="M506.784 134.017c-9.56-9.56-25.06-9.56-34.62 0L396 210.18l-76.164-76.164c-9.56-9.56-25.06-9.56-34.62 0-9.56 9.56-9.56 25.06 0 34.62L361.38 244.8l-76.164 76.165c-9.56 9.56-9.56 25.06 0 34.62 9.56 9.56 25.06 9.56 34.62 0L396 279.42l76.164 76.165c9.56 9.56 25.06 9.56 34.62 0 9.56-9.56 9.56-25.06 0-34.62L430.62 244.8l76.164-76.163c9.56-9.56 9.56-25.06 0-34.62z" /></svg>
10+
</button>
11+
</div>
12+
<div v-if="Object.keys($page.errors).length > 0 && show" class="mb-8 flex items-center justify-between bg-red-light rounded max-w-lg">
13+
<div class="flex items-center">
14+
<svg class="ml-4 mr-2 flex-no-shrink w-4 h-4 fill-white" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M2.93 17.07A10 10 0 1 1 17.07 2.93 10 10 0 0 1 2.93 17.07zm1.41-1.41A8 8 0 1 0 15.66 4.34 8 8 0 0 0 4.34 15.66zm9.9-8.49L11.41 10l2.83 2.83-1.41 1.41L10 11.41l-2.83 2.83-1.41-1.41L8.59 10 5.76 7.17l1.41-1.41L10 8.59l2.83-2.83 1.41 1.41z" /></svg>
15+
<div class="py-4 text-white text-sm font-medium">
16+
<span v-if="Object.keys($page.errors).length === 1">There is one form error.</span>
17+
<span v-else>There are {{ Object.keys($page.errors).length }} form errors.</span>
18+
</div>
19+
</div>
20+
<button type="button" class="group mr-2 p-2" @click="show = false">
21+
<svg class="block w-2 h-2 fill-red-dark group-hover:fill-red-darker" xmlns="http://www.w3.org/2000/svg" width="235.908" height="235.908" viewBox="278.046 126.846 235.908 235.908"><path d="M506.784 134.017c-9.56-9.56-25.06-9.56-34.62 0L396 210.18l-76.164-76.164c-9.56-9.56-25.06-9.56-34.62 0-9.56 9.56-9.56 25.06 0 34.62L361.38 244.8l-76.164 76.165c-9.56 9.56-9.56 25.06 0 34.62 9.56 9.56 25.06 9.56 34.62 0L396 279.42l76.164 76.165c9.56 9.56 25.06 9.56 34.62 0 9.56-9.56 9.56-25.06 0-34.62L430.62 244.8l76.164-76.163c9.56-9.56 9.56-25.06 0-34.62z" /></svg>
22+
</button>
23+
</div>
24+
</div>
25+
</template>
26+
27+
<script>
28+
export default {
29+
data() {
30+
return {
31+
show: true,
32+
}
33+
},
34+
watch: {
35+
'$page.flash': {
36+
handler() {
37+
this.show = true
38+
},
39+
deep: true,
40+
},
41+
},
42+
}
43+
</script>

resources/js/Shared/Layout.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<main-menu />
3939
</div>
4040
<div class="w-full overflow-hidden px-4 py-8 md:p-12">
41+
<flash-messages />
4142
<slot />
4243
</div>
4344
</div>
@@ -48,13 +49,15 @@
4849

4950
<script>
5051
import Dropdown from '@/Shared/Dropdown'
52+
import FlashMessages from '@/Shared/FlashMessages'
5153
import Icon from '@/Shared/Icon'
5254
import Logo from '@/Shared/Logo'
5355
import MainMenu from '@/Shared/MainMenu'
5456
5557
export default {
5658
components: {
5759
Dropdown,
60+
FlashMessages,
5861
Icon,
5962
Logo,
6063
MainMenu,

0 commit comments

Comments
 (0)