From 96a08ef31c7651306ee5c3d251d882fdce993506 Mon Sep 17 00:00:00 2001 From: Bhargav Date: Tue, 26 Mar 2024 22:55:58 +0530 Subject: [PATCH] fix: append condition (#3108) --- web/src/plugins/logs/SearchBar.vue | 68 +++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 21 deletions(-) diff --git a/web/src/plugins/logs/SearchBar.vue b/web/src/plugins/logs/SearchBar.vue index 21b8d753c9..e75dd665be 100644 --- a/web/src/plugins/logs/SearchBar.vue +++ b/web/src/plugins/logs/SearchBar.vue @@ -142,9 +142,11 @@ along with this program. If not, see . @click.stop="applySavedView(props.row)" v-close-popup > - {{ - props.row.view_name - }} + {{ props.row.view_name }} @click.stop="applySavedView(props.row)" v-close-popup > - {{ - props.row.view_name - }} + {{ props.row.view_name }} { - return match + " " + filter + " and "; - }); - } else if ( - currentQuery[0].toLowerCase().indexOf("order by") != -1 || - currentQuery[0].toLowerCase().indexOf("limit") != -1 - ) { - currentQuery[0] = currentQuery[0].replace( - /order by[^]*?limit/gi, - (match) => { - return " where " + filter + " " + match; - } - ); + let query = currentQuery[0].toLowerCase(); + if (query.includes("where")) { + if (query.includes("order by")) { + const [beforeOrderBy, afterOrderBy] = query.split("order by"); + query = + beforeOrderBy.trim() + + " AND " + + filter + + " order by" + + afterOrderBy; + } else if (query.includes("limit")) { + const [beforeLimit, afterLimit] = query.split("limit"); + query = + beforeLimit.trim() + " AND " + filter + " limit" + afterLimit; + } else { + query = query + " AND " + filter; + } } else { - currentQuery[0] += " where " + filter; + if (query.includes("order by")) { + const [beforeOrderBy, afterOrderBy] = query.split("order by"); + query = + beforeOrderBy.trim() + + " where " + + filter + + " order by" + + afterOrderBy; + } else if (query.includes("limit")) { + const [beforeLimit, afterLimit] = query.split("limit"); + query = + beforeLimit.trim() + + " where " + + filter + + " limit" + + afterLimit; + } else { + query = query + " where " + filter; + } } + currentQuery[0] = query; } else { currentQuery[0].length == 0 ? (currentQuery[0] = filter)