diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js index fd801d5d3ac304340aa7782e865f7f3f0fd57340..6fb1c47bd6e9c4aa1beabaf5893080a82eaadd22 100644 --- a/src/core/js/edit_mode.js +++ b/src/core/js/edit_mode.js @@ -77,13 +77,13 @@ var edit_mode = new function () { } this.has_edit_fragment = function () { - const fragment = window.location.hash.substr(1); - return fragment === "edit"; + const fragment = window.location.hash.substr(1); + return fragment === "edit"; } this.has_new_record_fragment = function () { - const fragment = window.location.hash.substr(1); - return fragment === "new_record"; + const fragment = window.location.hash.substr(1); + return fragment === "new_record"; } this._init = function () { @@ -94,7 +94,7 @@ var edit_mode = new function () { if (this.has_edit_fragment()) { // find first entity const first_entity = $(".caosdb-entity-panel")[0]; - if(first_entity) { + if (first_entity) { window.localStorage["edit_mode"] = true; after_setup_callback = () => { logger.debug("Edit this entity after #edit in the uri", first_entity); @@ -104,14 +104,14 @@ var edit_mode = new function () { } else if (this.has_new_record_fragment()) { for (let entity of $(".caosdb-entity-panel")) { // find first record type - if(getEntityRole(entity) === "RecordType") { + if (getEntityRole(entity) === "RecordType") { window.localStorage["edit_mode"] = true; const new_record = edit_mode.create_new_record(getEntityID(entity)); after_setup_callback = () => { - logger.debug("Create a new record after #new_record in the uri", entity); - new_record.then((new_record) => { - edit_mode.app.newEntity(new_record); - }, edit_mode.handle_error); + logger.debug("Create a new record after #new_record in the uri", entity); + new_record.then((new_record) => { + edit_mode.app.newEntity(new_record); + }, edit_mode.handle_error); } break; } @@ -120,6 +120,7 @@ var edit_mode = new function () { // intialize the edit mode panel and add all necessary buttons if the edit mode is if (this.is_edit_mode()) { + edit_mode.enter_edit_mode().then(after_setup_callback); edit_mode.toggle_edit_panel(); // This is for the very specific case of reloading the @@ -619,7 +620,7 @@ var edit_mode = new function () { try { $(".caosdb-f-btn-toggle-edit-mode").text("Leave Edit Mode"); - edit_mode.init_tool_box(); + await edit_mode.init_tool_box(); var nextEditApp = editApp; if (typeof nextEditApp == "undefined") { @@ -678,6 +679,7 @@ var edit_mode = new function () { * the model given by model. */ this.init_tool_box = async function () { + // remove previously added model $(".caosdb-f-edit-mode-existing").remove() @@ -1524,6 +1526,7 @@ var edit_mode = new function () { init_drag_n_drop(); } app.onEnterInitial = async function (e) { + $(".caosdb-f-edit-mode-existing").toggleClass("d-none", true); $(".caosdb-f-edit-mode-create-buttons").toggleClass("d-none", false); app.old = undefined; @@ -1598,6 +1601,7 @@ var edit_mode = new function () { }, edit_mode.handle_error); }; app.onEnterChanged = function (e) { + // show existing entities in toolbox $(".caosdb-f-edit-mode-existing").toggleClass("d-none", false); $(".caosdb-f-edit-mode-create-buttons").toggleClass("d-none", true);