diff options
Diffstat (limited to 'app/assets/javascripts/pages/projects')
18 files changed, 69 insertions, 38 deletions
diff --git a/app/assets/javascripts/pages/projects/blob/show/index.js b/app/assets/javascripts/pages/projects/blob/show/index.js index 80bcbefab46..b365e039191 100644 --- a/app/assets/javascripts/pages/projects/blob/show/index.js +++ b/app/assets/javascripts/pages/projects/blob/show/index.js @@ -14,7 +14,7 @@ import '~/sourcegraph/load'; Vue.use(VueApollo); const apolloProvider = new VueApollo({ - defaultClient: createDefaultClient({}, { assumeImmutableResults: true }), + defaultClient: createDefaultClient(), }); const viewBlobEl = document.querySelector('#js-view-blob-app'); diff --git a/app/assets/javascripts/pages/projects/edit/index.js b/app/assets/javascripts/pages/projects/edit/index.js index 335d8d481fc..f4beefea90c 100644 --- a/app/assets/javascripts/pages/projects/edit/index.js +++ b/app/assets/javascripts/pages/projects/edit/index.js @@ -1,5 +1,5 @@ import { PROJECT_BADGE } from '~/badges/constants'; -import initConfirmDangerModal from '~/confirm_danger_modal'; +import initLegacyConfirmDangerModal from '~/confirm_danger_modal'; import dirtySubmitFactory from '~/dirty_submit/dirty_submit_factory'; import initFilePickers from '~/file_pickers'; import mountBadgeSettings from '~/pages/shared/mount_badge_settings'; @@ -9,11 +9,12 @@ import initSearchSettings from '~/search_settings'; import initSettingsPanels from '~/settings_panels'; import setupTransferEdit from '~/transfer_edit'; import UserCallout from '~/user_callout'; +import initTopicsTokenSelector from '~/projects/settings/topics'; import initProjectPermissionsSettings from '../shared/permissions'; import initProjectLoadingSpinner from '../shared/save_project_loader'; initFilePickers(); -initConfirmDangerModal(); +initLegacyConfirmDangerModal(); initSettingsPanels(); initProjectDeleteButton(); mountBadgeSettings(PROJECT_BADGE); @@ -28,3 +29,4 @@ setupTransferEdit('.js-project-transfer-form', 'select.select2'); dirtySubmitFactory(document.querySelectorAll('.js-general-settings-form, .js-mr-settings-form')); initSearchSettings(); +initTopicsTokenSelector(); diff --git a/app/assets/javascripts/pages/projects/environments/index/index.js b/app/assets/javascripts/pages/projects/environments/index/index.js index 554ed4f9786..f0554d64ddc 100644 --- a/app/assets/javascripts/pages/projects/environments/index/index.js +++ b/app/assets/javascripts/pages/projects/environments/index/index.js @@ -1,3 +1,11 @@ import initEnvironments from '~/environments/'; +import initNewEnvironments from '~/environments/new_index'; -initEnvironments(); +let el = document.getElementById('environments-list-view'); + +if (el) { + initEnvironments(el); +} else { + el = document.getElementById('environments-table'); + initNewEnvironments(el); +} diff --git a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue index 795ae713c08..25b62e6c971 100644 --- a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue +++ b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue @@ -382,7 +382,11 @@ export default { :data-testid="`radio-${value}`" > <div> - <gl-icon :name="icon" /> + <gl-icon + data-qa-selector="fork_privacy_button" + :name="icon" + :data-qa-privacy-level="`${value}`" + /> <span>{{ text }}</span> </div> <template #help>{{ help }}</template> diff --git a/app/assets/javascripts/pages/projects/google_cloud/index.js b/app/assets/javascripts/pages/projects/google_cloud/index.js new file mode 100644 index 00000000000..4506ea8efd1 --- /dev/null +++ b/app/assets/javascripts/pages/projects/google_cloud/index.js @@ -0,0 +1,3 @@ +import initGoogleCloud from '~/google_cloud/index'; + +initGoogleCloud(); diff --git a/app/assets/javascripts/pages/projects/issues/show.js b/app/assets/javascripts/pages/projects/issues/show.js index 62aa5df888f..24aa2f0da13 100644 --- a/app/assets/javascripts/pages/projects/issues/show.js +++ b/app/assets/javascripts/pages/projects/issues/show.js @@ -3,7 +3,7 @@ import ShortcutsIssuable from '~/behaviors/shortcuts/shortcuts_issuable'; import initIssuableSidebar from '~/init_issuable_sidebar'; import { IssuableType } from '~/issuable_show/constants'; import Issue from '~/issue'; -import initIncidentApp from '~/issue_show/incident'; +import { initIncidentApp, initIncidentHeaderActions } from '~/issue_show/incident'; import { initIssuableApp, initIssueHeaderActions } from '~/issue_show/issue'; import { parseIssuableData } from '~/issue_show/utils/parse_data'; import initNotesApp from '~/notes'; @@ -22,16 +22,18 @@ export default function initShowIssue() { switch (issueType) { case IssuableType.Incident: initIncidentApp(issuableData); + initIncidentHeaderActions(store); break; case IssuableType.Issue: initIssuableApp(issuableData, store); + initIssueHeaderActions(store); break; default: + initIssueHeaderActions(store); break; } initIssuableHeaderWarning(store); - initIssueHeaderActions(store); initSentryErrorStackTraceApp(); initRelatedMergeRequestsApp(); diff --git a/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab.vue b/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab.vue index 51980b2d971..95afcb6bda8 100644 --- a/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab.vue +++ b/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab.vue @@ -1,5 +1,6 @@ <script> import { GlProgressBar, GlSprintf } from '@gitlab/ui'; +import eventHub from '~/invite_members/event_hub'; import { s__ } from '~/locale'; import { ACTION_LABELS, ACTION_SECTIONS } from '../constants'; import LearnGitlabSectionCard from './learn_gitlab_section_card.vue'; @@ -22,6 +23,11 @@ export default { required: true, type: Object, }, + inviteMembersOpen: { + type: Boolean, + required: false, + default: false, + }, }, maxValue: Object.keys(ACTION_LABELS).length, actionSections: Object.keys(ACTION_SECTIONS), @@ -33,7 +39,15 @@ export default { return Math.round((this.progressValue / this.$options.maxValue) * 100); }, }, + mounted() { + if (this.inviteMembersOpen) { + this.openInviteMembersModal('celebrate'); + } + }, methods: { + openInviteMembersModal(mode) { + eventHub.$emit('openModal', { mode, inviteeType: 'members', source: 'learn-gitlab' }); + }, actionsFor(section) { const actions = Object.fromEntries( Object.entries(this.actions).filter( 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 69fb5878f5c..0995947f3e7 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 @@ -40,6 +40,7 @@ export default { data-track-action="click_link" :data-track-label="$options.i18n.ACTION_LABELS[action].title" data-track-property="Growth::Conversion::Experiment::LearnGitLab" + data-track-experiment="change_continuous_onboarding_link_urls" > {{ $options.i18n.ACTION_LABELS[action].title }} </gl-link> diff --git a/app/assets/javascripts/pages/projects/learn_gitlab/index/index.js b/app/assets/javascripts/pages/projects/learn_gitlab/index/index.js index 6da0a8fd212..ea9eec2595f 100644 --- a/app/assets/javascripts/pages/projects/learn_gitlab/index/index.js +++ b/app/assets/javascripts/pages/projects/learn_gitlab/index/index.js @@ -1,4 +1,5 @@ import Vue from 'vue'; +import initInviteMembersModal from '~/invite_members/init_invite_members_modal'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; import LearnGitlab from '../components/learn_gitlab.vue'; @@ -11,15 +12,17 @@ function initLearnGitlab() { const actions = convertObjectPropsToCamelCase(JSON.parse(el.dataset.actions)); const sections = convertObjectPropsToCamelCase(JSON.parse(el.dataset.sections)); + const { inviteMembersOpen } = el.dataset; return new Vue({ el, render(createElement) { return createElement(LearnGitlab, { - props: { actions, sections }, + props: { actions, sections, inviteMembersOpen }, }); }, }); } +initInviteMembersModal(); initLearnGitlab(); 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 dadf0988582..99094617b0a 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 @@ -28,7 +28,6 @@ export default function initMergeRequestShow() { const el = document.querySelector('.js-mr-status-box'); const apolloProvider = new VueApollo({ - assumeImmutableResults: true, defaultClient: createDefaultClient(), }); // eslint-disable-next-line no-new diff --git a/app/assets/javascripts/pages/projects/packages/packages/index/index.js b/app/assets/javascripts/pages/projects/packages/packages/index/index.js index 95522573b53..f9eecff4ac4 100644 --- a/app/assets/javascripts/pages/projects/packages/packages/index/index.js +++ b/app/assets/javascripts/pages/projects/packages/packages/index/index.js @@ -1,10 +1,3 @@ -(async function packageApp() { - if (window.gon.features.packageListApollo) { - const newPackageList = await import('~/packages_and_registries/package_registry/pages/list'); +import packageList from '~/packages_and_registries/package_registry/pages/list'; - newPackageList.default(); - } else { - const packageList = await import('~/packages/list/packages_list_app_bundle'); - packageList.default(); - } -})(); +packageList(); diff --git a/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue b/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue index 0e646e8c505..85443843684 100644 --- a/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue +++ b/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue @@ -72,18 +72,18 @@ export default { return [ { value: KEY_EVERY_DAY, - text: sprintf(s__(`Every day (at %{time})`), { time: this.formattedTime }), + text: sprintf(__(`Every day (at %{time})`), { time: this.formattedTime }), }, { value: KEY_EVERY_WEEK, - text: sprintf(s__('Every week (%{weekday} at %{time})'), { + text: sprintf(__('Every week (%{weekday} at %{time})'), { weekday: this.weekday, time: this.formattedTime, }), }, { value: KEY_EVERY_MONTH, - text: sprintf(s__('Every month (Day %{day} at %{time})'), { + text: sprintf(__('Every month (Day %{day} at %{time})'), { day: this.randomDay, time: this.formattedTime, }), diff --git a/app/assets/javascripts/pages/projects/project.js b/app/assets/javascripts/pages/projects/project.js index 9e93f709937..a26aeeb6db4 100644 --- a/app/assets/javascripts/pages/projects/project.js +++ b/app/assets/javascripts/pages/projects/project.js @@ -23,14 +23,14 @@ export default class Project { }); } - $('.hide-no-ssh-message').on('click', function (e) { + $('.js-hide-no-ssh-message').on('click', function (e) { Cookies.set('hide_no_ssh_message', 'false'); - $(this).parents('.no-ssh-key-message').remove(); + $(this).parents('.js-no-ssh-key-message').remove(); return e.preventDefault(); }); - $('.hide-no-password-message').on('click', function (e) { + $('.js-hide-no-password-message').on('click', function (e) { Cookies.set('hide_no_password_message', 'false'); - $(this).parents('.no-password-message').remove(); + $(this).parents('.js-no-password-message').remove(); return e.preventDefault(); }); $('.hide-auto-devops-implicitly-enabled-banner').on('click', function (e) { diff --git a/app/assets/javascripts/pages/projects/registry/repositories/index.js b/app/assets/javascripts/pages/projects/registry/repositories/index.js index 6fd32321568..44579ee1217 100644 --- a/app/assets/javascripts/pages/projects/registry/repositories/index.js +++ b/app/assets/javascripts/pages/projects/registry/repositories/index.js @@ -1,4 +1,4 @@ -import registryExplorer from '~/registry/explorer/index'; +import registryExplorer from '~/packages_and_registries/container_registry/explorer/index'; const explorer = registryExplorer(); diff --git a/app/assets/javascripts/pages/projects/shared/permissions/components/project_setting_row.vue b/app/assets/javascripts/pages/projects/shared/permissions/components/project_setting_row.vue index b7546a6bed7..cc92a8cd476 100644 --- a/app/assets/javascripts/pages/projects/shared/permissions/components/project_setting_row.vue +++ b/app/assets/javascripts/pages/projects/shared/permissions/components/project_setting_row.vue @@ -1,10 +1,5 @@ <script> -import { GlIcon } from '@gitlab/ui'; - export default { - components: { - GlIcon, - }, props: { label: { type: String, @@ -29,10 +24,14 @@ export default { <div class="project-feature-row"> <label v-if="label" class="label-bold"> {{ label }} - <a v-if="helpPath" :href="helpPath" target="_blank"> - <gl-icon name="question-o" /> - </a> </label> - <span v-if="helpText" class="form-text text-muted"> {{ helpText }} </span> <slot></slot> + <div> + <span v-if="helpText" class="text-muted"> {{ helpText }} </span> + <span v-if="helpPath" + ><a :href="helpPath" target="_blank">{{ __('Learn more') }}</a + >.</span + > + </div> + <slot></slot> </div> </template> diff --git a/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue b/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue index c53d367ed71..384ee1f5034 100644 --- a/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue +++ b/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue @@ -2,7 +2,7 @@ import { GlIcon, GlSprintf, GlLink, GlFormCheckbox, GlToggle } from '@gitlab/ui'; import settingsMixin from 'ee_else_ce/pages/projects/shared/permissions/mixins/settings_pannel_mixin'; -import { s__ } from '~/locale'; +import { __, s__ } from '~/locale'; import { visibilityOptions, visibilityLevelDescriptions, @@ -31,7 +31,7 @@ export default { operationsLabel: s__('ProjectSettings|Operations'), packagesLabel: s__('ProjectSettings|Packages'), pagesLabel: s__('ProjectSettings|Pages'), - ciCdLabel: s__('CI/CD'), + ciCdLabel: __('CI/CD'), repositoryLabel: s__('ProjectSettings|Repository'), requirementsLabel: s__('ProjectSettings|Requirements'), securityAndComplianceLabel: s__('ProjectSettings|Security & Compliance'), @@ -400,6 +400,9 @@ export default { ref="project-visibility-settings" :help-path="visibilityHelpPath" :label="s__('ProjectSettings|Project visibility')" + :help-text=" + s__('ProjectSettings|Manage who can see the project in the public access directory.') + " > <div class="project-feature-controls gl-display-flex gl-align-items-center gl-my-3 gl-mx-0"> <div class="select-wrapper gl-flex-grow-1"> diff --git a/app/assets/javascripts/pages/projects/show/index.js b/app/assets/javascripts/pages/projects/show/index.js index 78b3f2f1b30..31d69a731fe 100644 --- a/app/assets/javascripts/pages/projects/show/index.js +++ b/app/assets/javascripts/pages/projects/show/index.js @@ -7,7 +7,7 @@ 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'; import initVueNotificationsDropdown from '~/notifications'; -import { initUploadFileTrigger } from '~/projects/upload_file_experiment'; +import { initUploadFileTrigger } from '~/projects/upload_file'; import initReadMore from '~/read_more'; import UserCallout from '~/user_callout'; import Star from '../../../star'; diff --git a/app/assets/javascripts/pages/projects/work_items/index/index.js b/app/assets/javascripts/pages/projects/work_items/index.js index 11c257611f0..11c257611f0 100644 --- a/app/assets/javascripts/pages/projects/work_items/index/index.js +++ b/app/assets/javascripts/pages/projects/work_items/index.js |