1 <%@ Control Language="vb" debug="true"%>
\r
3 <script runat="server">
\r
5 Public jsDir as String ="../../ricoClient/js/" ' directory containing Rico's javascript files
\r
6 Public cssDir as String ="../../ricoClient/css/" ' directory containing Rico's css files
\r
7 Public imgDir as String ="../../ricoClient/images/" ' directory containing Rico's image files
\r
8 Public transDir as String =jsDir & "translations/"
\r
9 Public baselibsDir as String =jsDir & "baselibs/"
\r
11 Public jslib as String = "proto" ' base library (proto, jquery, moo, dojo, ext, or glow)
\r
12 Public modules as String ' comma separated list of Rico modules to load
\r
13 Public ricoLogging as Boolean = false ' enable javascript console logging?
\r
14 Public language as String ' if left unset, language will be set automatically based on request's HTTP_ACCEPT_LANGUAGE
\r
15 Public checkQueryString as Boolean = true ' load settings from QueryString? true for demo, false for production
\r
16 Public LoadBaseLib as Boolean = true ' load base Javascript library (prototype, jQuery, etc) from Rico directory?
\r
17 Public grid_striping as Boolean = true ' apply row striping to LiveGrids?
\r
18 Public jQuery_theme_path as String = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/"
\r
20 Protected theme as String = "j-ui-lightness" ' jquery themes start with j-, rico themes start with r-
\r
23 Protected Overrides Sub Render(writer as HTMLTextWriter)
\r
24 if checkQueryString then ricoLogging=CBool(trim(Request.QueryString("log")) <> "")
\r
28 if checkQueryString then
\r
29 qs=trim(Request.QueryString("lib"))
\r
30 if qs<>"" then jslib=qs
\r
32 LoadLib(writer, LCase(jslib))
\r
34 if IsNothing(language) then language=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
\r
35 setLang(writer, language)
\r
37 if checkQueryString then
\r
38 qs=trim(Request.QueryString("theme"))
\r
39 if qs<>"" then theme=qs
\r
42 LoadTheme(writer, theme)
\r
45 dim ricoModule as String
\r
46 dim arModules=split(modules,",")
\r
47 for each ricoModule in arModules
\r
48 requireRicoModule(writer, ricoModule)
\r
54 ' -------------------------------------------------------------
\r
55 ' do client-side initialization
\r
56 ' -------------------------------------------------------------
\r
57 Protected sub SetConfig(writer as HTMLTextWriter)
\r
58 writer.Write(vbLf & "<script type='text/javascript'>")
\r
59 writer.Write(vbLf & "Rico_CONFIG = {")
\r
60 if ricoLogging then writer.Write(vbLf & "enableLogging: true,")
\r
61 writer.Write(vbLf & "jsDir: '" & jsDir & "',")
\r
62 writer.Write(vbLf & "cssDir: '" & cssDir & "',")
\r
63 writer.Write(vbLf & "imgDir: '" & imgDir & "'")
\r
64 writer.Write(vbLf & "};")
\r
65 writer.Write(vbLf & "</" & "script>")
\r
69 ' -------------------------------------------------------------
\r
70 ' set theme to one of the jQuery Themeroller themes
\r
71 ' -------------------------------------------------------------
\r
72 Public WriteOnly Property jTheme() As String
\r
73 Set(ByVal ThemeName As String)
\r
74 theme="j_" & ThemeName
\r
79 ' -------------------------------------------------------------
\r
80 ' set theme to one of the Rico themes
\r
81 ' -------------------------------------------------------------
\r
82 Public WriteOnly Property ricoTheme() As String
\r
83 Set(ByVal ThemeName As String)
\r
84 theme="r_" & ThemeName
\r
89 ' -------------------------------------------------------------
\r
90 ' Check specifed languages and see if there is a ricoLocale file to match
\r
91 ' -------------------------------------------------------------
\r
92 Protected sub setLang(writer as HTMLTextWriter, lang as String)
\r
95 dim arLang=split(LCase(lang),",")
\r
96 for i=0 to ubound(arLang)
\r
97 lang2=lcase(left(trim(arLang(i)),2))
\r
98 if lang2="en" then exit for
\r
99 fname=transDir & "ricoLocale_" & lang2 & ".js"
\r
100 if System.IO.File.Exists(Server.MapPath(fname)) then
\r
101 writer.Write("<script src='" & fname & "' type='text/javascript'></" & "script>")
\r
108 Protected sub LoadLib(writer as HTMLTextWriter, baseLib as String)
\r
109 dim baseFile,adapter
\r
110 select case baseLib
\r
112 baseFile="prototype"
\r
118 baseFile="mootools"
\r
124 baseFile="ext-core"
\r
127 baseFile="glow.core"
\r
133 if LoadBaseLib then writer.Write(vbLf & "<script src='" & baselibsDir & baseFile & ".js' type='text/javascript'></" & "script>")
\r
134 requireRicoJS(writer, "")
\r
135 requireRicoJS(writer, adapter)
\r
136 writer.Write(vbLf & "<script src='" & transDir & "ricoLocale_en.js' type='text/javascript'></" & "script>")
\r
137 requireRicoCSS(writer, "rico")
\r
138 requireRicoJS(writer, "UI")
\r
143 ' -------------------------------------------------------------
\r
145 ' "j-ui-lightness" for a Themeroller theme
\r
146 ' "r-greenHdg" for a native Rico theme
\r
147 ' -------------------------------------------------------------
\r
148 Protected sub LoadTheme(writer as HTMLTextWriter, theme as String)
\r
149 dim prefix,themeFile
\r
150 prefix=left(theme,1)
\r
151 themeFile=mid(theme,3)
\r
154 requireRicoJS(writer, "Themeroller")
\r
155 writer.Write(vbLf & "<link type='text/css' rel='stylesheet' href='" & cssDir & "jquery-base/ui.base.css' />")
\r
156 writer.Write(vbLf & "<link type='text/css' rel='Stylesheet' href='" & jQuery_theme_path & themeFile & "/jquery-ui.css' />")
\r
158 requireRicoCSS(writer, themeFile)
\r
160 if grid_striping then writer.Write(vbLf & "<link type='text/css' rel='stylesheet' href='" & cssDir & "striping/" & themeFile & ".css' />")
\r
164 Protected sub requireRicoModule(writer as HTMLTextWriter, modulename as String)
\r
165 writer.Write(vbLf & "<script type='text/javascript'>Rico.loadModule('" & trim(modulename) & "');</" & "script>")
\r
169 Protected sub requireRicoJS(writer as HTMLTextWriter, filename as String)
\r
170 writer.Write(vbLf & "<script src='" & jsDir & "rico" & filename & ".js' type='text/javascript'></" & "script>")
\r
174 Protected sub requireRicoCSS(writer as HTMLTextWriter, filename as String)
\r
175 writer.Write(vbLf & "<link href='" & cssDir & filename & ".css' type='text/css' rel='stylesheet' />")
\r