diff options
author | Ian Coleman <coleman.ian@gmail.com> | 2017-01-04 11:30:45 +1100 |
---|---|---|
committer | Ian Coleman <coleman.ian@gmail.com> | 2017-01-04 11:31:45 +1100 |
commit | 40892aba5013cd75927f63e66492f46b2d206ec9 (patch) | |
tree | 35f45854960e6fd6c30a11016ac89dc000977053 /src/js | |
parent | 6ea15134a4ff5a443d96de5882bcddbe7300fc6f (diff) | |
download | BIP39-40892aba5013cd75927f63e66492f46b2d206ec9.tar.gz BIP39-40892aba5013cd75927f63e66492f46b2d206ec9.tar.zst BIP39-40892aba5013cd75927f63e66492f46b2d206ec9.zip |
Generation process stopped when table rows cleared
Closes #44
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/index.js | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/src/js/index.js b/src/js/index.js index c198977..5318800 100644 --- a/src/js/index.js +++ b/src/js/index.js | |||
@@ -19,6 +19,8 @@ | |||
19 | var phraseChangeTimeoutEvent = null; | 19 | var phraseChangeTimeoutEvent = null; |
20 | var rootKeyChangedTimeoutEvent = null; | 20 | var rootKeyChangedTimeoutEvent = null; |
21 | 21 | ||
22 | var generationProcesses = []; | ||
23 | |||
22 | var DOM = {}; | 24 | var DOM = {}; |
23 | DOM.network = $(".network"); | 25 | DOM.network = $(".network"); |
24 | DOM.phraseNetwork = $("#network-phrase"); | 26 | DOM.phraseNetwork = $("#network-phrase"); |
@@ -512,14 +514,28 @@ | |||
512 | } | 514 | } |
513 | 515 | ||
514 | function displayAddresses(start, total) { | 516 | function displayAddresses(start, total) { |
515 | for (var i=0; i<total; i++) { | 517 | generationProcesses.push(new (function() { |
516 | var index = i + start; | 518 | |
517 | new TableRow(index); | 519 | var rows = []; |
518 | } | 520 | |
521 | this.stop = function() { | ||
522 | for (var i=0; i<rows.length; i++) { | ||
523 | rows[i].shouldGenerate = false; | ||
524 | } | ||
525 | } | ||
526 | |||
527 | for (var i=0; i<total; i++) { | ||
528 | var index = i + start; | ||
529 | rows.push(new TableRow(index)); | ||
530 | } | ||
531 | |||
532 | })()); | ||
519 | } | 533 | } |
520 | 534 | ||
521 | function TableRow(index) { | 535 | function TableRow(index) { |
522 | 536 | ||
537 | var self = this; | ||
538 | this.shouldGenerate = true; | ||
523 | var useHardenedAddresses = DOM.hardenedAddresses.prop("checked"); | 539 | var useHardenedAddresses = DOM.hardenedAddresses.prop("checked"); |
524 | 540 | ||
525 | function init() { | 541 | function init() { |
@@ -528,6 +544,9 @@ | |||
528 | 544 | ||
529 | function calculateValues() { | 545 | function calculateValues() { |
530 | setTimeout(function() { | 546 | setTimeout(function() { |
547 | if (!self.shouldGenerate) { | ||
548 | return; | ||
549 | } | ||
531 | var key = ""; | 550 | var key = ""; |
532 | if (useHardenedAddresses) { | 551 | if (useHardenedAddresses) { |
533 | key = bip32ExtendedKey.deriveHardened(index); | 552 | key = bip32ExtendedKey.deriveHardened(index); |
@@ -578,6 +597,14 @@ | |||
578 | 597 | ||
579 | function clearAddressesList() { | 598 | function clearAddressesList() { |
580 | DOM.addresses.empty(); | 599 | DOM.addresses.empty(); |
600 | stopGenerating(); | ||
601 | } | ||
602 | |||
603 | function stopGenerating() { | ||
604 | while (generationProcesses.length > 0) { | ||
605 | var generation = generationProcesses.shift(); | ||
606 | generation.stop(); | ||
607 | } | ||
581 | } | 608 | } |
582 | 609 | ||
583 | function clearKey() { | 610 | function clearKey() { |