fixedHdrRows : 0,
canFilter : true, // does buffer object support filtering?
isEncoded : true, // is the data received via ajax html encoded?
- acceptAttr : [] // attributes that can be copied from original/ajax data (e.g. className, style, id)
+ acceptStyle : false // copy style from original/ajax data?
};
Rico.extend(this.options, options || {});
if (dataTable) {
this.loadRowsFromTable(dataTable,this.options.fixedHdrRows);
+ dataTable.parentNode.removeChild(dataTable); // delete the data once it has been loaded
} else {
this.clear();
}
},
loadRowsFromTable: function(tableElement,firstRow) {
- var newRows = new Array();
+ var newRows = [];
var trs = tableElement.getElementsByTagName("tr");
for ( var i=firstRow || 0; i < trs.length; i++ ) {
- var row = new Array();
+ var row = [];
var cells = trs[i].getElementsByTagName("td");
for ( var j=0; j < cells.length ; j++ )
row[j]=cells[j].innerHTML;
dom2jstable: function(rowsElement) {
Rico.log('dom2jstable: encoded='+this.options.isEncoded);
- var newRows = new Array();
+ var newRows = [];
var trs = rowsElement.getElementsByTagName("tr");
for ( var i=0; i < trs.length; i++ ) {
- var row = new Array();
+ var row = [];
var cells = trs[i].getElementsByTagName("td");
for ( var j=0; j < cells.length ; j++ )
row[j]=Rico.getContentAsString(cells[j],this.options.isEncoded);
return newRows;
},
- dom2jstableAttr: function(rowsElement,firstRow) {
- var acceptAttr=this.options.acceptAttr;
- Rico.log("dom2jstableAttr start, # attr="+acceptAttr.length);
- var newRows = new Array();
- var trs = rowsElement.getElementsByTagName("tr");
- for ( var i=firstRow || 0; i < trs.length; i++ ) {
- var row = new Array();
- var cells = trs[i].getElementsByTagName("td");
- for ( var j=0; j < cells.length ; j++ ) {
- row[j]={};
- for (var k=0; k<acceptAttr.length; k++)
- row[j]['_'+acceptAttr[k]]=cells[j].getAttribute(acceptAttr[k]);
- if (Rico.isIE) row[j]._class=cells[j].getAttribute('className');
- }
- newRows.push( row );
- }
- Rico.log("dom2jstableAttr end");
- return newRows;
- },
-
_blankRow: function() {
var newRow=[];
for (var i=0; i<this.liveGrid.columns.length; i++) {
return this.isVisible(bufrow) && col < this.rows[bufrow].length ? this.rows[bufrow][col] : null;
},
- getWindowAttr: function(windowRow,col) {
+ getWindowStyle: function(windowRow,col) {
var bufrow=this.bufferRow(windowRow);
- return this.attr && this.isVisible(bufrow) && col < this.attr[bufrow].length ? this.attr[bufrow][col] : null;
+ return this.attr && this.isVisible(bufrow) && col < this.attr[bufrow].length ? this.attr[bufrow][col] : '';
},
getWindowValue: function(windowRow,col) {
getRows: function(start, count) {
var begPos = start - this.startPos;
var endPos = Math.min(begPos + count,this.size);
- var results = new Array();
+ var results = [];
for ( var i=begPos; i < endPos; i++ ) {
results.push(this.rows[i]);
}
// create new tables
for (i=0; i<3; i++) {
this.tabs[i] = document.createElement("table");
- this.tabs[i].className = 'ricoLG_table';
+ this.tabs[i].className = (i < 2) ? 'ricoLG_table' : 'ricoLG_scrollTab';
this.tabs[i].border=0;
this.tabs[i].cellPadding=0;
this.tabs[i].cellSpacing=0;
// set headings
for (i=0; i<2; i++) {
this.thead[i]=this.tabs[i].createTHead();
- Rico.addClass(this.tabs[i],'ricoLG_top');
- //this.thead[i].className='ricoLG_top';
+ //Rico.addClass(this.tabs[i],'ricoLG_top');
+ this.thead[i].className='ricoLG_top';
if (Rico.theme.gridheader) Rico.addClass(this.thead[i],Rico.theme.gridheader);
}
// set bodies
switch (fmt.filterUI.charAt(0)) {
case 't':
// text field
- field=Rico.createFormField(divs[1],'input','text',name,name);
+ field=Rico.createFormField(divs[1],'input',Rico.inputtypes.search ? 'search' : 'text',name,name);
var size=fmt.filterUI.match(/\d+/);
field.maxLength=fmt.Length || 50;\r
field.size=size ? parseInt(size,10) : 10;
- divs[1].appendChild(Rico.clearButton(Rico.eventHandle(col,'filterClear')));
+ if (field.type != 'search') divs[1].appendChild(Rico.clearButton(Rico.eventHandle(col,'filterClear')));
if (col.filterType==Rico.ColumnConst.USERFILTER && col.filterOp=='LIKE') {
var v=col.filterValues[0];
if (v.charAt(0)=='*') v=v.substr(1);
for (r=0; r<hdrSrc.length; r++) {
cells=hdrSrc[r].cells;
for (c=0,h=0; cells.length > 0; c++) {
- if (cells[0].className=='ricoFrozen') {
+ if (Rico.hasClass(cells[0],'ricoFrozen')) {
if (r==this.headerRowIdx) this.options.frozenColumns=c+1;
} else {
h=1;
Rico.extend(this, new Rico.TableColumnBase());
this.baseInit(liveGrid,colIdx,hdrInfo,tabIdx);
this.buffer=liveGrid.buffer;
- if (typeof(this.format.type)!='string' || this.format.EntryType=='tinyMCE') this.format.type='raw';
+ if (typeof(this.format.type)!='string' || this.format.EntryType=='tinyMCE') this.format.type='html';
if (typeof this.isNullable!='boolean') this.isNullable = /number|date/.test(this.format.type);
- this.isText = /raw|text|showTags/.test(this.format.type);
+ this.isText = /html|text/.test(this.format.type);
Rico.log(" sortable="+this.sortable+" filterable="+this.filterable+" hideable="+this.hideable+" isNullable="+this.isNullable+' isText='+this.isText);
this.fixHeaders(this.liveGrid.tableId, this.options.hdrIconsFirst);
if (this['format_'+this.format.type]) {
},
format_text: function(v) {
- if (typeof v!='string')
- return ' ';
- else
- return Rico.stripTags(v);
-},
-
-format_showTags: function(v) {
if (typeof v!='string')
return ' ';
else
},
// converts GMT/UTC to local time
-format_UTCasLocalTime: function(v) {
+format_utcaslocaltime: function(v) {
if (typeof v=='undefined' || v=='' || v==null)
return ' ';
else {
return this.buffer.getWindowCell(windowRow,this.index);
},
-getBufferAttr: function(windowRow) {
- return this.buffer.getWindowAttr(windowRow,this.index);
+getBufferStyle: function(windowRow) {
+ return this.buffer.getWindowStyle(windowRow,this.index);
},
setValue: function(windowRow,newval) {
}
var gridCell=this.cell(windowRow);
this._display(bufval,gridCell,windowRow);
- var acceptAttr=this.buffer.options.acceptAttr;
- if (acceptAttr.length==0) return;
- var bufAttr=this.getBufferAttr(windowRow);
- if (bufAttr==null) return;
- for (var k=0; k<acceptAttr.length; k++) {
- bufAttr=bufAttr['_'+acceptAttr[k]] || '';
- switch (acceptAttr[k]) {
- case 'style': gridCell.style.cssText=bufAttr; break;
- case 'class': gridCell.className=bufAttr; break;
- default: gridCell['_'+acceptAttr[k]]=bufAttr; break;
- }
+ if (this.buffer.options.acceptStyle) {
+ gridCell.style.cssText=this.getBufferStyle(windowRow);
}
}