diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-19 10:33:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-05-19 10:33:21 +0300 |
commit | 36a59d088eca61b834191dacea009677a96c052f (patch) | |
tree | e4f33972dab5d8ef79e3944a9f403035fceea43f /app/assets/javascripts/pages | |
parent | a1761f15ec2cae7c7f7bbda39a75494add0dfd6f (diff) |
Add latest changes from gitlab-org/gitlab@15-0-stable-eev15.0.0-rc42
Diffstat (limited to 'app/assets/javascripts/pages')
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'] }, +}); |