rsence 2.0.0.0.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 (311) hide show
  1. data/INSTALL.rdoc +295 -0
  2. data/LICENSE +622 -0
  3. data/README.rdoc +24 -0
  4. data/VERSION +1 -0
  5. data/bin/build_client.rb +254 -0
  6. data/bin/help +6 -0
  7. data/bin/launch.rb +120 -0
  8. data/bin/rdoc.sh +2 -0
  9. data/bin/restart +6 -0
  10. data/bin/rsence +120 -0
  11. data/bin/run +6 -0
  12. data/bin/run.rb +6 -0
  13. data/bin/save +6 -0
  14. data/bin/start +6 -0
  15. data/bin/status +6 -0
  16. data/bin/stop +6 -0
  17. data/conf/config.ru +5 -0
  18. data/conf/default_conf.yaml +337 -0
  19. data/conf/default_strings.yaml +77 -0
  20. data/conf/local_conf.yaml +14 -0
  21. data/conf/unicorn.conf +78 -0
  22. data/js/comm/comm/autosync/autosync.js +18 -0
  23. data/js/comm/comm/autosync/js.inc +0 -0
  24. data/js/comm/comm/comm.js +195 -0
  25. data/js/comm/comm/js.inc +0 -0
  26. data/js/comm/comm/queue/js.inc +0 -0
  27. data/js/comm/comm/queue/queue.js +183 -0
  28. data/js/comm/comm/session/js.inc +0 -0
  29. data/js/comm/comm/session/session.js +51 -0
  30. data/js/comm/comm/sessionwatcher/js.inc +0 -0
  31. data/js/comm/comm/sessionwatcher/sessionwatcher.js +43 -0
  32. data/js/comm/comm/transporter/js.inc +0 -0
  33. data/js/comm/comm/transporter/transporter.js +257 -0
  34. data/js/comm/comm/urlresponder/js.inc +0 -0
  35. data/js/comm/comm/urlresponder/urlresponder.js +148 -0
  36. data/js/comm/comm/values/js.inc +0 -0
  37. data/js/comm/comm/values/values.js +432 -0
  38. data/js/comm/jsloader/js.inc +0 -0
  39. data/js/comm/jsloader/jsloader.js +114 -0
  40. data/js/comm/reloadapp/js.inc +0 -0
  41. data/js/comm/reloadapp/reloadapp.js +150 -0
  42. data/js/comm/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  43. data/js/comm/reloadapp/themes/default/reloadapp_warning.png +0 -0
  44. data/js/comm/sha/js.inc +0 -0
  45. data/js/comm/sha/sha.js +432 -0
  46. data/js/comm/values/value/js.inc +0 -0
  47. data/js/comm/values/value/value.js +182 -0
  48. data/js/comm/values/valuematrix/js.inc +0 -0
  49. data/js/comm/values/valuematrix/valuematrix.js +138 -0
  50. data/js/controls/button/button.js +57 -0
  51. data/js/controls/button/js.inc +0 -0
  52. data/js/controls/button/themes/bright/button.css +89 -0
  53. data/js/controls/button/themes/bright/button.html +7 -0
  54. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  55. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  56. data/js/controls/button/themes/default/button.css +89 -0
  57. data/js/controls/button/themes/default/button.html +7 -0
  58. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  59. data/js/controls/button/themes/default/button_parts1.png +0 -0
  60. data/js/controls/checkbox/checkbox.js +47 -0
  61. data/js/controls/checkbox/js.inc +0 -0
  62. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  63. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  64. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  65. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  66. data/js/controls/datetime/calendar/calendar.js +197 -0
  67. data/js/controls/datetime/calendar/js.inc +0 -0
  68. data/js/controls/datetime/calendar/themes/default/calendar.css +108 -0
  69. data/js/controls/datetime/calendar/themes/default/calendar.html +9 -0
  70. data/js/controls/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  71. data/js/controls/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  72. data/js/controls/datetime/datetimevalue/datetimevalue.js +246 -0
  73. data/js/controls/datetime/datetimevalue/js.inc +0 -0
  74. data/js/controls/datetime/timesheet/js.inc +0 -0
  75. data/js/controls/datetime/timesheet/themes/default/timesheet.css +30 -0
  76. data/js/controls/datetime/timesheet/themes/default/timesheet.html +2 -0
  77. data/js/controls/datetime/timesheet/timesheet.js +182 -0
  78. data/js/controls/datetime/timesheet_item/js.inc +0 -0
  79. data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  80. data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  81. data/js/controls/datetime/timesheet_item/timesheet_item.js +247 -0
  82. data/js/controls/datetime/timesheet_item_edit/js.inc +0 -0
  83. data/js/controls/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  84. data/js/controls/dialogs/alert_sheet/alert_sheet.js +62 -0
  85. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  86. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +36 -0
  87. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  88. data/js/controls/dialogs/sheet/js.inc +0 -0
  89. data/js/controls/dialogs/sheet/sheet.js +83 -0
  90. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  91. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  92. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  93. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  94. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  95. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  96. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  97. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  98. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  99. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  100. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  101. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  102. data/js/controls/imageview/imageview.js +108 -0
  103. data/js/controls/imageview/js.inc +0 -0
  104. data/js/controls/imageview/themes/default/blank.gif +0 -0
  105. data/js/controls/lists/checkboxlist/checkboxlist.js +170 -0
  106. data/js/controls/lists/checkboxlist/js.inc +0 -0
  107. data/js/controls/lists/listitems/js.inc +0 -0
  108. data/js/controls/lists/listitems/listitems.js +65 -0
  109. data/js/controls/lists/radiobuttonlist/js.inc +0 -0
  110. data/js/controls/lists/radiobuttonlist/radiobuttonlist.js +126 -0
  111. data/js/controls/passwordcontrol/js.inc +0 -0
  112. data/js/controls/passwordcontrol/passwordcontrol.js +22 -0
  113. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  114. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  115. data/js/controls/progress/progressbar/js.inc +0 -0
  116. data/js/controls/progress/progressbar/progressbar.js +36 -0
  117. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  118. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  119. data/js/controls/progress/progressindicator/js.inc +0 -0
  120. data/js/controls/progress/progressindicator/progressindicator.js +43 -0
  121. data/js/controls/radiobutton/js.inc +0 -0
  122. data/js/controls/radiobutton/radiobutton.js +41 -0
  123. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  124. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  125. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  126. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  127. data/js/controls/sliders/slider/js.inc +0 -0
  128. data/js/controls/sliders/slider/slider.js +356 -0
  129. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  130. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  131. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  132. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  133. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  134. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  135. data/js/controls/sliders/vslider/js.inc +0 -0
  136. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  137. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  138. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  139. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  140. data/js/controls/sliders/vslider/vslider.js +40 -0
  141. data/js/controls/stepper/js.inc +0 -0
  142. data/js/controls/stepper/stepper.js +212 -0
  143. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  144. data/js/controls/stepper/themes/default/stepper.css +14 -0
  145. data/js/controls/stepper/themes/default/stepper.html +2 -0
  146. data/js/controls/stepper/themes/default/stepper.png +0 -0
  147. data/js/controls/stringview/js.inc +0 -0
  148. data/js/controls/stringview/stringview.js +49 -0
  149. data/js/controls/stringview/themes/default/stringview.css +8 -0
  150. data/js/controls/stringview/themes/default/stringview.html +1 -0
  151. data/js/controls/tab/js.inc +0 -0
  152. data/js/controls/tab/tab.js +276 -0
  153. data/js/controls/tab/themes/bright/tab.css +76 -0
  154. data/js/controls/tab/themes/bright/tab.html +6 -0
  155. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  156. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  157. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  158. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  159. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  160. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  161. data/js/controls/tab/themes/default/tab.css +77 -0
  162. data/js/controls/tab/themes/default/tab.html +6 -0
  163. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  164. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  165. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  166. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  167. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  168. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  169. data/js/controls/textarea/js.inc +0 -0
  170. data/js/controls/textarea/textarea.js +23 -0
  171. data/js/controls/textarea/themes/default/textarea.css +21 -0
  172. data/js/controls/textarea/themes/default/textarea.html +18 -0
  173. data/js/controls/textcontrol/js.inc +0 -0
  174. data/js/controls/textcontrol/textcontrol.js +372 -0
  175. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  176. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  177. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  178. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  179. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  180. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  181. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  182. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  183. data/js/controls/uploader/js.inc +0 -0
  184. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  185. data/js/controls/uploader/themes/default/uploader.css +108 -0
  186. data/js/controls/uploader/themes/default/uploader.html +27 -0
  187. data/js/controls/uploader/uploader.js +153 -0
  188. data/js/controls/validatorview/js.inc +0 -0
  189. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  190. data/js/controls/validatorview/themes/default/validator.png +0 -0
  191. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  192. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  193. data/js/controls/validatorview/validatorview.js +55 -0
  194. data/js/controls/window/js.inc +0 -0
  195. data/js/controls/window/themes/default/window.css +219 -0
  196. data/js/controls/window/themes/default/window.html +17 -0
  197. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  198. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  199. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  200. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  201. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  202. data/js/controls/window/themes/default/window_buttons.png +0 -0
  203. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  204. data/js/controls/window/themes/default/window_parts1.png +0 -0
  205. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  206. data/js/controls/window/themes/default/window_parts2.png +0 -0
  207. data/js/controls/window/window.js +284 -0
  208. data/js/core/class/class.js +317 -0
  209. data/js/core/class/js.inc +0 -0
  210. data/js/core/elem/elem.js +1376 -0
  211. data/js/core/elem/js.inc +0 -0
  212. data/js/core/event/event.js +1021 -0
  213. data/js/core/event/js.inc +0 -0
  214. data/js/core/iefix/ie_css_element.htc +5 -0
  215. data/js/core/iefix/ie_css_style.htc +5 -0
  216. data/js/core/iefix/iefix.js +359 -0
  217. data/js/core/iefix/js.inc +0 -0
  218. data/js/debugg/debugg.js +43 -0
  219. data/js/debugg/js.inc +0 -0
  220. data/js/foundation/application/application.js +209 -0
  221. data/js/foundation/application/js.inc +0 -0
  222. data/js/foundation/control/control.js +342 -0
  223. data/js/foundation/control/controldefaults/controldefaults.js +59 -0
  224. data/js/foundation/control/controldefaults/js.inc +0 -0
  225. data/js/foundation/control/dummyvalue/dummyvalue.js +50 -0
  226. data/js/foundation/control/dummyvalue/js.inc +0 -0
  227. data/js/foundation/control/dyncontrol/dyncontrol.js +494 -0
  228. data/js/foundation/control/dyncontrol/js.inc +0 -0
  229. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  230. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  231. data/js/foundation/control/eventresponder/eventresponder.js +713 -0
  232. data/js/foundation/control/eventresponder/js.inc +0 -0
  233. data/js/foundation/control/js.inc +0 -0
  234. data/js/foundation/control/valueresponder/js.inc +0 -0
  235. data/js/foundation/control/valueresponder/valueresponder.js +77 -0
  236. data/js/foundation/geom/point/js.inc +0 -0
  237. data/js/foundation/geom/point/point.js +202 -0
  238. data/js/foundation/geom/rect/js.inc +0 -0
  239. data/js/foundation/geom/rect/rect.js +610 -0
  240. data/js/foundation/json_renderer/js.inc +0 -0
  241. data/js/foundation/json_renderer/json_renderer.js +231 -0
  242. data/js/foundation/system/js.inc +0 -0
  243. data/js/foundation/system/system.js +369 -0
  244. data/js/foundation/thememanager/js.inc +0 -0
  245. data/js/foundation/thememanager/thememanager.js +387 -0
  246. data/js/foundation/view/js.inc +0 -0
  247. data/js/foundation/view/markupview/js.inc +0 -0
  248. data/js/foundation/view/markupview/markupview.js +113 -0
  249. data/js/foundation/view/morphanimation/js.inc +0 -0
  250. data/js/foundation/view/morphanimation/morphanimation.js +236 -0
  251. data/js/foundation/view/view.js +1804 -0
  252. data/js/foundation/view/viewdefaults/js.inc +0 -0
  253. data/js/foundation/view/viewdefaults/viewdefaults.js +25 -0
  254. data/js/views/centerview/centerview.js +45 -0
  255. data/js/views/centerview/js.inc +0 -0
  256. data/js/views/inlineview/inlineview.js +14 -0
  257. data/js/views/inlineview/js.inc +0 -0
  258. data/js/views/scrollview/js.inc +0 -0
  259. data/js/views/scrollview/scrollview.js +39 -0
  260. data/lib/conf/default.rb +220 -0
  261. data/lib/conf/wizard.rb +303 -0
  262. data/lib/daemon/daemon.rb +293 -0
  263. data/lib/http/broker.rb +102 -0
  264. data/lib/http/rackup.rb +88 -0
  265. data/lib/http/request.rb +69 -0
  266. data/lib/http/response.rb +63 -0
  267. data/lib/plugins/gui_plugin.rb +129 -0
  268. data/lib/plugins/guiparser.rb +114 -0
  269. data/lib/plugins/plugin.rb +652 -0
  270. data/lib/plugins/plugin_plugins.rb +47 -0
  271. data/lib/plugins/plugin_sqlite_db.rb +72 -0
  272. data/lib/plugins/plugin_util.rb +96 -0
  273. data/lib/plugins/pluginmanager.rb +517 -0
  274. data/lib/plugins/servlet.rb +69 -0
  275. data/lib/session/msg.rb +291 -0
  276. data/lib/session/sessionmanager.rb +491 -0
  277. data/lib/session/sessionstorage.rb +314 -0
  278. data/lib/transporter/transporter.rb +254 -0
  279. data/lib/util/gzstring.rb +5 -0
  280. data/lib/values/hvalue.rb +323 -0
  281. data/lib/values/valuemanager.rb +152 -0
  282. data/plugins/client_pkg/client_pkg.rb +186 -0
  283. data/plugins/client_pkg/info.yaml +25 -0
  284. data/plugins/client_pkg/lib/client_pkg_build.rb +569 -0
  285. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  286. data/plugins/client_pkg/lib/client_pkg_serve.rb +210 -0
  287. data/plugins/client_pkg/log/build_log +0 -0
  288. data/plugins/index_html/img/loading.gif +0 -0
  289. data/plugins/index_html/img/riassence.gif +0 -0
  290. data/plugins/index_html/index_html.rb +150 -0
  291. data/plugins/index_html/tmpl/index.html +22 -0
  292. data/plugins/index_html/tmpl/startup_index.html +29 -0
  293. data/plugins/legacy/disabled +0 -0
  294. data/plugins/legacy/disabled- +0 -0
  295. data/plugins/legacy/info.yaml +22 -0
  296. data/plugins/legacy/legacy.rb +15 -0
  297. data/plugins/main/js/riassence_ns.js +87 -0
  298. data/plugins/main/main.rb +234 -0
  299. data/plugins/main/values.yaml +8 -0
  300. data/plugins/ticketservices/lib/common.rb +300 -0
  301. data/plugins/ticketservices/lib/favicon.rb +38 -0
  302. data/plugins/ticketservices/lib/file.rb +58 -0
  303. data/plugins/ticketservices/lib/img.rb +50 -0
  304. data/plugins/ticketservices/lib/objblob.rb +66 -0
  305. data/plugins/ticketservices/lib/rsrc.rb +34 -0
  306. data/plugins/ticketservices/lib/upload.rb +206 -0
  307. data/plugins/ticketservices/ticketservices.rb +268 -0
  308. data/var/db/.git_include +0 -0
  309. data/var/log/.git_include +0 -0
  310. data/var/run/.git_include +0 -0
  311. metadata +390 -0
File without changes
@@ -0,0 +1,432 @@
1
+ /* Riassence Framework
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
+ ** Manages data value synchronization.
11
+ **
12
+ ** Keeps track of all +HValue+ instances present.
13
+ ***/
14
+ COMM.Values = HClass.extend({
15
+
16
+ /** No constructor, singleton class.
17
+ **/
18
+ constructor: null,
19
+
20
+ /** An +Object+ containing all values by key.
21
+ **/
22
+ values: {},
23
+
24
+ /** A list of value keys whose value has changed. To be synchronized asap.
25
+ **/
26
+ tosync: [],
27
+
28
+ /** = Description
29
+ * Creates a new +HValue+ instance. Its main purpose is to act as the main
30
+ * client-side value creation interface for the server representation of
31
+ * +HValue+.
32
+ *
33
+ * = Parameters
34
+ * +_id+:: The unique id of the +HValue+ instance (set by the server)
35
+ * +_data:: The initial data of the +HValue+ instance (set by the server)
36
+ *
37
+ **/
38
+ create: function(_id,_data){
39
+ HValue.nu(_id,_data);
40
+ },
41
+
42
+ /** = Description
43
+ * Binds a +HValue+ instance created externally to +self.values+.
44
+ * Called from +HValue+ upon construction.
45
+ *
46
+ * = Parameters
47
+ * +_id+:: The unique id of the +HValue+ instance (set by the server)
48
+ * +_value+:: The +HValue+ instance itself.
49
+ *
50
+ **/
51
+ add: function(_id,_value){
52
+ this.values[_id] = _value;
53
+ },
54
+
55
+ /** = Description
56
+ * Sets the data of the +HValue+ instance by +_Id+.
57
+ *
58
+ * = Parameters
59
+ * +_id+:: The unique id of the +HValue+ instance (set by the server)
60
+ * +_data+:: The new data, any Object type supported by JSON.
61
+ *
62
+ **/
63
+ set: function(_id,_data){
64
+ this.values[_id].set(_data);
65
+ },
66
+
67
+ /** = Description
68
+ * Sets and decodes the +_data+. Main value setter interface
69
+ * for the server representation of +HValue+.
70
+ *
71
+ * = Parameters
72
+ * +_id+:: The unique id of the +HValue+ instance (set by the server)
73
+ * +_data+:: The new data from the server, to be decoded.
74
+ *
75
+ **/
76
+ s: function(_id,_data){
77
+ var _this = this;
78
+ _data = _this.decode(_data);
79
+ _this.values[_id].s(_data);
80
+ },
81
+
82
+ /** = Description
83
+ * Deletes a +HValue+ instance by +_id+.
84
+ *
85
+ * = Parameters
86
+ * +_id+:: The unique id of the +HValue+ instance (set by the server)
87
+ *
88
+ **/
89
+ del: function(_id){
90
+ var _this = this,
91
+ _values = _this.values,
92
+ _value = _values[_id],
93
+ _views = _value.views,
94
+ _viewsLen = _views.lengt,
95
+ i = 0,
96
+ _view;
97
+ for(;i<_viewsLen;i++){
98
+ _view = _views[i];
99
+ _view.valueObj = HDummyValue.nu(0,_value.value);
100
+ }
101
+ _value.views = [];
102
+ delete _values[_id];
103
+ },
104
+
105
+ /** = Description
106
+ * Marks the +HValue+ instance as changed and tries to send it
107
+ * immediately, unless COMM.Transporter has an ongoing transfer.
108
+ * Usually called by the +HValue+ instance internally.
109
+ *
110
+ * = Parameters
111
+ * +_value+:: The +HValue+ instanche that changed.
112
+ *
113
+ **/
114
+ changed: function(_value){
115
+ var _this = this;
116
+ if(_this.tosync.indexOf(_value.id)===-1){
117
+ _this.tosync.push(_value.id);
118
+ var _transporter = COMM.Transporter;
119
+ if(!_transporter.busy){
120
+ _transporter.sync();
121
+ }
122
+ }
123
+ },
124
+
125
+ // List of primitive object types.
126
+ _builtins: [
127
+ 'b', // boolean
128
+ 'n', // number
129
+ 's' // string
130
+ ],
131
+
132
+ /** = Description
133
+ * Use this method to detect the type of the object given.
134
+ *
135
+ * Returns the type of the object given as a character code. Returns false,
136
+ * if unknown or unsupported objcet type.
137
+ *
138
+ * = Returns
139
+ * _One of the following:_
140
+ * - 'a': Array
141
+ * - 'h': Hash (Generic Object)
142
+ * - 'd': Date
143
+ * - 'b': Boolean (true/false)
144
+ * - 'n': Number (integers and floats)
145
+ * - 's': String
146
+ *
147
+ **/
148
+ type: function(_obj){
149
+ if(_obj === null || _obj === undefined){
150
+ console.log('null or undefined obj:',_obj);
151
+ return '-';
152
+ }
153
+ var _type = (typeof _obj).slice(0,1);
154
+ if(this._builtins.indexOf(_type)!==-1){
155
+ return _type;
156
+ }
157
+ else if(_type==='o'){
158
+ if(_obj.constructor === Array){
159
+ return 'a'; // array
160
+ }
161
+ else if(_obj.constructor === Object){
162
+ return 'h'; // hash
163
+ }
164
+ else if(_obj.constructor === Date){
165
+ return 'd'; // date
166
+ }
167
+ return false;
168
+ }
169
+ return false;
170
+ },
171
+
172
+ // Returns an encoded version of the array _arr as a string
173
+ _encodeArr: function(_arr){
174
+ var _str = '[',
175
+ _output = [],
176
+ _len = _arr.length,
177
+ _this = this,
178
+ _item,
179
+ i = 0;
180
+ for(;i<_len;i++){
181
+ _item = _this.encode(_arr[i]);
182
+ _output.push( _item );
183
+ }
184
+ _str += _output.join(',')+']';
185
+ return _str;
186
+ },
187
+
188
+ // Returns a decoded array with decoded content of array _arr
189
+ _decodeArr: function(_arr){
190
+ var _output = [],
191
+ _len = _arr.length,
192
+ _this = this,
193
+ _item,
194
+ i = 0;
195
+ for(;i<_len;i++){
196
+ _item = _this.decode(_arr[i]);
197
+ _output.push( _item );
198
+ }
199
+ return _output;
200
+ },
201
+
202
+ // Returns an encoded version of the Hash (Object) _hash as a string
203
+ _encodeHash: function(_hash){
204
+ var _str = '{',
205
+ _output = [],
206
+ _this = this,
207
+ _key,
208
+ _value;
209
+ for(_key in _hash){
210
+ _value = _hash[_key];
211
+ _output.push( _this.encode( _key ) + ':' + _this.encode( _value ) );
212
+ }
213
+ _str += _output.join(',')+'}';
214
+ return _str;
215
+ },
216
+
217
+ // Returns a decoded version of the Hash (Object) _hash
218
+ _decodeHash: function(_hash){
219
+ var _output = {},
220
+ _this = this,
221
+ _key,
222
+ _value;
223
+ for(_key in _hash){
224
+ _value = _hash[_key];
225
+ _output[_this.decode(_key)] = _this.decode(_value);
226
+ }
227
+ return _output;
228
+ },
229
+
230
+ // Regular expression match/replace pairs for string escaping.
231
+ _stringSubstitutions: [
232
+ [(/\\/g), '\\\\'],
233
+ //[(/\b/g), '\\b'],
234
+ [(/\t/g), '\\t'],
235
+ [(/\n/g), '\\n'],
236
+ [(/\f/g), '\\f'],
237
+ [(/\r/g), '\\r'],
238
+ [(/"/g), '\\"']
239
+ ],
240
+
241
+ // Quotes a string (escapes quotation marks and places quotes around)
242
+ _quoteString: function(_str){
243
+ var _this = this,
244
+ _substitutions = _this._stringSubstitutions,
245
+ i = 0, _len = _substitutions.length,
246
+ _line, _from, _to, _output = '';
247
+ for(;i<_len;i++){
248
+ _line = _substitutions[i];
249
+ _from = _line[0];
250
+ _to = _line[1];
251
+ _str = _str.replace( _from, _to );
252
+ }
253
+ return '"' + _str + '"';
254
+ },
255
+
256
+ // Encodes the native character set to url-encoded unicode.
257
+ // Likely causes issues with non-ascii strings, shouldn't be called (for now).
258
+ _encodeString: function(_str){
259
+ console.log( 'WARNING: encodeString called with string: ',_str );
260
+ var _outStr;
261
+ try {
262
+ _outStr = unescape( encodeURIComponent( _str ) );
263
+ }
264
+ catch(e) {
265
+ _outStr = _str;
266
+ }
267
+ return _outStr;
268
+ },
269
+
270
+ // Decodes the url-encoded unicode to the native character set
271
+ _decodeString: function(_str){
272
+ var _outStr;
273
+ try {
274
+ _outStr = decodeURIComponent( escape( _str ) );
275
+ }
276
+ catch(e) {
277
+ _outStr = _str;
278
+ }
279
+ return _outStr;
280
+ },
281
+
282
+ /** = Description
283
+ * Encodes an object to a ascii string (special characters url-encoded).
284
+ *
285
+ * = Parameters
286
+ * +_obj+:: Any object
287
+ *
288
+ * = Returns
289
+ * A +String+ representation of the +_obj+
290
+ *
291
+ **/
292
+ encode: function(_obj){
293
+ var _str, _type, _this = this;
294
+ if(_obj === null){
295
+ return 'null';
296
+ }
297
+ else if(_obj !== undefined){
298
+ _type = _this.type(_obj);
299
+ if(!_type){
300
+ return 'null';
301
+ }
302
+ switch(_type){
303
+ case 'b': _str = String(_obj); break;
304
+ case 'n': _str = String(_obj); break;
305
+ case 's': _str = _this._quoteString(_obj); break;
306
+ // Might need further investigation, but _encodeString is disabled for now:
307
+ // case 's': _str = _this._quoteString(_this._encodeString(_obj)); break;
308
+ case 'd': _str = '"@'+String(_obj.getTime()/1000)+'"'; break;
309
+ case 'a': _str = _this._encodeArr(_obj); break;
310
+ case 'h': _str = _this._encodeHash(_obj); break;
311
+ default: _str = 'null'; break;
312
+ }
313
+ }
314
+ else {
315
+ return 'null';
316
+ }
317
+ return _str;
318
+ },
319
+
320
+ /** = Description
321
+ * Decodes a JSON object. Decodes url-encoded strings contained.
322
+ *
323
+ * = Parameters
324
+ * +_ibj+:: A raw object with special characters url-encoded.
325
+ *
326
+ * = Returns
327
+ * An version of the object with the contained strings decoded to unicode.
328
+ *
329
+ **/
330
+ decode: function(_ibj){
331
+ var _obj, _type, _this = this;
332
+ if(_ibj !== null && _ibj !== undefined){
333
+ _type = _this.type(_ibj);
334
+ if(!_type){
335
+ return null;
336
+ }
337
+ switch(_type){
338
+ case 'b': _obj = _ibj; break;
339
+ case 'n': _obj = _ibj; break;
340
+ case 's': _obj = _this._decodeString(_ibj); break;
341
+ case 'd': _obj = _ibj; break;
342
+ case 'a': _obj = _this._decodeArr(_ibj); break;
343
+ case 'h': _obj = _this._decodeHash(_ibj); break;
344
+ default: _obj = null; break;
345
+ }
346
+ }
347
+ else {
348
+ return null;
349
+ }
350
+ return _obj;
351
+ },
352
+
353
+ /** = Description
354
+ * Makes a deep copy of the object.
355
+ *
356
+ * When you use assignment of a js object, only primitive object types
357
+ * (strings, numbers and booleans) are copied. This method makes a deep
358
+ * (nested) clone of the input object.
359
+ *
360
+ * = Parameters
361
+ * +_obj+:: Any object.
362
+ *
363
+ * = Returns
364
+ * A copy of the object.
365
+ *
366
+ **/
367
+ clone: function( _obj, _shallow ){
368
+ if(_obj === null || _obj === undefined){
369
+ console.log('null or undefined obj:',_obj);
370
+ return _obj;
371
+ }
372
+ var _item,
373
+ _cloned;
374
+ if( _obj instanceof Array ){
375
+ _cloned = [];
376
+ for( _item = 0; _item < _obj.length; _item ++ ){
377
+ if(_shallow){
378
+ _cloned[ _item ] = _obj[ _item ];
379
+ }
380
+ else {
381
+ _cloned[ _item ] = this.clone( _obj[ _item ] );
382
+ }
383
+ }
384
+ return _cloned;
385
+ }
386
+ else if( _obj instanceof Object ){
387
+ _cloned = {};
388
+ for( _item in _obj ){
389
+ if(_shallow){
390
+ _cloned[ _item ] = _obj[ _item ];
391
+ }
392
+ else {
393
+ _cloned[ _item ] = this.clone( _obj[ _item ] );
394
+ }
395
+ }
396
+ return _cloned;
397
+ }
398
+ else {
399
+ return _obj;
400
+ }
401
+ },
402
+
403
+ /** = Description
404
+ * Returns an URI-encoded string representation of all the changed values to
405
+ * synchronize to the server.
406
+ *
407
+ * = Returns
408
+ * An encoded string representation of values to synchronize.
409
+ **/
410
+ sync: function(){
411
+ if(this.tosync.length===0){
412
+ return false;
413
+ }
414
+ var _syncValues = {},
415
+ _this = this,
416
+ _values = _this.values,
417
+ _tosync = _this.tosync,
418
+ _len = _tosync.length,
419
+ i = 0, _id, _value;
420
+ for(;i<_len;i++){
421
+ _id = _tosync.shift();
422
+ _value = _values[_id].value;
423
+ _syncValues[_id] = _value;
424
+ }
425
+ return encodeURIComponent(_this.encode(_syncValues));
426
+ }
427
+ });
428
+
429
+ // Backwards compatibility assignment for code that still
430
+ // uses HVM as a reference of the Value Manager:
431
+ HVM = COMM.Values;
432
+
File without changes
@@ -0,0 +1,114 @@
1
+ /* Riassence Framework
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
+ /*** = Description
10
+ ** A class for asynchronously fetching Javascript libraries from the server.
11
+ **
12
+ ** Loads and evalueates the code returned as a string from the server.
13
+ ** Use the jsLoader instance to get packaged Javascript libraries from the
14
+ ** standard package url.
15
+ ***/
16
+
17
+ COMM.JSLoader = HClass.extend({
18
+
19
+ /** = Description
20
+ * Construct with the base url.
21
+ *
22
+ * The this is the base url used by the +load+ method.
23
+ *
24
+ **/
25
+ constructor: function(_uri){
26
+ var _this = this;
27
+ _this._loadedJS = [];
28
+ _this.uri = _uri;
29
+ _this._okayed = false;
30
+ },
31
+
32
+ // Error catcher for failed requests.
33
+ _fail: function(_this,_resp){
34
+ console.log("failed to load js: "+_resp.url);
35
+ },
36
+
37
+ /** = Description
38
+ * Loads a js package using the name.
39
+ *
40
+ * The base url given in the constructor is used as the prefix.
41
+ * Omit the '.js' suffix, because it's appended automatically.
42
+ *
43
+ * = Parameters
44
+ * +_jsName+:: The name of the js file to load (without the .js suffix)
45
+ *
46
+ * = Usage:
47
+ * Uses the main instance set to the base path of the server's
48
+ * js package url. Loads a package containing list components.
49
+ * jsLoader.load('lists');
50
+ *
51
+ **/
52
+ load: function(_jsName){
53
+ var _this = this,
54
+ _isFullUrl = _jsName.slice(0,7) === 'http://' || _jsName.slice(0,8) === 'https://',
55
+ _url = _isFullUrl?_jsName:_this.uri+_jsName+'.js';
56
+ if((_this._loadedJS.indexOf(_url)!==-1)) {
57
+ return;
58
+ }
59
+ COMM.Queue.pause();
60
+ _this._loadedJS.push(_url);
61
+ if(BROWSER_TYPE.symbian && _isFullUrl){
62
+ alert('Sorry, this browser does not support loading external scripts!');
63
+ return;
64
+ }
65
+ else if(BROWSER_TYPE.symbian){
66
+ _this._req = COMM.request(
67
+ _url, {
68
+ onSuccess: function(_resp){
69
+ _this._req = null;
70
+ COMM.Queue.unshiftEval(_resp.X.responseText);
71
+ COMM.Queue.resume();
72
+ },
73
+ onFailure: _this._fail,
74
+ method: 'GET',
75
+ async: true
76
+ }
77
+ );
78
+ return;
79
+ }
80
+ var _script = document.createElement('script');
81
+ if(BROWSER_TYPE.ie){
82
+ _script.onreadystatechange = function(){
83
+ if(this.readyState === 'loaded' || this.readyState === 'complete'){
84
+ COMM.Queue.resume();
85
+ _script.onload = _script.readystatechange = null;
86
+ }
87
+ };
88
+ }
89
+ else {
90
+ _script.onload = function(){
91
+ COMM.Queue.resume();
92
+ };
93
+ }
94
+ _script.src = _url;
95
+ _script.type = 'text/javascript';
96
+ document.getElementsByTagName('head')[0].appendChild(_script);
97
+ }
98
+ });
99
+
100
+ /** -- Global reference ++ **/
101
+ JSLoader = COMM.JSLoader;
102
+
103
+ // Makes the standard jsLoader instance based on the client base url
104
+ // of the server when the page is loaded.
105
+ LOAD(
106
+ function(){
107
+ COMM.jsLoader = COMM.JSLoader.nu( HCLIENT_BASE + '/js/' );
108
+ // backwards compatibility aliases:
109
+ jsLoader = COMM.jsLoader;
110
+ }
111
+ );
112
+
113
+
114
+