diff --git a/README.md b/README.md index 6841ae0b..3c2d7df0 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ It profits from these great projects: * updates jQuery to 1.10.2 * adds `uk` translation by Viktor Matveenko + ### v0.22.1 - *2012-10-16* * bug fix concerning API requests in PHP mode diff --git a/src/_h5ai/client/css/inc/filter.less b/src/_h5ai/client/css/inc/filter.less index 0a5afc88..9040dc23 100644 --- a/src/_h5ai/client/css/inc/filter.less +++ b/src/_h5ai/client/css/inc/filter.less @@ -3,17 +3,16 @@ .topbar-right; input { - display: none; border: none; font-family: @font-family; color: @col; background-color: rgba(0,0,0,0); - width: 100px; + width: 30px; } &.current { input { - display: inline; + width: 150px; } } } diff --git a/src/_h5ai/client/js/inc/ext/filter.js b/src/_h5ai/client/js/inc/ext/filter.js index 4dadc206..701964f7 100644 --- a/src/_h5ai/client/js/inc/ext/filter.js +++ b/src/_h5ai/client/js/inc/ext/filter.js @@ -1,5 +1,5 @@ -modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], function (_, $, allsettings, resource) { +modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource', 'core/event'], function (_, $, allsettings, resource, event) { var settings = _.extend({ enabled: false @@ -58,20 +58,24 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func sequence = $.map($.trim(sequence).split(/\s+/), function (part) { - return _.map(part.split(''), function (char) { + return _.map(part.split(''), function (character) { - return escapeRegExp(char); + return escapeRegExp(character); }).join('.*?'); }).join('|'); return new RegExp(sequence, 'i'); }, - update = function () { + update = function (focus) { var val = $input.val(); - if (val) { + if (focus) { + $input.focus(); + } + + if (val || focus) { filter(parseFilterSequence(val)); $filter.addClass('current'); } else { @@ -79,6 +83,8 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func $filter.removeClass('current'); } }, + updt = function () { update(true); }, + updf = function () { update(false); }, init = function () { @@ -90,30 +96,19 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func $input = $filter.find('input'); $noMatch = $(noMatchTemplate).appendTo('#view'); - $filter - .on('click', function () { - - $input.focus(); - }); - - $input - .on('focus', function () { - - $filter.addClass('current'); - }) - .on('blur keyup', update); + $filter.on('click', updt); + $input.on('focus blur keyup', updf); $(document) .on('keydown', function (event) { if (event.which === 27) { - $input.attr('value','').blur(); + $input.val('').blur(); } }) - .on('keypress', function (event) { + .on('keypress', updt); - $input.focus(); - }); + event.sub('location.changed', updf) }; init();