htmlgrid 1.1.7 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/htmlgrid/booleanvalue.rb +14 -14
- data/lib/htmlgrid/button.rb +9 -9
- data/lib/htmlgrid/centeredcomposite.rb +21 -20
- data/lib/htmlgrid/component.rb +214 -197
- data/lib/htmlgrid/composite.rb +332 -301
- data/lib/htmlgrid/datevalue.rb +12 -12
- data/lib/htmlgrid/div.rb +9 -9
- data/lib/htmlgrid/divcomposite.rb +44 -43
- data/lib/htmlgrid/divform.rb +8 -8
- data/lib/htmlgrid/divlist.rb +17 -19
- data/lib/htmlgrid/divtemplate.rb +6 -6
- data/lib/htmlgrid/dojotoolkit.rb +54 -48
- data/lib/htmlgrid/errormessage.rb +47 -43
- data/lib/htmlgrid/form.rb +70 -62
- data/lib/htmlgrid/formlist.rb +14 -14
- data/lib/htmlgrid/grid.rb +111 -67
- data/lib/htmlgrid/image.rb +17 -16
- data/lib/htmlgrid/infomessage.rb +15 -14
- data/lib/htmlgrid/input.rb +34 -32
- data/lib/htmlgrid/inputcheckbox.rb +13 -13
- data/lib/htmlgrid/inputcurrency.rb +9 -9
- data/lib/htmlgrid/inputdate.rb +11 -11
- data/lib/htmlgrid/inputfile.rb +13 -12
- data/lib/htmlgrid/inputradio.rb +9 -9
- data/lib/htmlgrid/inputtext.rb +10 -10
- data/lib/htmlgrid/javascript.rb +17 -16
- data/lib/htmlgrid/label.rb +53 -49
- data/lib/htmlgrid/labeltext.rb +8 -8
- data/lib/htmlgrid/link.rb +31 -27
- data/lib/htmlgrid/list.rb +121 -110
- data/lib/htmlgrid/namedcomponent.rb +28 -25
- data/lib/htmlgrid/pass.rb +11 -11
- data/lib/htmlgrid/passthru.rb +20 -17
- data/lib/htmlgrid/popuplink.rb +41 -39
- data/lib/htmlgrid/reset.rb +8 -8
- data/lib/htmlgrid/richtext.rb +22 -20
- data/lib/htmlgrid/select.rb +28 -26
- data/lib/htmlgrid/span.rb +9 -9
- data/lib/htmlgrid/spancomposite.rb +18 -18
- data/lib/htmlgrid/spanlist.rb +9 -9
- data/lib/htmlgrid/staticinput.rb +14 -13
- data/lib/htmlgrid/submit.rb +9 -9
- data/lib/htmlgrid/template.rb +121 -105
- data/lib/htmlgrid/text.rb +9 -9
- data/lib/htmlgrid/textarea.rb +19 -17
- data/lib/htmlgrid/ulcomposite.rb +22 -22
- data/lib/htmlgrid/ullist.rb +9 -9
- data/lib/htmlgrid/urllink.rb +38 -36
- data/lib/htmlgrid/value.rb +9 -9
- data/lib/htmlgrid/version.rb +2 -2
- data/test/stub/cgi.rb +10 -7
- data/test/suite.rb +3 -3
- data/test/test_add_row.rb +12 -13
- data/test/test_component.rb +141 -91
- data/test/test_composite.rb +85 -46
- data/test/test_datevalue.rb +28 -24
- data/test/test_divlist.rb +126 -0
- data/test/test_dojotoolkit.rb +41 -26
- data/test/test_form.rb +89 -73
- data/test/test_formlist.rb +77 -65
- data/test/test_grid.rb +256 -208
- data/test/test_input.rb +37 -31
- data/test/test_interaction_list.rb +106 -70
- data/test/test_label.rb +91 -77
- data/test/test_list.rb +110 -95
- data/test/test_select.rb +35 -30
- data/test/test_template.rb +66 -55
- data/test/test_text.rb +36 -31
- metadata +17 -4
- data/TooltipDialog.txt +0 -73
- data/interaction_no_inline.txt +0 -1216
data/lib/htmlgrid/labeltext.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
3
|
#
|
4
4
|
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
5
5
|
# Copyright (C) 2003 ywesee - intellectual capital connected
|
@@ -22,14 +22,14 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com
|
24
24
|
#
|
25
|
-
# LabelText -- oddb -- 22.07.2003 -- hwyss@ywesee.com
|
25
|
+
# LabelText -- oddb -- 22.07.2003 -- hwyss@ywesee.com
|
26
26
|
|
27
|
-
require
|
27
|
+
require "htmlgrid/text"
|
28
28
|
|
29
29
|
module HtmlGrid
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
class LabelText < Text
|
31
|
+
def to_html(context)
|
32
|
+
context.label { super }
|
33
|
+
end
|
34
|
+
end
|
35
35
|
end
|
data/lib/htmlgrid/link.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
3
|
#
|
4
4
|
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
5
5
|
# Copyright (C) 2003 ywesee - intellectual capital connected
|
@@ -22,33 +22,37 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# Link -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
25
|
+
# Link -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
26
26
|
|
27
|
-
require
|
27
|
+
require "htmlgrid/namedcomponent"
|
28
28
|
|
29
29
|
module HtmlGrid
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
30
|
+
class Link < NamedComponent
|
31
|
+
def init
|
32
|
+
super
|
33
|
+
@value = @lookandfeel.lookup(@name)
|
34
|
+
end
|
35
|
+
|
36
|
+
def href
|
37
|
+
@attributes["href"]
|
38
|
+
end
|
39
|
+
|
40
|
+
def href=(url)
|
41
|
+
@attributes["href"] = url
|
42
|
+
end
|
43
|
+
|
44
|
+
def target=(trg)
|
45
|
+
@attributes["target"] = trg
|
46
|
+
end
|
47
|
+
|
48
|
+
def to_html(context)
|
49
|
+
context.a(@attributes) {
|
50
|
+
if @value.respond_to?(:to_html)
|
51
|
+
@value.to_html(context).force_encoding("utf-8")
|
52
|
+
else
|
53
|
+
super
|
54
|
+
end
|
55
|
+
} << dynamic_html(context)
|
56
|
+
end
|
57
|
+
end
|
54
58
|
end
|
data/lib/htmlgrid/list.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
3
|
#
|
4
4
|
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
5
5
|
# Copyright (C) 2003 ywesee - intellectual capital connected
|
@@ -22,138 +22,149 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# List -- htmlgrid -- 03.03.2003 -- hwyss@ywesee.com
|
25
|
+
# List -- htmlgrid -- 03.03.2003 -- hwyss@ywesee.com
|
26
26
|
|
27
|
-
require
|
28
|
-
require
|
29
|
-
require
|
27
|
+
require "htmlgrid/composite"
|
28
|
+
require "htmlgrid/link"
|
29
|
+
require "htmlgrid/value"
|
30
30
|
|
31
31
|
module HtmlGrid
|
32
|
-
|
32
|
+
class List < Composite
|
33
33
|
BACKGROUND_ROW = nil
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
34
|
+
BACKGROUND_SUFFIX = "-bg"
|
35
|
+
CSS_HEAD_MAP = {}
|
36
|
+
DEFAULT_CLASS = Value
|
37
|
+
DEFAULT_HEAD_CLASS = nil
|
38
|
+
EMPTY_LIST = false
|
39
|
+
EMPTY_LIST_KEY = :empty_list
|
40
|
+
OFFSET_STEP = [0, 1]
|
41
|
+
OMIT_HEADER = false
|
42
|
+
OMIT_HEAD_TAG = false
|
43
|
+
SORT_DEFAULT = :to_s
|
44
|
+
SORT_HEADER = true
|
45
|
+
SORT_REVERSE = false
|
46
|
+
STRIPED_BG = true
|
47
|
+
def compose(model = @model, offset = [0, 0])
|
48
|
+
unless self.class::OMIT_HEADER
|
49
|
+
offset = compose_header(offset)
|
50
|
+
end
|
51
|
+
if model.empty?
|
52
|
+
offset = compose_empty_list(offset) unless self.class::EMPTY_LIST
|
53
|
+
else
|
54
|
+
offset = compose_list(model, offset)
|
55
|
+
end
|
56
|
+
compose_footer(offset)
|
57
|
+
end
|
58
|
+
|
59
|
+
def compose_footer(offset = [0, 0])
|
60
|
+
end
|
61
|
+
|
62
|
+
def compose_empty_list(offset, klass = "list")
|
63
|
+
fill_row(offset, self.class::EMPTY_LIST_KEY, klass)
|
64
|
+
end
|
65
|
+
|
66
|
+
def compose_list(model = @model, offset = [0, 0])
|
67
|
+
bg_flag = false
|
68
|
+
model.each_with_index { |mdl, idx|
|
69
|
+
@list_index = idx
|
70
|
+
_compose(mdl, offset, bg_flag)
|
71
|
+
# compose_components(mdl, offset)
|
72
|
+
# compose_css(offset, resolve_suffix(mdl, bg_flag))
|
73
|
+
# compose_colspan(offset)
|
74
|
+
if (rcss = row_css(mdl, bg_flag))
|
75
|
+
@grid.set_row_attributes({"class" => rcss}, offset.at(1),
|
76
|
+
self.class::OFFSET_STEP.at(1))
|
77
|
+
end
|
78
|
+
offset = resolve_offset(offset, self.class::OFFSET_STEP)
|
79
|
+
bg_flag = !bg_flag if self.class::STRIPED_BG
|
80
|
+
}
|
81
|
+
offset
|
82
|
+
end
|
83
|
+
|
84
|
+
def compose_header(offset = [0, 0])
|
85
|
+
step = if defined?(self.class::HEAD_OFFSET_STEP)
|
86
|
+
self.class::HEAD_OFFSET_STEP
|
87
|
+
else
|
88
|
+
self.class::OFFSET_STEP
|
89
|
+
end
|
90
|
+
ystep = step.at(1)
|
91
|
+
components.each { |matrix, component|
|
92
|
+
key = lookandfeel_key(component)
|
93
|
+
header_key = "th_" << key.to_s
|
94
|
+
if (txt = @lookandfeel.lookup(header_key))
|
95
|
+
if self.class::SORT_HEADER
|
96
|
+
@grid.add(sort_link(header_key, matrix, component), *matrix)
|
97
|
+
else
|
98
|
+
@grid.add(txt, *matrix)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
if (cls = css_head_map[matrix]) \
|
102
|
+
|| (cls = self.class::DEFAULT_HEAD_CLASS)
|
103
|
+
@grid.add_attribute("class", cls, *matrix)
|
104
|
+
# link.attributes['class'] = cls
|
105
|
+
end
|
106
|
+
unless self.class::OMIT_HEAD_TAG || matrix.at(1) >= ystep
|
107
|
+
@grid.add_tag("TH", *matrix)
|
108
|
+
end
|
109
|
+
if (title = @lookandfeel.lookup(header_key + "_title"))
|
110
|
+
@grid.add_attribute("title", title, *matrix)
|
111
|
+
end
|
112
|
+
}
|
113
|
+
# span = full_colspan || 1
|
114
|
+
resolve_offset(offset, step)
|
115
|
+
end
|
116
|
+
|
117
|
+
def css_head_map
|
118
|
+
@css_head_map ||= self.class::CSS_HEAD_MAP.dup
|
119
|
+
end
|
120
|
+
|
115
121
|
def fill_row(offset, key, klass)
|
116
122
|
@grid.add(@lookandfeel.lookup(key), *offset)
|
117
|
-
@grid.add_attribute(
|
123
|
+
@grid.add_attribute("class", klass, *offset)
|
118
124
|
@grid.set_colspan(*offset)
|
119
|
-
resolve_offset(offset, self
|
125
|
+
resolve_offset(offset, self.class::OFFSET_STEP)
|
126
|
+
end
|
127
|
+
|
128
|
+
private
|
129
|
+
|
130
|
+
def init
|
131
|
+
@model ||= []
|
132
|
+
@index = 0
|
133
|
+
sort_model
|
134
|
+
if self.class::SORT_REVERSE && (@session.event != :sort)
|
135
|
+
@model = @model.reverse
|
136
|
+
end
|
137
|
+
super
|
120
138
|
end
|
121
|
-
|
122
|
-
def init
|
123
|
-
@model ||= []
|
124
|
-
@index = 0
|
125
|
-
sort_model()
|
126
|
-
if(self::class::SORT_REVERSE && (@session.event != :sort))
|
127
|
-
@model = @model.reverse
|
128
|
-
end
|
129
|
-
super
|
130
|
-
end
|
139
|
+
|
131
140
|
def row_css(model, bg_flag)
|
132
|
-
self
|
141
|
+
self.class::BACKGROUND_ROW if bg_flag
|
133
142
|
end
|
143
|
+
|
134
144
|
def sort_link(header_key, matrix, component)
|
135
145
|
link = Link.new(header_key, @model, @session, self)
|
136
146
|
args = {
|
137
|
-
|
147
|
+
"sortvalue" => component.to_s
|
138
148
|
}
|
139
|
-
link.attributes[
|
140
|
-
if(
|
141
|
-
|| (cls = self
|
142
|
-
link.attributes[
|
149
|
+
link.attributes["href"] = @lookandfeel.event_url(:sort, args)
|
150
|
+
if (cls = css_head_map[matrix]) \
|
151
|
+
|| (cls = self.class::DEFAULT_HEAD_CLASS)
|
152
|
+
link.attributes["class"] = cls
|
143
153
|
end
|
144
154
|
link
|
145
155
|
end
|
156
|
+
|
146
157
|
def sort_model
|
147
|
-
block = self
|
158
|
+
block = self.class::SORT_DEFAULT
|
148
159
|
if block && (@session.event != :sort)
|
149
160
|
begin
|
150
161
|
if block == :self
|
151
162
|
@model = @model.sort
|
152
163
|
else
|
153
164
|
unless block.is_a?(Proc)
|
154
|
-
block =
|
165
|
+
block = proc { |item|
|
155
166
|
begin
|
156
|
-
item.send(self
|
167
|
+
item.send(self.class::SORT_DEFAULT)
|
157
168
|
rescue RuntimeError
|
158
169
|
item.to_s
|
159
170
|
end
|
@@ -161,10 +172,10 @@ module HtmlGrid
|
|
161
172
|
end
|
162
173
|
@model = @model.sort_by(&block)
|
163
174
|
end
|
164
|
-
rescue
|
175
|
+
rescue => e
|
165
176
|
puts "could not sort: #{e.message}"
|
166
177
|
end
|
167
178
|
end
|
168
179
|
end
|
169
|
-
|
180
|
+
end
|
170
181
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
3
|
#
|
4
4
|
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
5
5
|
# Copyright (C) 2003 ywesee - intellectual capital connected
|
@@ -22,31 +22,34 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# NamedComponent -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
25
|
+
# NamedComponent -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
26
26
|
|
27
|
-
require
|
27
|
+
require "htmlgrid/component"
|
28
28
|
|
29
29
|
module HtmlGrid
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
30
|
+
class NamedComponent < Component
|
31
|
+
attr_reader :name
|
32
|
+
def initialize(name, model, session, container = nil)
|
33
|
+
@name = name
|
34
|
+
super(model, session, container)
|
35
|
+
@attributes["name"] = @name.to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
def init
|
39
|
+
super
|
40
|
+
@attributes.update(@lookandfeel.attributes(@name)) if @lookandfeel
|
41
|
+
end
|
42
|
+
|
43
|
+
def data_origin
|
44
|
+
if @model.respond_to?(:data_origin)
|
45
|
+
@model.data_origin(@name)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def error?
|
50
|
+
if @model.respond_to?(:error?)
|
51
|
+
@model.error?(@name)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
52
55
|
end
|
data/lib/htmlgrid/pass.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
3
|
#
|
4
4
|
# HtmlGrid -- HyperTextMarkupLanguage Framework
|
5
5
|
# Copyright (C) 2003 ywesee - intellectual capital connected
|
@@ -22,17 +22,17 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# Pass -- htmlgrid -- 03.03.2003 -- hwyss@ywesee.com
|
25
|
+
# Pass -- htmlgrid -- 03.03.2003 -- hwyss@ywesee.com
|
26
26
|
|
27
|
-
require
|
27
|
+
require "htmlgrid/input"
|
28
28
|
|
29
29
|
module HtmlGrid
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
30
|
+
class Pass < Input
|
31
|
+
LABEL = true
|
32
|
+
def init
|
33
|
+
super
|
34
|
+
@attributes["type"] = "password"
|
35
|
+
@attributes.delete("value")
|
36
|
+
end
|
37
|
+
end
|
38
38
|
end
|