Chromium Code Reviews| 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 15 matching lines...) Expand all Loading... | |
| 26 MANUFACTURER: 'add-printer-manufacturer-model-dialog', | 26 MANUFACTURER: 'add-printer-manufacturer-model-dialog', |
| 27 }; | 27 }; |
| 28 | 28 |
| 29 /** | 29 /** |
| 30 * The maximum height of the discovered printers list when the searching spinner | 30 * The maximum height of the discovered printers list when the searching spinner |
| 31 * is not showing. | 31 * is not showing. |
| 32 * @const {number} | 32 * @const {number} |
| 33 */ | 33 */ |
| 34 var kPrinterListFullHeight = 350; | 34 var kPrinterListFullHeight = 350; |
| 35 | 35 |
| 36 /** | |
| 37 * Return a reset CupsPrinterInfo object. | |
| 38 * @return {!CupsPrinterInfo} | |
| 39 */ | |
| 40 function getEmptyPrinter_() { | |
| 41 return { | |
| 42 printerAddress: '', | |
| 43 printerDescription: '', | |
| 44 printerId: '', | |
| 45 printerManufacturer: '', | |
| 46 printerModel: '', | |
| 47 printerName: '', | |
| 48 printerPPDPath: '', | |
| 49 printerProtocol: 'ipp', | |
| 50 printerQueue: '', | |
| 51 printerStatus: '', | |
| 52 }; | |
| 53 } | |
| 54 | |
| 36 Polymer({ | 55 Polymer({ |
| 37 is: 'add-printer-discovery-dialog', | 56 is: 'add-printer-discovery-dialog', |
| 38 | 57 |
| 39 behaviors: [WebUIListenerBehavior], | 58 behaviors: [WebUIListenerBehavior], |
| 40 | 59 |
| 41 properties: { | 60 properties: { |
| 42 /** @type {!Array<!CupsPrinterInfo>|undefined} */ | 61 /** @type {!Array<!CupsPrinterInfo>|undefined} */ |
| 43 discoveredPrinters: { | 62 discoveredPrinters: { |
| 44 type: Array, | 63 type: Array, |
| 45 }, | 64 }, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 /** @private */ | 111 /** @private */ |
| 93 stopDiscoveringPrinters_: function() { | 112 stopDiscoveringPrinters_: function() { |
| 94 settings.CupsPrintersBrowserProxyImpl.getInstance(). | 113 settings.CupsPrintersBrowserProxyImpl.getInstance(). |
| 95 stopDiscoveringPrinters(); | 114 stopDiscoveringPrinters(); |
| 96 this.discovering_ = false; | 115 this.discovering_ = false; |
| 97 }, | 116 }, |
| 98 | 117 |
| 99 /** @private */ | 118 /** @private */ |
| 100 switchToManualAddDialog_: function() { | 119 switchToManualAddDialog_: function() { |
| 101 this.stopDiscoveringPrinters_(); | 120 this.stopDiscoveringPrinters_(); |
| 121 // We're abandoning discovery in favor of manual specification, so | |
| 122 // drop the selection if one exists. | |
| 123 this.selectedPrinter = getEmptyPrinter_(); | |
| 102 this.$$('add-printer-dialog').close(); | 124 this.$$('add-printer-dialog').close(); |
| 103 this.fire('open-manually-add-printer-dialog'); | 125 this.fire('open-manually-add-printer-dialog'); |
| 104 }, | 126 }, |
| 105 | 127 |
| 106 /** @private */ | 128 /** @private */ |
| 107 onCancelTap_: function() { | 129 onCancelTap_: function() { |
| 108 this.stopDiscoveringPrinters_(); | 130 this.stopDiscoveringPrinters_(); |
| 109 this.$$('add-printer-dialog').close(); | 131 this.$$('add-printer-dialog').close(); |
| 110 }, | 132 }, |
| 111 | 133 |
| 112 /** @private */ | 134 /** @private */ |
| 113 switchToConfiguringDialog_: function() { | 135 switchToManufacturerDialog_: function() { |
| 114 this.stopDiscoveringPrinters_(); | 136 this.stopDiscoveringPrinters_(); |
| 137 // If we're switching to the manufacturer/model dialog, clear the existing | |
| 138 // data we have about the PPD (if any), as we're dropping that in favor of | |
| 139 // user selections. | |
| 140 this.selectedPrinter.printerManufacturer = ''; | |
| 141 this.selectedPrinter.printerModel = ''; | |
| 142 this.selectedPrinter.printerPPDPath = ''; | |
|
xdai1
2017/05/11 22:50:28
You probably don't need these three lines. After t
Carlson
2017/05/11 23:57:10
That's true, but when we actually do select a prin
xdai1
2017/05/12 00:30:43
Acknowledged.
| |
| 115 this.$$('add-printer-dialog').close(); | 143 this.$$('add-printer-dialog').close(); |
| 116 this.fire('open-configuring-printer-dialog'); | 144 this.fire('open-manufacturer-model-dialog'); |
| 117 }, | 145 }, |
| 118 }); | 146 }); |
| 119 | 147 |
| 120 Polymer({ | 148 Polymer({ |
| 121 is: 'add-printer-manually-dialog', | 149 is: 'add-printer-manually-dialog', |
| 122 | 150 |
| 123 properties: { | 151 properties: { |
| 124 /** @type {!CupsPrinterInfo} */ | 152 /** @type {!CupsPrinterInfo} */ |
| 125 newPrinter: { | 153 newPrinter: { |
| 126 type: Object, | 154 type: Object, |
| 127 notify: true, | 155 notify: true, |
| 128 value: function() { | 156 value: getEmptyPrinter_ |
|
xdai1
2017/05/11 22:50:28
getEmptyPrinter_()?
Carlson
2017/05/11 23:57:11
I don't think so?
https://www.polymer-project.or
xdai1
2017/05/12 00:30:43
Acknowledged.
| |
| 129 return { | |
| 130 printerAddress: '', | |
| 131 printerDescription: '', | |
| 132 printerId: '', | |
| 133 printerManufacturer: '', | |
| 134 printerModel: '', | |
| 135 printerName: '', | |
| 136 printerPPDPath: '', | |
| 137 printerProtocol: 'ipp', | |
| 138 printerQueue: '', | |
| 139 printerStatus: '', | |
| 140 }; | |
| 141 }, | |
| 142 }, | 157 }, |
| 143 }, | 158 }, |
| 144 | 159 |
| 145 /** @private */ | 160 /** @private */ |
| 146 switchToDiscoveryDialog_: function() { | 161 switchToDiscoveryDialog_: function() { |
| 147 this.$$('add-printer-dialog').close(); | 162 this.$$('add-printer-dialog').close(); |
| 148 this.fire('open-discovery-printers-dialog'); | 163 this.fire('open-discovery-printers-dialog'); |
| 149 }, | 164 }, |
| 150 | 165 |
| 151 /** @private */ | 166 /** @private */ |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 192 /** @type {?Array<string>} */ | 207 /** @type {?Array<string>} */ |
| 193 manufacturerList: { | 208 manufacturerList: { |
| 194 type: Array, | 209 type: Array, |
| 195 }, | 210 }, |
| 196 | 211 |
| 197 /** @type {?Array<string>} */ | 212 /** @type {?Array<string>} */ |
| 198 modelList: { | 213 modelList: { |
| 199 type: Array, | 214 type: Array, |
| 200 }, | 215 }, |
| 201 | 216 |
| 217 /** @type {string} */ | |
| 218 previousDialog: String, | |
| 219 | |
| 202 setupFailed: { | 220 setupFailed: { |
| 203 type: Boolean, | 221 type: Boolean, |
| 204 value: false, | 222 value: false, |
| 205 }, | 223 }, |
| 206 }, | 224 }, |
| 207 | 225 |
| 208 observers: [ | 226 observers: [ |
| 209 'selectedManufacturerChanged_(newPrinter.printerManufacturer)', | 227 'selectedManufacturerChanged_(newPrinter.printerManufacturer)', |
| 210 ], | 228 ], |
| 211 | 229 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 256 /** | 274 /** |
| 257 * @param {!ModelsInfo} modelsInfo | 275 * @param {!ModelsInfo} modelsInfo |
| 258 * @private | 276 * @private |
| 259 */ | 277 */ |
| 260 modelListChanged_: function(modelsInfo) { | 278 modelListChanged_: function(modelsInfo) { |
| 261 if (modelsInfo.success) | 279 if (modelsInfo.success) |
| 262 this.modelList = modelsInfo.models; | 280 this.modelList = modelsInfo.models; |
| 263 }, | 281 }, |
| 264 | 282 |
| 265 /** @private */ | 283 /** @private */ |
| 266 switchToManualAddDialog_: function() { | 284 switchToPreviousDialog_: function() { |
| 267 this.$$('add-printer-dialog').close(); | 285 this.$$('add-printer-dialog').close(); |
| 268 this.fire('open-manually-add-printer-dialog'); | 286 if (this.previousDialog == AddPrinterDialogs.DISCOVERY) { |
| 287 this.fire('open-discovery-printers-dialog'); | |
| 288 } else if (this.previousDialog == AddPrinterDialogs.MANUALLY) { | |
| 289 this.fire('open-manually-add-printer-dialog'); | |
| 290 } | |
| 269 }, | 291 }, |
| 270 | 292 |
| 271 /** @private */ | 293 /** @private */ |
| 272 onCancelTap_: function() { | 294 onCancelTap_: function() { |
| 273 this.$$('add-printer-dialog').close(); | 295 this.$$('add-printer-dialog').close(); |
| 274 }, | 296 }, |
| 275 | 297 |
| 276 /** @private */ | 298 /** @private */ |
| 277 switchToConfiguringDialog_: function() { | 299 switchToConfiguringDialog_: function() { |
| 278 this.$$('add-printer-dialog').close(); | 300 this.$$('add-printer-dialog').close(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 314 }, | 336 }, |
| 315 }); | 337 }); |
| 316 | 338 |
| 317 Polymer({ | 339 Polymer({ |
| 318 is: 'settings-cups-add-printer-dialog', | 340 is: 'settings-cups-add-printer-dialog', |
| 319 | 341 |
| 320 behaviors: [WebUIListenerBehavior], | 342 behaviors: [WebUIListenerBehavior], |
| 321 | 343 |
| 322 properties: { | 344 properties: { |
| 323 /** @type {!CupsPrinterInfo} */ | 345 /** @type {!CupsPrinterInfo} */ |
| 324 selectedPrinter: { | |
| 325 type: Object, | |
| 326 }, | |
| 327 | |
| 328 /** @type {!CupsPrinterInfo} */ | |
| 329 newPrinter: { | 346 newPrinter: { |
| 330 type: Object, | 347 type: Object, |
| 331 }, | 348 }, |
| 332 | 349 |
| 333 /** @type {boolean} whether the new printer setup is failed. */ | 350 /** @type {boolean} whether the new printer setup is failed. */ |
| 334 setupFailed: { | 351 setupFailed: { |
| 335 type: Boolean, | 352 type: Boolean, |
| 336 value: false, | 353 value: false, |
| 337 }, | 354 }, |
| 338 | 355 |
| 339 configuringDialogTitle: String, | 356 configuringDialogTitle: String, |
| 340 | 357 |
| 341 /** @private {string} */ | 358 /** @type {string} */ |
| 342 previousDialog_: String, | 359 previousDialog: String, |
| 343 | 360 |
| 344 /** @private {string} */ | 361 /** @private {string} */ |
| 345 currentDialog_: String, | 362 currentDialog_: String, |
| 346 | 363 |
| 347 /** @private {boolean} */ | 364 /** @private {boolean} */ |
| 348 showDiscoveryDialog_: Boolean, | 365 showDiscoveryDialog_: Boolean, |
| 349 | 366 |
| 350 /** @private {boolean} */ | 367 /** @private {boolean} */ |
| 351 showManuallyAddDialog_: Boolean, | 368 showManuallyAddDialog_: Boolean, |
| 352 | 369 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 366 }, | 383 }, |
| 367 | 384 |
| 368 /** @override */ | 385 /** @override */ |
| 369 ready: function() { | 386 ready: function() { |
| 370 this.addWebUIListener('on-add-cups-printer', this.onAddPrinter_.bind(this)); | 387 this.addWebUIListener('on-add-cups-printer', this.onAddPrinter_.bind(this)); |
| 371 }, | 388 }, |
| 372 | 389 |
| 373 /** Opens the Add printer discovery dialog. */ | 390 /** Opens the Add printer discovery dialog. */ |
| 374 open: function() { | 391 open: function() { |
| 375 this.resetData_(); | 392 this.resetData_(); |
| 376 this.switchDialog_( | 393 this.switchDialog_('', AddPrinterDialogs.DISCOVERY, 'showDiscoveryDialog_'); |
| 377 '', AddPrinterDialogs.MANUALLY, 'showManuallyAddDialog_'); | |
| 378 }, | 394 }, |
| 379 | 395 |
| 380 /** | 396 /** |
| 381 * Reset all the printer data in the Add printer flow. | 397 * Reset all the printer data in the Add printer flow. |
| 382 * @private | 398 * @private |
| 383 */ | 399 */ |
| 384 resetData_: function() { | 400 resetData_: function() { |
| 385 if (this.selectedPrinter) | |
| 386 this.selectedPrinter = this.getEmptyPrinter_(); | |
| 387 if (this.newPrinter) | 401 if (this.newPrinter) |
| 388 this.newPrinter = this.getEmptyPrinter_(); | 402 this.newPrinter = getEmptyPrinter_(); |
| 389 this.setupFailed = false; | 403 this.setupFailed = false; |
| 390 }, | 404 }, |
| 391 | 405 |
| 392 /** | |
| 393 * @return {!CupsPrinterInfo} | |
| 394 * @private | |
| 395 */ | |
| 396 getEmptyPrinter_: function() { | |
| 397 return { | |
| 398 printerAddress: '', | |
| 399 printerDescription: '', | |
| 400 printerId: '', | |
| 401 printerManufacturer: '', | |
| 402 printerModel: '', | |
| 403 printerName: '', | |
| 404 printerPPDPath: '', | |
| 405 printerProtocol: 'ipp', | |
| 406 printerQueue: '', | |
| 407 printerStatus: '', | |
| 408 }; | |
| 409 }, | |
| 410 | |
| 411 /** @private */ | 406 /** @private */ |
| 412 openManuallyAddPrinterDialog_: function() { | 407 openManuallyAddPrinterDialog_: function() { |
| 413 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUALLY, | 408 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUALLY, |
| 414 'showManuallyAddDialog_'); | 409 'showManuallyAddDialog_'); |
| 415 }, | 410 }, |
| 416 | 411 |
| 417 /** @private */ | 412 /** @private */ |
| 418 openDiscoveryPrintersDialog_: function() { | 413 openDiscoveryPrintersDialog_: function() { |
| 419 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.DISCOVERY, | 414 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.DISCOVERY, |
| 420 'showDiscoveryDialog_'); | 415 'showDiscoveryDialog_'); |
| 421 }, | 416 }, |
| 422 | 417 |
| 423 /** @private */ | 418 /** @private */ |
| 424 openConfiguringPrinterDialog_: function() { | 419 openConfiguringPrinterDialog_: function() { |
| 425 this.switchDialog_( | 420 this.switchDialog_( |
|
xdai1
2017/05/11 22:50:28
After your change, the previous dialog for configu
Carlson
2017/05/11 23:57:11
That's true right now, but isn't the right thing i
xdai1
2017/05/12 00:30:43
Because the previous dialog will always be this.pr
Carlson
2017/05/12 17:12:46
Took me a while, but I understand now.
I'm not su
xdai1
2017/05/12 17:56:55
Yes. I'm fine to file a bug for this.
Carlson
2017/05/12 18:14:09
Filed crbug/721841
| |
| 426 this.currentDialog_, AddPrinterDialogs.CONFIGURING, | 421 this.currentDialog_, AddPrinterDialogs.CONFIGURING, |
| 427 'showConfiguringDialog_'); | 422 'showConfiguringDialog_'); |
| 428 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY) { | 423 if (this.previousDialog == AddPrinterDialogs.DISCOVERY) { |
| 429 this.configuringDialogTitle = | 424 this.configuringDialogTitle = |
| 430 loadTimeData.getString('addPrintersNearbyTitle'); | 425 loadTimeData.getString('addPrintersNearbyTitle'); |
| 431 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( | 426 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( |
| 432 this.selectedPrinter); | 427 this.selectedPrinter); |
| 433 } else if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | 428 } else if (this.previousDialog == AddPrinterDialogs.MANUFACTURER) { |
| 434 this.configuringDialogTitle = | 429 this.configuringDialogTitle = |
| 435 loadTimeData.getString('addPrintersManuallyTitle'); | 430 loadTimeData.getString('addPrintersManuallyTitle'); |
| 436 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( | 431 settings.CupsPrintersBrowserProxyImpl.getInstance().addCupsPrinter( |
| 437 this.newPrinter); | 432 this.newPrinter); |
| 438 } | 433 } |
| 439 }, | 434 }, |
| 440 | 435 |
| 441 /** @private */ | 436 /** @private */ |
| 442 openManufacturerModelDialog_: function() { | 437 openManufacturerModelDialog_: function() { |
| 443 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER, | 438 this.switchDialog_(this.currentDialog_, AddPrinterDialogs.MANUFACTURER, |
| 444 'showManufacturerDialog_'); | 439 'showManufacturerDialog_'); |
| 445 }, | 440 }, |
| 446 | 441 |
| 447 /** @private */ | 442 /** @private */ |
| 448 configuringDialogClosed_: function() { | 443 configuringDialogClosed_: function() { |
| 449 if (this.previousDialog_ == AddPrinterDialogs.MANUALLY) { | 444 if (this.previousDialog == AddPrinterDialogs.MANUALLY) { |
|
xdai1
2017/05/11 22:50:28
Same as above.
Carlson
2017/05/11 23:57:10
Same reply here. Eventually this will be needed a
xdai1
2017/05/12 00:30:43
Acknowledged.
Carlson
2017/05/12 17:12:46
Actually, this one is a real problem looking more
| |
| 450 this.switchDialog_( | 445 this.switchDialog_( |
| 451 this.currentDialog_, this.previousDialog_, 'showManuallyAddDialog_'); | 446 this.currentDialog_, this.previousDialog, 'showManuallyAddDialog_'); |
| 452 } else if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | 447 } else if (this.previousDialog == AddPrinterDialogs.MANUFACTURER) { |
| 453 this.switchDialog_( | 448 this.switchDialog_( |
| 454 this.currentDialog_, this.previousDialog_, 'showManufacturerDialog_'); | 449 this.currentDialog_, this.previousDialog, 'showManufacturerDialog_'); |
| 455 } | 450 } |
| 456 }, | 451 }, |
| 457 | 452 |
| 458 /** | 453 /** |
| 459 * Switch dialog from |fromDialog| to |toDialog|. | 454 * Switch dialog from |fromDialog| to |toDialog|. |
| 460 * @param {string} fromDialog | 455 * @param {string} fromDialog |
| 461 * @param {string} toDialog | 456 * @param {string} toDialog |
| 462 * @param {string} domIfBooleanName The name of the boolean variable | 457 * @param {string} domIfBooleanName The name of the boolean variable |
| 463 * corresponding to the |toDialog|. | 458 * corresponding to the |toDialog|. |
| 464 * @private | 459 * @private |
| 465 */ | 460 */ |
| 466 switchDialog_: function(fromDialog, toDialog, domIfBooleanName) { | 461 switchDialog_: function(fromDialog, toDialog, domIfBooleanName) { |
| 467 this.previousDialog_ = fromDialog; | 462 this.previousDialog = fromDialog; |
| 468 this.currentDialog_ = toDialog; | 463 this.currentDialog_ = toDialog; |
| 469 | 464 |
| 470 this.set(domIfBooleanName, true); | 465 this.set(domIfBooleanName, true); |
| 471 this.async(function() { | 466 this.async(function() { |
| 472 var dialog = this.$$(toDialog); | 467 var dialog = this.$$(toDialog); |
| 473 dialog.addEventListener('close', function() { | 468 dialog.addEventListener('close', function() { |
| 474 this.set(domIfBooleanName, false); | 469 this.set(domIfBooleanName, false); |
| 475 }.bind(this)); | 470 }.bind(this)); |
| 476 }); | 471 }); |
| 477 }, | 472 }, |
| 478 | 473 |
| 479 /** | 474 /** |
| 480 * @return {string} The name of the current printer in configuration. | 475 * @return {string} The name of the current printer in configuration. |
| 481 * @private | 476 * @private |
| 482 */ | 477 */ |
| 483 getConfiguringPrinterName_: function() { | 478 getConfiguringPrinterName_: function() { |
|
xdai1
2017/05/11 22:50:28
This function can be removed now. And in configuri
Carlson
2017/05/11 23:57:10
Good point, done.
| |
| 484 if (this.previousDialog_ == AddPrinterDialogs.DISCOVERY) | 479 if (this.previousDialog == AddPrinterDialogs.DISCOVERY || |
| 485 return this.selectedPrinter.printerName; | 480 this.previousDialog == AddPrinterDialogs.MANUALLY || |
| 486 if (this.previousDialog_ == AddPrinterDialogs.MANUALLY || | 481 this.previousDialog == AddPrinterDialogs.MANUFACTURER) { |
| 487 this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | |
| 488 return this.newPrinter.printerName; | 482 return this.newPrinter.printerName; |
| 489 } | 483 } |
| 490 return ''; | 484 return ''; |
| 491 }, | 485 }, |
| 492 | 486 |
| 493 /** | 487 /** |
| 494 * @param {boolean} success | 488 * @param {boolean} success |
| 495 * @param {string} printerName | 489 * @param {string} printerName |
| 496 * @private | 490 * @private |
| 497 */ | 491 */ |
| 498 onAddPrinter_: function(success, printerName) { | 492 onAddPrinter_: function(success, printerName) { |
| 499 this.$$('add-printer-configuring-dialog').close(); | 493 this.$$('add-printer-configuring-dialog').close(); |
| 500 if (success) | 494 if (success) |
| 501 return; | 495 return; |
| 502 | 496 |
| 503 if (this.previousDialog_ == AddPrinterDialogs.MANUFACTURER) { | 497 if (this.previousDialog == AddPrinterDialogs.MANUFACTURER) { |
| 504 this.setupFailed = true; | 498 this.setupFailed = true; |
| 505 } | 499 } |
| 506 }, | 500 }, |
| 507 }); | 501 }); |
| OLD | NEW |