diff --git a/src/core/js/ext_bookmarks.js b/src/core/js/ext_bookmarks.js index cf044a8735611167761e9be6c562cb3cea7f30e9..539c841e58cfa218b5972aa4fb22208fc1f4b8c7 100644 --- a/src/core/js/ext_bookmarks.js +++ b/src/core/js/ext_bookmarks.js @@ -581,7 +581,17 @@ var ext_bookmarks = function ($, logger, config) { * @param {string} query_string */ const get_select_id_query_string = function (query_string) { + const test_string = query_string.toLowerCase(); + const select_string = "SELECT ID FROM "; + // Will only be called on valid query results, so don't have to check + // for invalid query strings. + if (test_string.startsWith("find") || test_string.startsWith("count")) { + return select_string + query_string.slice(query_string.indexOf(" ") + 1); + } + if (test_string.startsWith("select")) { + return select_string + query_string.slice(query_string.indexOf("FROM ") + 5); + } } /** @@ -674,6 +684,7 @@ var ext_bookmarks = function ($, logger, config) { get_bookmark_buttons: get_bookmark_buttons, init_button: init_button, get_bookmark_data: get_bookmark_data, + get_select_id_query_string: get_select_id_query_string, } }; diff --git a/test/core/js/modules/ext_bookmarks.js.js b/test/core/js/modules/ext_bookmarks.js.js index 29c4d23d856fd8b8483ead20afdcdc40e59cbec2..58e68314dec595febacc52ebda74a35c56807fd1 100644 --- a/test/core/js/modules/ext_bookmarks.js.js +++ b/test/core/js/modules/ext_bookmarks.js.js @@ -197,4 +197,7 @@ QUnit.test("select-query transformation", function (assert) { assert.equal( ext_bookmarks.get_select_id_query_string("COUNT analysis"), "SELECT ID FROM analysis"); + assert.equal( + ext_bookmarks.get_select_id_query_string("fInD analysis"), + "SELECT ID FROM analysis"); });