From 1faac313724142fd9cda02cd5adbf473dbd14782 Mon Sep 17 00:00:00 2001 From: lexx Date: Sun, 15 Oct 2023 13:04:02 +0300 Subject: [PATCH] move block elements --- .../svelte/records/block/BlockElements.svelte | 58 ++++++++++++++++--- .../records/elements/FieldHeader.svelte | 9 +-- .../2023_03_02_152122_revisions.php | 1 + 3 files changed, 53 insertions(+), 15 deletions(-) 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; + } +
@@ -46,8 +73,23 @@ Block id: Block name: -
  • +
    + +
    + +
    - {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'); }); }