authorizeAbility($request, 'meetings.manage'); $organization = $this->organization($request); $templates = Template::owned($this->ownerRef($request)) ->where('organization_id', $organization->id) ->orderBy('name') ->get(); return view('meet.templates.index', compact('templates', 'organization')); } public function create(Request $request): View { $this->authorizeAbility($request, 'meetings.manage'); return view('meet.templates.create', [ 'defaultSettings' => config('meet.default_settings'), ]); } public function store(Request $request): RedirectResponse { $this->authorizeAbility($request, 'meetings.manage'); $organization = $this->organization($request); $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'description' => ['nullable', 'string'], 'duration_minutes' => ['nullable', 'integer', 'min:15', 'max:480'], 'is_default' => ['sometimes', 'boolean'], 'waiting_room' => ['sometimes', 'boolean'], 'auto_record' => ['sometimes', 'boolean'], 'live_captions' => ['sometimes', 'boolean'], ]); $this->templates->create($request->user(), $organization, array_merge($validated, [ 'settings' => [ 'waiting_room' => $request->boolean('waiting_room', true), 'auto_record' => $request->boolean('auto_record'), 'live_captions' => $request->boolean('live_captions'), ], ])); return redirect()->route('meet.templates.index')->with('success', 'Template saved.'); } }