notify groups (check validation needed)
This commit is contained in:
parent
b07238cbed
commit
3d8a1cf53f
|
@ -272,7 +272,9 @@ class UserController extends Controller
|
||||||
{
|
{
|
||||||
$this->checkPermission(self::NOTIFY_PERMISSION);
|
$this->checkPermission(self::NOTIFY_PERMISSION);
|
||||||
|
|
||||||
return view('admin.users.notifications');
|
$roles = Role::all();
|
||||||
|
|
||||||
|
return view('admin.users.notifications')->with(["roles" => $roles]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -288,12 +290,14 @@ class UserController extends Controller
|
||||||
{
|
{
|
||||||
$this->checkPermission(self::NOTIFY_PERMISSION);
|
$this->checkPermission(self::NOTIFY_PERMISSION);
|
||||||
|
|
||||||
|
//TODO: reimplement the required validation on all,users and roles . didnt work -- required_without:users,roles
|
||||||
$data = $request->validate([
|
$data = $request->validate([
|
||||||
'via' => 'required|min:1|array',
|
'via' => 'required|min:1|array',
|
||||||
'via.*' => 'required|string|in:mail,database',
|
'via.*' => 'required|string|in:mail,database',
|
||||||
'all' => 'required_without:users|boolean',
|
'all' => 'boolean',
|
||||||
'users' => 'required_without:all|min:1|array',
|
'users' => 'min:1|array',
|
||||||
'users.*' => 'exists:users,id',
|
'roles' => 'min:1|array',
|
||||||
|
'roles.*' => 'required_without:all,users|exists:roles,id',
|
||||||
'title' => 'required|string|min:1',
|
'title' => 'required|string|min:1',
|
||||||
'content' => 'required|string|min:1',
|
'content' => 'required|string|min:1',
|
||||||
]);
|
]);
|
||||||
|
@ -312,7 +316,13 @@ class UserController extends Controller
|
||||||
->line(new HtmlString($data['content']));
|
->line(new HtmlString($data['content']));
|
||||||
}
|
}
|
||||||
$all = $data['all'] ?? false;
|
$all = $data['all'] ?? false;
|
||||||
$users = $all ? User::all() : User::whereIn('id', $data['users'])->get();
|
if(!$data["roles"]){
|
||||||
|
$users = $all ? User::all() : User::whereIn('id', $data['users'])->get();
|
||||||
|
} else{
|
||||||
|
$users = User::role($data["roles"])->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Notification::send($users, new DynamicNotification($data['via'], $database, $mail));
|
Notification::send($users, new DynamicNotification($data['via'], $database, $mail));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
|
|
@ -33,13 +33,20 @@
|
||||||
@method('POST')
|
@method('POST')
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>{{__('Users')}}</label><br>
|
|
||||||
<input id="all" name="all"
|
<input id="all" name="all"
|
||||||
type="checkbox" value="1"
|
type="checkbox" value="1"
|
||||||
onchange="toggleClass('users-form', 'd-none')">
|
onchange="toggleClass('users-form', 'd-none')">
|
||||||
<label for="all">{{__('All')}}</label>
|
<label for="all">{{__('All')}}</label><br>
|
||||||
<div id="users-form">
|
<div id="users-form">
|
||||||
|
<label>{{__('Users')}}</label><br>
|
||||||
<select id="users" name="users[]" class="form-control" multiple></select>
|
<select id="users" name="users[]" class="form-control" multiple></select>
|
||||||
|
|
||||||
|
<label>{{__('Roles')}}</label><br>
|
||||||
|
<select id="roles" name="roles[]" onchange="toggleClass('users', 'd-none')" class="form-control" multiple>
|
||||||
|
@foreach($roles as $role)
|
||||||
|
<option value="{{$role->id}}">{{$role->name}}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@error('all')
|
@error('all')
|
||||||
<div class="invalid-feedback d-block">
|
<div class="invalid-feedback d-block">
|
||||||
|
@ -126,6 +133,7 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
function initUserSelect(data) {
|
function initUserSelect(data) {
|
||||||
|
$('#roles').select2();
|
||||||
$('#users').select2({
|
$('#users').select2({
|
||||||
ajax: {
|
ajax: {
|
||||||
url: '/admin/users.json',
|
url: '/admin/users.json',
|
||||||
|
|
Loading…
Reference in a new issue