diff --git a/src/core/js/caosdb.js b/src/core/js/caosdb.js index 825157379749c8a12f602fb9acb7716e9434d7d9..efc79764dbe9e7ea4760120598b892bb22eeb662 100644 --- a/src/core/js/caosdb.js +++ b/src/core/js/caosdb.js @@ -140,13 +140,13 @@ function getEntityRole(element) { * @return A string containing the datatype of the element. */ function getEntityUnit(element) { - // TODO do not restrict to input here? var res = $(element).find("input.caosdb-f-entity-unit"); if (res.length == 1) { var x = res.val(); return (x == '' ? undefined : x); } - return undefined; + + return getEntityHeadingAttribute(element, "unit"); } /** diff --git a/test/core/js/modules/caosdb.js.js b/test/core/js/modules/caosdb.js.js index 250d0f756fea34ad4c30e6377c61294c3d179513..76141117ffc845917c0e5ff50a165e7718663a31 100644 --- a/test/core/js/modules/caosdb.js.js +++ b/test/core/js/modules/caosdb.js.js @@ -453,6 +453,17 @@ QUnit.test("getEntityRole", function(assert) { }); +QUnit.test("getEntityUnit", function(assert) { + var property1 = $(`<div><p class="caosdb-entity-heading-attr"><em + class="caosdb-entity-heading-attr-name">unit:</em>m</p></div>`); + assert.equal(getEntityUnit(property1[0]), "m"); + + var property2 = $(`<div><input type="text" class="caosdb-f-entity-unit" + value="m/s"/><div>`); + assert.equal(getEntityUnit(property2[0]), "m/s"); +}); + + // Test for bug #53 // https://gitlab.com/caosdb/caosdb-webui/issues/53 QUnit.test("unset_entity_references", function(assert) { diff --git a/test/core/js/modules/edit_mode.js.js b/test/core/js/modules/edit_mode.js.js index e1d743417d4e8c1b98b9a14ef6ac698b04f65975..ae11b04a380f162018de70a53409e34b4e6990c6 100644 --- a/test/core/js/modules/edit_mode.js.js +++ b/test/core/js/modules/edit_mode.js.js @@ -26,11 +26,8 @@ QUnit.module("edit_mode.js", { before: function (assert) { this.form_elements_query = form_elements._query; + this.edit_mode_query = edit_mode.query; var done = assert.async(); - // overwrite query - edit_mode.query = async function (str) { - return []; - } retrieveTestEntities("edit_mode/getProperties_1.xml").then(entities => { this.testEntity_getProperties_1 = entities[0]; this.testEntity_make_property_editable_1 = entities[0]; @@ -44,6 +41,8 @@ QUnit.module("edit_mode.js", { $('.modal.fade').has(".dropzone").remove(); }, afterEach: function (assert) { + // remove mock up functions + edit_mode.query = this.edit_mode_query; form_elements._query = this.form_elements_query; }, }); @@ -246,7 +245,7 @@ QUnit.test("make_datatype_input", function (assert) { // mock query response of server form_elements._query = async function (q) { - console.log(q); + log.getLogger("edit_mode").trace(q); const entities = str2xml(`<Response> <RecordType name="Person"/></Response>`); return transformation.transformEntities(entities); @@ -262,7 +261,7 @@ QUnit.test("make_datatype_input", function (assert) { "reference_scope": null, }, "No datatype (defaults to TEXT)"); done(); - }); + }, true); const text_dt_input = edit_mode.make_datatype_input("TEXT"); text_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -273,7 +272,7 @@ QUnit.test("make_datatype_input", function (assert) { "reference_scope": null, }, "TEXT"); done(); - }); + }, true); const ref_dt_input = edit_mode.make_datatype_input("REFERENCE"); ref_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -284,7 +283,7 @@ QUnit.test("make_datatype_input", function (assert) { "reference_scope": null, }, "REF"); done(); - }); + }, true); const file_dt_input = edit_mode.make_datatype_input("FILE"); file_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -295,7 +294,7 @@ QUnit.test("make_datatype_input", function (assert) { "reference_scope": null, }, "FILE"); done(); - }); + }, true); const person_dt_input = edit_mode.make_datatype_input("Person"); person_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -306,7 +305,7 @@ QUnit.test("make_datatype_input", function (assert) { "reference_scope": "Person", }, "Person"); done(); - }); + }, true); const list_text_dt_input = edit_mode.make_datatype_input("LIST<TEXT>"); list_text_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -318,7 +317,7 @@ QUnit.test("make_datatype_input", function (assert) { "is_list": "on", }, "LIST<TEXT>"); done(); - }); + }, true); const list_ref_dt_input = edit_mode.make_datatype_input("LIST<REFERENCE>"); list_ref_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -330,7 +329,7 @@ QUnit.test("make_datatype_input", function (assert) { "is_list": "on", }, "LIST<REFERENCE>"); done(); - }); + }, true); const list_file_dt_input = edit_mode.make_datatype_input("LIST<FILE>"); list_file_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -342,7 +341,7 @@ QUnit.test("make_datatype_input", function (assert) { "is_list": "on", }, "LIST<FILE>"); done(); - }); + }, true); const list_per_dt_input = edit_mode.make_datatype_input("LIST<Person>"); list_per_dt_input.addEventListener("caosdb.field.ready", function (e) { @@ -354,7 +353,7 @@ QUnit.test("make_datatype_input", function (assert) { "is_list": "on", }, "LIST<Person>"); done(); - }); + }, true); }); @@ -494,7 +493,9 @@ QUnit.test("remove_delete_button", function (assert) { const datamodel = ` <div><div class=\"btn-group-vertical\"><button type=\"button\" class=\"btn btn-default caosdb-f-edit-panel-new-button new-property\">Create new Property</button><button type=\"button\" class=\"btn btn-default caosdb-f-edit-panel-new-button new-recordtype\">Create new RecordType</button></div><div title=\"Drag and drop Properties from this panel to the Entities on the left.\" class=\"panel panel-default\"><div class=\"panel-heading\"><h5>Existing Properties</h5></div><div class=\"panel-body\"><div class=\"input-group\" style=\"width: 100%;\"><input class=\"form-control\" placeholder=\"filter...\" title=\"Type a name (full or partial).\" oninput=\"edit_mode.filter('properties');\" id=\"caosdb-f-filter-properties\" type=\"text\" /><span class=\"input-group-btn\"><button class=\"btn btn-default caosdb-f-edit-panel-new-button new-property caosdb-f-hide-on-empty-input\" title=\"Create this Property.\"><span class=\"glyphicon glyphicon-plus\"></span></button></span></div><ul class=\"caosdb-v-edit-list\"><li class=\"caosdb-f-edit-drag list-group-item caosdb-v-edit-drag\" id=\"caosdb-f-edit-p-20\">name</li><li class=\"caosdb-f-edit-drag list-group-item caosdb-v-edit-drag\" id=\"caosdb-f-edit-p-21\">unit</li><li class=\"caosdb-f-edit-drag list-group-item caosdb-v-edit-drag\" id=\"caosdb-f-edit-p-24\">description</li></ul></div></div><div title=\"Drag and drop RecordTypes from this panel to the Entities on the left.\" class=\"panel panel-default\"><div class=\"panel-heading\"><h5>Existing RecordTypes</h5></div><div class=\"panel-body\"><div class=\"input-group\" style=\"width: 100%;\"><input class=\"form-control\" placeholder=\"filter...\" title=\"Type a name (full or partial).\" oninput=\"edit_mode.filter('recordtypes');\" id=\"caosdb-f-filter-recordtypes\" type=\"text\" /><span class=\"input-group-btn\"><button class=\"btn btn-default caosdb-f-edit-panel-new-button new-recordtype caosdb-f-hide-on-empty-input\" title=\"Create this RecordType\"><span class=\"glyphicon glyphicon-plus\"></span></button></span></div><ul class=\"caosdb-v-edit-list\"><li class=\"caosdb-f-edit-drag list-group-item caosdb-v-edit-drag\" id=\"caosdb-f-edit-rt-30992\">Test</li><li class=\"caosdb-f-edit-drag list-group-item caosdb-v-edit-drag\" id=\"caosdb-f-edit-rt-31015\">Test2</li></ul></div></div></div>`; - + edit_mode.query = async function(q) { + return []; + } QUnit.test("test case 1 - insert property", async function (assert) {