diff options
author | Sarah German <sgerman@gitlab.com> | 2022-07-20 22:52:49 +0300 |
---|---|---|
committer | Sarah German <sgerman@gitlab.com> | 2022-07-20 22:52:49 +0300 |
commit | dce2fc32653a5410e6c1d148f8d5b32519f27809 (patch) | |
tree | 0de41f89817f8b8e68b72add469752733ab6c177 | |
parent | 247baadee5064bc35bc531b92adc6f32397cff82 (diff) |
Revert "Make the versions dropdown dynamic"
This reverts commit b3c152da1c74e246ea0397680baac1e2ae0f1786.
-rw-r--r-- | content/assets/stylesheets/stylesheet.scss | 29 | ||||
-rw-r--r-- | content/frontend/default/components/versions_menu.vue | 80 | ||||
-rw-r--r-- | content/frontend/default/default.js | 17 | ||||
-rw-r--r-- | content/frontend/default/environment.js | 22 | ||||
-rw-r--r-- | content/frontend/services/fetch_versions.js | 8 | ||||
-rw-r--r-- | layouts/cta.html | 2 | ||||
-rw-r--r-- | layouts/header.html | 33 | ||||
-rw-r--r-- | layouts/home.html | 1 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | spec/frontend/default/components/versions_menu_spec.js | 27 | ||||
-rw-r--r-- | yarn.lock | 5 |
11 files changed, 53 insertions, 172 deletions
diff --git a/content/assets/stylesheets/stylesheet.scss b/content/assets/stylesheets/stylesheet.scss index 35303b80..1db790a2 100644 --- a/content/assets/stylesheets/stylesheet.scss +++ b/content/assets/stylesheets/stylesheet.scss @@ -277,8 +277,23 @@ ol { font-size: 1rem; } + .btn { + line-height: 1rem; + font-size: 0.875rem; + } + .navbar-nav { margin-top: 0; + + .dropdown-menu { + a { + border-bottom: 0; + + &:hover { + border-bottom: 0; + } + } + } } /* Override Bootstrap theme color */ @@ -299,14 +314,14 @@ ol { color: $gds-indigo-100; } - .gl-dropdown-toggle.gl-button.btn-default, - .gl-dropdown-toggle.gl-button.btn-default:hover, - .gl-dropdown-toggle.gl-button.btn-default:focus { + .dropdown-toggle { background-color: $help-indigo-500; - color: $gds-white; - box-shadow: none; svg { - fill: $gds-white; + fill: $white; + margin-right: 0 !important; + } + &::after { + display: none; } } @@ -484,7 +499,7 @@ ol { } .btn-cta { - background-color: $header-free-trial-button-color !important; + background-color: $header-free-trial-button-color; } h2[id]::before, diff --git a/content/frontend/default/components/versions_menu.vue b/content/frontend/default/components/versions_menu.vue deleted file mode 100644 index 04d2b982..00000000 --- a/content/frontend/default/components/versions_menu.vue +++ /dev/null @@ -1,80 +0,0 @@ -<script> -import { GlDropdown, GlDropdownItem, GlDropdownDivider } from '@gitlab/ui'; -import { getVersions } from '../../services/fetch_versions'; -import { isGitLabHosted } from '../environment'; - -export default { - components: { - GlDropdown, - GlDropdownItem, - GlDropdownDivider, - }, - data() { - return { - versions: {}, - activeVersion: '', - }; - }, - async created() { - // Only build this menu if this is a GitLab-hosted copy of the site. - // Self-hosted Docs will only contain a single version. - if (isGitLabHosted()) { - try { - this.versions = await getVersions(); - this.activeVersion = this.getActiveVersion(this.versions); - } catch (err) { - console.error(`Failed to fetch versions.json: ${err}`); // eslint-disable-line no-console - } - } - }, - methods: { - getVersionPath(versionNumber) { - let path = window.location.pathname; - if (versionNumber) { - path = `/${versionNumber}${path}`; - } - return path; - }, - getActiveVersion(versions) { - let activeVersion = versions.next; - - // Check if the first item in the URL path is a valid version. - // If so, that should be the active menu item. - const versionPath = window.location.pathname.split('/')[1]; - if (Object.values(this.versions).includes(versionPath)) { - activeVersion = versionPath; - } - return activeVersion; - }, - }, -}; -</script> - -<template> - <gl-dropdown - v-if="versions.next" - :text="activeVersion" - class="gl-mb-4 gl-md-mb-0 gl-md-mr-5 gl-md-ml-3 gl-display-flex" - data-testid="versions-menu" - > - <gl-dropdown-item :href="getVersionPath()"> - <span data-testid="next-version">{{ versions.next }}</span> (not yet released) - </gl-dropdown-item> - <gl-dropdown-divider /> - - <gl-dropdown-item :href="getVersionPath(versions.current)"> - {{ versions.current }} (recently released) - </gl-dropdown-item> - <gl-dropdown-item v-for="v in versions.last_minor" :key="v" :href="getVersionPath(v)"> - {{ v }} - </gl-dropdown-item> - <gl-dropdown-divider /> - - <gl-dropdown-item v-for="v in versions.last_major" :key="v" :href="getVersionPath(v)"> - {{ v }} - </gl-dropdown-item> - <gl-dropdown-divider /> - - <gl-dropdown-item href="/archives">Archives</gl-dropdown-item> - </gl-dropdown> -</template> diff --git a/content/frontend/default/default.js b/content/frontend/default/default.js index 119842e8..db3786f2 100644 --- a/content/frontend/default/default.js +++ b/content/frontend/default/default.js @@ -2,7 +2,6 @@ import Vue from 'vue'; import NavigationToggle from './components/navigation_toggle.vue'; import VersionBanner from './components/version_banner.vue'; import { setupTableOfContents } from './setup_table_of_contents'; -import VersionsMenu from './components/versions_menu.vue'; function fixScrollPosition() { if (!window.location.hash || !document.querySelector(window.location.hash)) return; @@ -18,10 +17,6 @@ function fixScrollPosition() { document.addEventListener('DOMContentLoaded', () => { const versionBanner = document.querySelector('#js-version-banner'); - if (!versionBanner) { - return; - } - const isOutdated = versionBanner.hasAttribute('data-is-outdated'); const { latestVersionUrl, archivesUrl } = versionBanner.dataset; @@ -63,15 +58,3 @@ document.addEventListener('DOMContentLoaded', () => { setupTableOfContents(); }); - -document.addEventListener('DOMContentLoaded', () => { - return new Vue({ - el: '.js-versions-menu', - components: { - VersionsMenu, - }, - render(createElement) { - return createElement(VersionsMenu); - }, - }); -}); diff --git a/content/frontend/default/environment.js b/content/frontend/default/environment.js deleted file mode 100644 index 05e8ced5..00000000 --- a/content/frontend/default/environment.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Utilities for determining site environment. - */ - -export const GlHosts = [ - { - environment: 'production', - host: 'docs.gitlab.com', - }, - { - environment: 'review', - host: '35.193.151.162.nip.io', - }, - { - environment: 'local', - host: 'localhost', - }, -]; - -export function isGitLabHosted() { - return GlHosts.some((e) => window.location.host.includes(e.host)); -} diff --git a/content/frontend/services/fetch_versions.js b/content/frontend/services/fetch_versions.js deleted file mode 100644 index e65f396c..00000000 --- a/content/frontend/services/fetch_versions.js +++ /dev/null @@ -1,8 +0,0 @@ -export function getVersions() { - return fetch('https://docs.gitlab.com/versions.json') - .then((response) => response.json()) - .then((data) => { - return data[0]; - }) - .catch((error) => console.error(error)); // eslint-disable-line no-console -} diff --git a/layouts/cta.html b/layouts/cta.html index 29d6a920..885378b6 100644 --- a/layouts/cta.html +++ b/layouts/cta.html @@ -1,3 +1,3 @@ -<a class="gl-button btn btn-cta text-white gl-shadow-none! gl-md-pr-3" href="https://about.gitlab.com/free-trial/?glm_source=docs.gitlab.com&glm_content=navigation-cta-docs" target="_blank" rel="noopener noreferrer" role="button"> +<a class="btn btn-danger btn-cta text-white" href="https://about.gitlab.com/free-trial/?glm_source=docs.gitlab.com&glm_content=navigation-cta-docs" target="_blank" rel="noopener noreferrer" role="button"> Get free trial </a> diff --git a/layouts/header.html b/layouts/header.html index e521a008..f77ff133 100644 --- a/layouts/header.html +++ b/layouts/header.html @@ -22,9 +22,36 @@ <a class="nav-link" href="https://about.gitlab.com/releases/categories/releases/" target="_blank">What's new?</a> </li> </ul> - <div class="js-versions-menu"></div> - <ul class="navbar-nav gl-mb-3 gl-md-mb-0 gl-md-pr-3"> - <li class="nav-item"> + <ul class="navbar-nav mb-0"> + <li class="nav-item p-2 dropdown"> + <button class="btn dropdown-toggle text-white" type="button" id="navbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <%= version_dropdown_title %><%= icon('chevron-down') %> + </button> + <div class="dropdown-menu" aria-labelledby="navbarDropdown"> + <a class="dropdown-item" <%= active_dropdown(ENV['CI_DEFAULT_BRANCH']) %> href='<%= @item.identifier.without_ext + '.html' %>' class="versions-tooltip"><%= dotcom %> + <i class="fa fa-question-circle-o" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" title="Latest pre-release version of GitLab, with features available or about to become available on GitLab.com. For self-managed GitLab installations, select your version number as listed at your GitLab instance's /help URL."></i> + </a> + <% if display_previous_versions? %> + <!-- Start of online versions --> + <div class="dropdown-divider"></div> + <% data_versions[:online].each do |version| %> + <%= render '/partials/versions_list.*', version: version %> + <% end %> + <!-- End of online versions --> + + <!-- Start of last major versions --> + <div class="dropdown-divider"></div> + <% data_versions[:previous_majors].each do |version| %> + <%= render '/partials/versions_list.*', version: version %> + <% end %> + <!-- End of last major versions --> + + <% end %> + <div class="dropdown-divider"></div> + <a class="dropdown-item" <%= active_dropdown('archives') %> href='/archives/'>Archives</a> + </div> + </li> + <li class="nav-item p-2"> <% if @item.identifier.to_s.split('/')[1] == 'omnibus' %> <%= render '/cta_omnibus.*' %> <% else %> diff --git a/layouts/home.html b/layouts/home.html index 3b79e055..6c5bb728 100644 --- a/layouts/home.html +++ b/layouts/home.html @@ -15,7 +15,6 @@ <%= render '/schema-microdata.*' %> <script src="<%= @items['/frontend/header/index.*'].path %>"></script> <script src="<%= @items['/frontend/shared/global_imports.*'].path %>"></script> - <script src="<%= @items['/frontend/default/default.*'].path %>"></script> <script src="<%= @items['/frontend/search/docsearch.*'].path %>"></script> <script src="<%= @items['/assets/javascripts/badges.*'].path %>"></script> </body> diff --git a/package.json b/package.json index 4113ca7b..6db39e30 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "@vue/vue2-jest": "^28.0.1", "babel-jest": "^28.1.3", "eslint": "^8.20.0", - "flush-promises": "^1.0.2", "glob": "^8.0.3", "jest": "^28.1.3", "jest-environment-jsdom": "^28.1.3", diff --git a/spec/frontend/default/components/versions_menu_spec.js b/spec/frontend/default/components/versions_menu_spec.js deleted file mode 100644 index e7cadd20..00000000 --- a/spec/frontend/default/components/versions_menu_spec.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @jest-environment jsdom - */ - -import { mount } from '@vue/test-utils'; -import flushPromises from 'flush-promises'; -import VersionsMenu from '../../../../content/frontend/default/components/versions_menu.vue'; -import { getVersions } from '../../../../content/frontend/services/fetch_versions'; - -jest.mock('../../../../content/frontend/services/fetch_versions'); -beforeEach(() => { - jest.clearAllMocks(); -}); - -describe('component: Versions menu', () => { - it('Fetches versions.json and displays current version', async () => { - const mockNextVersion = '15.2'; - getVersions.mockResolvedValueOnce({ next: mockNextVersion }); - const wrapper = mount(VersionsMenu); - - await flushPromises(); - expect(getVersions).toHaveBeenCalledTimes(1); - - const nextVersion = wrapper.find('[data-testid="next-version"]').element.textContent; - expect(nextVersion).toEqual(mockNextVersion); - }); -}); @@ -3834,11 +3834,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== -flush-promises@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flush-promises/-/flush-promises-1.0.2.tgz#4948fd58f15281fed79cbafc86293d5bb09b2ced" - integrity sha512-G0sYfLQERwKz4+4iOZYQEZVpOt9zQrlItIxQAAYAWpfby3gbHrx0osCHz5RLl/XoXevXk0xoN4hDFky/VV9TrA== - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" |