Changeset 12834


Ignore:
Timestamp:
Sep 3, 2011, 7:10:03 AM (10 years ago)
Author:
jordan
Message:

avoid closures in Transmission.refilter, to prevent cyclic references

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/javascript/transmission.js

    r12833 r12834  
    972972
    973973
    974         onTorrentChanged: function(tor)
     974        onTorrentChanged: function(ev, tor)
    975975        {
    976976                // update our dirty fields
     
    997997                        }
    998998                        else {
    999                                 var tr = this;
    1000999                                t = tr._torrents[id] = new Torrent(o);
    10011000                                this.dirtyTorrents[id] = true;
    1002                                 $(t).bind('dataChanged',function(ev,tor) {tr.onTorrentChanged(tor);});
     1001                                $(t).bind('dataChanged',$.proxy(this.onTorrentChanged,this));
    10031002                                if(!('name' in t.fields) || !('status' in t.fields)) // missing some fields...
    10041003                                        needinfo.push(id);
     
    10381037        },
    10391038
    1040         onRowClicked: function(ev, row)
    1041         {
     1039        onRowClicked: function(ev)
     1040        {
     1041                var row = ev.currentTarget.row;
     1042
    10421043                // handle the per-row "torrent_resume" button
    10431044                if (ev.target.className === 'torrent_resume') {
     
    15121513
    15131514                // remove the dirty rows from the dom
    1514                 e = $.map(dirty_rows.slice(0), function(r) {
    1515                         return r.getElement();
    1516                 });
     1515                e = [];
     1516                for (i=0; row=dirty_rows[i]; ++i)
     1517                        e.push (row.getElement());
    15171518                $(e).detach();
    15181519
     
    15371538                                e.row = row;
    15381539                                dirty_rows.push(row);
    1539                                 var tr = this;
    1540                                 $(e).click(function(ev){tr.onRowClicked(ev,ev.currentTarget.row);});
    1541                                 $(e).dblclick(function(ev){tr.toggleInspector();});
     1540                                $(e).click($.proxy(this.onRowClicked,this));
     1541                                $(e).dblclick($.proxy(this.toggleInspector,this));
    15421542                        }
    15431543                }
     
    15871587
    15881588                // jquery's even/odd starts with 1 not 0, so invert its logic
    1589                 e = $.map(rows.slice(0), function(r){return r.getElement();});
    1590                 $(e).filter(":odd").addClass('even');
    1591                 $(e).filter(":even").removeClass('even');
     1589                for (i=0; row=rows[i]; ++i)
     1590                        $(row.getElement()).toggleClass('even',(i%2)!==0);
    15921591
    15931592                // sync gui
Note: See TracChangeset for help on using the changeset viewer.