Merge "Allow context-dependent group suggestions in gr-permission"
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
index 2328a05..48f42a4 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.ts
@@ -39,6 +39,7 @@
CapabilityInfoMap,
GitRef,
LabelNameToLabelTypeInfoMap,
+ RepoName,
} from '../../../types/common';
import {PolymerDomRepeatEvent} from '../../../types/types';
import {fireEvent} from '../../../utils/event-util';
@@ -75,6 +76,9 @@
return htmlTemplate;
}
+ @property({type: String})
+ repo?: RepoName;
+
@property({type: Object})
capabilities?: CapabilityInfoMap;
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_html.ts b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_html.ts
index 1438825..65a3199 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_html.ts
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_html.ts
@@ -123,6 +123,7 @@
section="[[section.id]]"
editing="[[editing]]"
groups="[[groups]]"
+ repo="[[repo]]"
on-added-permission-removed="_handleAddedPermissionRemoved"
>
</gr-permission>
diff --git a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts
index b7ea237..4d5ecd3 100644
--- a/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts
+++ b/polygerrit-ui/app/elements/admin/gr-permission/gr-permission.ts
@@ -39,6 +39,7 @@
ProjectAccessGroups,
GroupId,
GitRef,
+ RepoName,
} from '../../../types/common';
import {
AutocompleteQuery,
@@ -98,6 +99,9 @@
return htmlTemplate;
}
+ @property({type: String})
+ repo?: RepoName;
+
@property({type: Object})
labels?: LabelNameToLabelTypeInfoMap;
@@ -320,7 +324,11 @@
_getGroupSuggestions(): Promise<AutocompleteSuggestion[]> {
return this.restApiService
- .getSuggestedGroups(this._groupFilter || '', MAX_AUTOCOMPLETE_RESULTS)
+ .getSuggestedGroups(
+ this._groupFilter || '',
+ this.repo,
+ MAX_AUTOCOMPLETE_RESULTS
+ )
.then(response => {
const groups: GroupSuggestion[] = [];
for (const [name, value] of Object.entries(response ?? {})) {
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_html.ts b/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_html.ts
index 65f0564..8f88619 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_html.ts
+++ b/polygerrit-ui/app/elements/admin/gr-repo-access/gr-repo-access_html.ts
@@ -116,6 +116,7 @@
editing="[[_editing]]"
owner-of="[[_ownerOf]]"
groups="[[_groups]]"
+ repo="[[repo]]"
on-added-section-removed="_handleAddedSectionRemoved"
></gr-access-section>
</template>
diff --git a/polygerrit-ui/app/elements/core/gr-smart-search/gr-smart-search.ts b/polygerrit-ui/app/elements/core/gr-smart-search/gr-smart-search.ts
index 6a73d8d..f5a28f8 100644
--- a/polygerrit-ui/app/elements/core/gr-smart-search/gr-smart-search.ts
+++ b/polygerrit-ui/app/elements/core/gr-smart-search/gr-smart-search.ts
@@ -122,7 +122,7 @@
return Promise.resolve([]);
}
return this.restApiService
- .getSuggestedGroups(expression, MAX_AUTOCOMPLETE_RESULTS)
+ .getSuggestedGroups(expression, undefined, MAX_AUTOCOMPLETE_RESULTS)
.then(groups => {
if (!groups) {
return [];
diff --git a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.ts b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.ts
index c2b0269..f0e727f 100644
--- a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.ts
+++ b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-api-interface.ts
@@ -1589,12 +1589,16 @@
getSuggestedGroups(
inputVal: string,
+ project?: RepoName,
n?: number
): Promise<GroupNameToGroupInfoMap | undefined> {
const params: QueryGroupsParams = {s: inputVal};
if (n) {
params.n = n;
}
+ if (project) {
+ params.p = encodeURIComponent(project);
+ }
return this._restApiHelper.fetchJSON({
url: '/groups/',
params,
diff --git a/polygerrit-ui/app/services/gr-rest-api/gr-rest-api.ts b/polygerrit-ui/app/services/gr-rest-api/gr-rest-api.ts
index 1378211..445e932 100644
--- a/polygerrit-ui/app/services/gr-rest-api/gr-rest-api.ts
+++ b/polygerrit-ui/app/services/gr-rest-api/gr-rest-api.ts
@@ -180,6 +180,7 @@
): Promise<AccountInfo[] | undefined>;
getSuggestedGroups(
input: string,
+ project?: RepoName,
n?: number
): Promise<GroupNameToGroupInfoMap | undefined>;
executeChangeAction(