OLD | NEW |
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. |
(...skipping 27 matching lines...) Expand all Loading... |
38 | 38 |
39 behaviors: [WebUIListenerBehavior], | 39 behaviors: [WebUIListenerBehavior], |
40 | 40 |
41 properties: { | 41 properties: { |
42 /** @type {!Array<!CupsPrinterInfo>|undefined} */ | 42 /** @type {!Array<!CupsPrinterInfo>|undefined} */ |
43 discoveredPrinters: { | 43 discoveredPrinters: { |
44 type: Array, | 44 type: Array, |
45 }, | 45 }, |
46 | 46 |
47 /** @type {!CupsPrinterInfo} */ | 47 /** @type {!CupsPrinterInfo} */ |
48 selectedPrinter: { | 48 newPrinter: { |
49 type: Object, | 49 type: Object, |
50 notify: true, | 50 notify: true, |
51 }, | 51 }, |
52 | 52 |
53 discovering_: { | 53 discovering_: { |
54 type: Boolean, | 54 type: Boolean, |
55 value: true, | 55 value: true, |
56 }, | 56 }, |
57 }, | 57 }, |
58 | 58 |
59 /** @override */ | 59 /** @override */ |
60 ready: function() { | 60 ready: function() { |
61 settings.CupsPrintersBrowserProxyImpl.getInstance(). | 61 settings.CupsPrintersBrowserProxyImpl.getInstance(). |
62 startDiscoveringPrinters(); | 62 startDiscoveringPrinters(); |
63 this.addWebUIListener('on-printer-discovered', | 63 this.addWebUIListener('on-printer-discovered', |
64 this.onPrinterDiscovered_.bind(this)); | 64 this.onPrinterDiscovered_.bind(this)); |
65 this.addWebUIListener('on-printer-discovery-done', | 65 this.addWebUIListener('on-printer-discovery-done', |
66 this.onPrinterDiscoveryDone_.bind(this)); | 66 this.onPrinterDiscoveryDone_.bind(this)); |
67 this.addWebUIListener('on-printer-discovery-failed', | 67 this.addWebUIListener('on-printer-discovery-failed', |
68 this.onPrinterDiscoveryDone_.bind(this)); | 68 this.onPrinterDiscoveryDone_.bind(this)); |
69 }, | 69 }, |
70 | 70 |
71 /** | 71 /** |
72 * @param {!Array<!CupsPrinterInfo>} printers | 72 * @param {!Array<!CupsPrinterInfo>} printers |
73 * @private | 73 * @private |
74 */ | 74 */ |
75 onPrinterDiscovered_: function(printers) { | 75 onPrinterDiscovered_: function(printers) { |
76 this.discovering_ = true; | 76 this.discoveredPrinters = printers; |
77 if (!this.discoveredPrinters) { | 77 if (!this.discovering_) { |
78 this.discoveredPrinters = printers; | 78 // This update happened after we already finished the initial scan, so |
79 } else { | 79 // re-run the discovery done logic. |
80 for (var i = 0; i < printers.length; i++) | 80 this.onPrinterDiscoveryDone_(); |
81 this.push('discoveredPrinters', printers[i]); | |
82 } | 81 } |
83 }, | 82 }, |
84 | 83 |
85 /** @private */ | 84 /** @private */ |
86 onPrinterDiscoveryDone_: function() { | 85 onPrinterDiscoveryDone_: function() { |
87 this.discovering_ = false; | 86 this.discovering_ = false; |
88 this.$$('add-printer-list').style.maxHeight = kPrinterListFullHeight + 'px'; | 87 this.$$('add-printer-list').style.maxHeight = kPrinterListFullHeight + 'px'; |
89 this.$.noPrinterMessage.hidden = !!this.discoveredPrinters; | 88 this.$.noPrinterMessage.hidden = !!this.discoveredPrinters; |
90 }, | 89 }, |
91 | 90 |
92 /** @private */ | 91 /** @private */ |
93 stopDiscoveringPrinters_: function() { | 92 stopDiscoveringPrinters_: function() { |
94 settings.CupsPrintersBrowserProxyImpl.getInstance(). | 93 settings.CupsPrintersBrowserProxyImpl.getInstance(). |
95 stopDiscoveringPrinters(); | 94 stopDiscoveringPrinters(); |
96 this.discovering_ = false; | 95 this.discovering_ = false; |
97 }, | 96 }, |
98 | 97 |
99 /** @private */ | 98 /** @private */ |
100 switchToManualAddDialog_: function() { | 99 switchToManualAddDialog_: function() { |
101 this.stopDiscoveringPrinters_(); | 100 this.stopDiscoveringPrinters_(); |
| 101 // If the user has a printer selected in the discovery list, we *don't* want |
| 102 // to use that if we go to add a printer manually, so reset newPrinter. |
| 103 this.newPrinter = { |
| 104 printerAddress: '', |
| 105 printerDescription: '', |
| 106 printerId: '', |
| 107 printerManufacturer: '', |
| 108 printerModel: '', |
| 109 printerName: '', |
| 110 printerPPDPath: '', |
| 111 printerProtocol: 'ipp', |
| 112 printerQueue: 'ipp/print', |
| 113 printerStatus: '', |
| 114 }; |
102 this.$$('add-printer-dialog').close(); | 115 this.$$('add-printer-dialog').close(); |
103 this.fire('open-manually-add-printer-dialog'); | 116 this.fire('open-manually-add-printer-dialog'); |
104 }, | 117 }, |
105 | 118 |
106 /** @private */ | 119 /** @private */ |
107 onCancelTap_: function() { | 120 onCancelTap_: function() { |
108 this.stopDiscoveringPrinters_(); | 121 this.stopDiscoveringPrinters_(); |
109 this.$$('add-printer-dialog').close(); | 122 this.$$('add-printer-dialog').close(); |
110 }, | 123 }, |
111 | 124 |
112 /** @private */ | 125 /** @private */ |
113 switchToConfiguringDialog_: function() { | 126 switchToManufacturerDialog_: function() { |
114 this.stopDiscoveringPrinters_(); | 127 this.stopDiscoveringPrinters_(); |
115 this.$$('add-printer-dialog').close(); | 128 this.$$('add-printer-dialog').close(); |
116 this.fire('open-configuring-printer-dialog'); | 129 this.fire('open-manufacturer-model-dialog'); |
117 }, | 130 }, |
118 }); | 131 }); |
119 | 132 |
120 Polymer({ | 133 Polymer({ |
121 is: 'add-printer-manually-dialog', | 134 is: 'add-printer-manually-dialog', |
122 | 135 |
123 properties: { | 136 properties: { |
124 /** @type {!CupsPrinterInfo} */ | 137 /** @type {!CupsPrinterInfo} */ |
125 newPrinter: { | 138 newPrinter: { |
126 type: Object, | 139 type: Object, |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 }, | 323 }, |
311 }); | 324 }); |
312 | 325 |
313 Polymer({ | 326 Polymer({ |
314 is: 'settings-cups-add-printer-dialog', | 327 is: 'settings-cups-add-printer-dialog', |
315 | 328 |
316 behaviors: [WebUIListenerBehavior], | 329 behaviors: [WebUIListenerBehavior], |
317 | 330 |
318 properties: { | 331 properties: { |
319 /** @type {!CupsPrinterInfo} */ | 332 /** @type {!CupsPrinterInfo} */ |
320 selectedPrinter: { | |
321 type: Object, | |
322 }, | |
323 | |
324 /** @type {!CupsPrinterInfo} */ | |
325 newPrinter: { | 333 newPrinter: { |
326 type: Object, | 334 type: Object, |
327 }, | 335 }, |
328 | 336 |
329 /** @type {boolean} whether the new printer setup is failed. */ | 337 /** @type {boolean} whether the new printer setup is failed. */ |
330 setupFailed: { | 338 setupFailed: { |
331 type: Boolean, | 339 type: Boolean, |
332 value: false, | 340 value: false, |
333 }, | 341 }, |
334 | 342 |
(...skipping 27 matching lines...) Expand all Loading... |
362 }, | 370 }, |
363 | 371 |
364 /** @override */ | 372 /** @override */ |
365 ready: function() { | 373 ready: function() { |
366 this.addWebUIListener('on-add-cups-printer', this.onAddPrinter_.bind(this)); | 374 this.addWebUIListener('on-add-cups-printer', this.onAddPrinter_.bind(this)); |
367 }, | 375 }, |
368 | 376 |
369 /** Opens the Add printer discovery dialog. */ | 377 /** Opens the Add printer discovery dialog. */ |
370 open: function() { | 378 open: function() { |
371 this.resetData_(); | 379 this.resetData_(); |
372 this.switchDialog_( | 380 this.switchDialog_('', AddPrinterDialogs.DISCOVERY, 'showDiscoveryDialog_'); |
373 '', AddPrinterDialogs.MANUALLY, 'showManuallyAddDialog_'); | |
374 }, | 381 }, |
375 | 382 |
376 /** | 383 /** |
377 * Reset all the printer data in the Add printer flow. | 384 * Reset all the printer data in the Add printer flow. |
378 * @private | 385 * @private |
379 */ | 386 */ |
380 resetData_: function() { | 387 resetData_: function() { |
381 if (this.selectedPrinter) | |
382 this.selectedPrinter = this.getEmptyPrinter_(); | |
383 if (this.newPrinter) | 388 if (this.newPrinter) |
384 this.newPrinter = this.getEmptyPrinter_(); | 389 this.newPrinter = this.getEmptyPrinter_(); |
385 this.setupFailed = false; | 390 this.setupFailed = false; |
386 }, | 391 }, |
387 | 392 |
388 /** | 393 /** |
389 * @return {!CupsPrinterInfo} | 394 * @return {!CupsPrinterInfo} |
390 * @private | 395 * @private |
391 */ | 396 */ |
392 getEmptyPrinter_: function() { | 397 getEmptyPrinter_: function() { |
(...skipping 24 matching lines...) Expand all Loading... |
417 }, | 422 }, |
418 | 423 |
419 /** @private */ | 424 /** @private */ |
420 openConfiguringPrinterDialog_: function() { | 425 openConfiguringPrinterDialog_: function() { |
421 this.switchDialog_( | 426 this.switchDialog_( |
422 this.currentDialog_, AddPrinterDialogs.CONFIGURING, | 427 this.currentDialog_, AddPrinterDialogs.CONFIGURING, |
423 'showConfiguringDialog_'); | 428 'showConfiguringDialog_'); |
424 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY) { | 429 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY) { |
425 this.configuringDialogTitle = | 430 this.configuringDialogTitle = |
426 loadTimeData.getString('addPrintersNearbyTitle'); | 431 loadTimeData.getString('addPrintersNearbyTitle'); |
427 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( | |
428 this.selectedPrinter); | |
429 } else if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | 432 } else if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { |
430 this.configuringDialogTitle = | 433 this.configuringDialogTitle = |
431 loadTimeData.getString('addPrintersManuallyTitle'); | 434 loadTimeData.getString('addPrintersManuallyTitle'); |
432 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( | |
433 this.newPrinter); | |
434 } | 435 } |
| 436 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( |
| 437 this.newPrinter); |
435 }, | 438 }, |
436 | 439 |
437 /** @private */ | 440 /** @private */ |
438 openManufacturerModelDialog_: function() { | 441 openManufacturerModelDialog_: function() { |
439 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER, | 442 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER, |
440 'showManufacturerDialog_'); | 443 'showManufacturerDialog_'); |
441 }, | 444 }, |
442 | 445 |
443 /** @private */ | 446 /** @private */ |
444 configuringDialogClosed_: function() { | 447 configuringDialogClosed_: function() { |
(...skipping 25 matching lines...) Expand all Loading... |
470 this.set(domIfBooleanName, false); | 473 this.set(domIfBooleanName, false); |
471 }.bind(this)); | 474 }.bind(this)); |
472 }); | 475 }); |
473 }, | 476 }, |
474 | 477 |
475 /** | 478 /** |
476 * @return {string} The name of the current printer in configuration. | 479 * @return {string} The name of the current printer in configuration. |
477 * @private | 480 * @private |
478 */ | 481 */ |
479 getConfiguringPrinterName_: function() { | 482 getConfiguringPrinterName_: function() { |
480 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY) | 483 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY || |
481 return this.selectedPrinter.printerName; | 484 this.previousDialog_ == AddPrinterDialogs.MANUALLY || |
482 if (this.previousDialog_ == AddPrinterDialogs.MANUALLY || | |
483 this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | 485 this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { |
484 return this.newPrinter.printerName; | 486 return this.newPrinter.printerName; |
485 } | 487 } |
486 return ''; | 488 return ''; |
487 }, | 489 }, |
488 | 490 |
489 /** | 491 /** |
490 * @param {boolean} success | 492 * @param {boolean} success |
491 * @param {string} printerName | 493 * @param {string} printerName |
492 * @private | 494 * @private |
493 */ | 495 */ |
494 onAddPrinter_: function(success, printerName) { | 496 onAddPrinter_: function(success, printerName) { |
495 this.$$('add-printer-configuring-dialog').close(); | 497 this.$$('add-printer-configuring-dialog').close(); |
496 if (success) | 498 if (success) |
497 return; | 499 return; |
498 | 500 |
499 if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | 501 if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { |
500 this.setupFailed = true; | 502 this.setupFailed = true; |
501 } | 503 } |
502 }, | 504 }, |
503 }); | 505 }); |
OLD | NEW |