rsence-pre 3.0.0.12 → 3.0.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -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