rsence 2.0.0.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/INSTALL.rdoc +295 -0
- data/LICENSE +622 -0
- data/README.rdoc +24 -0
- data/VERSION +1 -0
- data/bin/build_client.rb +254 -0
- data/bin/help +6 -0
- data/bin/launch.rb +120 -0
- data/bin/rdoc.sh +2 -0
- data/bin/restart +6 -0
- data/bin/rsence +120 -0
- data/bin/run +6 -0
- data/bin/run.rb +6 -0
- data/bin/save +6 -0
- data/bin/start +6 -0
- data/bin/status +6 -0
- data/bin/stop +6 -0
- data/conf/config.ru +5 -0
- data/conf/default_conf.yaml +337 -0
- data/conf/default_strings.yaml +77 -0
- data/conf/local_conf.yaml +14 -0
- data/conf/unicorn.conf +78 -0
- data/js/comm/comm/autosync/autosync.js +18 -0
- data/js/comm/comm/autosync/js.inc +0 -0
- data/js/comm/comm/comm.js +195 -0
- data/js/comm/comm/js.inc +0 -0
- data/js/comm/comm/queue/js.inc +0 -0
- data/js/comm/comm/queue/queue.js +183 -0
- data/js/comm/comm/session/js.inc +0 -0
- data/js/comm/comm/session/session.js +51 -0
- data/js/comm/comm/sessionwatcher/js.inc +0 -0
- data/js/comm/comm/sessionwatcher/sessionwatcher.js +43 -0
- data/js/comm/comm/transporter/js.inc +0 -0
- data/js/comm/comm/transporter/transporter.js +257 -0
- data/js/comm/comm/urlresponder/js.inc +0 -0
- data/js/comm/comm/urlresponder/urlresponder.js +148 -0
- data/js/comm/comm/values/js.inc +0 -0
- data/js/comm/comm/values/values.js +432 -0
- data/js/comm/jsloader/js.inc +0 -0
- data/js/comm/jsloader/jsloader.js +114 -0
- data/js/comm/reloadapp/js.inc +0 -0
- data/js/comm/reloadapp/reloadapp.js +150 -0
- data/js/comm/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/comm/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/comm/sha/js.inc +0 -0
- data/js/comm/sha/sha.js +432 -0
- data/js/comm/values/value/js.inc +0 -0
- data/js/comm/values/value/value.js +182 -0
- data/js/comm/values/valuematrix/js.inc +0 -0
- data/js/comm/values/valuematrix/valuematrix.js +138 -0
- data/js/controls/button/button.js +57 -0
- data/js/controls/button/js.inc +0 -0
- data/js/controls/button/themes/bright/button.css +89 -0
- data/js/controls/button/themes/bright/button.html +7 -0
- data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/bright/button_parts1.png +0 -0
- data/js/controls/button/themes/default/button.css +89 -0
- data/js/controls/button/themes/default/button.html +7 -0
- data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/default/button_parts1.png +0 -0
- data/js/controls/checkbox/checkbox.js +47 -0
- data/js/controls/checkbox/js.inc +0 -0
- data/js/controls/checkbox/themes/default/checkbox.css +69 -0
- data/js/controls/checkbox/themes/default/checkbox.html +5 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
- data/js/controls/datetime/calendar/calendar.js +197 -0
- data/js/controls/datetime/calendar/js.inc +0 -0
- data/js/controls/datetime/calendar/themes/default/calendar.css +108 -0
- data/js/controls/datetime/calendar/themes/default/calendar.html +9 -0
- data/js/controls/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/controls/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/controls/datetime/datetimevalue/datetimevalue.js +246 -0
- data/js/controls/datetime/datetimevalue/js.inc +0 -0
- data/js/controls/datetime/timesheet/js.inc +0 -0
- data/js/controls/datetime/timesheet/themes/default/timesheet.css +30 -0
- data/js/controls/datetime/timesheet/themes/default/timesheet.html +2 -0
- data/js/controls/datetime/timesheet/timesheet.js +182 -0
- data/js/controls/datetime/timesheet_item/js.inc +0 -0
- data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
- data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
- data/js/controls/datetime/timesheet_item/timesheet_item.js +247 -0
- data/js/controls/datetime/timesheet_item_edit/js.inc +0 -0
- data/js/controls/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +62 -0
- data/js/controls/dialogs/alert_sheet/js.inc +0 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +36 -0
- data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/sheet.js +83 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
- data/js/controls/imageview/imageview.js +108 -0
- data/js/controls/imageview/js.inc +0 -0
- data/js/controls/imageview/themes/default/blank.gif +0 -0
- data/js/controls/lists/checkboxlist/checkboxlist.js +170 -0
- data/js/controls/lists/checkboxlist/js.inc +0 -0
- data/js/controls/lists/listitems/js.inc +0 -0
- data/js/controls/lists/listitems/listitems.js +65 -0
- data/js/controls/lists/radiobuttonlist/js.inc +0 -0
- data/js/controls/lists/radiobuttonlist/radiobuttonlist.js +126 -0
- data/js/controls/passwordcontrol/js.inc +0 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +22 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
- data/js/controls/progress/progressbar/js.inc +0 -0
- data/js/controls/progress/progressbar/progressbar.js +36 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
- data/js/controls/progress/progressindicator/js.inc +0 -0
- data/js/controls/progress/progressindicator/progressindicator.js +43 -0
- data/js/controls/radiobutton/js.inc +0 -0
- data/js/controls/radiobutton/radiobutton.js +41 -0
- data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
- data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
- data/js/controls/sliders/slider/js.inc +0 -0
- data/js/controls/sliders/slider/slider.js +356 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
- data/js/controls/sliders/slider/themes/default/slider.css +108 -0
- data/js/controls/sliders/slider/themes/default/slider.html +5 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
- data/js/controls/sliders/vslider/js.inc +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
- data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
- data/js/controls/sliders/vslider/vslider.js +40 -0
- data/js/controls/stepper/js.inc +0 -0
- data/js/controls/stepper/stepper.js +212 -0
- data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
- data/js/controls/stepper/themes/default/stepper.css +14 -0
- data/js/controls/stepper/themes/default/stepper.html +2 -0
- data/js/controls/stepper/themes/default/stepper.png +0 -0
- data/js/controls/stringview/js.inc +0 -0
- data/js/controls/stringview/stringview.js +49 -0
- data/js/controls/stringview/themes/default/stringview.css +8 -0
- data/js/controls/stringview/themes/default/stringview.html +1 -0
- data/js/controls/tab/js.inc +0 -0
- data/js/controls/tab/tab.js +276 -0
- data/js/controls/tab/themes/bright/tab.css +76 -0
- data/js/controls/tab/themes/bright/tab.html +6 -0
- data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
- data/js/controls/tab/themes/default/tab.css +77 -0
- data/js/controls/tab/themes/default/tab.html +6 -0
- data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_parts1.png +0 -0
- data/js/controls/textarea/js.inc +0 -0
- data/js/controls/textarea/textarea.js +23 -0
- data/js/controls/textarea/themes/default/textarea.css +21 -0
- data/js/controls/textarea/themes/default/textarea.html +18 -0
- data/js/controls/textcontrol/js.inc +0 -0
- data/js/controls/textcontrol/textcontrol.js +372 -0
- data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
- data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
- data/js/controls/uploader/js.inc +0 -0
- data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
- data/js/controls/uploader/themes/default/uploader.css +108 -0
- data/js/controls/uploader/themes/default/uploader.html +27 -0
- data/js/controls/uploader/uploader.js +153 -0
- data/js/controls/validatorview/js.inc +0 -0
- data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
- data/js/controls/validatorview/themes/default/validator.png +0 -0
- data/js/controls/validatorview/themes/default/validatorview.css +0 -0
- data/js/controls/validatorview/themes/default/validatorview.html +0 -0
- data/js/controls/validatorview/validatorview.js +55 -0
- data/js/controls/window/js.inc +0 -0
- data/js/controls/window/themes/default/window.css +219 -0
- data/js/controls/window/themes/default/window.html +17 -0
- data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_active.png +0 -0
- data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
- data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_buttons.png +0 -0
- data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts1.png +0 -0
- data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts2.png +0 -0
- data/js/controls/window/window.js +284 -0
- data/js/core/class/class.js +317 -0
- data/js/core/class/js.inc +0 -0
- data/js/core/elem/elem.js +1376 -0
- data/js/core/elem/js.inc +0 -0
- data/js/core/event/event.js +1021 -0
- data/js/core/event/js.inc +0 -0
- data/js/core/iefix/ie_css_element.htc +5 -0
- data/js/core/iefix/ie_css_style.htc +5 -0
- data/js/core/iefix/iefix.js +359 -0
- data/js/core/iefix/js.inc +0 -0
- data/js/debugg/debugg.js +43 -0
- data/js/debugg/js.inc +0 -0
- data/js/foundation/application/application.js +209 -0
- data/js/foundation/application/js.inc +0 -0
- data/js/foundation/control/control.js +342 -0
- data/js/foundation/control/controldefaults/controldefaults.js +59 -0
- data/js/foundation/control/controldefaults/js.inc +0 -0
- data/js/foundation/control/dummyvalue/dummyvalue.js +50 -0
- data/js/foundation/control/dummyvalue/js.inc +0 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +494 -0
- data/js/foundation/control/dyncontrol/js.inc +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
- data/js/foundation/control/eventresponder/eventresponder.js +713 -0
- data/js/foundation/control/eventresponder/js.inc +0 -0
- data/js/foundation/control/js.inc +0 -0
- data/js/foundation/control/valueresponder/js.inc +0 -0
- data/js/foundation/control/valueresponder/valueresponder.js +77 -0
- data/js/foundation/geom/point/js.inc +0 -0
- data/js/foundation/geom/point/point.js +202 -0
- data/js/foundation/geom/rect/js.inc +0 -0
- data/js/foundation/geom/rect/rect.js +610 -0
- data/js/foundation/json_renderer/js.inc +0 -0
- data/js/foundation/json_renderer/json_renderer.js +231 -0
- data/js/foundation/system/js.inc +0 -0
- data/js/foundation/system/system.js +369 -0
- data/js/foundation/thememanager/js.inc +0 -0
- data/js/foundation/thememanager/thememanager.js +387 -0
- data/js/foundation/view/js.inc +0 -0
- data/js/foundation/view/markupview/js.inc +0 -0
- data/js/foundation/view/markupview/markupview.js +113 -0
- data/js/foundation/view/morphanimation/js.inc +0 -0
- data/js/foundation/view/morphanimation/morphanimation.js +236 -0
- data/js/foundation/view/view.js +1804 -0
- data/js/foundation/view/viewdefaults/js.inc +0 -0
- data/js/foundation/view/viewdefaults/viewdefaults.js +25 -0
- data/js/views/centerview/centerview.js +45 -0
- data/js/views/centerview/js.inc +0 -0
- data/js/views/inlineview/inlineview.js +14 -0
- data/js/views/inlineview/js.inc +0 -0
- data/js/views/scrollview/js.inc +0 -0
- data/js/views/scrollview/scrollview.js +39 -0
- data/lib/conf/default.rb +220 -0
- data/lib/conf/wizard.rb +303 -0
- data/lib/daemon/daemon.rb +293 -0
- data/lib/http/broker.rb +102 -0
- data/lib/http/rackup.rb +88 -0
- data/lib/http/request.rb +69 -0
- data/lib/http/response.rb +63 -0
- data/lib/plugins/gui_plugin.rb +129 -0
- data/lib/plugins/guiparser.rb +114 -0
- data/lib/plugins/plugin.rb +652 -0
- data/lib/plugins/plugin_plugins.rb +47 -0
- data/lib/plugins/plugin_sqlite_db.rb +72 -0
- data/lib/plugins/plugin_util.rb +96 -0
- data/lib/plugins/pluginmanager.rb +517 -0
- data/lib/plugins/servlet.rb +69 -0
- data/lib/session/msg.rb +291 -0
- data/lib/session/sessionmanager.rb +491 -0
- data/lib/session/sessionstorage.rb +314 -0
- data/lib/transporter/transporter.rb +254 -0
- data/lib/util/gzstring.rb +5 -0
- data/lib/values/hvalue.rb +323 -0
- data/lib/values/valuemanager.rb +152 -0
- data/plugins/client_pkg/client_pkg.rb +186 -0
- data/plugins/client_pkg/info.yaml +25 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +569 -0
- data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
- data/plugins/client_pkg/lib/client_pkg_serve.rb +210 -0
- data/plugins/client_pkg/log/build_log +0 -0
- data/plugins/index_html/img/loading.gif +0 -0
- data/plugins/index_html/img/riassence.gif +0 -0
- data/plugins/index_html/index_html.rb +150 -0
- data/plugins/index_html/tmpl/index.html +22 -0
- data/plugins/index_html/tmpl/startup_index.html +29 -0
- data/plugins/legacy/disabled +0 -0
- data/plugins/legacy/disabled- +0 -0
- data/plugins/legacy/info.yaml +22 -0
- data/plugins/legacy/legacy.rb +15 -0
- data/plugins/main/js/riassence_ns.js +87 -0
- data/plugins/main/main.rb +234 -0
- data/plugins/main/values.yaml +8 -0
- data/plugins/ticketservices/lib/common.rb +300 -0
- data/plugins/ticketservices/lib/favicon.rb +38 -0
- data/plugins/ticketservices/lib/file.rb +58 -0
- data/plugins/ticketservices/lib/img.rb +50 -0
- data/plugins/ticketservices/lib/objblob.rb +66 -0
- data/plugins/ticketservices/lib/rsrc.rb +34 -0
- data/plugins/ticketservices/lib/upload.rb +206 -0
- data/plugins/ticketservices/ticketservices.rb +268 -0
- data/var/db/.git_include +0 -0
- data/var/log/.git_include +0 -0
- data/var/run/.git_include +0 -0
- 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
|
+
|