public function add($id) { // $current_user = Auth::user(); $user_email = \montserrat\Email::whereEmail($current_user->email)->first(); $defaults['contact_id'] = $id; if (empty($user_email->contact_id)) { $defaults['user_id'] = 0; } else { $defaults['user_id'] = $user_email->contact_id; } //lookup the contact type of the touchpoint being added and show similar ones in drop down (persons, parishes, etc.) $contact = \montserrat\Contact::findOrFail($id); if (isset($contact->subcontact_type)) { $persons = \montserrat\Contact::whereSubcontactType($contact->subcontact_type)->orderBy('sort_name')->pluck('sort_name', 'id'); } else { $persons = \montserrat\Contact::whereContactType($contact->contact_type)->orderBy('sort_name')->pluck('sort_name', 'id'); } $staff = \montserrat\Contact::with('groups')->whereHas('groups', function ($query) { $query->where('group_id', '=', GROUP_ID_STAFF); })->orderBy('sort_name')->pluck('sort_name', 'id'); // TODO: replace this with an autocomplete text box for performance rather than a dropdown box return view('touchpoints.create', compact('staff', 'persons', 'defaults')); }