From 453bb35fc81741c1dd7178cde1f64df2c9ec7252 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 31 Oct 2023 00:16:38 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../helpers/init_simple_app_helper.js | 29 +++++- .../components/avatars/group_avatar.vue | 48 +++++++--- .../members/components/icons/private_icon.vue | 19 ++++ .../components/table/member_source.vue | 20 +++- .../components/table/members_table.vue | 1 + .../pages/projects/ml/models/show/index.js | 2 +- app/helpers/colors_helper.rb | 12 --- app/helpers/environment_helper.rb | 48 ---------- app/helpers/environments_helper.rb | 9 -- app/helpers/graph_helper.rb | 7 -- app/helpers/members_helper.rb | 11 --- app/helpers/nav_helper.rb | 8 -- app/policies/group_group_link_policy.rb | 8 ++ app/policies/project_group_link_policy.rb | 4 + .../group_link/group_group_link_entity.rb | 2 +- .../group_link/group_link_entity.rb | 22 ++++- .../group_link/project_group_link_entity.rb | 2 +- .../projects/tree/_tree_header.html.haml | 3 +- .../settings/gitaly_timeouts.md | 1 + doc/ci/pipelines/settings.md | 1 + doc/user/group/manage.md | 5 + doc/user/packages/maven_repository/index.md | 2 +- .../members/share_project_with_groups.md | 5 + doc/user/project/merge_requests/index.md | 28 ++++++ locale/gitlab.pot | 24 +---- .../api/schemas/group_link/group_link.json | 5 +- .../helpers/init_simple_app_helper_spec.js | 37 +++++++- .../components/avatars/group_avatar_spec.js | 27 ++++-- .../components/icons/private_icon_spec.js | 30 ++++++ .../components/table/member_source_spec.js | 15 +++ .../components/table/members_table_spec.js | 19 ++++ spec/frontend/members/mock_data.js | 13 +++ spec/helpers/colors_helper_spec.rb | 47 --------- spec/helpers/environment_helper_spec.rb | 39 -------- spec/helpers/environments_helper_spec.rb | 13 --- .../groups/group_members_helper_spec.rb | 12 +-- spec/helpers/members_helper_spec.rb | 15 --- spec/helpers/users/callouts_helper_spec.rb | 2 +- spec/policies/group_group_link_policy_spec.rb | 63 ++++++++++++ .../project_group_link_policy_spec.rb | 95 ++++++++++++++----- .../group_group_link_entity_spec.rb | 65 ++++++++++--- .../project_group_link_entity_spec.rb | 62 +++++++----- 42 files changed, 547 insertions(+), 333 deletions(-) create mode 100644 app/assets/javascripts/members/components/icons/private_icon.vue create mode 100644 app/policies/group_group_link_policy.rb create mode 100644 spec/frontend/members/components/icons/private_icon_spec.js create mode 100644 spec/policies/group_group_link_policy_spec.rb diff --git a/app/assets/javascripts/helpers/init_simple_app_helper.js b/app/assets/javascripts/helpers/init_simple_app_helper.js index 695fc455f13..f7bef8c563e 100644 --- a/app/assets/javascripts/helpers/init_simple_app_helper.js +++ b/app/assets/javascripts/helpers/init_simple_app_helper.js @@ -1,4 +1,26 @@ import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; + +/** + * @param {boolean|VueApollo} apolloProviderOption + * @returns {undefined | VueApollo} + */ +const getApolloProvider = (apolloProviderOption) => { + if (apolloProviderOption === true) { + Vue.use(VueApollo); + + return new VueApollo({ + defaultClient: createDefaultClient(), + }); + } + + if (apolloProviderOption instanceof VueApollo) { + return apolloProviderOption; + } + + return undefined; +}; /** * Initializes a component as a simple vue app, passing the necessary props. If the element @@ -8,6 +30,8 @@ import Vue from 'vue'; * * @param {string} selector css selector for where to build * @param {Vue.component} component The Vue compoment to be built as the root of the app + * @param {{withApolloProvider: boolean|VueApollo}} options. extra options to be passed to the vue app + * withApolloProvider: if true, instantiates a default apolloProvider. Also accepts and instance of VueApollo * * @example * ```html @@ -15,13 +39,13 @@ import Vue from 'vue'; * ``` * * ```javascript - * initSimpleApp('#mount-here', MyApp) + * initSimpleApp('#mount-here', MyApp, { withApolloProvider: true }) * ``` * * This will mount MyApp as root on '#mount-here'. It will receive {'some': 'object'} as it's * view model prop. */ -export const initSimpleApp = (selector, component) => { +export const initSimpleApp = (selector, component, { withApolloProvider } = {}) => { const element = document.querySelector(selector); if (!element) { @@ -32,6 +56,7 @@ export const initSimpleApp = (selector, component) => { return new Vue({ el: element, + apolloProvider: getApolloProvider(withApolloProvider), render(h) { return h(component, { props }); }, diff --git a/app/assets/javascripts/members/components/avatars/group_avatar.vue b/app/assets/javascripts/members/components/avatars/group_avatar.vue index 3b176bf2b43..83b5855492b 100644 --- a/app/assets/javascripts/members/components/avatars/group_avatar.vue +++ b/app/assets/javascripts/members/components/avatars/group_avatar.vue @@ -1,11 +1,18 @@ diff --git a/app/assets/javascripts/members/components/icons/private_icon.vue b/app/assets/javascripts/members/components/icons/private_icon.vue new file mode 100644 index 00000000000..6168ea955f3 --- /dev/null +++ b/app/assets/javascripts/members/components/icons/private_icon.vue @@ -0,0 +1,19 @@ + + + diff --git a/app/assets/javascripts/members/components/table/member_source.vue b/app/assets/javascripts/members/components/table/member_source.vue index ed1971d020b..f1a1c4cecaa 100644 --- a/app/assets/javascripts/members/components/table/member_source.vue +++ b/app/assets/javascripts/members/components/table/member_source.vue @@ -1,10 +1,12 @@