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}"/>