From 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Mon, 20 Sep 2021 13:18:24 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-3-stable-ee --- .../vue_shared/components/awards_list.vue | 11 +- .../components/blob_viewers/simple_viewer.vue | 5 +- .../vue_shared/components/code_block.vue | 7 +- .../components/color_picker/color_picker.vue | 2 +- .../javascripts/vue_shared/components/commit.vue | 28 +-- .../content_viewer/viewers/markdown_viewer.vue | 7 +- .../vue_shared/components/diff_stats_dropdown.vue | 159 ++++++++++++ .../components/filtered_search_bar/constants.js | 17 +- .../filtered_search_bar/filtered_search_utils.js | 11 +- .../filtered_search_bar/tokens/milestone_token.vue | 12 +- .../vue_shared/components/header_ci_component.vue | 21 +- .../issuable/init_issuable_header_warning.js | 12 +- .../issuable/issuable_header_warnings.vue | 24 +- .../components/issue/related_issuable_item.vue | 7 +- .../vue_shared/components/markdown/field.vue | 22 +- .../components/markdown/suggestion_diff_header.vue | 3 +- .../vue_shared/components/markdown/toolbar.vue | 2 +- .../components/notes/noteable_warning.vue | 5 +- .../vue_shared/components/notes/system_note.vue | 7 +- .../paginated_table_with_search_and_tabs.vue | 15 +- .../project_selector/project_list_item.vue | 3 +- .../vue_shared/components/registry/title_area.vue | 21 +- .../runner_aws_deployments_modal.vue | 8 +- .../components/settings/settings_block.stories.js | 26 ++ .../components/settings/settings_block.vue | 84 ++++++- .../sidebar/labels_select_vue/dropdown_value.vue | 6 +- .../sidebar/labels_select_vue/label_item.vue | 2 +- .../labels_select_widget/dropdown_button.vue | 42 ---- .../labels_select_widget/dropdown_contents.vue | 132 ++++++---- .../dropdown_contents_create_view.vue | 29 +++ .../dropdown_contents_labels_view.vue | 145 +++-------- .../labels_select_widget/dropdown_title.vue | 40 --- .../labels_select_widget/dropdown_value.vue | 13 +- .../graphql/create_label.mutation.graphql | 2 - .../sidebar/labels_select_widget/label_item.vue | 83 +----- .../labels_select_widget/labels_select_root.vue | 278 +++++---------------- .../sidebar/labels_select_widget/store/actions.js | 12 - .../sidebar/labels_select_widget/store/getters.js | 52 ---- .../sidebar/labels_select_widget/store/index.js | 12 - .../labels_select_widget/store/mutation_types.js | 8 - .../labels_select_widget/store/mutations.js | 50 ---- .../sidebar/labels_select_widget/store/state.js | 28 --- .../sidebar/labels_select_widget/utils.js | 22 ++ .../storage_counter/usage_graph.stories.js | 38 +++ .../components/storage_counter/usage_graph.vue | 148 +++++++++++ .../vue_shared/components/timezone_dropdown.vue | 2 +- .../components/user_popover/user_popover.vue | 23 +- 47 files changed, 893 insertions(+), 793 deletions(-) create mode 100644 app/assets/javascripts/vue_shared/components/diff_stats_dropdown.vue create mode 100644 app/assets/javascripts/vue_shared/components/settings/settings_block.stories.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_button.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_title.vue delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/actions.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/getters.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/index.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutation_types.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutations.js delete mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/state.js create mode 100644 app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/utils.js create mode 100644 app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.vue (limited to 'app/assets/javascripts/vue_shared/components') diff --git a/app/assets/javascripts/vue_shared/components/awards_list.vue b/app/assets/javascripts/vue_shared/components/awards_list.vue index f4c73d12923..82a28d4cb5f 100644 --- a/app/assets/javascripts/vue_shared/components/awards_list.vue +++ b/app/assets/javascripts/vue_shared/components/awards_list.vue @@ -1,6 +1,5 @@ @@ -180,7 +181,11 @@ export default { @click="handleAward(awardList.name)" > {{ awardList.list.length }} diff --git a/app/assets/javascripts/vue_shared/components/blob_viewers/simple_viewer.vue b/app/assets/javascripts/vue_shared/components/blob_viewers/simple_viewer.vue index 0589b47edbd..84770dbac6f 100644 --- a/app/assets/javascripts/vue_shared/components/blob_viewers/simple_viewer.vue +++ b/app/assets/javascripts/vue_shared/components/blob_viewers/simple_viewer.vue @@ -1,5 +1,4 @@ diff --git a/app/assets/javascripts/vue_shared/components/color_picker/color_picker.vue b/app/assets/javascripts/vue_shared/components/color_picker/color_picker.vue index 0ff33e462b4..3c21b14894b 100644 --- a/app/assets/javascripts/vue_shared/components/color_picker/color_picker.vue +++ b/app/assets/javascripts/vue_shared/components/color_picker/color_picker.vue @@ -110,7 +110,7 @@ export default {
@@ -148,23 +151,14 @@ export default {
- {{ mergeRequestRef.iid }} - {{ commitRef.name }} + + + {{ mergeRequestRef.iid }} + + + {{ commitRef.name }} + + diff --git a/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue b/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue index 3790a509f26..7b88b36aa0f 100644 --- a/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue +++ b/app/assets/javascripts/vue_shared/components/content_viewer/viewers/markdown_viewer.vue @@ -1,5 +1,4 @@ + + diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js b/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js index 2e9634819a0..1df65d0a666 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/constants.js @@ -20,19 +20,26 @@ export const OPERATOR_IS_ONLY = [{ value: OPERATOR_IS, description: OPERATOR_IS_ export const OPERATOR_IS_NOT_ONLY = [{ value: OPERATOR_IS_NOT, description: OPERATOR_IS_NOT_TEXT }]; export const OPERATOR_IS_AND_IS_NOT = [...OPERATOR_IS_ONLY, ...OPERATOR_IS_NOT_ONLY]; -export const DEFAULT_LABEL_NONE = { value: FILTER_NONE, text: __(FILTER_NONE) }; -export const DEFAULT_LABEL_ANY = { value: FILTER_ANY, text: __(FILTER_ANY) }; +export const DEFAULT_LABEL_NONE = { value: FILTER_NONE, text: __('None'), title: __('None') }; +export const DEFAULT_LABEL_ANY = { value: FILTER_ANY, text: __('Any'), title: __('Any') }; export const DEFAULT_NONE_ANY = [DEFAULT_LABEL_NONE, DEFAULT_LABEL_ANY]; export const DEFAULT_ITERATIONS = DEFAULT_NONE_ANY.concat([ - { value: FILTER_CURRENT, text: __(FILTER_CURRENT) }, + { value: FILTER_CURRENT, text: __('Current') }, ]); export const DEFAULT_MILESTONES = DEFAULT_NONE_ANY.concat([ - { value: FILTER_UPCOMING, text: __(FILTER_UPCOMING) }, - { value: FILTER_STARTED, text: __(FILTER_STARTED) }, + { value: FILTER_UPCOMING, text: __('Upcoming'), title: __('Upcoming') }, + { value: FILTER_STARTED, text: __('Started'), title: __('Started') }, ]); +export const DEFAULT_MILESTONES_GRAPHQL = [ + { value: 'any', text: __('Any'), title: __('Any') }, + { value: 'none', text: __('None'), title: __('None') }, + { value: '#upcoming', text: __('Upcoming'), title: __('Upcoming') }, + { value: '#started', text: __('Started'), title: __('Started') }, +]; + export const SortDirection = { descending: 'descending', ascending: 'ascending', diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_utils.js b/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_utils.js index 6573f366b52..5cc96471aef 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_utils.js +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/filtered_search_utils.js @@ -177,13 +177,10 @@ function filteredSearchTermValue(value) { * @param {Object} options * @param {String} [options.filteredSearchTermKey] if set, a FILTERED_SEARCH_TERM filter is created to this parameter. `'search'` is suggested * @param {String[]} [options.filterNamesAllowList] if set, only this list of filters names is mapped - * @param {Boolean} [options.legacySpacesDecode] if set, plus symbols (+) are not encoded as spaces. `false` is suggested * @return {Object} filter object with filter names and their values */ -export function urlQueryToFilter(query = '', options = {}) { - const { filteredSearchTermKey, filterNamesAllowList, legacySpacesDecode = true } = options; - - const filters = queryToObject(query, { gatherArrays: true, legacySpacesDecode }); +export function urlQueryToFilter(query = '', { filteredSearchTermKey, filterNamesAllowList } = {}) { + const filters = queryToObject(query, { gatherArrays: true }); return Object.keys(filters).reduce((memo, key) => { const value = filters[key]; if (!value) { @@ -222,7 +219,7 @@ export function urlQueryToFilter(query = '', options = {}) { */ export function getRecentlyUsedSuggestions(recentSuggestionsStorageKey) { let recentlyUsedSuggestions = []; - if (AccessorUtilities.isLocalStorageAccessSafe()) { + if (AccessorUtilities.canUseLocalStorage()) { recentlyUsedSuggestions = JSON.parse(localStorage.getItem(recentSuggestionsStorageKey)) || []; } return recentlyUsedSuggestions; @@ -240,7 +237,7 @@ export function setTokenValueToRecentlyUsed(recentSuggestionsStorageKey, tokenVa recentlyUsedSuggestions.splice(0, 0, { ...tokenValue }); - if (AccessorUtilities.isLocalStorageAccessSafe()) { + if (AccessorUtilities.canUseLocalStorage()) { localStorage.setItem( recentSuggestionsStorageKey, JSON.stringify(uniqWith(recentlyUsedSuggestions, isEqual).slice(0, MAX_RECENT_TOKENS_SIZE)), diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue index 4b9ad6d8f91..523438f459c 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue @@ -39,8 +39,16 @@ export default { }, methods: { getActiveMilestone(milestones, data) { - return milestones.find( - (milestone) => milestone.title.toLowerCase() === stripQuotes(data).toLowerCase(), + /* We need to check default milestones against the value not the + * title because there is a discrepancy between the value graphql + * accepts and the title. + * https://gitlab.com/gitlab-org/gitlab/-/issues/337687#note_648058797 + */ + + return ( + milestones.find( + (milestone) => milestone.title.toLowerCase() === stripQuotes(data).toLowerCase(), + ) || this.defaultMilestones.find(({ value }) => value === data) ); }, fetchMilestones(searchTerm) { diff --git a/app/assets/javascripts/vue_shared/components/header_ci_component.vue b/app/assets/javascripts/vue_shared/components/header_ci_component.vue index f169921d8a6..41613bb3307 100644 --- a/app/assets/javascripts/vue_shared/components/header_ci_component.vue +++ b/app/assets/javascripts/vue_shared/components/header_ci_component.vue @@ -1,6 +1,5 @@ @@ -105,7 +114,7 @@ export default {
- {{ itemName }} #{{ itemId }} + {{ item }} @@ -130,8 +139,8 @@ export default {
diff --git a/app/assets/javascripts/vue_shared/components/issuable/init_issuable_header_warning.js b/app/assets/javascripts/vue_shared/components/issuable/init_issuable_header_warning.js index 18bfcc268dc..28aa93d6680 100644 --- a/app/assets/javascripts/vue_shared/components/issuable/init_issuable_header_warning.js +++ b/app/assets/javascripts/vue_shared/components/issuable/init_issuable_header_warning.js @@ -1,10 +1,20 @@ import Vue from 'vue'; +import { parseBoolean } from '~/lib/utils/common_utils'; import IssuableHeaderWarnings from './issuable_header_warnings.vue'; export default function issuableHeaderWarnings(store) { + const el = document.getElementById('js-issuable-header-warnings'); + + if (!el) { + return false; + } + + const { hidden } = el.dataset; + return new Vue({ - el: document.getElementById('js-issuable-header-warnings'), + el, store, + provide: { hidden: parseBoolean(hidden) }, render(createElement) { return createElement(IssuableHeaderWarnings); }, diff --git a/app/assets/javascripts/vue_shared/components/issuable/issuable_header_warnings.vue b/app/assets/javascripts/vue_shared/components/issuable/issuable_header_warnings.vue index 56adbe8c606..82223ab9ef4 100644 --- a/app/assets/javascripts/vue_shared/components/issuable/issuable_header_warnings.vue +++ b/app/assets/javascripts/vue_shared/components/issuable/issuable_header_warnings.vue @@ -1,11 +1,16 @@ @@ -106,7 +107,7 @@ export default { :class="{ target: isTargetNote, 'pr-0': shouldShowDescriptionVersion }" class="note system-note note-wrapper" > -
+
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 8a67754993d..6867b5a75e3 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 @@ -1,5 +1,12 @@ diff --git a/app/assets/javascripts/vue_shared/components/runner_aws_deployments/runner_aws_deployments_modal.vue b/app/assets/javascripts/vue_shared/components/runner_aws_deployments/runner_aws_deployments_modal.vue index f21dea468cb..57cc25caa25 100644 --- a/app/assets/javascripts/vue_shared/components/runner_aws_deployments/runner_aws_deployments_modal.vue +++ b/app/assets/javascripts/vue_shared/components/runner_aws_deployments/runner_aws_deployments_modal.vue @@ -1,5 +1,6 @@ diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_title.vue b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_title.vue deleted file mode 100644 index 46edfa1c42a..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_title.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue index 58a940bca3b..71d3d87cce5 100644 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue +++ b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/dropdown_value.vue @@ -1,5 +1,6 @@ + + diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue index 0499dfe468f..3c834770563 100644 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue +++ b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/labels_select_root.vue @@ -1,57 +1,40 @@ @@ -289,58 +138,63 @@ export default {
- diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/actions.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/actions.js deleted file mode 100644 index b3d4a204a81..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/actions.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as types from './mutation_types'; - -export const setInitialState = ({ commit }, props) => commit(types.SET_INITIAL_STATE, props); - -export const toggleDropdownButton = ({ commit }) => commit(types.TOGGLE_DROPDOWN_BUTTON); -export const toggleDropdownContents = ({ commit }) => commit(types.TOGGLE_DROPDOWN_CONTENTS); - -export const toggleDropdownContentsCreateView = ({ commit }) => - commit(types.TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW); - -export const updateSelectedLabels = ({ commit }, labels) => - commit(types.UPDATE_SELECTED_LABELS, { labels }); diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/getters.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/getters.js deleted file mode 100644 index d14f96720b7..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/getters.js +++ /dev/null @@ -1,52 +0,0 @@ -import { __, s__, sprintf } from '~/locale'; -import { DropdownVariant } from '../constants'; - -/** - * Returns string representing current labels - * selection on dropdown button. - * - * @param {object} state - */ -export const dropdownButtonText = (state, getters) => { - const selectedLabels = getters.isDropdownVariantSidebar - ? state.labels.filter((label) => label.set) - : state.selectedLabels; - - if (!selectedLabels.length) { - return state.dropdownButtonText || __('Label'); - } else if (selectedLabels.length > 1) { - return sprintf(s__('LabelSelect|%{firstLabelName} +%{remainingLabelCount} more'), { - firstLabelName: selectedLabels[0].title, - remainingLabelCount: selectedLabels.length - 1, - }); - } - return selectedLabels[0].title; -}; - -/** - * Returns array containing only label IDs from - * selectedLabels array. - * @param {object} state - */ -export const selectedLabelsList = (state) => state.selectedLabels.map((label) => label.id); - -/** - * Returns boolean representing whether dropdown variant - * is `sidebar` - * @param {object} state - */ -export const isDropdownVariantSidebar = (state) => state.variant === DropdownVariant.Sidebar; - -/** - * Returns boolean representing whether dropdown variant - * is `standalone` - * @param {object} state - */ -export const isDropdownVariantStandalone = (state) => state.variant === DropdownVariant.Standalone; - -/** - * Returns boolean representing whether dropdown variant - * is `embedded` - * @param {object} state - */ -export const isDropdownVariantEmbedded = (state) => state.variant === DropdownVariant.Embedded; diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/index.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/index.js deleted file mode 100644 index 5f61cb732c8..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as actions from './actions'; -import * as getters from './getters'; -import mutations from './mutations'; -import state from './state'; - -export default () => ({ - namespaced: true, - state: state(), - actions, - getters, - mutations, -}); diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutation_types.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutation_types.js deleted file mode 100644 index bd71c3b85f1..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutation_types.js +++ /dev/null @@ -1,8 +0,0 @@ -export const SET_INITIAL_STATE = 'SET_INITIAL_STATE'; - -export const TOGGLE_DROPDOWN_BUTTON = 'TOGGLE_DROPDOWN_VISIBILITY'; -export const TOGGLE_DROPDOWN_CONTENTS = 'TOGGLE_DROPDOWN_CONTENTS'; - -export const UPDATE_SELECTED_LABELS = 'UPDATE_SELECTED_LABELS'; - -export const TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW = 'TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW'; diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutations.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutations.js deleted file mode 100644 index 45ec4d7ae04..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/mutations.js +++ /dev/null @@ -1,50 +0,0 @@ -import { isScopedLabel, scopedLabelKey } from '~/lib/utils/common_utils'; -import { DropdownVariant } from '../constants'; -import * as types from './mutation_types'; - -export default { - [types.SET_INITIAL_STATE](state, props) { - Object.assign(state, { ...props }); - }, - - [types.TOGGLE_DROPDOWN_BUTTON](state) { - state.showDropdownButton = !state.showDropdownButton; - }, - - [types.TOGGLE_DROPDOWN_CONTENTS](state) { - if (state.variant === DropdownVariant.Sidebar) { - state.showDropdownButton = !state.showDropdownButton; - } - state.showDropdownContents = !state.showDropdownContents; - // Ensure that Create View is hidden by default - // when dropdown contents are revealed. - if (state.showDropdownContents) { - state.showDropdownContentsCreateView = false; - } - }, - - [types.TOGGLE_DROPDOWN_CONTENTS_CREATE_VIEW](state) { - state.showDropdownContentsCreateView = !state.showDropdownContentsCreateView; - }, - [types.UPDATE_SELECTED_LABELS](state, { labels }) { - // Find the label to update from all the labels - // and change `set` prop value to represent their current state. - const labelId = labels.pop()?.id; - const candidateLabel = state.labels.find((label) => labelId === label.id); - if (candidateLabel) { - candidateLabel.touched = true; - candidateLabel.set = !candidateLabel.set; - } - - if (isScopedLabel(candidateLabel)) { - const scopedBase = scopedLabelKey(candidateLabel); - const currentActiveScopedLabel = state.labels.find( - ({ title }) => title.indexOf(scopedBase) === 0 && title !== candidateLabel.title, - ); - - if (currentActiveScopedLabel) { - currentActiveScopedLabel.set = false; - } - } - }, -}; diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/state.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/state.js deleted file mode 100644 index 220bab05ed2..00000000000 --- a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/store/state.js +++ /dev/null @@ -1,28 +0,0 @@ -export default () => ({ - // Initial Data - labels: [], - selectedLabels: [], - labelsListTitle: '', - footerCreateLabelTitle: '', - footerManageLabelTitle: '', - dropdownButtonText: '', - - // Paths - namespace: '', - labelsFetchPath: '', - labelsFilterBasePath: '', - - // UI Flags - variant: '', - allowLabelRemove: false, - allowLabelCreate: false, - allowLabelEdit: false, - allowScopedLabels: false, - allowMultiselect: false, - showDropdownButton: false, - showDropdownContents: false, - showDropdownContentsCreateView: false, - labelsFetchInProgress: false, - labelCreateInProgress: false, - selectedLabelsUpdated: false, -}); diff --git a/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/utils.js b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/utils.js new file mode 100644 index 00000000000..b5cd946a189 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/sidebar/labels_select_widget/utils.js @@ -0,0 +1,22 @@ +import { DropdownVariant } from './constants'; + +/** + * Returns boolean representing whether dropdown variant + * is `sidebar` + * @param {string} variant + */ +export const isDropdownVariantSidebar = (variant) => variant === DropdownVariant.Sidebar; + +/** + * Returns boolean representing whether dropdown variant + * is `standalone` + * @param {string} variant + */ +export const isDropdownVariantStandalone = (variant) => variant === DropdownVariant.Standalone; + +/** + * Returns boolean representing whether dropdown variant + * is `embedded` + * @param {string} variant + */ +export const isDropdownVariantEmbedded = (variant) => variant === DropdownVariant.Embedded; diff --git a/app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.stories.js b/app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.stories.js new file mode 100644 index 00000000000..00aa5519ec6 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.stories.js @@ -0,0 +1,38 @@ +/* eslint-disable @gitlab/require-i18n-strings */ +import '@gitlab/ui/dist/utility_classes.css'; +import UsageGraph from './usage_graph.vue'; + +export default { + component: UsageGraph, + title: 'vue_shared/components/storage_counter/usage_graph', +}; + +const Template = (args, { argTypes }) => ({ + components: { UsageGraph }, + props: Object.keys(argTypes), + template: '', +}); + +export const Default = Template.bind({}); +Default.argTypes = { + rootStorageStatistics: { + description: 'The statistics object with all its fields', + type: { name: 'object', required: true }, + defaultValue: { + buildArtifactsSize: 400000, + pipelineArtifactsSize: 38000, + lfsObjectsSize: 4800000, + packagesSize: 3800000, + repositorySize: 39000000, + snippetsSize: 2000112, + storageSize: 39930000, + uploadsSize: 7000, + wikiSize: 300000, + }, + }, + limit: { + description: + 'When a limit is set, users will see how much of their storage usage (limit) is used. In case the limit is 0 or the current usage exceeds the limit, it just renders the distribution', + defaultValue: 0, + }, +}; diff --git a/app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.vue b/app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.vue new file mode 100644 index 00000000000..c33d065ff4b --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/storage_counter/usage_graph.vue @@ -0,0 +1,148 @@ + + diff --git a/app/assets/javascripts/vue_shared/components/timezone_dropdown.vue b/app/assets/javascripts/vue_shared/components/timezone_dropdown.vue index b9ee74d6a03..42334d80eec 100644 --- a/app/assets/javascripts/vue_shared/components/timezone_dropdown.vue +++ b/app/assets/javascripts/vue_shared/components/timezone_dropdown.vue @@ -66,7 +66,7 @@ export default { }; -- cgit v1.2.3