Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

Patch needed for addImplicitSort

$
0
0
Hello,

I'm evaluating the new sortByGroupFirst method and found a bug and developed a patch.

The issue manifests when you load a saved view state that is grouped by a custom formula. Then, you switch to a new view state where that custom formula is not a known field. A simple null check in addImplicitSort seems to correct this problem.

Can you add this null check on your side?


Code:

        //9/15/14..patch for missing null check on implicitSort
        if (window.isc &&  (isc.version.startsWith("v10.0")  )){
               
                isc.ListGrid.getPrototype().addProperties({
                        $1444:function isc_ListGrid__addImplicitSort(_1){
                                var _2=false,_3=this.getGroupByFields()||[],_4=isc.shallowClone(_1);
                                if(this.sortByGroupFirst&&!_3.isEmpty()){
                                        this.logInfo("Evaluating implicit sort for grouping "+isc.echoAll(_3),"sorting");
                                        var _5=_1.isEmpty()?"ascending":_1[0].direction;this.$1445=this.groupSortDirection||this.$1445||_5;
                                       
                                        for(var i=0;i<_3.length;i++){
                                                var _7=_3[i];
                                                if(_1.find("property",_7)){
                                                        this.logInfo("Existing sort specifier found for property '"+_7+"'.  Skipping.","sorting");
                                                        continue
                                                }

                                                var _8=this.getUnderlyingField(_7);
                                               
                                                //9/14/14
                                                //ignore if field can't be found
                                                //this happens when switching between a view state grouped by a custom formula and
                                                //another view where that custom formula is not a defined field
                                                if(_8==null){
                                                        continue;
                                                }
                                                var _9={sortedImplicitly:true,context:this,normalizer:this.$1446(_8),property:_7,direction:this.$1445}

                                                _4.addAt(_9,i);_2=true}
                                        }

                                        if(_2){
                                                this.logInfo("Returning augmented sort specifiers"+isc.echoAll(_4),"sorting")
                                        }else{
                                                this.logInfo("Returning unmodified sort specifiers"+isc.echoAll(_4),"sorting")
                                        }
                                        return _4
                        }
                }
               
        }


Viewing all articles
Browse latest Browse all 4756

Trending Articles