diff --git a/app/assets/images/web-ide-promo-popover.svg b/app/assets/images/web-ide-promo-popover.svg deleted file mode 100644 index 3ced89860da429b9a79d1f275abad079db8c12f8..0000000000000000000000000000000000000000 --- a/app/assets/images/web-ide-promo-popover.svg +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/assets/javascripts/pages/projects/shared/web_ide_link/index.js b/app/assets/javascripts/pages/projects/shared/web_ide_link/index.js index 275a9cf76d10abaf1277c78ed587af3cd819572e..a2c93f0345dad3dd76b65a8ce8a3fa8ff878e85f 100644 --- a/app/assets/javascripts/pages/projects/shared/web_ide_link/index.js +++ b/app/assets/javascripts/pages/projects/shared/web_ide_link/index.js @@ -18,7 +18,7 @@ export default ({ el, router }) => { const { projectPath, ref, isBlob, webIdeUrl, ...options } = convertObjectPropsToCamelCase( JSON.parse(el.dataset.options), ); - const { webIdePromoPopoverImg, cssClasses, defaultBranch } = el.dataset; + const { cssClasses, defaultBranch } = el.dataset; // eslint-disable-next-line no-new new Vue({ @@ -33,7 +33,6 @@ export default ({ el, router }) => { return h(WebIdeButton, { props: { isBlob, - webIdePromoPopoverImg, webIdeUrl: isBlob ? webIdeUrl : webIDEUrl( diff --git a/app/assets/javascripts/repository/components/header_area.vue b/app/assets/javascripts/repository/components/header_area.vue index adb53b911b726c10fc82a81bb10d4366f8a8f188..f3f7e61a8e2d2b63c8029e09ced7d0f4008f9edf 100644 --- a/app/assets/javascripts/repository/components/header_area.vue +++ b/app/assets/javascripts/repository/components/header_area.vue @@ -7,11 +7,15 @@ import { keysFor, START_SEARCH_PROJECT_FILE } from '~/behaviors/shortcuts/keybin import { sanitize } from '~/lib/dompurify'; import { InternalEvents } from '~/tracking'; import { FIND_FILE_BUTTON_CLICK } from '~/tracking/constants'; -import { visitUrl, joinPaths } from '~/lib/utils/url_utility'; +import { visitUrl, joinPaths, webIDEUrl } from '~/lib/utils/url_utility'; +import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { generateRefDestinationPath } from '~/repository/utils/ref_switcher_utils'; import RefSelector from '~/ref/components/ref_selector.vue'; import Breadcrumbs from '~/repository/components/header_area/breadcrumbs.vue'; import BlobControls from '~/repository/components/header_area/blob_controls.vue'; +import CodeDropdown from '~/vue_shared/components/code_dropdown/code_dropdown.vue'; +import SourceCodeDownloadDropdown from '~/vue_shared/components/download_dropdown/download_dropdown.vue'; +import CloneCodeDropdown from '~/vue_shared/components/code_dropdown/clone_code_dropdown.vue'; export default { name: 'HeaderArea', @@ -24,6 +28,10 @@ export default { RefSelector, Breadcrumbs, BlobControls, + CodeDropdown, + SourceCodeDownloadDropdown, + CloneCodeDropdown, + WebIdeLink: () => import('ee_else_ce/vue_shared/components/web_ide_link.vue'), }, directives: { GlTooltip: GlTooltipDirective, @@ -45,6 +53,26 @@ export default { 'projectRootPath', 'comparePath', 'isReadmeView', + 'isFork', + 'needsToFork', + 'gitpodEnabled', + 'isBlob', + 'showEditButton', + 'showWebIdeButton', + 'showGitpodButton', + 'showPipelineEditorUrl', + 'webIdeUrl', + 'editUrl', + 'pipelineEditorUrl', + 'gitpodUrl', + 'userPreferencesGitpodPath', + 'userProfileEnableGitpodPath', + 'httpUrl', + 'xcodeUrl', + 'sshUrl', + 'kerberosUrl', + 'downloadLinks', + 'downloadArtifacts', ], props: { projectPath: { @@ -84,6 +112,24 @@ export default { refSelectorValue() { return this.refType ? joinPaths('refs', this.refType, this.currentRef) : this.currentRef; }, + webIDEUrl() { + return this.isBlob + ? this.webIdeUrl + : webIDEUrl( + joinPaths( + '/', + this.projectPath, + 'edit', + this.currentRef, + '-', + this.$route?.params.path || '', + '/', + ), + ); + }, + projectIdAsNumber() { + return getIdFromGraphQLId(this.projectId); + }, findFileTooltip() { const { description } = START_SEARCH_PROJECT_FILE; const key = this.findFileShortcutKey; @@ -108,7 +154,7 @@ export default {