rsence-pre 2.1.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
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,116 @@
1
+ /* RSence
2
+ * Copyright 2009 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
+ ** HRadiobuttonList expects the setListItems to be set. See HListItems.
11
+ ** The value of the instance is the selected key in the listItems.
12
+ ***/
13
+ var//RSence.Lists
14
+ HRadioButtonList = HControl.extend({
15
+ drawSubviews: function(){
16
+ this.setStyle('border','1px solid #999');
17
+ this.setStyle('overflow-y','auto');
18
+ },
19
+ listItems: [],
20
+ listItemViews: [],
21
+
22
+ /** = Description
23
+ * Setter function for listItems and listItemViews. Destroys
24
+ * the old HRadiabuttons before creating the new ones based on the
25
+ * listItems given as an parameter.
26
+ *
27
+ * = Parameters
28
+ * +_listItems+:: listItems is an array-packed array, where each index in the
29
+ * surrounding array contains a [ value, label ] pair.
30
+ * The value is mapped to the value of the HRadiobuttonList
31
+ * instance when its HRadiobutton instance is selected.
32
+ *
33
+ **/
34
+ setListItems: function(_listItems){
35
+ var _listItem,
36
+ _value,
37
+ _label,
38
+ _radioButton,
39
+ i = 0;
40
+ for ( ; i < this.listItemViews.length; i++ ) {
41
+ try {
42
+ this.listItemViews[i].die();
43
+ }
44
+ catch(e) {
45
+ console.log('HRadiobuttonList, setListItems item destruction error: ',e);
46
+ }
47
+ }
48
+ this.listItems = _listItems;
49
+ this.listItemViews = [];
50
+ for ( i = 0 ; i < _listItems.length; i++ ){
51
+ _listItem = _listItems[i];
52
+ _value = _listItem[0];
53
+ _label = _listItem[1];
54
+ _radioButton = HRadiobutton.nu(
55
+ [ 4, (i*23)+4, null, 23, 4, null ],
56
+ this, {
57
+ label: _label
58
+ }
59
+ );
60
+ this.listItemViews[i] = _radioButton;
61
+ }
62
+ this.refreshValue();
63
+ },
64
+
65
+ /** = Description
66
+ * Destructor. Sets listItems and listItemViews to null and initiates
67
+ * destructor for radioButtonIndexValue.
68
+ *
69
+ **/
70
+ die: function(){
71
+ this.listItems = null;
72
+ this.listItemViews = null;
73
+ this.radioButtonIndexValue.die();
74
+ this.base();
75
+ },
76
+ radioButtonIndexValue: false,
77
+ radioButtonResponder: false,
78
+
79
+ /** = Description
80
+ *
81
+ *
82
+ **/
83
+ RadioButtonIndexResponder: HValueResponder.extend({
84
+ constructor: function( _parent, _valueObj ){
85
+ this.parent = _parent;
86
+ },
87
+ refresh: function(){
88
+ var _listItems = this.parent.listItems;
89
+ if(_listItems[ this.value ] !== undefined){
90
+ this.parent.setValue( _listItems[ this.value ][0] );
91
+ }
92
+ }
93
+ }),
94
+ refreshValue: function(){
95
+ var _value = this.value;
96
+ if ( this.listItems.length !== 0 && this['valueMatrix'] !== undefined ) {
97
+ if ( this.radioButtonResponder === false ){
98
+ this.radioButtonIndexValue = HValue.nu( false, 0 );
99
+ this.radioButtonIndexValue.bind( this.valueMatrix );
100
+ this.radioButtonResponder = this.RadioButtonIndexResponder.nu( this );
101
+ this.radioButtonIndexValue.bind( this.radioButtonResponder );
102
+ }
103
+ for ( var i = 0; i < this.listItems.length; i++ ) {
104
+ if ( this.listItems[i][0] === _value ) {
105
+ this.radioButtonResponder.setValue( -1 );
106
+ this.radioButtonResponder.setValue( i );
107
+ break;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ });
113
+
114
+ var//RSence.Lists
115
+ HRadiobuttonList = HRadioButtonList;
116
+
File without changes
@@ -0,0 +1,152 @@
1
+ /* RSence
2
+ * Copyright 2008 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
+ ** An application designed to display errors.
11
+ **
12
+ ** Used automatically by the server to report issues.
13
+ ** Stops COMM.Transporter and displays a HWindow with the message contained.
14
+ ** Has two buttons: *Reset Session* and *Reload*
15
+ **
16
+ ** = Usage
17
+ ** jsLoader.load('servermessage');
18
+ ** ReloadApp.nu( 'Session Timeout', 'Your session has timed out', '/' );
19
+ **
20
+ **/
21
+ var//RSence
22
+ ReloadApp = HApplication.extend({
23
+
24
+ /** Reloads the page using the +_url+ given in the +constructor+.
25
+ **/
26
+ reload: function(){
27
+ var _url = this._url;
28
+ if((!_url)||(_url==='/')){
29
+ window.location.reload(true);
30
+ }
31
+ else {
32
+ window.location.href = _url;
33
+ }
34
+ },
35
+
36
+ /** = Description
37
+ * Reset the session.
38
+ *
39
+ * Resets the session by calling the hello/goodbye url on the server.
40
+ * The server reads the cookie key and deletes the session bound to it.
41
+ *
42
+ * Reloads the page after a successful request.
43
+ *
44
+ **/
45
+ reset_session: function(){
46
+ COMM.request(
47
+ COMM.Transporter.HelloUrl + '/goodbye', {
48
+ method: 'POST',
49
+ body: ('ses_key='+COMM.Session.ses_key),
50
+ async: true,
51
+ onSuccess: function(){
52
+ window.location.reload(true);
53
+ },
54
+ onFailure: function(){
55
+ window.location.reload(true);
56
+ }
57
+ });
58
+ },
59
+
60
+ /** = Description
61
+ * Constructs the ReloadApp.
62
+ *
63
+ * Creates an application with a window titled +_title+,
64
+ * containing the +_message+ and *Reset Session* and *Reload*
65
+ * buttons. The +_url+ is the url to load when any of the
66
+ * buttons are pressed.
67
+ *
68
+ * = Parameters
69
+ * +_title+:: The title of the message.
70
+ * +_message+:: The message text content.
71
+ * +_url+:: The url the buttons load when pressed.
72
+ *
73
+ **/
74
+ constructor: function( _title, _message, _url ){
75
+ var _this = this;
76
+ _this.base();
77
+ _this._title = _title;
78
+ _this._message = _message;
79
+ _this._url = _url;
80
+ var _winWidth = ELEM.windowSize()[0],
81
+ _winHeight = ELEM.windowSize()[1],
82
+ _halfWidth = parseInt(_winWidth/2,10),
83
+ _halfHeight = parseInt(_winHeight/2,10),
84
+ _alertWidth = 400,
85
+ _alertHeight = 270,
86
+ _alertX = _halfWidth - 200,
87
+ _alertY = _halfHeight - 150;
88
+ if(_alertX<10){_alertX = 10;}
89
+ if(_alertY<10){_alertY = 10;}
90
+ _this._alertSheet = HSheet.extend({
91
+ drawSubviews: function(){
92
+ var _this = this,
93
+ _elemId = _this.markupElemIds['subview'],
94
+ _alertIcon = ELEM.make( _elemId ),
95
+ _alertTitle = ELEM.make( _elemId ),
96
+ _alertMessage = ELEM.make( _elemId ),
97
+ _iconUrl = _this.getThemeGfxFile('reloadapp_warning.png');
98
+ _this.setStyle('font-family','Arial, sans-serif');
99
+ _this.setStyle('color','#000');
100
+ _this.setStyle('font-size','13px');
101
+ ELEM.setCSS(_alertIcon,'position:absolute;left:8px;top:8px;width:48px;height:48px;background-image:url('+_iconUrl+');');
102
+ ELEM.setCSS(_alertTitle,'position:absolute;left:64px;top:8px;width:300px;height:24px;line-height:24px;vertical-align:middle;text-align:center;font-weight:bold;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;');
103
+ ELEM.setHTML(_alertTitle,_this.app._title);
104
+ ELEM.setCSS(_alertMessage,'position:absolute;left:64px;top:42px;width:332px;height:186px;border-bottom:1px dotted #999;line-height:17px;vertical-align:middle;overflow:auto;');
105
+ ELEM.setHTML(_alertMessage,_this.app._message);
106
+ HButton.extend({
107
+ click: this.app.reload
108
+ }).nu(
109
+ HRect.nu(280, 234, 380, 258 ),
110
+ _this, {
111
+ label: 'Reload',
112
+ events: {
113
+ click: true
114
+ }
115
+ }
116
+ );
117
+ HButton.extend({
118
+ click: this.app.reset_session
119
+ }).nu(
120
+ HRect.nu(20, 234, 170, 258 ),
121
+ _this, {
122
+ label: 'Reset session',
123
+ events: {
124
+ click: true
125
+ }
126
+ }
127
+ );
128
+ }
129
+ }).nu(
130
+ HRect.nu( _alertX, _alertY, _alertX+_alertWidth, _alertY+_alertHeight ),
131
+ _this, {
132
+ label: _title,
133
+ value: 0
134
+ // minSize: [_alertWidth,_alertHeight],
135
+ // maxSize: [_alertWidth,_alertHeight],
136
+ // enabled: true,
137
+ // closeButton: true,
138
+ // noResize: true
139
+ }
140
+ );
141
+
142
+ COMM.Transporter.stop = true;
143
+ },
144
+
145
+ /** Re-focuses the window.
146
+ **/
147
+ onIdle: function(){
148
+ if(this['_alertSheet']){
149
+ this._alertSheet.bringToFront();
150
+ }
151
+ }
152
+ });
File without changes
@@ -0,0 +1,426 @@
1
+ /* RSence
2
+ * Copyright 2007 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
+
10
+
11
+ /*** = Description
12
+ ** A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
13
+ ** in FIPS 180-1. Also includes a Base64 encoder.
14
+ **
15
+ ** = Original implementation:
16
+ ** Copyright Paul Johnston 2000 - 2009.
17
+ ** Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
18
+ ** Distributed under the BSD License
19
+ ** See http://pajhome.org.uk/crypt/md5 for details.
20
+ **
21
+ ***/
22
+ var//RSence.Util
23
+ SHA = HClass.extend({
24
+
25
+ /** = Description
26
+ * Constructs an instance of SHA
27
+ *
28
+ * = Parameters
29
+ * +_chrsz+:: The input character size, in bits. Optional.
30
+ *
31
+ **/
32
+ constructor: function(_chrsz){
33
+ _chrsz && this.setChrsz(_chrsz);
34
+ },
35
+
36
+ /* hex output format. 0 - lowercase; 1 - uppercase */
37
+ _hexcase: 0,
38
+
39
+ /** = Description
40
+ * Returns the letter case of the hexadecimal output.
41
+ *
42
+ * = Returns
43
+ * 1 if upporcase, 0 if lowercase.
44
+ **/
45
+ hexCase: function(){
46
+ return this._hexcase;
47
+ },
48
+
49
+ /** = Descrition
50
+ * Sets the letter case of the hexadecimal output.
51
+ *
52
+ * = Parameters:
53
+ * +_case+:: 1: Upper case
54
+ * 0: Lower case
55
+ *
56
+ **/
57
+ setHexCase: function(_case){
58
+ this._hexcase = _case;
59
+ },
60
+
61
+ /* base-64 pad character. "=" for strict RFC compliance */
62
+ _b64pad: "=",
63
+
64
+ /** Returns the Base64 padding character. Is '=' by default.
65
+ **/
66
+ base64Pad: function(){
67
+ return this._b64pad;
68
+ },
69
+
70
+ /** = Description
71
+ * Sets the Base64 padding character.
72
+ *
73
+ * Set to '=' (default) for strict RFC compliance.
74
+ *
75
+ * = Parameters
76
+ * +_pad+:: The padding character
77
+ *
78
+ **/
79
+ setBase64Pad: function(_pad){
80
+ this._b64pad = _pad;
81
+ },
82
+
83
+ /* bits per input character. 8 - ASCII; 16 - Unicode */
84
+ _chrsz: 8,
85
+
86
+ /** Returns the number of bits per input character. The default is 8.
87
+ **/
88
+ chrsz: function(){
89
+ return this._chrsz;
90
+ },
91
+
92
+ /** = Description
93
+ * Sets the number of bits per input character.
94
+ *
95
+ * = Parameters
96
+ * +_bits+:: Amount of bits per input character. 8 for ascii, 16 for unicode.
97
+ *
98
+ **/
99
+ setChrsz: function(_bits){
100
+ this._chrsz = _bits;
101
+ },
102
+
103
+ /** = Description
104
+ * Calculates the SHA1 of a string and returns the result encoded in hexadecimal.
105
+ *
106
+ * = Parameters
107
+ * +_s+:: The input string.
108
+ *
109
+ * = Returns
110
+ * A hexadecimal-encoded string containing the SHA1 result.
111
+ *
112
+ **/
113
+ hexSHA1: function(_s){
114
+ var _this=this;
115
+ return _this._binb2hex(
116
+ _this._coreSHA1(
117
+ _this._str2binb(_s),
118
+ _s.length * _this._chrsz
119
+ )
120
+ );
121
+ },
122
+
123
+ /** = Description
124
+ * Calculates the SHA1 of a string and returns the result encoded in Base64.
125
+ *
126
+ * = Parameters
127
+ * +_s+:: The input string.
128
+ *
129
+ * = Returns
130
+ * A Base64-encoded string containing the SHA1 result.
131
+ *
132
+ **/
133
+ b64SHA1: function(_s){
134
+ var _this=this;
135
+ return _this._binb2b64(
136
+ _this._coreSHA1(
137
+ _this._str2binb(_s),
138
+ _s.length * _this._chrsz
139
+ )
140
+ );
141
+ },
142
+
143
+ /** = Description
144
+ * Calculates the SHA1 of a string and returns the result as a raw string.
145
+ *
146
+ * = Parameters
147
+ * +_s+:: The input string.
148
+ *
149
+ * = Returns
150
+ * A raw string containing the SHA1 result.
151
+ *
152
+ **/
153
+ strSHA1: function(_s){
154
+ var _this=this;
155
+ return _this._binb2str(
156
+ _this._coreSHA1(
157
+ _this._str2binb(_s),
158
+ _s.length * _this._chrsz
159
+ )
160
+ );
161
+ },
162
+
163
+ /** = Description
164
+ * Calculates the HMAC-SHA1 of a string and returns the result encoded in hexadecimal.
165
+ *
166
+ * = Parameters
167
+ * +_key+:: The key to use.
168
+ * +_data+:: The input data.
169
+ *
170
+ * = Returns
171
+ * A hexadecimal-encoded string containing the HMAC-SHA1 result.
172
+ *
173
+ **/
174
+ hexHmacSHA1: function(_key, _data){
175
+ var _this=this;
176
+ return _this._binb2hex(
177
+ _this._coreHmacSHA1(_key, _data)
178
+ );
179
+ },
180
+
181
+ /** = Description
182
+ * Calculates the HMAC-SHA1 of a string and returns the result encoded in Base64.
183
+ *
184
+ * = Parameters
185
+ * +_key+:: The key to use.
186
+ * +_data+:: The input data.
187
+ *
188
+ * = Returns
189
+ * A Base64-encoded string containing the HMAC-SHA1 result.
190
+ *
191
+ **/
192
+ b64HmacSHA1: function(_key, _data){
193
+ var _this=this;
194
+ return _this._binb2b64(
195
+ _this._coreHmacSHA1(_key, _data)
196
+ );
197
+ },
198
+
199
+ /** = Description
200
+ * Calculates the HMAC-SHA1 of a string and returns the result as a raw string.
201
+ *
202
+ * = Parameters
203
+ * +_key+:: The key to use.
204
+ * +_data+:: The input data.
205
+ *
206
+ * = Returns
207
+ * A raw string containing the HMAC-SHA1 result.
208
+ *
209
+ **/
210
+ strHmacSHA1: function(_key, _data){
211
+ var _this=this;
212
+ return _this._binb2str(
213
+ _this._coreHmacSHA1(_key, _data)
214
+ );
215
+ },
216
+
217
+ /** = Description
218
+ * Encodes a string to Base64.
219
+ *
220
+ * = Parameters
221
+ * +_str+:: The input data.
222
+ *
223
+ * = Returns
224
+ * The Base64 encoded version of the input data.
225
+ *
226
+ **/
227
+ str2Base64: function(_str){
228
+ var _this=this;
229
+ return _this._binb2b64(_this._str2binb(_str));
230
+ },
231
+
232
+ /** Performs a simple self-test to see if the VM is working
233
+ **/
234
+ test: function(){
235
+ return this.hexSHA1("abc") === "a9993e364706816aba3e25717850c26c9cd0d89d";
236
+ },
237
+
238
+ /** Calculate the SHA-1 of an array of big-endian words, and a bit length
239
+ **/
240
+ _coreSHA1: function(_x, _len){
241
+
242
+ _x[_len >> 5] |= 0x80 << (24 - _len % 32);
243
+ _x[((_len + 64 >> 9) << 4) + 15] = _len;
244
+
245
+ var _this=this,
246
+ _w = new Array(80),
247
+ _a = 1732584193,
248
+ _b = -271733879,
249
+ _c = -1732584194,
250
+ _d = 271733878,
251
+ _e = -1009589776,
252
+ i, _olda, _oldb, _oldc, _oldd, _olde,
253
+ j, _t;
254
+
255
+ for(i = 0; i < _x.length; i += 16){
256
+ _olda = _a;
257
+ _oldb = _b;
258
+ _oldc = _c;
259
+ _oldd = _d;
260
+ _olde = _e;
261
+
262
+ for(j = 0; j < 80; j++){
263
+ if(j < 16){
264
+ _w[j] = _x[i + j];
265
+ }
266
+ else {
267
+ _w[j] = _this._rol(_w[j-3] ^ _w[j-8] ^ _w[j-14] ^ _w[j-16], 1);
268
+ }
269
+ _t = _this._safeAdd(_this._safeAdd(_this._rol(_a, 5), _this._sha1FT(j, _b, _c, _d)),
270
+ _this._safeAdd(_this._safeAdd(_e, _w[j]), _this._sha1KT(j)));
271
+ _e = _d;
272
+ _d = _c;
273
+ _c = _this._rol(_b, 30);
274
+ _b = _a;
275
+ _a = _t;
276
+ }
277
+
278
+ _a = _this._safeAdd(_a, _olda);
279
+ _b = _this._safeAdd(_b, _oldb);
280
+ _c = _this._safeAdd(_c, _oldc);
281
+ _d = _this._safeAdd(_d, _oldd);
282
+ _e = _this._safeAdd(_e, _olde);
283
+ }
284
+ return [ _a, _b, _c, _d, _e ];
285
+ },
286
+
287
+ /** Perform the appropriate triplet combination function for the current
288
+ * iteration
289
+ **/
290
+ _sha1FT: function(_t, _b, _c, _d) {
291
+ if(_t < 20){
292
+ return (_b & _c) | ((~_b) & _d);
293
+ }
294
+ if(_t < 40){
295
+ return _b ^ _c ^ _d;
296
+ }
297
+ if(_t < 60){
298
+ return (_b & _c) | (_b & _d) | (_c & _d);
299
+ }
300
+ return _b ^ _c ^ _d;
301
+ },
302
+
303
+ /** Determine the appropriate additive constant for the current iteration
304
+ **/
305
+ _sha1KT: function(_t){
306
+ return (_t < 20) ? 1518500249 : (_t < 40) ? 1859775393 :
307
+ (_t < 60) ? -1894007588 : -899497514;
308
+ },
309
+
310
+ /*
311
+ * Calculate the HMAC-SHA1 of a key and some data
312
+ */
313
+ _coreHmacSHA1: function(_key, _data){
314
+ var _this=this,
315
+ _bkey = _this._str2binb(_key),
316
+ _ipad = new Array(16),
317
+ _opad = new Array(16),
318
+ i, _hash;
319
+ if(_bkey.length > 16){
320
+ _bkey = _this._coreSHA1(_bkey, _key.length * _this._chrsz);
321
+ }
322
+ for(i = 0; i < 16; i++){
323
+ _ipad[i] = _bkey[i] ^ 0x36363636;
324
+ _opad[i] = _bkey[i] ^ 0x5C5C5C5C;
325
+ }
326
+
327
+ _hash = _this._coreSHA1(_ipad.concat(_this._str2binb(_data)), 512 + _data.length * _this._chrsz);
328
+ return _this._coreSHA1(_opad.concat(_hash), 512 + 160);
329
+ },
330
+
331
+ /*
332
+ * Add integers, wrapping at 2^32. This uses 16-bit operations internally
333
+ * to work around bugs in some JS interpreters.
334
+ */
335
+ _safeAdd: function(_x, _y){
336
+ var _lsw = (_x & 0xFFFF) + (_y & 0xFFFF),
337
+ _msw = (_x >> 16) + (_y >> 16) + (_lsw >> 16);
338
+ return (_msw << 16) | (_lsw & 0xFFFF);
339
+ },
340
+
341
+ /*
342
+ * Bitwise rotate a 32-bit number to the left.
343
+ */
344
+ _rol: function(_num, _cnt){
345
+ return (_num << _cnt) | (_num >>> (32 - _cnt));
346
+ },
347
+
348
+ /*
349
+ * Convert an 8-bit or 16-bit string to an array of big-endian words
350
+ * In 8-bit function, characters >255 have their hi-byte silently ignored.
351
+ */
352
+ _str2binb: function(_str){
353
+ var _this=this,
354
+ _bin = [],
355
+ _mask = (1 << _this._chrsz) - 1,
356
+ _strLenChrSZ = _str.length * _this._chrsz,
357
+ i;
358
+ for(i = 0; i < _strLenChrSZ; i += _this._chrsz){
359
+ _bin[i>>5] |= (_str.charCodeAt(i / _this._chrsz) & _mask) << (32 - _this._chrsz - i%32);
360
+ }
361
+ return _bin;
362
+ },
363
+
364
+ /*
365
+ * Convert an array of big-endian words to a string
366
+ */
367
+ _binb2str: function(_bin){
368
+ var _this=this,
369
+ _str = "",
370
+ _mask = (1 << _this._chrsz) - 1,
371
+ i,
372
+ _binLen32 = _bin.length * 32,
373
+ _32chrsz = 32 - _this._chrsz;
374
+ for(i = 0; i < _binLen32; i += _this._chrsz){
375
+ _str += String.fromCharCode((_bin[i>>5] >>> (_32chrsz - i%32)) & _mask);
376
+ }
377
+ return _str;
378
+ },
379
+
380
+ /*
381
+ * Convert an array of big-endian words to a hex string.
382
+ */
383
+ _binb2hex: function(_binarray){
384
+ var _this=this,
385
+ _hexTab = _this._hexcase ? "0123456789ABCDEF" : "0123456789abcdef",
386
+ _str = "",
387
+ i,
388
+ _binLen = _binarray.length * 4;
389
+ for(i = 0; i < _binLen; i++){
390
+ _str += _hexTab.charAt((_binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
391
+ _hexTab.charAt((_binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
392
+ }
393
+ return _str;
394
+ },
395
+
396
+ /*
397
+ * Convert an array of big-endian words to a base-64 string
398
+ */
399
+ _binb2b64: function(_binarray){
400
+ var _this=this,
401
+ _tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
402
+ _str = "",
403
+ i,
404
+ _binLen = _binarray.length * 4,
405
+ _t1, _t2, _3,
406
+ _triplet,
407
+ j,
408
+ _binLen32 = _binarray.length * 32;
409
+ for(i = 0; i < _binLen; i += 3){
410
+ _t1 = (((_binarray[i >> 2] >> 8 * (3 - i %4)) & 0xFF) << 16);
411
+ _t2 = (((_binarray[i+1 >> 2] >> 8 * (3 - (i+1)%4)) & 0xFF) << 8 );
412
+ _t3 = ((_binarray[i+2 >> 2] >> 8 * (3 - (i+2)%4)) & 0xFF);
413
+ _triplet = (_t1 | _t2 | _t3);
414
+ for(j = 0; j < 4; j++){
415
+ if(i * 8 + j * 6 > _binLen32){
416
+ _str += _this._b64pad;
417
+ }
418
+ else {
419
+ _str += _tab.charAt((_triplet >> 6*(3-j)) & 0x3F);
420
+ }
421
+ }
422
+ }
423
+ return _str;
424
+ }
425
+ });
426
+