rsence 2.0.0.10.pre → 2.0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +10 -0
- data/INSTALL.rdoc +52 -86
- data/{LICENSE → LICENSE.txt} +0 -0
- data/README.rdoc +52 -49
- data/VERSION +1 -1
- data/bin/rsence +4 -6
- data/conf/default_conf.yaml +314 -305
- data/conf/default_strings.yaml +70 -71
- data/docs/ExampleGuiPlugin.rdoc +193 -0
- data/{js/comm/comm/autosync/js.inc → 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/{comm/autosync → autosync}/autosync.js +1 -2
- data/js/comm/{comm → autosync}/js.inc +0 -0
- data/js/comm/{comm/comm.js → comm.js} +1 -0
- data/js/comm/{comm/queue/js.inc → js.inc} +0 -0
- data/js/comm/jsloader/jsloader.js +2 -4
- data/js/comm/{comm/session → queue}/js.inc +0 -0
- data/js/comm/{comm/queue → queue}/queue.js +1 -0
- data/js/comm/{comm/sessionwatcher → session}/js.inc +0 -0
- data/js/comm/{comm/session → session}/session.js +4 -3
- data/js/comm/{comm/transporter → sessionwatcher}/js.inc +0 -0
- data/js/comm/{comm/sessionwatcher → sessionwatcher}/sessionwatcher.js +1 -0
- data/js/comm/{comm/urlresponder → transporter}/js.inc +0 -0
- data/js/comm/{comm/transporter → transporter}/transporter.js +1 -0
- data/js/comm/{comm/values → urlresponder}/js.inc +0 -0
- data/js/comm/{comm/urlresponder → urlresponder}/urlresponder.js +1 -0
- data/js/comm/{reloadapp → values}/js.inc +0 -0
- data/js/comm/{comm/values → values}/values.js +1 -0
- data/js/controls/button/button.js +10 -1
- data/js/controls/checkbox/checkbox.js +2 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +1 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +1 -0
- data/js/controls/dialogs/sheet/sheet.js +1 -0
- data/js/controls/imageview/imageview.js +1 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +1 -0
- data/js/controls/progress/progressbar/progressbar.js +1 -0
- data/js/controls/progress/progressindicator/progressindicator.js +1 -0
- data/js/controls/radiobutton/radiobutton.js +3 -1
- data/js/controls/sliders/slider/slider.js +1 -0
- data/js/controls/sliders/vslider/vslider.js +1 -0
- data/js/controls/stepper/stepper.js +1 -0
- data/js/controls/stringview/stringview.js +2 -2
- data/js/controls/tab/tab.js +7 -5
- data/js/controls/textarea/textarea.js +1 -0
- data/js/controls/textcontrol/textcontrol.js +3 -1
- data/js/controls/uploader/uploader.js +1 -0
- data/js/controls/validatorview/validatorview.js +62 -59
- data/js/controls/window/window.js +1 -0
- data/js/core/class/class.js +2 -1
- data/js/core/elem/elem.js +27 -27
- data/js/core/event/event.js +3 -874
- data/js/{comm/sha → core/rsence_ns}/js.inc +0 -0
- data/js/core/rsence_ns/rsence_ns.js +15 -0
- data/js/{controls/datetime → datetime}/calendar/calendar.js +1 -0
- data/js/{comm/values/value → datetime/calendar}/js.inc +0 -0
- data/js/{controls/datetime → datetime}/calendar/themes/default/calendar.css +0 -0
- data/js/{controls/datetime → datetime}/calendar/themes/default/calendar.html +0 -0
- data/js/{controls/datetime → datetime}/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/{controls/datetime → datetime}/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/{controls/datetime → datetime}/datetimevalue/datetimevalue.js +1 -0
- data/js/{comm/values/valuematrix → datetime/datetimevalue}/js.inc +0 -0
- data/js/{controls/datetime/calendar → datetime/timesheet}/js.inc +0 -0
- data/js/{controls/datetime → datetime}/timesheet/themes/default/timesheet.css +0 -0
- data/js/{controls/datetime → datetime}/timesheet/themes/default/timesheet.html +0 -0
- data/js/{controls/datetime → datetime}/timesheet/timesheet.js +1 -0
- data/js/{controls/datetime/datetimevalue → datetime/timesheet_item}/js.inc +0 -0
- data/js/{controls/datetime → datetime}/timesheet_item/themes/default/timesheet_item.css +0 -0
- data/js/{controls/datetime → datetime}/timesheet_item/themes/default/timesheet_item.html +0 -0
- data/js/{controls/datetime → datetime}/timesheet_item/timesheet_item.js +1 -0
- data/js/{controls/datetime/timesheet → datetime/timesheet_item_edit}/js.inc +0 -0
- data/js/{controls/datetime → datetime}/timesheet_item_edit/timesheet_item_edit.js +1 -1
- data/js/foundation/application/application.js +1 -2
- data/js/foundation/control/control.js +1 -4
- data/js/foundation/control/controldefaults/controldefaults.js +1 -4
- data/js/foundation/control/dummyvalue/dummyvalue.js +1 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +1 -2
- data/js/foundation/control/eventresponder/eventresponder.js +11 -3
- data/js/{controls/datetime/timesheet_item → foundation/control/valuematrix}/js.inc +0 -0
- data/js/{comm/values → foundation/control}/valuematrix/valuematrix.js +2 -5
- data/js/foundation/control/valueresponder/valueresponder.js +3 -1
- data/js/foundation/eventmanager/eventmanager.js +884 -0
- data/js/{controls/datetime/timesheet_item_edit → foundation/eventmanager}/js.inc +0 -0
- data/js/foundation/geom/point/point.js +2 -2
- data/js/foundation/geom/rect/rect.js +1 -0
- data/js/foundation/json_renderer/json_renderer.js +2 -0
- data/js/foundation/system/system.js +2 -1
- data/js/foundation/thememanager/thememanager.js +29 -23
- data/js/{controls/lists/checkboxlist → foundation/value}/js.inc +0 -0
- data/js/{comm/values → foundation}/value/value.js +1 -0
- data/js/foundation/view/markupview/markupview.js +2 -1
- data/js/foundation/view/morphanimation/morphanimation.js +1 -0
- data/js/foundation/view/view.js +6 -12
- data/js/foundation/view/viewdefaults/viewdefaults.js +1 -0
- data/js/{controls/lists → lists}/checkboxlist/checkboxlist.js +1 -0
- data/js/{controls/lists/listitems → lists/checkboxlist}/js.inc +0 -0
- data/js/{controls/lists/radiobuttonlist → lists/listitems}/js.inc +0 -0
- data/js/{controls/lists → lists}/listitems/listitems.js +22 -3
- data/js/lists/radiobuttonlist/js.inc +0 -0
- data/js/{controls/lists → lists}/radiobuttonlist/radiobuttonlist.js +2 -12
- data/js/util/reloadapp/js.inc +0 -0
- data/js/{comm → util}/reloadapp/reloadapp.js +10 -8
- data/js/{comm → util}/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/{comm → util}/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/util/sha/js.inc +0 -0
- data/js/{comm → util}/sha/sha.js +27 -33
- data/js/views/centerview/centerview.js +33 -3
- data/js/views/inlineview/inlineview.js +1 -0
- data/js/views/scrollview/scrollview.js +1 -0
- data/lib/conf/argv.rb +34 -22
- data/lib/conf/default.rb +165 -173
- data/lib/daemon/daemon.rb +9 -9
- data/lib/daemon/sigcomm.rb +4 -4
- data/lib/http/broker.rb +30 -27
- data/lib/http/rackup.rb +2 -3
- data/lib/http/request.rb +1 -2
- data/lib/http/response.rb +10 -10
- data/lib/plugins/dependencies.rb +2 -1
- data/lib/plugins/gui_plugin.rb +77 -50
- data/lib/plugins/guiparser.rb +26 -22
- data/lib/plugins/plugin.rb +207 -427
- data/lib/plugins/plugin_base.rb +162 -0
- data/lib/plugins/plugin_plugins.rb +21 -15
- data/lib/plugins/plugin_sqlite_db.rb +45 -20
- data/lib/plugins/pluginmanager.rb +10 -5
- data/lib/plugins/plugins.rb +65 -31
- data/lib/plugins/servlet.rb +74 -26
- data/lib/rsence.rb +32 -0
- data/lib/session/msg.rb +131 -96
- data/lib/session/sessionmanager.rb +5 -4
- data/lib/session/sessionstorage.rb +4 -3
- data/lib/transporter/transporter.rb +30 -21
- data/lib/util/gzstring.rb +4 -2
- data/lib/util/ruby19_fixes.rb +18 -0
- data/lib/values/hvalue.rb +139 -88
- data/lib/values/valuemanager.rb +60 -46
- data/plugins/client_pkg/client_pkg.rb +6 -5
- data/plugins/client_pkg/lib/client_pkg_build.rb +5 -5
- data/plugins/client_pkg/lib/client_pkg_serve.rb +8 -0
- data/plugins/index_html/index_html.rb +3 -1
- data/plugins/index_html/tmpl/index.html +2 -3
- data/plugins/main/js/main.js +84 -0
- data/plugins/main/main.rb +54 -27
- data/plugins/ticket/lib/common.rb +4 -2
- data/plugins/ticket/lib/favicon.rb +3 -2
- data/plugins/ticket/lib/file.rb +2 -2
- data/plugins/ticket/lib/img.rb +2 -2
- data/plugins/ticket/lib/objblob.rb +2 -2
- data/plugins/ticket/lib/rsrc.rb +2 -2
- data/plugins/ticket/lib/upload.rb +9 -8
- data/plugins/ticket/ticket.rb +141 -8
- data/setup/welcome/welcome.rb +1 -0
- metadata +76 -72
- data/lib/plugins/plugin_util.rb +0 -107
- data/plugins/index_html/tmpl/startup_index.html +0 -29
- data/plugins/main/js/riassence_ns.js +0 -87
- data/setup/legacy/info.yaml +0 -18
- data/setup/legacy/legacy.rb +0 -17
- data/setup/welcome/gui/welcome.yaml +0 -68
- data/setup/welcome/text/welcome.html +0 -8
File without changes
|
@@ -16,6 +16,7 @@
|
|
16
16
|
** +y+:: The Y coordinate of the point
|
17
17
|
**
|
18
18
|
***/
|
19
|
+
var//RSence.Foundation.Geom
|
19
20
|
HPoint = HClass.extend({
|
20
21
|
|
21
22
|
/** = Description
|
@@ -195,8 +196,7 @@ HPoint = HClass.extend({
|
|
195
196
|
equals: function(_point) {
|
196
197
|
return ( this.x === _point.x && this.y === _point.y );
|
197
198
|
}
|
198
|
-
|
199
|
-
|
199
|
+
|
200
200
|
});
|
201
201
|
|
202
202
|
|
@@ -21,6 +21,7 @@
|
|
21
21
|
** This class is still in development, so expect more
|
22
22
|
** features and documentation as it matures.
|
23
23
|
***/
|
24
|
+
//var//RSence.Foundation
|
24
25
|
COMM.JSONRenderer = HClass.extend({
|
25
26
|
|
26
27
|
version: 0.6,
|
@@ -239,6 +240,7 @@ COMM.JSONRenderer = HClass.extend({
|
|
239
240
|
});
|
240
241
|
|
241
242
|
/** -- Global reference ++ **/
|
243
|
+
var//RSence.Foundation
|
242
244
|
JSONRenderer = COMM.JSONRenderer;
|
243
245
|
|
244
246
|
|
@@ -16,6 +16,7 @@
|
|
16
16
|
** so there is no real need to access +HSystem+ directly from user-level code.
|
17
17
|
**
|
18
18
|
***/
|
19
|
+
var//RSence.Foundation
|
19
20
|
HSystem = {
|
20
21
|
|
21
22
|
/** When the focus behaviour is 1, clicking on any subview brings
|
@@ -24,7 +25,7 @@ HSystem = {
|
|
24
25
|
* brings the window to front.
|
25
26
|
*
|
26
27
|
**/
|
27
|
-
|
28
|
+
windowFocusMode: 1,
|
28
29
|
|
29
30
|
/** Singleton class; has no constructor **/
|
30
31
|
// constructor: null,
|
@@ -6,47 +6,53 @@
|
|
6
6
|
* with this software package. If not, contact licensing@riassence.com
|
7
7
|
*/
|
8
8
|
|
9
|
+
/** The default path where to look for themes.
|
10
|
+
**/
|
11
|
+
var//RSence.Foundation
|
12
|
+
HDefaultThemePath = '/H/themes';
|
13
|
+
|
14
|
+
|
15
|
+
/** Name of the default theme.
|
16
|
+
**/
|
17
|
+
var//RSence.Foundation
|
18
|
+
HDefaultThemeName = 'default';
|
19
|
+
|
20
|
+
/** List of themes without component-specific theme files.
|
21
|
+
**/
|
22
|
+
var//RSence.Foundation
|
23
|
+
HNoComponentCSS = [];
|
24
|
+
|
25
|
+
/** List of themes without a common.css file to load.
|
26
|
+
**/
|
27
|
+
var//RSence.Foundation
|
28
|
+
HNoCommonCSS = [];
|
29
|
+
|
30
|
+
/** List of IE6-savvy themes.
|
31
|
+
**/
|
32
|
+
var//RSence.Foundation
|
33
|
+
HThemeHasIE6GifsInsteadOfPng = ['default'];
|
34
|
+
|
9
35
|
/*** = Description
|
10
36
|
** A single instance class.
|
11
37
|
** The theme manager knows the name of the currently loaded theme and handles
|
12
38
|
** the loading of theme specific markup snippets and style declarations.
|
13
39
|
**
|
14
40
|
** = Instance variables
|
15
|
-
** +themePath+::
|
41
|
+
** +themePath+:: Default root path of the themes path, should contain
|
42
|
+
** at least the default theme.
|
16
43
|
** +currentTheme+:: The name of the theme currently in use. Initially the
|
17
44
|
** default unnamed theme is used.
|
18
|
-
** +usesComponentDir+:: True when the components are separated in their own
|
19
|
-
** directories, usually when using the
|
20
|
-
** source/development version. False when the components
|
21
|
-
** are all in same directory. This is the case in the
|
22
|
-
** release build.
|
23
45
|
**
|
24
46
|
***/
|
25
|
-
|
26
|
-
HDefaultThemePath = '/H/themes';
|
27
|
-
HDefaultThemeName = 'default';
|
28
|
-
HNoComponentCSS = [];
|
29
|
-
HNoCommonCSS = [];
|
30
|
-
HThemeHasIE6GifsInsteadOfPng = [];
|
31
|
-
|
47
|
+
var//RSence.Foundation
|
32
48
|
HThemeManager = HClass.extend({
|
33
49
|
|
34
50
|
constructor: null,
|
35
51
|
|
36
52
|
init: function(){
|
37
|
-
|
38
|
-
// Default root path of the themes path, should contain at least the default theme.
|
39
53
|
this.themePath = HDefaultThemePath;
|
40
|
-
|
41
|
-
// Hash map of loaded template markup (html templates), by theme.
|
42
|
-
// componentName is used as the secondary key.
|
43
54
|
this._tmplCache = {};
|
44
|
-
|
45
|
-
// Hash map of loaded css templates, by theme.
|
46
|
-
// componentName is used as the secondary key.
|
47
55
|
this._cssCache = {};
|
48
|
-
|
49
|
-
// The currently selected default theme name.
|
50
56
|
this.currentTheme = HDefaultThemeName;
|
51
57
|
},
|
52
58
|
|
File without changes
|
@@ -13,6 +13,7 @@
|
|
13
13
|
** = Instance variables
|
14
14
|
** +markup+:: The markup from the component's HTML template.
|
15
15
|
***/
|
16
|
+
var//RSence.Foundation
|
16
17
|
HMarkupView = HClass.extend({
|
17
18
|
|
18
19
|
/** = Description
|
@@ -105,7 +106,7 @@ HMarkupView = HClass.extend({
|
|
105
106
|
}
|
106
107
|
return this;
|
107
108
|
}
|
108
|
-
|
109
|
+
|
109
110
|
},{
|
110
111
|
_variable_match: new RegExp(/#\{([^\}]*)\}/),
|
111
112
|
_assignment_match: new RegExp(/\$\{([^\}]*)\}/)
|
data/js/foundation/view/view.js
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
** var mySubView2 = HView.nu( rect3, mySubView1 );
|
30
30
|
**
|
31
31
|
***/
|
32
|
-
|
32
|
+
var//RSence.Foundation
|
33
33
|
HView = HClass.extend({
|
34
34
|
|
35
35
|
/** Component specific theme path.
|
@@ -109,13 +109,6 @@ HView = HClass.extend({
|
|
109
109
|
**/
|
110
110
|
flexBottomOffset: 0,
|
111
111
|
|
112
|
-
/** The componentBehaviour array tells other classes what to
|
113
|
-
* expect of the component's API and visual behaviour.
|
114
|
-
* The first index is 'view' by default for all classes
|
115
|
-
* inherited from HView.
|
116
|
-
**/
|
117
|
-
componentBehaviour: ['view'],
|
118
|
-
|
119
112
|
/** The drawn flag is false before the component is visually
|
120
113
|
* drawn, it's true after it's drawn.
|
121
114
|
**/
|
@@ -1617,13 +1610,14 @@ HView = HClass.extend({
|
|
1617
1610
|
_extraCss += 'white-space:nowrap;';
|
1618
1611
|
}
|
1619
1612
|
|
1620
|
-
var _stringElem = ELEM.make(_elemId);
|
1621
|
-
ELEM.setCSS(_stringElem, "visibility:hidden;
|
1613
|
+
var _stringElem = ELEM.make(_elemId,'span');
|
1614
|
+
ELEM.setCSS(_stringElem, "visibility:hidden;"+_extraCss);
|
1622
1615
|
ELEM.setHTML(_stringElem, _string);
|
1623
|
-
ELEM.flushLoop();
|
1616
|
+
// ELEM.flushLoop();
|
1624
1617
|
var _visibleSize=ELEM.getVisibleSize(_stringElem);
|
1618
|
+
// console.log('visibleSize',_visibleSize);
|
1625
1619
|
ELEM.del(_stringElem);
|
1626
|
-
return _visibleSize;
|
1620
|
+
return [_visibleSize[0]+_visibleSize[0]%2,_visibleSize[1]+_visibleSize[1]%2];
|
1627
1621
|
},
|
1628
1622
|
|
1629
1623
|
/** Returns the string width
|
File without changes
|
File without changes
|
@@ -9,11 +9,21 @@
|
|
9
9
|
|
10
10
|
/*** = Description
|
11
11
|
** HListItems is uses an array-packed list of hash objects as its value.
|
12
|
+
##
|
13
|
+
## == Value as Array of Hashes:
|
12
14
|
** Each item in the array should have a 'label' and a 'value' key.
|
13
15
|
** The 'label' key of each item is used as the label for the HRadiobutton in the list.
|
14
16
|
** The 'value' key of each item is the value used for the output.
|
17
|
+
##
|
18
|
+
## == Value as Array of strings or numerals
|
19
|
+
## Each Item like with hash, except the item is both label and value. Each item should
|
20
|
+
## be unique.
|
21
|
+
##
|
22
|
+
## == Important
|
15
23
|
** The parent object of a HListItem needs to be a compatible hash, like HRadiobuttonList.
|
24
|
+
##
|
16
25
|
***/
|
26
|
+
var//RSence.Lists
|
17
27
|
HListItems = HValueResponder.extend({
|
18
28
|
|
19
29
|
constructor: function( _rect, _parent, _options ){
|
@@ -40,12 +50,15 @@ HListItems = HValueResponder.extend({
|
|
40
50
|
refresh: function(){
|
41
51
|
if ( this.value instanceof Array ) {
|
42
52
|
var _listItems = [],
|
43
|
-
_row,
|
53
|
+
_row, _rowType,
|
44
54
|
_label, _value,
|
45
55
|
i = 0;
|
46
56
|
for ( ; i < this.value.length ; i++ ){
|
47
57
|
_row = this.value[i];
|
48
|
-
|
58
|
+
_rowType = COMM.Values.type( _row );
|
59
|
+
// console.log('row:',_row,' rowType:',_rowType);
|
60
|
+
// hashes
|
61
|
+
if ( _rowType === 'h' ) {
|
49
62
|
_label = _row['label'];
|
50
63
|
_value = _row['value'];
|
51
64
|
if ( _label === undefined || _value === undefined ){
|
@@ -53,8 +66,14 @@ HListItems = HValueResponder.extend({
|
|
53
66
|
}
|
54
67
|
_listItems.push( [_value, _label] );
|
55
68
|
}
|
69
|
+
// strings and integers
|
70
|
+
else if ( ['s','n'].indexOf(_rowType) !== -1 ){
|
71
|
+
_label = _row.toString();
|
72
|
+
_value = _row;
|
73
|
+
_listItems.push( [_value, _label] );
|
74
|
+
}
|
56
75
|
else {
|
57
|
-
this._warningMessage( "The row "+_row+" is
|
76
|
+
this._warningMessage( "The row "+_row+" is has unsupported row type: '"+_rowType+"' (ignored)" );
|
58
77
|
}
|
59
78
|
}
|
60
79
|
this.parent.setListItems( _listItems );
|
File without changes
|
@@ -10,6 +10,7 @@
|
|
10
10
|
** HRadiobuttonList expects the setListItems to be set. See HListItems.
|
11
11
|
** The value of the instance is the selected key in the listItems.
|
12
12
|
***/
|
13
|
+
var//RSence.Lists
|
13
14
|
HRadioButtonList = HControl.extend({
|
14
15
|
drawSubviews: function(){
|
15
16
|
this.setStyle('border','1px solid #999');
|
@@ -110,17 +111,6 @@ HRadioButtonList = HControl.extend({
|
|
110
111
|
}
|
111
112
|
});
|
112
113
|
|
114
|
+
var//RSence.Lists
|
113
115
|
HRadiobuttonList = HRadioButtonList;
|
114
116
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
File without changes
|
@@ -18,6 +18,7 @@
|
|
18
18
|
** ReloadApp.nu( 'Session Timeout', 'Your session has timed out', '/' );
|
19
19
|
**
|
20
20
|
**/
|
21
|
+
var//RSence
|
21
22
|
ReloadApp = HApplication.extend({
|
22
23
|
|
23
24
|
/** Reloads the page using the +_url+ given in the +constructor+.
|
@@ -43,7 +44,7 @@ ReloadApp = HApplication.extend({
|
|
43
44
|
**/
|
44
45
|
reset_session: function(){
|
45
46
|
COMM.request(
|
46
|
-
|
47
|
+
COMM.Transporter.HelloUrl + '/goodbye', {
|
47
48
|
method: 'POST',
|
48
49
|
body: ('ses_key='+COMM.Session.ses_key),
|
49
50
|
async: true,
|
@@ -81,12 +82,12 @@ ReloadApp = HApplication.extend({
|
|
81
82
|
_halfWidth = parseInt(_winWidth/2,10),
|
82
83
|
_halfHeight = parseInt(_winHeight/2,10),
|
83
84
|
_alertWidth = 400,
|
84
|
-
_alertHeight =
|
85
|
+
_alertHeight = 270,
|
85
86
|
_alertX = _halfWidth - 200,
|
86
87
|
_alertY = _halfHeight - 150;
|
87
88
|
if(_alertX<10){_alertX = 10;}
|
88
89
|
if(_alertY<10){_alertY = 10;}
|
89
|
-
|
90
|
+
HSheet.extend({
|
90
91
|
drawSubviews: function(){
|
91
92
|
var _this = this,
|
92
93
|
_elemId = _this.markupElemIds['subview'],
|
@@ -129,11 +130,12 @@ ReloadApp = HApplication.extend({
|
|
129
130
|
HRect.nu( _alertX, _alertY, _alertX+_alertWidth, _alertY+_alertHeight ),
|
130
131
|
_this, {
|
131
132
|
label: _title,
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
133
|
+
value: 0
|
134
|
+
// minSize: [_alertWidth,_alertHeight],
|
135
|
+
// maxSize: [_alertWidth,_alertHeight],
|
136
|
+
// enabled: true,
|
137
|
+
// closeButton: true,
|
138
|
+
// noResize: true
|
137
139
|
}
|
138
140
|
);
|
139
141
|
|
File without changes
|
File without changes
|
data/js/util/sha/js.inc
ADDED
File without changes
|
data/js/{comm → util}/sha/sha.js
RENAMED
@@ -19,10 +19,11 @@
|
|
19
19
|
** See http://pajhome.org.uk/crypt/md5 for details.
|
20
20
|
**
|
21
21
|
***/
|
22
|
-
|
22
|
+
var//RSence.Util
|
23
|
+
SHA = HClass.extend({
|
23
24
|
|
24
25
|
/** = Description
|
25
|
-
* Constructs an instance of
|
26
|
+
* Constructs an instance of SHA
|
26
27
|
*
|
27
28
|
* = Parameters
|
28
29
|
* +_chrsz+:: The input character size, in bits. Optional.
|
@@ -233,17 +234,16 @@ SHAClass = HClass.extend({
|
|
233
234
|
test: function(){
|
234
235
|
return this.hexSHA1("abc") === "a9993e364706816aba3e25717850c26c9cd0d89d";
|
235
236
|
},
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
*/
|
237
|
+
|
238
|
+
/** Calculate the SHA-1 of an array of big-endian words, and a bit length
|
239
|
+
**/
|
240
240
|
_coreSHA1: function(_x, _len){
|
241
|
-
|
242
|
-
/* append padding */
|
241
|
+
|
243
242
|
_x[_len >> 5] |= 0x80 << (24 - _len % 32);
|
244
243
|
_x[((_len + 64 >> 9) << 4) + 15] = _len;
|
245
|
-
|
246
|
-
var
|
244
|
+
|
245
|
+
var _this=this,
|
246
|
+
_w = new Array(80),
|
247
247
|
_a = 1732584193,
|
248
248
|
_b = -271733879,
|
249
249
|
_c = -1732584194,
|
@@ -251,14 +251,14 @@ SHAClass = HClass.extend({
|
|
251
251
|
_e = -1009589776,
|
252
252
|
i, _olda, _oldb, _oldc, _oldd, _olde,
|
253
253
|
j, _t;
|
254
|
-
|
254
|
+
|
255
255
|
for(i = 0; i < _x.length; i += 16){
|
256
256
|
_olda = _a;
|
257
257
|
_oldb = _b;
|
258
258
|
_oldc = _c;
|
259
259
|
_oldd = _d;
|
260
260
|
_olde = _e;
|
261
|
-
|
261
|
+
|
262
262
|
for(j = 0; j < 80; j++){
|
263
263
|
if(j < 16){
|
264
264
|
_w[j] = _x[i + j];
|
@@ -274,21 +274,19 @@ SHAClass = HClass.extend({
|
|
274
274
|
_b = _a;
|
275
275
|
_a = _t;
|
276
276
|
}
|
277
|
-
|
277
|
+
|
278
278
|
_a = _this._safeAdd(_a, _olda);
|
279
279
|
_b = _this._safeAdd(_b, _oldb);
|
280
280
|
_c = _this._safeAdd(_c, _oldc);
|
281
281
|
_d = _this._safeAdd(_d, _oldd);
|
282
282
|
_e = _this._safeAdd(_e, _olde);
|
283
283
|
}
|
284
|
-
return [_a, _b, _c, _d, _e];
|
285
|
-
|
284
|
+
return [ _a, _b, _c, _d, _e ];
|
286
285
|
},
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
*/
|
286
|
+
|
287
|
+
/** Perform the appropriate triplet combination function for the current
|
288
|
+
* iteration
|
289
|
+
**/
|
292
290
|
_sha1FT: function(_t, _b, _c, _d) {
|
293
291
|
if(_t < 20){
|
294
292
|
return (_b & _c) | ((~_b) & _d);
|
@@ -301,15 +299,14 @@ SHAClass = HClass.extend({
|
|
301
299
|
}
|
302
300
|
return _b ^ _c ^ _d;
|
303
301
|
},
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
*/
|
302
|
+
|
303
|
+
/** Determine the appropriate additive constant for the current iteration
|
304
|
+
**/
|
308
305
|
_sha1KT: function(_t){
|
309
306
|
return (_t < 20) ? 1518500249 : (_t < 40) ? 1859775393 :
|
310
307
|
(_t < 60) ? -1894007588 : -899497514;
|
311
308
|
},
|
312
|
-
|
309
|
+
|
313
310
|
/*
|
314
311
|
* Calculate the HMAC-SHA1 of a key and some data
|
315
312
|
*/
|
@@ -330,7 +327,7 @@ SHAClass = HClass.extend({
|
|
330
327
|
_hash = _this._coreSHA1(_ipad.concat(_this._str2binb(_data)), 512 + _data.length * _this._chrsz);
|
331
328
|
return _this._coreSHA1(_opad.concat(_hash), 512 + 160);
|
332
329
|
},
|
333
|
-
|
330
|
+
|
334
331
|
/*
|
335
332
|
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
336
333
|
* to work around bugs in some JS interpreters.
|
@@ -340,7 +337,7 @@ SHAClass = HClass.extend({
|
|
340
337
|
_msw = (_x >> 16) + (_y >> 16) + (_lsw >> 16);
|
341
338
|
return (_msw << 16) | (_lsw & 0xFFFF);
|
342
339
|
},
|
343
|
-
|
340
|
+
|
344
341
|
/*
|
345
342
|
* Bitwise rotate a 32-bit number to the left.
|
346
343
|
*/
|
@@ -363,7 +360,7 @@ SHAClass = HClass.extend({
|
|
363
360
|
}
|
364
361
|
return _bin;
|
365
362
|
},
|
366
|
-
|
363
|
+
|
367
364
|
/*
|
368
365
|
* Convert an array of big-endian words to a string
|
369
366
|
*/
|
@@ -379,7 +376,7 @@ SHAClass = HClass.extend({
|
|
379
376
|
}
|
380
377
|
return _str;
|
381
378
|
},
|
382
|
-
|
379
|
+
|
383
380
|
/*
|
384
381
|
* Convert an array of big-endian words to a hex string.
|
385
382
|
*/
|
@@ -395,7 +392,7 @@ SHAClass = HClass.extend({
|
|
395
392
|
}
|
396
393
|
return _str;
|
397
394
|
},
|
398
|
-
|
395
|
+
|
399
396
|
/*
|
400
397
|
* Convert an array of big-endian words to a base-64 string
|
401
398
|
*/
|
@@ -427,6 +424,3 @@ SHAClass = HClass.extend({
|
|
427
424
|
}
|
428
425
|
});
|
429
426
|
|
430
|
-
// Assigns SHA as a SHAClass instance that uses unicode input.
|
431
|
-
SHA = SHAClass.nu(16);
|
432
|
-
|