htmlgrid 1.1.6 → 1.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/TooltipDialog.txt +73 -0
- data/interaction_no_inline.txt +1216 -0
- data/lib/htmlgrid/dojotoolkit.rb +48 -21
- data/lib/htmlgrid/template.rb +8 -12
- data/lib/htmlgrid/version.rb +1 -1
- metadata +4 -2
data/lib/htmlgrid/dojotoolkit.rb
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
require 'htmlgrid/component'
|
7
7
|
require 'htmlgrid/div'
|
8
|
-
require 'htmlgrid/template'
|
9
8
|
|
10
9
|
module HtmlGrid
|
11
10
|
class Component
|
12
11
|
@@msie_ptrn = /MSIE\s*(\d)/
|
13
12
|
attr_accessor :dojo_tooltip
|
13
|
+
# DOJO_VERSION >= 1.7.0 only (removed old version support)
|
14
14
|
def dojo_tag(widget, args={}, inner_html='')
|
15
15
|
div = HtmlGrid::Div.new(@model, @session, self)
|
16
16
|
div.set_attribute('data-dojo-type', widget)
|
@@ -38,6 +38,9 @@ module HtmlGrid
|
|
38
38
|
def dynamic_html(context)
|
39
39
|
html = ''
|
40
40
|
attrs = {
|
41
|
+
# NOTE:
|
42
|
+
# DOJO >= 1.8 has support for type name separated by '/'
|
43
|
+
# but, <= 1.7 must be separated with '.'
|
41
44
|
'data-dojo-type' => 'dijit/TooltipDialog',
|
42
45
|
'data-dojo-props' => "connectId:#{css_id}",
|
43
46
|
'id' => "#{css_id}_widget",
|
@@ -63,7 +66,9 @@ module HtmlGrid
|
|
63
66
|
html << @dojo_tooltip.to_html(context).force_encoding('utf-8')
|
64
67
|
end
|
65
68
|
unless html.empty? || dojo_parse_on_load
|
66
|
-
html << context.script('type' => 'text/javascript') {
|
69
|
+
html << context.script('type' => 'text/javascript') {
|
70
|
+
"dojoConfig.searchIds.push('#{css_id}')"
|
71
|
+
}
|
67
72
|
end
|
68
73
|
# call original dynamic_html
|
69
74
|
dojo_dynamic_html(context) << html
|
@@ -72,7 +77,7 @@ module HtmlGrid
|
|
72
77
|
end
|
73
78
|
module DojoToolkit
|
74
79
|
module DojoTemplate
|
75
|
-
DOJO_DEBUG =
|
80
|
+
DOJO_DEBUG = false
|
76
81
|
DOJO_BACK_BUTTON = false
|
77
82
|
DOJO_ENCODING = nil
|
78
83
|
DOJO_PARSE_ON_LOAD = true
|
@@ -91,30 +96,52 @@ module HtmlGrid
|
|
91
96
|
"{ name: '#{prefix}', location: '#{path}' }"
|
92
97
|
}.join(",")
|
93
98
|
end
|
94
|
-
|
95
|
-
|
99
|
+
config = [
|
100
|
+
"parseOnLoad: #{self.class::DOJO_PARSE_ON_LOAD}",
|
101
|
+
"isDebug: #{self.class::DOJO_DEBUG}",
|
102
|
+
"preventBackButtonFix: #{!self.class::DOJO_BACK_BUTTON}",
|
103
|
+
"bindEncoding: '#{encoding}'",
|
104
|
+
"searchIds: []",
|
105
|
+
"urchin: ''",
|
96
106
|
"has: {
|
97
|
-
'dojo-
|
107
|
+
'dojo-firebug': #{self.class::DOJO_DEBUG},
|
108
|
+
'dojo-debug-messages': #{self.class::DOJO_DEBUG}
|
98
109
|
}",
|
110
|
+
"packages: [ #{packages} ]"
|
99
111
|
].join(',')
|
100
|
-
|
101
|
-
|
102
|
-
parseOnLoad: true,
|
103
|
-
isDebug: true,
|
104
|
-
async: true,
|
105
|
-
urchin: '',
|
106
|
-
};
|
107
|
-
</script>)
|
112
|
+
args.store('data-dojo-config', config)
|
113
|
+
args.store('src', dojo_path)
|
108
114
|
headers << context.script(args)
|
109
|
-
{
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
115
|
+
args = { 'type' => 'text/javascript' }
|
116
|
+
headers << context.script(args) {
|
117
|
+
package_paths = self.class::DOJO_REQUIRE.map { |req|
|
118
|
+
"'#{req}'"
|
119
|
+
}.join(',')
|
120
|
+
package_names = self.class::DOJO_REQUIRE.map { |req|
|
121
|
+
req.split('/').last
|
122
|
+
}.join(',')
|
123
|
+
if @dojo_onloads
|
124
|
+
onloads = ''
|
125
|
+
@dojo_onloads.each { |onload|
|
126
|
+
onloads << "#{onload}\n"
|
127
|
+
}
|
128
|
+
script =
|
129
|
+
"require([#{package_paths}], function(#{package_names}) {" \
|
130
|
+
"ready(function() {" \
|
131
|
+
"#{onloads}" \
|
132
|
+
"});" \
|
133
|
+
"});"
|
114
134
|
else
|
115
|
-
|
135
|
+
script = "require([#{package_paths}]);"
|
116
136
|
end
|
117
|
-
|
137
|
+
script
|
138
|
+
}
|
139
|
+
dojo_dir = File.dirname(dojo_path)
|
140
|
+
headers << context.style(:type => "text/css") { <<-EOS
|
141
|
+
@import "#{File.join(dojo_dir, "/resources/dojo.css")}";
|
142
|
+
@import "#{File.join(dojo_dir, "../dijit/themes/tundra/tundra.css")}";
|
143
|
+
EOS
|
144
|
+
}
|
118
145
|
headers
|
119
146
|
end
|
120
147
|
def dojo_parse_on_load
|
data/lib/htmlgrid/template.rb
CHANGED
@@ -22,9 +22,10 @@
|
|
22
22
|
# ywesee - intellectual capital connected, Winterthurerstrasse 52, CH-8006 Zuerich, Switzerland
|
23
23
|
# htmlgrid@ywesee.com, www.ywesee.com/htmlgrid
|
24
24
|
#
|
25
|
-
# Template -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
25
|
+
# Template -- htmlgrid -- 19.11.2002 -- hwyss@ywesee.com
|
26
26
|
|
27
27
|
require 'htmlgrid/composite'
|
28
|
+
require 'uri'
|
28
29
|
|
29
30
|
module HtmlGrid
|
30
31
|
module TemplateMethods
|
@@ -36,14 +37,9 @@ module HtmlGrid
|
|
36
37
|
CSS_FILES = []
|
37
38
|
JAVASCRIPTS = []
|
38
39
|
@@local_doc_dir = File.join(Dir.pwd, 'doc')
|
39
|
-
def get_inline(ressource)
|
40
|
+
def TemplateMethods.get_inline(ressource)
|
40
41
|
local_file = File.join(@@local_doc_dir, URI(ressource).path)
|
41
|
-
|
42
|
-
# puts "Reading #{ressource} #{local_file} #{File.size(local_file)}"
|
43
|
-
File.read(local_file)
|
44
|
-
else
|
45
|
-
nil
|
46
|
-
end
|
42
|
+
File.exist?(local_file) ? File.read(local_file) : nil
|
47
43
|
end
|
48
44
|
def css_link(context, path=@lookandfeel.resource(:css))
|
49
45
|
properties = {
|
@@ -52,7 +48,7 @@ module HtmlGrid
|
|
52
48
|
"async" => "true",
|
53
49
|
'href' => path,
|
54
50
|
}
|
55
|
-
if (content = get_inline(path))
|
51
|
+
if (content = TemplateMethods.get_inline(path))
|
56
52
|
properties.delete('href')
|
57
53
|
context.style(properties) { content }
|
58
54
|
else
|
@@ -60,8 +56,8 @@ module HtmlGrid
|
|
60
56
|
end
|
61
57
|
end
|
62
58
|
def css_links(context, path=@lookandfeel.resource(:css))
|
63
|
-
links = self.class.const_get(:CSS_FILES).collect { |key|
|
64
|
-
css_link(context, @lookandfeel.resource(key))
|
59
|
+
links = self.class.const_get(:CSS_FILES).collect { |key|
|
60
|
+
css_link(context, @lookandfeel.resource(key))
|
65
61
|
}
|
66
62
|
links.push(css_link(context, path)) if(path)
|
67
63
|
links.join
|
@@ -101,7 +97,7 @@ module HtmlGrid
|
|
101
97
|
"language" => "JavaScript",
|
102
98
|
"type" => "text/javascript",
|
103
99
|
"src" => @lookandfeel.resource_global(:javascript, "#{key}.js"),
|
104
|
-
}
|
100
|
+
}
|
105
101
|
context.script(properties)
|
106
102
|
}
|
107
103
|
jscripts.join
|
data/lib/htmlgrid/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: htmlgrid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sbsm
|
@@ -157,6 +157,8 @@ extensions: []
|
|
157
157
|
extra_rdoc_files: []
|
158
158
|
files:
|
159
159
|
- Manifest.txt
|
160
|
+
- TooltipDialog.txt
|
161
|
+
- interaction_no_inline.txt
|
160
162
|
- lib/htmlgrid/booleanvalue.rb
|
161
163
|
- lib/htmlgrid/button.rb
|
162
164
|
- lib/htmlgrid/centeredcomposite.rb
|