rsence-pre 2.3.0.18 → 2.3.0.19
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/VERSION +1 -1
- data/js/chat/chat_panel/chat_panel.coffee +2 -2
- data/js/comm/queue/queue.js +19 -0
- data/js/comm/transporter/transporter.js +29 -20
- data/js/comm/values/values.js +11 -319
- data/js/controls/button/themes/default/button_parts1.png +0 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +1 -0
- data/js/controls/onoffbutton/onoffbutton.coffee +1 -1
- data/js/core/elem/elem.coffee +3 -1
- data/js/core/util/util_methods/util_methods.coffee +271 -93
- data/js/datetime/calendar/calendar.coffee +1 -1
- data/js/datetime/timesheet/timesheet.js +3 -3
- data/js/foundation/control/control.js +1 -1
- data/js/foundation/control/valueaction/valueaction.js +2 -2
- data/js/foundation/control/valueresponder/valueresponder.js +4 -4
- data/js/foundation/json_renderer/json_renderer.js +42 -42
- data/js/foundation/view/view.js +8 -8
- data/js/lists/propertylist/propertylist.js +5 -5
- data/js/lists/radiobuttonlist/radiobuttonlist.js +1 -1
- data/js/menus/minimenu/minimenu.js +2 -2
- data/js/tables/table/table.coffee +89 -18
- data/js/tables/table/themes/default/table.css +6 -0
- data/js/tables/table/themes/default/table.html +3 -1
- data/lib/rsence/valuemanager.rb +6 -1
- metadata +2 -2
    
        data/js/foundation/view/view.js
    CHANGED
    
    | @@ -1230,8 +1230,8 @@ HView = UtilMethods.extend({ | |
| 1230 1230 | 
             
              *
         | 
| 1231 1231 | 
             
              **/
         | 
| 1232 1232 | 
             
              setStyleOfPart: function(_partName, _name, _value, _force) {
         | 
| 1233 | 
            -
                if (!this | 
| 1234 | 
            -
                  !this.isProduction && console.log('Warning, setStyleOfPart: no markupElemIds');
         | 
| 1233 | 
            +
                if (!this.markupElemIds){
         | 
| 1234 | 
            +
                  !this.isProduction && console.log('Warning, setStyleOfPart('+_partName+','+_name+','+_value+') in a '+this.componentName+': no markupElemIds');
         | 
| 1235 1235 | 
             
                }
         | 
| 1236 1236 | 
             
                else if (this.markupElemIds[_partName]===undefined) {
         | 
| 1237 1237 | 
             
                  !this.isProduction && console.log('Warning, setStyleOfPart: partName "'+_partName+'" does not exist for viewId '+this.viewId+'.');
         | 
| @@ -1255,8 +1255,8 @@ HView = UtilMethods.extend({ | |
| 1255 1255 | 
             
              *
         | 
| 1256 1256 | 
             
              **/
         | 
| 1257 1257 | 
             
              styleOfPart: function(_partName, _name, _force) {
         | 
| 1258 | 
            -
                if (!this | 
| 1259 | 
            -
                  !this.isProduction && console.log('Warning, styleOfPart: no markupElemIds');
         | 
| 1258 | 
            +
                if (!this.markupElemIds){
         | 
| 1259 | 
            +
                  !this.isProduction && console.log('Warning, styleOfPart('+_partName+','+_name+') in a '+this.componentName+': no markupElemIds');
         | 
| 1260 1260 | 
             
                }
         | 
| 1261 1261 | 
             
                else if (this.markupElemIds[_partName]===undefined) {
         | 
| 1262 1262 | 
             
                  !this.isProduction && console.log('Warning, styleOfPart: partName "'+_partName+'" does not exist for viewId '+this.viewId+'.');
         | 
| @@ -1278,8 +1278,8 @@ HView = UtilMethods.extend({ | |
| 1278 1278 | 
             
              *
         | 
| 1279 1279 | 
             
              **/
         | 
| 1280 1280 | 
             
              setMarkupOfPart: function( _partName, _value ) {
         | 
| 1281 | 
            -
                if (!this | 
| 1282 | 
            -
                  !this.isProduction && console.log('Warning, setMarkupOfPart: no markupElemIds');
         | 
| 1281 | 
            +
                if (!this.markupElemIds){
         | 
| 1282 | 
            +
                  !this.isProduction && console.log('Warning, setMarkupOfPart('+_partName+') in a '+this.componentName+': no markupElemIds');
         | 
| 1283 1283 | 
             
                }
         | 
| 1284 1284 | 
             
                else if (this.markupElemIds[_partName]===undefined) {
         | 
| 1285 1285 | 
             
                  !this.isProduction && console.log('Warning, setMarkupOfPart: partName "'+_partName+'" does not exist for viewId '+this.viewId+'.');
         | 
| @@ -1302,8 +1302,8 @@ HView = UtilMethods.extend({ | |
| 1302 1302 | 
             
              *
         | 
| 1303 1303 | 
             
              **/
         | 
| 1304 1304 | 
             
              markupOfPart: function(_partName) {
         | 
| 1305 | 
            -
                if (!this | 
| 1306 | 
            -
                  !this.isProduction && console.log('Warning, markupOfPart: no markupElemIds');
         | 
| 1305 | 
            +
                if (!this.markupElemIds){
         | 
| 1306 | 
            +
                  !this.isProduction && console.log('Warning, markupOfPart('+_partName+') in a '+this.componentName+': no markupElemIds');
         | 
| 1307 1307 | 
             
                }
         | 
| 1308 1308 | 
             
                else if (this.markupElemIds[_partName]===undefined) {
         | 
| 1309 1309 | 
             
                  !this.isProduction && console.log('Warning, markupOfPart: partName "'+_partName+'" does not exist for viewId '+this.viewId+'.');
         | 
| @@ -33,7 +33,7 @@ HPropertyList = HControl.extend({ | |
| 33 33 | 
             
                  clickY = y-this.contentView.pageY(),
         | 
| 34 34 | 
             
                  itemNum = Math.floor(clickY/this.options.rowHeight);
         | 
| 35 35 | 
             
                  if((clickY < 0) || (itemNum > this.valueTokens.length-1)){
         | 
| 36 | 
            -
                    this.editor.hide();
         | 
| 36 | 
            +
                    this.editor && this.editor.hide();
         | 
| 37 37 | 
             
                    return;
         | 
| 38 38 | 
             
                  }
         | 
| 39 39 | 
             
                  this.editItem( itemNum );
         | 
| @@ -355,7 +355,7 @@ HPropertyList = HControl.extend({ | |
| 355 355 |  | 
| 356 356 | 
             
              // Returns type of item
         | 
| 357 357 | 
             
              itemType: function( item ){
         | 
| 358 | 
            -
                return  | 
| 358 | 
            +
                return this.typeChr( item );
         | 
| 359 359 | 
             
              },
         | 
| 360 360 |  | 
| 361 361 | 
             
              // Translation from type code to type name
         | 
| @@ -502,7 +502,7 @@ HPropertyList = HControl.extend({ | |
| 502 502 | 
             
                }
         | 
| 503 503 |  | 
| 504 504 | 
             
                this.selectedItem = itemNum;
         | 
| 505 | 
            -
                this.editorValue.set(  | 
| 505 | 
            +
                this.editorValue.set( this.cloneObject(this.valueTokens[itemNum]) );
         | 
| 506 506 | 
             
                this.editor.show();
         | 
| 507 507 | 
             
                EVENT.changeActiveControl(this.editor);
         | 
| 508 508 | 
             
                this.editor.offsetTo( 0, targetY );
         | 
| @@ -511,7 +511,7 @@ HPropertyList = HControl.extend({ | |
| 511 511 |  | 
| 512 512 | 
             
              // Starts tokenizing, when the value is changed.
         | 
| 513 513 | 
             
              refreshValue: function(){
         | 
| 514 | 
            -
                if(this | 
| 514 | 
            +
                if(this.propertyItems === undefined){
         | 
| 515 515 | 
             
                  return;
         | 
| 516 516 | 
             
                }
         | 
| 517 517 | 
             
                this.valueTokens = [];
         | 
| @@ -531,7 +531,7 @@ HPropertyList = HControl.extend({ | |
| 531 531 | 
             
                }
         | 
| 532 532 |  | 
| 533 533 | 
             
                var i, token;
         | 
| 534 | 
            -
                if(this | 
| 534 | 
            +
                if(this.propertyItems === undefined){
         | 
| 535 535 | 
             
                  this.propertyItems = [];
         | 
| 536 536 | 
             
                }
         | 
| 537 537 | 
             
                var colHeight = 0, colId = 0;
         | 
| @@ -155,7 +155,7 @@ HRadioButtonList = HListItemControl.extend({ | |
| 155 155 |  | 
| 156 156 | 
             
              refreshValue: function(){
         | 
| 157 157 | 
             
                var _value = this.value;
         | 
| 158 | 
            -
                if ( this.listItems && this.listItems.length !== 0 && this | 
| 158 | 
            +
                if ( this.listItems && this.listItems.length !== 0 && this.valueMatrix !== undefined ) {
         | 
| 159 159 | 
             
                  if ( this.radioButtonResponder === false ){
         | 
| 160 160 | 
             
                    this.radioButtonIndexValue = HValue.nu( false, 0 );
         | 
| 161 161 | 
             
                    this.radioButtonIndexValue.bind( this.valueMatrix );
         | 
| @@ -39,7 +39,7 @@ HMiniMenu = HRadioButtonList.extend({ | |
| 39 39 | 
             
                if(y < 0){
         | 
| 40 40 | 
             
                  y = this.subComponentHeight%y;
         | 
| 41 41 | 
             
                }
         | 
| 42 | 
            -
                if(this.options | 
| 42 | 
            +
                if(this.options.menuItemGeom){
         | 
| 43 43 | 
             
                  if(this.options.menuItemGeom.width){
         | 
| 44 44 | 
             
                    w += this.options.menuItemGeom.width;
         | 
| 45 45 | 
             
                  }
         | 
| @@ -59,7 +59,7 @@ HMiniMenu = HRadioButtonList.extend({ | |
| 59 59 |  | 
| 60 60 | 
             
              refreshValue: function(){
         | 
| 61 61 | 
             
                this.base();
         | 
| 62 | 
            -
                if(this.listItems && this.listItems.length !== 0 && this | 
| 62 | 
            +
                if(this.listItems && this.listItems.length !== 0 && this.valueMatrix !== undefined ) {
         | 
| 63 63 | 
             
                  for(var i=0;i<this.listItems.length;i++){
         | 
| 64 64 | 
             
                    if(this.listItems[i][0]===this.value){
         | 
| 65 65 | 
             
                      this.setLabel( this.listItems[i][1] );
         | 
| @@ -1,16 +1,24 @@ | |
| 1 1 | 
             
            HTable = HControl.extend
         | 
| 2 2 | 
             
              componentName: 'table'
         | 
| 3 | 
            -
              markupElemNames: [ 'header', 'subview' ]
         | 
| 3 | 
            +
              markupElemNames: [ 'header', 'subview', 'grid' ]
         | 
| 4 4 | 
             
              defaultEvents:
         | 
| 5 5 | 
             
                resize: true
         | 
| 6 6 | 
             
              controlDefaults: HControlDefaults.extend
         | 
| 7 | 
            -
                tableType: 'rows'
         | 
| 8 | 
            -
                constructor: ( | 
| 9 | 
            -
                  @headerCols = false unless @headerCols?
         | 
| 10 | 
            -
                  @sortDescending = [] unless @sortDescending?
         | 
| 11 | 
            -
                  @colWidths = [] unless @colWidths?
         | 
| 12 | 
            -
                  @ | 
| 13 | 
            -
             | 
| 7 | 
            +
                tableType: 'rows' # 'cols' not supported yet
         | 
| 8 | 
            +
                constructor: (_view)->
         | 
| 9 | 
            +
                  @headerCols = false unless @headerCols? # array of strings 
         | 
| 10 | 
            +
                  @sortDescending = [] unless @sortDescending? # column sorting by index; true for descending; false for ascending
         | 
| 11 | 
            +
                  @colWidths = [] unless @colWidths? # widths by column index; default 'auto'
         | 
| 12 | 
            +
                  @colClasses = {} unless @colClasses? # class by column index
         | 
| 13 | 
            +
                  @defaultColOptions = {} unless @defaultColOptions? # fallback default column options
         | 
| 14 | 
            +
                  @colOptions = {} unless @colOptions? # column class constructor options by column index
         | 
| 15 | 
            +
                  @defaultColClass = HStringView unless @defaultColClass? # fallback default column class
         | 
| 16 | 
            +
                sortCol: 0 # the default sort column
         | 
| 17 | 
            +
                useCellGrid: false # whether to use colored cells or not
         | 
| 18 | 
            +
                cellBgColor: '#eee' # the average bg color
         | 
| 19 | 
            +
                cellBgColorDiff: '#080808' # color to add/subtract for even/odd col/row
         | 
| 20 | 
            +
                cellBorderWidth: 1 # cell border width in pixels
         | 
| 21 | 
            +
                cellBorderColor: '#fff' # cell border color
         | 
| 14 22 | 
             
              _destroyHeader: ->
         | 
| 15 23 | 
             
                if @headerCols?
         | 
| 16 24 | 
             
                  _table = @
         | 
| @@ -36,6 +44,65 @@ HTable = HControl.extend | |
| 36 44 | 
             
                #     _colView.rect.setLeft(_size[0])
         | 
| 37 45 | 
             
                #     _colView.rect.setWidth(_size[1])
         | 
| 38 46 | 
             
                #     _colView.drawRect()
         | 
| 47 | 
            +
              _initCellBgColors: ->
         | 
| 48 | 
            +
                _color1 = @options.cellBgColor
         | 
| 49 | 
            +
                _colorDiff = @options.cellBgColorDiff
         | 
| 50 | 
            +
                if _color1 == 'transparent'
         | 
| 51 | 
            +
                  @_cellBgColors = [ 'transparent', 'transparent', 'transparent' ]
         | 
| 52 | 
            +
                  return
         | 
| 53 | 
            +
                else if not _colorDiff
         | 
| 54 | 
            +
                  @_cellBgColors = [ _color1, _color1, _color1 ]
         | 
| 55 | 
            +
                  return
         | 
| 56 | 
            +
                _color0 = @hexColorSubtract( _color1, _colorDiff )
         | 
| 57 | 
            +
                _color2 = @hexColorAdd( _color1, _colorDiff )
         | 
| 58 | 
            +
                @_cellBgColors = [ _color0, _color1, _color2 ]
         | 
| 59 | 
            +
              _cellBgColorOf: (_row, _col)->
         | 
| 60 | 
            +
                _colorIndex = (_row%2) + (1-_col%2)
         | 
| 61 | 
            +
                @_cellBgColors[_colorIndex]
         | 
| 62 | 
            +
              _drawCellStyles: ->
         | 
| 63 | 
            +
                if @_bgCells?
         | 
| 64 | 
            +
                  for _bgCellId in @_bgCells
         | 
| 65 | 
            +
                    ELEM.del( _bgCellId )
         | 
| 66 | 
            +
                  delete @_bgCells
         | 
| 67 | 
            +
                return unless @colViews?
         | 
| 68 | 
            +
                # the border width offset calculations are fubar; refactor when time available
         | 
| 69 | 
            +
                @_bgCells = []
         | 
| 70 | 
            +
                _parent = @markupElemIds.grid
         | 
| 71 | 
            +
                _leftOffset = @headerSizes[0][0]
         | 
| 72 | 
            +
                @_initCellBgColors()
         | 
| 73 | 
            +
                _borderSize = @options.cellBorderWidth
         | 
| 74 | 
            +
                _borderColor = @options.cellBorderColor
         | 
| 75 | 
            +
                _borderStyle = _borderSize+'px solid '+_borderColor
         | 
| 76 | 
            +
                _heightOffset = _borderSize
         | 
| 77 | 
            +
                _height = 24-_heightOffset
         | 
| 78 | 
            +
                _topAdd = 24
         | 
| 79 | 
            +
                _halfBorderWidth = Math.floor(_borderSize*0.5)
         | 
| 80 | 
            +
                _widthOffset = 6-_borderSize-_halfBorderWidth
         | 
| 81 | 
            +
                _borderLeftOffset = 0-_halfBorderWidth
         | 
| 82 | 
            +
                for _colView, _colNum in @colViews
         | 
| 83 | 
            +
                  [ _left, _width ] = @headerSizes[_colNum]
         | 
| 84 | 
            +
                  if _colNum == 0
         | 
| 85 | 
            +
                    _left = _borderLeftOffset
         | 
| 86 | 
            +
                    _width += _leftOffset+_borderLeftOffset
         | 
| 87 | 
            +
                    _width -= _halfBorderWidth if _borderSize % 2 == 1
         | 
| 88 | 
            +
                  else
         | 
| 89 | 
            +
                    _left += _borderLeftOffset-_widthOffset
         | 
| 90 | 
            +
                    _left -= _borderSize if _borderSize > 1
         | 
| 91 | 
            +
                    _width += _widthOffset
         | 
| 92 | 
            +
                    _width += _halfBorderWidth
         | 
| 93 | 
            +
                  _top = _borderLeftOffset
         | 
| 94 | 
            +
                  for _row, _rowNum in @_rows
         | 
| 95 | 
            +
                    @_bgCells << ELEM.make(
         | 
| 96 | 
            +
                      _parent, 'div',
         | 
| 97 | 
            +
                      styles:
         | 
| 98 | 
            +
                        backgroundColor: @_cellBgColorOf(_rowNum,_colNum)
         | 
| 99 | 
            +
                        border: _borderStyle
         | 
| 100 | 
            +
                        top: _top+'px'
         | 
| 101 | 
            +
                        left: _left+'px'
         | 
| 102 | 
            +
                        width: _width+'px'
         | 
| 103 | 
            +
                        height: _height+'px'
         | 
| 104 | 
            +
                    )
         | 
| 105 | 
            +
                    _top += _topAdd
         | 
| 39 106 | 
             
              drawHeader: ->
         | 
| 40 107 | 
             
                _elemIds = []
         | 
| 41 108 | 
             
                _sizes = []
         | 
| @@ -104,6 +171,7 @@ HTable = HControl.extend | |
| 104 171 | 
             
                  @colViews[_colNum].rect.offsetTo( _left, 0 )
         | 
| 105 172 | 
             
                  @colViews[_colNum].rect.setWidth( _width )
         | 
| 106 173 | 
             
                  @colViews[_colNum].drawRect()
         | 
| 174 | 
            +
                @_drawCellStyles()
         | 
| 107 175 | 
             
              drawSubviews: ->
         | 
| 108 176 | 
             
                if @options.headerCols
         | 
| 109 177 | 
             
                  @drawHeader()
         | 
| @@ -120,16 +188,15 @@ HTable = HControl.extend | |
| 120 188 | 
             
                if @options.colOptions[_colNum]?
         | 
| 121 189 | 
             
                  _colOption = @options.colOptions[_colNum]
         | 
| 122 190 | 
             
                else
         | 
| 123 | 
            -
                  _colOption =  | 
| 191 | 
            +
                  _colOption = @cloneObject( @options.defaultColOptions )
         | 
| 124 192 | 
             
                if @options.colClasses[_colNum]?
         | 
| 125 193 | 
             
                  _colClass = @options.colClasses[_colNum]
         | 
| 126 194 | 
             
                  if typeof _colClass == 'function' and _colClass.hasAncestor? and _colClass.hasAncestor( HControl )
         | 
| 127 195 | 
             
                    return [ _colClass, _colOption ]
         | 
| 128 196 | 
             
                  else if _colClass instanceof Object and not _colClass.hasAncestor?
         | 
| 129 197 | 
             
                    for _className of _colClass
         | 
| 130 | 
            -
                       | 
| 131 | 
            -
             | 
| 132 | 
            -
                  else if typeof _colClass == 'string'
         | 
| 198 | 
            +
                      return [ @_findClassInNameSpace( _className ), _colClass[_className] ] if @typeChr(_className) == 's'
         | 
| 199 | 
            +
                  else if @typeChr(_colClass) == 's'
         | 
| 133 200 | 
             
                    return [ @_findClassInNameSpace( _colClass ), _colOption ]
         | 
| 134 201 | 
             
                return [ @_findClassInNameSpace( @options.defaultColClass ), _colOption ]
         | 
| 135 202 | 
             
              _destroyRows: ->
         | 
| @@ -150,9 +217,9 @@ HTable = HControl.extend | |
| 150 217 | 
             
                for _row, i in @_rows
         | 
| 151 218 | 
             
                  _rowSort.push( [ @value[i], _row ] )
         | 
| 152 219 | 
             
                _nextCols = []
         | 
| 153 | 
            -
                if @options.sortOrder[_col]?
         | 
| 154 | 
            -
                  if @options.sortOrder[_col]  | 
| 155 | 
            -
                    _nextCols =  | 
| 220 | 
            +
                if @options.sortOrder? and @options.sortOrder[_col]?
         | 
| 221 | 
            +
                  if @typeChr( @options.sortOrder[_col] ) == 'a'
         | 
| 222 | 
            +
                    _nextCols = @cloneObject( @options.sortOrder[_col] )
         | 
| 156 223 | 
             
                  else
         | 
| 157 224 | 
             
                    _nextCols = [ @options.sortOrder[_col] ]
         | 
| 158 225 | 
             
                else
         | 
| @@ -182,7 +249,7 @@ HTable = HControl.extend | |
| 182 249 | 
             
                      _col.hide()
         | 
| 183 250 | 
             
                  else
         | 
| 184 251 | 
             
                    _rowsVisible += 1
         | 
| 185 | 
            -
                    for _col in _row
         | 
| 252 | 
            +
                    for _col, _colNum in _row
         | 
| 186 253 | 
             
                      _col.show()
         | 
| 187 254 | 
             
                      _col.rect.offsetTo( 0, _top )
         | 
| 188 255 | 
             
                      _col.drawRect()
         | 
| @@ -206,7 +273,8 @@ HTable = HControl.extend | |
| 206 273 | 
             
                else if @_rowsDrawn and _newData and @_rows.length == @value.length
         | 
| 207 274 | 
             
                  for _row, _rowNum in @value
         | 
| 208 275 | 
             
                    for _col, _colNum in _row
         | 
| 209 | 
            -
                      @_rows[_rowNum][_colNum] | 
| 276 | 
            +
                      _ctrl = @_rows[_rowNum][_colNum]
         | 
| 277 | 
            +
                      _ctrl.setValue( _col )
         | 
| 210 278 | 
             
                  @sortTableRows()
         | 
| 211 279 | 
             
                else
         | 
| 212 280 | 
             
                  if @_rowsDrawn
         | 
| @@ -219,11 +287,12 @@ HTable = HControl.extend | |
| 219 287 | 
             
                      _colOpts.value = _col
         | 
| 220 288 | 
             
                      _colOpts.tableRow = _rowNum
         | 
| 221 289 | 
             
                      _colOpts.tableCol = _colNum
         | 
| 222 | 
            -
                       | 
| 290 | 
            +
                      _ctrl = _colClass.new(
         | 
| 223 291 | 
             
                        [ 0, _top, null, _rowHeight, 0, null ],
         | 
| 224 292 | 
             
                        @colViews[_colNum],
         | 
| 225 293 | 
             
                        _colOpts
         | 
| 226 294 | 
             
                      )
         | 
| 295 | 
            +
                      _rows[_rowNum][_colNum] = _ctrl
         | 
| 227 296 | 
             
                    _top += _rowHeight
         | 
| 228 297 | 
             
                  for _colView in _colViews
         | 
| 229 298 | 
             
                    _colView.rect.setHeight(_top)
         | 
| @@ -237,7 +306,9 @@ HTable = HControl.extend | |
| 237 306 | 
             
                if @options.tableType == 'rows'
         | 
| 238 307 | 
             
                  @refreshTableRows(_newData)
         | 
| 239 308 | 
             
                else if @options.tableType == 'cols'
         | 
| 309 | 
            +
                  console.log('ERROR; refreshTable: tableType \'cols\' not supported!')
         | 
| 240 310 | 
             
                  @refreshTableCols(_newData)
         | 
| 311 | 
            +
                @_drawCellStyles() if @options.useCellGrid and _newData
         | 
| 241 312 | 
             
              refreshValue: ->
         | 
| 242 313 | 
             
                if @value instanceof Array
         | 
| 243 314 | 
             
                  @refreshTable( true )
         | 
| @@ -23,3 +23,9 @@ | |
| 23 23 | 
             
              position: absolute; top: 24px; left: 0; right: 0; bottom: 0;
         | 
| 24 24 | 
             
              overflow: auto; overflow-x: hidden;
         | 
| 25 25 | 
             
            }
         | 
| 26 | 
            +
            .default > .table_body > .table_grid {
         | 
| 27 | 
            +
              position: absolute; top: 0; left: 0; overflow: visible;
         | 
| 28 | 
            +
            }
         | 
| 29 | 
            +
            .default > .table_body > .table_grid > div {
         | 
| 30 | 
            +
              position: absolute; height: 24px;
         | 
| 31 | 
            +
            }
         | 
    
        data/lib/rsence/valuemanager.rb
    CHANGED
    
    | @@ -141,7 +141,12 @@ module RSence | |
| 141 141 | 
             
                  # loop through un-validated values and validate them
         | 
| 142 142 | 
             
                  check_ids = session_values[:check]
         | 
| 143 143 | 
             
                  check_ids.clone.each do |check_id|
         | 
| 144 | 
            -
                    session_values[:by_id][check_id] | 
| 144 | 
            +
                    value = session_values[:by_id][check_id]
         | 
| 145 | 
            +
                    if value.nil?
         | 
| 146 | 
            +
                      warn "ses_id: #{msg.ses_id} nil value of value_id: #{check_id.inspect}"
         | 
| 147 | 
            +
                    else
         | 
| 148 | 
            +
                      value.tell( msg )
         | 
| 149 | 
            +
                    end
         | 
| 145 150 | 
             
                  end
         | 
| 146 151 |  | 
| 147 152 | 
             
                end
         | 
    
        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: 2.3.0. | 
| 4 | 
            +
              version: 2.3.0.19
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2013-02- | 
| 13 | 
            +
            date: 2013-02-27 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: rsence-deps
         |