このコミットが含まれているのは:
@@ -12,7 +12,10 @@ export const countsCellText = (
|
||||
row: CountsVersion,
|
||||
column: CountColumn,
|
||||
locale: LocaleCode,
|
||||
params = new URLSearchParams (),
|
||||
): string => {
|
||||
const timezone = params.get ('timezone') ?? 'UTC'
|
||||
const date = (value: string) => localisedDateString (value, locale, null, timezone)
|
||||
switch (column)
|
||||
{
|
||||
case 'resource_id': return String (row.resourceId)
|
||||
@@ -28,6 +31,10 @@ export const countsCellText = (
|
||||
return translateUIMessage (`common:categories.${row.category}`, 'counts', locale).text
|
||||
case 'video_ms': return row.videoMs == null ? '' : msToTime (row.videoMs)
|
||||
case 'original_created_at':
|
||||
if (timezone !== 'Asia/Tokyo')
|
||||
return translateUIMessage ('sections.range', 'counts', locale, {
|
||||
begin: row.originalCreatedFrom == null ? '' : date (row.originalCreatedFrom),
|
||||
end: row.originalCreatedBefore == null ? '' : date (row.originalCreatedBefore) }).text
|
||||
return originalCreatedAtString (
|
||||
row.originalCreatedFrom ?? null, row.originalCreatedBefore ?? null, locale)
|
||||
case 'original_created_from':
|
||||
@@ -35,10 +42,10 @@ export const countsCellText = (
|
||||
{
|
||||
const value = column === 'original_created_from'
|
||||
? row.originalCreatedFrom : row.originalCreatedBefore
|
||||
return value == null ? '' : localisedDateString (value, locale)
|
||||
return value == null ? '' : date (value)
|
||||
}
|
||||
case 'deprecated':
|
||||
return row.deprecated == null ? '' : localisedDateString (row.deprecated, locale)
|
||||
return row.deprecated == null ? '' : date (row.deprecated)
|
||||
case 'user':
|
||||
if (row.createdByUser == null)
|
||||
return translateUIMessage ('history:bot', 'counts', locale).text
|
||||
@@ -46,12 +53,33 @@ export const countsCellText = (
|
||||
? `${row.createdByUser.name} (#${row.createdByUser.id})`
|
||||
: translateUIMessage ('history:anonymous', 'counts', locale, {
|
||||
id: row.createdByUser.id }).text
|
||||
case 'created_at': return localisedDateString (row.createdAt, locale)
|
||||
default: return ''
|
||||
case 'created_at': return date (row.createdAt)
|
||||
default:
|
||||
{
|
||||
const key = column.replace (/_([a-z])/g, (_, letter: string) => letter.toUpperCase ())
|
||||
const value = row[key]
|
||||
if (['discarded_at', 'updated_at'].includes (column) && typeof value === 'string')
|
||||
return date (value)
|
||||
if (column === 'event_type')
|
||||
return translateUIMessage (`events.${value}`, 'counts', locale).text
|
||||
if (column === 'language_code' || column === 'source_language_code')
|
||||
return countsLogicalName ({ languageCode: value }, 'languageCode', locale).text
|
||||
return value == null ? '' : (typeof value === 'object'
|
||||
? JSON.stringify (value, null, 2) : String (value))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export const countsNestedRows = (row: CountsVersion, column: string): CountRecord[] => {
|
||||
const key = column.replace (/_([a-z])/g, (_, letter: string) => letter.toUpperCase ())
|
||||
const value = row[key]
|
||||
if (column === 'export_paths_json' && value != null && typeof value === 'object')
|
||||
return Object.entries (value).map (([profile, path]) => ({ profile, path }))
|
||||
return Array.isArray (value) ? value as CountRecord[] : []
|
||||
}
|
||||
|
||||
|
||||
export const countsCSVCell = (
|
||||
row: CountsVersion,
|
||||
column: CountColumn,
|
||||
@@ -62,10 +90,10 @@ export const countsCSVCell = (
|
||||
const field = fieldsForCounts (resource).find (field => field.key === column)!
|
||||
if (field.children != null)
|
||||
{
|
||||
const rows = row[column as keyof CountsVersion] as CountRecord[] ?? []
|
||||
const rows = countsNestedRows (row, column)
|
||||
return JSON.stringify (countsNestedExport (rows, field.children, column, params, locale))
|
||||
}
|
||||
return countsCellText (row, column, locale)
|
||||
return countsCellText (row, column, locale, params)
|
||||
}
|
||||
|
||||
|
||||
@@ -189,8 +217,8 @@ export const countsCellCopy = (
|
||||
params: URLSearchParams,
|
||||
locale: LocaleCode,
|
||||
): string => {
|
||||
if (field.children == null) return countsCellText (row, field.key as CountColumn, locale)
|
||||
const rows = row[field.key as keyof CountsVersion] as CountRecord[] ?? []
|
||||
if (field.children == null) return countsCellText (row, field.key as CountColumn, locale, params)
|
||||
const rows = countsNestedRows (row, field.key)
|
||||
return params.get ('nested_json') === '1'
|
||||
? JSON.stringify (
|
||||
countsNestedExport (rows, field.children, field.key, params, locale), null, 2)
|
||||
@@ -240,6 +268,10 @@ export const countsExportLabels = (
|
||||
for (const key of ['ja', 'ain'])
|
||||
labels[`language:${key}`] = translateUIMessage (
|
||||
`history:languageNames.${key}`, 'counts', locale).text
|
||||
labels.id = translateUIMessage ('columns.resourceId', 'counts', locale).text
|
||||
labels.name = translateUIMessage ('history:name', 'counts', locale).text
|
||||
for (const event of ['create', 'update', 'discard', 'restore'])
|
||||
labels[`event_type:${event}`] = translateUIMessage (`events.${event}`, 'counts', locale).text
|
||||
labels.latest = translateUIMessage ('latestValue', 'counts', locale).text
|
||||
labels.notRegistered = translateUIMessage ('notRegistered', 'counts', locale).text
|
||||
return labels
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする