Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
165
The ig_webdayview.js has a Problem.
posted

Hi, friends: 

I find the functions in the ig_webdayview.js has a problem.(Version 7.3.20073.38)

old source: 

//////////////////////////////////////////////////////////////////////////////////////////// 

// function1 line:156 

ig_WebDayView.prototype._on_load = function()
        {
            var x = this._lbl0 ? this._lbl0.offsetWidth : 0, h = this._tblRows ? this._tblRows.offsetHeight : 0;
            if(!this._info || (!this._onTimer && h > 0 && x > 0 && x == this._days[0].left))
                return false;
            if(!h || h == 0)
            {
                if(!this._onTimer)try
                {
                    this._onTimer = function(){return this._on_load();}
                    ig_handleTimer(this);
                }catch(ex){}
                return false;
            }
            if(this._onTimer)
                delete this._onTimer;
            this._initElem(this._element);
            this._onResize(2);
            if((x = this.getScrollPosition()) < 0)
                x = (this._row0 ? this._row0.offsetHeight : 16) * this._props[9];
            this._divScroll.scrollTop = x;  // first time
            return true;
        }

 // and line 1131:

 ig_WebDayView.prototype._loadJSON = function(json, scrollPosition)
    {
        var elem = this.getElement();
        this._initDays(json[1]);
        this._info = null;
        this._initElem(elem);
        this._onResize(1);
        this._info = ig_getWebControlById(this._props[2]);
        this._on_load();
        this._divScroll.scrollTop = scrollPosition; // second time
    }

///////////////////////////////////////////////

The Webdayview will shake if you add or update the appointment,because the scrollPosition was setted twice.

In the first time, the scrollPosition was setted in the old place.

In the senond time, the  scrollPosition was setted in the new place.

So the Webdayview shaked,

 

I think the functins should be changed as following:

////////////////////////////////////////////////////////////////

// function1 

        // Change Start
        // ig_WebDayView.prototype._on_load = function()
        ig_WebDayView.prototype._on_load = function(scrollPosition)
        // Change End
        {
            var x = this._lbl0 ? this._lbl0.offsetWidth : 0, h = this._tblRows ? this._tblRows.offsetHeight : 0;
            if(!this._info || (!this._onTimer && h > 0 && x > 0 && x == this._days[0].left))
                return false;
            if(!h || h == 0)
            {
                if(!this._onTimer)try
                {
                     // Change Start
                    // this._onTimer = function(){return this._on_load();}
                    this._onTimer = function(){return this._on_load(scrollPosition);}
                    // Change End
                    ig_handleTimer(this);
                }catch(ex){}
                return false;
            }
            if(this._onTimer)
                delete this._onTimer;
            this._initElem(this._element);
            this._onResize(2);
            if((x = this.getScrollPosition()) < 0)
                x = (this._row0 ? this._row0.offsetHeight : 16) * this._props[9];
        // Change Start
            // this._divScroll.scrollTop = x;
            if(scrollPosition != null)
            {
                this._divScroll.scrollTop = scrollPosition;
            }
            else
            {
                this._divScroll.scrollTop = x;
            }
            // Change End

            return true;
        }

// function2

ig_WebDayView.prototype._loadJSON = function(json, scrollPosition)
    {
        var elem = this.getElement();
        this._initDays(json[1]);
        this._info = null;
        this._initElem(elem);
        this._onResize(1);
        this._info = ig_getWebControlById(this._props[2]);
               
        // Change Start
        // this._on_load();
        this._on_load(scrollPosition);
        // Change End   
        this._divScroll.scrollTop = scrollPosition;
    }

 /////////////////////////////////////////////////////////////////////////

I'll appreciate it very much if the problem can be fixed in the next version.

Parents Reply Children
No Data