Class: Pageflow::DraftEntry
- Inherits:
-
Object
- Object
- Pageflow::DraftEntry
show all
- Includes:
- ActiveModel::Conversion
- Defined in:
- app/models/pageflow/draft_entry.rb
Defined Under Namespace
Classes: InvalidForeignKeyCustomAttributeError
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(entry, draft = nil) ⇒ DraftEntry
Returns a new instance of DraftEntry.
36
37
38
39
|
# File 'app/models/pageflow/draft_entry.rb', line 36
def initialize(entry, draft = nil)
@entry = entry
@draft = draft || entry.draft
end
|
Instance Attribute Details
#draft ⇒ Object
Also known as:
revision
Returns the value of attribute draft.
7
8
9
|
# File 'app/models/pageflow/draft_entry.rb', line 7
def draft
@draft
end
|
#entry ⇒ Object
Returns the value of attribute entry.
7
8
9
|
# File 'app/models/pageflow/draft_entry.rb', line 7
def entry
@entry
end
|
Class Method Details
.accessible_by(ability, action) ⇒ Object
97
98
99
100
101
|
# File 'app/models/pageflow/draft_entry.rb', line 97
def self.accessible_by(ability, action)
Entry.includes(:draft).accessible_by(ability, action).map do |entry|
DraftEntry.new(entry)
end
end
|
.find(id) ⇒ Object
89
90
91
|
# File 'app/models/pageflow/draft_entry.rb', line 89
def self.find(id)
new(Entry.find(id))
end
|
.for_file_usage(usage) ⇒ Object
93
94
95
|
# File 'app/models/pageflow/draft_entry.rb', line 93
def self.for_file_usage(usage)
new(usage.revision.entry)
end
|
Instance Method Details
#create_file!(file_type, attributes) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
|
# File 'app/models/pageflow/draft_entry.rb', line 48
def create_file!(file_type, attributes)
check_foreign_key_custom_attributes(file_type.custom_attributes, attributes)
file = file_type.model.create!(attributes.except(:configuration)) do |f|
f.entry = entry
end
usage = @draft.file_usages.create_with_lock!(file: file,
configuration: attributes[:configuration])
UsedFile.new(file, usage)
end
|
#entry_title ⇒ Object
So we can always get to the original Entry title.
44
45
46
|
# File 'app/models/pageflow/draft_entry.rb', line 44
def entry_title
entry.title
end
|
111
112
113
|
# File 'app/models/pageflow/draft_entry.rb', line 111
def home_button
HomeButton.new(draft, theming)
end
|
115
116
117
|
# File 'app/models/pageflow/draft_entry.rb', line 115
def overview_button
OverviewButton.new(draft)
end
|
#remove_file(file) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'app/models/pageflow/draft_entry.rb', line 60
def remove_file(file)
draft.file_usages.where(file: file).destroy_all
file.file_type.nested_file_types.each do |nested_file_type|
nested_file_ids = file.nested_files(nested_file_type.model).map(&:id)
draft
.file_usages
.where(file_type: nested_file_type.model.name,
file_id: nested_file_ids)
.destroy_all
end
file.destroy if file.usages.reload.empty?
end
|
119
120
121
|
# File 'app/models/pageflow/draft_entry.rb', line 119
def resolve_widgets(options = {})
widgets.resolve(Pageflow.config_for(entry), options)
end
|
#save! ⇒ Object
81
82
83
|
# File 'app/models/pageflow/draft_entry.rb', line 81
def save!
draft.save!
end
|
#stylesheet_cache_key ⇒ Object
107
108
109
|
# File 'app/models/pageflow/draft_entry.rb', line 107
def stylesheet_cache_key
draft.cache_key
end
|
#stylesheet_model ⇒ Object
103
104
105
|
# File 'app/models/pageflow/draft_entry.rb', line 103
def stylesheet_model
draft
end
|
85
86
87
|
# File 'app/models/pageflow/draft_entry.rb', line 85
def update_meta_data!(attributes)
draft.update_attributes!(attributes)
end
|
#use_file(file) ⇒ Object
76
77
78
79
|
# File 'app/models/pageflow/draft_entry.rb', line 76
def use_file(file)
draft.file_usages.create!(file: file.to_model,
configuration: file.configuration)
end
|