From 027e8eb54cc4dfb678f27ae8fa3f3945d1292f2e Mon Sep 17 00:00:00 2001
From: psychobunny <psycho.bunny@hotmail.com>
Date: Wed, 24 Sep 2014 15:55:38 -0400
Subject: [PATCH] acp searching, closes #2140

---
 public/src/forum/admin/footer.js | 55 ++++++++++++++++++++++++++++++++
 src/views/admin/header.tpl       | 13 ++++++++
 2 files changed, 68 insertions(+)
 create mode 100644 public/src/forum/admin/footer.js

diff --git a/public/src/forum/admin/footer.js b/public/src/forum/admin/footer.js
new file mode 100644
index 0000000000..d09f98e2fa
--- /dev/null
+++ b/public/src/forum/admin/footer.js
@@ -0,0 +1,55 @@
+"use strict";
+/*global define, app, socket, RELATIVE_PATH */
+
+define('forum/admin/footer', ['forum/admin/settings'], function(Settings) {
+	var acpIndex;
+
+	$(document).ready(function() {
+		$.getJSON(RELATIVE_PATH + '/templates/indexed.json', function (data) {
+			acpIndex = data;
+			for (var file in acpIndex) {
+				if (acpIndex.hasOwnProperty(file)) {
+					acpIndex[file] = $(acpIndex[file]).text();
+				}
+			}
+
+			setupACPSearch();
+		});
+	});
+
+	function setupACPSearch() {
+		var menu = $('#acp-search .dropdown-menu');
+
+		$('#acp-search input').on('keyup focus', function() {
+			var $input = $(this),
+				menuItems = $('#acp-search .dropdown-menu').html('');
+
+			if ($input.val().length > 3) {
+				for (var file in acpIndex) {
+					if (acpIndex.hasOwnProperty(file)) {
+						if (acpIndex[file].indexOf($input.val()) !== -1) {
+							var href = file.replace('.tpl', ''),
+								title = href.replace(/^\/admin\//, '').split('/');
+
+							for (var t in title) {
+								if (title.hasOwnProperty(t)) {
+									title[t] = title[t]
+										.replace('-', ' ')
+										.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
+								}
+							}
+
+							title = title.join(' > ');
+
+							menuItems.append('<li role="presentation"><a role="menuitem" href="' + RELATIVE_PATH + href + '">' + title + '</a></li>');
+						}
+					}
+				}
+
+				menuItems.append('<li role="presentation" class="divider"></li>');
+			}
+
+			menuItems.append('<li role="presentation"><a role="menuitem" href="' + RELATIVE_PATH + '/search/' + $input.val() + '">Search the forum for "' + $input.val() + '"</a></li>');
+		});
+	}
+});
\ No newline at end of file
diff --git a/src/views/admin/header.tpl b/src/views/admin/header.tpl
index 26e4decafa..b5753fe759 100644
--- a/src/views/admin/header.tpl
+++ b/src/views/admin/header.tpl
@@ -71,6 +71,19 @@
 				</ul>
 
 				<ul id="logged-in-menu" class="nav navbar-nav navbar-right">
+					<form class="navbar-form navbar-left" role="search">
+						<div class="form-group" id="acp-search" >
+							<div class="dropdown" >
+								<input type="text" data-toggle="dropdown" class="form-control" placeholder="Search ACP...">
+								<ul class="dropdown-menu" role="menu">
+									<div class="found"></div>
+									<li><a href="#">Separated link</a></li>
+									<li><a href="search" id="search-main">Search the forum for</a></li>
+								</ul>
+							</div>
+						</div>
+					</form>
+
 					<li id="user_label" class="dropdown">
 						<a class="dropdown-toggle" data-toggle="dropdown" href="#" id="user_dropdown">
 							<img src="{userpicture}"/>