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-05-19 10:33:21 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-05-19 10:33:21 +0300
commit36a59d088eca61b834191dacea009677a96c052f (patch)
treee4f33972dab5d8ef79e3944a9f403035fceea43f /app/assets/javascripts/pages
parenta1761f15ec2cae7c7f7bbda39a75494add0dfd6f (diff)
Add latest changes from gitlab-org/gitlab@15-0-stable-eev15.0.0-rc42
Diffstat (limited to 'app/assets/javascripts/pages')
-rw-r--r--app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue76
-rw-r--r--app/assets/javascripts/pages/admin/background_migrations/index.js3
-rw-r--r--app/assets/javascripts/pages/admin/clusters/index.js3
-rw-r--r--app/assets/javascripts/pages/groups/clusters/index.js2
-rw-r--r--app/assets/javascripts/pages/groups/new/components/app.vue4
-rw-r--r--app/assets/javascripts/pages/groups/settings/ci_cd/show/index.js15
-rw-r--r--app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue16
-rw-r--r--app/assets/javascripts/pages/projects/clusters/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/clusters/show/index.js2
-rw-r--r--app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue41
-rw-r--r--app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js28
-rw-r--r--app/assets/javascripts/pages/projects/project.js20
-rw-r--r--app/assets/javascripts/pages/projects/serverless/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/services/edit/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/show/index.js55
-rw-r--r--app/assets/javascripts/pages/projects/wikis/edit/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/wikis/index.js3
-rw-r--r--app/assets/javascripts/pages/projects/wikis/show/index.js2
-rw-r--r--app/assets/javascripts/pages/registrations/new/index.js5
20 files changed, 182 insertions, 108 deletions
diff --git a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue
index 3ef75b3ef0e..5ecacb84d65 100644
--- a/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue
+++ b/app/assets/javascripts/pages/admin/application_settings/general/components/signup_form.vue
@@ -112,9 +112,7 @@ export default {
},
signupEnabledHelpText() {
const text = sprintf(
- s__(
- 'ApplicationSettings|When enabled, any user visiting %{host} will be able to create an account.',
- ),
+ s__('ApplicationSettings|Any user that visits %{host} can create an account.'),
{
host: this.host,
},
@@ -125,7 +123,7 @@ export default {
requireAdminApprovalHelpText() {
const text = sprintf(
s__(
- 'ApplicationSettings|When enabled, any user visiting %{host} and creating an account will have to be explicitly approved by an admin before they can sign in. This setting is effective only if sign-ups are enabled.',
+ 'ApplicationSettings|Any user that visits %{host} and creates an account must be explicitly approved by an administrator before they can sign in. Only effective if sign-ups are enabled.',
),
{
host: this.host,
@@ -197,32 +195,34 @@ export default {
),
domainAllowListLabel: s__('ApplicationSettings|Allowed domains for sign-ups'),
domainAllowListDescription: s__(
- 'ApplicationSettings|ONLY users with e-mail addresses that match these domain(s) will be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com',
+ 'ApplicationSettings|Only users with e-mail addresses that match these domain(s) can sign up. Wildcards allowed. Use separate lines for multiple entries. Example: domain.com, *.domain.com',
),
userCapLabel: s__('ApplicationSettings|User cap'),
userCapDescription: s__(
- 'ApplicationSettings|Once the instance reaches the user cap, any user who is added or requests access will have to be approved by an admin. Leave the field empty for unlimited.',
+ 'ApplicationSettings|After the instance reaches the user cap, any user who is added or requests access must be approved by an administrator. Leave blank for unlimited.',
),
domainDenyListGroupLabel: s__('ApplicationSettings|Domain denylist'),
- domainDenyListLabel: s__('ApplicationSettings|Enable domain denylist for sign ups'),
+ domainDenyListLabel: s__('ApplicationSettings|Enable domain denylist for sign-ups'),
domainDenyListTypeFileLabel: s__('ApplicationSettings|Upload denylist file'),
domainDenyListTypeRawLabel: s__('ApplicationSettings|Enter denylist manually'),
domainDenyListFileLabel: s__('ApplicationSettings|Denylist file'),
domainDenyListFileDescription: s__(
- 'ApplicationSettings|Users with e-mail addresses that match these domain(s) will NOT be able to sign-up. Wildcards allowed. Use separate lines or commas for multiple entries.',
+ 'ApplicationSettings|Users with e-mail addresses that match these domain(s) cannot sign up. Wildcards allowed. Use separate lines or commas for multiple entries.',
),
domainDenyListListLabel: s__('ApplicationSettings|Denied domains for sign-ups'),
domainDenyListListDescription: s__(
- 'ApplicationSettings|Users with e-mail addresses that match these domain(s) will NOT be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com',
+ 'ApplicationSettings|Users with e-mail addresses that match these domain(s) cannot sign up. Wildcards allowed. Use separate lines for multiple entries. Example: domain.com, *.domain.com',
),
domainPlaceholder: s__('ApplicationSettings|domain.com'),
emailRestrictionsEnabledGroupLabel: s__('ApplicationSettings|Email restrictions'),
emailRestrictionsEnabledLabel: s__(
- 'ApplicationSettings|Enable email restrictions for sign ups',
+ 'ApplicationSettings|Enable email restrictions for sign-ups',
),
emailRestrictionsGroupLabel: s__('ApplicationSettings|Email restrictions for sign-ups'),
- afterSignUpTextGroupLabel: s__('ApplicationSettings|After sign up text'),
- afterSignUpTextGroupDescription: s__('ApplicationSettings|Markdown enabled'),
+ afterSignUpTextGroupLabel: s__('ApplicationSettings|After sign-up text'),
+ afterSignUpTextGroupDescription: s__(
+ 'ApplicationSettings|Text shown after a user signs up. Markdown enabled.',
+ ),
},
};
</script>
@@ -288,19 +288,21 @@ export default {
name="application_setting[minimum_password_length]"
/>
- <gl-sprintf
- :message="
- s__(
- 'ApplicationSettings|See GitLab\'s %{linkStart}Password Policy Guidelines%{linkEnd}',
- )
- "
- >
- <template #link="{ content }">
- <gl-link :href="form.minimumPasswordLengthHelpLink" target="_blank">{{
- content
- }}</gl-link>
- </template>
- </gl-sprintf>
+ <template #description>
+ <gl-sprintf
+ :message="
+ s__(
+ 'ApplicationSettings|See GitLab\'s %{linkStart}Password Policy Guidelines%{linkEnd}.',
+ )
+ "
+ >
+ <template #link="{ content }">
+ <gl-link :href="form.minimumPasswordLengthHelpLink" target="_blank">{{
+ content
+ }}</gl-link>
+ </template>
+ </gl-sprintf>
+ </template>
</gl-form-group>
<gl-form-group
@@ -380,17 +382,19 @@ export default {
name="application_setting[email_restrictions]"
></textarea>
- <gl-sprintf
- :message="
- s__(
- 'ApplicationSettings|Restricts sign-ups for email addresses that match the given regex. See the %{linkStart}supported syntax%{linkEnd} for more information.',
- )
- "
- >
- <template #link="{ content }">
- <gl-link :href="form.supportedSyntaxLinkUrl" target="_blank">{{ content }}</gl-link>
- </template>
- </gl-sprintf>
+ <template #description>
+ <gl-sprintf
+ :message="
+ s__(
+ 'ApplicationSettings|Restricts sign-ups for email addresses that match the given regex. %{linkStart}What is the supported syntax?%{linkEnd}',
+ )
+ "
+ >
+ <template #link="{ content }">
+ <gl-link :href="form.supportedSyntaxLinkUrl" target="_blank">{{ content }}</gl-link>
+ </template>
+ </gl-sprintf>
+ </template>
</gl-form-group>
<gl-form-group
diff --git a/app/assets/javascripts/pages/admin/background_migrations/index.js b/app/assets/javascripts/pages/admin/background_migrations/index.js
new file mode 100644
index 00000000000..4c59613140b
--- /dev/null
+++ b/app/assets/javascripts/pages/admin/background_migrations/index.js
@@ -0,0 +1,3 @@
+import { initBackgroundMigrationsApp } from '~/admin/background_migrations';
+
+initBackgroundMigrationsApp();
diff --git a/app/assets/javascripts/pages/admin/clusters/index.js b/app/assets/javascripts/pages/admin/clusters/index.js
deleted file mode 100644
index f398b1cee82..00000000000
--- a/app/assets/javascripts/pages/admin/clusters/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import initCreateCluster from '~/create_cluster/init_create_cluster';
-
-initCreateCluster(document, gon);
diff --git a/app/assets/javascripts/pages/groups/clusters/index.js b/app/assets/javascripts/pages/groups/clusters/index.js
index 4d48bd4be2b..99fb7fa68a9 100644
--- a/app/assets/javascripts/pages/groups/clusters/index.js
+++ b/app/assets/javascripts/pages/groups/clusters/index.js
@@ -1,5 +1,3 @@
import initIntegrationForm from '~/clusters/forms/show/index';
-import initCreateCluster from '~/create_cluster/init_create_cluster';
-initCreateCluster(document, gon);
initIntegrationForm();
diff --git a/app/assets/javascripts/pages/groups/new/components/app.vue b/app/assets/javascripts/pages/groups/new/components/app.vue
index c3ac074cd7a..713287f65b4 100644
--- a/app/assets/javascripts/pages/groups/new/components/app.vue
+++ b/app/assets/javascripts/pages/groups/new/components/app.vue
@@ -21,9 +21,7 @@ const PANELS = [
name: 'import-group-pane',
selector: '#import-group-pane',
title: s__('GroupsNew|Import group'),
- description: s__(
- 'GroupsNew|Export groups with all their related data and move to a new GitLab instance.',
- ),
+ description: s__('GroupsNew|Import a group and related data from another GitLab instance.'),
illustration: importGroupIllustration,
details: 'Migrate your existing groups from another instance of GitLab.',
},
diff --git a/app/assets/javascripts/pages/groups/settings/ci_cd/show/index.js b/app/assets/javascripts/pages/groups/settings/ci_cd/show/index.js
index 5d8ee146e62..52add416f38 100644
--- a/app/assets/javascripts/pages/groups/settings/ci_cd/show/index.js
+++ b/app/assets/javascripts/pages/groups/settings/ci_cd/show/index.js
@@ -1,24 +1,9 @@
import initVariableList from '~/ci_variable_list';
-import GroupRunnersFilteredSearchTokenKeys from '~/filtered_search/group_runners_filtered_search_token_keys';
import initSharedRunnersForm from '~/group_settings/mount_shared_runners';
-import { FILTERED_SEARCH } from '~/filtered_search/constants';
-import initFilteredSearch from '~/pages/search/init_filtered_search';
-import { initRunnerAwsDeployments } from '~/pages/shared/mount_runner_aws_deployments';
-import { initInstallRunner } from '~/pages/shared/mount_runner_instructions';
import initSettingsPanels from '~/settings_panels';
// Initialize expandable settings panels
initSettingsPanels();
-initFilteredSearch({
- page: FILTERED_SEARCH.ADMIN_RUNNERS,
- filteredSearchTokenKeys: GroupRunnersFilteredSearchTokenKeys,
- anchor: FILTERED_SEARCH.GROUP_RUNNERS_ANCHOR,
- useDefaultState: false,
-});
-
initSharedRunnersForm();
initVariableList();
-
-initInstallRunner();
-initRunnerAwsDeployments();
diff --git a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
index 9a4054eb110..35a8d3d979a 100644
--- a/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
+++ b/app/assets/javascripts/pages/import/bulk_imports/history/components/bulk_imports_history_app.vue
@@ -9,6 +9,7 @@ import { getBulkImportsHistory } from '~/rest_api';
import ImportStatus from '~/import_entities/components/import_status.vue';
import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar.vue';
import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';
+import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
import { DEFAULT_ERROR } from '../utils/error_messages';
@@ -16,6 +17,8 @@ const DEFAULT_PER_PAGE = 20;
const DEFAULT_TH_CLASSES =
'gl-bg-transparent! gl-border-b-solid! gl-border-b-gray-200! gl-border-b-1! gl-p-5!';
+const HISTORY_PAGINATION_SIZE_PERSIST_KEY = 'gl-bulk-imports-history-per-page';
+
const tableCell = (config) => ({
thClass: `${DEFAULT_TH_CLASSES}`,
tdClass: (value, key, item) => {
@@ -37,6 +40,7 @@ export default {
PaginationBar,
ImportStatus,
TimeAgo,
+ LocalStorageSync,
},
data() {
@@ -59,7 +63,7 @@ export default {
}),
tableCell({
key: 'destination_name',
- label: s__('BulkImport|New group'),
+ label: s__('BulkImport|Destination group'),
thClass: `${DEFAULT_TH_CLASSES} gl-w-40p`,
}),
tableCell({
@@ -85,10 +89,13 @@ export default {
this.loadHistoryItems();
},
deep: true,
- immediate: true,
},
},
+ mounted() {
+ this.loadHistoryItems();
+ },
+
methods: {
async loadHistoryItems() {
try {
@@ -116,6 +123,7 @@ export default {
},
gitlabLogo: window.gon.gitlab_logo,
+ historyPaginationSizePersistKey: HISTORY_PAGINATION_SIZE_PERSIST_KEY,
};
</script>
@@ -171,5 +179,9 @@ export default {
@set-page-size="paginationConfig.perPage = $event"
/>
</template>
+ <local-storage-sync
+ v-model="paginationConfig.perPage"
+ :storage-key="$options.historyPaginationSizePersistKey"
+ />
</div>
</template>
diff --git a/app/assets/javascripts/pages/projects/clusters/index.js b/app/assets/javascripts/pages/projects/clusters/index.js
deleted file mode 100644
index f398b1cee82..00000000000
--- a/app/assets/javascripts/pages/projects/clusters/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import initCreateCluster from '~/create_cluster/init_create_cluster';
-
-initCreateCluster(document, gon);
diff --git a/app/assets/javascripts/pages/projects/clusters/show/index.js b/app/assets/javascripts/pages/projects/clusters/show/index.js
index 71ab5a0b19c..0b34f374abc 100644
--- a/app/assets/javascripts/pages/projects/clusters/show/index.js
+++ b/app/assets/javascripts/pages/projects/clusters/show/index.js
@@ -1,6 +1,6 @@
import ClustersBundle from '~/clusters/clusters_bundle';
import initIntegrationForm from '~/clusters/forms/show';
-import initGkeNamespace from '~/create_cluster/gke_cluster_namespace';
+import initGkeNamespace from '~/clusters/gke_cluster_namespace';
import initClusterHealth from './cluster_health';
new ClustersBundle(); // eslint-disable-line no-new
diff --git a/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue b/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue
index 1667f2c3576..1912477758b 100644
--- a/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue
+++ b/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab_section_link.vue
@@ -1,5 +1,6 @@
<script>
-import { GlLink, GlIcon, GlButton, GlTooltipDirective as GlTooltip } from '@gitlab/ui';
+import { uniqueId } from 'lodash';
+import { GlLink, GlIcon, GlButton, GlPopover, GlTooltipDirective as GlTooltip } from '@gitlab/ui';
import GitlabExperiment from '~/experimentation/components/gitlab_experiment.vue';
import { isExperimentVariant } from '~/experimentation/utils';
import eventHub from '~/invite_members/event_hub';
@@ -12,6 +13,7 @@ export default {
GlLink,
GlIcon,
GlButton,
+ GlPopover,
GitlabExperiment,
},
directives: {
@@ -19,6 +21,8 @@ export default {
},
i18n: {
trialOnly: s__('LearnGitlab|Trial only'),
+ contactAdmin: s__('LearnGitlab|Contact your administrator to start a free Ultimate trial.'),
+ viewAdminList: s__('LearnGitlab|View administrator list'),
watchHow: __('Watch how'),
},
props: {
@@ -31,6 +35,11 @@ export default {
type: Object,
},
},
+ data() {
+ return {
+ popoverId: uniqueId('contact-admin-'),
+ };
+ },
computed: {
linkTitle() {
return ACTION_LABELS[this.action].title;
@@ -78,7 +87,7 @@ export default {
{{ linkTitle }}
</gl-link>
<gl-link
- v-else
+ v-else-if="value.enabled"
:target="openInNewTab ? '_blank' : '_self'"
:href="value.url"
data-testid="uncompleted-learn-gitlab-link"
@@ -87,6 +96,33 @@ export default {
>
{{ linkTitle }}
</gl-link>
+ <template v-else>
+ <div data-testid="disabled-learn-gitlab-link">{{ linkTitle }}</div>
+ <gl-button
+ :id="popoverId"
+ category="tertiary"
+ icon="question-o"
+ class="ml-auto"
+ :aria-label="$options.i18n.contactAdmin"
+ size="small"
+ data-testid="contact-admin-popover-trigger"
+ />
+ <gl-popover
+ :target="popoverId"
+ placement="top"
+ triggers="hover focus"
+ data-testid="contact-admin-popover"
+ >
+ <p>{{ $options.i18n.contactAdmin }}</p>
+ <gl-link
+ :href="value.url"
+ class="font-size-inherit"
+ data-testid="view-administrator-link-text"
+ >
+ {{ $options.i18n.viewAdminList }}
+ </gl-link>
+ </gl-popover>
+ </template>
<gitlab-experiment name="video_tutorials_continuous_onboarding">
<template #control></template>
<template #candidate>
@@ -100,6 +136,7 @@ export default {
:href="linkToVideoTutorial"
target="_blank"
class="ml-auto"
+ size="small"
data-testid="video-tutorial-link"
data-track-action="click_video_link"
:data-track-label="linkTitle"
diff --git a/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js b/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js
index 9ba5e17237a..05bacd9b350 100644
--- a/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js
+++ b/app/assets/javascripts/pages/projects/learn_gitlab/constants/index.js
@@ -30,6 +30,7 @@ export const ACTION_LABELS = {
description: s__('LearnGitLab|Try all GitLab features for 30 days, no credit card required.'),
section: 'workspace',
position: 3,
+ openInNewTab: true,
},
codeOwnersEnabled: {
title: s__('LearnGitLab|Add code owners'),
@@ -40,6 +41,7 @@ export const ACTION_LABELS = {
trialRequired: true,
section: 'workspace',
position: 4,
+ openInNewTab: true,
videoTutorial: 'https://vimeo.com/670896787',
},
requiredMrApprovalsEnabled: {
@@ -49,6 +51,7 @@ export const ACTION_LABELS = {
trialRequired: true,
section: 'workspace',
position: 5,
+ openInNewTab: true,
videoTutorial: 'https://vimeo.com/670904904',
},
mergeRequestCreated: {
diff --git a/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js b/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js
index 0e0c1475eda..48e360ce762 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/init_merge_request_show.js
@@ -8,6 +8,7 @@ import createDefaultClient from '~/lib/graphql';
import initSourcegraph from '~/sourcegraph';
import ZenMode from '~/zen_mode';
import initAwardsApp from '~/emoji/awards_app';
+import MrWidgetHowToMergeModal from '~/vue_merge_request_widget/components/mr_widget_how_to_merge_modal.vue';
import getStateQuery from './queries/get_state.query.graphql';
export default function initMergeRequestShow() {
@@ -19,22 +20,45 @@ export default function initMergeRequestShow() {
initAwardsApp(document.getElementById('js-vue-awards-block'));
const el = document.querySelector('.js-mr-status-box');
+ const { iid, issuableType, projectPath } = el.dataset;
const apolloProvider = new VueApollo({
defaultClient: createDefaultClient(),
});
// eslint-disable-next-line no-new
new Vue({
el,
+ name: 'IssuableStatusBoxRoot',
apolloProvider,
provide: {
query: getStateQuery,
- projectPath: el.dataset.projectPath,
- iid: el.dataset.iid,
+ iid,
+ projectPath,
},
render(h) {
return h(StatusBox, {
props: {
initialState: el.dataset.state,
+ issuableType,
+ },
+ });
+ },
+ });
+
+ const modalEl = document.getElementById('js-check-out-modal');
+
+ // eslint-disable-next-line no-new
+ new Vue({
+ el: modalEl,
+ render(h) {
+ return h(MrWidgetHowToMergeModal, {
+ props: {
+ canMerge: modalEl.dataset.canMerge === 'true',
+ isFork: modalEl.dataset.isFork === 'true',
+ sourceBranch: modalEl.dataset.sourceBranch,
+ sourceProjectPath: modalEl.dataset.sourceProjectPath,
+ targetBranch: modalEl.dataset.targetBranch,
+ sourceProjectDefaultUrl: modalEl.dataset.sourceProjectDefaultUrl,
+ reviewingDocsPath: modalEl.dataset.reviewingDocsPath,
},
});
},
diff --git a/app/assets/javascripts/pages/projects/project.js b/app/assets/javascripts/pages/projects/project.js
index 4f57e1308df..032e2410233 100644
--- a/app/assets/javascripts/pages/projects/project.js
+++ b/app/assets/javascripts/pages/projects/project.js
@@ -65,6 +65,7 @@ export default class Project {
const fieldName = $dropdown.data('fieldName');
const shouldVisit = Boolean($dropdown.data('visit'));
const $form = $dropdown.closest('form');
+ const path = $form.find('#path').val();
const action = $form.attr('action');
const linkTarget = mergeUrlParams(serializeForm($form[0]), action);
@@ -116,20 +117,21 @@ export default class Project {
},
clicked(options) {
const { e } = options;
- e.preventDefault();
- // Since this page does not reload when changing directories in a repo
- // the rendered links do not have the path to the current directory.
- // This updates the path based on the current url and then opens
- // the the url with the updated path parameter.
- if (shouldVisit) {
+ if (!shouldVisit) {
+ e.preventDefault();
+ }
+
+ // Some pages need to dynamically get the current path
+ // so they can opt-in to JS getting the path from the
+ // current URL by not setting a path in the dropdown form
+ if (shouldVisit && path === undefined) {
+ e.preventDefault();
+
const selectedUrl = new URL(e.target.href);
const loc = window.location.href;
if (loc.includes('/-/')) {
- // Since the current ref in renderRow is outdated on page changes
- // (To be addressed in: https://gitlab.com/gitlab-org/gitlab/-/issues/327085)
- // We are deciphering the current ref from the dropdown data instead
const currentRef = $dropdown.data('ref');
// The split and startWith is to ensure an exact word match
// and avoid partial match ie. currentRef is "dev" and loc is "development"
diff --git a/app/assets/javascripts/pages/projects/serverless/index.js b/app/assets/javascripts/pages/projects/serverless/index.js
deleted file mode 100644
index 9ae81b327b1..00000000000
--- a/app/assets/javascripts/pages/projects/serverless/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import ServerlessBundle from '~/serverless/serverless_bundle';
-
-new ServerlessBundle(); // eslint-disable-line no-new
diff --git a/app/assets/javascripts/pages/projects/services/edit/index.js b/app/assets/javascripts/pages/projects/services/edit/index.js
index 2048d3dfc37..64df0d07d74 100644
--- a/app/assets/javascripts/pages/projects/services/edit/index.js
+++ b/app/assets/javascripts/pages/projects/services/edit/index.js
@@ -1,5 +1,4 @@
import initIntegrationSettingsForm from '~/integrations/edit';
-import PrometheusAlerts from '~/prometheus_alerts';
import CustomMetrics from '~/prometheus_metrics/custom_metrics';
initIntegrationSettingsForm();
@@ -10,5 +9,3 @@ if (prometheusSettingsWrapper) {
const customMetrics = new CustomMetrics(prometheusSettingsSelector);
customMetrics.init();
}
-
-PrometheusAlerts();
diff --git a/app/assets/javascripts/pages/projects/show/index.js b/app/assets/javascripts/pages/projects/show/index.js
index 71c6773c176..e2b1a702560 100644
--- a/app/assets/javascripts/pages/projects/show/index.js
+++ b/app/assets/javascripts/pages/projects/show/index.js
@@ -1,8 +1,5 @@
-import initTree from 'ee_else_ce/repository';
-import Activities from '~/activities';
import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';
-import { BlobViewer } from '~/blob/viewer';
-import { initUploadForm } from '~/blob_edit/blob_bundle';
+
import initInviteMembersModal from '~/invite_members/init_invite_members_modal';
import initInviteMembersTrigger from '~/invite_members/init_invite_members_trigger';
import leaveByUrl from '~/namespaces/leave_by_url';
@@ -10,33 +7,38 @@ import initVueNotificationsDropdown from '~/notifications';
import Star from '~/projects/star';
import { initUploadFileTrigger } from '~/projects/upload_file';
import initReadMore from '~/read_more';
-import UserCallout from '~/user_callout';
-
-initReadMore();
-new Star(); // eslint-disable-line no-new
-
-// eslint-disable-next-line no-new
-new UserCallout({
- setCalloutPerProject: false,
- className: 'js-autodevops-banner',
-});
// Project show page loads different overview content based on user preferences
-
if (document.querySelector('.js-upload-blob-form')) {
- initUploadForm();
+ import(/* webpackChunkName: 'blobBundle' */ '~/blob_edit/blob_bundle')
+ .then(({ initUploadForm }) => {
+ initUploadForm();
+ })
+ .catch(() => {});
}
if (document.getElementById('js-tree-list')) {
- initTree();
+ import(/* webpackChunkName: 'treeList' */ 'ee_else_ce/repository')
+ .then(({ default: initTree }) => {
+ initTree();
+ })
+ .catch(() => {});
}
if (document.querySelector('.blob-viewer')) {
- new BlobViewer(); // eslint-disable-line no-new
+ import(/* webpackChunkName: 'blobViewer' */ '~/blob/viewer')
+ .then(({ BlobViewer }) => {
+ new BlobViewer(); // eslint-disable-line no-new
+ })
+ .catch(() => {});
}
if (document.querySelector('.project-show-activity')) {
- new Activities(); // eslint-disable-line no-new
+ import(/* webpackChunkName: 'activitiesList' */ '~/activities')
+ .then(({ default: Activities }) => {
+ new Activities(); // eslint-disable-line no-new
+ })
+ .catch(() => {});
}
leaveByUrl('project');
@@ -48,3 +50,18 @@ new ShortcutsNavigation(); // eslint-disable-line no-new
initUploadFileTrigger();
initInviteMembersModal();
initInviteMembersTrigger();
+
+initReadMore();
+new Star(); // eslint-disable-line no-new
+
+if (document.querySelector('.js-autodevops-banner')) {
+ import(/* webpackChunkName: 'userCallOut' */ '~/user_callout')
+ .then(({ default: UserCallout }) => {
+ // eslint-disable-next-line no-new
+ new UserCallout({
+ setCalloutPerProject: false,
+ className: 'js-autodevops-banner',
+ });
+ })
+ .catch(() => {});
+}
diff --git a/app/assets/javascripts/pages/projects/wikis/edit/index.js b/app/assets/javascripts/pages/projects/wikis/edit/index.js
deleted file mode 100644
index b2288c2655c..00000000000
--- a/app/assets/javascripts/pages/projects/wikis/edit/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { mountApplications } from '~/pages/shared/wikis/edit';
-
-mountApplications();
diff --git a/app/assets/javascripts/pages/projects/wikis/index.js b/app/assets/javascripts/pages/projects/wikis/index.js
index 83fcd348ddf..692baee383b 100644
--- a/app/assets/javascripts/pages/projects/wikis/index.js
+++ b/app/assets/javascripts/pages/projects/wikis/index.js
@@ -1,3 +1,6 @@
import Wikis from '~/pages/shared/wikis/wikis';
+import { mountApplications } from '~/pages/shared/wikis/async_edit';
+
+mountApplications();
export default new Wikis();
diff --git a/app/assets/javascripts/pages/projects/wikis/show/index.js b/app/assets/javascripts/pages/projects/wikis/show/index.js
index 7ca5f6964cd..288f6b616cc 100644
--- a/app/assets/javascripts/pages/projects/wikis/show/index.js
+++ b/app/assets/javascripts/pages/projects/wikis/show/index.js
@@ -1,5 +1,3 @@
import { mountApplications } from '~/pages/shared/wikis/show';
-import { mountApplications as mountEditApplications } from '~/pages/shared/wikis/async_edit';
mountApplications();
-mountEditApplications();
diff --git a/app/assets/javascripts/pages/registrations/new/index.js b/app/assets/javascripts/pages/registrations/new/index.js
index 8bbe81a9ed5..94a5c1cb29b 100644
--- a/app/assets/javascripts/pages/registrations/new/index.js
+++ b/app/assets/javascripts/pages/registrations/new/index.js
@@ -3,9 +3,14 @@ import { trackNewRegistrations } from '~/google_tag_manager';
import NoEmojiValidator from '~/emoji/no_emoji_validator';
import LengthValidator from '~/pages/sessions/new/length_validator';
import UsernameValidator from '~/pages/sessions/new/username_validator';
+import Tracking from '~/tracking';
new UsernameValidator(); // eslint-disable-line no-new
new LengthValidator(); // eslint-disable-line no-new
new NoEmojiValidator(); // eslint-disable-line no-new
trackNewRegistrations();
+
+Tracking.enableFormTracking({
+ forms: { allow: ['new_user'] },
+});