Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Firefox browser hangs on opening workbasket instances on portal

SA-98189

Summary



The Firefox browser hangs while opening workbasket instances on the portal.


Error Messages



Json.parse errors.


Steps to Reproduce

  1. Open a Firefox browser session
  2. Open the Case Manager portal after logging in to the Pega application
  3. In the work queue list, click a workbasket definition to see its instances on the list. The Firefox browser hangs


Root Cause



This is due to an issue with parsing the Turkish characters in the change tracker response specifically for Firefox browser.


Resolution

Perform the following local-change:

Add the below script in the UserWorkForm:

<script>

pega.ui.ChangeTracker.prototype.parseForChangeTrackerDiv = function(newStream, declareExpression) {
    var ctJSON;
    var searchStartsAt = 0;
    if(!declareExpression) {
        var isChromeOrSafariOrFF = (navigator.userAgent.indexOf("Chrome/") >= 0) || (navigator.userAgent.indexOf("Safari/")>= 0) || (navigator.userAgent.indexOf("Firefox/")>= 0) ? true : false;
        if(isChromeOrSafariOrFF)
        {
            String.prototype.changeToLower = function(){
                            var string = this;
                            var letters = { "İ": "i", "Ş": "ş", "Ğ": "ğ", "Ü": "ü", "Ö": "ö", "Ç": "ç" };
                            string = string.replace(/(([İŞĞÜÇÖ]))/g, function(letter){ return letters[letter]; })
                            return string.toLowerCase();
                            }
           var lowerCaseNewStream = newStream.changeToLower();
        }
        else
        var lowerCaseNewStream = newStream.toLowerCase();
            if(pega.util.Event.isIE) {
                var ctDivBegin1 = "<div style=\"display: none\" id=\"ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + "\">";
            } else {
                var ctDivBegin1 = "<div style=\"display:none\" id=\"ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + "\">";
            }

            while(true) {
                var ctDivBegin = "<div style='display:none' id='ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + "'>";
                var len = ctDivBegin.length;
                var ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin, searchStartsAt);
                if(ctDivStartsAt < 0) {
                    ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
                    len = ctDivBegin1.length;
                    if(ctDivStartsAt < 0) {
                        ctDivBegin1 = "<div style=\"display: none\" id=ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + ">";
                        len = ctDivBegin1.length;
                        ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
                        if(ctDivStartsAt < 0){
                            ctDivBegin1 = "<div id=ajaxct_" + this.id +"_"+this.threadName.toLowerCase() + " style=\"display: none\">";
                            len = ctDivBegin1.length;
                            ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
                            if(ctDivStartsAt < 0){
                                ctDivBegin1 = '<div id="ajaxct_' + this.id +"_"+this.threadName.toLowerCase() + '" style="display: none;">';
                                len = ctDivBegin1.length;
                                ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
                                if(ctDivStartsAt < 0){
                                    ctDivBegin1 = '<div style="display: none;" id="ajaxct_'+ this.id +"_"+this.threadName.toLowerCase() +'">';
                                    len = ctDivBegin1.length;
                                    ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
                                      if(ctDivStartsAt < 0){
                                        ctDivBegin1 = '<div id="ajaxct_' + this.id +"_"+this.threadName.toLowerCase() + '" style="display:none">';
                                        len = ctDivBegin1.length;
                                        ctDivStartsAt = lowerCaseNewStream.indexOf(ctDivBegin1, searchStartsAt);
                                    }
                                }
                            }
                        }
                        if(ctDivStartsAt < 0) return;
                    }
                }
                var ctDivEndsAt = lowerCaseNewStream.indexOf("</div>", ctDivStartsAt);
                if(ctDivEndsAt < ctDivStartsAt) {
                    return;
                }
                ctJSON = newStream.substring(ctDivStartsAt + len, ctDivEndsAt);
                this.mergeChangesToMasterList(ctJSON);
                searchStartsAt = ctDivEndsAt;
            }
    } else {
        ctJSON = newStream;
        this.mergeChangesToMasterList(ctJSON);
        if(this.changedPropertiesList.length > 0) {
            pega.u.d.evaluateClientConditions('TCL');
        }
    }
}

</script>



 

Suggest Edit

Published January 23, 2020 - Updated December 2, 2021

Did you find this content helpful? Yes No

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us