mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 14:35:45 +01:00
Sorted autocomplete (#1918)
Users, groups, repositories and repository roles have been sorted in the rest layer by default if no other sort option was given. In the layers "below" (aka the manager classes or the dao), the collections have been unsorted. This led to the effect, that the autocomplete resource, which did not sort all values beforehand, returned unsorted results. As a sideeffect, direct matches for an input could occur at a random position or not at all (as reported in #1695), when there were enough other matches. With this pull request the databases for users, groups, repositories and repository roles will use instances of TreeMap instead of LinkedHashMap internally, so that these values are sorted implicitly (by id respectively name for users, groups and repository roles and namespace/name for repositories). Due to this change the default sort applied in the rest layer could be removed.
This commit is contained in:
@@ -35,10 +35,10 @@ describe("getProtocolLinkByType tests", () => {
|
||||
protocol: [
|
||||
{
|
||||
name: "http",
|
||||
href: "http://scm.scm-manager.org/repo/scm/core",
|
||||
},
|
||||
],
|
||||
},
|
||||
href: "http://scm.scm-manager.org/repo/scm/core"
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
const link = getProtocolLinkByType(repository, "http");
|
||||
@@ -54,14 +54,14 @@ describe("getProtocolLinkByType tests", () => {
|
||||
protocol: [
|
||||
{
|
||||
name: "http",
|
||||
href: "http://scm.scm-manager.org/repo/scm/core",
|
||||
href: "http://scm.scm-manager.org/repo/scm/core"
|
||||
},
|
||||
{
|
||||
name: "ssh",
|
||||
href: "git@scm.scm-manager.org:scm/core",
|
||||
},
|
||||
],
|
||||
},
|
||||
href: "git@scm.scm-manager.org:scm/core"
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
const link = getProtocolLinkByType(repository, "http");
|
||||
@@ -76,9 +76,9 @@ describe("getProtocolLinkByType tests", () => {
|
||||
_links: {
|
||||
protocol: {
|
||||
name: "http",
|
||||
href: "http://scm.scm-manager.org/repo/scm/core",
|
||||
},
|
||||
},
|
||||
href: "http://scm.scm-manager.org/repo/scm/core"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const link = getProtocolLinkByType(repository, "http");
|
||||
@@ -94,14 +94,14 @@ describe("getProtocolLinkByType tests", () => {
|
||||
protocol: [
|
||||
{
|
||||
name: "http",
|
||||
href: "http://scm.scm-manager.org/repo/scm/core",
|
||||
href: "http://scm.scm-manager.org/repo/scm/core"
|
||||
},
|
||||
{
|
||||
name: "ssh",
|
||||
href: "git@scm.scm-manager.org:scm/core",
|
||||
},
|
||||
],
|
||||
},
|
||||
href: "git@scm.scm-manager.org:scm/core"
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
const link = getProtocolLinkByType(repository, "awesome");
|
||||
@@ -113,7 +113,7 @@ describe("getProtocolLinkByType tests", () => {
|
||||
namespace: "scm",
|
||||
name: "core",
|
||||
type: "git",
|
||||
_links: {},
|
||||
_links: {}
|
||||
};
|
||||
|
||||
const link = getProtocolLinkByType(repository, "http");
|
||||
|
||||
Reference in New Issue
Block a user