Row edit and delete card working
This commit is contained in:
@@ -3,10 +3,12 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Row;
|
||||
use App\Models\Table;
|
||||
use App\Models\User;
|
||||
use App\Tables\Changeset;
|
||||
use App\Tables\Column;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
|
||||
@@ -35,6 +37,14 @@ class TableEditController extends Controller
|
||||
});
|
||||
}
|
||||
|
||||
private function storeChangeset(Changeset $chs)
|
||||
{
|
||||
$session_key = "proposal_{$chs->table->id}";
|
||||
|
||||
session()->put($session_key, $chs);
|
||||
session()->save();
|
||||
}
|
||||
|
||||
public function draft(User $user, string $table, $tab = null)
|
||||
{
|
||||
/** @var Table $tableModel */
|
||||
@@ -47,13 +57,18 @@ class TableEditController extends Controller
|
||||
|
||||
$changeset = $this->getChangeset($tableModel);
|
||||
|
||||
if (Input::has('dump')) {
|
||||
dd($changeset);
|
||||
}
|
||||
|
||||
return $this->{camel_case($tab)}($changeset);
|
||||
}
|
||||
|
||||
/** @noinspection PhpUnusedPrivateMethodInspection */
|
||||
private function editRows(Changeset $changeset)
|
||||
{
|
||||
$revision = $changeset->revision;
|
||||
$columns = $changeset->transformColumns();
|
||||
$columns = $changeset->fetchAndTransformColumns();
|
||||
$rows = $revision->rowsData($columns, true, false)->paginate(25, []);
|
||||
|
||||
return view('table.propose.edit-rows', [
|
||||
@@ -63,4 +78,46 @@ class TableEditController extends Controller
|
||||
'rows' => $rows,
|
||||
]);
|
||||
}
|
||||
|
||||
// TODO other tab handlers
|
||||
|
||||
public function draftUpdate(User $user, string $table, Request $request)
|
||||
{
|
||||
/** @var Table $tableModel */
|
||||
$tableModel = $user->tables()->where('name', $table)->first();
|
||||
if ($tableModel === null) abort(404, "No such table.");
|
||||
|
||||
$changeset = $this->getChangeset($tableModel);
|
||||
|
||||
$input = objBag($request->all(), false);
|
||||
|
||||
$code = 200;
|
||||
switch ($input->action) {
|
||||
case 'row.update':
|
||||
$data = (object)$input->data;
|
||||
$changeset->rowUpdate($data);
|
||||
|
||||
$resp = $changeset->fetchAndTransformRow($data->_id);
|
||||
break;
|
||||
|
||||
case 'row.remove':
|
||||
$changeset->rowRemove($input->id);
|
||||
$resp = $changeset->fetchAndTransformRow($input->id);
|
||||
break;
|
||||
|
||||
case 'row.restore':
|
||||
$changeset->rowRestore($input->id);
|
||||
$resp = $changeset->fetchAndTransformRow($input->id);
|
||||
break;
|
||||
|
||||
default:
|
||||
$resp = "Bad Action";
|
||||
$code = 400;
|
||||
break;
|
||||
}
|
||||
|
||||
$this->storeChangeset($changeset);
|
||||
|
||||
return $this->jsonResponse($resp, $code);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user