From 02f8f5970a5af68d187b5a9909bb3585d396dbbe Mon Sep 17 00:00:00 2001 From: lexx Date: Sat, 7 Sep 2024 15:31:56 +0300 Subject: [PATCH] codemirror insert --- .../js/svelte/libs/CodemirrorMarkdown.svelte | 31 ++++++++++++++++--- front/js/svelte/records/FormField.svelte | 10 ++++++ .../svelte/records/elements/Markdown.svelte | 22 +++++++++++-- src/Http/Controller/RecordController.php | 3 +- src/Query/FilterParser.php | 1 + src/Query/Query.php | 3 ++ src/Record/InputFormatter.php | 3 ++ src/Schema/Ui/Markdown.php | 1 + 8 files changed, 66 insertions(+), 8 deletions(-) diff --git a/front/js/svelte/libs/CodemirrorMarkdown.svelte b/front/js/svelte/libs/CodemirrorMarkdown.svelte index 6eec0e2..2d22587 100644 --- a/front/js/svelte/libs/CodemirrorMarkdown.svelte +++ b/front/js/svelte/libs/CodemirrorMarkdown.svelte @@ -1,10 +1,10 @@
- - + + {#if field.collections.length > 0} + + + {/if} {#if errorMessage}
{errorMessage} diff --git a/src/Http/Controller/RecordController.php b/src/Http/Controller/RecordController.php index 00b8900..dc9d747 100644 --- a/src/Http/Controller/RecordController.php +++ b/src/Http/Controller/RecordController.php @@ -27,7 +27,6 @@ class RecordController extends Controller public function __construct( private readonly RecordService $recordService, private readonly AccountService $accountService, - private readonly AuthService $authService, private readonly ChannelService $channelService, private readonly Svelte $svelte, private readonly Query $query, @@ -61,10 +60,12 @@ class RecordController extends Controller ], $filter); + $skip = data_get($urlParams, "skip") ?? 0; $limit = 30; $records = []; $graphArray = null; + $graph = $this->query ->filter($arguments) ->notLinked($request->input("notlinked") ?? "") diff --git a/src/Query/FilterParser.php b/src/Query/FilterParser.php index 0bbfae7..1d6d987 100644 --- a/src/Query/FilterParser.php +++ b/src/Query/FilterParser.php @@ -4,6 +4,7 @@ namespace Lucent\Query; use Illuminate\Contracts\Foundation\Application; use Illuminate\Database\Query\Builder; +use Illuminate\Support\Facades\DB; use Lucent\Database\Database; use Lucent\Query\BuilderConverter\BuilderConverter; use Lucent\Query\Filter\AndFilter; diff --git a/src/Query/Query.php b/src/Query/Query.php index cc2b24b..e034c59 100644 --- a/src/Query/Query.php +++ b/src/Query/Query.php @@ -78,6 +78,7 @@ final class Query // ->toArray(); $formattedRecords = $this->formatRecords($resultsRecordsUnique, $resultChildrenEdges, $resultParentEdges); + $this->reset(); return $formattedRecords; @@ -94,7 +95,9 @@ final class Query $queryRecords = collect($records)->map(function ($recordData) { $record = Record::fromDB($recordData); + $record->data = $this->inputFormatter->fill($record->schema, $record->data); + $queryRecord = QueryRecord::fromRecord($record); $queryRecord->isRoot = data_get($recordData, "isRoot") === true; return $queryRecord; diff --git a/src/Record/InputFormatter.php b/src/Record/InputFormatter.php index d92a60c..1975f4f 100644 --- a/src/Record/InputFormatter.php +++ b/src/Record/InputFormatter.php @@ -16,8 +16,11 @@ class InputFormatter public function fill(string $schemaName, RecordData $input): RecordData { + $schema = $this->channelService->getSchema($schemaName)->get(); + $data = $schema->fields->reduce(fn(array $carry, FieldInterface $field) => $field->format($input->toArray(), $carry), []); + return new RecordData($data); } diff --git a/src/Schema/Ui/Markdown.php b/src/Schema/Ui/Markdown.php index 036215a..ccdabaf 100644 --- a/src/Schema/Ui/Markdown.php +++ b/src/Schema/Ui/Markdown.php @@ -18,6 +18,7 @@ class Markdown implements FieldInterface, RequiredInterface public bool $required = false, public bool $nullable = false, public string $default = "", + public array $collections = [], public string $help = "", public ?int $min = null, public ?int $max = null,