Chromium Code Reviews| Index: chrome/browser/resources/print_preview.js |
| diff --git a/chrome/browser/resources/print_preview.js b/chrome/browser/resources/print_preview.js |
| index 285698996f907bddd1a5e5034bb73fab715374c2..4f68853f6f388cafe77e8272a0fc88520d0bcc42 100644 |
| --- a/chrome/browser/resources/print_preview.js |
| +++ b/chrome/browser/resources/print_preview.js |
| @@ -9,6 +9,8 @@ var hasPDFPlugin = true; |
| * Window onload handler, sets up the page. |
| */ |
| function load() { |
| + $('print-button').addEventListener('click', printFile); |
| + |
| $('cancel-button').addEventListener('click', function(e) { |
| window.close(); |
| }); |
| @@ -17,6 +19,54 @@ function load() { |
| }; |
| /** |
| + * Parse page range text. |
| + * Eg: If page range is specified as "1-3,7-9,8". Create an array with three |
| + * elements. Each array element contains the range information. |
| + * [{from:1, to:3}, {from:7, to:9}, {from:8, to:8}] |
| + * TODO (kmadhusu): Check for invalid characters. |
| + */ |
| +function pageRange() { |
| + var pageRangeParams; |
| + var pageRangesInfo = new Array(); |
| + var pageRangeText = $('pages').value; |
| + var pageRangeList = pageRangeText.split(","); |
|
arv (Not doing code reviews)
2011/02/16 23:54:41
Use single quotes
kmadhusu
2011/02/17 19:20:31
Done.
|
| + for (var i = 0; i < pageRangeList.length; i++) { |
| + var temp_range = pageRangeList[i].split("-"); |
|
James Hawkins
2011/02/16 22:58:21
What if the page range text is malformed?
arv (Not doing code reviews)
2011/02/16 23:54:41
no underscores in js
kmadhusu
2011/02/17 19:20:31
Done.
kmadhusu
2011/02/17 19:20:31
Added isValidPageRange() function to validate the
|
| + if (temp_range.length > 1) { |
| + pageRangeParams = JSON.stringify({"from" : parseInt(temp_range[0]), |
|
arv (Not doing code reviews)
2011/02/16 23:54:41
parseInt(n, 10) please
kmadhusu
2011/02/17 19:20:31
Done.
|
| + "to" : parseInt(temp_range[1])}); |
| + } else { |
| + pageRangeParams = JSON.stringify({"from" : parseInt(temp_range[0]), |
|
arv (Not doing code reviews)
2011/02/16 23:54:41
It seems like you can do the from to assignment ou
kmadhusu
2011/02/17 19:20:31
Done.
|
| + "to" : parseInt(temp_range[0])}); |
| + } |
| + pageRangesInfo.push(pageRangeParams); |
|
arv (Not doing code reviews)
2011/02/16 23:54:41
Why are we using strings in here?
kmadhusu
2011/02/17 19:20:31
Rather than creating json strings, I modified the
|
| + } |
| + return pageRangesInfo; |
| +} |
| + |
| +function printFile() { |
| + var selected_printer = $('printer-list').selectedIndex; |
| + var printer_name = $('printer-list').options[selected_printer].textContent; |
| + var page_range = pageRange(); |
| + var print_all = $('all-pages').checked; |
| + var two_sided = $('two-sided').checked; |
| + var copies = $('copies').value; |
| + var collate = $('collate').checked; |
| + var layout = $('layout').options[$('layout').selectedIndex].value; |
| + var color = $('color').options[$('color').selectedIndex].value; |
| + |
| + var job_settings = JSON.stringify({"printerName" : printer_name, |
|
arv (Not doing code reviews)
2011/02/16 23:54:41
no ws before :
kmadhusu
2011/02/17 19:20:31
Done.
|
| + "pageRange" : page_range, |
|
arv (Not doing code reviews)
2011/02/16 23:54:41
Won't this lead to double json encoding?
kmadhusu
2011/02/17 19:20:31
Fixed. |pageRange| is now an array of objects. JSO
|
| + "printAll" : print_all, |
| + "twoSided" : two_sided, |
| + "copies" : copies, |
| + "collate" : collate, |
| + "layout" : layout, |
| + "color" : color}); |
| + chrome.send('print', [job_settings]); |
| +} |
| + |
| +/** |
| * Fill the printer list drop down. |
| */ |
| function setPrinters(printers) { |