From 5dd1aeed623821c2bce410e20926c97a656bcbed Mon Sep 17 00:00:00 2001
From: Marvin Borner
Date: Sun, 3 Jun 2018 00:25:14 +0200
Subject: Improved searching query (added 'like wildcards')
---
main/app/sprinkles/admin/routes/search.php | 4 +-
.../admin/src/Controller/SearchController.php | 56 ++++++++++++++++++++++
.../admin/src/Controller/WormholeController.php | 2 +-
.../sprinkles/core/assets/SiteAssets/css/main.css | 1 +
.../sprinkles/core/assets/SiteAssets/js/main.js | 27 ++++++-----
.../sprinkles/core/templates/pages/index.html.twig | 2 +-
6 files changed, 77 insertions(+), 15 deletions(-)
create mode 100644 main/app/sprinkles/admin/src/Controller/SearchController.php
(limited to 'main')
diff --git a/main/app/sprinkles/admin/routes/search.php b/main/app/sprinkles/admin/routes/search.php
index 4dc1519..05793c1 100644
--- a/main/app/sprinkles/admin/routes/search.php
+++ b/main/app/sprinkles/admin/routes/search.php
@@ -3,6 +3,6 @@
/**
* Routes for searching any kind of data we have
*/
-$app->group('/search', function () {
- $this->get('/user/{user_name}', 'UserFrosting\Sprinkle\Admin\Controller\UserController:pageInfo');
+$app->group('/api/search', function () {
+ $this->get('/user/{search_term}', 'UserFrosting\Sprinkle\Admin\Controller\SearchController:ByUsername');
})->add('authGuard');
diff --git a/main/app/sprinkles/admin/src/Controller/SearchController.php b/main/app/sprinkles/admin/src/Controller/SearchController.php
new file mode 100644
index 0000000..2398a56
--- /dev/null
+++ b/main/app/sprinkles/admin/src/Controller/SearchController.php
@@ -0,0 +1,56 @@
+ci->classMapper;
+ $users = $classMapper->createInstance('user')
+ ->where("first_name", "like", "%" . $args["search_term"] . "%")
+ ->orWhere("last_name", "like", "%" . $args["search_term"] . "%")
+ ->orWhere(DB::raw("CONCAT(`first_name`, ' ', `last_name`)"), 'LIKE', "%" . $args["search_term"] . "%")
+ ->orWhere("user_name", "like", "%" . $args["search_term"] . "%")
+ ->get();
+
+ foreach ($users as $number => $user) {
+ $users[$number]["avatar"] = $user->avatar;
+ }
+
+ if (count($users) === 0) throw new NotFoundException();
+ return $response->withJson($users, 200, JSON_PRETTY_PRINT);
+ }
+}
diff --git a/main/app/sprinkles/admin/src/Controller/WormholeController.php b/main/app/sprinkles/admin/src/Controller/WormholeController.php
index 47e6fcb..ec33f3e 100644
--- a/main/app/sprinkles/admin/src/Controller/WormholeController.php
+++ b/main/app/sprinkles/admin/src/Controller/WormholeController.php
@@ -110,7 +110,7 @@ class WormholeController extends SimpleController
$classMapper = $this->ci->classMapper;
foreach ($UsersFriends as $Key => $UsersFriendId) { // NOT THAT EFFICIENT...
$UsersFriendInformation = $classMapper->createInstance('user')// select doesnt work with instance
- ->where('id', $UsersFriendId->id)
+ ->where('id', $UsersFriendId->id)
->get();
$UsersFriends[$Key]->id = $UsersFriendInformation[0]->id;
$UsersFriends[$Key]->username = $UsersFriendInformation[0]->user_name;
diff --git a/main/app/sprinkles/core/assets/SiteAssets/css/main.css b/main/app/sprinkles/core/assets/SiteAssets/css/main.css
index da6243e..2afc962 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/css/main.css
+++ b/main/app/sprinkles/core/assets/SiteAssets/css/main.css
@@ -223,6 +223,7 @@ hr.ChatHeaderDivider {
/* main chat */
.SelectedReceiver {
display: none;
+ height: 100%;
}
.ChatMessages {
diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/main.js b/main/app/sprinkles/core/assets/SiteAssets/js/main.js
index b7ebd1f..0f3dfd8 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/js/main.js
+++ b/main/app/sprinkles/core/assets/SiteAssets/js/main.js
@@ -143,26 +143,31 @@ $("#ImageUploadButton").on("click", function () {
* SEARCH
*/
UserSearchBar.keyup(function () {
- SearchResults.empty();
const RequestedUser = UserSearchBar.val();
- if (RequestedUser !== " " && RequestedUser !== "")
+ if (RequestedUser !== " " && RequestedUser !== "") {
$.ajax({
- url: site.uri.public + "/api/users/u/" + RequestedUser,
- success: function (answer) {
- console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was found!", "color: green");
- //var GifUrls = ["https://media.giphy.com/media/xUPGcg01dIAot4zyZG/giphy.gif", "https://media.giphy.com/media/IS9LfP9oSLdcY/giphy.gif", "https://media.giphy.com/media/5wWf7H0WTquIU1DFY4g/giphy.gif"];
- //var RandomGif = Math.floor((Math.random() * GifUrls.length));
- //var RandomGifUrl = GifUrls[RandomGif];
- //console.image(RandomGifUrl, 0.5);
-
- SearchResults.append("