]> granicus.if.org Git - transmission/commitdiff
#5894: Get rid of eval() in JS code (patch by Ancient; 2nd part)
authorMike Gelfand <mikedld@mikedld.com>
Thu, 23 Apr 2015 19:30:40 +0000 (19:30 +0000)
committerMike Gelfand <mikedld@mikedld.com>
Thu, 23 Apr 2015 19:30:40 +0000 (19:30 +0000)
web/javascript/dialog.js
web/javascript/remote.js
web/javascript/transmission.js

index bdff4c30c762593b05d17a8814bd0eabfdb34091..6a9b41219852653374e796a56544d80dcfedfc8d 100644 (file)
@@ -24,8 +24,7 @@ Dialog.prototype = {
                this._message = $('#dialog_message');
                this._cancel_button = $('#dialog_cancel_button');
                this._confirm_button = $('#dialog_confirm_button');
-               this._callback_function = '';
-               this._callback_data = null;
+               this._callback = null;
                
                // Observe the buttons
                this._cancel_button.bind('click', {dialog: this}, this.onCancelClicked);
@@ -58,7 +57,7 @@ Dialog.prototype = {
        onConfirmClicked: function(event)
        {
                var dialog = event.data.dialog;
-               eval(dialog._callback_function + "(dialog._callback_data)");
+               dialog._callback();
                dialog.hideDialog();
        },
 
@@ -72,7 +71,7 @@ Dialog.prototype = {
         * Display a confirm dialog
         */
        confirm: function(dialog_heading, dialog_message, confirm_button_label,
-                         callback_function, callback_data, cancel_button_label)
+                         callback, cancel_button_label)
        {
                if (!isMobileDevice)
                        $('.dialog_container').hide();
@@ -81,8 +80,7 @@ Dialog.prototype = {
                setTextContent(this._cancel_button[0], cancel_button_label || 'Cancel');
                setTextContent(this._confirm_button[0], confirm_button_label);
                this._confirm_button.show();
-               this._callback_function = callback_function;
-               this._callback_data = callback_data;
+               this._callback = callback;
                $('body').addClass('dialog_showing');
                this._container.show();
                transmission.updateButtonStates();
index 5cb13bed81e40e33273592bf423fb1249ae8e320..472a25d6c98492a92203343ae27fa10cfc1b6019 100644 (file)
@@ -62,8 +62,9 @@ TransmissionRemote.prototype =
                dialog.confirm('Connection Failed',
                        'Could not connect to the server. You may need to reload the page to reconnect.',
                        'Details',
-                       'alert(remote._error);',
-                       null,
+                       function() {
+                               alert(remote._error);
+                       },
                        'Dismiss');
                remote._controller.togglePeriodicSessionRefresh(false);
        },
index bd317db493c5bf3f4befddb2af44939470bf6ee7..6c7c4c66753d4376bb15cbfcdd6a85c56fcc19e3 100644 (file)
@@ -1034,13 +1034,17 @@ Transmission.prototype =
                        var torrent = torrents[0],
                            header = 'Remove ' + torrent.getName() + '?',
                            message = 'Once removed, continuing the transfer will require the torrent file. Are you sure you want to remove it?';
-                       dialog.confirm(header, message, 'Remove', 'transmission.removeTorrents', torrents);
+                       dialog.confirm(header, message, 'Remove', function() {
+                               transmission.removeTorrents(torrents);
+                       });
                }
                else
                {
                        var header = 'Remove ' + torrents.length + ' transfers?',
                            message = 'Once removed, continuing the transfers will require the torrent files. Are you sure you want to remove them?';
-                       dialog.confirm(header, message, 'Remove', 'transmission.removeTorrents', torrents);
+                       dialog.confirm(header, message, 'Remove', function() {
+                               transmission.removeTorrents(torrents);
+                       });
                }
        },
 
@@ -1051,13 +1055,17 @@ Transmission.prototype =
                        var torrent = torrents[0],
                            header = 'Remove ' + torrent.getName() + ' and delete data?',
                            message = 'All data downloaded for this torrent will be deleted. Are you sure you want to remove it?';
-                       dialog.confirm(header, message, 'Remove', 'transmission.removeTorrentsAndData', torrents);
+                       dialog.confirm(header, message, 'Remove', function() {
+                               transmission.removeTorrentsAndData(torrents);
+                       });
                }
                else
                {
                        var header = 'Remove ' + torrents.length + ' transfers and delete data?',
                            message = 'All data downloaded for these torrents will be deleted. Are you sure you want to remove them?';
-                       dialog.confirm(header, message, 'Remove', 'transmission.removeTorrentsAndData', torrents);
+                       dialog.confirm(header, message, 'Remove', function() {
+                               transmission.removeTorrentsAndData(torrents);
+                       });
                }
        },