diff --git a/front/js/svelte/records/block/BlockElements.svelte b/front/js/svelte/records/block/BlockElements.svelte index 789a57b..fc9a339 100644 --- a/front/js/svelte/records/block/BlockElements.svelte +++ b/front/js/svelte/records/block/BlockElements.svelte @@ -5,7 +5,8 @@ import Reference from "./elements/Reference.svelte"; import Icon from "../../common/Icon.svelte"; import {insertBlock} from "./block"; - import { getContext} from "svelte"; + import {getContext} from "svelte"; + import {findIndex} from "lodash"; import File from "./elements/File.svelte"; const channel = getContext("channel"); @@ -14,8 +15,10 @@ export let field; export let graph; + export let block; let blockSchema = channel.schemas.find((s) => s.name === field.schema); + function createBlock(e, ui, blockId) { e.preventDefault(); blockData = insertBlock(blockData, ui, blockId); @@ -26,6 +29,30 @@ blockData = blockData.filter(b => b.id !== blockId) } + function upBlock(e, blockId) { + e.preventDefault(); + let blockIndex = findIndex(blockData, (b) => b.id === blockId); + let tempBlock = blockData[blockIndex]; + blockData[blockIndex] = blockData[blockIndex - 1]; + blockData[blockIndex - 1] = tempBlock; + } + + function downBlock(e, blockId) { + e.preventDefault(); + let blockIndex = findIndex(blockData, (b) => b.id === blockId); + let tempBlock = blockData[blockIndex]; + blockData[blockIndex] = blockData[blockIndex + 1]; + blockData[blockIndex + 1] = tempBlock; + } + + function blockIsFirst(blockId) { + return findIndex(blockData, (b) => b.id === blockId) === 0; + } + + function blockIsLast(blockId) { + return findIndex(blockData, (b) => b.id === blockId) === blockData.length - 1; + } +
{field.name}
-
+
diff --git a/src/Database/migrations/2023_03_02_152122_revisions.php b/src/Database/migrations/2023_03_02_152122_revisions.php
index 3f552dc..392ae4b 100644
--- a/src/Database/migrations/2023_03_02_152122_revisions.php
+++ b/src/Database/migrations/2023_03_02_152122_revisions.php
@@ -19,6 +19,7 @@ return new class extends Migration {
$table->jsonb('data');
$table->jsonb('_sys');
$table->jsonb('_file');
+ $table->jsonb('_edges');
});
}