Added search
This commit is contained in:
@@ -3,9 +3,10 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
use App\Models\{Domain,Setup};
|
||||
use App\Models\{Address,Domain,Setup};
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
@@ -26,6 +27,34 @@ class HomeController extends Controller
|
||||
->with('user',Auth::user());
|
||||
}
|
||||
|
||||
public function search(Request $request): Collection
|
||||
{
|
||||
$this->middleware('auth');
|
||||
|
||||
$result = collect();
|
||||
|
||||
list($zone_id,$host_id,$node_id,$point_id,$domain) = sscanf($request->query('term'),'%d:%d/%d.%d@%s');
|
||||
|
||||
# Look for Opportunities
|
||||
foreach (Address::select(['domain_id','addresses.zone_id','host_id','node_id','point_id','addresses.system_id'])
|
||||
->join('systems',['systems.id'=>'addresses.system_id'])
|
||||
->join('zones',['zones.id'=>'addresses.zone_id'])
|
||||
->when($zone_id,function($q,$zone_id) { return $q->where('zones.zone_id','ilike','%'.$zone_id.'%'); })
|
||||
->when($host_id,function($q,$host_id) { return $q->where('host_id','ilike','%'.$host_id.'%'); })
|
||||
->when($node_id,function($q,$node_id) { return $q->where('node_id','ilike','%'.$node_id.'%'); })
|
||||
->orWhere('systems.name','ilike','%'.$request->query('term').'%')
|
||||
->orWhere('systems.sysop','ilike','%'.$request->query('term').'%')
|
||||
->limit(10)
|
||||
->OrderBy('systems.name')
|
||||
->with(['system'])
|
||||
->get() as $o)
|
||||
{
|
||||
$result->push(['name'=>sprintf('%s (%s)',$o->system->name,$o->ftn),'value'=>url('ftn/system/addedit',[$o->system_id]),'category'=>'Systems']);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* System Setup
|
||||
*
|
||||
|
Reference in New Issue
Block a user