singleton and embed records

This commit is contained in:
2024-10-05 15:19:53 +03:00
parent 07b72b0a2c
commit 52a1ec5c5a
18 changed files with 262 additions and 148 deletions
+11 -7
View File
@@ -16,6 +16,7 @@ use Lucent\Record\Manager;
use Lucent\Record\QueryRecord;
use Lucent\Record\RecordService;
use Lucent\Record\Status;
use Lucent\Schema\SingletonSchema;
use Lucent\Schema\System;
use Lucent\Schema\Validator\ValidatorException;
use Lucent\Svelte\Svelte;
@@ -50,8 +51,9 @@ class RecordController extends Controller
$users = $this->accountService->all();
$schema = $this->channelService->getSchema($schemaName)->get();
$urlParams = $request->all();
$sort = data_get($urlParams, "sort") ?? $schema->sortBy;
$sort = data_get($urlParams, "sort") ?? $schema->sortBy ?? "";
$filter = data_get($urlParams, "filter") ?? [];
$arguments = array_merge([
@@ -80,6 +82,13 @@ class RecordController extends Controller
$records = $graph->getRootRecords()->toArray();
if(get_class($schema) === SingletonSchema::class){
$id = $records[0]->id ?? null;
if(empty($id)){
return redirect($this->channelService->channel->lucentUrl."/records/new?schema=".$schemaName);
}
return redirect($this->channelService->channel->lucentUrl."/records/".$id);
}
$data = [
"schemas" => $this->channelService->channel->schemas,
@@ -341,20 +350,15 @@ class RecordController extends Controller
public function status(Request $request)
{
$ids = array_map(fn($rec) => $rec["id"], $request->input("records"));
$this->recordService->changeStatusBulk(
status: $request->route("status"),
recordsIds: $ids,
recordsIds: $request->input("records"),
);
return ok();
}
public function emptyTrash(Request $request)
{
$this->recordService->emptyTrash($request->route("schemaName"));
return redirect($this->channelService->channel->lucentUrl . "/content/" . $request->route("schemaName"));
}