1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-23 16:52:26 +02:00
TableFilter/dist/TF_Modules/tf_populateSelect.js
2015-03-06 19:49:30 +11:00

1 line
4 KiB
JavaScript

function tf_CreateOpt(e,t,n){var r=n?!0:!1,i=r?tf_CreateElm("option",["value",t],["selected","true"]):tf_CreateElm("option",["value",t]);return i.appendChild(tf_CreateText(e)),i}TF.prototype.PopulateSelect=function(e,t,n){this.EvtManager(this.Evt.name.populateselect,{slcIndex:e,slcExternal:t,slcId:n})},TF.prototype._PopulateSelect=function(e,t,n,r){function k(){if(a=="innerhtml")l+='<option value="">'+o.displayAllText+"</option>";else{var e=tf_CreateOpt(o.enableSlcResetFilter?o.displayAllText:"","");o.enableSlcResetFilter||(e.style.display="none"),s.appendChild(e);if(o.enableEmptyOption){var t=tf_CreateOpt(o.emptyText,o.emOperator);s.appendChild(t)}if(o.enableNonEmptyOption){var n=tf_CreateOpt(o.nonEmptyText,o.nmOperator);s.appendChild(n)}}}function L(){var n=s.value;s.innerHTML="",k();for(var r=0;r<f.length;r++){if(f[r]=="")continue;var i=f[r],u=h?p[r]:f[r],c=!1;t&&o.disableExcludedOptions&&g.tf_Has(i.tf_MatchCase(o.matchCase),o.matchCase)&&(c=!0);if(a=="innerhtml"){var d="";o.fillSlcOnDemand&&n==f[r]&&(d='selected="selected"'),l+='<option value="'+i+'" '+d+(c?'disabled="disabled"':"")+">"+u+"</option>"}else{var y;o.fillSlcOnDemand&&n==f[r]&&o["col"+e]==o.fltTypeSlc?y=tf_CreateOpt(u,i,!0):o["col"+e]!=o.fltTypeMulti?y=tf_CreateOpt(u,i,v[e]!=" "&&i==v[e]?!0:!1):y=tf_CreateOpt(u,i,m.tf_Has(f[r].tf_MatchCase(o.matchCase),o.matchCase)||m.toString().indexOf(i)!=-1?!0:!1),c&&(y.disabled=!0),s.appendChild(y)}}a=="innerhtml"&&(s.innerHTML+=l),s.setAttribute("filled","1")}n=n==undefined?!1:n;var i=this.fltIds[e];if(tf_Id(i)==null&&!n)return;if(tf_Id(r)==null&&n)return;var s=n?tf_Id(r):tf_Id(i),o=this,u=this.tbl.rows,a=this.slcFillingMethod.tf_LCase(),f=[],l="",c,h=this.hasCustomSlcOptions&&this.customSlcOptions.cols.tf_Has(e),p=[],d;t&&this.activeFilterId&&(d=this.activeFilterId.split("_")[0],d=d.split(this.prfxFlt)[1]);var v=[],m=[];this.rememberGridValues&&(v=tf_CookieValueArray(this.fltsValuesCookie,this.separator),v!=undefined&&v.toString().tf_Trim()!=""&&(this.hasCustomSlcOptions&&this.customSlcOptions.cols.tf_Has(e)?m.push(v[e]):m=v[e].split(" "+o.orOperator+" ")));var g=null,y=null;t&&this.disableExcludedOptions&&(g=[],y=[]);for(var b=this.refRow;b<this.nbRows;b++){if(this.hasVisibleRows&&this.visibleRows.tf_Has(b)&&!this.paging)continue;var w=u[b].cells,E=w.length;if(E==this.nbCells&&!h)for(var S=0;S<E;S++)if(e==S&&(!t||t&&this.disableExcludedOptions)||e==S&&t&&(u[b].style.display==""&&!this.paging||this.paging&&(!this.validRowsIndex||this.validRowsIndex&&this.validRowsIndex.tf_Has(b))&&(d==undefined||d==e||d!=e&&this.validRowsIndex.tf_Has(b)))){var x=this.GetCellData(S,w[S]),T=x.tf_MatchCase(this.matchCase);f.tf_Has(T,this.matchCase)||f.push(x),t&&this.disableExcludedOptions&&(y[S]||(y[S]=this.GetFilteredDataCol(S)),!y[S].tf_Has(T,this.matchCase)&&!g.tf_Has(T,this.matchCase)&&!this.isFirstLoad&&g.push(x))}}if(h){var N=this.__getCustomValues(e);f=N[0],p=N[1]}this.sortSlc&&!h&&(this.matchCase?(f.sort(),g&&g.sort()):(f.sort(tf_IgnoreCaseSort),g&&g.sort(tf_IgnoreCaseSort)));if(this.sortNumAsc&&this.sortNumAsc.tf_Has(e))try{f.sort(tf_NumSortAsc),g&&g.sort(tf_NumSortAsc),h&&p.sort(tf_NumSortAsc)}catch(C){f.sort(),g&&g.sort(),h&&p.sort()}if(this.sortNumDesc&&this.sortNumDesc.tf_Has(e))try{f.sort(tf_NumSortDesc),g&&g.sort(tf_NumSortDesc),h&&p.sort(tf_NumSortDesc)}catch(C){f.sort(),g&&g.sort(),h&&p.sort()}L()},TF.prototype.__deferMultipleSelection=function(e,t,n){if(e.nodeName.tf_LCase()!="select")return;var r=n==undefined?!1:n,i=this;window.setTimeout(function(){e.options[0].selected=!1,e.options[t].value==""?e.options[t].selected=!1:e.options[t].selected=!0,r&&i.Filter()},.1)},TF.prototype.__getCustomValues=function(e){if(e==undefined)return;var t=this.hasCustomSlcOptions&&this.customSlcOptions.cols.tf_Has(e);if(!t)return;var n=[],r=[],i=this.customSlcOptions.cols.tf_IndexByValue(e),s=this.customSlcOptions.values[i],o=this.customSlcOptions.texts[i],u=this.customSlcOptions.sorts[i];for(var a=0;a<s.length;a++)r.push(s[a]),o[a]!=undefined?n.push(o[a]):n.push(s[a]);return u&&(r.sort(),n.sort()),[r,n]};