このコミットが含まれているのは:
@@ -115,13 +115,23 @@ class CountsResourceDefinition
|
||||
def self.aliases_key(code) = "aliases_#{ code.to_s.downcase.tr('-', '_') }"
|
||||
|
||||
def name_columns
|
||||
@name_columns ||= Locale.select(:code, :language_code, :script_code).order(:code)
|
||||
.flat_map do |locale|
|
||||
codes = { code: locale.code, language_code: locale.language_code,
|
||||
script_code: locale.script_code }
|
||||
[{ key: self.class.name_key(locale.code), label: 'counts:localeName', name_locale: codes },
|
||||
{ key: self.class.aliases_key(locale.code), label: 'counts:localeAliases',
|
||||
name_locale: codes, multiple_values: true }]
|
||||
@name_columns ||= begin
|
||||
locales = Locale.joins(:language)
|
||||
.select('locales.code', 'locales.language_code', 'locales.script_code')
|
||||
.order('languages.created_at ASC', 'languages.code ASC', 'locales.code ASC')
|
||||
codes = locales.map do |locale|
|
||||
{ code: locale.code, language_code: locale.language_code,
|
||||
script_code: locale.script_code }
|
||||
end
|
||||
names = codes.map do |locale|
|
||||
{ key: self.class.name_key(locale[:code]), label: 'counts:localeName',
|
||||
name_locale: locale }
|
||||
end
|
||||
aliases = codes.map do |locale|
|
||||
{ key: self.class.aliases_key(locale[:code]), label: 'counts:localeAliases',
|
||||
name_locale: locale, multiple_values: true }
|
||||
end
|
||||
names + aliases
|
||||
end
|
||||
end
|
||||
|
||||
@@ -200,7 +210,7 @@ class CountsResourceDefinition
|
||||
keys.flat_map do |child|
|
||||
next [] if child == 'aliases' && key == 'tags'
|
||||
if child == 'name' && ['tags', 'parents'].include?(key)
|
||||
next [{ key: child, label: CHILD_LABELS.fetch(child) }, *name_columns]
|
||||
next name_columns
|
||||
end
|
||||
label = key == 'members' && child == 'tagId' ?
|
||||
'counts:columns.resourceId' : CHILD_LABELS.fetch(child)
|
||||
@@ -218,6 +228,13 @@ class CountsResourceDefinition
|
||||
def condition_fields
|
||||
fields = output_fields
|
||||
if resource == 'tags'
|
||||
fields = fields.map do |field|
|
||||
next field unless field[:key] == 'parents'
|
||||
|
||||
field.merge(children: field[:children] + [
|
||||
{ key: 'name', label: 'history:name' },
|
||||
{ key: 'names', label: 'counts:columns.names', children: child_fields('names') }])
|
||||
end
|
||||
fields += [{ key: 'name', label: 'counts:columns.name' },
|
||||
{ key: 'names', label: 'counts:columns.names', children: child_fields('names') },
|
||||
{ key: 'aliases', label: 'tags:aliases', children: child_fields('aliases') }]
|
||||
@@ -227,6 +244,7 @@ class CountsResourceDefinition
|
||||
next field unless field[:key] == 'tags'
|
||||
|
||||
field.merge(children: field[:children] + [
|
||||
{ key: 'name', label: 'history:name' },
|
||||
{ key: 'names', label: 'counts:columns.names', children: child_fields('names') },
|
||||
{ key: 'aliases', label: 'tags:aliases', children: child_fields('aliases') }])
|
||||
end
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする