rsence-pre 2.2.0.11 → 2.2.0.12

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.
Files changed (31) hide show
  1. data/VERSION +1 -1
  2. data/js/controls/window/themes/default/window.css +9 -0
  3. data/js/datetime/calendar/calendar.js +109 -11
  4. data/js/datetime/calendar/themes/default/calendar.css +89 -7
  5. data/js/datetime/calendar/themes/default/calendar.html +11 -0
  6. data/js/datetime/calendar/themes/default/calendar_bg-ie6.gif +0 -0
  7. data/js/datetime/calendar/themes/default/calendar_bg.png +0 -0
  8. data/js/datetime/calendar/themes/default/calendar_parts1-ie6.gif +0 -0
  9. data/js/datetime/calendar/themes/default/calendar_parts1.png +0 -0
  10. data/js/datetime/calendar/themes/default/calendar_parts2-ie6.gif +0 -0
  11. data/js/datetime/calendar/themes/default/calendar_parts2.png +0 -0
  12. data/js/datetime/datetimevalue/datetimevalue.js +22 -5
  13. data/js/foundation/eventmanager/eventmanager.js +8 -6
  14. data/js/foundation/locale_settings/locale_settings.js +7 -0
  15. data/js/lists/radiobuttonlist/radiobuttonlist.js +4 -2
  16. data/js/menus/minimenu/minimenu.js +7 -2
  17. data/lib/conf/argv.rb +1 -130
  18. data/lib/conf/default.rb +5 -5
  19. data/lib/plugins/gui_plugin.rb +2 -0
  20. data/lib/plugins/plugin_plugins.rb +1 -1
  21. data/lib/rsence.rb +134 -3
  22. data/plugins/client_pkg/client_pkg.rb +7 -3
  23. data/plugins/client_pkg/lib/client_pkg_build.rb +2 -1
  24. metadata +11 -12
  25. data/js/datetime/timesheet/old_timesheet.js +0 -292
  26. data/js/datetime/timesheet/themes/default/old_timesheet.css +0 -30
  27. data/js/datetime/timesheet/themes/default/old_timesheet.html +0 -2
  28. data/js/datetime/timesheet_item/old_timesheet_item.js +0 -308
  29. data/js/datetime/timesheet_item/themes/default/old_timesheet_item.css +0 -42
  30. data/js/datetime/timesheet_item/themes/default/old_timesheet_item.html +0 -8
  31. data/js/datetime/timesheet_item_edit/old_timesheet_item_edit.js +0 -274
data/lib/rsence.rb CHANGED
@@ -25,8 +25,139 @@
25
25
  #
26
26
  # Most other classes are inner workings of RSence itself and are subject to change without further notice.
27
27
  module RSence
28
- end
28
+
29
+ # @private Returns true, if platform fully supports POSIX standard signals.
30
+ def self.pid_support?
31
+ # true for non-windows
32
+ return (not ['i386-mingw32','x86-mingw32'].include?(RUBY_PLATFORM))
33
+ end
34
+
35
+ # @private Returns true, if platform is linux
36
+ def self.linux?
37
+ return RUBY_PLATFORM.end_with?('-linux')
38
+ end
39
+
40
+ # @private Returns true, if platform is Mac OS X
41
+ def self.darwin?
42
+ return RUBY_PLATFORM.include?('-darwin')
43
+ end
44
+
45
+ # @private Returns signal name that resembles INFO or PWR (extra signal to poll for server status)
46
+ def self.info_signal_name
47
+ if self.linux?
48
+ return 'PWR'
49
+ else
50
+ return 'INFO'
51
+ end
52
+ end
53
+
54
+ # @private This accessor enables RSence.argv method, which returns the ARGVParser instance
55
+ def self.argv; @@argv_parser; end
56
+
57
+ # @private This accessor enables RSence.cmd method, which returns the command the process was started with.
58
+ def self.cmd; @@argv_parser.cmd; end
59
+
60
+ # Command line options parsed
61
+ # @return [Hash] Parsed command-line options:
62
+ # *Key* (Symbol):: *Value*
63
+ # +:env_path+:: (String) The directory of the environment.
64
+ # +:conf_files+:: (Array of Strings) Additional configuration files given with the +--conf+ command-line option. Default is +[]+.
65
+ # +:debug+:: (true or false) True, if the +-d+ or +--debug+ command-line option was given. Default is false.
66
+ # +:verbose+:: (true or false) True, if the +-v+ or +--verbose+ command-line option was given. Default is false.
67
+ # +:log_fg+:: (true or false) True, if the +-f+ or +--log-fg+ command-line option was given. Default is false.
68
+ # +:trace_js+:: (true or false) True, if the +--trace-js+ command-line option was given. Default is false.
69
+ # +:trace_delegate+:: (true or false) True, if the +--trace-delegate+ command-line option was given. Default is false.
70
+ # +:port+:: (String or nil) The TCP port number given with the +--port+ command-line option. Default is nil.
71
+ # +:addr+:: (String or nil) The TCP bind address given with the +--addr+ command-line option. Default is nil.
72
+ # +:server+:: (String or nil) The Rack http server handler given with the +--server+ command-line option. Default is nil.
73
+ # +:reset_ses+:: (true or false) True, if the +-r+ or +--reset-sessions+ command-line option was given. Default is false.
74
+ # +:autoupdate+:: (true or false) True, if the +-a+ or +--auto-update+ command-line option was given. Default is false.
75
+ # +:latency+:: (Number) Amount of milliseconds to sleep in each request given with the +--latency+ command-line option. Default is 0.
76
+ # +:say+:: (true or false) True, if the +-S+ or +--say+ command-line option was given. Default is false.
77
+ def self.args; @@argv_parser.args; end
78
+
79
+ # @private This accessor enables RSence.startable? method, which returns true if a start-type command was given.
80
+ def self.startable?; @@argv_parser.startable?; end
81
+
82
+ # @return [String] The version of RSence
83
+ def self.version; @@argv_parser.version; end
84
+
85
+ # @private This accessor enables RSence.startup method, which starts RSence.
86
+ def self.startup
87
+ puts "Loading configuration..." if self.args[:verbose]
88
+ # Use the default configuration:
89
+ require 'conf/default'
90
+ @@config = Configuration.new(self.args).config
91
+
92
+ # RSence runtime configuration data
93
+ # @return [Hash] the active configuration structure as defined by the {file:default_conf default configuration} and overridden by local configuration files.
94
+ def self.config
95
+ @@config
96
+ end
97
+
98
+ def self.transporter
99
+ @@transporter
100
+ end
101
+ def self.transporter=(transporter)
102
+ if class_variable_defined?(:'@@transporter')
103
+ warn "WARN: Transporter already set."
104
+ return
105
+ else
106
+ @@transporter = transporter
107
+ end
108
+ end
109
+
110
+ def self.plugin_manager
111
+ @@plugin_manager
112
+ end
113
+ def self.plugin_manager=(plugin_manager)
114
+ if class_variable_defined?(:'@@plugin_manager')
115
+ warn "WARN: @@plugin_manager already set."
116
+ return
117
+ else
118
+ @@plugin_manager = plugin_manager
119
+ end
120
+ end
121
+
122
+ def self.value_manager
123
+ @@value_manager
124
+ end
125
+ def self.value_manager=(value_manager)
126
+ if class_variable_defined?(:'@@value_manager')
127
+ warn "WARN: @@value_manager already set."
128
+ return
129
+ else
130
+ @@value_manager = value_manager
131
+ end
132
+ end
133
+
134
+ def self.session_manager
135
+ @@session_manager
136
+ end
137
+ def self.session_manager=(session_manager)
138
+ if class_variable_defined?(:'@@session_manager')
139
+ warn "WARN: @@session_manager already set."
140
+ return
141
+ else
142
+ @@session_manager = session_manager
143
+ end
144
+ end
145
+
146
+ ## Riassence Daemon controls
147
+ require 'daemon/daemon'
148
+ puts "Starting RSence..." if self.args[:verbose]
149
+ daemon = HTTPDaemon.new
150
+ daemon.daemonize!
151
+ end
152
+
153
+
154
+ # Includes the Signal Communication utility.
155
+ # Used to respond via special PID files in the run directory of the environment
156
+ require 'daemon/sigcomm'
29
157
 
30
- # Requires the ARGVParser that functions as the command-line user interface.
31
- require 'conf/argv'
158
+
159
+ # Requires the ARGVParser that functions as the command-line user interface.
160
+ require 'conf/argv'
161
+
162
+ end
32
163
 
@@ -55,9 +55,9 @@ class ClientPkgPlugin < Servlet
55
55
  end
56
56
 
57
57
  def rebuild_client
58
- until not @build_busy
59
- puts "build busy, sleeping.."
60
- sleep 0.5
58
+ while @build_busy
59
+ puts "-- build busy, sleeping.. --"
60
+ sleep 0.1
61
61
  end
62
62
  @build_busy = true
63
63
  @last_change = Time.now.to_i
@@ -68,6 +68,10 @@ class ClientPkgPlugin < Servlet
68
68
  @build_busy = false
69
69
  end
70
70
 
71
+ def ready?
72
+ return (not @build_busy)
73
+ end
74
+
71
75
  def open
72
76
  if not @thr and RSence.args[:autoupdate]
73
77
  @thr = Thread.new do
@@ -307,7 +307,8 @@ class ClientPkgBuild
307
307
  end
308
308
  @bundles_found = {} # populated by add_bundle
309
309
  @conversion_stats = {} # populated by add_hints
310
- @src_dirs.each do | src_dir |
310
+ src_dirs = @src_dirs.clone
311
+ src_dirs.each do | src_dir |
311
312
  find_bundles( src_dir )
312
313
  end
313
314
  @destination_files = {} # rename to package_products
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsence-pre
3
3
  version: !ruby/object:Gem::Version
4
- hash: 105
4
+ hash: 103
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 2
9
9
  - 0
10
- - 11
11
- version: 2.2.0.11
10
+ - 12
11
+ version: 2.2.0.12
12
12
  platform: ruby
13
13
  authors:
14
14
  - Riassence Inc.
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-06-12 00:00:00 Z
19
+ date: 2011-07-13 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rsence-deps
@@ -242,22 +242,21 @@ files:
242
242
  - js/datetime/calendar/themes/default/calendar.html
243
243
  - js/datetime/calendar/themes/default/calendar_arrows-ie6.gif
244
244
  - js/datetime/calendar/themes/default/calendar_arrows.png
245
+ - js/datetime/calendar/themes/default/calendar_bg-ie6.gif
246
+ - js/datetime/calendar/themes/default/calendar_bg.png
247
+ - js/datetime/calendar/themes/default/calendar_parts1-ie6.gif
248
+ - js/datetime/calendar/themes/default/calendar_parts1.png
249
+ - js/datetime/calendar/themes/default/calendar_parts2-ie6.gif
250
+ - js/datetime/calendar/themes/default/calendar_parts2.png
245
251
  - js/datetime/datetimepicker/datetimepicker.js
246
252
  - js/datetime/datetimevalue/datetimevalue.js
247
- - js/datetime/timesheet/old_timesheet.js
248
- - js/datetime/timesheet/themes/default/old_timesheet.css
249
- - js/datetime/timesheet/themes/default/old_timesheet.html
250
253
  - js/datetime/timesheet/themes/default/timesheet.css
251
254
  - js/datetime/timesheet/themes/default/timesheet.html
252
255
  - js/datetime/timesheet/timesheet.js
253
- - js/datetime/timesheet_item/old_timesheet_item.js
254
- - js/datetime/timesheet_item/themes/default/old_timesheet_item.css
255
- - js/datetime/timesheet_item/themes/default/old_timesheet_item.html
256
256
  - js/datetime/timesheet_item/themes/default/timesheet_item.css
257
257
  - js/datetime/timesheet_item/themes/default/timesheet_item.html
258
258
  - js/datetime/timesheet_item/themes/default/timesheet_item_icons.png
259
259
  - js/datetime/timesheet_item/timesheet_item.js
260
- - js/datetime/timesheet_item_edit/old_timesheet_item_edit.js
261
260
  - js/datetime/timesheet_item_edit/timesheet_item_edit.js
262
261
  - js/foundation/application/application.js
263
262
  - js/foundation/control/control.js
@@ -354,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
353
  requirements: []
355
354
 
356
355
  rubyforge_project: rsence-
357
- rubygems_version: 1.8.3
356
+ rubygems_version: 1.8.5
358
357
  signing_key:
359
358
  specification_version: 3
360
359
  summary: Pre-Release 2.2 version of the RSence framework.
@@ -1,292 +0,0 @@
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
- ** HTimesheet is a simple timesheet control.
11
- ***/
12
- var//RSence.DateTime
13
- HTimeSheet = HControl.extend({
14
-
15
- componentName: 'timesheet',
16
-
17
- /* Default amount of pixels per hour. Override with options when necessary. */
18
- pxPerHour: 24,
19
-
20
- /* Default amount of pixels from left. Override with options when necessary. */
21
- itemOffsetLeft: 36,
22
-
23
- /* Default amount of pixels from right. Override with options when necessary. */
24
- itemOffsetRight: 0,
25
-
26
- defaultEvents: {
27
- draggable: true
28
- },
29
-
30
- controlDefaults: HControlDefaults.extend({
31
- pxPerHour: null,
32
- itemOffsetLeft: null,
33
- itemOffsetRight: null,
34
- itemMinHeight: 24,
35
- newItemLabel: 'New Item',
36
- constructor: function(_ctrl){
37
- if(this.pxPerHour !== null){
38
- _ctrl.pxPerHour = this.pxPerHour;
39
- }
40
- if(this.itemOffsetLeft !== null){
41
- _ctrl.itemOffsetLeft = this.itemOffsetLeft;
42
- }
43
- if(this.itemOffsetRight !== null){
44
- _ctrl.itemOffsetRight = this.itemOffsetRight;
45
- }
46
- }
47
- }),
48
-
49
- /** = Description
50
- * Redraws the timesheet.
51
- *
52
- **/
53
- refresh: function(){
54
- if(this.drawn){
55
- var _areaHeight = this.rect.height;
56
- this.pxPerHour = (_areaHeight-(_areaHeight%48)) / 24;
57
- if(this.options['hideLabel']){
58
- this.setStyleOfPart( 'label', 'display', 'none' );
59
- this.setStyleOfPart( 'state', 'left', '0px' );
60
- this.itemOffsetLeft = 0;
61
- }
62
- else{
63
- this.setStyleOfPart( 'label', 'height', (this.pxPerHour*24)+'px' );
64
- }
65
- this.setStyleOfPart( 'state', 'height', (this.pxPerHour*24)+'px' );
66
- }
67
- this.base();
68
- },
69
-
70
- /** = Description
71
- * Refreshes the hour labels.
72
- *
73
- **/
74
- refreshLabel: function(){
75
- var hour = 1,
76
- hours = [],
77
- rowHeight = this.pxPerHour;
78
- lineHeight = Math.round(this.pxPerHour/2);
79
- for(; hour < 24; hour++){
80
- hours.push('<div style="line-height:'+rowHeight+'px;height:'+rowHeight+'px;top:'+Math.round((hour*rowHeight)-lineHeight)+'px" class="timesheet_hours_row">'+hour+':00</div>');
81
- }
82
- this.markupElemIds && this.markupElemIds.label && ELEM.setHTML(this.markupElemIds.label,hours.join(''));
83
- this.refreshState();
84
- },
85
-
86
- /** = Description
87
- * Refreshes the lines which mark hours and half-hours.
88
- *
89
- **/
90
- refreshState: function(){
91
- var line = 0,
92
- lines = [],
93
- lineHeight = Math.round(this.pxPerHour/2);
94
- for(; line < 48; line++){
95
- lines.push('<div style="top:'+(line*lineHeight)+'px" class="timesheet_lines_row'+(line%2)+'"></div>');
96
- }
97
- this.markupElemIds && this.markupElemIds.label && ELEM.setHTML(this.markupElemIds.state,lines.join(''));
98
- },
99
- dragItem: false,
100
-
101
- /** = Description
102
- * Creates an item into timesheet with default label 'New Item'.
103
- *
104
- * = Parameters
105
- * +origY+:: Y coordinate of the new item.
106
- *
107
- **/
108
- createItem: function(origY){
109
- var _lineHeight = Math.round(this.pxPerHour/2);
110
- origY = Math.floor( origY / _lineHeight )*_lineHeight;
111
- var maxY = _lineHeight*48,
112
- lineHeight = Math.round(this.pxPerHour/2);
113
- if(origY>maxY){
114
- origY = maxY;
115
- }
116
- this.dragItem = this.createTimeSheetItem( { label: this.options.newItemLabel }, origY, lineHeight, 'create' );
117
- },
118
-
119
- /** = Description
120
- * Dragging is used to mark items on the timesheet.
121
- *
122
- * = Parameters
123
- * +x+:: x coordinate of the origin of drag
124
- * +y+:: y coordinate of the origin of drag
125
- *
126
- **/
127
- startDrag: function(x,y){
128
- this._startDragTime = new Date().getTime();
129
- this._startDragCoords = [x,y];
130
- return true;
131
- },
132
-
133
- drag: function(x,y){
134
- if(((new Date().getTime()) - this._startDragTime) < 200){
135
- // only create when 200 ms has elapsed to enable clicking
136
- return true;
137
- }
138
- if(this._startDragCoords[0]!==x && this._startDragCoords[1]!==y){
139
- this.createItem(this._startDragCoords[1]-this.pageY());
140
- EVENT.startDragging( this.dragItem );
141
- return true;
142
- }
143
- },
144
-
145
- click: function(x,y){
146
- // deactivate all items
147
- EVENT.changeActiveControl(this);
148
- return true;
149
- },
150
-
151
- listItemViews: false,
152
-
153
- /** = Description
154
- * Sets the editor given as parameter as the editor of instance.
155
- *
156
- * = Parameters
157
- * +_editor+::
158
- *
159
- **/
160
- setEditor: function( _editor ){
161
- this.editor = _editor;
162
- },
163
-
164
- /** = Description
165
- * Returns HRect the size of given parameters and suitable for timesheet.
166
- *
167
- * = Parameters
168
- * +_origY+:: Y coordinate.
169
- * +_lineHeight+:: The height of item on time sheet.
170
- *
171
- **/
172
- createItemRect: function(_origY, _lineHeight){
173
- var _left = this.itemOffsetLeft+1,
174
- _top = _origY+1,
175
- _right = this.rect.width - this.itemOffsetRight - 1,
176
- _bottom = _origY + _lineHeight - 2;
177
- if( (_top - _bottom) < this.options.itemMinHeight ){
178
- _bottom = _top + this.options.itemMinHeight;
179
- }
180
- return HRect.nu( _left, _top, _right, _bottom );
181
- },
182
-
183
- /** = Description
184
- * Destructor; destroys the editor first and commences inherited die.
185
- *
186
- **/
187
- die: function(){
188
- this.editor.die();
189
- this.base();
190
- },
191
-
192
- /** = Description
193
- * Returns a new time sheet item control. By default returns an instance
194
- * of HTimeSheetItem. Extend to use custom time sheet controls customized
195
- * for application specific purposes.
196
- *
197
- * = Parameters
198
- * *_value*:: A value object for the item.
199
- * *_top*:: Top position, 0 by default.
200
- * *_height*:: Height, same as half of +#pxPerHour+ by default.
201
- * *_drogMode*:: Dragging mode. 'normal' or 'create'. Is 'normal' by default.
202
- *
203
- **/
204
- createTimeSheetItem: function( _value, _top, _height, _dragMode ) {
205
- if(_dragMode===undefined){
206
- _dragMode = 'normal';
207
- }
208
- if(_top===undefined){
209
- _top = 0;
210
- }
211
- if(_height===undefined){
212
- _height = Math.round(this.pxPerHour/2);
213
- }
214
- var
215
- _label = _value['label'],
216
- _item = HTimeSheetItem.nu(
217
- this.createItemRect( _top, _height ),
218
- this, {
219
- label: _label,
220
- value: _value,
221
- events: {
222
- draggable: true
223
- }
224
- }
225
- );
226
- _item.dragMode = _dragMode;
227
- return _item;
228
- },
229
-
230
- /** = Description
231
- * Redraws and refreshes the values on timesheet.
232
- *
233
- **/
234
- refreshValue: function(){
235
- var
236
- _data = this.value,
237
- i;
238
- if(this.listItemViews === false){
239
- this.listItemViews = [];
240
- }
241
- else if(this.listItemViews.length > 0){
242
- for( i=0; i<this.listItemViews.length; i++){
243
- this.listItemViews[i].die();
244
- }
245
- this.listItemViews = [];
246
- }
247
- if(_data instanceof Array && _data.length > 0){
248
- var
249
- _value,
250
- _item;
251
- for( i=0; i<_data.length; i++){
252
- _value = _data[i];
253
- _item = this.createTimeSheetItem( _value );
254
- this.listItemViews.push( _item );
255
- }
256
- }
257
- var
258
- _overlaps = [],
259
- j;
260
- for(i=0;i<this.listItemViews.length;i++){
261
- for(j=0;j<this.listItemViews.length;j++){
262
- if((i !== j) && (_overlaps.indexOf(i)===-1) && (_overlaps.indexOf(j)===-1)){
263
- if(this.listItemViews[i].rect.intersects(this.listItemViews[j].rect)){
264
- _overlaps.push(i);
265
- }
266
- }
267
- }
268
- }
269
- var
270
- _overlapCount = _overlaps.length+1,
271
- _overlapLefts = {},
272
- _itemWidth = ( this.rect.width - this.itemOffsetRight - this.itemOffsetLeft ),
273
- _width = Math.floor( _itemWidth / _overlapCount),
274
- _left = this.itemOffsetLeft;
275
- for(j=0;j<_overlapCount;j++){
276
- _overlapLefts[_overlaps[j]] = _left + (j*_width) + _width;
277
- }
278
- for(i=0;i<this.listItemViews.length;i++){
279
- if(_overlaps.indexOf(i)===-1){
280
- this.listItemViews[i].rect.setLeft(_left);
281
- }
282
- else {
283
- this.listItemViews[i].rect.setLeft(_overlapLefts[i]);
284
- }
285
- this.listItemViews[i].rect.setWidth(_width);
286
- }
287
- for(i=0;i<this.listItemViews.length;i++){
288
- this.listItemViews[i].drawRect();
289
- }
290
- }
291
- });
292
-
@@ -1,30 +0,0 @@
1
- .timesheet_hours_col {
2
- position: absolute;
3
- top: 0px; left: 0px; width: 32px;
4
- font-family: Arial, sans-serif;
5
- font-size: 11px;
6
- color: #666;
7
- vertical-align: middle;
8
- text-align: right;
9
- }
10
- .timesheet_hours_row {
11
- position: absolute;
12
- left: 0px; width: 32px;
13
- }
14
- .timesheet_lines_col {
15
- position: absolute;
16
- top: 0px; left: 36px; right: 0px;
17
- border-left: 1px solid #aaa;
18
- border-bottom: 1px solid #aaa;
19
- border-right: 1px solid #aaa;
20
- }
21
- .timesheet_lines_row0,
22
- .timesheet_lines_row1 {
23
- position: absolute;
24
- left: 0px; right: 0px; height: 1px;
25
- line-height: 1px; font-size: 0px;
26
- background-color: #ccc;
27
- }
28
- .timesheet_lines_row0 {
29
- background-color: #aaa;
30
- }
@@ -1,2 +0,0 @@
1
- <div class="timesheet_hours_col" id="label#{_ID}"></div>
2
- <div class="timesheet_lines_col" id="state#{_ID}"></div>