mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-05 00:44:53 +08:00
Consolidates all three wizard screens into one. Cleans up some leftover, unused wizard elements (checkbox, image, canvas inputs). Internal ticket: t/164852 <img width="2880" height="2376" alt="CleanShot 2025-11-25 at 10 35 43@2x" src="https://github.com/user-attachments/assets/f824a172-38b0-4fda-922a-3732335b93b2" /> --------- Co-authored-by: Jordan Vidrine <jordan@jordanvidrine.com>
48 lines
859 B
Ruby
48 lines
859 B
Ruby
# frozen_string_literal: true
|
|
|
|
class WizardFieldChoiceSerializer < ApplicationSerializer
|
|
attributes :id, :label, :extra_label, :description, :data
|
|
|
|
def id
|
|
object.id
|
|
end
|
|
|
|
def i18nkey
|
|
field = object.field
|
|
step = field.step
|
|
"wizard.step.#{step.id}.fields.#{field.id}.choices.#{id}".underscore
|
|
end
|
|
|
|
def label
|
|
return object.label if object.label.present?
|
|
|
|
# Try getting one from a translation
|
|
I18n.t("#{i18nkey}.label", default: id)
|
|
end
|
|
|
|
def extra_label
|
|
object.extra_label
|
|
end
|
|
|
|
def include_extra_label?
|
|
object.extra_label.present?
|
|
end
|
|
|
|
def description
|
|
I18n.t("#{i18nkey}.description", default: "")
|
|
end
|
|
|
|
def include_description?
|
|
description.present?
|
|
end
|
|
|
|
def data
|
|
result = object.data.dup
|
|
result.delete(:id)
|
|
result
|
|
end
|
|
|
|
def include_data?
|
|
object.data.present?
|
|
end
|
|
end
|