grapple 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 05a1ffcbbb6eeed509347c518f1690d9d2eb8874
4
- data.tar.gz: f4d3ba52e44f0a96d25cea11ffdd31d91b7db986
3
+ metadata.gz: dbc0c19f5351b685a28eb3cccbf18aa71418fd0d
4
+ data.tar.gz: f7a5a428ead03812a503ec79c04cf8eaae98fcf9
5
5
  SHA512:
6
- metadata.gz: c550c8ab022ee4f4dfef99e54c84815a0db0e27bba5c1179e46a5f764949b8a1ab5e0bbc8bdffbefb84de45f0c6b46156c337fe847b95855c3c640384aecf9dc
7
- data.tar.gz: f95c0dbc95ad4b2b1df1119da1d40caadf932d03dc4094556fc315ff4042e777f081a44b878d62381d708129ae081f75c2993dda809798b3abd078aa1dcb9033
6
+ metadata.gz: 86a7d8935dfff0004548900811f161d8e44329f3c97cc4092f989b16f346b2599e584dce0ee1dc4aead5e6b5d616addd5a8b9ee32175bcb9f082970fc0ab3186
7
+ data.tar.gz: f5f9b9bc3512489b545230d45bdf574690ecd1aa10902505cf9f24b96433021c1e674a71f38e6acb942402434786e9449e6e7bb56d13b5fb4a47b7f0f5c72ff1
@@ -1,8 +1,8 @@
1
1
  module Grapple
2
2
  class AjaxDataGridBuilder < DataGridBuilder
3
-
3
+
4
4
  CONTAINER_CLASSES = 'grapple grapple-ajax grapple-ajax-loading'
5
-
5
+
6
6
  @@next_id = 1000
7
7
 
8
8
  def self.container_attributes(template, options)
@@ -10,17 +10,17 @@ module Grapple
10
10
  options[:id] ||= "grapple_ajax_table_#{@@next_id}"
11
11
  css = CONTAINER_CLASSES
12
12
  css += " #{options[:container_class]}" unless options[:container_class].nil?
13
-
13
+
14
14
  data = {
15
15
  "grapple-ajax-url" => options[:url] || template.url_for(action: 'table'),
16
- # History is disabled by default, override container_attributes
16
+ # History is disabled by default, override container_attributes
17
17
  # in an initializer to enable it by default
18
18
  "grapple-ajax-history" => options[:history] == true ? '1' : '0'
19
19
  }
20
20
 
21
21
  return {
22
22
  :id => options[:id],
23
- :class => css,
23
+ :class => css,
24
24
  :data => data
25
25
  }
26
26
  end
@@ -29,7 +29,7 @@ module Grapple
29
29
  style = 'background-image: url(' + template.image_path("grapple/loading-bar.gif") + ')'
30
30
  template.content_tag :div, '', :class => 'loading-overlay', :style => style
31
31
  end
32
-
32
+
33
33
  def self.after_container(template, options)
34
34
  selector = '#' + options[:id]
35
35
  js = "$(#{selector.to_json}).grapple();"
@@ -11,7 +11,7 @@ module Grapple
11
11
  define_singleton_method(:"class_for_#{name}") { klass }
12
12
  define_singleton_method(:"settings_for_#{name}") { settings }
13
13
  end
14
-
14
+
15
15
  # Update settings for a helper
16
16
  def self.configure(helper_name, *options)
17
17
  settings = options[0] || {}
@@ -34,17 +34,17 @@ module Grapple
34
34
  @options = options[0] || {}
35
35
  @helper_instances = {}
36
36
  end
37
-
37
+
38
38
  def before_table
39
39
  ''
40
40
  end
41
-
41
+
42
42
  def after_table
43
43
  ''
44
44
  end
45
45
 
46
46
  protected
47
-
47
+
48
48
  def invoke_helper(name, *arguments, &block)
49
49
  unless @helper_instances.has_key?(name)
50
50
  klass = self.class.send(:"class_for_#{name}")
@@ -53,6 +53,6 @@ module Grapple
53
53
  end
54
54
  @helper_instances[name].send(:render, *arguments, &block)
55
55
  end
56
-
56
+
57
57
  end
58
- end
58
+ end
@@ -0,0 +1,12 @@
1
+ module Grapple
2
+ module Components
3
+ class HtmlCaption < HtmlComponent
4
+
5
+ def render(*options, &block)
6
+ html = capture_block(options[0] || '', &block)
7
+ "<caption>\n#{html}</caption>\n".html_safe
8
+ end
9
+
10
+ end
11
+ end
12
+ end
@@ -1,14 +1,14 @@
1
1
  module Grapple
2
2
  module Components
3
3
  class HtmlColgroup < HtmlComponent
4
-
4
+
5
5
  def render
6
6
  cols = columns.collect do |col|
7
7
  indent + (col[:width].nil? ? "<col>" : "<col width=\"#{col[:width]}\">")
8
8
  end
9
9
  "<colgroup>\n#{cols.join("\n")}\n</colgroup>\n".html_safe
10
10
  end
11
-
11
+
12
12
  end
13
13
  end
14
- end
14
+ end
@@ -1,9 +1,9 @@
1
1
  module Grapple
2
2
  module Components
3
3
  class HtmlComponent < BaseComponent
4
-
4
+
5
5
  setting :indent, "\t"
6
-
6
+
7
7
  protected
8
8
 
9
9
  include ERB::Util
@@ -11,14 +11,14 @@ module Grapple
11
11
  def content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block)
12
12
  template.content_tag(name, content_or_options_with_block, options, escape, &block)
13
13
  end
14
-
14
+
15
15
  def table_url(options)
16
16
  if options[:sort] == params[:sort]
17
17
  options[:dir] = (params[:dir] == 'desc') ? 'asc' : 'desc'
18
18
  end
19
19
  template.url_for params.stringify_keys().merge(options.stringify_keys())
20
20
  end
21
-
21
+
22
22
  end
23
23
  end
24
- end
24
+ end
@@ -9,6 +9,7 @@ module Grapple
9
9
  autoload :HtmlBody
10
10
  autoload :HtmlFooter
11
11
  autoload :HtmlColgroup
12
+ autoload :HtmlCaption
12
13
  autoload :ColumnHeadings
13
14
  autoload :WillPaginate
14
15
  autoload :Toolbar
@@ -20,4 +21,4 @@ module Grapple
20
21
  autoload :WillPaginateInfobar
21
22
 
22
23
  end
23
- end
24
+ end
@@ -1,24 +1,24 @@
1
1
  module Grapple
2
2
  class DataGridBuilder < HtmlTableBuilder
3
3
 
4
- helper :infobar, Grapple::Components::WillPaginateInfobar
4
+ helper :infobar, Grapple::Components::WillPaginateInfobar
5
5
 
6
- # Toolbar
6
+ # Toolbar
7
7
  helper :search_submit, Grapple::Components::SearchSubmit
8
- helper :search_query_field, Grapple::Components::SearchQueryField
8
+ helper :search_query_field, Grapple::Components::SearchQueryField
9
9
  helper :search_form, Grapple::Components::SearchForm
10
10
  helper :actions, Grapple::Components::Actions
11
11
  helper :toolbar, Grapple::Components::Toolbar, components: [:search_form, :actions]
12
12
 
13
13
  # Sortable column headings
14
14
  helper :column_headings, Grapple::Components::ColumnHeadings
15
-
16
- configure :header, components: [:infobar, :toolbar, :column_headings]
17
-
15
+
16
+ configure :header, components: [:infobar, :toolbar, :column_headings]
17
+
18
18
  # Paging
19
19
  helper :pagination, Grapple::Components::WillPaginatePagination
20
-
20
+
21
21
  configure :footer, components: [:pagination]
22
22
 
23
23
  end
24
- end
24
+ end
@@ -5,6 +5,15 @@ module Grapple
5
5
  @@builder = Grapple::DataGridBuilder
6
6
  mattr_accessor :builder
7
7
 
8
+ def table_for(columns, records, *args, &block)
9
+ options = args[0] || {}
10
+ table_html_attributes = options[:html] || {}
11
+ builder_class = options[:builder] || @@builder
12
+ builder = builder_class.new(self, columns, records, params, options)
13
+ output = capture(builder, &block)
14
+ (builder.before_table + builder.table(output, table_html_attributes) + builder.after_table).html_safe
15
+ end
16
+
8
17
  def grapple_container(*args, &block)
9
18
  options = args[0] || {}
10
19
  builder_class = options[:builder] || @@builder
@@ -17,15 +26,7 @@ module Grapple
17
26
  html << builder_class.after_container(self, options)
18
27
  return html.html_safe
19
28
  end
20
-
21
- def table_for(columns, records, *args, &block)
22
- options = args[0] || {}
23
- builder_class = options[:builder] || @@builder
24
- builder = builder_class.new(self, columns, records, params, options)
25
- output = capture(builder, &block)
26
- (builder.before_table + builder.table(output) + builder.after_table).html_safe
27
- end
28
-
29
+
29
30
  end
30
31
  end
31
32
  end
@@ -2,31 +2,32 @@ module Grapple
2
2
 
3
3
  class HtmlTableBuilder < BaseTableBuilder
4
4
 
5
+ # Standard HTML table elements
6
+ helper :caption, Grapple::Components::HtmlCaption
5
7
  helper :row, Grapple::Components::HtmlRow
6
8
  helper :colgroup, Grapple::Components::HtmlColgroup
7
9
  helper :header, Grapple::Components::HtmlHeader
8
10
  helper :body, Grapple::Components::HtmlBody
9
11
  helper :footer, Grapple::Components::HtmlFooter
10
12
 
11
- def table(content)
12
- # TODO: support attributes on the table tag
13
- "<table>#{content}</table>\n".html_safe
13
+ def table(content, attributes = {})
14
+ "#{template.content_tag('table', content, attributes)}\n".html_safe
14
15
  end
15
-
16
+
16
17
  def self.container_attributes(template, options)
17
18
  return {
18
- :class => 'grapple'
19
+ :class => 'grapple'
19
20
  }
20
21
  end
21
-
22
+
22
23
  def self.before_container(template, options)
23
24
  ''
24
25
  end
25
-
26
+
26
27
  def self.after_container(template, options)
27
28
  ''
28
29
  end
29
-
30
+
30
31
  end
31
32
 
32
- end
33
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grapple
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edward Potocko
@@ -150,6 +150,7 @@ files:
150
150
  - lib/grapple/components/base_component.rb
151
151
  - lib/grapple/components/column_headings.rb
152
152
  - lib/grapple/components/html_body.rb
153
+ - lib/grapple/components/html_caption.rb
153
154
  - lib/grapple/components/html_colgroup.rb
154
155
  - lib/grapple/components/html_component.rb
155
156
  - lib/grapple/components/html_footer.rb