king_views 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,8 @@
1
+ = King Views Changelog
2
+
3
+ 2010.08.31
4
+
5
+ * dropped support for KingList table cell alignment option, so instead of t.column :name, align=>:right go for :class=>:right and 'right' will be set as class on both th and td
6
+ * more KingList documentation
7
+
8
+ .. older read git commit messages
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.0.5
@@ -1,16 +1,25 @@
1
1
  = KingList
2
2
 
3
- King List provides helpers to be used in table listings and detail views.
4
- It has function for action icons, buttons, actions links and icons with hidden
5
- forms used to simulate PUT or DELETE requests
3
+ King List provides helpers for table listings and detail views.
4
+ It has function to create list(ul) with action icons(li+hidden a), buttons,
5
+ actions links(li+a) and icons with hidden forms used to simulate PUT or DELETE
6
+ requests.
7
+ All of those output ul->li->a structure with some css classes, so they need to be
8
+ formated via css (Examples follow, see salesking.eu for now).
6
9
 
7
- == Example
10
+ You also get automatic lookup of translations (I18n) for active record objects and
11
+ their fields.
12
+
13
+ == Examples
8
14
  Please read the files in lib/ for further documentation and examples
9
15
 
10
- A tabled view
11
- - table_for(@object) do
16
+ Build a table for an array of AR objects
17
+ - table_for(@ar_objects) do |t, obj|
12
18
  = t.column :firstname
13
19
  = t.column :lastname, :sorting=>false
20
+ = t.column :number, :link=>true # links content to the object
21
+ = t.column :email, :value=>"custom content #{obj.email}", :title=>'custom th'
22
+ = t.column :created_at, :class=>'rgt', :sort_fields=>'users.updated_at,users.created_at'
14
23
 
15
24
  A definition list view
16
25
  - dl_for current_object do |f|
@@ -18,4 +27,11 @@ A definition list view
18
27
  = f.show :created_at
19
28
  = f.show :updated_at
20
29
 
30
+ == Dependencies
31
+
32
+ * haml
33
+ * activerecord
34
+ * I18n
35
+ * king_format(included in this gem)
36
+
21
37
  Copyright (c) 2009 Georg Leciejewski, released under the MIT license
@@ -21,7 +21,7 @@ module KingList
21
21
  # options<Hash{Hash, Symbol=>String}>:: A bunch of options to customize the th, td or content of the column
22
22
  #
23
23
  # ==== Options hash:
24
- # :object => The record to use. If not set the current_object is used
24
+ # :object => The record to use. If not set, the current_object is used
25
25
  # :value => cell content (if not set, it will be determined by calling field_name on object/current_record) => @client.name
26
26
  # :link => if set, the value is wrapped in a link_to with the given link (if TRUE, the current object is used)
27
27
  # :row_link => if set, the value is wrapped in a link_to with the given link (if TRUE, the current object is used)
@@ -32,7 +32,7 @@ module KingList
32
32
  # :class:: the class to set on the th
33
33
  # :td_options{Symbol=>String}:: options for the <td>
34
34
  # :class:: the class to set on the th
35
- # :align => classes used for alignment. Values are :left or :right
35
+ # :class => class as Symbol or String used on TH and TD used f.ex. for alignment.
36
36
  def column(field_name, options = {})
37
37
  options = options.deep_clone # for not changing outer variable
38
38
  th_options = options[:th_options] || {}
@@ -41,10 +41,11 @@ module KingList
41
41
  # Use given object from options (or current_record as default)
42
42
  object = options.has_key?(:object) ? options.delete(:object) : current_record
43
43
 
44
- # Cell alignment
45
- align = options.delete(:align)
46
- (th_options[:class] ||= '') << " #{align}" if align == :right
47
- (td_options[:class] ||= '') << " #{align}" if align == :right
44
+ # :class given so add to TH and TD f.ex cell alignment :class=>'rgt'
45
+ if css_class = options.delete(:class)
46
+ (th_options[:class] ||= '') << " #{css_class}"
47
+ (td_options[:class] ||= '') << " #{css_class}"
48
+ end
48
49
 
49
50
  self.current_column_number += 1
50
51
 
@@ -77,37 +78,29 @@ module KingList
77
78
  # otherwise just plain text (no sorting link)
78
79
  title = title_text
79
80
  end
80
- #mark the first and last columns with css classes
81
+ # mark the first and last columns with css classes
81
82
  if self.current_column_number == 1
82
83
  (th_options[:class] ||= '') << ' first'
83
84
  elsif self.current_column_number == self.number_of_columns
84
- (th_options[:class] ||= '') << ' last'
85
+ (th_options[:class] ||= '') << ' last'
85
86
  end
86
87
  @template.capture_haml do
87
88
  @template.haml_tag(:th, title.to_s, th_options)
88
- end
89
-
89
+ end
90
90
 
91
91
  when :content
92
92
  # Use given value (or formatted value as default)
93
93
  value = options.delete(:value) || @template.formatted_value(object, field_name, value)
94
94
 
95
95
  # If link option is set, then link to this
96
- #
97
- # ===Example
98
- #
96
+ # === Example #
99
97
  # :link => true : uses current object show link
100
- #
101
98
  # :link => nil or blank no linking
102
- #
103
99
  if link = options.delete(:link)
104
- #link to current_oject if true given
100
+ # link to current_oject if true given
105
101
  link = object if link == true
106
- if (!value.blank?) && (!link.blank?) #link and linked text is present
107
- value = @template.link_to(value, link)
108
- else #leave col text empty
109
- value = ''
110
- end
102
+ # link and linked text is present else leave col text empty
103
+ value = (!value.blank? && !link.blank?) ? @template.link_to(value, link) : ''
111
104
  end
112
105
 
113
106
  # If row_link option is set, then link to the current object
@@ -122,7 +115,6 @@ module KingList
122
115
  @template.capture_haml do
123
116
  @template.haml_tag(:td, value.to_s, td_options)
124
117
  end
125
- # @template.haml_concat
126
118
  end # case mode
127
119
  end
128
120
 
@@ -43,7 +43,7 @@ module KingList
43
43
  # generates a fieldset with optional legend
44
44
  #
45
45
  # === Example haml
46
- # - section :caption => _('legend.user.details'), :class => 'my_css_class' do
46
+ # - section :caption => t('legend.user.details'), :class => 'my_css_class' do
47
47
  # %p= "This is the content"
48
48
  #
49
49
  # => # <fieldset>
data/king_views.gemspec CHANGED
@@ -5,18 +5,19 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{king_views}
8
- s.version = "1.0.4"
8
+ s.version = "1.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Georg Leciejewski"]
12
- s.date = %q{2010-08-16}
12
+ s.date = %q{2010-08-31}
13
13
  s.description = %q{Clean up your Forms using king_form for dl or labeled forms. Use king_list for an easy markup of tables in your lists and dl-enabled listings in your detail views. }
14
14
  s.email = %q{gl@salesking.eu}
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
17
17
  ]
18
18
  s.files = [
19
- "MIT-LICENSE",
19
+ "CHANGELOG.rdoc",
20
+ "MIT-LICENSE",
20
21
  "README.rdoc",
21
22
  "Rakefile",
22
23
  "VERSION",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: king_views
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 4
10
- version: 1.0.4
9
+ - 5
10
+ version: 1.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Georg Leciejewski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-16 00:00:00 +02:00
18
+ date: 2010-08-31 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -28,6 +28,7 @@ extensions: []
28
28
  extra_rdoc_files:
29
29
  - README.rdoc
30
30
  files:
31
+ - CHANGELOG.rdoc
31
32
  - MIT-LICENSE
32
33
  - README.rdoc
33
34
  - Rakefile