Changeset 8487


Ignore:
Timestamp:
May 23, 2009, 2:28:04 AM (14 years ago)
Author:
kjg
Message:

(trunk web) don't count on 'transmission' being defined

File:
1 edited

Legend:

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

    r8486 r8487  
    4646                // Set up user events
    4747                var tr = this;
    48                 $('#pause_all_link').bind('click', function(){ tr.stopAllClicked(); });
    49                 $('#resume_all_link').bind('click', this.startAllClicked);
    50                 $('#pause_selected_link').bind('click', this.stopSelectedClicked );
    51                 $('#resume_selected_link').bind('click', this.startSelectedClicked);
    52                 $('#remove_link').bind('click',  this.removeClicked);
    53                 $('#removedata_link').bind('click',  this.removeDataClicked);
    54                 $('#filter_all_link').parent().bind('click', this.showAllClicked);
    55                 $('#filter_downloading_link').parent().bind('click', this.showDownloadingClicked);
    56                 $('#filter_seeding_link').parent().bind('click', this.showSeedingClicked);
    57                 $('#filter_paused_link').parent().bind('click', this.showPausedClicked);
    58                 $('#prefs_save_button').bind('click', this.savePrefsClicked);
    59                 $('#prefs_cancel_button').bind('click', this.cancelPrefsClicked);
    60                 $('#inspector_tab_info').bind('click', this.inspectorTabClicked);
    61                 $('#inspector_tab_activity').bind('click', this.inspectorTabClicked);
    62                 $('#inspector_tab_files').bind('click', this.inspectorTabClicked);
     48                $('#pause_all_link').bind('click', function(e){ tr.stopAllClicked(e); });
     49                $('#resume_all_link').bind('click', function(e){ tr.startAllClicked(e); });
     50                $('#pause_selected_link').bind('click', function(e){ tr.stopSelectedClicked(e); } );
     51                $('#resume_selected_link').bind('click', function(e){ tr.startSelectedClicked(e); });
     52                $('#remove_link').bind('click',  function(e){ tr.removeClicked(e); });
     53                $('#removedata_link').bind('click',  function(e){ tr.removeDataClicked(e); });
     54                $('#filter_all_link').parent().bind('click', function(e){ tr.showAllClicked(e); });
     55                $('#filter_downloading_link').parent().bind('click', function(e){ tr.showDownloadingClicked(e); });
     56                $('#filter_seeding_link').parent().bind('click', function(e){ tr.showSeedingClicked(e); });
     57                $('#filter_paused_link').parent().bind('click', function(e){ tr.showPausedClicked(e); });
     58                $('#prefs_save_button').bind('click', function(e) { tr.savePrefsClicked(e); return false;});
     59                $('#prefs_cancel_button').bind('click', function(e){ tr.cancelPrefsClicked(e); return false; });
     60                $('#inspector_tab_info').bind('click', function(e){ tr.inspectorTabClicked(e); });
     61                $('#inspector_tab_activity').bind('click', function(e){ tr.inspectorTabClicked(e); });
     62                $('#inspector_tab_files').bind('click', function(e){ tr.inspectorTabClicked(e); });
    6363                if (iPhone) {
    64                         $('#torrent_inspector').bind('click', this.hideInspector);
    65                         $('#preferences_link').bind('click', this.releaseClutchPreferencesButton);
     64                        $('#torrent_inspector').bind('click', function(e){ tr.hideInspector(); });
     65                        $('#preferences_link').bind('click', function(e){ tr.releaseClutchPreferencesButton(e); });
    6666                } else {
    67                         $(document).bind('keydown',  this.keyDown);
    68                         $('#torrent_container').bind('click', function(){ tr.deselectAll( true ); });
    69                         $('#open_link').bind('click', this.openTorrentClicked);
    70                         $('#filter_toggle_link').bind('click', this.toggleFilterClicked);
    71                         $('#inspector_link').bind('click', this.toggleInspectorClicked);
    72                         $('#upload_confirm_button').bind('click', this.confirmUploadClicked);
    73                         $('#upload_cancel_button').bind('click', this.cancelUploadClicked);
     67                        $(document).bind('keydown',  function(e){ tr.keyDown(e); });
     68                        $('#torrent_container').bind('click', function(e){ tr.deselectAll( true ); });
     69                        $('#open_link').bind('click', function(e){ tr.openTorrentClicked(e); });
     70                        $('#filter_toggle_link').bind('click', function(e){ tr.toggleFilterClicked(e); });
     71                        $('#inspector_link').bind('click', function(e){ tr.toggleInspectorClicked(e); });
     72                        $('#upload_confirm_button').bind('click', function(e){ tr.confirmUploadClicked(e); return false;});
     73                        $('#upload_cancel_button').bind('click', function(e){ tr.cancelUploadClicked(e); return false; });
    7474               
    7575                        this.setupSearchBox();
     
    201201
    202202        contextStopSelected: function( ) {
    203                 transmission.stopSelectedTorrents( );
     203                this.stopSelectedTorrents( );
    204204        },
    205205        contextStartSelected: function( ) {
    206                 transmission.startSelectedTorrents( );
     206                this.startSelectedTorrents( );
    207207        },
    208208        contextRemoveSelected: function( ) {
    209                 transmission.removeSelectedTorrents( );
     209                this.removeSelectedTorrents( );
    210210        },
    211211        contextRemoveDataSelected: function( ) {
    212                 transmission.removeSelectedTorrentsAndData( );
     212                this.removeSelectedTorrentsAndData( );
    213213        },
    214214        contextVerifySelected: function( ) {
    215                 transmission.verifySelectedTorrents( );
     215                this.verifySelectedTorrents( );
    216216        },
    217217        contextToggleInspector: function( ) {
    218                 transmission.toggleInspector( );
     218                this.toggleInspector( );
    219219        },
    220220        contextSelectAll: function( ) {
    221                 transmission.selectAll( true );
     221                this.selectAll( true );
    222222        },
    223223        contextDeselectAll: function( ) {
    224                 transmission.deselectAll( true );
     224                this.deselectAll( true );
    225225        },
    226226   
     
    229229         */
    230230        createContextMenu: function() {
    231                
     231                var tr = this;
    232232                var bindings = {
    233                         context_pause_selected:    this.contextStopSelected,
    234                         context_resume_selected:   this.contextStartSelected,
    235                         context_remove:            this.contextRemoveSelected,
    236                         context_removedata:        this.contextRemoveDataSelected,
    237                         context_verify:            this.contextVerifySelected,
    238                         context_toggle_inspector:  this.contextToggleInspector,
    239                         context_select_all:        this.contextSelectAll,
    240                         context_deselect_all:      this.contextDeselectAll
     233                        context_pause_selected:    function(e){ tr.contextStopSelected(e); },
     234                        context_resume_selected:   function(e){ tr.contextStartSelected(e); },
     235                        context_remove:            function(e){ tr.contextRemoveSelected(e); },
     236                        context_removedata:        function(e){ tr.contextRemoveDataSelected(e); },
     237                        context_verify:            function(e){ tr.contextVerifySelected(e); },
     238                        context_toggle_inspector:  function(e){ tr.contextToggleInspector(e); },
     239                        context_select_all:        function(e){ tr.contextSelectAll(e); },
     240                        context_deselect_all:      function(e){ tr.contextDeselectAll(e); }
    241241                };
    242242               
     
    259259         */
    260260        createSettingsMenu: function() {
     261                var tr = this;
    261262                $('#settings_menu').transMenu({
    262263                        selected_char: '✔',
    263264                        direction: 'up',
    264                         onClick: this.processSettingsMenuEvent
     265                        onClick: function(e){ tr.processSettingsMenuEvent(e); }
    265266                });
    266267               
     
    390391
    391392        selectAll: function( doUpdate ) {
    392                 var tr = transmission;
     393                var tr = this;
    393394                for( var i=0, len=tr._rows.length; i<len; ++i )
    394395                        tr.selectElement( tr._rows[i] );
     
    397398        },
    398399        deselectAll: function( doUpdate ) {
    399                 var tr = transmission;
     400                var tr = this;
    400401                for( var i=0, len=tr._rows.length; i<len; ++i )
    401402                        tr.deselectElement( tr._rows[i] );
     
    446447        keyDown: function(event)
    447448        {
    448                 var tr = transmission;
     449                var tr = this;
    449450                var sel = tr.getSelectedTorrents( );
    450451                var rows = tr.getVisibleRows( );
     
    478479
    479480        stopAllClicked: function( event ) {
    480                 var tr = transmission;
     481                var tr = this;
    481482                if( tr.isButtonEnabled( event ) ) {
    482483                        tr.stopAllTorrents( );
     
    486487
    487488        stopSelectedClicked: function( event ) {
    488                 var tr = transmission;
     489                var tr = this;
    489490                if( tr.isButtonEnabled( event ) ) {
    490491                        tr.stopSelectedTorrents( );
     
    494495
    495496        startAllClicked: function( event ) {
    496                 var tr = transmission;
     497                var tr = this;
    497498                if( tr.isButtonEnabled( event ) ) {
    498499                        tr.startAllTorrents( );
     
    502503
    503504        startSelectedClicked: function( event ) {
    504                 var tr = transmission;
     505                var tr = this;
    505506                if( tr.isButtonEnabled( event ) ) {
    506507                        tr.startSelectedTorrents( );
     
    510511
    511512        openTorrentClicked: function( event ) {
    512                 var tr = transmission;
     513                var tr = this;
    513514                if( tr.isButtonEnabled( event ) ) {
    514515                        $('body').addClass('open_showing');
     
    526527                        $('#upload_container').hide();
    527528                }
    528                 transmission.updateButtonStates();
     529                this.updateButtonStates();
    529530        },
    530531
    531532        cancelUploadClicked: function(event) {
    532                 transmission.hideUploadDialog( );
     533                this.hideUploadDialog( );
    533534        },
    534535
    535536        confirmUploadClicked: function(event) {
    536                 transmission.uploadTorrentFile( true );
    537                 transmission.hideUploadDialog( );
     537                this.uploadTorrentFile( true );
     538                this.hideUploadDialog( );
    538539        },
    539540
    540541        cancelPrefsClicked: function(event) {
    541                 transmission.hidePrefsDialog( );
     542                this.hidePrefsDialog( );
    542543        },
    543544
     
    545546        {
    546547                // handle the clutch prefs locally
    547                 var tr = transmission;
     548                var tr = this;
    548549                tr.setPref( Prefs._AutoStart, $('#prefs_form #auto_start')[0].checked );
    549550                var rate = parseInt( $('#prefs_form #refresh_rate')[0].value );
     
    571572
    572573        removeClicked: function( event ) {     
    573                 var tr = transmission;
     574                var tr = this;
    574575                if( tr.isButtonEnabled( event ) ) {
    575576                        tr.removeSelectedTorrents( );
     
    579580
    580581        removeDataClicked: function( event ) { 
    581                 var tr = transmission;
     582                var tr = this;
    582583                if( tr.isButtonEnabled( event ) ) {
    583584                        tr.removeSelectedTorrentsAndData( );
     
    587588
    588589        toggleInspectorClicked: function( event ) {
    589                 var tr = transmission;
     590                var tr = this;
    590591                if( tr.isButtonEnabled( event ) )
    591592                        tr.toggleInspector( );
     
    610611                        }
    611612                }
    612                 transmission.hideiPhoneAddressbar();
     613                this.hideiPhoneAddressbar();
    613614        },
    614615       
    615616        toggleFilterClicked: function(event) {
    616                 if (transmission.isButtonEnabled(event))
    617                         transmission.toggleFilter();
     617                if (this.isButtonEnabled(event))
     618                        this.toggleFilter();
    618619        },
    619620        setFilter: function( mode )
     
    635636        },
    636637        showAllClicked: function( event ) {     
    637                 transmission.setFilter( Prefs._FilterAll );
     638                this.setFilter( Prefs._FilterAll );
    638639        },
    639640        showDownloadingClicked: function( event ) {
    640                 transmission.setFilter( Prefs._FilterDownloading );
     641                this.setFilter( Prefs._FilterDownloading );
    641642        },
    642643        showSeedingClicked: function(event) {   
    643                 transmission.setFilter( Prefs._FilterSeeding );
     644                this.setFilter( Prefs._FilterSeeding );
    644645        },
    645646        showPausedClicked: function(event) {
    646                 transmission.setFilter( Prefs._FilterPaused );
     647                this.setFilter( Prefs._FilterPaused );
    647648        },
    648649
     
    686687                $('body').addClass('prefs_showing');
    687688                $('#prefs_container').show();
    688                 transmission.hideiPhoneAddressbar();
     689                this.hideiPhoneAddressbar();
    689690                if( Safari3 )
    690691                        setTimeout("$('div#prefs_container div.dialog_window').css('top', '0px');",10);
     
    696697                $('body.prefs_showing').removeClass('prefs_showing');
    697698                if (iPhone) {
    698                         transmission.hideiPhoneAddressbar();
     699                        this.hideiPhoneAddressbar();
    699700                        $('#prefs_container').hide();
    700701                } else if (Safari3) {
     
    763764         */
    764765        processSettingsMenuEvent: function(event) {
    765                 // Don't use 'this' in the function to avoid confusion (this != transmission instance)
    766                 var element = this;
     766                var tr = this;
     767                var $element = $(event.target);
    767768               
    768769                // Figure out which menu has been clicked
    769                 switch ($(element).parent()[0].id) {
     770                switch ($element.parent()[0].id) {
    770771                       
    771772                        // Display the preferences dialog
    772773                        case 'footer_super_menu':
    773                                 if ($(element)[0].id == 'preferences') {
     774                                if ($element[0].id == 'preferences') {
    774775                                        $('div#prefs_container div#pref_error').hide();
    775776                                        $('div#prefs_container h2.dialog_heading').show();
    776                                         transmission.showPrefsDialog( );
     777                                        tr.showPrefsDialog( );
    777778                                }
    778779                                break;
     
    781782                        case 'footer_download_rate_menu':
    782783                                var args = { };
    783                                 var rate = (this.innerHTML).replace(/[^0-9]/ig, '');
    784                                 if ($(this).is('#unlimited_download_rate')) {
    785                                         $(this).deselectMenuSiblings().selectMenuItem();
     784                                var rate = ($element[0].innerHTML).replace(/[^0-9]/ig, '');
     785                                if ($element.is('#unlimited_download_rate')) {
     786                                        $element.deselectMenuSiblings().selectMenuItem();
    786787                                        args[RPC._DownSpeedLimited] = false;
    787788                                } else {
     
    793794                                }
    794795                                $('div.preference input#limit_download')[0].checked = args[RPC._DownSpeedLimited];
    795                                 transmission.remote.savePrefs( args );
     796                                tr.remote.savePrefs( args );
    796797                                break;
    797798                       
     
    799800                        case 'footer_upload_rate_menu':
    800801                                var args = { };
    801                                 var rate = (this.innerHTML).replace(/[^0-9]/ig, '');
    802                                 if ($(this).is('#unlimited_upload_rate')) {
    803                                         $(this).deselectMenuSiblings().selectMenuItem();
     802                                var rate = ($element[0].innerHTML).replace(/[^0-9]/ig, '');
     803                                if ($element.is('#unlimited_upload_rate')) {
     804                                        $element.deselectMenuSiblings().selectMenuItem();
    804805                                        args[RPC._UpSpeedLimited] = false;
    805806                                } else {
     
    811812                                }
    812813                                $('div.preference input#limit_upload')[0].checked = args[RPC._UpSpeedLimited];
    813                                 transmission.remote.savePrefs( args );
     814                                tr.remote.savePrefs( args );
    814815                                break;
    815816                       
     
    818819
    819820                                // The 'reverse sort' option state can be toggled independently of the other options
    820                                 if ($(this).is('#reverse_sort_order')) {
     821                                if ($element.is('#reverse_sort_order')) {
    821822                                        var dir;
    822                                         if ($(this).menuItemIsSelected()) {
    823                                                 $(this).deselectMenuItem();
     823                                        if ($element.menuItemIsSelected()) {
     824                                                $element.deselectMenuItem();
    824825                                                dir = Prefs._SortAscending;
    825826                                        } else {
    826                                                 $(this).selectMenuItem();
     827                                                $element.selectMenuItem();
    827828                                                dir = Prefs._SortDescending;
    828829                                        }
    829                                         transmission.setSortDirection( dir );
     830                                        tr.setSortDirection( dir );
    830831
    831832                                // Otherwise, deselect all other options (except reverse-sort) and select this one
    832833                                } else {
    833                                         $(this).parent().find('span.selected').each( function() {
    834                                                 if (! $(this).parent().is('#reverse_sort_order')) {
    835                                                         $(this).parent().deselectMenuItem();
     834                                        $element.parent().find('span.selected').each( function() {
     835                                                if (! $element.parent().is('#reverse_sort_order')) {
     836                                                        $element.parent().deselectMenuItem();
    836837                                                }
    837838                                        });
    838                                         $(this).selectMenuItem();
    839                                         var method = $(this)[0].id.replace(/sort_by_/, '');
    840                                         transmission.setSortMethod( method );
     839                                        $element.selectMenuItem();
     840                                        var method = $element[0].id.replace(/sort_by_/, '');
     841                                        tr.setSortMethod( method );
    841842                                }
    842843                                break;
     
    859860                var torrents = this.getSelectedTorrents( );
    860861                if( !torrents.length && iPhone ) {
    861                         transmission.hideInspector();
     862                        this.hideInspector();
    862863                        return;
    863864                }
     
    10551056                        transmsision.deselectAll( );
    10561057                        $('body.inspector_showing').removeClass('inspector_showing');
    1057                         transmission.hideiPhoneAddressbar();
     1058                        this.hideiPhoneAddressbar();
    10581059                } else {
    10591060                        $('#torrent_filter_bar')[0].style.right = '0px';
Note: See TracChangeset for help on using the changeset viewer.