who knows

This commit is contained in:
2024-04-03 16:25:59 +03:00
parent 49c1d5efd0
commit e9c2e82bc3
8 changed files with 38 additions and 37 deletions
+1 -1
View File
@@ -28,7 +28,7 @@
</div> </div>
{/if} {/if}
<div class="d-flex flex-md-column " style="line-height: 22px"> <div class="d-flex flex-md-column " style="line-height: 22px">
<span class="">{previewTitle(record)}</span> <a class="text-decoration-none" target="_blank" href="{channel.lucentUrl}/records/{record.id}">{previewTitle(record)}</a>
<span class="d-flex gap-1 text-muted"> <span class="d-flex gap-1 text-muted">
{#if record.status === "draft"} {#if record.status === "draft"}
<Status status={record.status}/> <Status status={record.status}/>
+1 -1
View File
@@ -66,7 +66,7 @@
errorMessage = error.response.data.error; errorMessage = error.response.data.error;
} else { } else {
validationErrors = error.response.data.error; validationErrors = error.response.data.error;
console.log(validationErrors) // console.log(validationErrors)
} }
} }
resolve(null); resolve(null);
+20
View File
@@ -20,6 +20,26 @@ export function previewTitle(record) {
return stripHtml(render.slice(0, 300)); return stripHtml(render.slice(0, 300));
} }
export function previewEdgeTitle(edge) {
const channel = getContext("channel");
let edgeSchemaName = channel.schemas
.find((aSchema) => aSchema.name === edge?.sourceSchema)
.fields.find(f => f.name === edge.field).data;
let schema = channel.schemas.find((aSchema) => aSchema.name === edgeSchemaName);
if (!schema?.titleTemplate) {
return noTemplate(schema, edge);
}
let template = Mustache.parse(schema.titleTemplate);
let render = Mustache.render(schema.titleTemplate, edge.data);
if (!render || render === "") {
return noTemplate(schema, edge);
}
return stripHtml(render.slice(0, 300));
}
function noTemplate(schema, record) { function noTemplate(schema, record) {
if (schema?.type === "files") { if (schema?.type === "files") {
return record._file.path; return record._file.path;
+3 -21
View File
@@ -2,7 +2,7 @@
import Icon from "../common/Icon.svelte"; import Icon from "../common/Icon.svelte";
import {getContext, createEventDispatcher} from "svelte"; import {getContext, createEventDispatcher} from "svelte";
import {previewTitle} from "./Preview"; import {previewEdgeTitle, previewTitle} from "./Preview";
import Status from "./Status.svelte"; import Status from "./Status.svelte";
import Preview from "../newPreview/Preview.svelte"; import Preview from "../newPreview/Preview.svelte";
import EdgeData from "./form/references/EdgeData.svelte"; import EdgeData from "./form/references/EdgeData.svelte";
@@ -39,7 +39,8 @@
style="border-color:{schema.color ?? '#ccc'}; border-width: 1px;" style="border-color:{schema.color ?? '#ccc'}; border-width: 1px;"
> >
<div class="card-body"> <div class="card-body">
Edge Data <span class="text-muted d-block">Relation Data</span>
{previewEdgeTitle(edge)}
<div class="position-absolute d-flex end-0" style="top:5px"> <div class="position-absolute d-flex end-0" style="top:5px">
<button <button
class="trash-button text-dark btn btn-sm btn-link" class="trash-button text-dark btn btn-sm btn-link"
@@ -59,26 +60,7 @@
style="border-color:{schema.color ?? '#ccc'}; border-width: 1px;" style="border-color:{schema.color ?? '#ccc'}; border-width: 1px;"
> >
<div class="card-body"> <div class="card-body">
<Preview {record} type="card"/> <Preview {record} type="card"/>
<!-- <div class="overflow-hidden">-->
<!-- <a-->
<!-- class="title-link m-0 fs-5 text-decoration-none text-dark d-block"-->
<!-- href="{channel.lucentUrl}/records/{record.id}"-->
<!-- title={cardTitle}-->
<!-- >-->
<!-- {cardTitle}-->
<!-- </a>-->
<!-- <small class="text-muted">-->
<!-- {schema.label}-->
<!-- </small>-->
<!-- <small class="text-muted">-->
<!-- {#if record.status === "draft"}-->
<!-- <Status status={record.status} />-->
<!-- {/if}-->
<!-- </small>-->
<!-- </div>-->
</div> </div>
{#if hasDelete} {#if hasDelete}
-1
View File
@@ -1,6 +1,5 @@
import { deepEqual } from 'fast-equals'; import { deepEqual } from 'fast-equals';
export function isEqual(obj1, obj2) { export function isEqual(obj1, obj2) {
return deepEqual(obj1, obj2); return deepEqual(obj1, obj2);
// if (obj1 === obj2) return true; // if (obj1 === obj2) return true;
// //
+2 -2
View File
@@ -36,7 +36,7 @@
originalContent = { originalContent = {
data: JSON.parse(JSON.stringify(data)), data: JSON.parse(JSON.stringify(data)),
status: status, status: status,
edges: JSON.parse(JSON.stringify(graph?.map(r => r.edge.target+r.edge.field) ?? [])), edges: JSON.parse(JSON.stringify(graph?.map(r => r.edge.target+r.edge.field) ?? [])).sort(),
}; };
hasUnsavedData = checkUnsavedData(); hasUnsavedData = checkUnsavedData();
@@ -75,7 +75,7 @@
return !isEqual(originalContent, { return !isEqual(originalContent, {
data: data, data: data,
status: status, status: status,
edges: graph?.map(r => r.edge.target+r.edge.field) ?? [], edges: graph?.map(r => r.edge.target+r.edge.field).sort() ?? [],
}); });
} }
</script> </script>
+1 -1
View File
@@ -80,7 +80,7 @@ readonly class RecordService
*/ */
public function update(UpdateRecordData $data): Result public function update(UpdateRecordData $data): Result
{ {
$record = $this->query->filter(["id" => $data->id])->run()->rootRecords->first(); $record = $this->query->run(fn($builder)=>$builder->filter(["id" => $data->id]))->rootRecords->first();
if (empty($record)) { if (empty($record)) {
return Error::create("Record id is missing"); return Error::create("Record id is missing");
+10 -10
View File
@@ -233,6 +233,8 @@ class RecordController extends Controller
} }
$schema = $this->channelService->getSchema($record->schema)->get(); $schema = $this->channelService->getSchema($record->schema)->get();
// $recordHistory = $this->recordManager->fromSession($request->session())->push($rid)->getRecords($rid);
return $this->svelte->render( return $this->svelte->render(
layout: "channel", layout: "channel",
view: "recordEdit", view: "recordEdit",
@@ -242,7 +244,7 @@ class RecordController extends Controller
"graph" => $this->editorTree->toEditor($graph->tree()->first()), "graph" => $this->editorTree->toEditor($graph->tree()->first()),
"record" => toArray($record), "record" => toArray($record),
"users" => $this->accountService->all(), "users" => $this->accountService->all(),
"recordHistory" => $recordHistory, "recordHistory" => $recordHistory ?? [],
"isWritable" => in_array($record->schema, $this->accountService->currentWritableSchemas()) "isWritable" => in_array($record->schema, $this->accountService->currentWritableSchemas())
] ]
); );
@@ -342,15 +344,13 @@ class RecordController extends Controller
return result($res); return result($res);
} }
$newGraph = $this->query $newGraph = $this->query->run(
->filter(["id" => $recordId]) fn($builder) => $builder->filter(["id" => $recordId])
->limit(1) ->limit(1)
->skip(0) ->skip(0)
->childrenDepth(2) ->childrenDepth(1)
->childrenLimit(200) ->childrenLimit(500)
->parentsDepth(1) );
->parentsLimit(200)
->run();
return result(Success::create([ return result(Success::create([