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
7
8
9
|
# File 'app/models/portlet.rb', line 7
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
7
8
9
|
# File 'app/models/portlet.rb', line 7
def connect_to_page_id
@connect_to_page_id
end
|
#controller ⇒ Object
Returns the value of attribute controller.
9
10
11
|
# File 'app/models/portlet.rb', line 9
def controller
@controller
end
|
Class Method Details
.columns_for_index ⇒ Object
110
111
112
113
114
|
# File 'app/models/portlet.rb', line 110
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
|
.default_template ⇒ Object
69
70
71
72
73
74
75
|
# File 'app/models/portlet.rb', line 69
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
81
82
83
|
# File 'app/models/portlet.rb', line 81
def self.default_template_path
@default_template_path ||= "portlets/#{name.tableize.sub('_portlets','')}/render"
end
|
65
66
67
|
# File 'app/models/portlet.rb', line 65
def self.form
"portlets/#{name.tableize.sub('_portlets','')}/form"
end
|
.get_subclass(type) ⇒ Object
55
56
57
58
|
# File 'app/models/portlet.rb', line 55
def self.get_subclass(type)
raise "Unknown Portlet Type" unless types.map(&:name).include?(type)
type.constantize
end
|
.handler(handler_type) ⇒ Object
92
93
94
|
# File 'app/models/portlet.rb', line 92
def self.handler(handler_type)
define_method(:handler) { handler_type }
end
|
.has_edit_link? ⇒ Boolean
41
42
43
|
# File 'app/models/portlet.rb', line 41
def self.has_edit_link?
false
end
|
.inherited(subclass) ⇒ Object
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'app/models/portlet.rb', line 15
def self.inherited(subclass)
super if defined? super
ensure
subclass.class_eval do
has_dynamic_attributes
acts_as_content_block(
:versioned => false,
:publishable => false,
:renderable => {:instance_variable_name_for_view => "@portlet"})
def self.template_path
default_template_path
end
def self.helper_path
"app/portlets/helpers/#{name.underscore}_helper.rb"
end
def self.helper_class
"#{name}Helper".constantize
end
end
end
|
.render_inline(*args) ⇒ Object
96
97
98
99
100
101
102
103
104
|
# File 'app/models/portlet.rb', line 96
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
77
78
79
|
# File 'app/models/portlet.rb', line 77
def self.set_default_template_path(s)
@default_template_path = s
end
|
.types ⇒ Object
45
46
47
48
49
50
51
52
53
|
# File 'app/models/portlet.rb', line 45
def self.types
@types ||= ActiveSupport::Dependencies.load_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
85
86
87
88
89
90
|
# File 'app/models/portlet.rb', line 85
def inline_options
options = {}
options[:inline] = self.template if self.class.render_inline
options[:type] = self.handler unless self.handler.blank?
options
end
|
#instance_name ⇒ Object
—– Portlet Action Related Methods —————————————-
117
118
119
|
# File 'app/models/portlet.rb', line 117
def instance_name
"#{self.class.name.demodulize.underscore}_#{id}"
end
|
#portlet_type_name ⇒ Object
61
62
63
|
# File 'app/models/portlet.rb', line 61
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
143
144
145
146
|
# File 'app/models/portlet.rb', line 143
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
148
149
150
151
152
153
154
155
|
# File 'app/models/portlet.rb', line 148
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.
137
138
139
|
# File 'app/models/portlet.rb', line 137
def store_params_in_flash
store_hash_in_flash instance_name, params
end
|
#type_name ⇒ Object
106
107
108
|
# File 'app/models/portlet.rb', line 106
def type_name
type.to_s.titleize
end
|
#url_for_failure ⇒ Object
127
128
129
130
131
|
# File 'app/models/portlet.rb', line 127
def url_for_failure
[params[:failure_url], self.failure_url, request.referer].detect do |e|
!e.blank?
end
end
|
#url_for_success ⇒ Object
121
122
123
124
125
|
# File 'app/models/portlet.rb', line 121
def url_for_success
[params[:success_url], self.success_url, request.referer].detect do |e|
!e.blank?
end
end
|