| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 cr.define('print_preview', function() { | 5 cr.define('print_preview', function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * Component used for searching for a print destination. | 9 * Component used for searching for a print destination. |
| 10 * This is a modal dialog that allows the user to search and select a | 10 * This is a modal dialog that allows the user to search and select a |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 | 24 |
| 25 /** | 25 /** |
| 26 * Data store containing the destinations to search through. | 26 * Data store containing the destinations to search through. |
| 27 * @type {!print_preview.DestinationStore} | 27 * @type {!print_preview.DestinationStore} |
| 28 * @private | 28 * @private |
| 29 */ | 29 */ |
| 30 this.destinationStore_ = destinationStore; | 30 this.destinationStore_ = destinationStore; |
| 31 | 31 |
| 32 /** | 32 /** |
| 33 * Data store holding printer sharing invitations. | 33 * Data store holding printer sharing invitations. |
| 34 * @type {!print_preview.DestinationStore} | 34 * @type {!print_preview.InvitationStore} |
| 35 * @private | 35 * @private |
| 36 */ | 36 */ |
| 37 this.invitationStore_ = invitationStore; | 37 this.invitationStore_ = invitationStore; |
| 38 | 38 |
| 39 /** | 39 /** |
| 40 * Event target that contains information about the logged in user. | 40 * Event target that contains information about the logged in user. |
| 41 * @type {!print_preview.UserInfo} | 41 * @type {!print_preview.UserInfo} |
| 42 * @private | 42 * @private |
| 43 */ | 43 */ |
| 44 this.userInfo_ = userInfo; | 44 this.userInfo_ = userInfo; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 loadTimeData.getString('manage') : null); | 108 loadTimeData.getString('manage') : null); |
| 109 this.addChild(this.localList_); | 109 this.addChild(this.localList_); |
| 110 | 110 |
| 111 /** | 111 /** |
| 112 * Destination list containing cloud destinations. | 112 * Destination list containing cloud destinations. |
| 113 * @type {!print_preview.DestinationList} | 113 * @type {!print_preview.DestinationList} |
| 114 * @private | 114 * @private |
| 115 */ | 115 */ |
| 116 this.cloudList_ = new print_preview.CloudDestinationList(this); | 116 this.cloudList_ = new print_preview.CloudDestinationList(this); |
| 117 this.addChild(this.cloudList_); | 117 this.addChild(this.cloudList_); |
| 118 }; | 118 } |
| 119 | 119 |
| 120 /** | 120 /** |
| 121 * Event types dispatched by the component. | 121 * Event types dispatched by the component. |
| 122 * @enum {string} | 122 * @enum {string} |
| 123 */ | 123 */ |
| 124 DestinationSearch.EventType = { | 124 DestinationSearch.EventType = { |
| 125 // Dispatched when user requests to sign-in into another Google account. | 125 // Dispatched when user requests to sign-in into another Google account. |
| 126 ADD_ACCOUNT: 'print_preview.DestinationSearch.ADD_ACCOUNT', | 126 ADD_ACCOUNT: 'print_preview.DestinationSearch.ADD_ACCOUNT', |
| 127 | 127 |
| 128 // Dispatched when the user requests to manage their cloud destinations. | 128 // Dispatched when the user requests to manage their cloud destinations. |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 this.showInvitation_(this.invitation_); | 498 this.showInvitation_(this.invitation_); |
| 499 } else { | 499 } else { |
| 500 this.invitation_ = null; | 500 this.invitation_ = null; |
| 501 } | 501 } |
| 502 setIsVisible( | 502 setIsVisible( |
| 503 this.getChildElement('.invitation-container'), !!this.invitation_); | 503 this.getChildElement('.invitation-container'), !!this.invitation_); |
| 504 this.reflowLists_(); | 504 this.reflowLists_(); |
| 505 }, | 505 }, |
| 506 | 506 |
| 507 /** | 507 /** |
| 508 * @param {!printe_preview.Invitation} invitation Invitation to show. | 508 * @param {!print_preview.Invitation} invitation Invitation to show. |
| 509 * @private | 509 * @private |
| 510 */ | 510 */ |
| 511 showInvitation_: function(invitation) { | 511 showInvitation_: function(invitation) { |
| 512 var invitationText = ''; | 512 var invitationText = ''; |
| 513 if (invitation.asGroupManager) { | 513 if (invitation.asGroupManager) { |
| 514 invitationText = loadTimeData.getStringF( | 514 invitationText = loadTimeData.getStringF( |
| 515 'groupPrinterSharingInviteText', | 515 'groupPrinterSharingInviteText', |
| 516 HTMLEscape(invitation.sender), | 516 HTMLEscape(invitation.sender), |
| 517 HTMLEscape(invitation.destination.displayName), | 517 HTMLEscape(invitation.destination.displayName), |
| 518 HTMLEscape(invitation.receiver)); | 518 HTMLEscape(invitation.receiver)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 548 var option = document.createElement('option'); | 548 var option = document.createElement('option'); |
| 549 option.text = account; | 549 option.text = account; |
| 550 option.value = account; | 550 option.value = account; |
| 551 accountSelectEl.add(option); | 551 accountSelectEl.add(option); |
| 552 }); | 552 }); |
| 553 var option = document.createElement('option'); | 553 var option = document.createElement('option'); |
| 554 option.text = loadTimeData.getString('addAccountTitle'); | 554 option.text = loadTimeData.getString('addAccountTitle'); |
| 555 option.value = ''; | 555 option.value = ''; |
| 556 accountSelectEl.add(option); | 556 accountSelectEl.add(option); |
| 557 | 557 |
| 558 accountSelectEl.selectedIndex = | 558 accountSelectEl.selectedIndex = this.userInfo_.activeUser ? |
| 559 this.userInfo_.users.indexOf(this.userInfo_.activeUser); | 559 this.userInfo_.users.indexOf(this.userInfo_.activeUser) : -1; |
| 560 } | 560 } |
| 561 | 561 |
| 562 setIsVisible(this.getChildElement('.user-info'), loggedIn); | 562 setIsVisible(this.getChildElement('.user-info'), loggedIn); |
| 563 setIsVisible(this.getChildElement('.cloud-list'), loggedIn); | 563 setIsVisible(this.getChildElement('.cloud-list'), loggedIn); |
| 564 setIsVisible(this.getChildElement('.cloudprint-promo'), !loggedIn); | 564 setIsVisible(this.getChildElement('.cloudprint-promo'), !loggedIn); |
| 565 this.updateInvitations_(); | 565 this.updateInvitations_(); |
| 566 }, | 566 }, |
| 567 | 567 |
| 568 /** | 568 /** |
| 569 * Called when a destination search should be executed. Filters the | 569 * Called when a destination search should be executed. Filters the |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 614 * @param {!print_preview.Destination} destination The destination needs to | 614 * @param {!print_preview.Destination} destination The destination needs to |
| 615 * be setup. | 615 * be setup. |
| 616 * @private | 616 * @private |
| 617 */ | 617 */ |
| 618 handleConfigureDestination_: function(destination) { | 618 handleConfigureDestination_: function(destination) { |
| 619 assert(destination.origin == print_preview.DestinationOrigin.CROS, | 619 assert(destination.origin == print_preview.DestinationOrigin.CROS, |
| 620 'Only local printer on Chrome OS requires setup.'); | 620 'Only local printer on Chrome OS requires setup.'); |
| 621 this.destinationInConfiguring_ = destination; | 621 this.destinationInConfiguring_ = destination; |
| 622 this.destinationStore_.resolveCrosDestination(destination).then( | 622 this.destinationStore_.resolveCrosDestination(destination).then( |
| 623 /** | 623 /** |
| 624 * @param {!print_preview.PrinterSetupResponse} response. | 624 * @param {!print_preview.PrinterSetupResponse} response |
| 625 */ | 625 */ |
| 626 function(response) { | 626 function(response) { |
| 627 this.destinationInConfiguring_ = null; | 627 this.destinationInConfiguring_ = null; |
| 628 this.localList_.getDestinationItem(destination.id) | 628 this.localList_.getDestinationItem(destination.id) |
| 629 .onConfigureResolved(response); | 629 .onConfigureResolved(response); |
| 630 }.bind(this), | 630 }.bind(this), |
| 631 function() { | 631 function() { |
| 632 this.destinationInConfiguring_ = null; | 632 this.destinationInConfiguring_ = null; |
| 633 this.localList_.getDestinationItem(destination.id) | 633 this.localList_.getDestinationItem(destination.id) |
| 634 .onConfigureResolved({printerId: destination.id, | 634 .onConfigureResolved({printerId: destination.id, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 /** | 670 /** |
| 671 * @param {!print_preview.Destination} resolvedDestination | 671 * @param {!print_preview.Destination} resolvedDestination |
| 672 * Destination to which the provisional destination was | 672 * Destination to which the provisional destination was |
| 673 * resolved. | 673 * resolved. |
| 674 */ | 674 */ |
| 675 function(resolvedDestination) { | 675 function(resolvedDestination) { |
| 676 this.handleOnDestinationSelect_(resolvedDestination); | 676 this.handleOnDestinationSelect_(resolvedDestination); |
| 677 }.bind(this)). | 677 }.bind(this)). |
| 678 catch( | 678 catch( |
| 679 function() { | 679 function() { |
| 680 console.log('Failed to resolve provisional destination: ' + | 680 console.error('Failed to resolve provisional destination: ' + |
| 681 destination.id); | 681 destination.id); |
| 682 }). | 682 }). |
| 683 then( | 683 then( |
| 684 function() { | 684 function() { |
| 685 this.removeChild(this.provisionalDestinationResolver_); | 685 this.removeChild( |
| 686 assert(this.provisionalDestinationResolver_)); |
| 686 this.provisionalDestinationResolver_ = null; | 687 this.provisionalDestinationResolver_ = null; |
| 687 | 688 |
| 688 // Restore focus to the previosly focused element if it's | 689 // Restore focus to the previosly focused element if it's |
| 689 // still shown in the search. | 690 // still shown in the search. |
| 690 if (lastFocusedElement && | 691 if (lastFocusedElement && |
| 691 this.getIsVisible() && | 692 this.getIsVisible() && |
| 692 getIsVisible(lastFocusedElement) && | 693 getIsVisible(lastFocusedElement) && |
| 693 this.getElement().contains(lastFocusedElement)) { | 694 this.getElement().contains(lastFocusedElement)) { |
| 694 lastFocusedElement.focus(); | 695 lastFocusedElement.focus(); |
| 695 } | 696 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 | 808 |
| 808 /** | 809 /** |
| 809 * Called when the printer sharing invitation Accept/Reject button is | 810 * Called when the printer sharing invitation Accept/Reject button is |
| 810 * clicked. | 811 * clicked. |
| 811 * @private | 812 * @private |
| 812 */ | 813 */ |
| 813 onInvitationProcessButtonClick_: function(accept) { | 814 onInvitationProcessButtonClick_: function(accept) { |
| 814 this.metrics_.record(accept ? | 815 this.metrics_.record(accept ? |
| 815 print_preview.Metrics.DestinationSearchBucket.INVITATION_ACCEPTED : | 816 print_preview.Metrics.DestinationSearchBucket.INVITATION_ACCEPTED : |
| 816 print_preview.Metrics.DestinationSearchBucket.INVITATION_REJECTED); | 817 print_preview.Metrics.DestinationSearchBucket.INVITATION_REJECTED); |
| 817 this.invitationStore_.processInvitation(this.invitation_, accept); | 818 this.invitationStore_.processInvitation(assert(this.invitation_), accept); |
| 818 this.updateInvitations_(); | 819 this.updateInvitations_(); |
| 819 }, | 820 }, |
| 820 | 821 |
| 821 /** | 822 /** |
| 822 * Called when the close button on the cloud print promo is clicked. Hides | 823 * Called when the close button on the cloud print promo is clicked. Hides |
| 823 * the promo. | 824 * the promo. |
| 824 * @private | 825 * @private |
| 825 */ | 826 */ |
| 826 onCloudprintPromoCloseButtonClick_: function() { | 827 onCloudprintPromoCloseButtonClick_: function() { |
| 827 setIsVisible(this.getChildElement('.cloudprint-promo'), false); | 828 setIsVisible(this.getChildElement('.cloudprint-promo'), false); |
| 828 this.reflowLists_(); | 829 this.reflowLists_(); |
| 829 }, | 830 }, |
| 830 | 831 |
| 831 /** | 832 /** |
| 832 * Called when the window is resized. Reflows layout of destination lists. | 833 * Called when the window is resized. Reflows layout of destination lists. |
| 833 * @private | 834 * @private |
| 834 */ | 835 */ |
| 835 onWindowResize_: function() { | 836 onWindowResize_: function() { |
| 836 this.reflowLists_(); | 837 this.reflowLists_(); |
| 837 } | 838 } |
| 838 }; | 839 }; |
| 839 | 840 |
| 840 // Export | 841 // Export |
| 841 return { | 842 return { |
| 842 DestinationSearch: DestinationSearch | 843 DestinationSearch: DestinationSearch |
| 843 }; | 844 }; |
| 844 }); | 845 }); |
| OLD | NEW |