class PageEdition

Constants

ATTACHMENT_METADATA_FIELDS
AVAILABLE_SOURCE_TYPES

Public Instance Methods

as_indexed_json(*) click to toggle source
# File lib/buweb/page_edition.rb, line 128
def as_indexed_json(*)
  {
    title: title,
    slug: slug,
    url: url,
    site_id: site_id.to_s,
    description: description,
    body: sanitized_body,
    topics: topics,
    keywords: keywords,
    parent_page_id: parent_page_id.to_s,
    status: aasm_state,
    published: published?,
    departments: departments.to_a.map(&:title),
    department_slugs: departments.to_a.map(&:slug),
    department_aliases: departments.to_a.map(&:aliases).flatten,
    categories: site_categories.to_a.map(&:to_s)
  }
end
dont_index?() click to toggle source
# File lib/buweb/page_edition.rb, line 155
def dont_index?
  !published?
end
enabled_roles() click to toggle source
# File lib/buweb/page_edition.rb, line 163
def enabled_roles
  [['Editor', :edit], ['Publisher', :publish]]
end
primary_source_page?() click to toggle source
# File lib/buweb/page_edition.rb, line 89
def primary_source_page?
  source.try(:primary_page_id) == id.to_s
end
redirected?() click to toggle source
# File lib/buweb/page_edition.rb, line 85
def redirected?
  self.redirect.present? && self.redirect.destination.present?
end
sanitized_body() click to toggle source
# File lib/buweb/page_edition.rb, line 159
def sanitized_body
  body.gsub(%r{</?[^>]+?>}, ' ').squeeze(' ') if body.present?
end
source_id=(s_id) click to toggle source
Calls superclass method
# File lib/buweb/page_edition.rb, line 104
def source_id=(s_id)
  begin
    s_id = BSON::ObjectId.from_string(s_id) if s_id.present?
    super(s_id)
  rescue BSON::ObjectId::Invalid
    logger.error "Invalid source_id '#{s_id}' being set for PageEdition '#{id}'"
  end
end
unset_source() click to toggle source
# File lib/buweb/page_edition.rb, line 113
def unset_source
  if source && primary_source_page?
    source.primary_page = nil
    source.save
  end
end
update_the_source() click to toggle source
# File lib/buweb/page_edition.rb, line 93
def update_the_source
  if source && primary_source_page?
    # Don't set page_url for unpublished pages
    if !self.published?
      source.update_attributes(page_url: nil)
    elsif source.page_url != self.url
      source.update_attributes(page_url: url)
    end
  end
end
url() click to toggle source
# File lib/buweb/page_edition.rb, line 120
def url
  if redirected?
    self.redirect.destination
  else
    "#{self.site.url}/#{self.slug}"
  end
end