From 8ad8babafa167ce272db194953a92b4f8cc37bbd Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 5 Apr 2016 09:43:17 -0400 Subject: [PATCH] Adjust the pkg search routine to also detect exact name matches. --- src/server/library/sysadm-pkg.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/library/sysadm-pkg.cpp b/src/server/library/sysadm-pkg.cpp index 28b844a..a7ad426 100644 --- a/src/server/library/sysadm-pkg.cpp +++ b/src/server/library/sysadm-pkg.cpp @@ -198,12 +198,21 @@ QStringList PKG::pkg_search(QString repo, QString searchterm, QString category){ if(!DB.isOpen()){ return QStringList(); } //could not open DB (file missing?) QStringList found; - QString q_string = "SELECT origin FROM packages WHERE name LIKE '"+searchterm+"%'"; + QString q_string = "SELECT origin FROM packages WHERE name = '"+searchterm+"'"; if(!category.isEmpty()){ q_string.append(" AND origin LIKE '"+category+"/%'"); } QSqlQuery query(q_string, DB); while(query.next()){ found << query.value("origin").toString(); //need the origin for later } + if(found.isEmpty()){ + //Expand the search to names containing the term + q_string = "SELECT origin FROM packages WHERE name LIKE '"+searchterm+"%'"; + if(!category.isEmpty()){ q_string.append(" AND origin LIKE '"+category+"/%'"); } + QSqlQuery q2(q_string, DB); + while(q2.next()){ + found << q2.value("origin").toString(); //need the origin for later + } + } if(found.isEmpty()){ //Expand the search to names containing the term q_string = "SELECT origin FROM packages WHERE name LIKE '%"+searchterm+"%'";