module HtmlGrid::DojoToolkit::DojoTemplate
Constants
- DOJO_BACK_BUTTON
- DOJO_DEBUG
- DOJO_ENCODING
- DOJO_PARSE_ON_LOAD
- DOJO_PREFIX
- DOJO_REQUIRE
Public Instance Methods
dojo_parse_on_load()
click to toggle source
# File lib/htmlgrid/dojotoolkit.rb, line 152 def dojo_parse_on_load self.class::DOJO_PARSE_ON_LOAD end
dynamic_html_headers(context)
click to toggle source
Calls superclass method
# File lib/htmlgrid/dojotoolkit.rb, line 89 def dynamic_html_headers(context) headers = super encoding = self.class::DOJO_ENCODING encoding ||= Encoding.default_external dojo_path = @lookandfeel.resource_global(:dojo_js) dojo_path ||= "/resources/dojo/dojo/dojo.js" args = {"type" => "text/javascript"} packages = "" unless self.class::DOJO_PREFIX.empty? packages = self.class::DOJO_PREFIX.collect { |prefix, path| "{ name: '#{prefix}', location: '#{path}' }" }.join(",") end config = [ "parseOnLoad: #{self.class::DOJO_PARSE_ON_LOAD}", "isDebug: #{self.class::DOJO_DEBUG}", "preventBackButtonFix: #{!self.class::DOJO_BACK_BUTTON}", "bindEncoding: '#{encoding}'", "searchIds: []", "urchin: ''", "has: { 'dojo-firebug': #{self.class::DOJO_DEBUG}, 'dojo-debug-messages': #{self.class::DOJO_DEBUG} }", "packages: [ #{packages} ]" ].join(",") args.store("data-dojo-config", config) args.store("src", dojo_path) headers << context.script(args) args = {"type" => "text/javascript"} headers << context.script(args) { package_paths = self.class::DOJO_REQUIRE.map { |req| "'#{req}'" }.join(",") package_names = self.class::DOJO_REQUIRE.map { |req| req.split("/").last }.join(",") if @dojo_onloads onloads = "" @dojo_onloads.each { |onload| onloads << "#{onload}\n" } script = "require([#{package_paths}], function(#{package_names}) {" \ "ready(function() {" \ "#{onloads}" \ "});" \ "});" else script = "require([#{package_paths}]);" end script } dojo_dir = File.dirname(dojo_path) headers << context.style(type: "text/css") { <<-EOS @import "#{File.join(dojo_dir, "/resources/dojo.css")}"; @import "#{File.join(dojo_dir, "../dijit/themes/tundra/tundra.css")}"; EOS } headers end
onload=(script)
click to toggle source
# File lib/htmlgrid/dojotoolkit.rb, line 156 def onload=(script) (@dojo_onloads ||= []).push(script) end