rsence 2.0.0.pre → 2.0.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/INSTALL.rdoc +295 -0
- data/LICENSE +622 -0
- data/README.rdoc +87 -0
- data/VERSION +1 -0
- data/bin/rsence +5 -101
- data/conf/config.yaml +4 -0
- data/conf/default_conf.yaml +6 -4
- data/conf/{local_conf.yaml → local_conf.yaml.devel} +2 -1
- data/js/comm/comm/autosync/autosync.js +0 -1
- data/js/comm/comm/queue/queue.js +1 -1
- data/js/comm/comm/urlresponder/urlresponder.js +58 -35
- data/js/comm/comm/values/values.js +13 -3
- data/js/comm/jsloader/jsloader.js +29 -12
- data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
- data/js/controls/datetime/timesheet/timesheet.js +2 -2
- data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +1 -1
- data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/slider.css +2 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider.css +2 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
- data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
- data/js/controls/tab/tab.js +2 -6
- data/js/controls/tab/themes/default/tab.css +1 -0
- data/js/controls/tab/themes/default/tab.html +1 -1
- data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
- data/js/controls/textarea/themes/default/textarea.css +21 -0
- data/js/controls/textarea/themes/default/textarea.html +2 -2
- data/js/controls/textcontrol/textcontrol.js +56 -69
- data/js/controls/textcontrol/themes/default/textcontrol.css +23 -20
- data/js/controls/textcontrol/themes/default/textcontrol.html +1 -1
- data/js/controls/window/themes/default/window.css +1 -0
- data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
- data/js/controls/window/window.js +28 -7
- data/js/core/class/class.js +31 -30
- data/js/core/elem/elem.js +94 -71
- data/js/core/event/event.js +34 -26
- data/js/core/iefix/iefix.js +46 -31
- data/js/debugg/debugg.js +43 -0
- data/js/debugg/js.inc +0 -0
- data/js/foundation/application/application.js +3 -1
- data/js/foundation/control/dyncontrol/dyncontrol.js +1 -0
- data/js/foundation/control/eventresponder/eventresponder.js +1 -1
- data/js/foundation/json_renderer/json_renderer.js +1 -3
- data/js/foundation/system/system.js +4 -4
- data/js/foundation/thememanager/thememanager.js +3 -3
- data/js/foundation/view/view.js +71 -1
- data/lib/conf/argv.rb +664 -0
- data/lib/conf/default.rb +51 -52
- data/lib/daemon/daemon.rb +281 -195
- data/lib/plugins/plugin_plugins.rb +47 -0
- data/lib/plugins/pluginmanager.rb +17 -12
- data/lib/transporter/transporter.rb +6 -9
- data/plugins/client_pkg/client_pkg.rb +12 -9
- data/plugins/client_pkg/lib/client_pkg_build.rb +1 -1
- data/plugins/index_html/tmpl/index.html +3 -3
- data/plugins/main/main.rb +1 -0
- metadata +16 -14
- data/bin/build_client.rb +0 -254
- data/bin/help +0 -6
- data/bin/launch.rb +0 -120
- data/bin/rdoc.sh +0 -2
- data/bin/restart +0 -6
- data/bin/run +0 -6
- data/bin/run.rb +0 -6
- data/bin/save +0 -6
- data/bin/start +0 -6
- data/bin/status +0 -6
- data/bin/stop +0 -6
data/README.rdoc
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
|
2
|
+
= RSence 2.0.0.1.pre 2010-??-??
|
3
|
+
|
4
|
+
http://rsence.org/
|
5
|
+
|
6
|
+
== Introduction
|
7
|
+
|
8
|
+
RSence is primarily a flexible and high-performance RIA framework aimed on building responsive, scalable and over-all as high-performance GUI Applications as possible with the chosen technologies. RSence uses the server for backend tasks and the client to provide responsive user interfaces. The server is a highly optimized Ruby framework for writing applications as plugin bundles containing all resources needed per plugin. The client is a highly optimized Javascript framework with an API similar to many object-oriented desktop frameworks. RSence is not primarily targeted for creating html web sites, there are plenty of other tools for that purpose.
|
9
|
+
|
10
|
+
|
11
|
+
== Installation (pre-release):
|
12
|
+
|
13
|
+
gem install rsence --pre
|
14
|
+
|
15
|
+
== Setting up a project (TODO; needs to be done manually still)
|
16
|
+
|
17
|
+
rsence initenv /path/of/project
|
18
|
+
|
19
|
+
== Project anatomy:
|
20
|
+
|
21
|
+
The expected structure of a project environment (where 'project_directory'
|
22
|
+
is the directory of your project) is:
|
23
|
+
|
24
|
+
[dir] project_directory :: The directory of your project.
|
25
|
+
[dir] conf :: The directory of config files.
|
26
|
+
[file] config.yaml :: The config file to load by defult.
|
27
|
+
[dir] var :: Directory containing various runtime files.
|
28
|
+
[dir] run :: Directory containing PID files.
|
29
|
+
[dir] log :: Directory containing log files.
|
30
|
+
[dir] db :: Directory containing database files.
|
31
|
+
[dir] plugins :: Directory containing installed plugins.
|
32
|
+
|
33
|
+
The 'config.yaml' file contains patches specific to your project.
|
34
|
+
|
35
|
+
The configuration files are loaded and applied in this order:
|
36
|
+
1: [rsence_install_path]/conf/default_conf.yaml
|
37
|
+
2: [rsence_install_path]/conf/local_conf.yaml
|
38
|
+
3: /etc/rsence/config.yaml
|
39
|
+
4: ~/.rsence/config.yaml
|
40
|
+
5: [project_directory]/conf/config.yaml
|
41
|
+
6: Any files given using --conf parameters, in order of occurrence.
|
42
|
+
|
43
|
+
The plugins directory contains the plugins installed in the project.
|
44
|
+
|
45
|
+
== Running a project
|
46
|
+
|
47
|
+
Each command-line tool command takes a number of options, the path defaults to the current working directory.
|
48
|
+
|
49
|
+
=== Running in foregrond
|
50
|
+
rsence run /path/of/project
|
51
|
+
|
52
|
+
=== Running in background
|
53
|
+
rsence start /path/of/project
|
54
|
+
|
55
|
+
=== Stopiing from background
|
56
|
+
rsence stop /path/of/project
|
57
|
+
|
58
|
+
=== Restarting in background
|
59
|
+
rsence restart /path/of/project
|
60
|
+
|
61
|
+
=== Checking if project is running
|
62
|
+
rsence status /path/of/project
|
63
|
+
|
64
|
+
== RSence command-line tool help
|
65
|
+
|
66
|
+
=== Lists all available commands
|
67
|
+
rsence help
|
68
|
+
|
69
|
+
=== Getting detailed instructions of a command
|
70
|
+
rsence help <command>
|
71
|
+
|
72
|
+
eg:
|
73
|
+
|
74
|
+
rsence help run
|
75
|
+
|
76
|
+
|
77
|
+
For more detailed installation and usage instructions, read the INSTALL.rdoc document.
|
78
|
+
|
79
|
+
=== Licensing:
|
80
|
+
* Free: *GPL*
|
81
|
+
* Alternative licensing queries available via http://riassence.com/ and sales@riassence.com
|
82
|
+
|
83
|
+
=== Community support:
|
84
|
+
* Web: http://rsence.org/
|
85
|
+
* IRC: #rsence on the IRCNet and FreeNode networks
|
86
|
+
|
87
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0.1.pre
|
data/bin/rsence
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#--
|
3
3
|
## Riassence Framework
|
4
|
-
# Copyright
|
4
|
+
# Copyright 2010 Riassence Inc.
|
5
5
|
# http://riassence.com/
|
6
6
|
#
|
7
7
|
# You should have received a copy of the GNU General Public License along
|
@@ -9,112 +9,16 @@
|
|
9
9
|
##
|
10
10
|
#++
|
11
11
|
|
12
|
-
if RUBY_VERSION.to_f >= 1.9
|
13
|
-
Encoding.default_external = Encoding::ASCII_8BIT
|
14
|
-
end
|
15
|
-
|
16
|
-
is_win = ['i386-mingw32','x86-mingw32'].include? RUBY_PLATFORM
|
17
|
-
|
18
|
-
if is_win
|
19
|
-
commands = %w[help run]
|
20
|
-
else
|
21
|
-
commands = %w[help start stop restart status run]
|
22
|
-
end
|
23
|
-
|
24
|
-
if ARGV.include?('--help') or ARGV.include?('-h') or
|
25
|
-
ARGV.include?('help') or not (
|
26
|
-
commands.include?(ARGV[0])
|
27
|
-
)
|
28
|
-
|
29
|
-
if is_win
|
30
|
-
extra_cmd_help = ''
|
31
|
-
extra_cmd_examples = %{
|
32
|
-
#{__FILE__} run --log-fg
|
33
|
-
#{__FILE__} run -d
|
34
|
-
#{__FILE__} run --latency 150
|
35
|
-
#{__FILE__} run --server mongrel --port 8080 --addr 127.0.0.1
|
36
|
-
}
|
37
|
-
else
|
38
|
-
extra_cmd_help = %{\
|
39
|
-
status Tells if Riassence Framework Server is running or not
|
40
|
-
start Starts Riassence Framework Server
|
41
|
-
stop Stops Riassence Framework Server
|
42
|
-
restart Restarts Riassence Framework Server
|
43
|
-
save Saves Riassence Framework Server session data
|
44
|
-
}
|
45
|
-
extra_cmd_examples = %{\
|
46
|
-
#{__FILE__} status
|
47
|
-
#{__FILE__} start
|
48
|
-
#{__FILE__} stop
|
49
|
-
#{__FILE__} save
|
50
|
-
#{__FILE__} restart
|
51
|
-
#{__FILE__} restart -d --reset-sessions
|
52
|
-
#{__FILE__} restart --latency 150
|
53
|
-
#{__FILE__} restart --server mongrel --port 8080 --addr 127.0.0.1
|
54
|
-
}
|
55
|
-
end
|
56
|
-
|
57
|
-
puts %{
|
58
|
-
|
59
|
-
Riassence Framework is RIA client and server. This help message contains
|
60
|
-
hints about how to control the server startup/shutdown.
|
61
|
-
|
62
|
-
Usage:
|
63
|
-
#{__FILE__} command [params]
|
64
|
-
|
65
|
-
Command is one of:
|
66
|
-
run Run in foreground (exit with ctrl-c)
|
67
|
-
#{extra_cmd_help} help This message
|
68
|
-
|
69
|
-
Params:
|
70
|
-
--log-fg Don't write log into file (writes to foreground)
|
71
|
-
-d Debug/Development mode
|
72
|
-
--trace-js Write content of msg.reply calls to stdout
|
73
|
-
--trace-delegate Traces plugin method delegation to stdout
|
74
|
-
--root-path <PATH> Define the PATH to rsence server
|
75
|
-
Defaults to 'bin'
|
76
|
-
--port PORT Define the http PORT to use, defaults to '8001'
|
77
|
-
--latency MS Simulate network latency, value in milliseconds
|
78
|
-
--addr <ADDRESS> Define the IPv4 ADDRESS to bind to.
|
79
|
-
Defaults to '0.0.0.0' (any)
|
80
|
-
--server <SERVER> Choose http SERVER, valid choices:
|
81
|
-
- webrick
|
82
|
-
- mongrel
|
83
|
-
- ebb
|
84
|
-
- thin
|
85
|
-
Defaults to thin
|
86
|
-
--reset-sessions Deletes all old sessions on startup
|
87
|
-
--config <PATH> Optional config override file
|
88
|
-
--run-config-wizard Runs configuration wizard
|
89
|
-
Runs by default, if no local
|
90
|
-
configuration files were found.
|
91
|
-
--no-rescan Doesn't rescan the plugins even when in debug mode.
|
92
|
-
--profile Turns on profiling
|
93
|
-
- Runs everything considerable slower!
|
94
|
-
- Shown a table displaying the results on stop.
|
95
|
-
--help This message
|
96
|
-
-h This message
|
97
|
-
|
98
|
-
Examples:
|
99
|
-
#{__FILE__} run
|
100
|
-
#{extra_cmd_examples}
|
101
|
-
Further information:
|
102
|
-
http://riassence.org/
|
103
|
-
|
104
|
-
}
|
105
|
-
exit
|
106
|
-
end
|
107
|
-
|
108
12
|
require 'profile' if ARGV.include?('--profile')
|
109
13
|
|
110
14
|
## Auto-construct paths using this file as the waypoint
|
111
|
-
SERVER_PATH =
|
15
|
+
SERVER_PATH = File.split( File.expand_path(File.dirname(__FILE__)) )[0]
|
112
16
|
|
113
17
|
## Include server & lib in the search path
|
114
18
|
$LOAD_PATH << SERVER_PATH
|
115
19
|
$LOAD_PATH << File.join( SERVER_PATH, 'lib' )
|
116
20
|
|
117
|
-
|
118
|
-
|
119
|
-
RSence
|
21
|
+
require 'conf/argv'
|
22
|
+
|
23
|
+
RSence.startup if RSence.startable?
|
120
24
|
|
data/conf/config.yaml
ADDED
data/conf/default_conf.yaml
CHANGED
@@ -151,7 +151,7 @@
|
|
151
151
|
# Database configuration
|
152
152
|
:database:
|
153
153
|
# Session database storage string. Leave empty here to enable the wizard for storage.
|
154
|
-
:ses_db: 'sqlite://
|
154
|
+
:ses_db: 'sqlite://db/ses.db'
|
155
155
|
|
156
156
|
#
|
157
157
|
# ValueManager settings
|
@@ -178,10 +178,10 @@
|
|
178
178
|
:client_pkg:
|
179
179
|
|
180
180
|
# Source directories to scan
|
181
|
-
:src_dirs:
|
181
|
+
:src_dirs: []
|
182
182
|
|
183
183
|
# RSence Client Framework
|
184
|
-
|
184
|
+
#- js
|
185
185
|
|
186
186
|
# How to include your own custom js package directory:
|
187
187
|
# - /home/me/code/extra_components
|
@@ -201,6 +201,7 @@
|
|
201
201
|
- event # EVENT
|
202
202
|
- sha # SHAClass
|
203
203
|
- system # HSystem
|
204
|
+
- valueresponder # HValueResponder
|
204
205
|
- application # HApplication
|
205
206
|
- comm # COMM
|
206
207
|
- queue # COMM.Queue
|
@@ -222,7 +223,6 @@
|
|
222
223
|
- viewdefaults # HViewDefaults
|
223
224
|
- view # HView
|
224
225
|
- eventresponder # HEventResponder
|
225
|
-
- valueresponder # HValueResponder
|
226
226
|
- dummyvalue # HDummyValue
|
227
227
|
- controldefaults # HControlDefaults
|
228
228
|
- control # HControl
|
@@ -308,6 +308,8 @@
|
|
308
308
|
- .gif
|
309
309
|
- .png
|
310
310
|
- .swf
|
311
|
+
- .svg
|
312
|
+
- .pdf
|
311
313
|
|
312
314
|
# The name of the include file
|
313
315
|
:js_inc: js.inc
|
@@ -9,7 +9,6 @@
|
|
9
9
|
// Starts the synchronization upon page load.
|
10
10
|
LOAD(
|
11
11
|
function(){
|
12
|
-
COMM.URLResponder.implement(HValueResponder);
|
13
12
|
COMM.urlResponder=COMM.URLResponder.nu();
|
14
13
|
urlResponder=COMM.urlResponder; // backwards compatibility
|
15
14
|
COMM.Transporter.url=HCLIENT_HELLO;
|
data/js/comm/comm/queue/queue.js
CHANGED
@@ -20,21 +20,29 @@
|
|
20
20
|
COMM.URLResponder = HApplication.extend({
|
21
21
|
constructor: function(){
|
22
22
|
this.urlMatchers = [];
|
23
|
-
this.
|
24
|
-
this.
|
25
|
-
this.
|
26
|
-
this.
|
23
|
+
this.urlCallBacks = [];
|
24
|
+
this.defaultCallBacks = [];
|
25
|
+
this.prevCallBacks = [];
|
26
|
+
this.prevMatchStrs = [];
|
27
27
|
this.base(1, 'URLResponder');
|
28
28
|
this.value = 0;
|
29
|
-
this.clientValue = HValue.nu( false, '' );
|
30
|
-
this.clientValue.bind( this );
|
31
|
-
this.serverValue = false;
|
32
29
|
},
|
33
30
|
|
34
31
|
// sets the view to show when there is
|
35
32
|
// no matches (like a virtual 404)
|
36
33
|
setDefaultResponder: function(_callBack){
|
37
|
-
this.
|
34
|
+
this.defaultCallBacks = [ _callBack ];
|
35
|
+
this.refresh();
|
36
|
+
},
|
37
|
+
|
38
|
+
addDefaultResponder: function(_callBack){
|
39
|
+
this.defaultCallBacks.push( _callBack );
|
40
|
+
this.refresh();
|
41
|
+
},
|
42
|
+
|
43
|
+
delDefaultResponder: function(_callBack){
|
44
|
+
this.defaultCallBacks.splice(this.defaultCallbacks.indexOf(_callBack),1);
|
45
|
+
this.refresh();
|
38
46
|
},
|
39
47
|
|
40
48
|
// Removes responder
|
@@ -43,19 +51,20 @@ COMM.URLResponder = HApplication.extend({
|
|
43
51
|
// - callBack is the component registered
|
44
52
|
delResponder: function(_matchStr,_callBack){
|
45
53
|
_callBack.hide();
|
46
|
-
if(_callBack
|
47
|
-
this.
|
48
|
-
this.
|
54
|
+
if(this.prevCallBacks.indexOf(_callBack) !== -1){
|
55
|
+
this.prevCallBacks.splice(this.prevCallBacks.indexOf(_callBack),1);
|
56
|
+
this.prevMatchStrs.splice(this.prevMatchStrs.indexOf(_matchStr),1);
|
49
57
|
}
|
50
58
|
var i=0, _urlMatch, _urlCallBack;
|
51
59
|
for(;i<this.urlMatchers.length;i++){
|
52
60
|
_urlMatch = this.urlMatchers[i].test(_matchStr);
|
53
61
|
if(_urlMatch){
|
54
62
|
this.urlMatchers.splice(i,1);
|
55
|
-
this.
|
63
|
+
this.urlCallBacks.splice(i,1);
|
56
64
|
return 1;
|
57
65
|
}
|
58
66
|
}
|
67
|
+
this.refresh();
|
59
68
|
return 0;
|
60
69
|
},
|
61
70
|
|
@@ -67,38 +76,55 @@ COMM.URLResponder = HApplication.extend({
|
|
67
76
|
// activate (and the previous one to deactivate)
|
68
77
|
addResponder: function(_matchRegExp,_callBack,_activate){
|
69
78
|
this.urlMatchers.push(new RegExp(_matchRegExp));
|
70
|
-
this.
|
79
|
+
this.urlCallBacks.push(_callBack);
|
71
80
|
this.checkMatch(this.value);
|
72
81
|
if(_activate!==undefined){
|
73
|
-
location.href=_activate;
|
82
|
+
window.location.href=_activate;
|
74
83
|
}
|
84
|
+
this.refresh();
|
75
85
|
},
|
76
86
|
|
77
87
|
// Checks the matchStr agains regular expressions
|
78
88
|
checkMatch: function(_matchStr){
|
79
|
-
if(_matchStr
|
89
|
+
if(this.prevMatchStrs.indexOf( _matchStr ) !== -1 ){
|
80
90
|
return 0;
|
81
91
|
}
|
82
|
-
var i=0, _urlMatch, _urlCallBack;
|
92
|
+
var i=0, _urlMatch, _urlCallBacks=[], _urlCallBack;
|
83
93
|
for(;i<this.urlMatchers.length;i++){
|
84
94
|
_urlMatch = this.urlMatchers[i].test(_matchStr);
|
85
95
|
if(_urlMatch){
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
96
|
+
_urlCallBacks.push(this.urlCallBacks[i]);
|
97
|
+
}
|
98
|
+
}
|
99
|
+
if(_urlCallBacks.length !== 0){
|
100
|
+
for(i=0;i<_urlCallBacks.length;i++){
|
101
|
+
_urlCallBack = _urlCallBacks[i];
|
90
102
|
_urlCallBack.show();
|
91
|
-
this.
|
92
|
-
|
93
|
-
|
103
|
+
if(this.prevMatchStrs.indexOf(_matchStr)!==-1){
|
104
|
+
this.prevMatchStrs.push( _matchStr );
|
105
|
+
}
|
106
|
+
}
|
107
|
+
var _prevCallBack;
|
108
|
+
for(i=0;i<this.prevCallBacks.length;i++){
|
109
|
+
_prevCallBack = this.prevCallBacks[i];
|
110
|
+
if(_urlCallBacks.indexOf(_prevCallBack) === -1){
|
111
|
+
this.prevCallBacks[i].hide();
|
112
|
+
}
|
94
113
|
}
|
114
|
+
this.prevCallBacks = _urlCallBacks;
|
115
|
+
return 1;
|
95
116
|
}
|
96
|
-
if(this.
|
97
|
-
if(this.
|
98
|
-
this.
|
117
|
+
if(this.defaultCallBacks.length !== 0){
|
118
|
+
if(this.prevCallBacks.length !== 0){
|
119
|
+
for(i=0;i<this.prevCallBacks.length;i++){
|
120
|
+
this.prevCallBacks[i].hide();
|
121
|
+
}
|
122
|
+
}
|
123
|
+
this.prevCallBacks = [];
|
124
|
+
for(i=0;i<this.defaultCallBacks.length;i++){
|
125
|
+
this.defaultCallBacks[i].show();
|
126
|
+
this.prevCallBacks.push( this.defaultCallBacks[i] );
|
99
127
|
}
|
100
|
-
this.defaultCallBack.show();
|
101
|
-
this.prevCallBack = this.defaultCallBack;
|
102
128
|
}
|
103
129
|
return -1;
|
104
130
|
},
|
@@ -106,19 +132,16 @@ COMM.URLResponder = HApplication.extend({
|
|
106
132
|
refresh: function(){
|
107
133
|
var _value = this.value;
|
108
134
|
if(_value.length === 0){ return; }
|
109
|
-
if
|
110
|
-
|
111
|
-
}
|
112
|
-
if(location.href !== _value){
|
113
|
-
location.href = _value;
|
135
|
+
if(window.location.href !== _value){
|
136
|
+
window.location.href = _value;
|
114
137
|
}
|
115
138
|
this.checkMatch( _value );
|
116
139
|
},
|
117
140
|
|
118
141
|
onIdle: function(){
|
119
142
|
if(!this['valueObj']){return;}
|
120
|
-
var _href = location.href;
|
121
|
-
if(_href!==this.
|
143
|
+
var _href = window.location.href;
|
144
|
+
if(_href!==this.value){
|
122
145
|
this.setValue(_href);
|
123
146
|
}
|
124
147
|
}
|