Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Patch for 8.0 and 70rc2: Bad Print HTML on buttons and section headers

    This patch code resolves an issue with SmartClient versions 7.0rc2 and 8.0 whereby generated HTML for Button and SectionHeader could be incomplete in some cases. This typically had no user-visible impact except when putting together HTML for the print-view of these components.

    Code:
    if (window.isc != null) {
        
        if (isc.version.startsWith("7.0rc2/") || 
            isc.version.startsWith("SC_SNAPSHOT-2011-01-05/")) 
        {
            
            isc.Button.addProperties({
                fillInCell:function (_1, _2) {
                    var _3 = this.isRTL();
                    var _4 = this.getTitleHTML();
                    if (!this.icon) {
                        if (isc.Browser.isMoz) {
                            var _5 = this.reliableMinHeight;
                            _1[_2] = _5 ? "<div>" : null;
                            _1[_2 + 1] = _4;
                            _1[_2 + 2] = _5 ? "</div>" : null;
                            this.$5c(_1, _2 + 3);
                        } else {
                            _1[_2] = _4;
                            this.$5c(_1, _2 + 1);
                        }
                        return;
                    }
                    var _6 = this.iconOrientation != this.$o1, _7 = this.$5d();
                    if (this.noIconSubtable) {
                        var _8 = isc.Canvas.spacerHTML(this.iconSpacing, 1);
                        _1[_2] = _6 ? isc.SB.concat(_7, _8, _4) : isc.SB.concat(_4, _8, _7);
                        this.$5c(_1, _2 + 1);
                        return;
                    }
                    var _9 = this.$5b(), _10;
                    if (_9) {
                        _10 = (this.iconWidth ? this.iconWidth : this.iconSize) + this.iconSpacing;
                    }
                    _1[_2] = _9 ? this.$4i : this.$4h;
                    var _11 = this.isPrinting ? this.getPrintStyleName() : this.titleStyle ? this.titleStyle + (this.isDisabled() ? isc.StatefulCanvas.STATE_DISABLED : isc.emptyString) : this.getStateName();
                    if (_6) {
                        _1[++_2] = this.$4n;
                        _1[++_2] = _11;
                        _1[++_2] = this.$4o;
                        _1[++_2] = !_3 ? this.$4j : this.$4k;
                        _1[++_2] = this.iconSpacing;
                        if (_9) {
                            _1[++_2] = "px;width:";
                            _1[++_2] = _10;
                        }
                        _1[++_2] = this.$4l;
                        _1[++_2] = _7;
                        _1[++_2] = this.$4m;
                        _1[++_2] = this.$4n;
                        _1[++_2] = _11;
                        _1[++_2] = this.$4o;
                        if (_9) {
                            _1[++_2] = "' align='";
                            _1[++_2] = this.align;
                        }
                        _1[++_2] = this.wrap ? this.$4p : this.$4q;
                        _1[++_2] = _4;
                    } else {
                        _1[++_2] = this.$4n;
                        _1[++_2] = _11;
                        _1[++_2] = this.$4o;
                        if (_9) {
                            _1[++_2] = "' align='";
                            _1[++_2] = this.align;
                        }
                        _1[++_2] = this.wrap ? this.$4p : this.$4q;
                        _1[++_2] = _4;
                        _1[++_2] = this.$4m;
                        _1[++_2] = this.$4n;
                        _1[++_2] = _11;
                        _1[++_2] = this.$4o;
                        _1[++_2] = !_3 ? this.$4k : this.$4j;
                        _1[++_2] = this.iconSpacing;
                        if (_9) {
                            _1[++_2] = "px;width:";
                            _1[++_2] = _10;
                        }
                        _1[++_2] = this.$4l;
                        _1[++_2] = _7;
                    }
                    _1[++_2] = this.$4r;
                    this.$5c(_1, _2+1);
                }
            });
        
        } else {
            isc.Log.logWarn("Patch code for SmartClient versions 7.0rc2 and 8.0 [full version string: 'SC_SNAPSHOT-2011-01-05/'] " +
                "included in this application. You are running SmartClient version " +
                isc.version + ". The patch code will have no effect in this application and should be removed.");
        }
    }
Working...
X