fixed the resizable text area with IE problem fixed the ad space with IE problem merged the 7.2.0 and 7.1.4 change logs
20 lines
No EOL
6.2 KiB
JavaScript
20 lines
No EOL
6.2 KiB
JavaScript
/*
|
|
* YUI Extensions
|
|
* Copyright(c) 2006, Jack Slocum.
|
|
*
|
|
* This code is licensed under BSD license.
|
|
* http://www.opensource.org/licenses/bsd-license.php
|
|
*/
|
|
|
|
|
|
YAHOO.ext.grid.LoadableDataModel=function(dataType){YAHOO.ext.grid.LoadableDataModel.superclass.constructor.call(this,[]);this.onLoad=new YAHOO.util.CustomEvent('load');this.onLoadException=new YAHOO.util.CustomEvent('loadException');this.events['load']=this.onLoad;this.events['beforeload']=new YAHOO.util.CustomEvent('beforeload');this.events['loadexception']=this.onLoadException;this.dataType=dataType;this.preprocessors=[];this.postprocessors=[];this.loadedPage=1;this.remoteSort=false;this.pageSize=0;this.pageUrl=null;this.baseParams={};this.paramMap={'page':'page','pageSize':'pageSize','sortColumn':'sortColumn','sortDir':'sortDir'};};YAHOO.extendX(YAHOO.ext.grid.LoadableDataModel,YAHOO.ext.grid.DefaultDataModel);YAHOO.ext.grid.LoadableDataModel.prototype.setLoadedPage=function(pageNum,userCallback){this.loadedPage=pageNum;if(typeof userCallback=='function'){userCallback();}};YAHOO.ext.grid.LoadableDataModel.prototype.isPaged=function(){return this.pageSize>0;};YAHOO.ext.grid.LoadableDataModel.prototype.getTotalRowCount=function(){return this.totalCount||this.getRowCount();};YAHOO.ext.grid.LoadableDataModel.prototype.getPageSize=function(){return this.pageSize;};YAHOO.ext.grid.LoadableDataModel.prototype.getTotalPages=function(){if(this.getPageSize()==0||this.getTotalRowCount()==0){return 1;}
|
|
return Math.ceil(this.getTotalRowCount()/this.getPageSize());};YAHOO.ext.grid.LoadableDataModel.prototype.initPaging=function(url,pageSize,baseParams){this.pageUrl=url;this.pageSize=pageSize;this.remoteSort=true;if(baseParams)this.baseParams=baseParams;};YAHOO.ext.grid.LoadableDataModel.prototype.createParams=function(pageNum,sortColumn,sortDir){var params={},map=this.paramMap;for(var key in this.baseParams){if(typeof this.baseParams[key]!='function'){params[key]=this.baseParams[key];}}
|
|
params[map['page']]=pageNum;params[map['pageSize']]=this.getPageSize();params[map['sortColumn']]=(typeof sortColumn=='undefined'?'':sortColumn);params[map['sortDir']]=sortDir||'';return params;};YAHOO.ext.grid.LoadableDataModel.prototype.loadPage=function(pageNum,callback,keepExisting){var sort=this.getSortState();var params=this.createParams(pageNum,sort.column,sort.direction);this.load(this.pageUrl,params,this.setLoadedPage.createDelegate(this,[pageNum,callback]),keepExisting?(pageNum-1)*this.pageSize:null);};YAHOO.ext.grid.LoadableDataModel.prototype.applySort=function(suppressEvent){if(!this.remoteSort){YAHOO.ext.grid.LoadableDataModel.superclass.applySort.apply(this,arguments);}else if(!suppressEvent){var sort=this.getSortState();if(sort.column){this.fireRowsSorted(sort.column,sort.direction,true);}}};YAHOO.ext.grid.LoadableDataModel.prototype.resetPaging=function(){this.loadedPage=1;};YAHOO.ext.grid.LoadableDataModel.prototype.sort=function(columnModel,columnIndex,direction,suppressEvent){if(!this.remoteSort){YAHOO.ext.grid.LoadableDataModel.superclass.sort.apply(this,arguments);}else{this.columnModel=columnModel;this.sortColumn=columnIndex;this.sortDir=direction;var params=this.createParams(this.loadedPage,columnIndex,direction);this.load(this.pageUrl,params,this.fireRowsSorted.createDelegate(this,[columnIndex,direction,true]));}}
|
|
YAHOO.ext.grid.LoadableDataModel.prototype.load=function(url,params,callback,insertIndex){this.fireEvent('beforeload');if(params&&typeof params!='string'){var buf=[];for(var key in params){if(typeof params[key]!='function'){buf.push(encodeURIComponent(key),'=',encodeURIComponent(params[key]),'&');}}
|
|
delete buf[buf.length-1];params=buf.join('');}
|
|
var cb={success:this.processResponse,failure:this.processException,scope:this,argument:{callback:callback,insertIndex:insertIndex}};var method=params?'POST':'GET';YAHOO.util.Connect.asyncRequest(method,url,cb,params);};YAHOO.ext.grid.LoadableDataModel.prototype.processResponse=function(response){var cb=response.argument.callback;var keepExisting=(typeof response.argument.insertIndex=='number');var insertIndex=response.argument.insertIndex;switch(this.dataType){case YAHOO.ext.grid.LoadableDataModel.XML:this.loadData(response.responseXML,cb,keepExisting,insertIndex);break;case YAHOO.ext.grid.LoadableDataModel.JSON:var rtext=response.responseText;try{while(rtext.substring(0,1)==" "){rtext=rtext.substring(1,rtext.length);}
|
|
if(rtext.indexOf("{")<0){throw"Invalid JSON response";}
|
|
if(rtext.indexOf("{}")===0){this.loadData({},response.argument.callback);return;}
|
|
var jsonObjRaw=eval("("+rtext+")");if(!jsonObjRaw){throw"Error evaling JSON response";}
|
|
this.loadData(jsonObjRaw,cb,keepExisting,insertIndex);}catch(e){this.fireLoadException(e,response);if(typeof callback=='function'){callback(this,false);}}
|
|
break;case YAHOO.ext.grid.LoadableDataModel.TEXT:this.loadData(response.responseText,cb,keepExisting,insertIndex);break;};};YAHOO.ext.grid.LoadableDataModel.prototype.processException=function(response){this.fireLoadException(null,response);if(typeof response.argument.callback=='function'){response.argument.callback(this,false);}};YAHOO.ext.grid.LoadableDataModel.prototype.fireLoadException=function(e,responseObj){this.onLoadException.fireDirect(this,e,responseObj);};YAHOO.ext.grid.LoadableDataModel.prototype.fireLoadEvent=function(){this.fireEvent('load',this.loadedPage,this.getTotalPages());};YAHOO.ext.grid.LoadableDataModel.prototype.addPreprocessor=function(columnIndex,fn){this.preprocessors[columnIndex]=fn;};YAHOO.ext.grid.LoadableDataModel.prototype.getPreprocessor=function(columnIndex){return this.preprocessors[columnIndex];};YAHOO.ext.grid.LoadableDataModel.prototype.removePreprocessor=function(columnIndex){this.preprocessors[columnIndex]=null;};YAHOO.ext.grid.LoadableDataModel.prototype.addPostprocessor=function(columnIndex,fn){this.postprocessors[columnIndex]=fn;};YAHOO.ext.grid.LoadableDataModel.prototype.getPostprocessor=function(columnIndex){return this.postprocessors[columnIndex];};YAHOO.ext.grid.LoadableDataModel.prototype.removePostprocessor=function(columnIndex){this.postprocessors[columnIndex]=null;};YAHOO.ext.grid.LoadableDataModel.prototype.loadData=function(data,callback,keepExisting,insertIndex){};YAHOO.ext.grid.LoadableDataModel.XML='xml';YAHOO.ext.grid.LoadableDataModel.JSON='json';YAHOO.ext.grid.LoadableDataModel.TEXT='text'; |