rsence-pre 3.0.0.12 → 3.0.0.14

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.
@@ -1,72 +1,70 @@
1
- .timesheet_item,
2
- .timesheet_item_middle,
3
- .timesheet_item_label,
4
- .timesheet_item_resize_top,
5
- .timesheet_item_move,
6
- .timesheet_item_time,
7
- .timesheet_item_icons,
8
- .timesheet_item_resize_bottom {
1
+ .default.timesheet_item,
2
+ .default.timesheet_item > .middle,
3
+ .default.timesheet_item > .middle > .label,
4
+ .default.timesheet_item > .resize_top,
5
+ .default.timesheet_item > .move,
6
+ .default.timesheet_item > .time,
7
+ .default.timesheet_item > .icons,
8
+ .default.timesheet_item > .resize_bottom {
9
9
  position: absolute;
10
- left: 0px; right: 0px;
10
+ left: 0; right: 0;
11
11
  }
12
- .timesheet_item {
13
- top: 0px; bottom: 0px;
12
+ .default.timesheet_item {
13
+ top: 0; bottom: 0;
14
14
  border: 1px solid #ccc;
15
15
  border-radius: 7px;
16
16
  opacity: 0.75;
17
17
  }
18
- .timesheet_item_time,
19
- .timesheet_item_label {
18
+ .default.timesheet_item > .time,
19
+ .default.timesheet_item > .middle > .label {
20
20
  font-size: 12px;
21
21
  color: #333;
22
22
  font-family: Helvetica, Arial, sans-serif;
23
23
  }
24
- .timesheet_item_time {
25
- top: 0px; height: 12px; line-height: 12px;
24
+ .default.timesheet_item > .time {
25
+ top: 0; height: 12px; line-height: 12px;
26
26
  text-indent: 4px; padding-top: 2px;
27
27
  font-weight: bold;
28
28
  }
29
- .active > .timesheet_item .timesheet_item_time {
29
+ .default.timesheet_item.active > .time {
30
30
  border-radius: 7px 7px 0 0;
31
31
  border-bottom: 1px solid #000;
32
- /* opacity: 0.2;*/
33
32
  }
34
- .active > .timesheet_item {
33
+ .default.timesheet_item.active {
35
34
  border-color: #000;
36
35
  opacity: 1;
37
36
  }
38
- .timesheet_item_middle {
39
- top: 50%; height: 0px;
37
+ .default.timesheet_item > .middle {
38
+ top: 50%; height: 0;
40
39
  overflow: visible;
41
40
  }
42
- .timesheet_item_label {
41
+ .default.timesheet_item > .middle > .label {
43
42
  text-align: center;
44
43
  opacity: 1;
45
44
  top: -6px; height: 12px;
46
45
  }
47
- .timesheet_item_resize_top {
48
- top: 0px; height: 6px;
46
+ .default.timesheet_item > .resize_top {
47
+ top: 0; height: 6px;
49
48
  cursor: n-resize;
50
49
  }
51
- .timesheet_item_move {
50
+ .default.timesheet_item > .move {
52
51
  top: 6px; bottom: 6px;
53
52
  cursor: move;
54
53
  }
55
- .timesheet_item_resize_bottom {
56
- bottom: 0px; height: 6px;
54
+ .default.timesheet_item > .resize_bottom {
55
+ bottom: 0; height: 6px;
57
56
  cursor: s-resize;
58
57
  }
59
- .timesheet_item_icons {
60
- top: 0px; height: 16px;
58
+ .default.timesheet_item > .icons {
59
+ top: 0; height: 16px;
61
60
  }
62
- .timesheet_item_icon {
61
+ .default.timesheet_item > .icons > .icon {
63
62
  position: absolute;
64
- top: 0px; width: 16px; height: 16px;
65
- background-position: 0px 0px;
63
+ top: 0; width: 16px; height: 16px;
64
+ background-position: 0 0;
66
65
  }
67
-
68
- .locked .timesheet_item_move,
69
- .locked .timesheet_item_resize_bottom,
70
- .locked .timesheet_item_resize_top {
66
+ .default.timesheet_item.locked > .move,
67
+ .default.timesheet_item.locked > .resize_bottom,
68
+ .default.timesheet_item.locked > .resize_top {
71
69
  cursor: pointer;
72
70
  }
@@ -1,10 +1,6 @@
1
- <div class="timesheet_item" id="bg]I[">
2
- <div class="timesheet_item_time" id="state]I["></div>
3
- <div class="timesheet_item_middle">
4
- <div class="timesheet_item_label" id="label]I[">#{this.label}</div>
5
- </div>
6
- <div class="timesheet_item_icons" id="icons]I["></div>
7
- <div class="timesheet_item_resize_top"></div>
8
- <div class="timesheet_item_resize_bottom"></div>
9
- <div class="timesheet_item_move" id="subview]I["></div>
10
- </div>
1
+ <div class="time" id="state]I["></div>
2
+ <div class="middle"><div class="label" id="label]I[">#{this.label}</div></div>
3
+ <div class="icons" id="icons]I["></div>
4
+ <div class="resize_top"></div>
5
+ <div class="resize_bottom"></div>
6
+ <div class="move" id="subview]I["></div>
@@ -0,0 +1,144 @@
1
+
2
+ ###
3
+ ## = Description
4
+ ## Item class to be used with HTimeSheet.
5
+ ###
6
+ HTimeSheetItem = HControl.extend
7
+ componentName: 'timesheet_item'
8
+ markupElemNames: ['label', 'state', 'icons', 'value', 'subview']
9
+ controlDefaults: HControlDefaults.extend
10
+ displayTime: true
11
+ iconImage: 'timesheet_item_icons.png'
12
+ drawIcon: ( _iconOrder, _iconId )->
13
+ _iconElemId = ELEM.make( @markupElemIds.icons, 'div' )
14
+ _iconUrl = @getThemeGfxFile( @options.iconImage )
15
+ ELEM.addClassName( _iconElemId, 'icon' )
16
+ ELEM.setStyles( _iconElemId,
17
+ right: (_iconOrder*16+_iconOrder)+'px'
18
+ backgroundPosition: '0px '+(_iconId*-16)+'px'
19
+ backgroundImage: 'url('+_iconUrl+')'
20
+ )
21
+ _iconElemId
22
+ clearAllIcons: ->
23
+ if @typeChr(@icons) == 'a'
24
+ for _iconId in @icons
25
+ ELEM.del( _iconId )
26
+ @icons = []
27
+ die: ->
28
+ @clearAllIcons()
29
+ @icons = null
30
+ @base()
31
+ refreshState: (_start, _duration)->
32
+ return unless @options.displayTime
33
+ _startTime = _start or @value.start
34
+ _endTime = _startTime + ( _duration or @value.duration )
35
+ _locale = HLocale.dateTime
36
+ _stateText = _locale.formatTime( _startTime ) + _locale.strings.rangeDelimitter + _locale.formatTime( _endTime )
37
+ ELEM.setHTML( @markupElemIds.state, _stateText )
38
+ refreshValue: ->
39
+ return unless @typeChr(@value) == 'h'
40
+ @drawRect()
41
+ if @value.color
42
+ @setStyle( 'backgroundColor', @value.color )
43
+ else
44
+ @setStyle( 'backgroundColor', '#999' )
45
+ @setLabel( @value.label ) if @value.label
46
+ if @value.locked
47
+ ELEM.addClassName( @elemId, 'locked' )
48
+ else
49
+ ELEM.delClassName( @elemId, 'locked' )
50
+ @refreshState()
51
+ @clearAllIcons()
52
+ if @typeChr( @value.icons ) == 'a'
53
+ for _icon, i in @value.icons
54
+ @icons.push( @drawIcon( i, _icon ) );
55
+ click: ->
56
+ @bringToFront()
57
+ doubleClick: ( x, y )->
58
+ @bringToFront()
59
+ @parent.activateEditor( this )
60
+
61
+ dragMode: 0 # none
62
+ _isValueValidForDrag: -> @typeChr(@value) == 'h' and not @value.locked
63
+ startDrag: (x, y)->
64
+ @bringToFront()
65
+ if @_isValueValidForDrag()
66
+ _topY = y-@pageY()
67
+ _bottomY = @rect.height - _topY
68
+ _resizeTop = ( _topY >= 0 && _topY <= 6 )
69
+ _resizeBottom = ( _bottomY >= 0 && _bottomY <= 6 )
70
+ _move = ( _topY > 6 && _bottomY > 6 )
71
+ if _resizeTop
72
+ @dragMode = 2 # resize-top
73
+ else if _resizeBottom
74
+ @dragMode = 3 # resize-bottom
75
+ else if _move
76
+ @dragMode = 1 # move
77
+ else
78
+ @dragMode = 0 # none
79
+ if @dragMode == 0
80
+ @originY = false
81
+ else
82
+ _originY = y-@parent.pageY()
83
+ _parentY = @parent.pageY()
84
+ _originTimeStart = @value.start
85
+ _originTimeEnd = _originTimeStart + @value.duration
86
+ @originY = _originY
87
+ @originTopPx = @rect.top
88
+ @originBottomPx = @rect.bottom
89
+ @originTimeStart = _originTimeStart
90
+ @originTimeEnd = _originTimeEnd
91
+ @originDuration = _originTimeEnd - _originTimeStart
92
+ @dragTimeStart = _originTimeStart
93
+ @dragDuration = @originDuration
94
+ drag: ( x, y )->
95
+ if @_isValueValidForDrag() and @dragMode != 0
96
+ y -= @parent.pageY()
97
+ _movePx = y - @originY
98
+ _topPx = @parent.snapPx( @originTopPx + _movePx )
99
+ _parentY = @parent.pageY()
100
+ if @dragMode == 1 # move
101
+ _maxTopPx = @parent.timeToPx( @parent.options.timeEnd ) - @rect.height
102
+ _topPx = _maxTopPx if _topPx > _maxTopPx
103
+ _timeStart = @parent.pxToTime(_topPx)
104
+ _duration = @originDuration
105
+ @rect.offsetTo( @rect.left, _topPx )
106
+ @drawRect()
107
+ @dragTimeStart = _timeStart
108
+ @dragDuration = _duration
109
+ else if @dragMode == 2 # resize-top
110
+ _maxTopPx = @parent.timeToPx( @originTimeEnd - @parent.minDuration )
111
+ _topPx = _maxTopPx if _topPx > _maxTopPx
112
+ _timeStart = @parent.pxToTime(_topPx)
113
+ _timeEnd = @originTimeEnd
114
+ if @rect.bottom - _topPx < @parent.options.itemMinHeight
115
+ _topPx = @rect.bottom - @parent.options.itemMinHeight
116
+ @rect.setTop( _topPx )
117
+ @drawRect()
118
+ @dragTimeStart = _timeStart
119
+ @dragDuration = _timeEnd - _timeStart
120
+ else if @dragMode == 3 # resize-top
121
+ _minBottomPx = @parent.timeToPx( @originTimeStart + @parent.minDuration )
122
+ _bottomPx = @parent.snapPx( @originBottomPx + _movePx )
123
+ _bottomPx = _minBottomPx if _bottomPx < _minBottomPx
124
+ _timeStart = @originTimeStart
125
+ _timeEnd = @parent.pxToTime(_bottomPx)
126
+ if _bottomPx - @rect.top < @parent.options.itemMinHeight
127
+ _bottomPx = @rect.top + @parent.options.itemMinHeight
128
+ @rect.setBottom( _bottomPx )
129
+ @drawRect()
130
+ @dragTimeStart = _timeStart
131
+ @dragDuration = _timeEnd - _timeStart
132
+ @refreshState( @dragTimeStart, @dragDuration )
133
+ endDrag: (x, y)->
134
+ if @_isValueValidForDrag() and @dragMode != 0
135
+ _startChanged = @dragTimeStart != @originTimeStart and @dragTimeStart != @value.start
136
+ _durationChanged = @dragDuration != @originDuration and @dragDuration != @value.duration
137
+ if _startChanged or _durationChanged
138
+ if @parent.editor
139
+ @parent.editor.modifyItem(
140
+ id: @value.id
141
+ start: @dragTimeStart
142
+ duration: @dragDuration
143
+ label: @value.label
144
+ )
@@ -172,7 +172,6 @@ HEventResponder = HClass.extend({
172
172
  *
173
173
  **/
174
174
  setEnabled: function(_flag) {
175
-
176
175
  var
177
176
  _this = this,
178
177
  _elemId = this.elemId,
@@ -180,12 +179,12 @@ HEventResponder = HClass.extend({
180
179
  i = 0,
181
180
  _views = _this.views,
182
181
  _view,
183
- _viewsLen = _views.length;
182
+ _viewsLen = _views?_views.length:0;
184
183
 
185
184
  // Enable/disable the children first.
186
185
  for (; i < _viewsLen; i++) {
187
186
  _view = _sysViews[_views[i]];
188
- _view['setEnabled'] && _view.setEnabled(_flag);
187
+ _view.setEnabled && _view.setEnabled(_flag);
189
188
  }
190
189
 
191
190
  if (_this.enabled === _flag) {
@@ -195,7 +194,7 @@ HEventResponder = HClass.extend({
195
194
 
196
195
  _this.enabled = _flag;
197
196
 
198
- if(_flag) {
197
+ if(_flag && _this.events) {
199
198
  EVENT.reg(_this, _this.events);
200
199
  }
201
200
  else {
@@ -417,6 +417,12 @@ EventManagerApp = HApplication.extend
417
417
  if ~_viewIdx
418
418
  @_listeners[_statusItem].splice(_viewIdx,1)
419
419
  #
420
+ # Cancels the drag operation for the ctrl
421
+ cancelDrag: (_ctrl)->
422
+ _dragIdx = @_listeners.dragged.indexOf(_ctrl.viewId)
423
+ if ~_dragIdx
424
+ @_listeners.dragged.splice( _dragIdx, 1 )
425
+ #
420
426
  # Registers the HControl -derived object _ctrl by event listener flags
421
427
  # in _eventOptions.
422
428
  reg: (_ctrl, _eventOptions)->
@@ -11,6 +11,7 @@ HTable = HControl.extend
11
11
  cellBgColorDiff: '#080808' # color to add/subtract for even/odd col/row
12
12
  cellBorderWidth: 1 # cell border width in pixels
13
13
  cellBorderColor: '#fff' # cell border color
14
+ sortable: true # set to false, if table should not be sorted
14
15
  customOptions: (_options)->
15
16
  _options.headerCols = false unless _options.headerCols? # array of strings
16
17
  _options.sortDescending = [] unless _options.sortDescending? # column sorting by index; true for descending; false for ascending
@@ -63,17 +64,23 @@ HTable = HControl.extend
63
64
  _cellBgColorOf: (_row, _col)->
64
65
  _colorIndex = (_row%2) + (1-_col%2)
65
66
  @_cellBgColors[_colorIndex]
66
- _drawCellStyles: ->
67
- if @_bgCells?
68
- for _bgCellId in @_bgCells
67
+ _destroyBgCells: ->
68
+ for _row in @_bgCells
69
+ for _bgCellId in _row
69
70
  ELEM.del( _bgCellId )
70
- delete @_bgCells
71
+ delete @_bgCells
72
+ die: ->
73
+ @_destroyBgCells() if @_bgCells?
74
+ @_destroyHeader()
75
+ @base()
76
+ _drawCellStyles: (_1stIdx, _addCount)->
77
+ @_destroyBgCells() if @_bgCells? and not _1stIdx?
71
78
  return unless @colViews?
72
- # the border width offset calculations are fubar; refactor when time available
73
- @_bgCells = []
79
+ return unless @_rowsDrawn
80
+ @_bgCells = [] unless _1stIdx?
74
81
  _parent = @markupElemIds.grid
75
82
  _leftOffset = @headerSizes[0][0]
76
- @_initCellBgColors()
83
+ @_initCellBgColors() unless _1stIdx?
77
84
  _borderSize = @options.cellBorderWidth
78
85
  _borderColor = @options.cellBorderColor
79
86
  _borderStyle = _borderSize+'px solid '+_borderColor
@@ -96,17 +103,20 @@ HTable = HControl.extend
96
103
  _width += _halfBorderWidth
97
104
  _top = _borderLeftOffset
98
105
  for _row, _rowNum in @_rows
99
- @_bgCells.push ELEM.make(
100
- _parent, 'div',
101
- styles:
102
- backgroundColor: @_cellBgColorOf(_rowNum,_colNum)
103
- border: _borderStyle
104
- top: _top+'px'
105
- left: _left+'px'
106
- width: _width+'px'
107
- height: _height+'px'
108
- )
106
+ unless _1stIdx? and _rowNum < _1stIdx
107
+ @_bgCells[_rowNum] = [] unless @_bgCells[_rowNum]?
108
+ @_bgCells[_rowNum][_colNum] = ELEM.make(
109
+ _parent, 'div',
110
+ styles:
111
+ backgroundColor: @_cellBgColorOf(_rowNum,_colNum)
112
+ border: _borderStyle
113
+ top: _top+'px'
114
+ left: _left+'px'
115
+ width: _width+'px'
116
+ height: _height+'px'
117
+ )
109
118
  _top += _topAdd
119
+ ELEM.flush()
110
120
  drawHeader: ->
111
121
  _elemIds = []
112
122
  _sizes = []
@@ -125,7 +135,7 @@ HTable = HControl.extend
125
135
  for _headerCol, i in @options.headerCols
126
136
  _elemId = ELEM.make( @markupElemIds.header, 'div' )
127
137
  @options.sortDescending[i] = false unless @options.sortDescending[i]?
128
- ELEM.addClassName(_elemId,'table_header_column')
138
+ ELEM.addClassName(_elemId,'column')
129
139
  _width = 0
130
140
  if @options.colWidths[i]?
131
141
  if @options.colWidths[i] == 'auto'
@@ -137,7 +147,7 @@ HTable = HControl.extend
137
147
  _sizes.push([_left,_width])
138
148
  ELEM.setAttr(_elemId,'sortcol',i)
139
149
  ELEM.setHTML(_elemId,_headerCol)
140
- if @options.sortCol == i
150
+ if @options.sortCol == i and @options.sortable
141
151
  _sortColElem = ELEM.make( _elemId, 'div' )
142
152
  if @options.headerStyles? and @options.headerStyles[i]?
143
153
  _sortColClassName( @options.headerStyles[i] )
@@ -154,7 +164,10 @@ HTable = HControl.extend
154
164
  e.preventDefault()
155
165
  true
156
166
  )
157
- Event.observe(ELEM.get(_elemId),'click',_sortFns[i])
167
+ if @options.sortable
168
+ Event.observe(_elemId,'click',_sortFns[i])
169
+ else
170
+ ELEM.setStyle(_elemId,'cursor','default')
158
171
  _left += _width
159
172
  _elemIds.push( _elemId )
160
173
  if _autoWidths.length > 0
@@ -179,9 +192,10 @@ HTable = HControl.extend
179
192
  @headerSizes = _sizes
180
193
  @_sortColElem = _sortColElem
181
194
  @sortFns = _sortFns
195
+ ELEM.flush()
182
196
  resize: ->
183
197
  @drawHeader()
184
- for _colNum in [0..@headerCols.length-1]
198
+ for _colNum in [0...@headerCols.length]
185
199
  _left = @headerSizes[_colNum][0] + 1
186
200
  _width = @headerSizes[_colNum][1]
187
201
  @colViews[_colNum].rect.offsetTo( _left, 0 )
@@ -287,24 +301,58 @@ HTable = HControl.extend
287
301
  _colViews[_colNum] = HView.nu( [ _left, 0, _width, 1 ], @ )
288
302
  @colViews = _colViews
289
303
  if @_rowsDrawn and not _newData
290
- @sortTableRows()
304
+ @sortTableRows() if @options.sortable
291
305
  else if @_rowsDrawn and _newData and @_rows.length == @value.length
292
- for _row, _rowNum in @value
306
+ @refreshTableValues()
307
+ else if @_rowsDrawn and _newData and @_rows.length > @value.length
308
+ _1stIdx = @value.length
309
+ _lastIdx = @_rows.length-1
310
+ _delCount = _lastIdx-_1stIdx+1
311
+ for _rowNum in [_1stIdx.._lastIdx] by 1
312
+ _row = @_rows[_rowNum]
293
313
  for _col, _colNum in _row
294
314
  _ctrl = @_rows[_rowNum][_colNum]
295
- _ctrl.setValue( _col )
296
- @sortTableRows()
297
- else
298
- @createTableRows()
299
- createTableRows: ->
300
- @_destroyRows() if @_rowsDrawn
301
- _start = new Date().getTime()
302
- _top = 0
315
+ _ctrl.die()
316
+ @_rows.splice(_1stIdx,_delCount)
317
+ if @_bgCells?
318
+ for _row, _rowNum in @_bgCells
319
+ if _rowNum >= _1stIdx
320
+ for _bgCellId in _row
321
+ ELEM.del( _bgCellId )
322
+ @_bgCells.splice(_1stIdx,_delCount)
323
+ _top = 24 * _1stIdx
324
+ for _colView in @colViews
325
+ _colView.rect.setHeight(_top)
326
+ _colView.drawRect()
327
+ @refreshTableValues()
328
+ else if @_rowsDrawn and _newData and @_rows.length < @value.length
329
+ _1stIdx = @_rows.length
330
+ _lastIdx = @value.length-1
331
+ _addCount = _lastIdx - _1stIdx + 1
332
+ @refreshTableValues(_1stIdx)
333
+ @createTableRows(_1stIdx,_addCount)
334
+ else @createTableRows()
335
+ refreshTableValues: (_lastIdx)->
336
+ for _row, _rowNum in @value
337
+ break if _lastIdx? and _rowNum >= _lastIdx
338
+ for _col, _colNum in _row
339
+ _ctrl = @_rows[_rowNum][_colNum]
340
+ _ctrl.setValue( _col ) unless _ctrl.value == _col
341
+ @sortTableRows() if not _lastRow? and @options.sortable
342
+ createTableRows: (_1stIdx,_addCount)->
343
+ @_destroyRows() if @_rowsDrawn and not _1stIdx?
303
344
  _rowHeight = 24
304
- _rows = []
305
- _viewDefs = []
345
+ if _1stIdx?
346
+ _top = _1stIdx * _rowHeight
347
+ _rows = @_rows
348
+ _viewDefs = []
349
+ else
350
+ _top = 0
351
+ _rows = []
352
+ _viewDefs = []
306
353
  _colViews = @colViews
307
354
  for _row, _rowNum in @value
355
+ continue if _1stIdx? and _rowNum < _1stIdx
308
356
  _rows[_rowNum] = []
309
357
  for _col, _colNum in _row
310
358
  [ _colClass, _colOpts ] = @_getClassNameAndValueOfCol(_col, _colNum)
@@ -317,12 +365,16 @@ HTable = HControl.extend
317
365
  for _colView in _colViews
318
366
  _colView.rect.setHeight(_top)
319
367
  _colView.drawRect()
368
+ @_drawCellStyles(_1stIdx,_addCount) if _1stIdx? and @options.useCellGrid
320
369
  _finishDraw = =>
321
370
  @_rows = _rows
322
371
  @_rowsDrawn = true
323
- @sortTableRows()
324
- if @options.useCellGrid
325
- @pushTask => @_drawCellStyles()
372
+ @sortTableRows() if @options.sortable
373
+ unless _1stIdx?
374
+ if @options.useCellGrid
375
+ @pushTask => @_drawCellStyles()
376
+ if @drawTableExtras?
377
+ @pushTask => @drawTableExtras()
326
378
  if _viewDefs.length > 0
327
379
  @pushTask =>
328
380
  _viewsToDraw = []
@@ -342,9 +394,9 @@ HTable = HControl.extend
342
394
  _viewsToDraw.push(_view)
343
395
  @pushTask =>
344
396
  _colView.draw() for _colView in _viewsToDraw
397
+ ELEM.flush()
345
398
  @pushTask( _finishDraw )
346
399
  _progress.die()
347
- # console.log('table render took:',@msNow()-_start,'ms') if !@isProduction
348
400
  else _finishDraw()
349
401
  refreshTableCols: (_newData)->
350
402
  console.warn('HTable#refreshTableCols is not implemented yet!')
@@ -1,4 +1,4 @@
1
- .default > .table_header {
1
+ .default.table > .header {
2
2
  position:absolute;
3
3
  left: 0; top: 0; right: 0; height: 22px;
4
4
  border: 1px solid #333;
@@ -11,25 +11,25 @@
11
11
  -moz-user-select: none;
12
12
  -khtml-user-select: none;
13
13
  }
14
- .default > .table_header > .table_header_column {
14
+ .default.table > .header > .column {
15
15
  top: 1px; height: 20px; position: absolute;
16
16
  cursor: pointer; border-right: 1px solid #ccc;
17
17
  font-weight: bold;
18
18
  text-indent: 6px;
19
19
  }
20
- .default > .table_header > .table_header_column > .sort {
20
+ .default.table > .header > .column > .sort {
21
21
  position: absolute; top: 1px; right: 2px;
22
22
  }
23
- .default > .table_header > .table_header_column > .sort_left {
23
+ .default.table > .header > .column > .sort_left {
24
24
  position: absolute; top: 1px; left: 2px;
25
25
  }
26
- .default > .table_body {
26
+ .default.table > .body {
27
27
  position: absolute; top: 24px; left: 0; right: 0; bottom: 0;
28
28
  overflow: auto; overflow-x: hidden;
29
29
  }
30
- .default > .table_body > .table_grid {
30
+ .default.table > .body > .grid {
31
31
  position: absolute; top: 0; left: 0; overflow: visible;
32
32
  }
33
- .default > .table_body > .table_grid > div {
33
+ .default.table > .body > .grid > div {
34
34
  position: absolute; height: 24px;
35
35
  }
@@ -1,4 +1,4 @@
1
- <div id="header]I[" class="table_header"></div>
2
- <div id="subview]I[" class="table_body">
3
- <div id="grid]I[" class="table_grid"></div>
1
+ <div id="header]I[" class="header"></div>
2
+ <div id="subview]I[" class="body">
3
+ <div id="grid]I[" class="grid"></div>
4
4
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsence-pre
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.12
4
+ version: 3.0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Riassence Inc.
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-27 00:00:00.000000000 Z
12
+ date: 2013-07-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rsence-deps
@@ -236,11 +236,11 @@ files:
236
236
  - client/js/datetime/timepicker/timepicker.coffee
237
237
  - client/js/datetime/timesheet/themes/default/timesheet.css
238
238
  - client/js/datetime/timesheet/themes/default/timesheet.html
239
- - client/js/datetime/timesheet/timesheet.js
239
+ - client/js/datetime/timesheet/timesheet.coffee
240
240
  - client/js/datetime/timesheet_item/themes/default/timesheet_item.css
241
241
  - client/js/datetime/timesheet_item/themes/default/timesheet_item.html
242
242
  - client/js/datetime/timesheet_item/themes/default/timesheet_item_icons.png
243
- - client/js/datetime/timesheet_item/timesheet_item.js
243
+ - client/js/datetime/timesheet_item/timesheet_item.coffee
244
244
  - client/js/datetime/timesheet_item_edit/timesheet_item_edit.js
245
245
  - client/js/foundation/application/application.js
246
246
  - client/js/foundation/control/control.js