Class: Locomotive::Page

Constant Summary collapse

MINIMAL_ATTRIBUTES =
%w(_id title slug fullpath position depth published templatized target_klass_name redirect listed response_type parent_id parent_ids site_id created_at updated_at raw_template is_layout)

Constants included from Concerns::Page::Layout

Concerns::Page::Layout::BLOCK_REGEX, Concerns::Page::Layout::EXTENDS_FULLPATH_REGEX, Concerns::Page::Layout::EXTENDS_PARENT_REGEX, Concerns::Page::Layout::EXTENDS_REGEX, Concerns::Page::Layout::IS_LAYOUT_REGEX

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Concerns::Page::ToSteam

#to_steam

Methods included from Concerns::Page::Templatized

#content_type, #content_type_id, #content_type_with_main_attributes, #fetch_target_entries, #fetch_target_entry, #target_entry_name, #target_klass, #target_klass_slug, #target_klass_slug=

Methods included from Concerns::Page::Layout

#find_layout, #is_layout_or_related?, #use_layout?

Methods included from Concerns::Page::EditableElements

#find_editable_element

Methods included from Concerns::Page::Tree

#children_with_minimal_attributes, #depth, #siblings_and_self_with_scoping, #sort_children!

Instance Attribute Details

#skip_callbacks_on_updateObject

Returns the value of attribute skip_callbacks_on_update.



69
70
71
# File 'app/models/locomotive/page.rb', line 69

def skip_callbacks_on_update
  @skip_callbacks_on_update
end

Instance Method Details

#default_response_type?Boolean

Returns:



89
90
91
# File 'app/models/locomotive/page.rb', line 89

def default_response_type?
  self.response_type == 'text/html'
end

#hidden?Boolean

Returns:



101
102
103
# File 'app/models/locomotive/page.rb', line 101

def hidden?
  (self.display_settings || {})['hidden'] || false
end

#index?Boolean

methods ##

Returns:



73
74
75
# File 'app/models/locomotive/page.rb', line 73

def index?
  self.slug == 'index' && self.depth.to_i == 0
end

#index_or_not_found?Boolean

Returns:



85
86
87
# File 'app/models/locomotive/page.rb', line 85

def index_or_not_found?
  self.index? || self.not_found?
end

#latest_updatedObject

named scopes ##



57
# File 'app/models/locomotive/page.rb', line 57

scope :latest_updated,      -> { order_by(updated_at: :desc).limit(Locomotive.config.ui[:latest_entries_nb]) }

#not_found?Boolean

Returns:



77
78
79
# File 'app/models/locomotive/page.rb', line 77

def not_found?
  self.slug == '404' && self.depth.to_i == 0
end

#titleObject

validations ##



22
# File 'app/models/locomotive/page.rb', line 22

field :title,               localize: true

#touch_site_attributeObject



111
112
113
# File 'app/models/locomotive/page.rb', line 111

def touch_site_attribute
  self.raw_template_changed? ? :template_version : :content_version
end

#translated?Boolean

Returns:



93
94
95
# File 'app/models/locomotive/page.rb', line 93

def translated?
  self.title_translations.key?(::Mongoid::Fields::I18n.locale.to_s) rescue false
end

#translated_inObject



97
98
99
# File 'app/models/locomotive/page.rb', line 97

def translated_in
  self.title_translations.try(:keys)
end

#unpublished?Boolean

Returns:



81
82
83
# File 'app/models/locomotive/page.rb', line 81

def unpublished?
  !self.published?
end

#update_without_validation_and_callback!Object



105
106
107
108
109
# File 'app/models/locomotive/page.rb', line 105

def update_without_validation_and_callback!
  self.updating_descendants = true
  self.save(validate: false)
  self.updating_descendants = false
end