| 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 /** Namespace that contains a method to parse local print destinations. */ | 8 /** Namespace that contains a method to parse local print destinations. */ |
| 9 function LocalDestinationParser() {}; | 9 function LocalDestinationParser() {} |
| 10 | 10 |
| 11 /** | 11 /** |
| 12 * Parses a local print destination. | 12 * Parses a local print destination. |
| 13 * @param {!Object} destinationInfo Information describing a local print | 13 * @param {!Object} destinationInfo Information describing a local print |
| 14 * destination. | 14 * destination. |
| 15 * @return {!print_preview.Destination} Parsed local print destination. | 15 * @return {!print_preview.Destination} Parsed local print destination. |
| 16 */ | 16 */ |
| 17 LocalDestinationParser.parse = function(destinationInfo) { | 17 LocalDestinationParser.parse = function(destinationInfo) { |
| 18 var options = {description: destinationInfo.printerDescription, | 18 var options = {description: destinationInfo.printerDescription, |
| 19 isEnterprisePrinter: destinationInfo.cupsEnterprisePrinter}; | 19 isEnterprisePrinter: destinationInfo.cupsEnterprisePrinter}; |
| 20 if (destinationInfo.printerOptions) { | 20 if (destinationInfo.printerOptions) { |
| 21 // Convert options into cloud print tags format. | 21 // Convert options into cloud print tags format. |
| 22 options.tags = Object.keys(destinationInfo.printerOptions).map( | 22 options.tags = Object.keys(destinationInfo.printerOptions).map( |
| 23 function(key) {return '__cp__' + key + '=' + this[key];}, | 23 function(key) {return '__cp__' + key + '=' + this[key];}, |
| 24 destinationInfo.printerOptions); | 24 destinationInfo.printerOptions); |
| 25 } | 25 } |
| 26 return new print_preview.Destination( | 26 return new print_preview.Destination( |
| 27 destinationInfo.deviceName, | 27 destinationInfo.deviceName, |
| 28 print_preview.Destination.Type.LOCAL, | 28 print_preview.DestinationType.LOCAL, |
| 29 cr.isChromeOS ? print_preview.Destination.Origin.CROS : | 29 cr.isChromeOS ? print_preview.DestinationOrigin.CROS : |
| 30 print_preview.Destination.Origin.LOCAL, | 30 print_preview.DestinationOrigin.LOCAL, |
| 31 destinationInfo.printerName, | 31 destinationInfo.printerName, |
| 32 false /*isRecent*/, | 32 false /*isRecent*/, |
| 33 print_preview.Destination.ConnectionStatus.ONLINE, | 33 print_preview.DestinationConnectionStatus.ONLINE, |
| 34 options); | 34 options); |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 function PrivetDestinationParser() {} | 37 function PrivetDestinationParser() {} |
| 38 | 38 |
| 39 /** | 39 /** |
| 40 * Parses a privet destination as one or more local printers. | 40 * Parses a privet destination as one or more local printers. |
| 41 * @param {!Object} destinationInfo Object that describes a privet printer. | 41 * @param {!Object} destinationInfo Object that describes a privet printer. |
| 42 * @return {!Array<!print_preview.Destination>} Parsed destination info. | 42 * @return {!Array<!print_preview.Destination>} Parsed destination info. |
| 43 */ | 43 */ |
| 44 PrivetDestinationParser.parse = function(destinationInfo) { | 44 PrivetDestinationParser.parse = function(destinationInfo) { |
| 45 var returnedPrinters = []; | 45 var returnedPrinters = []; |
| 46 | 46 |
| 47 if (destinationInfo.hasLocalPrinting) { | 47 if (destinationInfo.hasLocalPrinting) { |
| 48 returnedPrinters.push(new print_preview.Destination( | 48 returnedPrinters.push(new print_preview.Destination( |
| 49 destinationInfo.serviceName, | 49 destinationInfo.serviceName, |
| 50 print_preview.Destination.Type.LOCAL, | 50 print_preview.DestinationType.LOCAL, |
| 51 print_preview.Destination.Origin.PRIVET, | 51 print_preview.DestinationOrigin.PRIVET, |
| 52 destinationInfo.name, | 52 destinationInfo.name, |
| 53 false /*isRecent*/, | 53 false /*isRecent*/, |
| 54 print_preview.Destination.ConnectionStatus.ONLINE, | 54 print_preview.DestinationConnectionStatus.ONLINE, |
| 55 { cloudID: destinationInfo.cloudID })); | 55 { cloudID: destinationInfo.cloudID })); |
| 56 } | 56 } |
| 57 | 57 |
| 58 if (destinationInfo.isUnregistered) { | 58 if (destinationInfo.isUnregistered) { |
| 59 returnedPrinters.push(new print_preview.Destination( | 59 returnedPrinters.push(new print_preview.Destination( |
| 60 destinationInfo.serviceName, | 60 destinationInfo.serviceName, |
| 61 print_preview.Destination.Type.GOOGLE, | 61 print_preview.DestinationType.GOOGLE, |
| 62 print_preview.Destination.Origin.PRIVET, | 62 print_preview.DestinationOrigin.PRIVET, |
| 63 destinationInfo.name, | 63 destinationInfo.name, |
| 64 false /*isRecent*/, | 64 false /*isRecent*/, |
| 65 print_preview.Destination.ConnectionStatus.UNREGISTERED)); | 65 print_preview.DestinationConnectionStatus.UNREGISTERED)); |
| 66 } | 66 } |
| 67 | 67 |
| 68 return returnedPrinters; | 68 return returnedPrinters; |
| 69 }; | 69 }; |
| 70 | 70 |
| 71 function ExtensionDestinationParser() {} | 71 function ExtensionDestinationParser() {} |
| 72 | 72 |
| 73 /** | 73 /** |
| 74 * Parses an extension destination from an extension supplied printer | 74 * Parses an extension destination from an extension supplied printer |
| 75 * description. | 75 * description. |
| 76 * @param {!Object} destinationInfo Object describing an extension printer. | 76 * @param {!Object} destinationInfo Object describing an extension printer. |
| 77 * @return {!print_preview.Destination} Parsed destination. | 77 * @return {!print_preview.Destination} Parsed destination. |
| 78 */ | 78 */ |
| 79 ExtensionDestinationParser.parse = function(destinationInfo) { | 79 ExtensionDestinationParser.parse = function(destinationInfo) { |
| 80 var provisionalType = | 80 var provisionalType = |
| 81 destinationInfo.provisional ? | 81 destinationInfo.provisional ? |
| 82 print_preview.Destination.ProvisionalType.NEEDS_USB_PERMISSION : | 82 print_preview.DestinationProvisionalType.NEEDS_USB_PERMISSION : |
| 83 print_preview.Destination.ProvisionalType.NONE; | 83 print_preview.DestinationProvisionalType.NONE; |
| 84 | 84 |
| 85 return new print_preview.Destination( | 85 return new print_preview.Destination( |
| 86 destinationInfo.id, | 86 destinationInfo.id, |
| 87 print_preview.Destination.Type.LOCAL, | 87 print_preview.DestinationType.LOCAL, |
| 88 print_preview.Destination.Origin.EXTENSION, | 88 print_preview.DestinationOrigin.EXTENSION, |
| 89 destinationInfo.name, | 89 destinationInfo.name, |
| 90 false /* isRecent */, | 90 false /* isRecent */, |
| 91 print_preview.Destination.ConnectionStatus.ONLINE, | 91 print_preview.DestinationConnectionStatus.ONLINE, |
| 92 {description: destinationInfo.description || '', | 92 {description: destinationInfo.description || '', |
| 93 extensionId: destinationInfo.extensionId, | 93 extensionId: destinationInfo.extensionId, |
| 94 extensionName: destinationInfo.extensionName || '', | 94 extensionName: destinationInfo.extensionName || '', |
| 95 provisionalType: provisionalType}); | 95 provisionalType: provisionalType}); |
| 96 }; | 96 }; |
| 97 | 97 |
| 98 // Export | 98 // Export |
| 99 return { | 99 return { |
| 100 LocalDestinationParser: LocalDestinationParser, | 100 LocalDestinationParser: LocalDestinationParser, |
| 101 PrivetDestinationParser: PrivetDestinationParser, | 101 PrivetDestinationParser: PrivetDestinationParser, |
| 102 ExtensionDestinationParser: ExtensionDestinationParser | 102 ExtensionDestinationParser: ExtensionDestinationParser |
| 103 }; | 103 }; |
| 104 }); | 104 }); |
| OLD | NEW |