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 = "prototype-1.6" ' base library
\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.8.5/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
91 ' -------------------------------------------------------------
\r
92 Public WriteOnly Property noTheme() As String
\r
93 Set(ByVal ThemeName As String)
\r
99 ' -------------------------------------------------------------
\r
100 ' Check specifed languages and see if there is a ricoLocale file to match
\r
101 ' -------------------------------------------------------------
\r
102 Protected sub setLang(writer as HTMLTextWriter, lang as String)
\r
105 dim arLang=split(LCase(lang),",")
\r
106 for i=0 to ubound(arLang)
\r
107 lang2=lcase(left(trim(arLang(i)),2))
\r
108 if lang2="en" then exit for
\r
109 fname=transDir & "ricoLocale_" & lang2 & ".js"
\r
110 if System.IO.File.Exists(Server.MapPath(fname)) then
\r
111 writer.Write("<script src='" & fname & "' type='text/javascript'></" & "script>")
\r
118 Protected sub LoadLib(writer as HTMLTextWriter, baseLib as String)
\r
119 if LoadBaseLib then
\r
120 if InStr(baseLib,"/") > 0 then
\r
121 writer.Write(vbLf & "<script src='http://ajax.googleapis.com/ajax/libs/" & baseLib & "' type='text/javascript'></" & "script>")
\r
123 writer.Write(vbLf & "<script src='" & baselibsDir & baseLib & ".js' type='text/javascript'></" & "script>")
\r
126 requireRicoJS(writer, "")
\r
127 requireRicoJS(writer, "2" & left(baseLib,3))
\r
128 writer.Write(vbLf & "<script src='" & transDir & "ricoLocale_en.js' type='text/javascript'></" & "script>")
\r
129 requireRicoCSS(writer, "rico")
\r
130 requireRicoJS(writer, "UI")
\r
135 ' -------------------------------------------------------------
\r
137 ' "j-ui-lightness" for a Themeroller theme
\r
138 ' "r-greenHdg" for a native Rico theme
\r
139 ' -------------------------------------------------------------
\r
140 Protected sub LoadTheme(writer as HTMLTextWriter, theme as String)
\r
141 dim prefix,themeFile
\r
142 prefix=left(theme,1)
\r
143 themeFile=mid(theme,3)
\r
146 requireRicoJS(writer, "Themeroller")
\r
147 'writer.Write(vbLf & "<link type='text/css' rel='stylesheet' href='" & cssDir & "jquery-base/ui.base.css' />")
\r
148 writer.Write(vbLf & "<link type='text/css' rel='Stylesheet' href='" & jQuery_theme_path & themeFile & "/jquery-ui.css' />")
\r
150 requireRicoCSS(writer, themeFile)
\r
152 if grid_striping then writer.Write(vbLf & "<link type='text/css' rel='stylesheet' href='" & cssDir & "striping/" & themeFile & ".css' />")
\r
156 Protected sub requireRicoModule(writer as HTMLTextWriter, modulename as String)
\r
157 writer.Write(vbLf & "<script type='text/javascript'>Rico.loadModule('" & trim(modulename) & "');</" & "script>")
\r
161 Protected sub requireRicoJS(writer as HTMLTextWriter, filename as String)
\r
162 writer.Write(vbLf & "<script src='" & jsDir & "rico" & filename & ".js' type='text/javascript'></" & "script>")
\r
166 Protected sub requireRicoCSS(writer as HTMLTextWriter, filename as String)
\r
167 writer.Write(vbLf & "<link href='" & cssDir & filename & ".css' type='text/css' rel='stylesheet' />")
\r