Fix removing all port groups (#14253)

* Fix removing all port groups

* Make backend work in the situation where this endpoint is used for more than just this setting change
change event is called multiple times when select2 is cleared (once for each item)
prevent duplicate backend calls
Remove no default Port Group item
This commit is contained in:
Tony Murray
2022-08-28 20:57:16 -05:00
committed by GitHub
parent a664d12eb7
commit 323f0ea8b5
3 changed files with 21 additions and 20 deletions
+6 -4
View File
@@ -26,20 +26,22 @@
namespace App\Http\Controllers;
use App\Models\Port;
use Illuminate\Support\Facades\Validator;
class PortController extends Controller
{
public function update(\Illuminate\Http\Request $request, Port $port)
{
$this->validate($request, [
$validated = Validator::make($request->json()->all(), [
'groups' => 'array',
'groups.*' => 'int',
]);
])->validate();
$updated = false;
$message = '';
if ($request->has('groups')) {
$changes = $port->groups()->sync($request->get('groups'));
if (array_key_exists('groups', $validated)) {
$changes = $port->groups()->sync($validated['groups']);
$groups_updated = array_sum(array_map(function ($group_ids) {
return count($group_ids);
}, $changes));