rsence-pre 2.1.0.1.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. data/.yardopts +10 -0
  2. data/INSTALL.rdoc +330 -0
  3. data/LICENSE.txt +622 -0
  4. data/README.rdoc +98 -0
  5. data/VERSION +1 -0
  6. data/bin/rsence +25 -0
  7. data/bin/rsence-pre +25 -0
  8. data/conf/default_conf.yaml +346 -0
  9. data/conf/default_strings.yaml +76 -0
  10. data/conf/rsence_command_strings.yaml +444 -0
  11. data/docs/ExampleGuiPlugin.rdoc +193 -0
  12. data/docs/JavascriptBundles.rdoc +0 -0
  13. data/docs/PluginBundleInfo.rdoc +173 -0
  14. data/docs/PluginBundles.rdoc +96 -0
  15. data/docs/Values.rdoc +163 -0
  16. data/js/comm/autosync/autosync.js +17 -0
  17. data/js/comm/autosync/js.inc +0 -0
  18. data/js/comm/comm.js +203 -0
  19. data/js/comm/js.inc +0 -0
  20. data/js/comm/jsloader/js.inc +0 -0
  21. data/js/comm/jsloader/jsloader.js +112 -0
  22. data/js/comm/queue/js.inc +0 -0
  23. data/js/comm/queue/queue.js +184 -0
  24. data/js/comm/session/js.inc +0 -0
  25. data/js/comm/session/session.js +52 -0
  26. data/js/comm/sessionwatcher/js.inc +0 -0
  27. data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
  28. data/js/comm/transporter/js.inc +0 -0
  29. data/js/comm/transporter/transporter.js +261 -0
  30. data/js/comm/urlresponder/js.inc +0 -0
  31. data/js/comm/urlresponder/urlresponder.js +149 -0
  32. data/js/comm/values/js.inc +0 -0
  33. data/js/comm/values/values.js +433 -0
  34. data/js/controls/button/button.js +72 -0
  35. data/js/controls/button/js.inc +0 -0
  36. data/js/controls/button/themes/bright/button.css +89 -0
  37. data/js/controls/button/themes/bright/button.html +7 -0
  38. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  39. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  40. data/js/controls/button/themes/default/button.css +89 -0
  41. data/js/controls/button/themes/default/button.html +7 -0
  42. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  43. data/js/controls/button/themes/default/button_parts1.png +0 -0
  44. data/js/controls/checkbox/checkbox.js +49 -0
  45. data/js/controls/checkbox/js.inc +0 -0
  46. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  47. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  48. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  49. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  50. data/js/controls/dialogs/alert_sheet/alert_sheet.js +63 -0
  51. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  52. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -0
  53. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  54. data/js/controls/dialogs/sheet/js.inc +0 -0
  55. data/js/controls/dialogs/sheet/sheet.js +84 -0
  56. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  57. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  58. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  59. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  60. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  61. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  62. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  63. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  64. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  65. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  66. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  67. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  68. data/js/controls/imageview/imageview.js +109 -0
  69. data/js/controls/imageview/js.inc +0 -0
  70. data/js/controls/imageview/themes/default/blank.gif +0 -0
  71. data/js/controls/passwordcontrol/js.inc +0 -0
  72. data/js/controls/passwordcontrol/passwordcontrol.js +23 -0
  73. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  74. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  75. data/js/controls/progress/progressbar/js.inc +0 -0
  76. data/js/controls/progress/progressbar/progressbar.js +40 -0
  77. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  78. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  79. data/js/controls/progress/progressindicator/js.inc +0 -0
  80. data/js/controls/progress/progressindicator/progressindicator.js +44 -0
  81. data/js/controls/radiobutton/js.inc +0 -0
  82. data/js/controls/radiobutton/radiobutton.js +43 -0
  83. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  84. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  85. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  86. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  87. data/js/controls/sliders/slider/js.inc +0 -0
  88. data/js/controls/sliders/slider/slider.js +357 -0
  89. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  90. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  91. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  92. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  93. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  94. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  95. data/js/controls/sliders/vslider/js.inc +0 -0
  96. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  97. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  98. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  99. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  100. data/js/controls/sliders/vslider/vslider.js +41 -0
  101. data/js/controls/stepper/js.inc +0 -0
  102. data/js/controls/stepper/stepper.js +213 -0
  103. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  104. data/js/controls/stepper/themes/default/stepper.css +14 -0
  105. data/js/controls/stepper/themes/default/stepper.html +2 -0
  106. data/js/controls/stepper/themes/default/stepper.png +0 -0
  107. data/js/controls/stringview/js.inc +0 -0
  108. data/js/controls/stringview/stringview.js +49 -0
  109. data/js/controls/stringview/themes/default/stringview.css +8 -0
  110. data/js/controls/stringview/themes/default/stringview.html +1 -0
  111. data/js/controls/tab/js.inc +0 -0
  112. data/js/controls/tab/tab.js +280 -0
  113. data/js/controls/tab/themes/bright/tab.css +76 -0
  114. data/js/controls/tab/themes/bright/tab.html +6 -0
  115. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  116. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  117. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  118. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  119. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  120. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  121. data/js/controls/tab/themes/default/tab.css +77 -0
  122. data/js/controls/tab/themes/default/tab.html +6 -0
  123. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  124. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  125. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  126. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  127. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  128. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  129. data/js/controls/textarea/js.inc +0 -0
  130. data/js/controls/textarea/textarea.js +24 -0
  131. data/js/controls/textarea/themes/default/textarea.css +21 -0
  132. data/js/controls/textarea/themes/default/textarea.html +18 -0
  133. data/js/controls/textcontrol/js.inc +0 -0
  134. data/js/controls/textcontrol/textcontrol.js +374 -0
  135. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  136. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  137. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  138. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  139. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  140. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  141. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  142. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  143. data/js/controls/uploader/js.inc +0 -0
  144. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  145. data/js/controls/uploader/themes/default/uploader.css +108 -0
  146. data/js/controls/uploader/themes/default/uploader.html +27 -0
  147. data/js/controls/uploader/uploader.js +154 -0
  148. data/js/controls/validatorview/js.inc +0 -0
  149. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  150. data/js/controls/validatorview/themes/default/validator.png +0 -0
  151. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  152. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  153. data/js/controls/validatorview/validatorview.js +62 -0
  154. data/js/controls/window/js.inc +0 -0
  155. data/js/controls/window/themes/default/window.css +219 -0
  156. data/js/controls/window/themes/default/window.html +17 -0
  157. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  158. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  159. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  160. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  161. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  162. data/js/controls/window/themes/default/window_buttons.png +0 -0
  163. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  164. data/js/controls/window/themes/default/window_parts1.png +0 -0
  165. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  166. data/js/controls/window/themes/default/window_parts2.png +0 -0
  167. data/js/controls/window/window.js +286 -0
  168. data/js/core/class/class.js +318 -0
  169. data/js/core/class/js.inc +0 -0
  170. data/js/core/elem/elem.js +1383 -0
  171. data/js/core/elem/js.inc +0 -0
  172. data/js/core/event/event.js +153 -0
  173. data/js/core/event/js.inc +0 -0
  174. data/js/core/iefix/ie_css_element.htc +5 -0
  175. data/js/core/iefix/ie_css_style.htc +5 -0
  176. data/js/core/iefix/iefix.js +359 -0
  177. data/js/core/iefix/js.inc +0 -0
  178. data/js/core/rsence_ns/js.inc +0 -0
  179. data/js/core/rsence_ns/rsence_ns.js +21 -0
  180. data/js/datetime/calendar/calendar.js +198 -0
  181. data/js/datetime/calendar/js.inc +0 -0
  182. data/js/datetime/calendar/themes/default/calendar.css +108 -0
  183. data/js/datetime/calendar/themes/default/calendar.html +9 -0
  184. data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  185. data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  186. data/js/datetime/datetimevalue/datetimevalue.js +247 -0
  187. data/js/datetime/datetimevalue/js.inc +0 -0
  188. data/js/datetime/timesheet/js.inc +0 -0
  189. data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
  190. data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
  191. data/js/datetime/timesheet/timesheet.js +183 -0
  192. data/js/datetime/timesheet_item/js.inc +0 -0
  193. data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  194. data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  195. data/js/datetime/timesheet_item/timesheet_item.js +248 -0
  196. data/js/datetime/timesheet_item_edit/js.inc +0 -0
  197. data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  198. data/js/foundation/application/application.js +208 -0
  199. data/js/foundation/application/js.inc +0 -0
  200. data/js/foundation/control/control.js +339 -0
  201. data/js/foundation/control/controldefaults/controldefaults.js +56 -0
  202. data/js/foundation/control/controldefaults/js.inc +0 -0
  203. data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
  204. data/js/foundation/control/dummyvalue/js.inc +0 -0
  205. data/js/foundation/control/dyncontrol/dyncontrol.js +500 -0
  206. data/js/foundation/control/dyncontrol/js.inc +0 -0
  207. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  208. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  209. data/js/foundation/control/eventresponder/eventresponder.js +750 -0
  210. data/js/foundation/control/eventresponder/js.inc +0 -0
  211. data/js/foundation/control/js.inc +0 -0
  212. data/js/foundation/control/valuematrix/js.inc +0 -0
  213. data/js/foundation/control/valuematrix/valuematrix.js +135 -0
  214. data/js/foundation/control/valueresponder/js.inc +0 -0
  215. data/js/foundation/control/valueresponder/valueresponder.js +79 -0
  216. data/js/foundation/eventmanager/eventmanager.js +991 -0
  217. data/js/foundation/eventmanager/js.inc +0 -0
  218. data/js/foundation/geom/point/js.inc +0 -0
  219. data/js/foundation/geom/point/point.js +202 -0
  220. data/js/foundation/geom/rect/js.inc +0 -0
  221. data/js/foundation/geom/rect/rect.js +651 -0
  222. data/js/foundation/json_renderer/js.inc +0 -0
  223. data/js/foundation/json_renderer/json_renderer.js +246 -0
  224. data/js/foundation/system/js.inc +0 -0
  225. data/js/foundation/system/system.js +381 -0
  226. data/js/foundation/thememanager/js.inc +0 -0
  227. data/js/foundation/thememanager/thememanager.js +393 -0
  228. data/js/foundation/value/js.inc +0 -0
  229. data/js/foundation/value/value.js +183 -0
  230. data/js/foundation/view/js.inc +0 -0
  231. data/js/foundation/view/markupview/js.inc +0 -0
  232. data/js/foundation/view/markupview/markupview.js +114 -0
  233. data/js/foundation/view/morphanimation/js.inc +0 -0
  234. data/js/foundation/view/morphanimation/morphanimation.js +237 -0
  235. data/js/foundation/view/view.js +1812 -0
  236. data/js/foundation/view/viewdefaults/js.inc +0 -0
  237. data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
  238. data/js/lists/checkboxlist/checkboxlist.js +171 -0
  239. data/js/lists/checkboxlist/js.inc +0 -0
  240. data/js/lists/listitems/js.inc +0 -0
  241. data/js/lists/listitems/listitems.js +88 -0
  242. data/js/lists/propertylist/js.inc +0 -0
  243. data/js/lists/propertylist/propertylist.js +326 -0
  244. data/js/lists/radiobuttonlist/js.inc +0 -0
  245. data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
  246. data/js/util/reloadapp/js.inc +0 -0
  247. data/js/util/reloadapp/reloadapp.js +152 -0
  248. data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  249. data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
  250. data/js/util/sha/js.inc +0 -0
  251. data/js/util/sha/sha.js +426 -0
  252. data/js/views/centerview/centerview.js +75 -0
  253. data/js/views/centerview/js.inc +0 -0
  254. data/js/views/inlineview/inlineview.js +15 -0
  255. data/js/views/inlineview/js.inc +0 -0
  256. data/js/views/scrollview/js.inc +0 -0
  257. data/js/views/scrollview/scrollview.js +40 -0
  258. data/lib/conf/argv.rb +850 -0
  259. data/lib/conf/default.rb +219 -0
  260. data/lib/daemon/daemon.rb +387 -0
  261. data/lib/daemon/sigcomm.rb +64 -0
  262. data/lib/http/broker.rb +150 -0
  263. data/lib/http/rackup.rb +91 -0
  264. data/lib/http/request.rb +66 -0
  265. data/lib/http/response.rb +65 -0
  266. data/lib/plugins/dependencies.rb +285 -0
  267. data/lib/plugins/gui_plugin.rb +160 -0
  268. data/lib/plugins/guiparser.rb +123 -0
  269. data/lib/plugins/plugin.rb +438 -0
  270. data/lib/plugins/plugin_base.rb +162 -0
  271. data/lib/plugins/plugin_plugins.rb +81 -0
  272. data/lib/plugins/plugin_sqlite_db.rb +98 -0
  273. data/lib/plugins/pluginmanager.rb +635 -0
  274. data/lib/plugins/plugins.rb +169 -0
  275. data/lib/plugins/servlet.rb +108 -0
  276. data/lib/rsence.rb +32 -0
  277. data/lib/session/msg.rb +327 -0
  278. data/lib/session/sessionmanager.rb +522 -0
  279. data/lib/session/sessionstorage.rb +340 -0
  280. data/lib/transporter/transporter.rb +263 -0
  281. data/lib/util/gzstring.rb +9 -0
  282. data/lib/util/ruby19_fixes.rb +18 -0
  283. data/lib/values/hvalue.rb +378 -0
  284. data/lib/values/valuemanager.rb +172 -0
  285. data/plugins/client_pkg/client_pkg.rb +157 -0
  286. data/plugins/client_pkg/info.yaml +25 -0
  287. data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
  288. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  289. data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -0
  290. data/plugins/index_html/img/loading.gif +0 -0
  291. data/plugins/index_html/img/riassence.gif +0 -0
  292. data/plugins/index_html/index_html.rb +120 -0
  293. data/plugins/index_html/info.yaml +18 -0
  294. data/plugins/index_html/tmpl/index.html +15 -0
  295. data/plugins/main/info.yaml +18 -0
  296. data/plugins/main/js/main.js +84 -0
  297. data/plugins/main/main.rb +255 -0
  298. data/plugins/main/values.yaml +8 -0
  299. data/plugins/ticket/info.yaml +21 -0
  300. data/plugins/ticket/lib/common.rb +392 -0
  301. data/plugins/ticket/lib/favicon.rb +39 -0
  302. data/plugins/ticket/lib/file.rb +58 -0
  303. data/plugins/ticket/lib/img.rb +50 -0
  304. data/plugins/ticket/lib/objblob.rb +66 -0
  305. data/plugins/ticket/lib/rsrc.rb +34 -0
  306. data/plugins/ticket/lib/upload.rb +236 -0
  307. data/plugins/ticket/ticket.rb +333 -0
  308. data/setup/welcome/gui/welcome.yaml +92 -0
  309. data/setup/welcome/info.yaml +13 -0
  310. data/setup/welcome/text/welcome.html +9 -0
  311. data/setup/welcome/values.yaml +9 -0
  312. data/setup/welcome/welcome.rb +54 -0
  313. metadata +407 -0
@@ -0,0 +1,393 @@
1
+ /* RSence
2
+ * Copyright 2006 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /** The default path where to look for themes.
10
+ **/
11
+ var//RSence.Foundation
12
+ HDefaultThemePath = '/H/themes';
13
+
14
+
15
+ /** Name of the default theme.
16
+ **/
17
+ var//RSence.Foundation
18
+ HDefaultThemeName = 'default';
19
+
20
+ /** List of themes without component-specific theme files.
21
+ **/
22
+ var//RSence.Foundation
23
+ HNoComponentCSS = [];
24
+
25
+ /** List of themes without a common.css file to load.
26
+ **/
27
+ var//RSence.Foundation
28
+ HNoCommonCSS = [];
29
+
30
+ /** List of IE6-savvy themes.
31
+ **/
32
+ var//RSence.Foundation
33
+ HThemeHasIE6GifsInsteadOfPng = ['default'];
34
+
35
+ /*** = Description
36
+ ** A single instance class.
37
+ ** The theme manager knows the name of the currently loaded theme and handles
38
+ ** the loading of theme specific markup snippets and style declarations.
39
+ **
40
+ ** = Instance variables
41
+ ** +themePath+:: Default root path of the themes path, should contain
42
+ ** at least the default theme.
43
+ ** +currentTheme+:: The name of the theme currently in use. Initially the
44
+ ** default unnamed theme is used.
45
+ **
46
+ ***/
47
+ var//RSence.Foundation
48
+ HThemeManager = HClass.extend({
49
+
50
+ constructor: null,
51
+
52
+ init: function(){
53
+ this.themePath = HDefaultThemePath;
54
+ this._tmplCache = {};
55
+ this._cssCache = {};
56
+ this.currentTheme = HDefaultThemeName;
57
+ },
58
+
59
+ setThemePath: function( _path ){
60
+ this.themePath = _path;
61
+ },
62
+
63
+ // Error messages, should be refined.
64
+ _errTemplateNotFound: function( _url ) {
65
+ console.log( "ERROR: Template Not Found: '" + _url + "' ");
66
+ },
67
+ _errTemplateFailure: function( _url ) {
68
+ console.log( "ERROR: Template Failure: '" + _url + "' ");
69
+ },
70
+ _errTemplateException: function( _url ) {
71
+ console.log( "ERROR: Template Exception: '" + _url + "' ");
72
+ },
73
+
74
+ /** = Description
75
+ * Loads a template file and returns its contents.
76
+ * If errors occurred, calls the error management functions.
77
+ *
78
+ * = Parameters
79
+ * +_url+:: A valid local file path or http url pointing to the
80
+ * resource to load.
81
+ * +_contentType+:: An optional parameter, specifies the content type wanted,
82
+ * defaults to text/html.
83
+ *
84
+ * = Returns
85
+ * The contents of the path.
86
+ **/
87
+ fetch: function( _url, _contentType, _callBack, _async ) {
88
+ var _callBackFun;
89
+ if( !_contentType ){
90
+ _contentType = 'text/html; charset=UTF-8';
91
+ }
92
+ if(_async){
93
+ _callBackFun = function( resp ){
94
+ _callBack( resp.X.responseText );
95
+ };
96
+ }
97
+ else{
98
+ // console.log('WARNING: Fetching synchronously using HThemeManager is not recommended. Use pre-packaged themes instead.');
99
+ var _respText;
100
+ _callBackFun = function( resp ){
101
+ _respText = resp.X.responseText;
102
+ };
103
+ }
104
+ COMM.request(
105
+ _url, {
106
+ onSuccess: _callBackFun,
107
+ on404: function(resp){ HThemeManager._errTemplateNotFound( resp.url ); },
108
+ onFailure: function(resp){ HThemeManager._errTemplateFailure( resp.url ); },
109
+ onException: function(resp){ HThemeManager._errTemplateException( resp.url ); },
110
+ method: 'GET',
111
+ async: _async
112
+ }
113
+ );
114
+ if(!_async){
115
+ return _respText;
116
+ }
117
+ },
118
+
119
+
120
+ /** Returns the theme/component -specific path, called from inside css
121
+ * themes, a bit kludgy approach to tell the theme graphics file paths.
122
+ **/
123
+ getThemeGfxPath: function() {
124
+ var _themeName = this._cssEvalParams[0],
125
+ _componentName = this._cssEvalParams[1],
126
+ _themePath = this._cssEvalParams[2],
127
+ _urlPrefix = this._urlPrefix( _themeName, _componentName, _themePath );
128
+ return this._joinPath( _urlPrefix, 'gfx' );
129
+ },
130
+
131
+ /** = Description
132
+ * Returns the theme/component -specific graphics file path with proper css wrappers.
133
+ * Used from inside css themes, a bit kludgy approach to tell the file name path.
134
+ *
135
+ * = Parameters
136
+ * +_fileName+:: The File name to load.
137
+ *
138
+ **/
139
+ getCssFilePath: function( _fileName ){
140
+ var _themeName = this._cssEvalParams[0];
141
+ if((HThemeHasIE6GifsInsteadOfPng.indexOf(_themeName)!==-1) && (BROWSER_TYPE.ie6 || BROWSER_TYPE.symbian) ){
142
+ return "url('"+this._joinPath( this.getThemeGfxPath(), _fileName.replace('.png','-ie6.gif') )+"')";
143
+ }
144
+ else {
145
+ return "url('"+this._joinPath( this.getThemeGfxPath(), _fileName )+"')";
146
+ }
147
+ },
148
+
149
+ /** = Description
150
+ * Loads a css file based on the given url (or file path).
151
+ * Evaluates the css data.
152
+ * Makes sure the browser uses the data for component styles.
153
+ *
154
+ * = Parameter
155
+ * +_url+:: A valid url that points to a valid css file.
156
+ *
157
+ * = Returns
158
+ * The source of the url.
159
+ *
160
+ **/
161
+ loadCSS: function( _url ) {
162
+ var _contentType = 'text/css',
163
+ _cssFun = function(_cssText){
164
+ // Don't try to do anything with empty or invalid css data:
165
+ if (!_cssText || _cssText === "") {
166
+ return;
167
+ }
168
+ HThemeManager.useCSS( _cssText );
169
+ };
170
+ this.fetch( _url, _contentType, _cssFun, true );
171
+ },
172
+
173
+ useCSS: function( _cssText ){
174
+ var _contentType = 'text/css';
175
+ // Evaluate the css text
176
+ _cssText = this._bindCSSVariables( _cssText );
177
+
178
+ var _style, _styleSheet, _head;
179
+
180
+ if(BROWSER_TYPE.ie) {
181
+ // Internet Explorer (at least 6.x; check what 7.x does)
182
+ _style = document.createStyleSheet();
183
+ _style.cssText = _cssText;
184
+ }
185
+
186
+ else {
187
+ // Common, standard <style> tag generation in <head>
188
+ _style = document.createElement( "style" );
189
+ _style.type = _contentType;
190
+ _style.media = "all";
191
+
192
+ _head = document.getElementsByTagName('head')[0];
193
+ _head.appendChild(_style);
194
+
195
+ if (BROWSER_TYPE.safari) {
196
+ // Work-around for safari
197
+ var _cssTextElement = document.createTextNode(_cssText);
198
+ _style.appendChild(_cssTextElement);
199
+ }
200
+ else {
201
+ // This works for others (add more checks, if problems with new browsers)
202
+ _style.innerHTML = _cssText;
203
+ }
204
+ }
205
+
206
+ },
207
+
208
+ _addSlash: function( _str ){
209
+ if( _str[ _str.length-1 ] !== '/' ){
210
+ _str += '/';
211
+ }
212
+ return _str;
213
+ },
214
+
215
+ _joinPath: function( _str1, _str2 ){
216
+ return this._addSlash( _str1 ) + _str2;
217
+ },
218
+
219
+ // Makes a common url prefix for template files
220
+ _urlPrefix: function( _themeName, _componentName, _themePath ) {
221
+
222
+ var _path = _themePath;
223
+
224
+ // Usually null
225
+ if( _themePath === null ) {
226
+ _path = this.themePath;
227
+ }
228
+
229
+ _path = this._joinPath( _path, _themeName );
230
+
231
+ return _path;
232
+ },
233
+
234
+ // Makes a valid css template url
235
+ _cssUrl: function( _themeName, _componentName, _themePath ) {
236
+ this._cssEvalParams = [_themeName, _componentName, _themePath];
237
+ var _cssPrefix = this._urlPrefix( _themeName, _componentName, _themePath ),
238
+ _cssSuffix = this._joinPath( 'css', _componentName+'.css' ),
239
+ _cssUrl = this._joinPath( _cssPrefix, _cssSuffix );
240
+ return _cssUrl;
241
+ },
242
+
243
+ // Makes a valid html template url
244
+ _markupUrl: function( _themeName, _componentName, _themePath ) {
245
+ var _htmlPrefix = this._urlPrefix( _themeName, _componentName, _themePath ),
246
+ _htmlSuffix = this._joinPath( 'html', _componentName+'.html' ),
247
+ _htmlUrl = this._joinPath( _htmlPrefix, _htmlSuffix );
248
+ return _htmlUrl;
249
+ },
250
+
251
+ /** = Description
252
+ * Loads HTML templates of components. Handles caching independently and
253
+ * intelligently.
254
+ *
255
+ * = Parameters
256
+ * +_themeName+:: The name of the template to use.
257
+ * +_componentName+:: The name of the component template (css/html) to load.
258
+ * +_themePath+:: Optional, parameter to override the global theme path.
259
+ *
260
+ * = Returns
261
+ * The Pre-Evaluated HTML Template.
262
+ *
263
+ **/
264
+ loadMarkup: function( _themeName, _componentName, _themePath ) {
265
+ if( !this._tmplCache[_themeName] ){
266
+ this._tmplCache[_themeName] = {};
267
+ }
268
+ var _cached = this._tmplCache[_themeName][_componentName];
269
+
270
+ if (null === _cached || undefined === _cached) {
271
+ var _markupUrl = this._markupUrl( _themeName, _componentName, _themePath ),
272
+ _markup = this.fetch( _markupUrl, null, null, false );
273
+ return this.setMarkup( _themeName, _componentName, _markup );
274
+ }
275
+ return _cached;
276
+ },
277
+
278
+ /** = Description
279
+ * Sets the html template for the theme and component name combination.
280
+ *
281
+ * = Parameters
282
+ * +_themeName+:: The name of the template to use..
283
+ * +_componentName+:: The name of the component template.
284
+ * +_markup+:: The content of the html markup.
285
+ **/
286
+ setMarkup: function( _themeName, _componentName, _markup ){
287
+ // Save an empty string to template cache to prevent repeated failing
288
+ // requests.
289
+ if (null === _markup || undefined === _markup) {
290
+ _markup = "";
291
+ }
292
+ this._tmplCache[_themeName][_componentName] = _markup;
293
+ return _markup;
294
+ },
295
+
296
+ /** = Description
297
+ * Loads CSS and HTML templates of components. Called from HView#_loadMarkup.
298
+ * Returns the HTML Template as text.
299
+ * Manages file caches independently and intelligently.
300
+ *
301
+ * = Parameters
302
+ * +_themeName+:: The name of the template to use.
303
+ * +_componentName+:: The name of the component template (css/html) to load.
304
+ * +_themePath+:: Optional, parameter to override the global theme path.
305
+ *
306
+ * = Returns
307
+ * The Pre-Evaluated HTML Template.
308
+ *
309
+ **/
310
+ getMarkup: function( _themeName, _componentName, _themePath ) {
311
+ /* Load Theme-Specific CSS: */
312
+ if(!this._cssCache[_themeName]){
313
+ this._cssCache[_themeName] = {};
314
+ if(HNoCommonCSS.indexOf(_themeName)===-1){
315
+ var _commonCssUrl = this._cssUrl( _themeName, 'common', _themePath, null );
316
+ this.loadCSS( _commonCssUrl );
317
+ }
318
+ }
319
+
320
+ /* Load Component-Specific CSS, unless configured to only load the common css: */
321
+ if(HNoComponentCSS.indexOf(_themeName)===-1){
322
+ if (!this._cssCache[_themeName][_componentName]){
323
+ var _componentCssUrl = this._cssUrl( _themeName, _componentName, _themePath );
324
+ this._cssCache[_themeName][_componentName] = true;
325
+ this.loadCSS( _componentCssUrl );
326
+ }
327
+ }
328
+
329
+ /* Load/Return Component-Specific HTML: */
330
+ return this.loadMarkup( _themeName, _componentName, _themePath );
331
+ },
332
+
333
+
334
+ _componentGfxPath: function( _themeName, _componentName, _themePath ) {
335
+ var _urlPrefix = this._urlPrefix( _themeName, _componentName, _themePath ),
336
+ _url = this._joinPath( _urlPrefix, 'gfx' );
337
+ return _url;
338
+ },
339
+ _componentGfxFile: function( _themeName, _componentName, _themePath, _fileName ){
340
+ if((HThemeHasIE6GifsInsteadOfPng.indexOf(_themeName)!==-1) && BROWSER_TYPE.ie6){
341
+ return this._joinPath( this._componentGfxPath(_themeName, _componentName, _themePath), _fileName.replace('.png','-ie6.gif') );
342
+ }
343
+ return this._joinPath( this._componentGfxPath(_themeName, _componentName, _themePath), _fileName );
344
+ },
345
+
346
+
347
+ /** = Description
348
+ * Returns the full path of the +_fileName+ given. Uses the default theme.
349
+ **/
350
+ getThemeGfxFile: function( _fileName ) {
351
+ return this.getThemeGfxPath() + _fileName;
352
+ },
353
+
354
+
355
+ /** = Description
356
+ * Sets the active theme.
357
+ *
358
+ * = Parameters
359
+ * +_theme+:: The name of the theme to be set as the active theme.
360
+ *
361
+ **/
362
+ setTheme: function(_theme) {
363
+ this.currentTheme = _theme;
364
+ },
365
+
366
+ /** Sets the default theme ( HDefaultTheme ) to be the active theme.
367
+ **/
368
+ restoreDefaultTheme: function() {
369
+ this.setTheme( HDefaultThemeName );
370
+ },
371
+
372
+ /** regexp: _variable_match
373
+ * A regular expression to match the template evaluation syntax: #{stuff_to_evaluate}
374
+ **/
375
+ _variable_match: new RegExp(/#\{([^\}]*)\}/),
376
+
377
+ /** = Description
378
+ * Evaluates the _variable_match regular expression for the string _markup.
379
+ *
380
+ * = Parameters
381
+ * +_cssTmpl+:: The css template file to be evaluated.
382
+ *
383
+ * = Returns
384
+ * An evaluated CSS Template.
385
+ **/
386
+ _bindCSSVariables: function( _cssTmpl ) {
387
+ while ( this._variable_match.test( _cssTmpl ) ) {
388
+ _cssTmpl = _cssTmpl.replace( this._variable_match, eval( RegExp.$1 ) );
389
+ }
390
+ return _cssTmpl;
391
+ }
392
+
393
+ });
File without changes
@@ -0,0 +1,183 @@
1
+ /* RSence
2
+ * Copyright 2006 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /*** = Description
10
+ ** Data value synchonization container object.
11
+ **
12
+ ** +HValue+ is the default class to use for data syrchronization purposes.
13
+ ** It's smart enough to tell COMM.Values (Value Manager) that it has
14
+ ** been changed.
15
+ **
16
+ ** A single HValue instance can be bound to any number of responders, the
17
+ ** main client-side responder class is +HControl+.
18
+ **
19
+ ** When you change the value in one of the instances bound to the HValue
20
+ ** instances, all other instances get notified too and the server is also
21
+ ** notified and can be further bound on the server side to any number of
22
+ ** responders there too.
23
+ **
24
+ ** An instance constructed with "false" (Boolean) as its id is not reported
25
+ ** to the server. Such an instance can be used for client-side responder
26
+ ** synchronization.
27
+ **
28
+ ** Priority-wise, only the server can create a value id. If a value id is
29
+ ** created on the client, the server won't recognize nor accept it.
30
+ **
31
+ ** If a value is changed on the server, it overrides the changes on
32
+ ** the client, so no server-client lock is needed in this model.
33
+ **
34
+ ** = Instance variables:
35
+ ** +id+:: Value Id, used by the whole value management system to identify individual values.
36
+ ** +type+:: '[HValue]'
37
+ ** +value+:: The container/"payload" data value itself.
38
+ ** +views+:: A list of Components that uses this value.
39
+ ** Used for automatic value syncronization between responders.
40
+ ***/
41
+ var//RSence.Foundation
42
+ HValue = HClass.extend({
43
+
44
+ /** = Description
45
+ * Constructs a value with the initial value +_value+ and the unique id +_id+.
46
+ *
47
+ * Only the server can create value id's, so use false when constructing
48
+ * from the client. A value with a false id is not reported to the server.
49
+ *
50
+ * = Parameters
51
+ * +_id+:: The source id (ideally set by server, should be unique)
52
+ * +_value+:: The initial data
53
+ *
54
+ **/
55
+ constructor: function(_id,_value){
56
+ this.id = _id;
57
+ this.value = _value;
58
+ this.views = [];
59
+ if(_id){
60
+ COMM.Values.add(_id,this);
61
+ }
62
+ },
63
+
64
+ /** Destructor method. Releases all bindings.
65
+ **/
66
+ die: function(){
67
+ for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
68
+ var _tryObj = this.views[_viewNum];
69
+ _tryObj.setValueObj( HDummyValue.nu() );
70
+ this.views.splice(_viewNum,1);
71
+ }
72
+ if(this.id){
73
+ COMM.Values.del(this.id);
74
+ }
75
+ },
76
+
77
+ /** = Description
78
+ * Replaces the data of the value.
79
+ *
80
+ * Extend this method, if you want client-side validation in the value itself.
81
+ *
82
+ * = Parameters
83
+ * +_value+:: The new data to replace the old data with.
84
+ *
85
+ **/
86
+ set: function(_value){
87
+ if(this.differs(_value)){
88
+ this.value = _value;
89
+ if(this.id){
90
+ COMM.Values.changed(this);
91
+ }
92
+ this.refresh();
93
+ }
94
+ },
95
+
96
+ /** Compares +_value+ with +self.value+.
97
+ * = Returns
98
+ * true or false, depending on the equality
99
+ **/
100
+ differs: function(_value){
101
+ return (COMM.Values.encode(_value) !== COMM.Values.encode(this.value));
102
+ },
103
+
104
+ /** = Description
105
+ * Setter for the server.
106
+ *
107
+ * Just as +self.set+, but doesn't re-notify the server about the change.
108
+ **/
109
+ s: function(_value){
110
+ this.value = _value;
111
+ this.refresh();
112
+ },
113
+
114
+ /** = Description
115
+ * Return the data, returns the +self.value+ instance variable
116
+ *
117
+ * Returns:
118
+ * The value instance variable (the data "payload")
119
+ **/
120
+ get: function(){
121
+ return this.value;
122
+ },
123
+
124
+ /** = Description
125
+ * Bind a responder to the value, use to attach HValues to responders derived from HControl.
126
+ *
127
+ * = Parameters
128
+ * +_responder+:: Any responder that is derived from HControl or any other
129
+ * class instance that implements HValueResponder or has
130
+ * compatible typing.
131
+ **/
132
+ bind: function(_responder){
133
+ if(_responder===undefined){
134
+ throw("HValueBindError: responder is undefined!");
135
+ }
136
+ if(this.views.indexOf(_responder)===-1){
137
+ this.views.push(_responder);
138
+ _responder.setValueObj( this );
139
+ }
140
+ },
141
+
142
+ /** = Description
143
+ * Release a responder bound to the HValue instance itself.
144
+ *
145
+ * = Parameters
146
+ * +_responder+:: Any responder that is derived from HControl or any other
147
+ * class instance that implements HValueResponder or has
148
+ * compatible typing.
149
+ **/
150
+ unbind: function(_responder){
151
+ for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
152
+ var _tryObj = this.views[_viewNum];
153
+ if(_tryObj===_responder){
154
+ this.views.splice(_viewNum,1);
155
+ return;
156
+ }
157
+ }
158
+ },
159
+
160
+ /** Alias of +self.unbind+, opposite of +bind+.
161
+ **/
162
+ release: function(_responder){
163
+ return this.unbind(_responder);
164
+ },
165
+
166
+ /** Calls the setValue method all responders bound to this HValue.
167
+ **/
168
+ refresh: function(){
169
+ for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
170
+ var _responder = this.views[_viewNum];
171
+ if(_responder.value !== this.value){
172
+ if(!_responder._valueIsBeingSet){
173
+ _responder._valueIsBeingSet=true;
174
+ _responder.setValue( this.value );
175
+ _responder._valueIsBeingSet=false;
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ });
182
+
183
+
File without changes
File without changes
@@ -0,0 +1,114 @@
1
+ /* RSence
2
+ * Copyright 2006 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /*** = Description
10
+ ** Serves as a mixin class for classes that need to draw markup but don't
11
+ ** inherit from the HView.
12
+ **
13
+ ** = Instance variables
14
+ ** +markup+:: The markup from the component's HTML template.
15
+ ***/
16
+ var//RSence.Foundation
17
+ HMarkupView = HClass.extend({
18
+
19
+ /** = Description
20
+ * Evaluates the pieces of code defined in the markup template marked with
21
+ * syntax #{}.
22
+ * Can't use } characters in the code though.
23
+ * --
24
+ * This might need another look...
25
+ * ++
26
+ * Places the resulting markup in the instance variable.
27
+ *
28
+ **/
29
+ bindMarkupVariables: function() {
30
+
31
+ var _markup = this.markup;
32
+
33
+ while ( HMarkupView._assignment_match.test(_markup) ) {
34
+ _markup = _markup.replace( HMarkupView._assignment_match, this.evalMarkupVariable(RegExp.$1,true) );
35
+ }
36
+ while ( HMarkupView._variable_match.test(_markup) ) {
37
+ _markup = _markup.replace( HMarkupView._variable_match, this.evalMarkupVariable(RegExp.$1) );
38
+ }
39
+
40
+ this.markup = _markup;
41
+
42
+ return this;
43
+ },
44
+ /** = Description
45
+ * Evaluates a string and throws an error into console.log
46
+ * if the string doesn't pass evaluation.
47
+ * If _isAssignment flag is set to true returns empty string.
48
+ * if _isAssignment is set to false will return string if it passes
49
+ * evaluation.
50
+ *
51
+ * = Parameters
52
+ * +_strToEval+:: A String to evaluate.
53
+ *
54
+ * +_isAssignment+:: Flag to indicate return the String upon passed
55
+ * evaluation(false) or return of an empty String(true).
56
+ *
57
+ * = Returns
58
+ * +String+
59
+ *
60
+ **/
61
+ evalMarkupVariable: function(_strToEval,_isAssignment){
62
+ try {
63
+ var _ID = this.elemId.toString(),
64
+ _WIDTH = this.rect.width,
65
+ _HEIGHT = this.rect.height,
66
+ _result = eval(_strToEval);
67
+ if(_isAssignment){
68
+ return '';
69
+ }
70
+ if(_result===undefined){
71
+ return '';
72
+ }
73
+ else {
74
+ return _result;
75
+ }
76
+ }
77
+ catch(e) {
78
+ console.log("Warning, the markup string '"+_strToEval+"' failed evaluation. Reason:"+e+' '+e.description);
79
+ return '';
80
+ }
81
+ },
82
+
83
+ /** = Description
84
+ * Sets or unsets the _cssClass into a DOM element that goes by the ID
85
+ * _elementId.
86
+ *
87
+ * = Parameters
88
+ * +_elementId+:: ID of the DOM element, or the element itself, to be
89
+ * modified.
90
+ * +_cssClass+:: Name of the CSS class to be added or removed.
91
+ * +_setOn+:: Boolean value that tells should the CSS class be added or
92
+ * removed.
93
+ *
94
+ * = Returns
95
+ * +self+
96
+ *
97
+ **/
98
+ toggleCSSClass: function(_elementId, _cssClass, _setOn) {
99
+ if(_elementId) {
100
+ if (_setOn) {
101
+ ELEM.addClassName(_elementId, _cssClass);
102
+ }
103
+ else {
104
+ ELEM.removeClassName(_elementId, _cssClass);
105
+ }
106
+ }
107
+ return this;
108
+ }
109
+
110
+ },{
111
+ _variable_match: new RegExp(/#\{([^\}]*)\}/),
112
+ _assignment_match: new RegExp(/\$\{([^\}]*)\}/)
113
+ });
114
+
File without changes