Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4601)

Unified Diff: chrome/browser/resources/print_preview.js

Issue 6533006: Print Preview: Hook up the print button to initiate printing without displaying a print dialog. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698