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

Side by Side Diff: chrome/browser/resources/settings/printing_page/cups_add_printer_dialog.js

Issue 2380753004: [CUPS] Implement the Webui handler for the printers auto discovery. (Closed)
Patch Set: Rebase Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 'settings-cups-add-printer-dialog' includes multiple dialogs to 6 * @fileoverview 'settings-cups-add-printer-dialog' includes multiple dialogs to
7 * set up a new CUPS printer. 7 * set up a new CUPS printer.
8 * Subdialogs include: 8 * Subdialogs include:
9 * - 'add-printer-discovery-dialog' is a dialog showing discovered printers on 9 * - 'add-printer-discovery-dialog' is a dialog showing discovered printers on
10 * the network that are available for setup. 10 * the network that are available for setup.
11 * - 'add-printer-maually-dialog' is a dialog in which user can manually enter 11 * - 'add-printer-maually-dialog' is a dialog in which user can manually enter
12 * the information to set up a new printer. 12 * the information to set up a new printer.
13 * - 'add-printer-configuring-dialog' is the configuring-in-progress dialog. 13 * - 'add-printer-configuring-dialog' is the configuring-in-progress dialog.
14 * - 'add-printer-manufacturer-model-dialog' is a dialog in which the user can 14 * - 'add-printer-manufacturer-model-dialog' is a dialog in which the user can
15 * manually select the manufacture and model of the new printer. 15 * manually select the manufacture and model of the new printer.
16 */ 16 */
17 17
18 /** 18 /**
19 * Different dialogs in add printer flow. 19 * Different dialogs in add printer flow.
20 * @enum {string} 20 * @enum {string}
21 */ 21 */
22 var AddPrinterDialogs = { 22 var AddPrinterDialogs = {
23 DISCOVERY: 'add-printer-discovery-dialog', 23 DISCOVERY: 'add-printer-discovery-dialog',
24 MANUALLY: 'add-printer-maually-dialog', 24 MANUALLY: 'add-printer-maually-dialog',
25 CONFIGURING: 'add-printer-configuring-dialog', 25 CONFIGURING: 'add-printer-configuring-dialog',
26 MANUFACTURER: 'add-printer-manufacturer-model-dialog', 26 MANUFACTURER: 'add-printer-manufacturer-model-dialog',
27 }; 27 };
28 28
29 /**
30 * The maximum height of the discovered printers list when the searching spinner
31 * is not showing.
michaelpg 2016/10/04 22:31:10 @const {number}
xdai1 2016/10/04 23:36:19 Done.
32 */
33 var printerListFullHeight = 350;
michaelpg 2016/10/04 22:31:10 kPrinterListFullHeight or PRINTER_LIST_FULL_HEIGHT
xdai1 2016/10/04 23:36:19 Done.
34
29 Polymer({ 35 Polymer({
30 is: 'add-printer-discovery-dialog', 36 is: 'add-printer-discovery-dialog',
31 37
38 behaviors: [WebUIListenerBehavior],
39
32 properties: { 40 properties: {
33 /** @type {!Array<!CupsPrinterInfo>} */ 41 /** @type {!Array<!CupsPrinterInfo>|undefined} */
34 discoveredPrinters: { 42 discoveredPrinters: {
35 type: Array, 43 type: Array,
36 }, 44 },
37 45
38 /** @type {!CupsPrinterInfo} */ 46 /** @type {!CupsPrinterInfo} */
39 selectedPrinter: { 47 selectedPrinter: {
40 type: Object, 48 type: Object,
41 notify: true, 49 notify: true,
42 }, 50 },
51
52 discovering_: {
53 type: Boolean,
54 value: false,
55 },
43 }, 56 },
44 57
45 /** @override */ 58 /** @override */
46 ready: function() { 59 ready: function() {
47 // TODO(xdai): Get the discovered printer list after the API is ready. 60 this.discovering_ = true;
michaelpg 2016/10/04 22:31:10 Why not set the initial value to true, above?
xdai1 2016/10/04 23:36:19 Done.
61 settings.CupsPrintersBrowserProxyImpl.getInstance().
62 startDiscoveringPrinters();
63 this.addWebUIListener('on-printer-discovered',
64 this.onPrinterDiscovered_.bind(this));
65 this.addWebUIListener('on-printer-discovery-done',
66 this.onPrinterDiscoveryDone_.bind(this));
67 this.addWebUIListener('on-printer-discovery-failed',
68 this.onPrinterDiscoveryDone_.bind(this));
69 },
70
71 /**
72 * @param {!Array<!CupsPrinterInfo>} printers
73 * @private
74 */
75 onPrinterDiscovered_: function(printers) {
76 this.discovering_ = true;
77 if (!this.discoveredPrinters)
78 this.discoveredPrinters = printers;
79 else
80 this.discoveredPrinters = this.discoveredPrinters.concat(printers);
michaelpg 2016/10/04 22:31:10 instead of replacing the whole array (which might
xdai1 2016/10/04 23:36:19 Seems like it could not push back a CupsPrinterInf
81 },
82
83 /** @private */
84 onPrinterDiscoveryDone_: function() {
85 this.discovering_ = false;
86 this.$$('add-printer-list').style.maxHeight = printerListFullHeight + 'px';
87 if (!this.discoveredPrinters)
88 this.$.noPrinterMessage.hidden = false;
michaelpg 2016/10/04 22:31:10 this.$.nPM.hidden = !!this.discoveredPrinters;
xdai1 2016/10/04 23:36:19 Done.
89 else
90 this.$.noPrinterMessage.hidden = true;
91 },
92
93 /** @private */
94 stopDiscoveringPrinters_: function() {
95 settings.CupsPrintersBrowserProxyImpl.getInstance().
96 stopDiscoveringPrinters();
97 this.discovering_ = false;
48 }, 98 },
49 99
50 /** @private */ 100 /** @private */
51 switchToManualAddDialog_: function() { 101 switchToManualAddDialog_: function() {
102 this.stopDiscoveringPrinters_();
52 this.$$('add-printer-dialog').close(); 103 this.$$('add-printer-dialog').close();
53 this.fire('open-manually-add-printer-dialog'); 104 this.fire('open-manually-add-printer-dialog');
54 }, 105 },
55 106
56 /** @private */ 107 /** @private */
57 onCancelTap_: function() { 108 onCancelTap_: function() {
109 this.stopDiscoveringPrinters_();
58 this.$$('add-printer-dialog').close(); 110 this.$$('add-printer-dialog').close();
59 }, 111 },
60 112
61 /** @private */ 113 /** @private */
62 switchToConfiguringDialog_: function() { 114 switchToConfiguringDialog_: function() {
115 this.stopDiscoveringPrinters_();
63 this.$$('add-printer-dialog').close(); 116 this.$$('add-printer-dialog').close();
64 this.fire('open-configuring-printer-dialog'); 117 this.fire('open-configuring-printer-dialog');
65 }, 118 },
66 }); 119 });
67 120
68 Polymer({ 121 Polymer({
69 is: 'add-printer-maually-dialog', 122 is: 'add-printer-maually-dialog',
70 123
71 properties: { 124 properties: {
72 /** @type {!CupsPrinterInfo} */ 125 /** @type {!CupsPrinterInfo} */
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 /** @private */ 375 /** @private */
323 openDiscoveryPrintersDialog_: function() { 376 openDiscoveryPrintersDialog_: function() {
324 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.DISCOVERY, 377 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.DISCOVERY,
325 'showDiscoveryDialog_'); 378 'showDiscoveryDialog_');
326 }, 379 },
327 380
328 /** @private */ 381 /** @private */
329 openConfiguringPrinterDialog_: function() { 382 openConfiguringPrinterDialog_: function() {
330 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.CONFIGURING, 383 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.CONFIGURING,
331 'showConfiguringDialog_'); 384 'showConfiguringDialog_');
332 settings.CupsPrintersBrowserProxyImpl.getInstance(). 385 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY) {
333 addCupsPrinter(this.newPrinter); 386 settings.CupsPrintersBrowserProxyImpl.getInstance().
387 addCupsPrinter(this.selectedPrinter);
388 } else if (this.previousDialog_ == AddPrinterDialogs.MANUALLY ||
389 this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) {
390 settings.CupsPrintersBrowserProxyImpl.getInstance().
391 addCupsPrinter(this.newPrinter);
392 }
334 }, 393 },
335 394
336 /** @private */ 395 /** @private */
337 openManufacturerModelDialog_: function() { 396 openManufacturerModelDialog_: function() {
338 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER, 397 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER,
339 'showManufacturerDialog_'); 398 'showManufacturerDialog_');
340 }, 399 },
341 400
342 /** @private */ 401 /** @private */
343 configuringDialogClosed_: function() { 402 configuringDialogClosed_: function() {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 /** 450 /**
392 * @param {boolean} success 451 * @param {boolean} success
393 * @param {string} printerName 452 * @param {string} printerName
394 * @private 453 * @private
395 */ 454 */
396 onAddPrinter_: function(success, printerName) { 455 onAddPrinter_: function(success, printerName) {
397 this.$$('add-printer-configuring-dialog').close(); 456 this.$$('add-printer-configuring-dialog').close();
398 if (success) 457 if (success)
399 return; 458 return;
400 459
401 if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) 460 if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) {
402 this.setupFailed = true; 461 this.setupFailed = true;
403 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER, 462 } else if (this.previousDialog_ == AddPrinterDialogs.MANUALLY) {
404 'showManufacturerDialog_'); 463 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER,
464 'showManufacturerDialog_');
465 }
405 }, 466 },
406 }); 467 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698