From 0993c722a7ae1a56ce1e9f81c025fd65f9c07349 Mon Sep 17 00:00:00 2001 From: Sascha Eggenberger Date: Tue, 14 Nov 2023 13:02:55 +0100 Subject: [PATCH] Project/group name area updates Uses H display instead of h1, moves copy ID and project leave items into a kebab menu. Changelog: changed --- .../components/more_actions_dropdown.vue | 154 ++++++++++++++++ .../init_more_actions_dropdown.js | 36 ++++ .../javascripts/pages/groups/show/index.js | 4 +- .../javascripts/pages/projects/show/index.js | 5 +- .../components/commit_pipeline_status.vue | 2 +- .../repository/components/last_commit.vue | 2 +- .../stylesheets/framework/variables.scss | 2 +- .../stylesheets/page_bundles/group.scss | 31 +--- .../stylesheets/page_bundles/project.scss | 24 +-- .../stylesheets/page_bundles/projects.scss | 12 -- app/assets/stylesheets/page_bundles/tree.scss | 4 - app/helpers/groups_helper.rb | 25 +++ app/views/groups/_home_panel.html.haml | 24 +-- app/views/projects/_files.html.haml | 2 +- app/views/projects/_home_panel.html.haml | 23 +-- .../projects/_stat_anchor_list.html.haml | 3 +- app/views/projects/blob/_breadcrumb.html.haml | 2 +- app/views/projects/empty.html.haml | 8 +- app/views/projects/show.html.haml | 2 +- .../projects/tree/_tree_header.html.haml | 4 +- ...s_projects_more_actions_dropdown.html.haml | 16 ++ .../members/_access_request_links.html.haml | 18 -- .../groups/members/leave_group_spec.rb | 19 +- .../namespace_user_cap_reached_alert_spec.rb | 1 - .../members/member_leaves_project_spec.rb | 9 +- locale/gitlab.pot | 14 +- qa/qa/page/group/show.rb | 16 +- qa/qa/page/project/show.rb | 1 - .../groups/members/leave_group_spec.rb | 18 +- .../groups/members/request_access_spec.rb | 42 ++++- ...r_cannot_request_access_to_project_spec.rb | 9 +- .../members/member_leaves_project_spec.rb | 7 +- .../members/user_requests_access_spec.rb | 25 ++- .../components/more_actions_dropdown_spec.js | 173 ++++++++++++++++++ .../groups/_home_panel.html.haml_spec.rb | 6 - .../projects/_home_panel.html.haml_spec.rb | 32 ---- 36 files changed, 560 insertions(+), 215 deletions(-) create mode 100644 app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue create mode 100644 app/assets/javascripts/groups_projects/init_more_actions_dropdown.js create mode 100644 app/views/shared/_groups_projects_more_actions_dropdown.html.haml delete mode 100644 app/views/shared/members/_access_request_links.html.haml create mode 100644 spec/frontend/groups_projects/components/more_actions_dropdown_spec.js diff --git a/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue b/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue new file mode 100644 index 00000000000000..50392de0b67d8c --- /dev/null +++ b/app/assets/javascripts/groups_projects/components/more_actions_dropdown.vue @@ -0,0 +1,154 @@ + + + diff --git a/app/assets/javascripts/groups_projects/init_more_actions_dropdown.js b/app/assets/javascripts/groups_projects/init_more_actions_dropdown.js new file mode 100644 index 00000000000000..5d83f9ed3b2e78 --- /dev/null +++ b/app/assets/javascripts/groups_projects/init_more_actions_dropdown.js @@ -0,0 +1,36 @@ +import Vue from 'vue'; +import { parseBoolean } from '~/lib/utils/common_utils'; +import MoreActionsDropdown from '~/groups_projects/components/more_actions_dropdown.vue'; + +export default function InitMoreActionsDropdown() { + const el = document.querySelector('.js-groups-projects-more-actions-dropdown'); + + if (!el) { + return false; + } + + const { + isGroup, + id, + leavePath, + leaveConfirmMessage, + withdrawPath, + withdrawConfirmMessage, + requestAccessPath, + } = el.dataset; + + return new Vue({ + el, + name: 'MoreActionsDropdownRoot', + provide: { + isGroup: parseBoolean(isGroup), + id, + leavePath, + leaveConfirmMessage, + withdrawPath, + withdrawConfirmMessage, + requestAccessPath, + }, + render: (createElement) => createElement(MoreActionsDropdown), + }); +} diff --git a/app/assets/javascripts/pages/groups/show/index.js b/app/assets/javascripts/pages/groups/show/index.js index f6a4ca0f360e2e..1c6c3c0c518eb9 100644 --- a/app/assets/javascripts/pages/groups/show/index.js +++ b/app/assets/javascripts/pages/groups/show/index.js @@ -2,10 +2,12 @@ import leaveByUrl from '~/namespaces/leave_by_url'; import { initGroupOverviewTabs } from '~/groups/init_overview_tabs'; import { initGroupReadme } from '~/groups/init_group_readme'; import initReadMore from '~/read_more'; +import InitMoreActionsDropdown from '~/groups_projects/init_more_actions_dropdown'; import initGroupDetails from '../shared/group_details'; -leaveByUrl('group'); initGroupDetails(); initGroupOverviewTabs(); initReadMore(); initGroupReadme(); +InitMoreActionsDropdown(); +leaveByUrl('group'); diff --git a/app/assets/javascripts/pages/projects/show/index.js b/app/assets/javascripts/pages/projects/show/index.js index 98c58515d24887..af7616c6f6f84e 100644 --- a/app/assets/javascripts/pages/projects/show/index.js +++ b/app/assets/javascripts/pages/projects/show/index.js @@ -8,6 +8,7 @@ import { initUploadFileTrigger } from '~/projects/upload_file'; import initReadMore from '~/read_more'; import initForksButton from '~/forks/init_forks_button'; import initAmbiguousRefModal from '~/ref/init_ambiguous_ref_modal'; +import InitMoreActionsDropdown from '~/groups_projects/init_more_actions_dropdown'; // Project show page loads different overview content based on user preferences if (document.getElementById('js-tree-list')) { @@ -34,8 +35,6 @@ if (document.querySelector('.project-show-activity')) { .catch(() => {}); } -leaveByUrl('project'); - initVueNotificationsDropdown(); new ShortcutsNavigation(); // eslint-disable-line no-new @@ -61,3 +60,5 @@ if (document.querySelector('.js-autodevops-banner')) { } initForksButton(); +InitMoreActionsDropdown(); +leaveByUrl('project'); diff --git a/app/assets/javascripts/projects/tree/components/commit_pipeline_status.vue b/app/assets/javascripts/projects/tree/components/commit_pipeline_status.vue index 074cddac42221e..ff96fa99683473 100644 --- a/app/assets/javascripts/projects/tree/components/commit_pipeline_status.vue +++ b/app/assets/javascripts/projects/tree/components/commit_pipeline_status.vue @@ -92,7 +92,7 @@ export default {