scinote-web/app/serializers/table_serializer.rb

37 lines
870 B
Ruby
Raw Normal View History

2022-05-06 17:59:22 +08:00
# frozen_string_literal: true
class TableSerializer < ActiveModel::Serializer
include Canaid::Helpers::PermissionsHelper
2022-05-06 17:59:22 +08:00
include Rails.application.routes.url_helpers
attributes :name, :contents, :urls, :icon, :metadata, :parent_type
2022-05-06 17:59:22 +08:00
def contents
object.contents_utf_8
end
def icon
'fa-table'
end
def parent_type
:step
end
2022-05-06 17:59:22 +08:00
def urls
return if object.destroyed?
object.reload unless object.step
return {} unless can_manage_step?(scope[:user] || @instance_options[:user], object.step)
2022-05-06 17:59:22 +08:00
{
duplicate_url: duplicate_step_table_path(object.step, object),
2022-05-06 17:59:22 +08:00
delete_url: step_table_path(object.step, object),
update_url: step_table_path(object.step, object),
move_targets_url: move_targets_step_table_path(object.step, object),
move_url: move_step_table_path(object.step, object)
2022-05-06 17:59:22 +08:00
}
end
end