diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2016-10-12 09:01:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-12 09:01:28 +0200 |
commit | 1992d4be482bcf4e57138709e1850a52a2fb7d9e (patch) | |
tree | a5dd6f29f92fe721e43b2ce14ec9b97bec912625 | |
parent | c2be9cb605886f5d9ab6642bf45c35ed5ebe2392 (diff) | |
parent | d511acdf665357493fe34bbe631086760a5b9d12 (diff) | |
download | nextcloud-server-1992d4be482bcf4e57138709e1850a52a2fb7d9e.tar.gz nextcloud-server-1992d4be482bcf4e57138709e1850a52a2fb7d9e.zip |
Merge pull request #1693 from nextcloud/fix-authors-with-mail-and-homepage
Fix authors with mail and homepage
-rw-r--r-- | settings/js/apps.js | 52 |
1 files changed, 46 insertions, 6 deletions
diff --git a/settings/js/apps.js b/settings/js/apps.js index 5119b35178e..5fc366c4921 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -184,7 +184,15 @@ OC.Settings.Apps = OC.Settings.Apps || { } if (_.isArray(app.author)) { - app.author = app.author.join(', '); + var authors = []; + _.each(app.author, function (author) { + if (typeof author === 'string') { + authors.push(author); + } else { + authors.push(author['@value']); + } + }); + app.author = authors.join(', '); } var html = template(app); @@ -486,6 +494,24 @@ OC.Settings.Apps = OC.Settings.Apps || { ); }, + /** + * Splits the query by spaces and tries to find all substring in the app + * @param {string} string + * @param {string} query + * @returns {boolean} + */ + _search: function(string, query) { + var keywords = query.split(' '), + stringLower = string.toLowerCase(), + found = true; + + _.each(keywords, function(keyword) { + found = found && stringLower.indexOf(keyword) !== -1; + }); + + return found; + }, + filter: function(query) { var $appList = $('#apps-list'), $emptyList = $('#apps-list-empty'); @@ -502,25 +528,39 @@ OC.Settings.Apps = OC.Settings.Apps || { // App Name var apps = _.filter(OC.Settings.Apps.State.apps, function (app) { - return app.name.toLowerCase().indexOf(query) !== -1; + return OC.Settings.Apps._search(app.name, query); }); // App ID apps = apps.concat(_.filter(OC.Settings.Apps.State.apps, function (app) { - return app.id.toLowerCase().indexOf(query) !== -1; + return OC.Settings.Apps._search(app.id, query); })); // App Description apps = apps.concat(_.filter(OC.Settings.Apps.State.apps, function (app) { - return app.description.toLowerCase().indexOf(query) !== -1; + return OC.Settings.Apps._search(app.description, query); })); // Author Name apps = apps.concat(_.filter(OC.Settings.Apps.State.apps, function (app) { if (_.isArray(app.author)) { - return app.author.join(', ').toLowerCase().indexOf(query) !== -1; + var authors = []; + _.each(app.author, function (author) { + if (typeof author === 'string') { + authors.push(author); + } else { + authors.push(author['@value']); + if (!_.isUndefined(author['@attributes']['homepage'])) { + authors.push(author['@attributes']['homepage']); + } + if (!_.isUndefined(author['@attributes']['mail'])) { + authors.push(author['@attributes']['mail']); + } + } + }); + return OC.Settings.Apps._search(authors.join(' '), query); } - return app.author.toLowerCase().indexOf(query) !== -1; + return OC.Settings.Apps._search(app.author, query); })); // App status |