# File lib/buweb/page_edition.rb, line 89 def primary_source_page? source.try(:primary_page_id) == id.to_s end
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
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