このコミットが含まれているのは:
2026-10-28 22:28:12 +09:00
コミット ecd8b449e3
9個のファイルの変更、95行の追加、16行の削除
+2 -1
ファイルの表示
@@ -13,6 +13,7 @@ class CountsDefaults
'rows' => '', 'cols' => '', 'conditions' => '', 'tags' => '' } }
details = detail_params(resource)
if details
details = details.merge('sort' => 'resource_id:asc version_no:asc')
language = Locale.find_by(code: locale)&.language_code || locale
name = CountsResourceDefinition.name_key(language)
aliases = CountsResourceDefinition.aliases_key(language)
@@ -72,7 +73,7 @@ class CountsDefaults
entry[:definition] == params.fetch('definition', 'latest') &&
entry[:mode] == params.fetch('mode', 'summary')
end&.fetch(:params) || {}
if settings.key?('sort') && params.key?('rows')
if settings.key?('sort') && params.key?('rows') && params.fetch('mode', 'summary') == 'summary'
actual = QueryState.axes(params['rows'])
expected = QueryState.axes(settings.fetch('rows'))
compatible = actual.is_a?(Array) && actual.first.is_a?(Hash) &&
+2 -2
ファイルの表示
@@ -21,7 +21,7 @@ class CountsTableQuery
@connection = @definition.model.connection
@axes = CountsAxes.new(population)
@page = Integer(params.fetch('page', '1'), 10)
@limit = Integer(params.fetch('limit', '20'), 10)
@limit = Integer(params.fetch('limit', '100'), 10)
@mode = params.fetch('mode', 'summary')
raise ArgumentError unless page.between?(1, 1_000_000) && limit.between?(1, 100)
raise ArgumentError unless ['summary', 'details'].include?(mode)
@@ -178,7 +178,7 @@ class CountsTableQuery
query = population.scope.select(Arel.sql(
"(#{ population.latest_sql }) AS counts_latest"))
order = sort_sql { detail_expression(_1) }
query = query.order(Arel.sql((order + ['v.id DESC']).join(', ')))
query = query.order(Arel.sql((order + ['v.id ASC']).join(', ')))
.limit(limit).offset((page - 1) * limit)
rows = query.to_a
if ['posts', 'tags'].include?(@definition.resource)