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