diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 2edc3b7e..4956e565 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -272,7 +272,9 @@ class UserController extends Controller { $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); +//TODO: reimplement the required validation on all,users and roles . didnt work -- required_without:users,roles $data = $request->validate([ 'via' => 'required|min:1|array', 'via.*' => 'required|string|in:mail,database', - 'all' => 'required_without:users|boolean', - 'users' => 'required_without:all|min:1|array', - 'users.*' => 'exists:users,id', + 'all' => 'boolean', + 'users' => 'min:1|array', + 'roles' => 'min:1|array', + 'roles.*' => 'required_without:all,users|exists:roles,id', 'title' => 'required|string|min:1', 'content' => 'required|string|min:1', ]); @@ -312,7 +316,13 @@ class UserController extends Controller ->line(new HtmlString($data['content'])); } $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 { Notification::send($users, new DynamicNotification($data['via'], $database, $mail)); } catch (Exception $e) { diff --git a/app/Http/Controllers/TicketsController.php b/app/Http/Controllers/TicketsController.php index 591c8d85..de59bf88 100644 --- a/app/Http/Controllers/TicketsController.php +++ b/app/Http/Controllers/TicketsController.php @@ -23,9 +23,10 @@ class TicketsController extends Controller { const READ_PERMISSION = 'user.ticket.read'; const WRITE_PERMISSION = 'user.ticket.write'; - public function index(LocaleSettings $locale_settings) + public function index(LocaleSettings $locale_settings, TicketSettings $ticketSettings) { return view('ticket.index', [ + 'ticketsettings' => $ticketSettings, 'tickets' => Ticket::where('user_id', Auth::user()->id)->paginate(10), 'ticketcategories' => TicketCategory::all(), 'locale_datatables' => $locale_settings->datatables diff --git a/app/Settings/TicketSettings.php b/app/Settings/TicketSettings.php index 34fde789..cd621b17 100644 --- a/app/Settings/TicketSettings.php +++ b/app/Settings/TicketSettings.php @@ -7,6 +7,7 @@ use Spatie\LaravelSettings\Settings; class TicketSettings extends Settings { public bool $enabled; + public ?string $information; public static function group(): string { @@ -21,6 +22,7 @@ class TicketSettings extends Settings { return [ 'enabled' => 'nullable|boolean', + 'information' => 'nullable|string', ]; } @@ -38,6 +40,11 @@ class TicketSettings extends Settings 'type' => 'boolean', 'description' => 'Enable or disable the ticket system.', ], + 'information' => [ + 'label' => 'Ticket Information', + 'type' => 'textarea', + 'description' => 'Message shown on the right side when users create a new ticket.', + ], ]; } } diff --git a/database/settings/2023_02_04_181156_create_ticket_settings.php b/database/settings/2023_02_04_181156_create_ticket_settings.php index fcdcd588..701ca14a 100644 --- a/database/settings/2023_02_04_181156_create_ticket_settings.php +++ b/database/settings/2023_02_04_181156_create_ticket_settings.php @@ -11,7 +11,6 @@ class CreateTicketSettings extends SettingsMigration // Get the user-set configuration values from the old table. $this->migrator->add('ticket.enabled', $table_exists ? $this->getOldValue('SETTINGS::TICKET:ENABLED') : 'all'); - $this->migrator->add('ticket.notify', $table_exists ? $this->getOldValue('SETTINGS::TICKET:NOTIFY') : 'all'); } public function down(): void diff --git a/database/settings/2023_05_07_195343_ticket_information.php b/database/settings/2023_05_07_195343_ticket_information.php new file mode 100644 index 00000000..a4d89f25 --- /dev/null +++ b/database/settings/2023_05_07_195343_ticket_information.php @@ -0,0 +1,11 @@ +migrator->add('ticket.information', "Can't start your server? Need an additional port? Do you have any other questions? Let us know by opening a ticket."); + } +}; diff --git a/themes/default/views/admin/users/notifications.blade.php b/themes/default/views/admin/users/notifications.blade.php index 53a87f19..e29303ad 100644 --- a/themes/default/views/admin/users/notifications.blade.php +++ b/themes/default/views/admin/users/notifications.blade.php @@ -33,13 +33,20 @@ @method('POST')
-
- +
+
+ +
+
@error('all')
@@ -126,6 +133,7 @@ }) function initUserSelect(data) { + $('#roles').select2(); $('#users').select2({ ajax: { url: '/admin/users.json', diff --git a/themes/default/views/ticket/index.blade.php b/themes/default/views/ticket/index.blade.php index 0c1d4098..aae64221 100644 --- a/themes/default/views/ticket/index.blade.php +++ b/themes/default/views/ticket/index.blade.php @@ -66,8 +66,7 @@
-

{{__("Can't start your server? Need an additional port? Do you have any other questions? Let us know by - opening a ticket.")}}

+

{!! $ticketsettings->information !!}