diff --git a/app/Http/Controllers/SystemController.php b/app/Http/Controllers/SystemController.php index 820cff6..300f43e 100644 --- a/app/Http/Controllers/SystemController.php +++ b/app/Http/Controllers/SystemController.php @@ -3,7 +3,7 @@ namespace App\Http\Controllers; use Carbon\Carbon; -use Illuminate\Database\Eloquent\Collection; +use Illuminate\Support\Collection; use Illuminate\Http\Request; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; @@ -275,6 +275,17 @@ class SystemController extends Controller : redirect()->to('user/system/register'); } + public function api_address(Request $request,System $o): Collection + { + return Address::select(['addresses.id','addresses.zone_id','region_id','host_id','node_id']) + ->leftjoin('zones',['zones.id'=>'addresses.zone_id']) + ->where('addresses.system_id',$o->id) + ->where('zones.domain_id',$request->domain_id) + ->FTNorder() + ->get() + ->map(function($item) { return ['id'=>$item->id,'value'=>$item->ftn3d]; }); + } + /** * Systems with no owners */ @@ -335,7 +346,7 @@ class SystemController extends Controller */ public function echoareas(Request $request,System $o) { - $ao = $o->addresses->filter(function($item) use ($request) { return $item->zone->domain_id == $request->domain_id; })->first(); + $ao = $o->addresses->firstWhere('id',$request->address_id); if (($request->method() == 'POST') && $request->post()) { session()->flash('accordion','echoarea'); @@ -344,13 +355,13 @@ class SystemController extends Controller if (! $ao->session('sespass')) return redirect()->back()->withErrors('System doesnt belong to this network'); - $ao->echoareas()->syncWithPivotValues($request->id,['subscribed'=>Carbon::now()]); + $ao->echoareas()->syncWithPivotValues($request->get('id',[]),['subscribed'=>Carbon::now()]); return redirect()->back()->with('success','Echoareas updated');; } $eo = Echoarea::active() - ->where('domain_id',$request->domain_id) + ->where('domain_id',$ao->zone->domain_id) ->orderBy('name') ->get(); diff --git a/resources/views/system/form-echoarea.blade.php b/resources/views/system/form-echoarea.blade.php index e7a1740..1d66ead 100644 --- a/resources/views/system/form-echoarea.blade.php +++ b/resources/views/system/form-echoarea.blade.php @@ -30,7 +30,21 @@ -
+ +
+
+ +
+ + +
+
+
+ + +
@@ -65,8 +79,45 @@ @append \ No newline at end of file diff --git a/routes/api.php b/routes/api.php index ae671dd..ee0dac7 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,9 +16,15 @@ use App\Http\Controllers\{DomainController,SystemController,ZoneController}; */ Route::middleware(['auth:api'])->group(function () { - Route::get('regions/{o}',[DomainController::class,'api_regions']); - Route::get('hosts/{o}/{region}',[DomainController::class,'api_hosts']); + Route::get('regions/{o}',[DomainController::class,'api_regions']) + ->where('o','[0-9]+'); + Route::get('hosts/{o}/{region}',[DomainController::class,'api_hosts']) + ->where('o','[0-9]+'); Route::get('systems/orphan',[SystemController::class,'api_orphan']); - Route::get('hubs/{o}/{host}',[DomainController::class,'api_hubs']); - Route::post('default/{o}',[ZoneController::class,'api_default']); + Route::get('hubs/{o}/{host}',[DomainController::class,'api_hubs']) + ->where('o','[0-9]+'); + Route::post('default/{o}',[ZoneController::class,'api_default']) + ->where('o','[0-9]+'); + Route::post('system/address/{o}',[SystemController::class,'api_address']) + ->where('o','[0-9]+'); });