| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 /* | 1 /* |
| 2 * This Source Code is subject to the terms of the Mozilla Public License | 2 * This Source Code is subject to the terms of the Mozilla Public License |
| 3 * version 2.0 (the "License"). You can obtain a copy of the License at | 3 * version 2.0 (the "License"). You can obtain a copy of the License at |
| 4 * http://mozilla.org/MPL/2.0/. | 4 * http://mozilla.org/MPL/2.0/. |
| 5 */ | 5 */ |
| 6 | 6 |
|
Wladimir Palant
2012/09/21 15:36:18
Site-note: I don't think that this manual UI will
| |
| 7 const Cu = Components.utils; | 7 const Cu = Components.utils; |
| 8 | 8 |
| 9 Cu.import("resource://gre/modules/Services.jsm"); | 9 Cu.import("resource://gre/modules/Services.jsm"); |
| 10 | 10 |
| 11 let crawling = false; | 11 let crawling = false; |
| 12 | 12 |
| 13 function require(module) | 13 function require(module) |
| 14 { | 14 { |
| 15 let result = {}; | 15 let result = {}; |
| 16 result.wrappedJSObject = result; | 16 result.wrappedJSObject = result; |
| 17 Services.obs.notifyObservers(result, "abpcrawler-require", module); | 17 Services.obs.notifyObservers(result, "abpcrawler-require", module); |
| 18 return result.exports; | 18 return result.exports; |
| 19 } | 19 } |
| 20 | 20 |
| 21 let {Crawler} = require("crawler"); | 21 let {Crawler} = require("crawler"); |
| 22 | 22 |
| 23 function onUnload() | 23 function onUnload() |
| 24 { | 24 { |
| 25 const fields = ["backend-url", "parallel-tabs"]; | 25 const fields = ["backend-url", "parallel-tabs"]; |
| 26 fields.forEach(function(field) | 26 fields.forEach(function(field) |
| 27 { | 27 { |
| 28 let control = document.getElementById(field); | 28 let control = document.getElementById(field); |
| 29 control.setAttribute("value", control.value); | 29 control.setAttribute("value", control.value); |
|
Wladimir Palant
2012/09/21 15:36:18
Are you trying to make the field values persist? U
| |
| 30 }); | 30 }); |
| 31 } | 31 } |
| 32 | 32 |
| 33 function onClose() | |
| 34 { | |
| 35 return !crawling; | |
|
Wladimir Palant
2012/09/21 15:36:18
Maybe show a message why the window cannot be clos
| |
| 36 } | |
| 37 | |
| 38 function getBackendUrl() | 33 function getBackendUrl() |
| 39 { | 34 { |
| 40 let backendUrlTextBox = document.getElementById("backend-url"); | 35 let backendUrlTextBox = document.getElementById("backend-url"); |
| 41 return backendUrlTextBox.value; | 36 return backendUrlTextBox.value; |
| 42 } | 37 } |
| 43 | 38 |
| 44 function getParallelTabs() | 39 function getParallelTabs() |
| 45 { | 40 { |
| 46 let parallelTabsTextBox = document.getElementById("parallel-tabs"); | 41 let parallelTabsTextBox = document.getElementById("parallel-tabs"); |
| 47 return parseInt(parallelTabsTextBox.value); | 42 return parseInt(parallelTabsTextBox.value); |
| 48 } | 43 } |
| 49 | 44 |
| 50 function onAccept() | 45 function onAccept() |
| 51 { | 46 { |
| 52 let backendUrl = getBackendUrl(); | 47 let backendUrl = getBackendUrl(); |
| 53 let parallelTabs = getParallelTabs(); | 48 let parallelTabs = getParallelTabs(); |
| 54 let dialog = document.getElementById("abpcrawler-crawler"); | 49 let dialog = document.documentElement; |
|
Wladimir Palant
2012/09/21 15:36:18
How about using document.documentElement here?
| |
| 55 let acceptButton = dialog.getButton("accept"); | 50 let acceptButton = dialog.getButton("accept"); |
| 56 crawling = acceptButton.disabled = true; | 51 crawling = acceptButton.disabled = true; |
| 57 Crawler.crawl(backendUrl, parallelTabs, window.opener, function() | 52 |
|
Wladimir Palant
2012/09/21 15:36:18
Of course we could have the condition that window.
| |
| 53 let mainWindow = window.opener; | |
| 54 if (!mainWindow || mainWindow.closed) | |
| 58 { | 55 { |
| 56 alert( "Unable to find the main window, aborting."); | |
| 59 crawling = acceptButton.disabled = false; | 57 crawling = acceptButton.disabled = false; |
| 60 }); | 58 } |
| 59 else | |
| 60 Crawler.crawl(backendUrl, parallelTabs, mainWindow, function() | |
| 61 { | |
| 62 crawling = acceptButton.disabled = false; | |
| 63 }); | |
| 64 | |
| 61 return false; | 65 return false; |
| 62 } | 66 } |
| 67 | |
| 68 function onCancel() | |
| 69 { | |
| 70 let closingPossible = !crawling; | |
| 71 if (!closingPossible) | |
| 72 alert("Crawling still in progress."); | |
| 73 return closingPossible; | |
| 74 } | |
| LEFT | RIGHT |