diff --git a/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue b/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue index fb6bc38848c..3aa1289261d 100644 --- a/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue +++ b/app/assets/javascripts/admin/abuse_report/components/abuse_report_app.vue @@ -1,7 +1,9 @@ + diff --git a/app/assets/javascripts/admin/abuse_report/components/report_details.vue b/app/assets/javascripts/admin/abuse_report/components/report_details.vue new file mode 100644 index 00000000000..10e1dca7f91 --- /dev/null +++ b/app/assets/javascripts/admin/abuse_report/components/report_details.vue @@ -0,0 +1,49 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_report/index.js b/app/assets/javascripts/admin/abuse_report/index.js index 8ff3e690127..5c3a20029f4 100644 --- a/app/assets/javascripts/admin/abuse_report/index.js +++ b/app/assets/javascripts/admin/abuse_report/index.js @@ -1,7 +1,15 @@ import Vue from 'vue'; +import VueApollo from 'vue-apollo'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; +import { defaultClient } from '~/graphql_shared/issuable_client'; import AbuseReportApp from './components/abuse_report_app.vue'; +Vue.use(VueApollo); + +const apolloProvider = new VueApollo({ + defaultClient, +}); + export const initAbuseReportApp = () => { const el = document.querySelector('#js-abuse-reports-detail-view'); @@ -16,7 +24,12 @@ export const initAbuseReportApp = () => { return new Vue({ el, + apolloProvider, name: 'AbuseReportAppRoot', + provide: { + allowScopedLabels: false, + updatePath: abuseReport.report.updatePath, + }, render: (createElement) => createElement(AbuseReportApp, { props: { diff --git a/app/assets/javascripts/ci/runner/components/runner_filtered_search_bar.vue b/app/assets/javascripts/ci/runner/components/runner_filtered_search_bar.vue index 3634dcf1c93..81b2a17631e 100644 --- a/app/assets/javascripts/ci/runner/components/runner_filtered_search_bar.vue +++ b/app/assets/javascripts/ci/runner/components/runner_filtered_search_bar.vue @@ -92,7 +92,6 @@ export default { :initial-filter-value="initialFilterValue" :tokens="validTokens" :initial-sort-by="initialSortBy" - :search-input-placeholder="__('Search or filter results...')" :search-text-option-label="s__('Runners|Search description...')" terms-as-tokens data-testid="runners-filtered-search" diff --git a/app/assets/javascripts/filtered_search/filtered_search_manager.js b/app/assets/javascripts/filtered_search/filtered_search_manager.js index 684375177bb..8ccf7ba92a5 100644 --- a/app/assets/javascripts/filtered_search/filtered_search_manager.js +++ b/app/assets/javascripts/filtered_search/filtered_search_manager.js @@ -42,7 +42,7 @@ export default class FilteredSearchManager { useDefaultState = false, filteredSearchTokenKeys = IssuableFilteredSearchTokenKeys, stateFiltersSelector = '.issues-state-filters', - placeholder = __('Search or filter results...'), + placeholder = __('Search or filter results…'), anchor = null, }) { this.isGroup = isGroup; diff --git a/app/assets/javascripts/issues/dashboard/components/issues_dashboard_app.vue b/app/assets/javascripts/issues/dashboard/components/issues_dashboard_app.vue index 9febebf7e55..a756229e6ca 100644 --- a/app/assets/javascripts/issues/dashboard/components/issues_dashboard_app.vue +++ b/app/assets/javascripts/issues/dashboard/components/issues_dashboard_app.vue @@ -495,7 +495,6 @@ export default { :issuables-loading="isLoading" namespace="dashboard" recent-searches-storage-key="issues" - :search-input-placeholder="$options.i18n.searchPlaceholder" :search-tokens="searchTokens" :show-pagination-controls="showPaginationControls" show-work-item-type-icon diff --git a/app/assets/javascripts/issues/list/components/issues_list_app.vue b/app/assets/javascripts/issues/list/components/issues_list_app.vue index f396a8d1928..1a8151901d1 100644 --- a/app/assets/javascripts/issues/list/components/issues_list_app.vue +++ b/app/assets/javascripts/issues/list/components/issues_list_app.vue @@ -966,7 +966,6 @@ export default { v-if="hasAnyIssues" :namespace="fullPath" recent-searches-storage-key="issues" - :search-input-placeholder="$options.i18n.searchPlaceholder" :search-tokens="searchTokens" :has-scoped-labels-feature="hasScopedLabelsFeature" :initial-filter-value="filterTokens" diff --git a/app/assets/javascripts/issues/list/constants.js b/app/assets/javascripts/issues/list/constants.js index 85e300b6474..682c7629962 100644 --- a/app/assets/javascripts/issues/list/constants.js +++ b/app/assets/javascripts/issues/list/constants.js @@ -121,7 +121,6 @@ export const i18n = { reorderError: __('An error occurred while reordering issues.'), deleteError: __('An error occurred while deleting an issuable.'), rssLabel: __('Subscribe to RSS feed'), - searchPlaceholder: __('Search or filter results...'), upvotes: __('Upvotes'), titles: __('Titles'), descriptions: __('Descriptions'), diff --git a/app/assets/javascripts/service_desk/components/service_desk_list_app.vue b/app/assets/javascripts/service_desk/components/service_desk_list_app.vue index a831fb12d5e..51e632d36a9 100644 --- a/app/assets/javascripts/service_desk/components/service_desk_list_app.vue +++ b/app/assets/javascripts/service_desk/components/service_desk_list_app.vue @@ -50,7 +50,6 @@ import reorderServiceDeskIssuesMutation from '../queries/reorder_service_desk_is import { errorFetchingCounts, errorFetchingIssues, - searchPlaceholder, issueRepositioningMessage, reorderError, SERVICE_DESK_BOT_USERNAME, @@ -77,7 +76,6 @@ export default { i18n: { errorFetchingCounts, errorFetchingIssues, - searchPlaceholder, issueRepositioningMessage, reorderError, }, @@ -559,7 +557,6 @@ export default { namespace="service-desk" recent-searches-storage-key="service-desk-issues" :error="issuesError" - :search-input-placeholder="$options.i18n.searchPlaceholder" :search-tokens="searchTokens" :issuables-loading="isLoading" :initial-filter-value="filterTokens" diff --git a/app/assets/javascripts/service_desk/constants.js b/app/assets/javascripts/service_desk/constants.js index dbd2f3edf5d..e498a4f39a1 100644 --- a/app/assets/javascripts/service_desk/constants.js +++ b/app/assets/javascripts/service_desk/constants.js @@ -235,7 +235,6 @@ export const noSearchResultsDescription = __( 'To widen your search, change or remove filters above', ); export const noSearchResultsTitle = __('Sorry, your filter produced no results'); -export const searchPlaceholder = __('Search or filter results...'); export const issueRepositioningMessage = __( 'Issues are being rebalanced at the moment, so manual reordering is disabled.', ); diff --git a/app/assets/javascripts/settings_panels.js b/app/assets/javascripts/settings_panels.js index fe5b21713a2..da948cc85b6 100644 --- a/app/assets/javascripts/settings_panels.js +++ b/app/assets/javascripts/settings_panels.js @@ -1,4 +1,5 @@ import $ from 'jquery'; +import { InternalEvents } from '~/tracking'; import { __ } from './locale'; /** @@ -47,6 +48,15 @@ export function toggleSection($section) { } } +export function initTrackProductAnalyticsExpanded() { + const $analyticsSection = $('#js-product-analytics-settings'); + $analyticsSection.on('click.toggleSection', '.js-settings-toggle', () => { + if (isExpanded($analyticsSection)) { + InternalEvents.track_event('user_viewed_cluster_configuration'); + } + }); +} + export default function initSettingsPanels() { $('.settings').each((i, elm) => { const $section = $(elm); @@ -64,4 +74,6 @@ export default function initSettingsPanels() { } } }); + + initTrackProductAnalyticsExpanded(); } diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue index f31d4d53a23..346384e3023 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue @@ -73,7 +73,8 @@ export default { }, searchInputPlaceholder: { type: String, - required: true, + required: false, + default: __('Search or filter results…'), }, suggestionsListClass: { type: String, diff --git a/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/constants.js b/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/constants.js index df1188d365b..77fd197978f 100644 --- a/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/constants.js +++ b/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/constants.js @@ -1,5 +1,3 @@ -import { __ } from '~/locale'; - export const tdClass = 'table-col gl-display-flex d-md-table-cell gl-align-items-center gl-white-space-nowrap'; export const thClass = 'gl-hover-bg-blue-50'; @@ -15,7 +13,3 @@ export const initialPaginationState = { firstPageSize: defaultPageSize, lastPageSize: null, }; - -export const defaultI18n = { - searchPlaceholder: __('Search or filter results…'), -}; diff --git a/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/paginated_table_with_search_and_tabs.vue b/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/paginated_table_with_search_and_tabs.vue index ab9e6e092d9..0c3d175684c 100644 --- a/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/paginated_table_with_search_and_tabs.vue +++ b/app/assets/javascripts/vue_shared/components/paginated_table_with_search_and_tabs/paginated_table_with_search_and_tabs.vue @@ -14,11 +14,10 @@ import { } from '~/vue_shared/components/filtered_search_bar/constants'; import FilteredSearchBar from '~/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue'; import UserToken from '~/vue_shared/components/filtered_search_bar/tokens/user_token.vue'; -import { initialPaginationState, defaultI18n, defaultPageSize } from './constants'; +import { initialPaginationState, defaultPageSize } from './constants'; import { isAny } from './utils'; export default { - defaultI18n, components: { GlAlert, GlBadge, @@ -300,7 +299,6 @@ export default {
-
- - +
+
+ + +