rsence-pre 2.2.0.11 → 2.2.0.12
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/js/controls/window/themes/default/window.css +9 -0
- data/js/datetime/calendar/calendar.js +109 -11
- data/js/datetime/calendar/themes/default/calendar.css +89 -7
- data/js/datetime/calendar/themes/default/calendar.html +11 -0
- data/js/datetime/calendar/themes/default/calendar_bg-ie6.gif +0 -0
- data/js/datetime/calendar/themes/default/calendar_bg.png +0 -0
- data/js/datetime/calendar/themes/default/calendar_parts1-ie6.gif +0 -0
- data/js/datetime/calendar/themes/default/calendar_parts1.png +0 -0
- data/js/datetime/calendar/themes/default/calendar_parts2-ie6.gif +0 -0
- data/js/datetime/calendar/themes/default/calendar_parts2.png +0 -0
- data/js/datetime/datetimevalue/datetimevalue.js +22 -5
- data/js/foundation/eventmanager/eventmanager.js +8 -6
- data/js/foundation/locale_settings/locale_settings.js +7 -0
- data/js/lists/radiobuttonlist/radiobuttonlist.js +4 -2
- data/js/menus/minimenu/minimenu.js +7 -2
- data/lib/conf/argv.rb +1 -130
- data/lib/conf/default.rb +5 -5
- data/lib/plugins/gui_plugin.rb +2 -0
- data/lib/plugins/plugin_plugins.rb +1 -1
- data/lib/rsence.rb +134 -3
- data/plugins/client_pkg/client_pkg.rb +7 -3
- data/plugins/client_pkg/lib/client_pkg_build.rb +2 -1
- metadata +11 -12
- data/js/datetime/timesheet/old_timesheet.js +0 -292
- data/js/datetime/timesheet/themes/default/old_timesheet.css +0 -30
- data/js/datetime/timesheet/themes/default/old_timesheet.html +0 -2
- data/js/datetime/timesheet_item/old_timesheet_item.js +0 -308
- data/js/datetime/timesheet_item/themes/default/old_timesheet_item.css +0 -42
- data/js/datetime/timesheet_item/themes/default/old_timesheet_item.html +0 -8
- 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
|
-
|
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
|
-
|
31
|
-
|
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
|
-
|
59
|
-
puts "build busy, sleeping.."
|
60
|
-
sleep 0.
|
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.
|
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:
|
4
|
+
hash: 103
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 2
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 2.2.0.
|
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-
|
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.
|
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
|
-
}
|