diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js index 7e74c4248661768602d7055f765b5e3f1cb3bc5e..d1acf85f5f1a0241b8be0eb0b0941139d668b5a7 100644 --- a/src/core/js/edit_mode.js +++ b/src/core/js/edit_mode.js @@ -315,7 +315,7 @@ var edit_mode = new function() { this.get_datatype_str = function (atomic, refid, list) { var result = atomic; - if (typeof refid !== "undefined") { + if (refid !== null && typeof refid !== "undefined") { result = refid; } if (list === "on" || list === true) { @@ -655,7 +655,7 @@ var edit_mode = new function() { datatype = "REFERENCE"; } - var select = $('<select class="form-control"></select>'); + var select = $('<select name="atomic_datatype" class="form-control"></select>'); for (const dt of Object.keys(datatypes)) { select.append('<option data-has-refid="' + (dt == "REFERENCE") + '" data-has-unit="' + datatypes[dt] + '" value="' + dt + '" ' + (dt == datatype ? 'selected="true"' : '') + '>' + dt + '</option>'); } @@ -674,7 +674,6 @@ var edit_mode = new function() { label: "reference to", query: "SELECT name FROM RECORDTYPE", make_desc: getEntityName, - required: true, }; const refid_selector = $(form_elements .make_reference_drop_down(reference_config)); @@ -687,15 +686,8 @@ var edit_mode = new function() { const list_checkbox = $(form_elements .make_checkbox_input(list_checkbox_config)); - //const datatype_input = $(`<div class="form-group"></div>`) - //.append(datatype_selector) - //.append(refid_selector) - //.append(list_checkbox); - return [datatype_selector, refid_selector, list_checkbox, edit_mode.make_unit_input(unit)]; - - //return [datatype_input, edit_mode.make_unit_input(unit)]; } this.make_input = function(label, value) { diff --git a/test/core/js/modules/edit_mode.js.js b/test/core/js/modules/edit_mode.js.js index c6326e4400750f75ef0b939990a941c2f706da2e..a39e1502681b7c6f3a34e7c3701ac9a50e6d2d61 100644 --- a/test/core/js/modules/edit_mode.js.js +++ b/test/core/js/modules/edit_mode.js.js @@ -235,6 +235,26 @@ QUnit.test("make_dataype_input_logic", function(assert){ QUnit.test("make_datatype_input", function(assert){ assert.ok(edit_mode.make_datatype_input); + const form_wrapper = "<form/>"; + + // test cases + const text_dt_input = edit_mode.make_datatype_input("TEXT", undefined); + const ref_dt_input = $(edit_mode.make_datatype_input("REFERENCE", undefined)); + const file_dt_input = $(edit_mode.make_datatype_input("FILE", undefined)); + const person_dt_input = $(edit_mode.make_datatype_input("Person", undefined)); + const list_text_dt_input = $(edit_mode.make_datatype_input("LIST<TEXT>", undefined)); + const list_ref_dt_input = $(edit_mode.make_datatype_input("LIST<REFERENCE>", undefined)); + const list_file_dt_input = $(edit_mode.make_datatype_input("LIST<FILE>", undefined)); + const list_per_dt_input = $(edit_mode.make_datatype_input("LIST<Person>", undefined)); + + assert.equal(text_dt_input.length, 4); + var obj = form_elements + .form_to_object($(form_wrapper).append(text_dt_input)[0]); + assert.propEqual(obj, {"atomic_datatype": "TEXT"}); + + obj = form_elements + .form_to_object($(form_wrapper).append(text_dt_input)); + assert.propEqual(obj, {"atomic_datatype": "REFERENCE"}); }); QUnit.test("make_input", function(assert){ @@ -444,7 +464,7 @@ QUnit.test("remove_delete_button", function(assert){ updated_entity = main_panel.find(".caosdb-entity-panel .caosdb-id:contains('newId')"); assert.equal(updated_entity.length, 1, "entity with new id now in main panel"); - //https://gitlab.com/caosdb/caosdb-webui/issues/47 + // tests for closed issue https://gitlab.com/caosdb/caosdb-webui/issues/47 assert.equal(main_panel.find(".caosdb-entity-panel .caosdb-entity-actions-panel").length, 1, "general actions panel there"); assert.equal(main_panel.find(".caosdb-entity-panel .caosdb-f-edit-mode-entity-actions-panel").length, 1, "edit_mode actions panel there (BUG caosdb-webui#47)");