aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2016-10-12 09:01:28 +0200
committerGitHub <noreply@github.com>2016-10-12 09:01:28 +0200
commit1992d4be482bcf4e57138709e1850a52a2fb7d9e (patch)
treea5dd6f29f92fe721e43b2ce14ec9b97bec912625
parentc2be9cb605886f5d9ab6642bf45c35ed5ebe2392 (diff)
parentd511acdf665357493fe34bbe631086760a5b9d12 (diff)
downloadnextcloud-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.js52
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