Class: BaseList
- Inherits:
-
Cuca::Widget
- Object
- Cuca::Widget
- BaseList
- Includes:
- Cuca::Generator::Markaby, Cuca::Generator::View
- Defined in:
- lib/cuca/stdlib/listwidget/list.rb
Overview
this is the parent class for dblist and staticdatalist
Direct Known Subclasses
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#rewrite_hooks ⇒ Object
readonly
Returns the value of attribute rewrite_hooks.
Instance Method Summary collapse
-
#add_rewrite_hook(field_id, &proc) ⇒ Object
Add a proc to rewrite content of a field proc must take two arguments, |row_content, field_content|.
-
#check_query_def ⇒ Object
check query_def was makes sense …
-
#columns ⇒ Object
OVERWRITE return a list of columns.
-
#load_query_definition ⇒ Object
TODO: Load from Session?.
- #output(list_name) ⇒ Object
-
#query(query_definition) ⇒ Object
OVERWRITE: fetch data and write:.
- #rewrite_field(row, field_id, content) ⇒ Object
-
#setup ⇒ Object
Use to initialize.
Methods included from Cuca::Generator::Markaby
Methods included from Cuca::Generator::View
#view, #view_p, #viewtext, #viewtext_p
Methods inherited from Cuca::Widget
#app, #cgi, #clear, clear_hints, #content, #content=, #controller, define_attr_method, #escape, #escapeHTML, #get_assigns, #hints, #initialize, #log, #params, #query_parameters, #request_method, #request_parameters, run_attr_method, #session, #to_s, #unescape, #unescapeHTML
Constructor Details
This class inherits a constructor from Cuca::Widget
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
12 13 14 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 12 def data @data end |
#rewrite_hooks ⇒ Object (readonly)
Returns the value of attribute rewrite_hooks.
13 14 15 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 13 def rewrite_hooks @rewrite_hooks end |
Instance Method Details
#add_rewrite_hook(field_id, &proc) ⇒ Object
Add a proc to rewrite content of a field proc must take two arguments, |row_content, field_content|
18 19 20 21 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 18 def add_rewrite_hook(field_id, &proc) @rewrite_hooks||= {} @rewrite_hooks[field_id] = proc end |
#check_query_def ⇒ Object
check query_def was makes sense … raise error if manipulated!
60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 60 def check_query_def # check if filters match possible column names cn = columns.collect { |c| c[:id] } @query_def.filters.each_pair do |f,v| raise Cuca::ApplicationException.new("Unknown column in filters: #{f}") unless cn.include?(f) end return if @query_def.order_by == '' # check if order_by is a valid column raise Cuca::ApplicationException.new("Unknown sort order: #{@query_def.order_by}") \ unless cn.include?(@query_def.order_by) end |
#columns ⇒ Object
OVERWRITE return a list of columns
37 38 39 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 37 def columns return [{:id=>"one", :display =>'One', :searchable=>false}, {:id=>'two', :display => 'three'}] end |
#load_query_definition ⇒ Object
TODO: Load from Session?
50 51 52 53 54 55 56 57 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 50 def load_query_definition qd = QueryDef.new(@list_name) qd.from_params(params) if request_method == 'POST' then qd.range = nil # reset pagination if someone submitted a filter end qd end |
#output(list_name) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 73 def output(list_name) @list_name = list_name @columns = columns @query_def = load_query_definition check_query_def # $stderr.puts "Query: Range #{@query_def.range.inspect} Filters: #{@query_def.filters.inspect} Order: #{@query_def.order.inspect} By: #{@query_def.order_by.inspect}" query(@query_def) @paginate = paginate_links() @params = params @rewrite_hooks ||= {} callback_method = "#{@list_name}_data" if !controller.nil? && controller.methods.include?(callback_method) controller.send(callback_method, @data, @total_rows) end view_p(erb_template) end |
#query(query_definition) ⇒ Object
OVERWRITE: fetch data and write:
45 46 47 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 45 def query(query_definition) return end |
#rewrite_field(row, field_id, content) ⇒ Object
23 24 25 26 27 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 23 def rewrite_field(row, field_id, content) # $stderr.puts "REwrite field(#{row.inspect}, #{field_id.inspect}, #{content.inspect} - hooks #{@rewrite_hooks.inspect}" return content unless @rewrite_hooks[field_id] return @rewrite_hooks[field_id].call(row, content) end |
#setup ⇒ Object
Use to initialize
32 33 |
# File 'lib/cuca/stdlib/listwidget/list.rb', line 32 def setup end |