aboutsummaryrefslogtreecommitdiffhomepage
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/app/sprinkles/admin/routes/search.php4
-rw-r--r--main/app/sprinkles/admin/src/Controller/SearchController.php56
-rw-r--r--main/app/sprinkles/admin/src/Controller/WormholeController.php2
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/css/main.css1
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/main.js27
-rw-r--r--main/app/sprinkles/core/templates/pages/index.html.twig2
6 files changed, 77 insertions, 15 deletions
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 @@
+<?php
+/**
+ * UserFrosting (http://www.userfrosting.com)
+ *
+ * @link https://github.com/userfrosting/UserFrosting
+ * @license https://github.com/userfrosting/UserFrosting/blob/master/licenses/UserFrosting.md (MIT License)
+ */
+
+namespace UserFrosting\Sprinkle\Admin\Controller;
+
+use function GuzzleHttp\Psr7\str;
+use UserFrosting\Fortress\RequestDataTransformer;
+use UserFrosting\Fortress\RequestSchema;
+use UserFrosting\Fortress\ServerSideValidator;
+use UserFrosting\Sprinkle\Core\Controller\SimpleController;
+use UserFrosting\Support\Exception\ForbiddenException;
+use UserFrosting\Support\Exception\BadRequestException;
+use UserFrosting\Support\Exception\NotFoundException;
+use Slim\Http\Request;
+use Slim\Http\Response;
+use Illuminate\Database\Capsule\Manager as DB;
+
+/**
+ * Controller class for user-related requests, including listing users, CRUD for users, etc.
+ *
+ * @author Alex Weissman (https://alexanderweissman.com)
+ */
+class SearchController extends SimpleController
+{
+
+ /**
+ * Searches a user by name, username and email // TODO: Maybe not allowed to search everyone?
+ *
+ * @param Request $request
+ * @param Response $response
+ * @param $args
+ * @return Response
+ * @throws NotFoundException
+ */
+ public function ByUsername(Request $request, Response $response, $args) {
+ $classMapper = $this->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("<img class='Avatar' src='" + answer.avatar + "'/><div class='UsersFullName'>" + answer.full_name + "</div>");
+ url: site.uri.public + "/api/search/user/" + RequestedUser,
+ success: function (UserArray) {
+ SearchResults.empty();
+ UserArray.forEach(function(User) {
+ 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("<img class='Avatar' src='" + User.avatar + "'/><div class='UsersFullName'>" + User.full_name + "</div>");
+ })
},
error: function () {
+ SearchResults.empty();
console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was not found!", "color: red");
alerts.ufAlerts().ufAlerts('fetch');
}
});
+ } else {
+ SearchResults.empty();
+ }
});
/**
diff --git a/main/app/sprinkles/core/templates/pages/index.html.twig b/main/app/sprinkles/core/templates/pages/index.html.twig
index c77fa4d..5f8fe76 100644
--- a/main/app/sprinkles/core/templates/pages/index.html.twig
+++ b/main/app/sprinkles/core/templates/pages/index.html.twig
@@ -42,7 +42,7 @@
title="{{ translate("EXPLORE_TAB.USER_SEARCH_PH") }}"
placeholder="{{ translate("EXPLORE_TAB.USER_SEARCH_PH") }}">
<br>
- {#<div id="alerts-page"></div>#}
+ <div id="alerts-page"></div>
<div class="SearchResults">
</div>
<div id="ExploreData">