discourse/app/serializers/reviewable_action_serializer.rb
Martin Brennan e562bb1f43
DEV: Remove reviewable action custom_modal and use new action-based modal API (#23258)
This removes the custom_modal implementation for the
reviewable items and uses the new modal patterns defined at
https://meta.discourse.org/t/converting-modals-from-legacy-controllers-to-new-dmodal-component-api/268057

Only one plugin (discourse category experts) was using this API,
that has been fixed up here https://github.com/discourse/discourse-category-experts/pull/117

Also adds `registerReviewableActionModal` to allow for plugins and
core to map a reviewable action ID to an actual
JS class for the modal and improves docs for plugin API functions
used by reviewable-item.
2023-08-29 14:36:20 +10:00

41 lines
769 B
Ruby

# frozen_string_literal: true
class ReviewableActionSerializer < ApplicationSerializer
attributes :id,
:icon,
:button_class,
:label,
:confirm_message,
:description,
:client_action,
:require_reject_reason
def label
I18n.t(object.label)
end
def confirm_message
I18n.t(object.confirm_message)
end
def description
I18n.t(object.description, default: nil)
end
def include_description?
description.present?
end
def include_confirm_message?
object.confirm_message.present?
end
def include_client_action?
object.client_action.present?
end
def include_require_reject_reason?
object.require_reject_reason.present?
end
end