In .net, changed bold, italic, underline, and wrap to TriState. Also in .net, Excel...
[infodrom/rico3] / plugins / asp / LoadRicoClient.asp
1 <%\r
2 \r
3 ' ----------------------------------------------------------------------\r
4 '\r
5 ' Page        : LoadRicoClient.asp\r
6 ' Description : Class to load Rico client-side Javascript and CSS\r
7 ' Author      : Matt Brown (dowdybrown@yahoo.com)\r
8 ' Copyright (C) 2006-2011 Matt Brown\r
9 '\r
10 ' Rico is licensed under the Apache License, Version 2.0 (the "License"); you may not use this\r
11 ' file except in compliance with the License. You may obtain a copy of the License at\r
12 ' http://www.apache.org/licenses/LICENSE-2.0\r
13 '\r
14 ' ----------------------------------------------------------------------\r
15 \r
16 class LoadRicoClient\r
17 \r
18 ' Properties\r
19 \r
20 Public jsDir      ' directory containing Rico's javascript files\r
21 Public cssDir     ' directory containing Rico's css files\r
22 Public imgDir     ' directory containing Rico's image files\r
23 Public imgHeading ' background image for grid headings and window titles, used in grayedout theme\r
24 Public BaseLib    ' base library - prototype, jquery, etc\r
25 Public ricoLogging       ' enable console logging?\r
26 Public grid_striping     ' apply row striping to LiveGrids?\r
27 Public LoadBaseLib       ' load base Javascript library (prototype, jQuery, etc)?\r
28 Public jQuery_theme_path ' url to jqueryui themes\r
29 Public SupportedLangs    ' comma-separated list of 2-character codes, representing the files that can be found in jsDir directory. Defaults to ones delivered with Rico.\r
30 \r
31 ' Constructor\r
32 \r
33 Private Sub Class_Initialize\r
34   BaseLib="proto_min"         ' default base library\r
35   jTheme="ui-lightness"\r
36   ricoLogging=false\r
37   grid_striping = true\r
38   LoadBaseLib = true\r
39   SupportedLangs = "de,es,fr,it,ja,ko,pt,ru,uk,zh"\r
40   jQuery_theme_path = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/"\r
41 End Sub\r
42 \r
43 \r
44 ' jquery themes start with j-, rico themes start with r-\r
45 Private theme         \r
46 Public Property Let ricoTheme(ThemeName)\r
47   SetTheme "r-" & ThemeName\r
48 End Property \r
49 Public Property Let jTheme(ThemeName)\r
50   SetTheme "j-" & ThemeName\r
51 End Property\r
52 \r
53 \r
54 Private Sub SetTheme(ByVal PrefixedTheme)\r
55   theme = PrefixedTheme\r
56   If PrefixedTheme = "r-grayedout" Then imgHeading = "grayedout.gif"\r
57 End Sub\r
58 \r
59 \r
60 Public Sub SetRicoClientPaths(ByVal jsPath, cssPath, imgPath)\r
61   jsDir = jsPath\r
62   cssDir= cssPath\r
63   imgDir= imgPath\r
64 End Sub\r
65 \r
66 \r
67 Public Sub SetRicoClientParentPath(ByVal clientDir)\r
68   if mid(clientDir,len(clientDir),1) <> "/" then clientDir=clientDir & "/"\r
69   SetRicoClientPaths clientDir & "js/", clientDir & "css/", clientDir & "images/"\r
70 End Sub\r
71 \r
72 \r
73 ' Used by demo to switch libraries & themes\r
74 ' Do no call in production\r
75 Public Sub CheckQueryString()\r
76   BaseLib=LCase(Request.QueryString("lib"))\r
77   SetTheme trim(Request.QueryString("theme"))\r
78   ricoLogging=CBool(trim(Request.QueryString("log")) <> "")\r
79 end Sub\r
80 \r
81 \r
82 ' This is the main method, which creates the Javscript and CSS links\r
83 Public Sub CreateLinks()\r
84   SetConfig\r
85   if LoadBaseLib then\r
86     if InStr(baseLib,"/") > 0 then\r
87       Response.Write vbLf & "<script src='http://ajax.googleapis.com/ajax/libs/" & baseLib & "' type='text/javascript'></script>"\r
88     else\r
89       Response.Write vbLf & "<script src='" & jsDir & baseLib & "' type='text/javascript'></script>"\r
90     end if\r
91   end if\r
92   requireRicoJS ""\r
93   requireRicoJS "2" & left(baseLib,3)\r
94   requireRicoCSS "rico"\r
95   requireRicoJS "_min"\r
96   setLang\r
97   if theme<>"" then LoadTheme\r
98 End sub\r
99 \r
100 \r
101 ' Create Rico client initialization object\r
102 Private sub SetConfig()\r
103   Response.Write vbLf & "<script type='text/javascript'>"\r
104   Response.Write vbLf & "Rico_CONFIG = {"\r
105   if ricoLogging then Response.Write vbLf & "enableLogging: true,"\r
106   Response.Write vbLf & "jsDir: '" & jsDir & "',"\r
107   if not IsEmpty(imgHeading) then Response.Write vbLf & "imgHeading: '" & imgDir & imgHeading & "',"\r
108   Response.Write vbLf & "imgResize: '" & imgDir & "resize.gif',"\r
109   Response.Write vbLf & "imgIcons: '" & imgDir & "ricoIcons.gif'"\r
110   Response.Write vbLf & "};"\r
111   Response.Write vbLf & "</script>"\r
112 end sub\r
113 \r
114 \r
115 ' -------------------------------------------------------------\r
116 ' Check languages accepted by browser\r
117 ' and see if there is a match\r
118 ' -------------------------------------------------------------\r
119 sub setLang()\r
120   dim fso,lang,lang2,fname,i\r
121 \r
122   lang=lcase(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"))\r
123   arLang=split(lang,",")\r
124   for i=0 to ubound(arLang)\r
125     lang2=lcase(left(trim(arLang(i)),2))\r
126     if lang2="en" then exit for\r
127     If InStr(SupportedLangs, lang2) > 0 Then\r
128       requireRicoJS "Locale_" & lang2\r
129       exit for\r
130     end if\r
131   next\r
132 end sub\r
133 \r
134 \r
135 ' set theme\r
136 ' "j-ui-lightness" for a Themeroller theme\r
137 ' "r-greenHdg" for a native Rico theme\r
138 Private sub LoadTheme()\r
139   dim prefix,themeFile\r
140   prefix=left(theme,1)\r
141   themeFile=mid(theme,3)\r
142   select case prefix\r
143     case "j":\r
144       requireRicoJS "Themeroller"\r
145       Response.Write vbLf & "<link type='text/css' rel='Stylesheet' href='" & jQuery_theme_path & themeFile & "/jquery-ui.css' />"\r
146     case "r":\r
147       requireRicoCSS themeFile\r
148   end select\r
149   if grid_striping then Response.Write vbLf & "<link type='text/css' rel='stylesheet' href='" & cssDir & "striping_" & themeFile & ".css' />"\r
150 end sub\r
151 \r
152 \r
153 Public sub requireRicoJS(filename)\r
154   Response.Write vbLf & "<script src='" & jsDir & "rico" & filename & ".js' type='text/javascript'></script>"\r
155 end sub\r
156 \r
157 \r
158 Public sub requireRicoCSS(filename)\r
159   Response.Write vbLf & "<link href='" & cssDir & filename & ".css' type='text/css' rel='stylesheet' />"\r
160 end sub\r
161 \r
162 End Class\r
163 \r
164 %>\r