mirror of
https://github.com/harness/drone.git
synced 2025-05-17 09:30:00 +08:00
feat: [CDE-456]: Sorting functionality code changes (#2984)
* UI Fixes * UI Fixes * Reolved lint warnings * Reolved lint warnings * Reolved lint warnings * Reolved lint warnings * Reolved lint warnings * Resolved PR comments * Sorting functionality code changes * Generic code changes
This commit is contained in:
parent
e077918d6f
commit
0ae23353c7
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { DropDown } from '@harnessio/uicore'
|
import { DropDown } from '@harnessio/uicore'
|
||||||
import { GitspaceOwnerType, GitspaceOwnerTypeListItem, GitspaceOwnerTypes } from 'cde-gitness/constants'
|
import { GitspaceOwnerType, GitspaceOwnerTypes } from 'cde-gitness/constants'
|
||||||
import { useStrings } from 'framework/strings'
|
import { useStrings } from 'framework/strings'
|
||||||
|
|
||||||
interface GitspaceOwnerDropdownProps {
|
interface GitspaceOwnerDropdownProps {
|
||||||
@ -31,16 +31,12 @@ export default function GitspaceOwnerDropdown(props: GitspaceOwnerDropdownProps)
|
|||||||
<DropDown
|
<DropDown
|
||||||
width={180}
|
width={180}
|
||||||
buttonTestId="gitspace-owner-select"
|
buttonTestId="gitspace-owner-select"
|
||||||
items={dropdownList.map((each: GitspaceOwnerTypeListItem) => ({
|
items={dropdownList}
|
||||||
...each,
|
|
||||||
label: each.label
|
|
||||||
}))}
|
|
||||||
value={value}
|
value={value}
|
||||||
onChange={option => {
|
onChange={option => {
|
||||||
onChange(option.value as GitspaceOwnerType)
|
onChange(option.value as GitspaceOwnerType)
|
||||||
}}
|
}}
|
||||||
placeholder={getString('cde.owners')}
|
placeholder={getString('cde.owners')}
|
||||||
addClearBtn
|
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2024 Harness, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import React from 'react'
|
||||||
|
import { DropDown } from '@harnessio/uicore'
|
||||||
|
import { SortByTypes } from 'cde-gitness/constants'
|
||||||
|
import { useStrings } from 'framework/strings'
|
||||||
|
import type { EnumGitspaceSort } from 'services/cde'
|
||||||
|
|
||||||
|
interface SortByDropdownProps {
|
||||||
|
value?: EnumGitspaceSort
|
||||||
|
onChange: (val: EnumGitspaceSort) => void
|
||||||
|
}
|
||||||
|
export default function SortByDropdown(props: SortByDropdownProps): JSX.Element {
|
||||||
|
const { value, onChange } = props
|
||||||
|
const { getString } = useStrings()
|
||||||
|
const dropdownList = SortByTypes(getString)
|
||||||
|
return (
|
||||||
|
<DropDown
|
||||||
|
width={180}
|
||||||
|
buttonTestId="gitspace-sort-select"
|
||||||
|
items={dropdownList}
|
||||||
|
value={value}
|
||||||
|
onChange={option => {
|
||||||
|
onChange(option.value as EnumGitspaceSort)
|
||||||
|
}}
|
||||||
|
placeholder={getString('cde.sortBy')}
|
||||||
|
addClearBtn
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
@ -15,20 +15,20 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { GitspaceStatusTypes, GitspaceStatusTypesListItem } from 'cde-gitness/constants'
|
import { GitspaceStatus, GitspaceStatusTypes, GitspaceStatusTypesListItem } from 'cde-gitness/constants'
|
||||||
import { useStrings } from 'framework/strings'
|
import { useStrings } from 'framework/strings'
|
||||||
import MultiSelectDropdownList from '../MultiDropdownSelect/MultiDropdownSelect'
|
import MultiSelectDropdownList from '../MultiDropdownSelect/MultiDropdownSelect'
|
||||||
|
|
||||||
interface StatusDropdownProps {
|
interface StatusDropdownProps {
|
||||||
value: string[]
|
value: GitspaceStatus[]
|
||||||
onChange: (val: string[]) => void
|
onChange: (val: GitspaceStatus[]) => void
|
||||||
}
|
}
|
||||||
export default function StatusDropdown(props: StatusDropdownProps): JSX.Element {
|
export default function StatusDropdown(props: StatusDropdownProps): JSX.Element {
|
||||||
const { value, onChange } = props
|
const { value, onChange } = props
|
||||||
const { getString } = useStrings()
|
const { getString } = useStrings()
|
||||||
const dropdownList = GitspaceStatusTypes(getString)
|
const dropdownList: GitspaceStatusTypesListItem[] = GitspaceStatusTypes(getString)
|
||||||
return (
|
return (
|
||||||
<MultiSelectDropdownList
|
<MultiSelectDropdownList<GitspaceStatus>
|
||||||
width={120}
|
width={120}
|
||||||
buttonTestId="gitspace-status-select"
|
buttonTestId="gitspace-status-select"
|
||||||
items={dropdownList.map((each: GitspaceStatusTypesListItem) => ({
|
items={dropdownList.map((each: GitspaceStatusTypesListItem) => ({
|
||||||
|
@ -49,7 +49,7 @@ export const GitspaceStatusTypes = (getString: any) => [
|
|||||||
value: GitspaceStatus.ERROR
|
value: GitspaceStatus.ERROR
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: getString('cde.gitspaceStatus.running'),
|
label: getString('cde.gitspaceStatus.active'),
|
||||||
value: GitspaceStatus.RUNNING
|
value: GitspaceStatus.RUNNING
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -90,3 +90,29 @@ export enum GitspaceRegion {
|
|||||||
Europe = 'Europe',
|
Europe = 'Europe',
|
||||||
Australia = 'Australia'
|
Australia = 'Australia'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum SortByType {
|
||||||
|
CREATED = 'created',
|
||||||
|
LAST_USED = 'last_used',
|
||||||
|
LAST_ACTIVATED = 'last_activated'
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SortByTypeListItem {
|
||||||
|
label: string
|
||||||
|
value: SortByType
|
||||||
|
}
|
||||||
|
|
||||||
|
export const SortByTypes = (getString: any) => [
|
||||||
|
{
|
||||||
|
label: getString('cde.created'),
|
||||||
|
value: SortByType.CREATED
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: getString('cde.lastUsed'),
|
||||||
|
value: SortByType.LAST_USED
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: getString('cde.lastActivated'),
|
||||||
|
value: SortByType.LAST_ACTIVATED
|
||||||
|
}
|
||||||
|
]
|
||||||
|
@ -20,16 +20,23 @@ import type { TypesGitspaceConfig } from 'cde-gitness/services'
|
|||||||
import { LIST_FETCHING_LIMIT } from 'utils/Utils'
|
import { LIST_FETCHING_LIMIT } from 'utils/Utils'
|
||||||
import { useGetCDEAPIParams } from 'cde-gitness/hooks/useGetCDEAPIParams'
|
import { useGetCDEAPIParams } from 'cde-gitness/hooks/useGetCDEAPIParams'
|
||||||
import { useAppContext } from 'AppContext'
|
import { useAppContext } from 'AppContext'
|
||||||
import { useListGitspaces } from 'services/cde'
|
import { type EnumGitspaceSort, useListGitspaces } from 'services/cde'
|
||||||
import { useQueryParams } from 'hooks/useQueryParams'
|
import { useQueryParams } from 'hooks/useQueryParams'
|
||||||
|
|
||||||
interface pageCDEBrowser {
|
interface pageCDEBrowser {
|
||||||
page?: string
|
page?: string
|
||||||
gitspace_states?: string
|
gitspace_states?: string
|
||||||
gitspace_owner?: string
|
gitspace_owner?: string
|
||||||
|
sort?: EnumGitspaceSort
|
||||||
|
order: 'asc' | 'desc'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useLisitngApi = ({ page, filter }: { page: number; filter: any }) => {
|
interface sortProps {
|
||||||
|
sort: EnumGitspaceSort
|
||||||
|
order: 'asc' | 'desc'
|
||||||
|
}
|
||||||
|
|
||||||
|
export const useLisitngApi = ({ page, filter, sortConfig }: { page: number; filter: any; sortConfig: sortProps }) => {
|
||||||
const { standalone } = useAppContext()
|
const { standalone } = useAppContext()
|
||||||
|
|
||||||
const pageBrowser = useQueryParams<pageCDEBrowser>()
|
const pageBrowser = useQueryParams<pageCDEBrowser>()
|
||||||
@ -53,7 +60,9 @@ export const useLisitngApi = ({ page, filter }: { page: number; filter: any }) =
|
|||||||
page,
|
page,
|
||||||
limit: LIST_FETCHING_LIMIT,
|
limit: LIST_FETCHING_LIMIT,
|
||||||
gitspace_owner: filter.gitspace_owner || undefined,
|
gitspace_owner: filter.gitspace_owner || undefined,
|
||||||
gitspace_states: filter.gitspace_states.length ? filter.gitspace_states : undefined
|
gitspace_states: filter.gitspace_states.length ? filter.gitspace_states : undefined,
|
||||||
|
order: sortConfig.sort ? sortConfig.order : undefined,
|
||||||
|
sort: sortConfig.sort
|
||||||
},
|
},
|
||||||
queryParamStringifyOptions: {
|
queryParamStringifyOptions: {
|
||||||
arrayFormat: 'repeat'
|
arrayFormat: 'repeat'
|
||||||
@ -73,7 +82,9 @@ export const useLisitngApi = ({ page, filter }: { page: number; filter: any }) =
|
|||||||
page,
|
page,
|
||||||
limit: LIST_FETCHING_LIMIT,
|
limit: LIST_FETCHING_LIMIT,
|
||||||
gitspace_owner: filter.gitspace_owner || undefined,
|
gitspace_owner: filter.gitspace_owner || undefined,
|
||||||
gitspace_states: filter.gitspace_states.length ? filter.gitspace_states : undefined
|
gitspace_states: filter?.gitspace_states?.length ? filter.gitspace_states : undefined,
|
||||||
|
order: sortConfig.sort ? sortConfig.order : undefined,
|
||||||
|
sort: sortConfig.sort
|
||||||
}
|
}
|
||||||
cde.refetch({
|
cde.refetch({
|
||||||
queryParams,
|
queryParams,
|
||||||
@ -82,7 +93,7 @@ export const useLisitngApi = ({ page, filter }: { page: number; filter: any }) =
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, [page, filter])
|
}, [page, filter, sortConfig])
|
||||||
|
|
||||||
return standalone ? gitness : cde
|
return standalone ? gitness : cde
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useState } from 'react'
|
import React, { useMemo, useState } from 'react'
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Page,
|
Page,
|
||||||
@ -42,8 +42,10 @@ import UsageMetrics from 'cde-gitness/components/UsageMetrics/UsageMetrics'
|
|||||||
|
|
||||||
import StatusDropdown from 'cde-gitness/components/StatusDropdown/StatusDropdown'
|
import StatusDropdown from 'cde-gitness/components/StatusDropdown/StatusDropdown'
|
||||||
import GitspaceOwnerDropdown from 'cde-gitness/components/GitspaceOwnerDropdown/GitspaceOwnerDropdown'
|
import GitspaceOwnerDropdown from 'cde-gitness/components/GitspaceOwnerDropdown/GitspaceOwnerDropdown'
|
||||||
import { GitspaceOwnerType } from 'cde-gitness/constants'
|
import { GitspaceOwnerType, GitspaceStatus } from 'cde-gitness/constants'
|
||||||
|
|
||||||
|
import SortByDropdown from 'cde-gitness/components/SortByDropdown/SortByDropdown'
|
||||||
|
import type { EnumGitspaceSort } from 'services/cde'
|
||||||
import { useLisitngApi } from '../../hooks/useLisitngApi'
|
import { useLisitngApi } from '../../hooks/useLisitngApi'
|
||||||
import zeroDayCss from 'cde-gitness/components/CDEHomePage/CDEHomePage.module.scss'
|
import zeroDayCss from 'cde-gitness/components/CDEHomePage/CDEHomePage.module.scss'
|
||||||
import css from './GitspacesListing.module.scss'
|
import css from './GitspacesListing.module.scss'
|
||||||
@ -51,44 +53,77 @@ import css from './GitspacesListing.module.scss'
|
|||||||
interface pageCDEBrowser {
|
interface pageCDEBrowser {
|
||||||
page?: string
|
page?: string
|
||||||
gitspace_states?: string
|
gitspace_states?: string
|
||||||
gitspace_owner?: string
|
gitspace_owner?: GitspaceOwnerType
|
||||||
|
sort?: EnumGitspaceSort
|
||||||
|
order?: 'asc' | 'desc'
|
||||||
|
}
|
||||||
|
|
||||||
|
interface filterProps {
|
||||||
|
gitspace_states: GitspaceStatus[]
|
||||||
|
gitspace_owner: GitspaceOwnerType
|
||||||
|
}
|
||||||
|
|
||||||
|
interface sortProps {
|
||||||
|
sort: EnumGitspaceSort
|
||||||
|
order: 'asc' | 'desc'
|
||||||
}
|
}
|
||||||
|
|
||||||
const GitspaceListing = () => {
|
const GitspaceListing = () => {
|
||||||
const space = useGetSpaceParam()
|
const space = useGetSpaceParam()
|
||||||
const { replaceQueryParams } = useUpdateQueryParams()
|
const { updateQueryParams } = useUpdateQueryParams()
|
||||||
|
|
||||||
const history = useHistory()
|
const history = useHistory()
|
||||||
const { getString } = useStrings()
|
const { getString } = useStrings()
|
||||||
const { routes, standalone } = useAppContext()
|
const { routes, standalone } = useAppContext()
|
||||||
const pageBrowser = useQueryParams<pageCDEBrowser>()
|
const pageBrowser = useQueryParams<pageCDEBrowser>()
|
||||||
const filterInit = {
|
const statesString: any = pageBrowser.gitspace_states
|
||||||
gitspace_states: pageBrowser.gitspace_states?.split(',') ?? [],
|
const filterInit: filterProps = {
|
||||||
|
gitspace_states: statesString?.split(',')?.map((state: string) => state.trim() as GitspaceStatus) ?? [],
|
||||||
gitspace_owner: pageBrowser.gitspace_owner ?? GitspaceOwnerType.SELF
|
gitspace_owner: pageBrowser.gitspace_owner ?? GitspaceOwnerType.SELF
|
||||||
}
|
}
|
||||||
const pageInit = pageBrowser.page ? parseInt(pageBrowser.page) : 1
|
const pageInit = pageBrowser.page ? parseInt(pageBrowser.page) : 1
|
||||||
const [page, setPage] = usePageIndex(pageInit)
|
const [page, setPage] = usePageIndex(pageInit)
|
||||||
const [filter, setFilter] = useState(filterInit)
|
const [filter, setFilter] = useState(filterInit)
|
||||||
|
|
||||||
|
const sortInit: sortProps = { sort: (pageBrowser.sort as EnumGitspaceSort) ?? '', order: 'desc' }
|
||||||
|
const [sortConfig, setSortConfig] = useState(sortInit)
|
||||||
const [hasFilter, setHasFilter] = useState(!!(pageBrowser.gitspace_states || pageBrowser.gitspace_owner))
|
const [hasFilter, setHasFilter] = useState(!!(pageBrowser.gitspace_states || pageBrowser.gitspace_owner))
|
||||||
|
|
||||||
const { data = '', loading = false, error = undefined, refetch, response } = useLisitngApi({ page, filter })
|
const {
|
||||||
|
data = '',
|
||||||
|
loading = false,
|
||||||
|
error = undefined,
|
||||||
|
refetch,
|
||||||
|
response
|
||||||
|
} = useLisitngApi({ page, filter, sortConfig })
|
||||||
|
|
||||||
|
function useParsePaginationInfo(responseData: Nullable<Response>) {
|
||||||
|
const totalData = useMemo(() => parseInt(responseData?.headers?.get('x-total') || '0'), [responseData])
|
||||||
|
|
||||||
|
return totalData
|
||||||
|
}
|
||||||
|
const totalItems = useParsePaginationInfo(response)
|
||||||
|
|
||||||
const handleFilterChange = (key: string, value: any) => {
|
const handleFilterChange = (key: string, value: any) => {
|
||||||
const payload: any = { ...filter }
|
const payload: any = { ...filter }
|
||||||
payload[key] = value
|
payload[key] = value
|
||||||
setFilter(payload)
|
setFilter(payload)
|
||||||
const queryParams: any = {}
|
if (typeof value === 'string') {
|
||||||
Object.keys(payload).forEach((entity: string) => {
|
updateQueryParams({ [key]: value })
|
||||||
const val = payload[entity]
|
} else if (Array.isArray(value)) {
|
||||||
if (val && typeof val === 'string') {
|
updateQueryParams({ [key]: value?.toString() })
|
||||||
queryParams[entity] = val
|
}
|
||||||
} else if (Array.isArray(val) && val?.length) {
|
if (payload.gitspace_states?.length || payload.gitspace_owner) {
|
||||||
queryParams[entity] = val?.toString()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
if (queryParams.gitspace_states?.length) {
|
|
||||||
setHasFilter(true)
|
setHasFilter(true)
|
||||||
}
|
}
|
||||||
replaceQueryParams(queryParams)
|
}
|
||||||
|
|
||||||
|
const handleSort = (key: string, value: string) => {
|
||||||
|
updateQueryParams({ [key]: value })
|
||||||
|
setSortConfig({
|
||||||
|
...sortConfig,
|
||||||
|
[key]: value
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -134,6 +169,18 @@ const GitspaceListing = () => {
|
|||||||
onChange={(val: any) => handleFilterChange('gitspace_owner', val)}
|
onChange={(val: any) => handleFilterChange('gitspace_owner', val)}
|
||||||
/>
|
/>
|
||||||
</Layout.Horizontal>
|
</Layout.Horizontal>
|
||||||
|
|
||||||
|
<Layout.Horizontal spacing="small" flex={{ alignItems: 'center', justifyContent: 'flex-start' }}>
|
||||||
|
<SortByDropdown value={sortConfig?.sort} onChange={(val: any) => handleSort('sort', val)} />
|
||||||
|
<Button
|
||||||
|
icon={sortConfig.order === 'asc' ? 'sort-asc' : 'sort-desc'}
|
||||||
|
className={css.sortOrder}
|
||||||
|
minimal
|
||||||
|
withoutBoxShadow
|
||||||
|
onClick={() => handleSort('order', sortConfig.order === 'asc' ? 'desc' : 'asc')}
|
||||||
|
disabled={!sortConfig.sort}
|
||||||
|
/>
|
||||||
|
</Layout.Horizontal>
|
||||||
</Page.SubHeader>
|
</Page.SubHeader>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
@ -164,6 +211,9 @@ const GitspaceListing = () => {
|
|||||||
}}>
|
}}>
|
||||||
{(data?.length || hasFilter) && (
|
{(data?.length || hasFilter) && (
|
||||||
<>
|
<>
|
||||||
|
<Text className={css.totalItems}>
|
||||||
|
{getString('cde.total')}: {totalItems}
|
||||||
|
</Text>
|
||||||
<ListGitspaces data={(data as Unknown) || []} hasFilter={hasFilter} refreshList={refetch} />
|
<ListGitspaces data={(data as Unknown) || []} hasFilter={hasFilter} refreshList={refetch} />
|
||||||
<ResourceListingPagination response={response} page={page} setPage={setPage} />
|
<ResourceListingPagination response={response} page={page} setPage={setPage} />
|
||||||
</>
|
</>
|
||||||
|
@ -17,3 +17,13 @@
|
|||||||
.main {
|
.main {
|
||||||
margin: var(--spacing-xxlarge) !important;
|
margin: var(--spacing-xxlarge) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sortOrder {
|
||||||
|
border: 1px solid silver !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.totalItems {
|
||||||
|
font-size: var(--font-size-normal) !important;
|
||||||
|
font-weight: bold !important;
|
||||||
|
color: black !important;
|
||||||
|
}
|
||||||
|
@ -17,3 +17,5 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
// This is an auto-generated file
|
// This is an auto-generated file
|
||||||
export declare const main: string
|
export declare const main: string
|
||||||
|
export declare const sortOrder: string
|
||||||
|
export declare const totalItems: string
|
||||||
|
@ -32,6 +32,7 @@ eventTimeline: Event Timeline
|
|||||||
cpu: CPU
|
cpu: CPU
|
||||||
memory: Memory
|
memory: Memory
|
||||||
disk: Disk
|
disk: Disk
|
||||||
|
created: Created
|
||||||
regionSelectWarning: Select a region first
|
regionSelectWarning: Select a region first
|
||||||
gitspaceUpdateSuccess: Gitspace updated successfully
|
gitspaceUpdateSuccess: Gitspace updated successfully
|
||||||
regionValidationMessage: Region is required
|
regionValidationMessage: Region is required
|
||||||
@ -141,10 +142,12 @@ changesTooltip:
|
|||||||
description: A gitspace is meant to be used just like a user might use an IDE locally in their laptop. To check if a gitspace has any changes which a user might want to save/sync with the remote repo before deleting it, the user needs to start the gitspace and check.
|
description: A gitspace is meant to be used just like a user might use an IDE locally in their laptop. To check if a gitspace has any changes which a user might want to save/sync with the remote repo before deleting it, the user needs to start the gitspace and check.
|
||||||
learnMore: Learn more about Gitspace changes
|
learnMore: Learn more about Gitspace changes
|
||||||
gitspaceStatus:
|
gitspaceStatus:
|
||||||
running: Running
|
active: Active
|
||||||
stopped: Stopped
|
stopped: Stopped
|
||||||
error: Error
|
error: Error
|
||||||
owners: Owners
|
owners: Owners
|
||||||
gitspaceOwners:
|
gitspaceOwners:
|
||||||
allGitspaces: All Gitspaces
|
allGitspaces: All Gitspaces
|
||||||
myGitspaces: Only My Gitspaces
|
myGitspaces: My Gitspaces
|
||||||
|
sortBy: Sort By
|
||||||
|
total: Total
|
||||||
|
@ -1230,6 +1230,7 @@ export interface StringsMap {
|
|||||||
'cde.createGitspace': string
|
'cde.createGitspace': string
|
||||||
'cde.createImport': string
|
'cde.createImport': string
|
||||||
'cde.createRepo': string
|
'cde.createRepo': string
|
||||||
|
'cde.created': string
|
||||||
'cde.deleteGitspace': string
|
'cde.deleteGitspace': string
|
||||||
'cde.deleteGitspaceText': string
|
'cde.deleteGitspaceText': string
|
||||||
'cde.deleteGitspaceTitle': string
|
'cde.deleteGitspaceTitle': string
|
||||||
@ -1261,8 +1262,8 @@ export interface StringsMap {
|
|||||||
'cde.gitspaceDetail': string
|
'cde.gitspaceDetail': string
|
||||||
'cde.gitspaceOwners.allGitspaces': string
|
'cde.gitspaceOwners.allGitspaces': string
|
||||||
'cde.gitspaceOwners.myGitspaces': string
|
'cde.gitspaceOwners.myGitspaces': string
|
||||||
|
'cde.gitspaceStatus.active': string
|
||||||
'cde.gitspaceStatus.error': string
|
'cde.gitspaceStatus.error': string
|
||||||
'cde.gitspaceStatus.running': string
|
|
||||||
'cde.gitspaceStatus.stopped': string
|
'cde.gitspaceStatus.stopped': string
|
||||||
'cde.gitspaceUpdateSuccess': string
|
'cde.gitspaceUpdateSuccess': string
|
||||||
'cde.gitspaces': string
|
'cde.gitspaces': string
|
||||||
@ -1330,6 +1331,7 @@ export interface StringsMap {
|
|||||||
'cde.repositoryAndBranch': string
|
'cde.repositoryAndBranch': string
|
||||||
'cde.retry': string
|
'cde.retry': string
|
||||||
'cde.sessionDuration': string
|
'cde.sessionDuration': string
|
||||||
|
'cde.sortBy': string
|
||||||
'cde.sshSelect.180days': string
|
'cde.sshSelect.180days': string
|
||||||
'cde.sshSelect.30days': string
|
'cde.sshSelect.30days': string
|
||||||
'cde.sshSelect.90days': string
|
'cde.sshSelect.90days': string
|
||||||
@ -1339,6 +1341,7 @@ export interface StringsMap {
|
|||||||
'cde.startingGitspace': string
|
'cde.startingGitspace': string
|
||||||
'cde.status': string
|
'cde.status': string
|
||||||
'cde.stopingGitspace': string
|
'cde.stopingGitspace': string
|
||||||
|
'cde.total': string
|
||||||
'cde.updateGitspace': string
|
'cde.updateGitspace': string
|
||||||
'cde.used': string
|
'cde.used': string
|
||||||
'cde.viewGitspace': string
|
'cde.viewGitspace': string
|
||||||
|
Loading…
Reference in New Issue
Block a user