Commit 6b62906c authored by orozot's avatar orozot

Extract container registry page common component

Issue: https://gitlab.com/gitlab-jh/gitlab/-/issues/524
Changelog: changed
parent 9272fb9c
...@@ -6,7 +6,8 @@ import { joinPaths } from '~/lib/utils/url_utility'; ...@@ -6,7 +6,8 @@ import { joinPaths } from '~/lib/utils/url_utility';
import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue'; import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
import PersistedSearch from '~/packages_and_registries/shared/components/persisted_search.vue'; import PersistedSearch from '~/packages_and_registries/shared/components/persisted_search.vue';
import { FILTERED_SEARCH_TERM } from '~/packages_and_registries/shared/constants'; import { FILTERED_SEARCH_TERM } from '~/packages_and_registries/shared/constants/index';
import TagsLoader from '~/packages_and_registries/shared/components/tags_loader.vue';
import { import {
REMOVE_TAGS_BUTTON_TITLE, REMOVE_TAGS_BUTTON_TITLE,
TAGS_LIST_TITLE, TAGS_LIST_TITLE,
...@@ -20,7 +21,6 @@ import { ...@@ -20,7 +21,6 @@ import {
} from '../../constants/index'; } from '../../constants/index';
import getContainerRepositoryTagsQuery from '../../graphql/queries/get_container_repository_tags.query.graphql'; import getContainerRepositoryTagsQuery from '../../graphql/queries/get_container_repository_tags.query.graphql';
import TagsListRow from './tags_list_row.vue'; import TagsListRow from './tags_list_row.vue';
import TagsLoader from './tags_loader.vue';
export default { export default {
name: 'TagsList', name: 'TagsList',
......
...@@ -5,6 +5,7 @@ import createFlash from '~/flash'; ...@@ -5,6 +5,7 @@ import createFlash from '~/flash';
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import { joinPaths } from '~/lib/utils/url_utility'; import { joinPaths } from '~/lib/utils/url_utility';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import TagsLoader from '~/packages_and_registries/shared/components/tags_loader.vue';
import DeleteImage from '../components/delete_image.vue'; import DeleteImage from '../components/delete_image.vue';
import DeleteAlert from '../components/details_page/delete_alert.vue'; import DeleteAlert from '../components/details_page/delete_alert.vue';
import DeleteModal from '../components/details_page/delete_modal.vue'; import DeleteModal from '../components/details_page/delete_modal.vue';
...@@ -12,7 +13,6 @@ import DetailsHeader from '../components/details_page/details_header.vue'; ...@@ -12,7 +13,6 @@ import DetailsHeader from '../components/details_page/details_header.vue';
import PartialCleanupAlert from '../components/details_page/partial_cleanup_alert.vue'; import PartialCleanupAlert from '../components/details_page/partial_cleanup_alert.vue';
import StatusAlert from '../components/details_page/status_alert.vue'; import StatusAlert from '../components/details_page/status_alert.vue';
import TagsList from '../components/details_page/tags_list.vue'; import TagsList from '../components/details_page/tags_list.vue';
import TagsLoader from '../components/details_page/tags_loader.vue';
import { import {
ALERT_SUCCESS_TAG, ALERT_SUCCESS_TAG,
......
...@@ -12,7 +12,7 @@ import { get } from 'lodash'; ...@@ -12,7 +12,7 @@ import { get } from 'lodash';
import getContainerRepositoriesQuery from 'shared_queries/container_registry/get_container_repositories.query.graphql'; import getContainerRepositoriesQuery from 'shared_queries/container_registry/get_container_repositories.query.graphql';
import createFlash from '~/flash'; import createFlash from '~/flash';
import CleanupPolicyEnabledAlert from '~/packages_and_registries/shared/components/cleanup_policy_enabled_alert.vue'; import CleanupPolicyEnabledAlert from '~/packages_and_registries/shared/components/cleanup_policy_enabled_alert.vue';
import { FILTERED_SEARCH_TERM } from '~/packages_and_registries/shared/constants'; import { FILTERED_SEARCH_TERM } from '~/packages_and_registries/shared/constants/index';
import { extractFilterAndSorting } from '~/packages_and_registries/shared/utils'; import { extractFilterAndSorting } from '~/packages_and_registries/shared/utils';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import RegistrySearch from '~/vue_shared/components/registry/registry_search.vue'; import RegistrySearch from '~/vue_shared/components/registry/registry_search.vue';
...@@ -52,7 +52,7 @@ export default { ...@@ -52,7 +52,7 @@ export default {
), ),
CliCommands: () => CliCommands: () =>
import( import(
/* webpackChunkName: 'container_registry_components' */ '../components/list_page/cli_commands.vue' /* webpackChunkName: 'container_registry_components' */ '~/packages_and_registries/shared/components/cli_commands.vue'
), ),
GlModal, GlModal,
GlSprintf, GlSprintf,
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
GlTooltip: GlTooltipDirective, GlTooltip: GlTooltipDirective,
}, },
mixins: [Tracking.mixin()], mixins: [Tracking.mixin()],
inject: ['config'], inject: ['config', 'dockerBuildCommand', 'dockerPushCommand', 'dockerLoginCommand'],
loader: { loader: {
repeat: 10, repeat: 10,
width: 1000, width: 1000,
...@@ -321,7 +321,12 @@ export default { ...@@ -321,7 +321,12 @@ export default {
:hide-expiration-policy-data="config.isGroupPage" :hide-expiration-policy-data="config.isGroupPage"
> >
<template #commands> <template #commands>
<cli-commands v-if="showCommands" /> <cli-commands
v-if="showCommands"
:docker-build-command="dockerBuildCommand"
:docker-push-command="dockerPushCommand"
:docker-login-command="dockerLoginCommand"
/>
</template> </template>
</registry-header> </registry-header>
......
...@@ -21,7 +21,7 @@ import PackagesListLoader from '~/packages_and_registries/shared/components/pack ...@@ -21,7 +21,7 @@ import PackagesListLoader from '~/packages_and_registries/shared/components/pack
import { import {
TRACKING_ACTIONS, TRACKING_ACTIONS,
SHOW_DELETE_SUCCESS_ALERT, SHOW_DELETE_SUCCESS_ALERT,
} from '~/packages_and_registries/shared/constants'; } from '~/packages_and_registries/shared/constants/index';
import { TRACK_CATEGORY } from '~/packages_and_registries/infrastructure_registry/shared/constants'; import { TRACK_CATEGORY } from '~/packages_and_registries/infrastructure_registry/shared/constants';
import PackageFiles from './package_files.vue'; import PackageFiles from './package_files.vue';
import PackageHistory from './package_history.vue'; import PackageHistory from './package_history.vue';
......
...@@ -3,7 +3,7 @@ import { GlLink, GlSprintf } from '@gitlab/ui'; ...@@ -3,7 +3,7 @@ import { GlLink, GlSprintf } from '@gitlab/ui';
import { first } from 'lodash'; import { first } from 'lodash';
import { truncateSha } from '~/lib/utils/text_utility'; import { truncateSha } from '~/lib/utils/text_utility';
import { s__, n__ } from '~/locale'; import { s__, n__ } from '~/locale';
import { HISTORY_PIPELINES_LIMIT } from '~/packages_and_registries/shared/constants'; import { HISTORY_PIPELINES_LIMIT } from '~/packages_and_registries/shared/constants/index';
import HistoryItem from '~/vue_shared/components/registry/history_item.vue'; import HistoryItem from '~/vue_shared/components/registry/history_item.vue';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
......
...@@ -4,7 +4,7 @@ import { ...@@ -4,7 +4,7 @@ import {
DELETE_PACKAGE_ERROR_MESSAGE, DELETE_PACKAGE_ERROR_MESSAGE,
DELETE_PACKAGE_FILE_ERROR_MESSAGE, DELETE_PACKAGE_FILE_ERROR_MESSAGE,
DELETE_PACKAGE_FILE_SUCCESS_MESSAGE, DELETE_PACKAGE_FILE_SUCCESS_MESSAGE,
} from '~/packages_and_registries/shared/constants'; } from '~/packages_and_registries/shared/constants/index';
import { FETCH_PACKAGE_VERSIONS_ERROR } from '../constants'; import { FETCH_PACKAGE_VERSIONS_ERROR } from '../constants';
import * as types from './mutation_types'; import * as types from './mutation_types';
......
...@@ -5,7 +5,7 @@ import { s__ } from '~/locale'; ...@@ -5,7 +5,7 @@ import { s__ } from '~/locale';
import Tracking from '~/tracking'; import Tracking from '~/tracking';
import PackagesListRow from '~/packages_and_registries/infrastructure_registry/shared/package_list_row.vue'; import PackagesListRow from '~/packages_and_registries/infrastructure_registry/shared/package_list_row.vue';
import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue'; import PackagesListLoader from '~/packages_and_registries/shared/components/packages_list_loader.vue';
import { TRACKING_ACTIONS } from '~/packages_and_registries/shared/constants'; import { TRACKING_ACTIONS } from '~/packages_and_registries/shared/constants/index';
import { TRACK_CATEGORY } from '~/packages_and_registries/infrastructure_registry/shared/constants'; import { TRACK_CATEGORY } from '~/packages_and_registries/infrastructure_registry/shared/constants';
export default { export default {
......
...@@ -7,7 +7,7 @@ import { s__ } from '~/locale'; ...@@ -7,7 +7,7 @@ import { s__ } from '~/locale';
import { import {
SHOW_DELETE_SUCCESS_ALERT, SHOW_DELETE_SUCCESS_ALERT,
FILTERED_SEARCH_TERM, FILTERED_SEARCH_TERM,
} from '~/packages_and_registries/shared/constants'; } from '~/packages_and_registries/shared/constants/index';
import { getQueryParams, extractFilterAndSorting } from '~/packages_and_registries/shared/utils'; import { getQueryParams, extractFilterAndSorting } from '~/packages_and_registries/shared/utils';
import InfrastructureTitle from '~/packages_and_registries/infrastructure_registry/list/components/infrastructure_title.vue'; import InfrastructureTitle from '~/packages_and_registries/infrastructure_registry/list/components/infrastructure_title.vue';
......
import Api from '~/api'; import Api from '~/api';
import createFlash from '~/flash'; import createFlash from '~/flash';
import axios from '~/lib/utils/axios_utils'; import axios from '~/lib/utils/axios_utils';
import { DELETE_PACKAGE_ERROR_MESSAGE } from '~/packages_and_registries/shared/constants'; import { DELETE_PACKAGE_ERROR_MESSAGE } from '~/packages_and_registries/shared/constants/index';
import { import {
FETCH_PACKAGES_LIST_ERROR_MESSAGE, FETCH_PACKAGES_LIST_ERROR_MESSAGE,
DELETE_PACKAGE_SUCCESS_MESSAGE, DELETE_PACKAGE_SUCCESS_MESSAGE,
......
...@@ -6,7 +6,7 @@ import timeagoMixin from '~/vue_shared/mixins/timeago'; ...@@ -6,7 +6,7 @@ import timeagoMixin from '~/vue_shared/mixins/timeago';
import { import {
PACKAGE_ERROR_STATUS, PACKAGE_ERROR_STATUS,
PACKAGE_DEFAULT_STATUS, PACKAGE_DEFAULT_STATUS,
} from '~/packages_and_registries/shared/constants'; } from '~/packages_and_registries/shared/constants/index';
import PackagePath from '~/packages_and_registries/shared/components/package_path.vue'; import PackagePath from '~/packages_and_registries/shared/components/package_path.vue';
import PackageTags from '~/packages_and_registries/shared/components/package_tags.vue'; import PackageTags from '~/packages_and_registries/shared/components/package_tags.vue';
import PublishMethod from '~/packages_and_registries/shared/components/publish_method.vue'; import PublishMethod from '~/packages_and_registries/shared/components/publish_method.vue';
......
...@@ -4,7 +4,7 @@ import { first } from 'lodash'; ...@@ -4,7 +4,7 @@ import { first } from 'lodash';
import { getIdFromGraphQLId } from '~/graphql_shared/utils'; import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { truncateSha } from '~/lib/utils/text_utility'; import { truncateSha } from '~/lib/utils/text_utility';
import { s__, n__ } from '~/locale'; import { s__, n__ } from '~/locale';
import { HISTORY_PIPELINES_LIMIT } from '~/packages_and_registries/shared/constants'; import { HISTORY_PIPELINES_LIMIT } from '~/packages_and_registries/shared/constants/index';
import HistoryItem from '~/vue_shared/components/registry/history_item.vue'; import HistoryItem from '~/vue_shared/components/registry/history_item.vue';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
......
...@@ -8,7 +8,7 @@ import { getQueryParams, extractFilterAndSorting } from '~/packages_and_registri ...@@ -8,7 +8,7 @@ import { getQueryParams, extractFilterAndSorting } from '~/packages_and_registri
import { import {
FILTERED_SEARCH_TERM, FILTERED_SEARCH_TERM,
FILTERED_SEARCH_TYPE, FILTERED_SEARCH_TYPE,
} from '~/packages_and_registries/shared/constants'; } from '~/packages_and_registries/shared/constants/index';
import PackageTypeToken from './tokens/package_type_token.vue'; import PackageTypeToken from './tokens/package_type_token.vue';
export default { export default {
......
...@@ -9,7 +9,7 @@ export { ...@@ -9,7 +9,7 @@ export {
DELETE_PACKAGE_FILE_TRACKING_ACTION, DELETE_PACKAGE_FILE_TRACKING_ACTION,
REQUEST_DELETE_PACKAGE_FILE_TRACKING_ACTION, REQUEST_DELETE_PACKAGE_FILE_TRACKING_ACTION,
CANCEL_DELETE_PACKAGE_FILE_TRACKING_ACTION, CANCEL_DELETE_PACKAGE_FILE_TRACKING_ACTION,
} from '~/packages_and_registries/shared/constants'; } from '~/packages_and_registries/shared/constants/index';
export const PACKAGE_TYPE_CONAN = 'CONAN'; export const PACKAGE_TYPE_CONAN = 'CONAN';
export const PACKAGE_TYPE_MAVEN = 'MAVEN'; export const PACKAGE_TYPE_MAVEN = 'MAVEN';
......
...@@ -3,7 +3,7 @@ import { GlEmptyState, GlLink, GlSprintf } from '@gitlab/ui'; ...@@ -3,7 +3,7 @@ import { GlEmptyState, GlLink, GlSprintf } from '@gitlab/ui';
import createFlash from '~/flash'; import createFlash from '~/flash';
import { historyReplaceState } from '~/lib/utils/common_utils'; import { historyReplaceState } from '~/lib/utils/common_utils';
import { s__ } from '~/locale'; import { s__ } from '~/locale';
import { SHOW_DELETE_SUCCESS_ALERT } from '~/packages_and_registries/shared/constants'; import { SHOW_DELETE_SUCCESS_ALERT } from '~/packages_and_registries/shared/constants/index';
import { import {
PROJECT_RESOURCE_TYPE, PROJECT_RESOURCE_TYPE,
GROUP_RESOURCE_TYPE, GROUP_RESOURCE_TYPE,
......
...@@ -10,7 +10,7 @@ import { ...@@ -10,7 +10,7 @@ import {
COPY_BUILD_TITLE, COPY_BUILD_TITLE,
PUSH_COMMAND_LABEL, PUSH_COMMAND_LABEL,
COPY_PUSH_TITLE, COPY_PUSH_TITLE,
} from '../../constants/index'; } from '../constants/index';
const trackingLabel = 'quickstart_dropdown'; const trackingLabel = 'quickstart_dropdown';
...@@ -20,7 +20,20 @@ export default { ...@@ -20,7 +20,20 @@ export default {
CodeInstruction, CodeInstruction,
}, },
mixins: [Tracking.mixin({ label: trackingLabel })], mixins: [Tracking.mixin({ label: trackingLabel })],
inject: ['config', 'dockerBuildCommand', 'dockerPushCommand', 'dockerLoginCommand'], props: {
dockerBuildCommand: {
type: String,
required: true,
},
dockerPushCommand: {
type: String,
required: true,
},
dockerLoginCommand: {
type: String,
required: true,
},
},
trackingLabel, trackingLabel,
i18n: { i18n: {
QUICK_START, QUICK_START,
......
export * from './package_registry';
export * from './quick_start';
import { s__ } from '~/locale';
export const QUICK_START = s__('ContainerRegistry|CLI Commands');
export const LOGIN_COMMAND_LABEL = s__('ContainerRegistry|Login');
export const COPY_LOGIN_TITLE = s__('ContainerRegistry|Copy login command');
export const BUILD_COMMAND_LABEL = s__('ContainerRegistry|Build an image');
export const COPY_BUILD_TITLE = s__('ContainerRegistry|Copy build command');
export const PUSH_COMMAND_LABEL = s__('ContainerRegistry|Push an image');
export const COPY_PUSH_TITLE = s__('ContainerRegistry|Copy push command');
import Vue from 'vue'; import Vue from 'vue';
import { queryToObject } from '~/lib/utils/url_utility'; import { queryToObject } from '~/lib/utils/url_utility';
import { FILTERED_SEARCH_TERM } from './constants'; import { FILTERED_SEARCH_TERM } from './constants/index';
export const getQueryParams = (query) => export const getQueryParams = (query) =>
queryToObject(query, { gatherArrays: true, legacySpacesDecode: true }); queryToObject(query, { gatherArrays: true, legacySpacesDecode: true });
......
...@@ -8,7 +8,7 @@ import { stripTypenames } from 'helpers/graphql_helpers'; ...@@ -8,7 +8,7 @@ import { stripTypenames } from 'helpers/graphql_helpers';
import component from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_list.vue'; import component from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_list.vue';
import TagsListRow from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_list_row.vue'; import TagsListRow from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_list_row.vue';
import TagsLoader from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_loader.vue'; import TagsLoader from '~/packages_and_registries/shared/components/tags_loader.vue';
import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue'; import RegistryList from '~/packages_and_registries/shared/components/registry_list.vue';
import PersistedSearch from '~/packages_and_registries/shared/components/persisted_search.vue'; import PersistedSearch from '~/packages_and_registries/shared/components/persisted_search.vue';
import getContainerRepositoryTagsQuery from '~/packages_and_registries/container_registry/explorer/graphql/queries/get_container_repository_tags.query.graphql'; import getContainerRepositoryTagsQuery from '~/packages_and_registries/container_registry/explorer/graphql/queries/get_container_repository_tags.query.graphql';
......
import { shallowMount } from '@vue/test-utils'; import { shallowMount } from '@vue/test-utils';
import component from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_loader.vue'; import component from '~/packages_and_registries/shared/components/tags_loader.vue';
import { GlSkeletonLoader } from '../../stubs'; import { GlSkeletonLoader } from '../../stubs';
describe('TagsLoader component', () => { describe('TagsLoader component', () => {
......
import { GlDropdown } from '@gitlab/ui'; import { GlDropdown } from '@gitlab/ui';
import { mount, createLocalVue } from '@vue/test-utils'; import { mount, createLocalVue } from '@vue/test-utils';
import Vuex from 'vuex'; import Vuex from 'vuex';
import QuickstartDropdown from '~/packages_and_registries/container_registry/explorer/components/list_page/cli_commands.vue'; import QuickstartDropdown from '~/packages_and_registries/shared/components/cli_commands.vue';
import { import {
QUICK_START, QUICK_START,
LOGIN_COMMAND_LABEL, LOGIN_COMMAND_LABEL,
......
...@@ -11,7 +11,7 @@ import DetailsHeader from '~/packages_and_registries/container_registry/explorer ...@@ -11,7 +11,7 @@ import DetailsHeader from '~/packages_and_registries/container_registry/explorer
import PartialCleanupAlert from '~/packages_and_registries/container_registry/explorer/components/details_page/partial_cleanup_alert.vue'; import PartialCleanupAlert from '~/packages_and_registries/container_registry/explorer/components/details_page/partial_cleanup_alert.vue';
import StatusAlert from '~/packages_and_registries/container_registry/explorer/components/details_page/status_alert.vue'; import StatusAlert from '~/packages_and_registries/container_registry/explorer/components/details_page/status_alert.vue';
import TagsList from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_list.vue'; import TagsList from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_list.vue';
import TagsLoader from '~/packages_and_registries/container_registry/explorer/components/details_page/tags_loader.vue'; import TagsLoader from '~/packages_and_registries/shared/components/tags_loader.vue';
import { import {
UNFINISHED_STATUS, UNFINISHED_STATUS,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment