From 5798529fe20fb1fba28e211afeb283bb4a5b991a Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Sat, 9 May 2015 17:27:15 +0200 Subject: [PATCH] Refactor code. --- src/_h5ai/client/js/inc/core/util.js | 32 ++++++++++- src/_h5ai/client/js/inc/ext/filter.js | 31 ++--------- src/_h5ai/client/js/inc/ext/search.js | 31 ++--------- src/_h5ai/client/js/lib/lodash-3.8.0.min.js | 53 +++++++++++++++++++ .../client/js/lib/lodash-custom-3.8.0.min.js | 50 ----------------- src/_h5ai/conf/options.json | 28 +++++----- 6 files changed, 107 insertions(+), 118 deletions(-) create mode 100644 src/_h5ai/client/js/lib/lodash-3.8.0.min.js delete mode 100644 src/_h5ai/client/js/lib/lodash-custom-3.8.0.min.js diff --git a/src/_h5ai/client/js/inc/core/util.js b/src/_h5ai/client/js/inc/core/util.js index 74ed06fc..6ab4f6a5 100644 --- a/src/_h5ai/client/js/inc/core/util.js +++ b/src/_h5ai/client/js/inc/core/util.js @@ -1,4 +1,4 @@ -modulejs.define('core/util', [], function () { +modulejs.define('core/util', ['_'], function (_) { function regularCmpFn(val1, val2) { @@ -65,9 +65,37 @@ modulejs.define('core/util', [], function () { return 0; } + function escapePattern(sequence) { + + return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&'); + } + + function parsePattern(sequence, advanced) { + + if (!advanced) { + return escapePattern(sequence); + } + + if (sequence.substr(0, 3) === 're:') { + return sequence.substr(3); + } + + sequence = _.map(_.trim(sequence).split(/\s+/), function (part) { + + return _.map(part.split(''), function (character) { + + return escapePattern(character); + }).join('.*?'); + }).join('|'); + + return sequence; + } + return { regularCmpFn: regularCmpFn, - naturalCmpFn: naturalCmpFn + naturalCmpFn: naturalCmpFn, + escapePattern: escapePattern, + parsePattern: parsePattern }; }); diff --git a/src/_h5ai/client/js/inc/ext/filter.js b/src/_h5ai/client/js/inc/ext/filter.js index 71804755..c79259f5 100644 --- a/src/_h5ai/client/js/inc/ext/filter.js +++ b/src/_h5ai/client/js/inc/ext/filter.js @@ -1,8 +1,9 @@ -modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/settings', 'view/view'], function (_, $, event, location, resource, allsettings, view) { +modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/settings', 'core/util', 'view/view'], function (_, $, event, location, resource, allsettings, util, view) { var settings = _.extend({ enabled: false, - debounceTime: 100 + debounceTime: 100, + advanced: false }, allsettings.filter); var template = '
' + @@ -45,36 +46,12 @@ modulejs.define('ext/filter', ['_', '$', 'core/event', 'core/location', 'core/re view.setItems('filter', matchedItems); } - function escapeRegExp(sequence) { - - return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&'); - } - - function parseInput(sequence) { - - if (sequence.substr(0, 3) === 're:') { - return sequence.substr(3); - } - - return escapeRegExp(sequence); - - // sequence = $.map($.trim(sequence).split(/\s+/), function (part) { - - // return _.map(part.split(''), function (character) { - - // return escapeRegExp(character); - // }).join('.*?'); - // }).join('|'); - - // return sequence; - } - function update() { if (inputIsVisible) { $filter.addClass('active'); $input.focus(); - filter(parseInput($input.val())); + filter(util.parsePattern($input.val(), settings.advanced)); } else { filter(); $filter.removeClass('active'); diff --git a/src/_h5ai/client/js/inc/ext/search.js b/src/_h5ai/client/js/inc/ext/search.js index fbc1332d..9f65a438 100644 --- a/src/_h5ai/client/js/inc/ext/search.js +++ b/src/_h5ai/client/js/inc/ext/search.js @@ -1,8 +1,9 @@ -modulejs.define('ext/search', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/server', 'core/settings', 'model/item', 'view/view'], function (_, $, event, location, resource, server, allsettings, Item, view) { +modulejs.define('ext/search', ['_', '$', 'core/event', 'core/location', 'core/resource', 'core/server', 'core/settings', 'core/util', 'model/item', 'view/view'], function (_, $, event, location, resource, server, allsettings, util, Item, view) { var settings = _.extend({ enabled: false, - debounceTime: 300 + debounceTime: 300, + advanced: false }, allsettings.search); var template = '