Class: Portlet
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Portlet
show all
- Defined in:
- app/models/portlet.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#connect_to_container ⇒ Object
These are here simply to temporarily hold these values Makes it easy to pass them through the process of selecting a portlet type
8
9
10
|
# File 'app/models/portlet.rb', line 8
def connect_to_container
@connect_to_container
end
|
#connect_to_page_id ⇒ Object
These are here simply to temporarily hold these values Makes it easy to pass them through the process of selecting a portlet type
8
9
10
|
# File 'app/models/portlet.rb', line 8
def connect_to_page_id
@connect_to_page_id
end
|
#controller ⇒ Object
Returns the value of attribute controller.
10
11
12
|
# File 'app/models/portlet.rb', line 10
def controller
@controller
end
|
Class Method Details
.columns_for_index ⇒ Object
125
126
127
128
129
|
# File 'app/models/portlet.rb', line 125
def self.columns_for_index
[ {:label => "Name", :method => :name, :order => "name" },
{:label => "Type", :method => :type_name, :order => "type" },
{:label => "Updated On", :method => :updated_on_string, :order => "updated_at"} ]
end
|
.connectable? ⇒ Boolean
Duck typing (like a ContentBlock) for determining if this block should have a usages link or not.
132
133
134
|
# File 'app/models/portlet.rb', line 132
def self.connectable?
true
end
|
.default_template ⇒ Object
75
76
77
78
79
80
81
|
# File 'app/models/portlet.rb', line 75
def self.default_template
template_file = ActionController::Base.view_paths.map do |vp|
path = vp.to_s.first == "/" ? vp.to_s : Rails.root.join(vp.to_s)
Dir[File.join(path, default_template_path) + '.*']
end.flatten.first
template_file ? open(template_file){|f| f.read } : ""
end
|
.default_template_path ⇒ Object
87
88
89
|
# File 'app/models/portlet.rb', line 87
def self.default_template_path
@default_template_path ||= "portlets/#{name.tableize.sub('_portlets','')}/render"
end
|
.enable_template_editor(enabled) ⇒ Object
Determines if the template editor in the CMS UI will be enabled when creating or editing instances of this portlet If enabled, the portlet will use the template code stored in the database. If not, it will render from the render.html.erb file created.
107
108
109
|
# File 'app/models/portlet.rb', line 107
def self.enable_template_editor (enabled)
render_inline enabled
end
|
71
72
73
|
# File 'app/models/portlet.rb', line 71
def self.form
"portlets/#{name.tableize.sub('_portlets','')}/form"
end
|
.get_subclass(type) ⇒ Object
61
62
63
64
|
# File 'app/models/portlet.rb', line 61
def self.get_subclass(type)
raise "Unknown Portlet Type" unless types.map(&:name).include?(type)
type.constantize
end
|
.handler(handler_type) ⇒ Object
100
101
102
|
# File 'app/models/portlet.rb', line 100
def self.handler(handler_type)
define_method(:handler) { handler_type }
end
|
.has_edit_link? ⇒ Boolean
47
48
49
|
# File 'app/models/portlet.rb', line 47
def self.has_edit_link?
false
end
|
.render_inline(*args) ⇒ Object
111
112
113
114
115
116
117
118
119
|
# File 'app/models/portlet.rb', line 111
def self.render_inline(*args)
if args.length > 0
@render_inline = args.first
elsif !defined?(@render_inline)
@render_inline = true
else
@render_inline
end
end
|
.set_default_template_path(s) ⇒ Object
83
84
85
|
# File 'app/models/portlet.rb', line 83
def self.set_default_template_path(s)
@default_template_path = s
end
|
.types ⇒ Object
51
52
53
54
55
56
57
58
59
|
# File 'app/models/portlet.rb', line 51
def self.types
@types ||= ActiveSupport::Dependencies.autoload_paths.map do |d|
if d =~ /app\/portlets/
Dir["#{d}/*_portlet.rb"].map do |p|
File.basename(p, ".rb").classify
end
end
end.flatten.compact.uniq.sort
end
|
Instance Method Details
#inline_options ⇒ Object
Called by ‘render’ to determine if this portlet should render itself using a file (render.html.erb) or using its ‘template’ attribute.
93
94
95
96
97
98
|
# File 'app/models/portlet.rb', line 93
def inline_options
options = {}
options[:inline] = self.template if self.class.render_inline && !(self.template.nil? || self.template.blank?)
options[:type] = self.handler unless self.handler.blank?
options
end
|
#instance_name ⇒ Object
—– Portlet Action Related Methods —————————————-
137
138
139
|
# File 'app/models/portlet.rb', line 137
def instance_name
"#{self.class.name.demodulize.underscore}_#{id}"
end
|
#portlet_type_name ⇒ Object
67
68
69
|
# File 'app/models/portlet.rb', line 67
def portlet_type_name
type.titleize
end
|
#store_errors_in_flash(errors) ⇒ Object
This will convert the errors object into a hash and then store it in the flash under the key #Portlet.portletportlet.instance_name_errors
163
164
165
166
|
# File 'app/models/portlet.rb', line 163
def store_errors_in_flash(errors)
store_hash_in_flash("#{instance_name}_errors",
errors.inject({}){|h, (k, v)| h[k] = v; h})
end
|
#store_hash_in_flash(key, hash) ⇒ Object
168
169
170
171
172
173
174
175
|
# File 'app/models/portlet.rb', line 168
def store_hash_in_flash(key, hash)
flash[key] = hash.inject(HashWithIndifferentAccess.new) do |p,(k,v)|
unless StringIO === v || Tempfile === v
p[k.to_sym] = v
end
p
end
end
|
#store_params_in_flash ⇒ Object
This will copy all the params from this request into the flash. The key in the flash with be the portlet instance_name and the value will be the hash of all the params, except the params that have values that are a StringIO or a Tempfile will be left out.
157
158
159
|
# File 'app/models/portlet.rb', line 157
def store_params_in_flash
store_hash_in_flash instance_name, params
end
|
#type_name ⇒ Object
121
122
123
|
# File 'app/models/portlet.rb', line 121
def type_name
type.to_s.titleize
end
|
#url_for_failure ⇒ Object
147
148
149
150
151
|
# File 'app/models/portlet.rb', line 147
def url_for_failure
[params[:failure_url], self.failure_url, request.referer].detect do |e|
!e.blank?
end
end
|
#url_for_success ⇒ Object
141
142
143
144
145
|
# File 'app/models/portlet.rb', line 141
def url_for_success
[params[:success_url], self.success_url, request.referer].detect do |e|
!e.blank?
end
end
|