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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GITLAB_PAGES_VERSION2
-rw-r--r--app/assets/javascripts/ide/components/commit_sidebar/list.vue5
-rw-r--r--app/assets/javascripts/ide/components/commit_sidebar/list_item.vue4
-rw-r--r--app/assets/javascripts/ide/components/commit_sidebar/stage_button.vue78
-rw-r--r--app/assets/javascripts/ide/components/commit_sidebar/unstage_button.vue41
-rw-r--r--app/assets/javascripts/ide/components/repo_commit_section.vue2
-rw-r--r--app/assets/stylesheets/framework/common.scss4
-rw-r--r--app/assets/stylesheets/utilities.scss3
-rw-r--r--app/controllers/projects/issues_controller.rb1
-rw-r--r--changelogs/unreleased/pages-version-v1-13-0.yml5
-rw-r--r--doc/user/markdown.md22
-rw-r--r--locale/gitlab.pot33
-rw-r--r--spec/frontend/ide/components/commit_sidebar/stage_button_spec.js46
-rw-r--r--spec/frontend/ide/components/commit_sidebar/unstage_button_spec.js39
-rw-r--r--spec/javascripts/ide/components/commit_sidebar/list_item_spec.js1
-rw-r--r--spec/javascripts/ide/components/commit_sidebar/list_spec.js1
-rw-r--r--spec/javascripts/vue_shared/components/issue/related_issuable_mock_data.js13
17 files changed, 66 insertions, 234 deletions
diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION
index 0eed1a29efd..feaae22bac7 100644
--- a/GITLAB_PAGES_VERSION
+++ b/GITLAB_PAGES_VERSION
@@ -1 +1 @@
-1.12.0
+1.13.0
diff --git a/app/assets/javascripts/ide/components/commit_sidebar/list.vue b/app/assets/javascripts/ide/components/commit_sidebar/list.vue
index e16918ae025..d9a385a9d31 100644
--- a/app/assets/javascripts/ide/components/commit_sidebar/list.vue
+++ b/app/assets/javascripts/ide/components/commit_sidebar/list.vue
@@ -41,10 +41,6 @@ export default {
type: String,
required: true,
},
- itemActionComponent: {
- type: String,
- required: true,
- },
stagedList: {
type: Boolean,
required: false,
@@ -142,7 +138,6 @@ export default {
<li v-for="file in fileList" :key="file.key">
<list-item
:file="file"
- :action-component="itemActionComponent"
:key-prefix="keyPrefix"
:staged-list="stagedList"
:active-file-key="activeFileKey"
diff --git a/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue b/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue
index 46a96301e88..726e2b7e1fc 100644
--- a/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue
+++ b/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue
@@ -19,10 +19,6 @@ export default {
type: Object,
required: true,
},
- actionComponent: {
- type: String,
- required: true,
- },
keyPrefix: {
type: String,
required: false,
diff --git a/app/assets/javascripts/ide/components/commit_sidebar/stage_button.vue b/app/assets/javascripts/ide/components/commit_sidebar/stage_button.vue
deleted file mode 100644
index c14b8a47841..00000000000
--- a/app/assets/javascripts/ide/components/commit_sidebar/stage_button.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-<script>
-import $ from 'jquery';
-import { mapActions } from 'vuex';
-import { sprintf, __ } from '~/locale';
-import Icon from '~/vue_shared/components/icon.vue';
-import tooltip from '~/vue_shared/directives/tooltip';
-import DeprecatedModal2 from '~/vue_shared/components/deprecated_modal_2.vue';
-
-export default {
- components: {
- Icon,
- GlModal: DeprecatedModal2,
- },
- directives: {
- tooltip,
- },
- props: {
- path: {
- type: String,
- required: true,
- },
- },
- computed: {
- modalId() {
- return `discard-file-${this.path}`;
- },
- modalTitle() {
- return sprintf(__('Discard changes to %{path}?'), { path: this.path });
- },
- },
- methods: {
- ...mapActions(['stageChange', 'discardFileChanges']),
- showDiscardModal() {
- $(document.getElementById(this.modalId)).modal('show');
- },
- },
-};
-</script>
-
-<template>
- <div v-once class="multi-file-discard-btn d-flex">
- <button
- v-tooltip
- :aria-label="__('Stage changes')"
- :title="__('Stage changes')"
- type="button"
- class="btn btn-blank align-items-center"
- data-container="body"
- data-boundary="viewport"
- data-placement="bottom"
- @click.stop.prevent="stageChange(path)"
- >
- <icon :size="16" name="mobile-issue-close" class="ml-auto mr-auto" />
- </button>
- <button
- v-tooltip
- :aria-label="__('Discard changes')"
- :title="__('Discard changes')"
- type="button"
- class="btn btn-blank align-items-center"
- data-container="body"
- data-boundary="viewport"
- data-placement="bottom"
- @click.stop.prevent="showDiscardModal"
- >
- <icon :size="16" name="remove" class="ml-auto mr-auto" />
- </button>
- <gl-modal
- :id="modalId"
- :header-title-text="modalTitle"
- :footer-primary-button-text="__('Discard changes')"
- footer-primary-button-variant="danger"
- @submit="discardFileChanges(path)"
- >
- {{ __("You will lose all changes you've made to this file. This action cannot be undone.") }}
- </gl-modal>
- </div>
-</template>
diff --git a/app/assets/javascripts/ide/components/commit_sidebar/unstage_button.vue b/app/assets/javascripts/ide/components/commit_sidebar/unstage_button.vue
deleted file mode 100644
index 0567ef54ff3..00000000000
--- a/app/assets/javascripts/ide/components/commit_sidebar/unstage_button.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-<script>
-import { mapActions } from 'vuex';
-import Icon from '~/vue_shared/components/icon.vue';
-import tooltip from '~/vue_shared/directives/tooltip';
-
-export default {
- components: {
- Icon,
- },
- directives: {
- tooltip,
- },
- props: {
- path: {
- type: String,
- required: true,
- },
- },
- methods: {
- ...mapActions(['unstageChange']),
- },
-};
-</script>
-
-<template>
- <div v-once class="multi-file-discard-btn d-flex">
- <button
- v-tooltip
- :aria-label="__('Unstage changes')"
- :title="__('Unstage changes')"
- type="button"
- class="btn btn-blank align-items-center"
- data-container="body"
- data-boundary="viewport"
- data-placement="bottom"
- @click.stop.prevent="unstageChange(path)"
- >
- <icon :size="16" name="redo" class="ml-auto mr-auto" />
- </button>
- </div>
-</template>
diff --git a/app/assets/javascripts/ide/components/repo_commit_section.vue b/app/assets/javascripts/ide/components/repo_commit_section.vue
index 35d52bf7528..b3a7597e7bb 100644
--- a/app/assets/javascripts/ide/components/repo_commit_section.vue
+++ b/app/assets/javascripts/ide/components/repo_commit_section.vue
@@ -94,7 +94,6 @@ export default {
:empty-state-text="__('There are no unstaged changes')"
action="stageAllChanges"
action-btn-icon="stage-all"
- item-action-component="stage-button"
class="is-first"
icon-name="unstaged"
/>
@@ -108,7 +107,6 @@ export default {
:empty-state-text="__('There are no staged changes')"
action="unstageAllChanges"
action-btn-icon="unstage-all"
- item-action-component="unstage-button"
icon-name="staged"
/>
</template>
diff --git a/app/assets/stylesheets/framework/common.scss b/app/assets/stylesheets/framework/common.scss
index 7f0d10ae4ac..085bf0f0a37 100644
--- a/app/assets/stylesheets/framework/common.scss
+++ b/app/assets/stylesheets/framework/common.scss
@@ -55,6 +55,10 @@
background-color: $gray-light;
}
+.bg-white {
+ background-color: $white;
+}
+
.bg-line-target-blue {
background: $line-target-blue;
}
diff --git a/app/assets/stylesheets/utilities.scss b/app/assets/stylesheets/utilities.scss
index d6bc4d26bff..1517015dda0 100644
--- a/app/assets/stylesheets/utilities.scss
+++ b/app/assets/stylesheets/utilities.scss
@@ -29,10 +29,13 @@
}
.border-width-1px { border-width: 1px; }
+.border-bottom-width-1px { border-bottom-width: 1px; }
.border-style-dashed { border-style: dashed; }
.border-style-solid { border-style: solid; }
+.border-bottom-style-solid { border-bottom-style: solid; }
.border-color-blue-300 { border-color: $blue-300; }
.border-color-default { border-color: $border-color; }
+.border-bottom-color-default { border-bottom-color: $border-color; }
.box-shadow-default { box-shadow: 0 2px 4px 0 $black-transparent; }
.mh-50vh { max-height: 50vh; }
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index bdb8abdeb45..0944d7b47bf 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -44,6 +44,7 @@ class Projects::IssuesController < Projects::ApplicationController
before_action do
push_frontend_feature_flag(:vue_issuable_sidebar, project.group)
+ push_frontend_feature_flag(:issue_link_types, project)
end
around_action :allow_gitaly_ref_name_caching, only: [:discussions]
diff --git a/changelogs/unreleased/pages-version-v1-13-0.yml b/changelogs/unreleased/pages-version-v1-13-0.yml
new file mode 100644
index 00000000000..fe238f758db
--- /dev/null
+++ b/changelogs/unreleased/pages-version-v1-13-0.yml
@@ -0,0 +1,5 @@
+---
+title: Upgrade Pages to 1.13.0
+merge_request: 23023
+author:
+type: added
diff --git a/doc/user/markdown.md b/doc/user/markdown.md
index 2d7b9e17a40..9aa1849869b 100644
--- a/doc/user/markdown.md
+++ b/doc/user/markdown.md
@@ -773,17 +773,29 @@ do*this*and*do*that*and*another thing
### Footnotes
-Footnotes add a link to a note rendered at the end of a Markdown file:
+Footnotes add a link to a note that will be rendered at the end of a Markdown file.
+
+To make a footnote, you need both a reference tag and a separate line (anywhere in the file) with the note content.
+
+Regardless of the tag names, the relative order of the reference tags determines the rendered numbering.
```markdown
-You can add footnotes to your text as follows.[^1]
+A footnote reference tag looks like this:[^1]
+
+[^1]: This is the contents of a footnote.
-[^1]: This is my awesome footnote (later in file).
+Reference tags can use letters and other characters.[^footnote-note]
+
+[^footnote-note]: Avoid using lowercase `w` or an underscore (`_`) in your tag name until until an [upstream bug](https://gitlab.com/gitlab-org/gitlab/issues/24423) is resolved.
```
-You can add footnotes to your text as follows.[^1]
+A footnote reference tag looks like this:[^1]
+
+[^1]: This is the contents of a footnote.
+
+Reference tags can use letters and other characters.[^footnote-note]
-[^1]: This is my awesome footnote (later in file).
+[^footnote-note]: Avoid using lowercase `w` or an underscore (`_`) in your tag name until until an [upstream bug](https://gitlab.com/gitlab-org/gitlab/issues/24423) is resolved.
### Headers
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 8d731ef8bd5..e3baf39f1f0 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -2690,6 +2690,9 @@ msgstr ""
msgid "Blocked"
msgstr ""
+msgid "Blocks"
+msgstr ""
+
msgid "Blog"
msgstr ""
@@ -10137,6 +10140,9 @@ msgstr ""
msgid "Is"
msgstr ""
+msgid "Is blocked by"
+msgstr ""
+
msgid "Is not"
msgstr ""
@@ -10941,6 +10947,9 @@ msgstr ""
msgid "Linked emails (%{email_count})"
msgstr ""
+msgid "Linked issues"
+msgstr ""
+
msgid "LinkedIn"
msgstr ""
@@ -15104,6 +15113,9 @@ msgstr ""
msgid "Related merge requests"
msgstr ""
+msgid "Relates to"
+msgstr ""
+
msgid "Release"
msgid_plural "Releases"
msgstr[0] ""
@@ -17380,9 +17392,6 @@ msgstr ""
msgid "Stage all changes"
msgstr ""
-msgid "Stage changes"
-msgstr ""
-
msgid "Stage data updated"
msgstr ""
@@ -18183,6 +18192,9 @@ msgstr ""
msgid "The content of this page is not encoded in UTF-8. Edits can only be made via the Git repository."
msgstr ""
+msgid "The current issue"
+msgstr ""
+
msgid "The data source is connected, but there is no data to display. %{documentationLink}"
msgstr ""
@@ -19737,9 +19749,6 @@ msgstr ""
msgid "Unstage all changes"
msgstr ""
-msgid "Unstage changes"
-msgstr ""
-
msgid "Unstaged"
msgstr ""
@@ -21510,6 +21519,9 @@ msgstr ""
msgid "authored"
msgstr ""
+msgid "blocks"
+msgstr ""
+
msgid "branch name"
msgstr ""
@@ -21996,6 +22008,9 @@ msgstr ""
msgid "is an invalid IP address range"
msgstr ""
+msgid "is blocked by"
+msgstr ""
+
msgid "is enabled."
msgstr ""
@@ -22471,6 +22486,9 @@ msgstr ""
msgid "register"
msgstr ""
+msgid "relates to"
+msgstr ""
+
msgid "released %{time}"
msgstr ""
@@ -22587,6 +22605,9 @@ msgstr ""
msgid "tag name"
msgstr ""
+msgid "the following issue(s)"
+msgstr ""
+
msgid "this document"
msgstr ""
diff --git a/spec/frontend/ide/components/commit_sidebar/stage_button_spec.js b/spec/frontend/ide/components/commit_sidebar/stage_button_spec.js
deleted file mode 100644
index b59de4dac0e..00000000000
--- a/spec/frontend/ide/components/commit_sidebar/stage_button_spec.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import Vue from 'vue';
-import store from '~/ide/stores';
-import stageButton from '~/ide/components/commit_sidebar/stage_button.vue';
-import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
-import { file, resetStore } from '../../helpers';
-
-describe('IDE stage file button', () => {
- let vm;
- let f;
-
- beforeEach(() => {
- const Component = Vue.extend(stageButton);
- f = file();
-
- vm = createComponentWithStore(Component, store, {
- path: f.path,
- });
-
- jest.spyOn(vm, 'stageChange').mockImplementation(() => {});
- jest.spyOn(vm, 'discardFileChanges').mockImplementation(() => {});
-
- vm.$mount();
- });
-
- afterEach(() => {
- vm.$destroy();
-
- resetStore(vm.$store);
- });
-
- it('renders button to discard & stage', () => {
- expect(vm.$el.querySelectorAll('.btn-blank').length).toBe(2);
- });
-
- it('calls store with stage button', () => {
- vm.$el.querySelectorAll('.btn')[0].click();
-
- expect(vm.stageChange).toHaveBeenCalledWith(f.path);
- });
-
- it('calls store with discard button', () => {
- vm.$el.querySelector('.btn-danger').click();
-
- expect(vm.discardFileChanges).toHaveBeenCalledWith(f.path);
- });
-});
diff --git a/spec/frontend/ide/components/commit_sidebar/unstage_button_spec.js b/spec/frontend/ide/components/commit_sidebar/unstage_button_spec.js
deleted file mode 100644
index 53b53c8c815..00000000000
--- a/spec/frontend/ide/components/commit_sidebar/unstage_button_spec.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import Vue from 'vue';
-import store from '~/ide/stores';
-import unstageButton from '~/ide/components/commit_sidebar/unstage_button.vue';
-import { createComponentWithStore } from '../../../helpers/vue_mount_component_helper';
-import { file, resetStore } from '../../helpers';
-
-describe('IDE unstage file button', () => {
- let vm;
- let f;
-
- beforeEach(() => {
- const Component = Vue.extend(unstageButton);
- f = file();
-
- vm = createComponentWithStore(Component, store, {
- path: f.path,
- });
-
- jest.spyOn(vm, 'unstageChange').mockImplementation(() => {});
-
- vm.$mount();
- });
-
- afterEach(() => {
- vm.$destroy();
-
- resetStore(vm.$store);
- });
-
- it('renders button to unstage', () => {
- expect(vm.$el.querySelectorAll('.btn').length).toBe(1);
- });
-
- it('calls store with unnstage button', () => {
- vm.$el.querySelector('.btn').click();
-
- expect(vm.unstageChange).toHaveBeenCalledWith(f.path);
- });
-});
diff --git a/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js b/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js
index caf06b5e1d8..63ba6b95619 100644
--- a/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js
+++ b/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js
@@ -20,7 +20,6 @@ describe('Multi-file editor commit sidebar list item', () => {
vm = createComponentWithStore(Component, store, {
file: f,
- actionComponent: 'stage-button',
activeFileKey: `staged-${f.key}`,
}).$mount();
diff --git a/spec/javascripts/ide/components/commit_sidebar/list_spec.js b/spec/javascripts/ide/components/commit_sidebar/list_spec.js
index 81120f6d277..5a1682523d8 100644
--- a/spec/javascripts/ide/components/commit_sidebar/list_spec.js
+++ b/spec/javascripts/ide/components/commit_sidebar/list_spec.js
@@ -17,7 +17,6 @@ describe('Multi-file editor commit sidebar list', () => {
action: 'stageAllChanges',
actionBtnText: 'stage all',
actionBtnIcon: 'history',
- itemActionComponent: 'stage-button',
activeFileKey: 'staged-testing',
keyPrefix: 'staged',
});
diff --git a/spec/javascripts/vue_shared/components/issue/related_issuable_mock_data.js b/spec/javascripts/vue_shared/components/issue/related_issuable_mock_data.js
index 26bfdd7551e..92080cb9bd5 100644
--- a/spec/javascripts/vue_shared/components/issue/related_issuable_mock_data.js
+++ b/spec/javascripts/vue_shared/components/issue/related_issuable_mock_data.js
@@ -6,40 +6,43 @@ export const defaultProps = {
export const issuable1 = {
id: 200,
- epic_issue_id: 1,
+ epicIssueId: 1,
confidential: false,
reference: 'foo/bar#123',
displayReference: '#123',
title: 'some title',
path: '/foo/bar/issues/123',
state: 'opened',
+ linkType: 'relates_to',
};
export const issuable2 = {
id: 201,
- epic_issue_id: 2,
+ epicIssueId: 2,
confidential: false,
reference: 'foo/bar#124',
displayReference: '#124',
title: 'some other thing',
path: '/foo/bar/issues/124',
state: 'opened',
+ linkType: 'blocks',
};
export const issuable3 = {
id: 202,
- epic_issue_id: 3,
+ epicIssueId: 3,
confidential: false,
reference: 'foo/bar#125',
displayReference: '#125',
title: 'some other other thing',
path: '/foo/bar/issues/125',
state: 'opened',
+ linkType: 'is_blocked_by',
};
export const issuable4 = {
id: 203,
- epic_issue_id: 4,
+ epicIssueId: 4,
confidential: false,
reference: 'foo/bar#126',
displayReference: '#126',
@@ -50,7 +53,7 @@ export const issuable4 = {
export const issuable5 = {
id: 204,
- epic_issue_id: 5,
+ epicIssueId: 5,
confidential: false,
reference: 'foo/bar#127',
displayReference: '#127',