Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarah German <sgerman@gitlab.com>2022-07-20 22:52:49 +0300
committerSarah German <sgerman@gitlab.com>2022-07-20 22:52:49 +0300
commitdce2fc32653a5410e6c1d148f8d5b32519f27809 (patch)
tree0de41f89817f8b8e68b72add469752733ab6c177
parent247baadee5064bc35bc531b92adc6f32397cff82 (diff)
Revert "Make the versions dropdown dynamic"
This reverts commit b3c152da1c74e246ea0397680baac1e2ae0f1786.
-rw-r--r--content/assets/stylesheets/stylesheet.scss29
-rw-r--r--content/frontend/default/components/versions_menu.vue80
-rw-r--r--content/frontend/default/default.js17
-rw-r--r--content/frontend/default/environment.js22
-rw-r--r--content/frontend/services/fetch_versions.js8
-rw-r--r--layouts/cta.html2
-rw-r--r--layouts/header.html33
-rw-r--r--layouts/home.html1
-rw-r--r--package.json1
-rw-r--r--spec/frontend/default/components/versions_menu_spec.js27
-rw-r--r--yarn.lock5
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);
- });
-});
diff --git a/yarn.lock b/yarn.lock
index 548eb5dd..33fd19f1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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"