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,77 @@
1
+ /* tab bar */
2
+ .tab_label {
3
+ position: absolute;
4
+ top: 0px; left: 0px right: 0px; height: 24px;
5
+ cursor: pointer;
6
+ }
7
+
8
+ /* set left and width manually */
9
+ .tab_label .item-fg,
10
+ .tab_label .item-bg {
11
+ position: absolute;
12
+ top: 0px; height: 24px;
13
+ background-repeat: repeat-x;
14
+ }
15
+ .tab_label,
16
+ .tab_label .edge-left,
17
+ .tab_label .edge-right,
18
+ .tab_label .tablabel,
19
+ .tab_label_fill_bg {
20
+ background-repeat: no-repeat;
21
+ background-image: #{this.getCssFilePath('tab_parts1.png')};
22
+ }
23
+ .tab_label_fill_bg {
24
+ position: absolute;
25
+ top: 0px; left: 0px; right: 0px; height: 24px;
26
+ background-position: 0px -96px;
27
+ background-repeat: repeat-x;
28
+ }
29
+
30
+ .tab_label .edge-left {
31
+ position: absolute;
32
+ top: 0px; left: 0px; width: 12px; height: 24px;
33
+ background-position: 0px 0px;
34
+ }
35
+ .tab_label .item-bg .edge-left {
36
+ background-position: -24px 0px;
37
+ }
38
+
39
+ .tab_label .edge-right {
40
+ position: absolute;
41
+ top: 0px; right: 0px; width: 9px; height: 24px;
42
+ background-position: -12px 0px;
43
+ }
44
+ .tab_label .item-bg .edge-right {
45
+ background-position: -36px 0px;
46
+ }
47
+
48
+ .tab_label .tablabel {
49
+ position: absolute;
50
+ top: 0px; left: 12px; right: 9px; height: 24px;
51
+ background-position: 0px -24px;
52
+ background-repeat: repeat-x;
53
+ vertical-align: middle;
54
+ text-align: center;
55
+ color: #000;
56
+ line-height: 26px;
57
+ overflow: hidden;
58
+ text-align: center; vertical-align: middle;
59
+ font-family: Arial, sans-serif;
60
+ font-size: 12px; font-weight: bold;
61
+ color: #333;
62
+ }
63
+ .tab_label .item-bg .tablabel {
64
+ background-position: 0px -48px;
65
+ color: #666;
66
+ }
67
+
68
+ .tab_bg {
69
+ position: absolute;
70
+ top: 24px; left: 0px; right: 0px; bottom: 0px;
71
+ background-image: #{this.getCssFilePath('tab_border_pattern.png')};
72
+ }
73
+ .tab_fg {
74
+ position: absolute;
75
+ top: 0px; left: 1px; right: 1px; bottom: 1px;
76
+ background-image: #{this.getCssFilePath('tab_bg_color.png')};
77
+ }
@@ -0,0 +1,6 @@
1
+ <div class="tab_bg" id="bg#{_ID}">
2
+ <div class="tab_fg"></div>
3
+ </div>
4
+ <div class="tab_label" id="label#{_ID}"></div>
5
+ <div class="tab_label_fill_bg" id="state#{_ID}"></div>
6
+ ${this.tabLabelLeftEdge=12;this.tabLabelRightEdge=9;this.tabLabelHeight=24;this.fontStyle='font-family:Arial,sans-serif;font-size:12px;font-weight:bold;';this.tabLabelFillBg=true;}
File without changes
@@ -0,0 +1,24 @@
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
+ ** HTextArea is a scrollable multi-line area that displays editable plain
11
+ ** text.
12
+ **
13
+ ** = Instance variables
14
+ ** +type+:: '[HTextArea]'
15
+ ** +value+:: The string that is currently held by this object.
16
+ ***/
17
+ var//RSence.Controls
18
+ HTextArea = HTextControl.extend({
19
+
20
+ componentName: "textarea"
21
+
22
+
23
+ });
24
+
@@ -0,0 +1,21 @@
1
+ .default .textarea_input {
2
+ position: absolute;
3
+ display: block;
4
+ font-family: Arial, sans-serif;
5
+ font-size: 13px;
6
+ color: #000;
7
+ background-color: transparent;
8
+ vertical-align: middle;
9
+ border: 0;
10
+ left:0px;top:0px;
11
+ #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.opera)?'padding:0;padding-left:2px;width:100% !important;height:100% !important;':BROWSER_TYPE.ie6?'right:2px;bottom:2px;':'padding:2px;right:0px;bottom:0px;width:auto;height:auto;'}
12
+ }
13
+
14
+ .default .disabled .textarea_input {
15
+ #{(BROWSER_TYPE.safari||BROWSER_TYPE.chrome)?'color:#ccc;':'color:#999'}
16
+ }
17
+
18
+ .default .textarea_input_parent {
19
+ position: absolute;
20
+ #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.opera)?'left:0;padding-left:1px;top:1px;right:3px;bottom:1px;':BROWSER_TYPE.ie?'left:2px;top:1px;right:1px;bottom:1px;':'left:-2px;top:-2px;right:-2px;bottom:-2px;'}
21
+ }
@@ -0,0 +1,18 @@
1
+ <div class="textcontrol_bg"></div>
2
+
3
+ <div class="textcontrol_n"></div>
4
+ <div class="textcontrol_s"></div>
5
+ <div class="textcontrol_w"></div>
6
+ <div class="textcontrol_e"></div>
7
+
8
+ <div class="textcontrol_nw"></div>
9
+ <div class="textcontrol_ne"></div>
10
+ <div class="textcontrol_se"></div>
11
+ <div class="textcontrol_sw"></div>
12
+
13
+ <div id="label#{_ID}" title="#{this.label}" class="textarea_input_parent">
14
+ <textarea class="textarea_input" style="resize:none;" #{this.enabled?'':'disabled'}
15
+ onfocus="HSystem.views[#{this.viewId}].textFocus();"
16
+ onblur="HSystem.views[#{this.viewId}].textBlur();"
17
+ id="value#{_ID}">#{this.value}</textarea>
18
+ </div>
File without changes
@@ -0,0 +1,374 @@
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
+ ** HTextControl is a control unit that represents an editable input
11
+ ** line of text. Commonly, textcontrol is used as a single text field in
12
+ ** the request forms. HTextControl view or theme can be changed; the
13
+ ** default_theme is used by default.
14
+ **
15
+ ** = Instance variables
16
+ ** +type+:: '[HTextControl]'
17
+ ** +value+:: The string that is currently held by this object.
18
+ ***/
19
+ var//RSence.Controls
20
+ HTextControl = HControl.extend({
21
+
22
+ componentName: "textcontrol",
23
+
24
+ defaultEvents: {
25
+ textEnter: true
26
+ },
27
+
28
+ controlDefaults: (HControlDefaults.extend({
29
+ refreshOnBlur: true,
30
+ refreshOnInput: true
31
+ })),
32
+
33
+ /** = Description
34
+ * The refreshLabel method sets the title property of the text
35
+ * field, essentially creating a tooltip using the label.
36
+ *
37
+ **/
38
+ refreshLabel: function(){
39
+ if(this['markupElemIds']!==undefined){
40
+ if(this.markupElemIds['label']!==undefined){
41
+ ELEM.setAttr(this.markupElemIds.label,'title',this.label);
42
+ }
43
+ }
44
+ },
45
+
46
+ // drawSubviews: function(){
47
+ // if(this['markupElemIds']!==undefined && this.markupElemIds['value']!==undefined) {
48
+ // // this.adjustInputStyle();
49
+ // }
50
+ // this.setEnabled(this.enabled);
51
+ // },
52
+ //
53
+ // /** = Description
54
+ // * Tweaks the input element to fit the match the size properly
55
+ // * in different browsers. Can't be done reliably by using just
56
+ // * the theme css, because some browsers are broken
57
+ // * regarding styling of input elements.
58
+ // *
59
+ // **/
60
+ // adjustInputStyle: function(){
61
+ // var _input = this.markupElemIds.value,
62
+ // _label = this.markupElemIds.label;
63
+ // if(BROWSER_TYPE.firefox){
64
+ // if(this.componentName === 'textarea'){
65
+ // ELEM.setStyle(_input,'padding-top','0px');
66
+ // }
67
+ // else {
68
+ // ELEM.setStyle(_input,'margin-top','1px');
69
+ // }
70
+ // ELEM.setStyle(_input,'padding-left','0px');
71
+ // ELEM.setStyle(_label,'left','2px');
72
+ // ELEM.setStyle(_label,'top','0px');
73
+ // ELEM.setStyle(_label,'right','2px');
74
+ // ELEM.setStyle(_label,'bottom','2px');
75
+ // }
76
+ // else if(BROWSER_TYPE.ie){
77
+ // ELEM.flushLoop();
78
+ // var _size = ELEM.getVisibleSize( this.elemId ),
79
+ // _width = _size[0],
80
+ // _height = _size[1];
81
+ // ELEM.setStyle(_input,'left','2px');
82
+ // ELEM.setStyle(_input,'top','1px');
83
+ // ELEM.setStyle(_input,'padding-top','0px');
84
+ // ELEM.setStyle(_input,'padding-left','0px');
85
+ // ELEM.setStyle(_input,'padding-right','8px');
86
+ // ELEM.setStyle(_input,'padding-bottom','0px');
87
+ // ELEM.setStyle(_input,'width',(_width-10)+'px');
88
+ // ELEM.setStyle(_input,'height',(_height-2)+'px');
89
+ // ELEM.setStyle(_label,'left','0px');
90
+ // ELEM.setStyle(_label,'top','0px');
91
+ // ELEM.setStyle(_label,'right','0px');
92
+ // ELEM.setStyle(_label,'bottom','0px');
93
+ // }
94
+ // },
95
+
96
+ setStyle: function(_name, _value, _cacheOverride) {
97
+ if (!this['markupElemIds']||!this.markupElemIds['value']) {
98
+ return;
99
+ }
100
+ this.setStyleOfPart('value', _name, _value, _cacheOverride);
101
+ },
102
+
103
+ setEnabled: function(_flag) {
104
+ this.base(_flag);
105
+ if(this['markupElemIds'] && this.markupElemIds.value) {
106
+ ELEM.get(this.markupElemIds.value).disabled = !this.enabled;
107
+ }
108
+ },
109
+
110
+ /** This flag is true, when the text input field has focus.
111
+ **/
112
+ hasTextFocus: false,
113
+
114
+ /** = Description
115
+ * Special event for text entry components.
116
+ * Called when the input field gains focus.
117
+ *
118
+ **/
119
+ textFocus: function(){
120
+ this.hasTextFocus = true;
121
+ return true;
122
+ },
123
+
124
+ /** = Description
125
+ * Special event for text entry components.
126
+ * Called when the input field loses focus.
127
+ *
128
+ **/
129
+ textBlur: function(){
130
+ this.hasTextFocus = false;
131
+ if(this.options.refreshOnBlur){
132
+ this.refreshValue();
133
+ }
134
+ return true;
135
+ },
136
+
137
+ /** = Description
138
+ * refreshValue function
139
+ *
140
+ *
141
+ **/
142
+ refreshValue: function(){
143
+ this.setTextFieldValue( this.value );
144
+ },
145
+
146
+ /** = Description
147
+ * Placeholder method for validation of the value.
148
+ *
149
+ **/
150
+ validateText: function(_value){
151
+ return _value;
152
+ },
153
+
154
+ /** = Description
155
+ * Returns the input element or null, if no input element created (yet).
156
+ *
157
+ **/
158
+ getInputElement: function(){
159
+ if( this.markupElemIds && this.markupElemIds.value ){
160
+ return ELEM.get(this.markupElemIds.value);
161
+ }
162
+ return null;
163
+ },
164
+
165
+ /** = Description
166
+ * Returns the value of the input element.
167
+ *
168
+ **/
169
+ getTextFieldValue: function(){
170
+ var _inputElement = this.getInputElement();
171
+ if( _inputElement === null ){
172
+ return '';
173
+ }
174
+ return _inputElement.value;
175
+ },
176
+
177
+ /** = Description
178
+ * Sets the value of the input element.
179
+ *
180
+ * = Parameters
181
+ * +_value+:: The value to set.
182
+ *
183
+ **/
184
+ setTextFieldValue: function(_value){
185
+ var _inputElement = this.getInputElement(),
186
+ _selectionRange = this.getSelectionRange();
187
+ if( _inputElement === null ){
188
+ return;
189
+ }
190
+ if( _inputElement.value !== String(_value) ){
191
+ _inputElement.value = _value;
192
+ }
193
+ this.setSelectionRange( _selectionRange[0], _selectionRange[1] );
194
+ },
195
+
196
+ // returns a random number prefixed and suffixed with '---'
197
+ _randomMarker: function(){
198
+ return '---'+Math.round((1+Math.random())*10000)+'---';
199
+ },
200
+
201
+ /** = Description
202
+ * Returns the selection (or text cursor position) of the input element
203
+ * as an +Array+ like +[ startOffset, endOffset ]+.
204
+ *
205
+ **/
206
+ getSelectionRange: function(){
207
+ var _inputElement = this.getInputElement();
208
+ if( _inputElement === null || this.hasTextFocus === false ){
209
+ return [ 0, 0 ];
210
+ }
211
+ if(document.selection){
212
+ // Internet Explorer
213
+
214
+ var
215
+
216
+ // create a range object
217
+ _range = document.selection.createRange(),
218
+
219
+ // original range text
220
+ _rangeText = _range.text,
221
+ _rangeLength = _rangeText.length,
222
+
223
+ // make a copy of the text and replace \r\n with \n
224
+ _origValue = _inputElement.value.replace(/\r\n/g, "\n"),
225
+
226
+ _markerValue,
227
+ _markerLength,
228
+ _markerIndex,
229
+
230
+ // create random marker to replace the text with
231
+ _marker = this._randomMarker();
232
+
233
+ // re-generate marker if it's found in the text.
234
+ while( _origValue.indexOf( _marker ) !== -1){
235
+ _marker = this._randomMarker();
236
+ }
237
+
238
+ _markerLength = _marker.length;
239
+
240
+ // temporarily set the text of the selection to the unique marker
241
+ _range.text = _marker;
242
+
243
+ _markerValue = _inputElement.value.replace(/\r\n/g, "\n");
244
+
245
+ _range.text = _rangeText;
246
+
247
+ _markerIndex = _markerValue.indexOf( _marker );
248
+
249
+ return [
250
+ _markerIndex,
251
+ _markerIndex + _rangeLength
252
+ ];
253
+ }
254
+ else if (_inputElement.selectionStart){
255
+ // Mozilla - Gecko
256
+ return [
257
+ _inputElement.selectionStart,
258
+ _inputElement.selectionEnd
259
+ ];
260
+ }
261
+ else {
262
+ // no support
263
+ return [ 0, 0 ];
264
+ }
265
+ },
266
+
267
+ /** = Description
268
+ * Sets the selection (or text cursor position) of the input element.
269
+ *
270
+ * = Parameters
271
+ * +_selectionStart+:: The start of the selection (or an Array containing
272
+ * both start and end offset, see below).
273
+ * +_selectionEnd+:: The end offset of the selection.
274
+ *
275
+ * = Note
276
+ * - +_selectionStart+ can also be given as an +Array+
277
+ * like +[ startOffset, endOffset ]+.
278
+ * - If the +_selectionEnd+ is omitted, no selection is made; the text
279
+ * cursor is positioned at the startOffset instead.
280
+ **/
281
+ setSelectionRange: function( _selectionStart, _selectionEnd ){
282
+ if( _selectionStart instanceof Array ){
283
+ _selectionEnd = _selectionStart[1];
284
+ _selectionStart = _selectionStart[0];
285
+ }
286
+ if( _selectionEnd === undefined ){
287
+ _selectionEnd = _selectionStart;
288
+ }
289
+ var _inputElement = this.getInputElement();
290
+ if( _inputElement === null || this.hasTextFocus === false ){
291
+ return;
292
+ }
293
+ if(_inputElement.createTextRange){
294
+ // Internet Explorer
295
+ var _range = _inputElement.createTextRange();
296
+ _range.move( 'character', _selectionStart, _selectionEnd );
297
+ _range.select();
298
+ }
299
+ else if (_inputElement.selectionStart){
300
+ // Mozilla - Gecko
301
+ _inputElement.setSelectionRange( _selectionStart, _selectionEnd );
302
+ }
303
+ },
304
+
305
+ /** = Description
306
+ * Receives the +textEnter+ event to update the value
307
+ * based on what's (potentially) entered in the text input field.
308
+ *
309
+ **/
310
+ textEnter: function(){
311
+ this.setValue(
312
+ this.validateText(
313
+ this.getTextFieldValue()
314
+ )
315
+ );
316
+ if(this.options.refreshOnInput){
317
+ this.refreshValue();
318
+ }
319
+ return false;
320
+ }
321
+
322
+ });
323
+
324
+ /** = Description
325
+ * HNumericTextControl is an extension of HTextControl that
326
+ * validates the input as a number. It supports value ranges.
327
+ *
328
+ * If you need decimal numbers (floating-point), pass the
329
+ * decimalNumber: true option to the constructor.
330
+ **/
331
+ var//RSence.Controls
332
+ HNumericTextControl = HTextControl.extend({
333
+
334
+ defaultEvents: {
335
+ mouseWheel: true,
336
+ textEnter: true
337
+ },
338
+
339
+ /** Uses the mouseWheel event to step up/down the value.
340
+ **/
341
+ mouseWheel: function(_delta){
342
+ var _value = this.value;
343
+ _value = _value-((_delta<0)?1:-1);
344
+ this.setValue(Math.round(this.validateText(_value)));
345
+ },
346
+
347
+ /** = Description
348
+ * Extends the validateText method to ensure the
349
+ * input is a number.
350
+ *
351
+ **/
352
+ validateText: function(_value){
353
+ if(this.options.decimalNumber){
354
+ _value = parseFloat(_value);
355
+ }
356
+ else{
357
+ _value = parseInt(_value,10);
358
+ }
359
+ if(isNaN(_value)){
360
+ _value = this.value;
361
+ }
362
+ if(_value>this.options.maxValue){
363
+ _value = this.options.maxValue;
364
+ }
365
+ else if(_value<this.options.minValue){
366
+ _value = this.options.minValue;
367
+ }
368
+ return _value;
369
+ }
370
+
371
+ });
372
+
373
+
374
+
@@ -0,0 +1,107 @@
1
+
2
+ .default .textcontrol_input {
3
+ position: absolute;
4
+ display: block;
5
+ font-family: Arial, sans-serif;
6
+ font-size: 13px;
7
+ color: #000;
8
+ background-color: transparent;
9
+ vertical-align: middle;
10
+ border: 0px;
11
+ left: 0px; top: 0px;
12
+ #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.opera)?'padding-left:2px;width:100% !important;height:90% !important;':BROWSER_TYPE.ie6?'right:4px;bottom:2px;':'padding:2px;right:0px;bottom:0px;width:auto;height:auto;'}
13
+ }
14
+
15
+ .default .disabled .textcontrol_input {
16
+ color: #999;
17
+ }
18
+
19
+ .default .textcontrol_input_parent {
20
+ position: absolute;
21
+ #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.opera)?'left:0;padding-left:1px;top:0;right:4px;bottom:0;':BROWSER_TYPE.ie6?'left:2px;top:1px;right:1px;bottom:1px;':'left:-2px;top:-2px;right:-2px;bottom:-2px;'}
22
+ }
23
+
24
+ .default .textcontrol_bg {
25
+ position: absolute;
26
+ left: 2px; top: 2px; right: 2px; bottom: 2px;
27
+ background-color: #fff;
28
+ #{BROWSER_TYPE.ie6?'font-size:0;line-height:0;':''}
29
+ }
30
+
31
+
32
+
33
+ .default .textcontrol_ne,
34
+ .default .textcontrol_nw,
35
+ .default .textcontrol_se,
36
+ .default .textcontrol_sw {
37
+ position: absolute;
38
+ width: 7px; height: 7px;
39
+ background-repeat: no-repeat;
40
+ background-image: #{this.getCssFilePath('textcontrol_parts1.png')};
41
+ #{BROWSER_TYPE.ie6?'font-size:0;line-height:0;':''}
42
+ }
43
+
44
+ .default .textcontrol_nw {
45
+ left: 0px; top: 0px;
46
+ background-position: 0px 0px;
47
+ }
48
+
49
+ .default .textcontrol_ne {
50
+ right: 0px; top: 0px;
51
+ background-position: -7px 0px;
52
+ }
53
+
54
+ .default .textcontrol_sw {
55
+ left: 0px; bottom: 0px;
56
+ background-position: 0px -7px;
57
+ }
58
+
59
+ .default .textcontrol_se {
60
+ right: 0px; bottom: 0px;
61
+ background-position: -7px -7px;
62
+ }
63
+
64
+
65
+
66
+ .default .textcontrol_w,
67
+ .default .textcontrol_e {
68
+ position: absolute;
69
+ width: 7px; top: 7px; bottom: 7px;
70
+ background-repeat: repeat-y;
71
+ background-image: #{this.getCssFilePath('textcontrol_parts3.png')};
72
+ #{BROWSER_TYPE.ie6?'font-size:0;line-height:0;':''}
73
+ }
74
+
75
+ .default .textcontrol_w {
76
+ left: 0px;
77
+ background-position: 0px 0px;
78
+ }
79
+
80
+ .default .textcontrol_e {
81
+ right: 0px;
82
+ background-position: -7px 0px;
83
+ }
84
+
85
+
86
+
87
+ .default .textcontrol_n,
88
+ .default .textcontrol_s {
89
+ position: absolute;
90
+ height: 7px; left: 7px; right: 7px;
91
+ background-repeat: repeat-x;
92
+ background-image: #{this.getCssFilePath('textcontrol_parts2.png')};
93
+ #{BROWSER_TYPE.ie6?'font-size:0;line-height:0;':''}
94
+ }
95
+
96
+ .default .textcontrol_n {
97
+ top: 0px;
98
+ background-position: 0px 0px;
99
+ }
100
+
101
+ .default .textcontrol_s {
102
+ bottom: 0px;
103
+ background-position: 0px -7px;
104
+ }
105
+
106
+
107
+
@@ -0,0 +1,18 @@
1
+ <div class="textcontrol_bg"></div>
2
+
3
+ <div class="textcontrol_n"></div>
4
+ <div class="textcontrol_s"></div>
5
+ <div class="textcontrol_w"></div>
6
+ <div class="textcontrol_e"></div>
7
+
8
+ <div class="textcontrol_nw"></div>
9
+ <div class="textcontrol_ne"></div>
10
+ <div class="textcontrol_se"></div>
11
+ <div class="textcontrol_sw"></div>
12
+
13
+ <div id="label#{_ID}" title="#{this.label}" class="textcontrol_input_parent">
14
+ <input type="text" class="textcontrol_input" #{this.enabled?'':'disabled'}
15
+ onfocus="HSystem.views[#{this.viewId}].textFocus();"
16
+ onblur="HSystem.views[#{this.viewId}].textBlur();"
17
+ id="value#{_ID}" value="#{this.value}" />
18
+ </div>
File without changes