From 6fb0be9cc00f860601fc8cb51fa6d06f5cac359b Mon Sep 17 00:00:00 2001 From: Brian Peacock Date: Thu, 8 May 2014 14:47:24 -0500 Subject: [PATCH] Fixed search UI bugs --- lib/GUI/css/main.less | 7 ++++++- lib/GUI/css/markdown.less | 1 + lib/GUI/{entry.handlebars => entry.hbs} | 0 lib/GUI/{index.handlebars => index.hbs} | 0 lib/GUI/js/search.js | 22 ++++++++++++++++++---- lib/index.js | 4 ++-- lib/static/ajax.gif | Bin 0 -> 1928 bytes lib/static/main.css | 17 +++++++++++------ lib/static/main.js | 24 +++++++++++++++++++----- 9 files changed, 57 insertions(+), 18 deletions(-) rename lib/GUI/{entry.handlebars => entry.hbs} (100%) rename lib/GUI/{index.handlebars => index.hbs} (100%) create mode 100644 lib/static/ajax.gif diff --git a/lib/GUI/css/main.less b/lib/GUI/css/main.less index 66ede1b59..ef00127b3 100644 --- a/lib/GUI/css/main.less +++ b/lib/GUI/css/main.less @@ -120,7 +120,7 @@ h2 { .name:before { margin: 0; margin-left: -10px; - .transformTransition(.15s); + .transformTransition(.2s); } &.open .name:before { @@ -156,6 +156,11 @@ h2 { display: none; } +.search-ajax { + display: block; + margin: 50px auto; +} + .no-results { text-align: center; margin: 50px 0; diff --git a/lib/GUI/css/markdown.less b/lib/GUI/css/markdown.less index 7283ddd2a..a62cb55bb 100644 --- a/lib/GUI/css/markdown.less +++ b/lib/GUI/css/markdown.less @@ -166,6 +166,7 @@ margin-bottom: 0; } img { + margin: 10px 0; max-width: 100%; } span.frame { diff --git a/lib/GUI/entry.handlebars b/lib/GUI/entry.hbs similarity index 100% rename from lib/GUI/entry.handlebars rename to lib/GUI/entry.hbs diff --git a/lib/GUI/index.handlebars b/lib/GUI/index.hbs similarity index 100% rename from lib/GUI/index.handlebars rename to lib/GUI/index.hbs diff --git a/lib/GUI/js/search.js b/lib/GUI/js/search.js index d63a1c571..33d6aabd0 100644 --- a/lib/GUI/js/search.js +++ b/lib/GUI/js/search.js @@ -1,13 +1,16 @@ var $ = require('unopinionate').selector, - template = require('../entry.handlebars'); + template = require('../entry.hbs'); $(function() { + 'use strict'; + var $form = $('#search-form'), $input = $form.find('input'), $searchResults = $("#search-results"), $body = $('body'), $clear = $form.find('.clear'), - request; + request, + currentResults; $form.bind('submit keyup', function(e) { e.preventDefault(); @@ -21,17 +24,25 @@ $(function() { [q ? 'addClass' : 'removeClass']('icon-cancel') [!q ? 'addClass' : 'removeClass']('icon-search'); + console.log(!!q); + if(q) { if(request) { request.abort(); } + if(!currentResults) { + $searchResults.html("Spinner"); + } + request = $.getJSON('/-/search/' + q, function(results) { + currentResults = results; + if(results.length) { var html = ''; - $.each(results, function(i, package) { - html += template(package); + $.each(results, function(i, entry) { + html += template(entry); }); $searchResults.html(html); @@ -42,6 +53,9 @@ $(function() { }); } else { + console.log("YAY"); + request.abort(); + currentResults = null; $searchResults.html(''); $body.removeClass('state-search'); } diff --git a/lib/index.js b/lib/index.js index 9f1e5be14..5dbd784a3 100644 --- a/lib/index.js +++ b/lib/index.js @@ -127,8 +127,8 @@ module.exports = function(config_hash) { }) })*/ - Handlebars.registerPartial('entry', fs.readFileSync(require.resolve('./GUI/entry.handlebars'), 'utf8')); - var template = Handlebars.compile(fs.readFileSync(require.resolve('./GUI/index.handlebars'), 'utf8')); + Handlebars.registerPartial('entry', fs.readFileSync(require.resolve('./GUI/entry.hbs'), 'utf8')); + var template = Handlebars.compile(fs.readFileSync(require.resolve('./GUI/index.hbs'), 'utf8')); app.get('/', can('access'), function(req, res, next) { res.setHeader('Content-Type', 'text/html'); diff --git a/lib/static/ajax.gif b/lib/static/ajax.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f88e6b9f76e4a26e14c8af28f04453c261c08a5 GIT binary patch literal 1928 zcmZ?wbhEHblwgox_{PBS|NsBXntH!Ke|f)k`-7bPTRs8TENtFw+Vc0$pI39{U$e9W z%Km)$>P~p{ov^51Z{OZ<_PF8X_VdMyKRLV0FMhC*Ui zVnt4VVv1g7URpkb;!hR^R-l&@|8x7fh6Fo12DlpO889;fg>*nZ1w|qQ`>Y0rrskH` zw)SRGF%~{4ZW$GIrj8b2PB!kDvu0}P2v6bXoxOM_mrw_fz>+1p9UO~R&(@y8xp6ix zM+XzvwwY`iQ<(S8RGq@Wa#-OQ1M6Oy`Nw8#l$JfsaA~95wX@sg6;Geot8|+EFt_+I zrW+g8G>>gPe0~ZC-?LLwcm$uVog%bh+p-?t1sn1vbBSN*3Ek14=)6pjMbBrG+r|I| zs1F#Cox2d#xzc?8&5JDM)S8hdVEd3kROm$*Sn#Das39n4G{GF?PCpsr>@ zcJ(4uS94pU1~SamLJ(IAEN=n2dbK&w(VO*~nYeZ=ky6lTX5KgZz@ZkFquj^aS@)go zn6c*Kl*?;)<)$>9-)Ch#< z?RIu>7S`BtdXExAovF$X3n2D31UYdPHM&=7z+n;F^JYtftyOdE*6X48Q>TN2gT zlJlE^?&bu#d*>Q0(I)2oo7J0GjxM%z)}742ddktxl&5XR8Z{+O%_$5w*2vpCoNvE) zRLX|asqN&cSpwQF+t}YP5pQC8@a^FCZ?kL@EPtpcJ1MdW-g9**^k`ZWBNHb(%OUZ; zny6k*<>~@P=QbZ!j|hPWYnN"); + } + request = $.getJSON('/-/search/' + q, function(results) { + currentResults = results; + if(results.length) { var html = ''; - $.each(results, function(i, package) { - html += template(package); + $.each(results, function(i, entry) { + html += template(entry); }); $searchResults.html(html); @@ -151,6 +162,9 @@ $(function() { }); } else { + console.log("YAY"); + request.abort(); + currentResults = null; $searchResults.html(''); $body.removeClass('state-search'); } @@ -163,7 +177,7 @@ $(function() { }); }); -},{"../entry.handlebars":1,"unopinionate":14}],5:[function(require,module,exports){ +},{"../entry.hbs":1,"unopinionate":14}],5:[function(require,module,exports){ "use strict"; /*globals Handlebars: true */ var base = require("./handlebars/base");