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:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-12-16 18:09:40 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-12-16 18:09:40 +0300
commitf1357e5566b2c1f4f5e7b933b72a2d24431905e9 (patch)
tree058422b7532ed76b6363033a8dd4dd8272cd7c68 /app/assets/javascripts/merge_request_tabs.js
parent377d420e3d7e3f066c409714cbb9f7bb0a4882b6 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/merge_request_tabs.js')
-rw-r--r--app/assets/javascripts/merge_request_tabs.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/app/assets/javascripts/merge_request_tabs.js b/app/assets/javascripts/merge_request_tabs.js
index 6aa4a024016..5a1410ceeba 100644
--- a/app/assets/javascripts/merge_request_tabs.js
+++ b/app/assets/javascripts/merge_request_tabs.js
@@ -174,6 +174,11 @@ function getActionFromHref(href) {
return action;
}
+const pageBundles = {
+ show: () => import(/* webpackPrefetch: true */ '~/mr_notes/init_notes'),
+ diffs: () => import(/* webpackPrefetch: true */ '~/diffs'),
+};
+
export default class MergeRequestTabs {
constructor({ action, setUrl, stubLocation } = {}) {
this.mergeRequestTabs = document.querySelector('.merge-request-tabs-container');
@@ -199,10 +204,10 @@ export default class MergeRequestTabs {
this.currentTab = null;
this.diffsLoaded = false;
- this.pipelinesLoaded = false;
this.commitsLoaded = false;
this.fixedLayoutPref = null;
this.eventHub = createEventHub();
+ this.loadedPages = { [action]: true };
this.setUrl = setUrl !== undefined ? setUrl : true;
this.setCurrentAction = this.setCurrentAction.bind(this);
@@ -295,6 +300,20 @@ export default class MergeRequestTabs {
const tab = this.mergeRequestTabs.querySelector(`.${action}-tab`);
if (tab) tab.classList.add('active');
+ if (!this.loadedPages[action] && action in pageBundles) {
+ toggleLoader(true);
+ pageBundles[action]()
+ .then(({ default: init }) => {
+ toggleLoader(false);
+ init();
+ this.loadedPages[action] = true;
+ })
+ .catch(() => {
+ toggleLoader(false);
+ createAlert({ message: __('MergeRequest|Failed to load the page') });
+ });
+ }
+
if (window.gon?.features?.movedMrSidebar) {
this.expandSidebar?.forEach((el) =>
el.classList.toggle('gl-display-none!', action !== 'show'),