From 89c02ba747250f2fe1cf988e22c933d0c06b1c03 Mon Sep 17 00:00:00 2001
From: florian <f.spreckelsen@inidscale.com>
Date: Thu, 14 Oct 2021 15:08:25 +0200
Subject: [PATCH] ENH: Add query-string transform function

---
 src/core/js/ext_bookmarks.js             | 11 +++++++++++
 test/core/js/modules/ext_bookmarks.js.js |  3 +++
 2 files changed, 14 insertions(+)

diff --git a/src/core/js/ext_bookmarks.js b/src/core/js/ext_bookmarks.js
index cf044a87..539c841e 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 29c4d23d..58e68314 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");
 });
-- 
GitLab