diff --git a/front/js/main.js b/front/js/main.js index fc8fdae..2971a67 100644 --- a/front/js/main.js +++ b/front/js/main.js @@ -9,6 +9,7 @@ import {colorPicker} from "./recordEditor/colorPicker.js"; import {sortReferences} from "./recordEditor/sortReferences.js"; import {recordDialog} from "./recordEditor/recordDialog.js"; import {createRecordEntry} from "./recordEditor/createRecordEntry.js"; +import {editRecordEntry} from "./recordEditor/editRecordEntry.js"; addEventListener("load", (event) => { dropdown() @@ -16,6 +17,7 @@ addEventListener("load", (event) => { sortReferences() recordDialog() createRecordEntry() + editRecordEntry() }); Mustache.escape = function (value) { diff --git a/front/js/recordEditor/createRecordEntry.js b/front/js/recordEditor/createRecordEntry.js index dc14bf4..8683a5e 100644 --- a/front/js/recordEditor/createRecordEntry.js +++ b/front/js/recordEditor/createRecordEntry.js @@ -2,6 +2,9 @@ import axios from "axios"; export function createRecordEntry() { const createButton = document.getElementById("record-create-button"); + if(!createButton){ + return; + } createButton.addEventListener("click", save) } @@ -17,28 +20,30 @@ function save(e) { let formData = new FormData(recordForm) - axios - .post("/lucent/records", { - schema: schemaName, - data: Object.fromEntries(formData), - status: "draft", - // edges: graph.edges, - isCreateMode: true, - }) - .then(function (response) { - console.log("SAVE: SAVED"); - window.location.href = "/lucent/records/" + record.id; - }) - .catch(function (error) { - if (!error?.response) { - } - if (typeof error?.response.data.error === "string") { - errorMessage = error.response.data.error; - } else { - validationErrors = error.response.data.error; - console.log(validationErrors) - } + axios + .post("/lucent/records", { + schema: schemaName, + data: Object.fromEntries(formData), + status: "draft", + // edges: graph.edges, + isCreateMode: true, + }) + .then(function (response) { + console.log("SAVE: SAVED"); + window.location = "/lucent/recordss/" + record.id; + return; + }) + .catch(function (error) { + if (!error?.response) { + } + if (typeof error?.response.data.error === "string") { + errorMessage = error.response.data.error; + } else { + validationErrors = error.response.data.error; + console.log(validationErrors) + } - }); + }); + } \ No newline at end of file diff --git a/front/js/recordEditor/editRecordEntry.js b/front/js/recordEditor/editRecordEntry.js new file mode 100644 index 0000000..139749c --- /dev/null +++ b/front/js/recordEditor/editRecordEntry.js @@ -0,0 +1,44 @@ +import axios from "axios"; + +export function editRecordEntry() { + const saveButton = document.getElementById("record-save-button"); + if(!saveButton){ + return; + } + saveButton.addEventListener("click", save) +} + + +function save(e) { + e.preventDefault(); + const recordForm = document.getElementById("record-form"); + // let validationErrors = null; + // let errorMessage = ""; + console.log("SAVE: Attempt"); + // + let formData = new FormData(recordForm) + // + axios + .post("/lucent/records", { + id: recordForm.dataset.recordId, + data: Object.fromEntries(formData), + status: "draft", + // edges: graph.edges, + isCreateMode: false, + }) + .then(function (response) { + console.log("SAVE: SAVED"); + }) + .catch(function (error) { + // if (!error?.response) { + // } + // if (typeof error?.response.data.error === "string") { + // errorMessage = error.response.data.error; + // } else { + // validationErrors = error.response.data.error; + // console.log(validationErrors) + // } + + + }); +} \ No newline at end of file diff --git a/front/js/recordEditor/recordDialog.js b/front/js/recordEditor/recordDialog.js index 5b8f17b..3711631 100644 --- a/front/js/recordEditor/recordDialog.js +++ b/front/js/recordEditor/recordDialog.js @@ -4,6 +4,7 @@ export function recordDialog() { document.querySelectorAll("[data-open-modal]").forEach(el => { const schema = el.dataset.openModal el.addEventListener("click", e => { + e.preventDefault() load(schema) }) }) diff --git a/front/js/svelte/Channel.svelte b/front/js/svelte/Channel.svelte index fa0216b..f2dce9b 100644 --- a/front/js/svelte/Channel.svelte +++ b/front/js/svelte/Channel.svelte @@ -38,13 +38,13 @@
- -
-
- -
+ +
+
+ +
diff --git a/front/views/records-editor/edit.blade.php b/front/views/records-editor/edit.blade.php index 4120a63..0058393 100644 --- a/front/views/records-editor/edit.blade.php +++ b/front/views/records-editor/edit.blade.php @@ -13,7 +13,7 @@
-
+ @foreach($schema->fields as $field) @include("lucent::records-editor.fields", ["field" => $field]) @endforeach diff --git a/src/Http/Controller/RecordController.php b/src/Http/Controller/RecordController.php index a4c40a3..a373b17 100644 --- a/src/Http/Controller/RecordController.php +++ b/src/Http/Controller/RecordController.php @@ -310,7 +310,7 @@ class RecordController extends Controller public function save(Request $request) { - $recordId = $request->input("record.id"); + $recordId = $request->input("id"); try { if ($request->input("isCreateMode")) { @@ -326,9 +326,9 @@ class RecordController extends Controller } else { $this->recordService->updateWithEdges( - id: $request->input("record.id"), - data: $request->input("record.data"), - status: Status::from($request->input("record.status")), + id: $request->input("id"), + data: $request->input("data"), + status: Status::from($request->input("status")), edges: array_map(EdgeInputData::fromArray(...), $request->input("edges") ?? []), ); } @@ -345,10 +345,15 @@ class RecordController extends Controller } catch (LucentException $th) { return fail($th); } + + + + return ok(toArray($newGraph)); } + public function clone(Request $request) { try {