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) { |